From b34e57b497d801a916c0e086d91106eb3edf70ce Mon Sep 17 00:00:00 2001 From: Matthias Geihs Date: Thu, 21 Nov 2024 16:06:35 +0100 Subject: [PATCH 01/37] bip340 --- demo/redirect-flow-example/package-lock.json | 39 ++-- demo/redirect-flow-example/package.json | 5 +- demo/redirect-flow-example/src/App.tsx | 15 +- package-lock.json | 206 ++++++++++++------- package.json | 15 +- src/helper/errors.ts | 10 + src/interfaces.ts | 14 +- src/mpcCoreKit.ts | 102 +++++---- 8 files changed, 257 insertions(+), 149 deletions(-) diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index 455648b1..6f6e85ee 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -9,8 +9,9 @@ "version": "0.1.0", "dependencies": { "@tkey/common-types": "^15.1.0", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0", "@types/jest": "^27.5.2", "@types/node": "^16.18.48", "@types/react": "^18.3.11", @@ -54,7 +55,7 @@ }, "../..": { "name": "@web3auth/mpc-core-kit", - "version": "3.2.4", + "version": "3.2.6", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", @@ -64,15 +65,15 @@ "@tkey/tss": "^15.1.0", "@toruslabs/constants": "^14.0.0", "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.0", + "@toruslabs/elliptic-wrapper": "^0.1.1", "@toruslabs/fetch-node-details": "^14.0.1", "@toruslabs/fnd-base": "^14.0.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/session-manager": "^3.1.0", "@toruslabs/torus.js": "^15.1.0", - "@toruslabs/tss-client": "^3.1.0", - "@toruslabs/tss-frost-client": "0.3.1", + "@toruslabs/tss-client": "^3.3.0-alpha.0", + "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", "@toruslabs/tss-frost-common": "^1.0.1", "bn.js": "^5.2.1", "bowser": "^2.11.0", @@ -84,8 +85,8 @@ "@toruslabs/config": "^2.2.0", "@toruslabs/eslint-config-typescript": "^3.3.3", "@toruslabs/torus-scripts": "^6.1.2", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", "@types/chai": "^4.3.16", "@types/elliptic": "^6.4.18", "@types/jsonwebtoken": "^9.0.7", @@ -114,8 +115,9 @@ }, "peerDependencies": { "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0" + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0" }, "peerDependenciesMeta": { "@toruslabs/tss-dkls-lib": { @@ -1602,14 +1604,19 @@ } }, "node_modules/@toruslabs/tss-dkls-lib": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-4.0.0.tgz", - "integrity": "sha512-XIYv4M6el0wlX/I4WEJjxDS/TcUKRrG/+PTljNumh3UrchfkNpm4uW4+d4aOHclAXbX42pi1SkRpz81+YM+Gsg==" + "version": "5.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-5.0.0-alpha.0.tgz", + "integrity": "sha512-htUWzL2JZoKTtw++WLdQ1AK3wPTe0yezv/twWjpQIzLFkkfoO9Urnl5n9S6jFx98Z1dDRJRBWSED9PSuqY/x7w==" }, "node_modules/@toruslabs/tss-frost-lib": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-1.0.0.tgz", - "integrity": "sha512-uDsM7f6NiVvNKVOfTUK+CucZUy1TjvTSYvk5LL8t2i/izWzNbBg4NO9qAFws3Kp9Kt1hG0xo8FkWzh3+oJ82xA==" + "version": "2.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-2.0.0-alpha.0.tgz", + "integrity": "sha512-oZy99HiES3OR8t6rrV6ccxwbrq38kxzz1C/5UIdqUVd2IRSWZzrcD+J4Q2/yR5bDMoK1HrucLShK96uMoXyv/A==" + }, + "node_modules/@toruslabs/tss-frost-lib-bip340": { + "version": "0.1.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib-bip340/-/tss-frost-lib-bip340-0.1.0-alpha.0.tgz", + "integrity": "sha512-2dK/fhIfkxdbI/WPCRc1nJlL81nu70VMJyj313eJbO6oU13S92YjzoIhiCvBn6G/F3XpftD44wqNkr+S3QbAuA==" }, "node_modules/@toruslabs/tweetnacl-js": { "version": "1.0.4", diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index 26ca6465..edc0932d 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -4,8 +4,9 @@ "private": true, "dependencies": { "@tkey/common-types": "^15.1.0", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0", "@types/jest": "^27.5.2", "@types/node": "^16.18.48", "@types/react": "^18.3.11", diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index 73364482..7375123d 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -12,14 +12,16 @@ import { parseToken, factorKeyCurve, makeEthereumSigner, + SigType, } from "@web3auth/mpc-core-kit"; import Web3 from "web3"; import { CHAIN_NAMESPACES, CustomChainConfig, IProvider } from "@web3auth/base"; import { EthereumSigningProvider } from "@web3auth/ethereum-mpc-provider"; import { BN } from "bn.js"; import { KeyType, Point } from "@tkey/common-types"; -import { tssLib } from "@toruslabs/tss-dkls-lib"; +// import { tssLib } from "@toruslabs/tss-dkls-lib"; // import{ tssLib } from "@toruslabs/tss-frost-lib"; +import{ tssLib } from "@toruslabs/tss-frost-lib-bip340"; import "./App.css"; import jwt, { Algorithm } from "jsonwebtoken"; @@ -171,7 +173,7 @@ function App() { if (!factorPubs) { throw new Error("factorPubs not found"); } - const pubsHex = factorPubs[coreKitInstance.tKey.tssTag].map((pub: Point) => { + const pubsHex = factorPubs[coreKitInstance.tKey.tssTag].map(pub => { return pub.toSEC1(factorKeyCurve, true).toString("hex"); }); uiConsole(pubsHex); @@ -357,14 +359,15 @@ function App() { } const address = (await web3.eth.getAccounts())[0]; const balance = web3.utils.fromWei( - await web3.eth.getBalance(address) // Balance is in wei + await web3.eth.getBalance(address), // Balance is in wei + "ether" ); uiConsole(balance); return balance; }; const signMessage = async (): Promise => { - if (coreKitInstance.keyType === "secp256k1") { + if (coreKitInstance.sigType === SigType.ecdsa_secp256k1) { if (!web3) { uiConsole("web3 not initialized yet"); return; @@ -376,7 +379,7 @@ function App() { uiConsole(signedMessage); - } else if (coreKitInstance.keyType === "ed25519") { + } else if (coreKitInstance.sigType === SigType.ed25519 || coreKitInstance.sigType === SigType.bip340) { const msg = Buffer.from("hello signer!"); const sig = await coreKitInstance.sign(msg); uiConsole(sig.toString("hex")); @@ -512,7 +515,7 @@ function App() { const fromAddress = (await web3.eth.getAccounts())[0]; const destination = "0x2E464670992574A613f10F7682D5057fB507Cc21"; - const amount = web3.utils.toWei("0.0001"); // Convert 1 ether to wei + const amount = web3.utils.toWei("0.0001", "ether"); // Convert 1 ether to wei // Submit transaction to the blockchain and wait for it to be mined uiConsole("Sending transaction..."); diff --git a/package-lock.json b/package-lock.json index c83fce80..04c890fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,15 +16,15 @@ "@tkey/tss": "^15.1.0", "@toruslabs/constants": "^14.0.0", "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.0", + "@toruslabs/elliptic-wrapper": "^0.1.1", "@toruslabs/fetch-node-details": "^14.0.1", "@toruslabs/fnd-base": "^14.0.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/session-manager": "^3.1.0", "@toruslabs/torus.js": "^15.1.0", - "@toruslabs/tss-client": "^3.1.0", - "@toruslabs/tss-frost-client": "0.3.1", + "@toruslabs/tss-client": "^3.3.0-alpha.0", + "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", "@toruslabs/tss-frost-common": "^1.0.1", "bn.js": "^5.2.1", "bowser": "^2.11.0", @@ -36,8 +36,8 @@ "@toruslabs/config": "^2.2.0", "@toruslabs/eslint-config-typescript": "^3.3.3", "@toruslabs/torus-scripts": "^6.1.2", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", "@types/chai": "^4.3.16", "@types/elliptic": "^6.4.18", "@types/jsonwebtoken": "^9.0.7", @@ -66,8 +66,9 @@ }, "peerDependencies": { "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0" + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0" }, "peerDependenciesMeta": { "@toruslabs/tss-dkls-lib": { @@ -2945,6 +2946,18 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, + "node_modules/@noble/ciphers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.0.0.tgz", + "integrity": "sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@noble/curves": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", @@ -3580,9 +3593,9 @@ "license": "MIT" }, "node_modules/@scure/base": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", - "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" @@ -3939,9 +3952,9 @@ } }, "node_modules/@toruslabs/elliptic-wrapper": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.0.tgz", - "integrity": "sha512-h9H2GfLLihSCDJiaTiePLLsrW/i9xupmn8pLE7XaKNyHUlujVFGWyk/ySZK9rlHjVRhLddy4ylb59BCdP81KMg==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.1.tgz", + "integrity": "sha512-2IehQMK+OfRnJPcwNuM5b+je3+8XlPqjbQVPm85vjsSoliWO23G/2OK1635melTZYcjbxa+88l2m0wWuK/YTSg==", "license": "ISC", "dependencies": { "@toruslabs/config": "^2.0.2", @@ -4455,17 +4468,17 @@ } }, "node_modules/@toruslabs/tss-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-client/-/tss-client-3.1.0.tgz", - "integrity": "sha512-XhQG0lkbWS6KQ5mn9Mr+73c7HUE8RhbIPrkjZso2Bd9SJV4fwHgSLjDMPkvvTCBhrr3Fumw17akfL9tEvTLJZw==", + "version": "3.3.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-client/-/tss-client-3.3.0-alpha.0.tgz", + "integrity": "sha512-osExXxucMAlQQnyYS9el870xeILPj1Cv7QFCy2Nk+NsJQ9DW9uK9F3/n9Do8mn5C8POOEyXSwrobxGdypN1MxQ==", "license": "ISC", "dependencies": { - "@toruslabs/eccrypto": "^4.0.0", - "@types/chrome": "^0.0.268", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/tss-client-util": "^0.1.1", "bn.js": "^5.2.1", - "elliptic": "^6.5.4", - "ethereum-cryptography": "^2.1.3", - "socket.io-client": "^4.7.4" + "elliptic": "^6.5.7", + "ethereum-cryptography": "^3.0.0", + "socket.io-client": "^4.8.0" } }, "node_modules/@toruslabs/tss-client-util": { @@ -4477,29 +4490,87 @@ "bn.js": "^5.2.1" } }, - "node_modules/@toruslabs/tss-client/node_modules/@toruslabs/eccrypto": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/eccrypto/-/eccrypto-4.0.0.tgz", - "integrity": "sha512-Z3EINkbsgJx1t6jCDVIJjLSUEGUtNIeDjhMWmeDGOWcP/+v/yQ1hEvd1wfxEz4q5WqIHhevacmPiVxiJ4DljGQ==", - "license": "CC0-1.0", + "node_modules/@toruslabs/tss-client/node_modules/@noble/curves": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", + "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "license": "MIT", "dependencies": { - "elliptic": "^6.5.4" + "@noble/hashes": "1.5.0" }, "engines": { - "node": ">=18.x", - "npm": ">=9.x" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@noble/hashes": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@scure/bip32": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz", + "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.6.0", + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.7" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@scure/bip39": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz", + "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.8" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/ethereum-cryptography": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.0.0.tgz", + "integrity": "sha512-Ij7U9OgVZc4MAui8BttPCEaWUrAXy+eo2IbVfIxZyfzfFxMQrbIWXRUbrsRBqRrIhJ75T8P+KQRKpKTaG0Du8Q==", + "license": "MIT", + "dependencies": { + "@noble/ciphers": "1.0.0", + "@noble/curves": "1.6.0", + "@noble/hashes": "1.5.0", + "@scure/bip32": "1.5.0", + "@scure/bip39": "1.4.0" + }, + "engines": { + "node": "^14.21.3 || >=16", + "npm": ">=9" } }, "node_modules/@toruslabs/tss-dkls-lib": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-4.0.0.tgz", - "integrity": "sha512-XIYv4M6el0wlX/I4WEJjxDS/TcUKRrG/+PTljNumh3UrchfkNpm4uW4+d4aOHclAXbX42pi1SkRpz81+YM+Gsg==", + "version": "5.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-5.0.0-alpha.0.tgz", + "integrity": "sha512-htUWzL2JZoKTtw++WLdQ1AK3wPTe0yezv/twWjpQIzLFkkfoO9Urnl5n9S6jFx98Z1dDRJRBWSED9PSuqY/x7w==", "dev": true }, "node_modules/@toruslabs/tss-frost-client": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-client/-/tss-frost-client-0.3.1.tgz", - "integrity": "sha512-x19hWpbbAHVRWSUPt6FB4VH1vdQGiOe/aSJTts2HZtXRph/LzEGuT7FXyIOnglocYf58t5Z1nXqFEzn0rgQ49Q==", + "version": "1.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-client/-/tss-frost-client-1.0.0-alpha.0.tgz", + "integrity": "sha512-MvWl8Qt+/DIrNP+vqozYssXlWD1Ofo8jgRmUkiODuOew/wpePhIQv41XTcir7vdv2UU2SsG8N4L0FLU9O69Guw==", "license": "ISC", "dependencies": { "@toruslabs/tss-client-util": "^0.1.1", @@ -4514,11 +4585,17 @@ "license": "ISC" }, "node_modules/@toruslabs/tss-frost-lib": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-1.0.0.tgz", - "integrity": "sha512-uDsM7f6NiVvNKVOfTUK+CucZUy1TjvTSYvk5LL8t2i/izWzNbBg4NO9qAFws3Kp9Kt1hG0xo8FkWzh3+oJ82xA==", + "version": "2.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-2.0.0-alpha.0.tgz", + "integrity": "sha512-oZy99HiES3OR8t6rrV6ccxwbrq38kxzz1C/5UIdqUVd2IRSWZzrcD+J4Q2/yR5bDMoK1HrucLShK96uMoXyv/A==", "dev": true }, + "node_modules/@toruslabs/tss-frost-lib-bip340": { + "version": "0.1.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib-bip340/-/tss-frost-lib-bip340-0.1.0-alpha.0.tgz", + "integrity": "sha512-2dK/fhIfkxdbI/WPCRc1nJlL81nu70VMJyj313eJbO6oU13S92YjzoIhiCvBn6G/F3XpftD44wqNkr+S3QbAuA==", + "peer": true + }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", @@ -4563,16 +4640,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/chrome": { - "version": "0.0.268", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.268.tgz", - "integrity": "sha512-7N1QH9buudSJ7sI8Pe4mBHJr5oZ48s0hcanI9w3wgijAlv1OZNUZve9JR4x42dn5lJ5Sm87V1JNfnoh10EnQlA==", - "license": "MIT", - "dependencies": { - "@types/filesystem": "*", - "@types/har-format": "*" - } - }, "node_modules/@types/elliptic": { "version": "6.4.18", "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.18.tgz", @@ -4601,27 +4668,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/@types/filesystem": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz", - "integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==", - "license": "MIT", - "dependencies": { - "@types/filewriter": "*" - } - }, - "node_modules/@types/filewriter": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz", - "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==", - "license": "MIT" - }, - "node_modules/@types/har-format": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.15.tgz", - "integrity": "sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==", - "license": "MIT" - }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", @@ -7479,16 +7525,16 @@ } }, "node_modules/engine.io-client": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz", - "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.2.tgz", + "integrity": "sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.0.0" + "xmlhttprequest-ssl": "~2.1.1" } }, "node_modules/engine.io-parser": { @@ -14755,14 +14801,14 @@ } }, "node_modules/socket.io-client": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", - "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", + "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io-client": "~6.5.2", + "engine.io-client": "~6.6.1", "socket.io-parser": "~4.2.4" }, "engines": { @@ -16668,9 +16714,9 @@ } }, "node_modules/xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", "engines": { "node": ">=0.4.0" } diff --git a/package.json b/package.json index e8ad207b..f76bdd77 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,9 @@ ], "peerDependencies": { "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0" + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0" }, "peerDependenciesMeta": { "@toruslabs/tss-dkls-lib": { @@ -50,15 +51,15 @@ "@tkey/tss": "^15.1.0", "@toruslabs/constants": "^14.0.0", "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.0", + "@toruslabs/elliptic-wrapper": "^0.1.1", "@toruslabs/fetch-node-details": "^14.0.1", "@toruslabs/fnd-base": "^14.0.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/session-manager": "^3.1.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/torus.js": "^15.1.0", - "@toruslabs/tss-client": "^3.1.0", - "@toruslabs/tss-frost-client": "0.3.1", + "@toruslabs/tss-client": "^3.3.0-alpha.0", + "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", "@toruslabs/tss-frost-common": "^1.0.1", "bn.js": "^5.2.1", "bowser": "^2.11.0", @@ -70,8 +71,8 @@ "@toruslabs/config": "^2.2.0", "@toruslabs/eslint-config-typescript": "^3.3.3", "@toruslabs/torus-scripts": "^6.1.2", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", "@types/chai": "^4.3.16", "@types/elliptic": "^6.4.18", "@types/jsonwebtoken": "^9.0.7", diff --git a/src/helper/errors.ts b/src/helper/errors.ts index a622e75a..f22c3131 100644 --- a/src/helper/errors.ts +++ b/src/helper/errors.ts @@ -135,6 +135,8 @@ class CoreKitError extends AbstractCoreKitError { 1005: "No valid storage option found.", 1006: "No data found in storage.", 1007: "Invalid config.", + 1008: "Invalid key type.", + 1009: "Invalid signature type.", // TSS and key management errors 1101: "'tssLib' is required when running in this UX mode.", @@ -215,6 +217,14 @@ class CoreKitError extends AbstractCoreKitError { return CoreKitError.fromCode(1007, extraMessage); } + public static invalidKeyType(extraMessage = ""): ICoreKitError { + return CoreKitError.fromCode(1008, extraMessage); + } + + public static invalidSigType(extraMessage = ""): ICoreKitError { + return CoreKitError.fromCode(1009, extraMessage); + } + // TSS and key management errors public static tssLibRequired(extraMessage = ""): ICoreKitError { return CoreKitError.fromCode(1101, extraMessage); diff --git a/src/interfaces.ts b/src/interfaces.ts index 4795c224..6d770f43 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -12,7 +12,8 @@ import type { import { Client } from "@toruslabs/tss-client"; // TODO: move the types to a base class for both dkls and frost in future import type { tssLib as TssDklsLib } from "@toruslabs/tss-dkls-lib"; -import type { tssLib as TssFrostLib } from "@toruslabs/tss-frost-lib"; +import type { tssLib as TssFrostLibEd25519 } from "@toruslabs/tss-frost-lib"; +import type { tssLib as TssFrostLibBip340 } from "@toruslabs/tss-frost-lib-bip340"; import BN from "bn.js"; import { FactorKeyTypeShareDescription, TssShareType, USER_PATH, WEB3AUTH_NETWORK } from "./constants"; @@ -20,9 +21,9 @@ import { FactorKeyTypeShareDescription, TssShareType, USER_PATH, WEB3AUTH_NETWOR export type CoreKitMode = UX_MODE_TYPE | "nodejs" | "react-native"; export type V3TSSLibType = { keyType: string; lib: unknown }; - -export type V4TSSLibType = typeof TssFrostLib | typeof TssDklsLib; +export type V4TSSLibType = typeof TssDklsLib | typeof TssFrostLibEd25519 | typeof TssFrostLibBip340; export type TssLibType = V4TSSLibType | V3TSSLibType; + export interface IStorage { getItem(key: string): string | null; setItem(key: string, value: string): void; @@ -457,8 +458,15 @@ export interface TkeyLocalStoreData { factorKey: string; } +export enum SigType { + ecdsa_secp256k1 = "ecdsa-secp256k1", + ed25519 = "ed25519", + bip340 = "bip340", +} + export interface CoreKitSigner { keyType: KeyType; + sigType: SigType; sign(data: Buffer, hashed?: boolean): Promise; getPubKey(): Buffer; } diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 7d6d8307..322c923f 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -3,18 +3,19 @@ import { CoreError } from "@tkey/core"; import { ShareSerializationModule } from "@tkey/share-serialization"; import { TorusStorageLayer } from "@tkey/storage-layer-torus"; import { factorKeyCurve, getPubKeyPoint, lagrangeInterpolation, TKeyTSS, TSSTorusServiceProvider } from "@tkey/tss"; -import { KEY_TYPE, SIGNER_MAP } from "@toruslabs/constants"; +import { SIGNER_MAP } from "@toruslabs/constants"; import { AGGREGATE_VERIFIER, TORUS_METHOD, TorusAggregateLoginResponse, TorusLoginResponse, UX_MODE } from "@toruslabs/customauth"; import type { UX_MODE_TYPE } from "@toruslabs/customauth/dist/types/utils/enums"; -import { Ed25519Curve } from "@toruslabs/elliptic-wrapper"; +import { Ed25519Curve, Secp256k1Curve } from "@toruslabs/elliptic-wrapper"; import { fetchLocalConfig } from "@toruslabs/fnd-base"; import { keccak256 } from "@toruslabs/metadata-helpers"; import { SessionManager } from "@toruslabs/session-manager"; import { Torus as TorusUtils, TorusKey } from "@toruslabs/torus.js"; import { Client, getDKLSCoeff, setupSockets } from "@toruslabs/tss-client"; import type { WasmLib as DKLSWasmLib } from "@toruslabs/tss-dkls-lib"; -import { sign as signEd25519 } from "@toruslabs/tss-frost-client"; -import type { WasmLib as FrostWasmLib } from "@toruslabs/tss-frost-lib"; +import { sign as signFrost } from "@toruslabs/tss-frost-client"; +import type { WasmLib as FrostWasmLibEd25519 } from "@toruslabs/tss-frost-lib"; +import type { WasmLib as FrostWasmLibBip340 } from "@toruslabs/tss-frost-lib-bip340"; import BN from "bn.js"; import bowser from "bowser"; import { ec as EC } from "elliptic"; @@ -45,6 +46,7 @@ import { OAuthLoginParams, Secp256k1PrecomputedClient, SessionData, + SigType, SubVerifierDetailsParams, TkeyLocalStoreData, TssLibType, @@ -93,10 +95,12 @@ export class Web3AuthMPCCoreKit implements ICoreKit { private _tssLib: TssLibType; - private wasmLib: DKLSWasmLib | FrostWasmLib; + private wasmLib: DKLSWasmLib | FrostWasmLibEd25519 | FrostWasmLibBip340; private _keyType: KeyType; + private _sigType: SigType; + private atomicCallStackCounter: number = 0; constructor(options: Web3AuthOptions) { @@ -106,6 +110,22 @@ export class Web3AuthMPCCoreKit implements ICoreKit { this._tssLib = options.tssLib; this._keyType = options.tssLib.keyType as KeyType; + this._sigType = (() => { + if (!(options.tssLib as V4TSSLibType).sigType) { + if (this._keyType === "secp256k1") { + return SigType.ecdsa_secp256k1; + } else if (this._keyType === "ed25519") { + return SigType.ed25519; + } + throw CoreKitError.invalidKeyType(); + } + const sigType = (options.tssLib as V4TSSLibType).sigType as SigType; + // Check if sigType is valid SigType. + if (!Object.values(SigType).includes(sigType)) { + throw CoreKitError.invalidSigType(); + } + return sigType; + })(); const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); @@ -149,6 +169,10 @@ export class Web3AuthMPCCoreKit implements ICoreKit { return this._keyType; } + get sigType(): SigType { + return this._sigType; + } + get signatures(): string[] { return this.state?.signatures ? this.state.signatures : []; } @@ -175,7 +199,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } get supportsAccountIndex(): boolean { - return this._keyType !== KeyType.ed25519; + return this._sigType !== SigType.ed25519; } private get verifier(): string { @@ -194,7 +218,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } private get useClientGeneratedTSSKey(): boolean { - return this.keyType === KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; + return this._sigType === SigType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; } // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : @@ -233,8 +257,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); - if (this.keyType === KEY_TYPE.ED25519 && this.options.useDKG) { - throw CoreKitError.invalidConfig("DKG is not supported for ed25519 key type"); + if (this._sigType === SigType.ed25519 && this.options.useDKG) { + throw CoreKitError.invalidConfig("DKG is not supported for ed25519 signature type"); } this.torusSp = new TSSTorusServiceProvider({ @@ -745,11 +769,11 @@ export class Web3AuthMPCCoreKit implements ICoreKit { public async sign(data: Buffer, hashed: boolean = false, secp256k1Precompute?: Secp256k1PrecomputedClient): Promise { this.wasmLib = await this.loadTssWasm(); - if (this.keyType === KeyType.secp256k1) { + if (this._sigType === SigType.ecdsa_secp256k1) { const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); - } else if (this.keyType === KeyType.ed25519) { - return this.sign_ed25519(data, hashed); + } else if (this._sigType === SigType.ed25519 || this._sigType === SigType.bip340) { + return this.sign_frost(data, hashed); } throw CoreKitError.default(`sign not supported for key type ${this.keyType}`); } @@ -890,12 +914,9 @@ export class Web3AuthMPCCoreKit implements ICoreKit { * * Exports the private key scalar for the current account index. * - * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. + * For signature type ed25519, consider using _UNSAFE_exportTssEd25519Seed. */ public async _UNSAFE_exportTssKey(): Promise { - if (this.keyType !== KeyType.secp256k1) { - throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is secp256k1"); - } if (!this.state.factorKey) { throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss key."); } @@ -921,8 +942,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { * flow has been used. */ public async _UNSAFE_exportTssEd25519Seed(): Promise { - if (this.keyType !== KeyType.ed25519) { - throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is ed25519"); + if (this._sigType !== SigType.ed25519) { + throw CoreKitError.default("Wrong signature type. Method can only be used when signature type is ed25519."); } if (!this.state.factorKey) throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); if (!this.state.signatures) throw CoreKitError.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed."); @@ -992,14 +1013,14 @@ export class Web3AuthMPCCoreKit implements ICoreKit { let importTssKey = providedImportTssKey; if (!existingUser) { if (!importTssKey && this.useClientGeneratedTSSKey) { - if (this.keyType === KeyType.ed25519) { + if (this._sigType === SigType.ed25519) { const k = generateEd25519Seed(); importTssKey = k.toString("hex"); } else if (this.keyType === KeyType.secp256k1) { const k = secp256k1.genKeyPair().getPrivate(); importTssKey = scalarBNToBufferSEC1(k).toString("hex"); } else { - throw CoreKitError.default("Unsupported key type"); + throw CoreKitError.default(`Unsupported key type and sig type combination: ${this.keyType}, ${this._sigType}`); } } await this.handleNewUser(importTssKey); @@ -1385,28 +1406,40 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } } - private async sign_ed25519(data: Buffer, hashed: boolean = false): Promise { + private async sign_frost(data: Buffer, hashed: boolean = false): Promise { if (hashed) { - throw CoreKitError.default("hashed data not supported for ed25519"); + throw CoreKitError.default(`hashed data not supported for ${this._sigType}`); } - const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, "ed25519"); + const serverEndpoints = (() => { + // We have to fix the key type to `ed25519` for now, because we would get + // the DKLS tss server endpoints otherwise. + const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, "ed25519"); + // Endpoints must end with backslash, but URLs returned by + // `fetch-node-details` don't have it. + return nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ index: nodeDetails.torusIndexes[i], url: `${ep}/` })); + })(); + + const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); if (!nodeDetails.torusNodeTSSEndpoints) { throw CoreKitError.default("could not fetch tss node endpoints"); } - // Endpoints must end with backslash, but URLs returned by - // `fetch-node-details` don't have it. - const ED25519_ENDPOINTS = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ index: nodeDetails.torusIndexes[i], url: `${ep}/` })); - // Select endpoints and derive party indices. - const serverThreshold = Math.floor(ED25519_ENDPOINTS.length / 2) + 1; - const endpoints = sampleEndpoints(ED25519_ENDPOINTS, serverThreshold); + const serverThreshold = Math.floor(serverEndpoints.length / 2) + 1; + const endpoints = sampleEndpoints(serverEndpoints, serverThreshold); const serverXCoords = endpoints.map((x) => x.index); const clientXCoord = Math.max(...endpoints.map((ep) => ep.index)) + 1; // Derive share coefficients for flat hierarchy. - const ec = new Ed25519Curve(); + const ec = (() => { + if (this.keyType === KeyType.secp256k1) { + return new Secp256k1Curve(); + } else if (this.keyType === KeyType.ed25519) { + return new Ed25519Curve(); + } + throw CoreKitError.default(`key type ${this.keyType} not supported with FROST signing`); + })(); const { serverCoefficients, clientCoefficient } = deriveShareCoefficients(ec, serverXCoords, clientXCoord, this.state.tssShareIndex); // Get pub key. @@ -1414,7 +1447,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { const tssPubKeyPoint = ec.keyFromPublic(tssPubKey).getPublic(); // Get client key share and adjust by coefficient. - if (this.state.accountIndex !== 0) { + if (this._sigType === "ed25519" && this.state.accountIndex !== 0) { throw CoreKitError.default("Account index not supported for ed25519"); } const { tssShare } = await this.tKey.getTSSShare(this.state.factorKey); @@ -1430,8 +1463,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { const serverURLs = endpoints.map((x) => x.url); const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); const serverCoefficientsHex = serverCoefficients.map((c) => ec.scalarToBuffer(c, Buffer).toString("hex")); - const signature = await signEd25519( - this.wasmLib as FrostWasmLib, + const signature = await signFrost( + this.wasmLib as FrostWasmLibEd25519 | FrostWasmLibBip340, session, this.signatures, serverXCoords, @@ -1450,10 +1483,9 @@ export class Web3AuthMPCCoreKit implements ICoreKit { private async loadTssWasm() { if (this.wasmLib) return this.wasmLib; if (typeof (this._tssLib as V4TSSLibType).load === "function") { - // dont wait for wasm to be loaded, we can reload it during signing if not loaded return (this._tssLib as V4TSSLibType).load(); } else if ((this._tssLib as V3TSSLibType).lib) { - return (this._tssLib as V3TSSLibType).lib as DKLSWasmLib | FrostWasmLib; + return (this._tssLib as V3TSSLibType).lib as DKLSWasmLib | FrostWasmLibEd25519 | FrostWasmLibBip340; } } } From 217edd2d8353a761466b11e4e90dbbc305e9655e Mon Sep 17 00:00:00 2001 From: Matthias Geihs Date: Thu, 21 Nov 2024 16:23:32 +0100 Subject: [PATCH 02/37] add bip340 test --- package-lock.json | 63 ++++++++++----- package.json | 3 +- src/mpcCoreKit.ts | 20 ++++- tests/bip340.spec.ts | 153 +++++++++++++++++++++++++++++++++++ tests/importRecovery.spec.ts | 4 +- tests/setup.ts | 4 +- 6 files changed, 222 insertions(+), 25 deletions(-) create mode 100644 tests/bip340.spec.ts diff --git a/package-lock.json b/package-lock.json index 04c890fe..f7670215 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,6 +33,7 @@ }, "devDependencies": { "@babel/register": "^7.25.7", + "@noble/curves": "^1.6.0", "@toruslabs/config": "^2.2.0", "@toruslabs/eslint-config-typescript": "^3.3.3", "@toruslabs/torus-scripts": "^6.1.2", @@ -2959,12 +2960,27 @@ } }, "node_modules/@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", + "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", "license": "MIT", "dependencies": { - "@noble/hashes": "1.4.0" + "@noble/hashes": "1.5.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -3615,6 +3631,18 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@scure/bip39": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", @@ -4490,21 +4518,6 @@ "bn.js": "^5.2.1" } }, - "node_modules/@toruslabs/tss-client/node_modules/@noble/curves": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", - "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.5.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@toruslabs/tss-client/node_modules/@noble/hashes": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", @@ -8616,6 +8629,18 @@ "@scure/bip39": "1.3.0" } }, + "node_modules/ethereum-cryptography/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", diff --git a/package.json b/package.json index f76bdd77..8a04df01 100644 --- a/package.json +++ b/package.json @@ -55,8 +55,8 @@ "@toruslabs/fetch-node-details": "^14.0.1", "@toruslabs/fnd-base": "^14.0.0", "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/session-manager": "^3.1.0", "@toruslabs/openlogin-utils": "^8.2.1", + "@toruslabs/session-manager": "^3.1.0", "@toruslabs/torus.js": "^15.1.0", "@toruslabs/tss-client": "^3.3.0-alpha.0", "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", @@ -68,6 +68,7 @@ }, "devDependencies": { "@babel/register": "^7.25.7", + "@noble/curves": "^1.6.0", "@toruslabs/config": "^2.2.0", "@toruslabs/eslint-config-typescript": "^3.3.3", "@toruslabs/torus-scripts": "^6.1.2", diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 322c923f..11c21b4a 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -672,13 +672,31 @@ export class Web3AuthMPCCoreKit implements ICoreKit { /** * Get public key in ed25519 format. * - * Throws an error if keytype is not compatible with ed25519. + * Throws an error if signature type is not ed25519. */ public getPubKeyEd25519(): Buffer { + if (this._sigType !== SigType.ed25519) { + throw CoreKitError.default(`getPubKeyEd25519 not supported for signature type ${this.sigType}`); + } + const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); return ed25519().keyFromPublic(p).getPublic(); } + /** + * Get public key in bip340 format. + * + * Throws an error if signature type is not bip340. + */ + public getPubKeyBip340(): Buffer { + if (this._sigType !== SigType.bip340) { + throw CoreKitError.default(`getPubKeyBip340 not supported for signature type ${this.sigType}`); + } + + const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); + return p.getX().toBuffer("be", 32); + } + public async precompute_secp256k1(): Promise<{ client: Client; serverCoeffs: Record; diff --git a/tests/bip340.spec.ts b/tests/bip340.spec.ts new file mode 100644 index 00000000..298d1009 --- /dev/null +++ b/tests/bip340.spec.ts @@ -0,0 +1,153 @@ +import assert from "node:assert"; +import test from "node:test"; + +import { EllipticPoint } from "@tkey/common-types"; +import { UX_MODE_TYPE } from "@toruslabs/customauth"; +import { tssLib } from "@toruslabs/tss-frost-lib-bip340"; +import BN from "bn.js"; +import { schnorr as bip340 } from '@noble/curves/secp256k1'; + +import { AsyncStorage, COREKIT_STATUS, MemoryStorage, WEB3AUTH_NETWORK, WEB3AUTH_NETWORK_TYPE, Web3AuthMPCCoreKit } from "../src"; +import { bufferToElliptic, criticalResetAccount, mockLogin, mockLogin2 } from "./setup"; + +type TestVariable = { + web3AuthNetwork: WEB3AUTH_NETWORK_TYPE; + uxMode: UX_MODE_TYPE | "nodejs"; + manualSync?: boolean; + email: string; +}; + +const defaultTestEmail = "testEmailForLoginBip340"; +const variable: TestVariable[] = [ + { web3AuthNetwork: WEB3AUTH_NETWORK.DEVNET, uxMode: "nodejs", email: defaultTestEmail }, + // { web3AuthNetwork: WEB3AUTH_NETWORK.MAINNET, uxMode: UX_MODE.REDIRECT, email: defaultTestEmail }, + + { web3AuthNetwork: WEB3AUTH_NETWORK.DEVNET, uxMode: "nodejs", manualSync: true, email: defaultTestEmail }, + // { web3AuthNetwork: WEB3AUTH_NETWORK.MAINNET, uxMode: UX_MODE.REDIRECT, manualSync: true, email: defaultTestEmail }, +]; + +const checkLogin = async (coreKitInstance: Web3AuthMPCCoreKit, accountIndex = 0) => { + const keyDetails = coreKitInstance.getKeyDetails(); + assert.strictEqual(coreKitInstance.status, COREKIT_STATUS.LOGGED_IN); + assert.strictEqual(keyDetails.requiredFactors, 0); + const factorkey = coreKitInstance.getCurrentFactorKey(); + await coreKitInstance.tKey.getTSSShare(new BN(factorkey.factorKey, "hex"), { + accountIndex, + }); +}; + +const storageInstance = new MemoryStorage(); + +variable.forEach((testVariable) => { + const { web3AuthNetwork, uxMode, manualSync, email } = testVariable; + const newCoreKitInstance = () => + new Web3AuthMPCCoreKit({ + web3AuthClientId: "torus-key-test", + web3AuthNetwork, + baseUrl: "http://localhost:3000", + uxMode, + tssLib, + storage: storageInstance, + manualSync, + }); + + async function resetAccount() { + const resetInstance = newCoreKitInstance(); + const { idToken, parsedToken } = await mockLogin(email); + await resetInstance.init({ handleRedirectResult: false, rehydrate: false }); + await resetInstance.loginWithJWT({ + verifier: "torus-test-health", + verifierId: parsedToken.email, + idToken, + }); + await criticalResetAccount(resetInstance); + await new AsyncStorage(resetInstance._storageKey, storageInstance).resetStore(); + } + + const testNameSuffix = JSON.stringify(testVariable); + + let checkPubKey: EllipticPoint; + let checkTssShare: BN; + + test(`#Login Test with JWT + logout: ${testNameSuffix}`, async (t) => { + await resetAccount(); + await t.test("#Login", async function () { + const coreKitInstance = newCoreKitInstance(); + + // mocklogin + const { idToken, parsedToken } = await mockLogin(email); + await coreKitInstance.init({ handleRedirectResult: false }); + await coreKitInstance.loginWithJWT({ + verifier: "torus-test-health", + verifierId: parsedToken.email, + idToken, + }); + // get key details + await checkLogin(coreKitInstance); + + checkPubKey = bufferToElliptic(coreKitInstance.getPubKey(), coreKitInstance.tKey.tssCurve); + const factorkey = coreKitInstance.getCurrentFactorKey(); + const { tssShare } = await coreKitInstance.tKey.getTSSShare(new BN(factorkey.factorKey, "hex"), { + threshold: 0, + }); + checkTssShare = tssShare; + + if (manualSync) { + await coreKitInstance.commitChanges(); + } + // check whether the public key and tss share is same as old sdks + }); + + await t.test("#relogin ", async function () { + const coreKitInstance = newCoreKitInstance(); + // rehydrate + await coreKitInstance.init({ handleRedirectResult: false }); + await checkLogin(coreKitInstance); + + // logout + await coreKitInstance.logout(); + + // rehydrate should fail + await coreKitInstance.init({ + rehydrate: false, + handleRedirectResult: false, + }); + assert.strictEqual(coreKitInstance.status, COREKIT_STATUS.INITIALIZED); + assert.throws(() => coreKitInstance.getCurrentFactorKey()); + + // relogin + const { idToken, parsedToken } = await mockLogin(email); + await coreKitInstance.loginWithJWT({ + verifier: "torus-test-health", + verifierId: parsedToken.email, + idToken, + }); + + // get key details + await checkLogin(coreKitInstance); + const newPubKey = bufferToElliptic(coreKitInstance.getPubKey(), coreKitInstance.tKey.tssCurve); + const factorkey = coreKitInstance.getCurrentFactorKey(); + const { tssShare: newTssShare } = await coreKitInstance.tKey.getTSSShare(new BN(factorkey.factorKey, "hex")); + assert(checkPubKey.eq(newPubKey)); + assert(checkTssShare.eq(newTssShare)); + }); + + await t.test("#able to sign", async function () { + const coreKitInstance = newCoreKitInstance(); + await coreKitInstance.init({ handleRedirectResult: false, rehydrate: false }); + const localToken = await mockLogin2(email); + await coreKitInstance.loginWithJWT({ + verifier: "torus-test-health", + verifierId: email, + idToken: localToken.idToken, + }); + const msg = "hello world"; + const msgBuffer = Buffer.from(msg); + + const signature = await coreKitInstance.sign(msgBuffer); + const pk = coreKitInstance.getPubKeyBip340(); + const valid = bip340.verify(signature, msgBuffer, pk); + assert(valid); + }); + }); +}); diff --git a/tests/importRecovery.spec.ts b/tests/importRecovery.spec.ts index d7bb18b3..8d3bbc8e 100644 --- a/tests/importRecovery.spec.ts +++ b/tests/importRecovery.spec.ts @@ -4,14 +4,14 @@ import test from "node:test"; import { tssLib as tssLibDKLS } from "@toruslabs/tss-dkls-lib"; import { tssLib as tssLibFROST } from "@toruslabs/tss-frost-lib"; -import { AsyncStorage, MemoryStorage, TssLib, TssShareType, WEB3AUTH_NETWORK } from "../src"; +import { AsyncStorage, MemoryStorage, TssLibType, TssShareType, WEB3AUTH_NETWORK } from "../src"; import { bufferToElliptic, criticalResetAccount, newCoreKitLogInInstance } from "./setup"; type ImportKeyTestVariable = { manualSync?: boolean; email: string; importKeyEmail: string; - tssLib: TssLib; + tssLib: TssLibType; }; const storageInstance = new MemoryStorage(); diff --git a/tests/setup.ts b/tests/setup.ts index ed768178..596ca177 100644 --- a/tests/setup.ts +++ b/tests/setup.ts @@ -4,7 +4,7 @@ import BN from "bn.js"; import jwt, { Algorithm } from "jsonwebtoken"; import { tssLib as tssLibDKLS } from "@toruslabs/tss-dkls-lib"; -import { IAsyncStorage, IStorage, parseToken, TssLib, WEB3AUTH_NETWORK_TYPE, Web3AuthMPCCoreKit } from "../src"; +import { IAsyncStorage, IStorage, parseToken, TssLibType, WEB3AUTH_NETWORK_TYPE, Web3AuthMPCCoreKit } from "../src"; export const mockLogin2 = async (email: string) => { const req = new Request("https://li6lnimoyrwgn2iuqtgdwlrwvq0upwtr.lambda-url.eu-west-1.on.aws/", { @@ -97,7 +97,7 @@ export const newCoreKitLogInInstance = async ({ manualSync: boolean; email: string; storageInstance: IStorage | IAsyncStorage; - tssLib?: TssLib; + tssLib?: TssLibType; importTssKey?: string; login?: LoginFunc; }) => { From e43fa477bd5bf2ecd65558bae38b4239b035c7ee Mon Sep 17 00:00:00 2001 From: himanshu Date: Tue, 26 Nov 2024 00:38:36 +0530 Subject: [PATCH 03/37] custom session sig setter --- src/interfaces.ts | 1 + src/mpcCoreKit.ts | 74 +++++++++++++++++++++++++---------------------- 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/src/interfaces.ts b/src/interfaces.ts index 4795c224..782035e4 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -477,4 +477,5 @@ export interface EthereumSigner { export interface Secp256k1PrecomputedClient { client: Client; serverCoeffs: Record; + signatures: string[]; } diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 7d6d8307..ae7e60d8 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -75,6 +75,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { public torusSp: TSSTorusServiceProvider | null = null; + public fetchSessionSignatures: () => Promise; + private options: Web3AuthOptionsWithDefaults; private storageLayer: TorusStorageLayer | null = null; @@ -124,7 +126,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; if (options.disableSessionManager === undefined) options.disableSessionManager = false; - + this.fetchSessionSignatures = () => Promise.resolve(this.signatures); this.options = options as Web3AuthOptionsWithDefaults; this.currentStorage = new AsyncStorage(this._storageBaseKey, options.storage); @@ -153,6 +155,10 @@ export class Web3AuthMPCCoreKit implements ICoreKit { return this.state?.signatures ? this.state.signatures : []; } + get config(): Web3AuthOptionsWithDefaults { + return this.options; + } + public get _storageKey(): string { return this._storageBaseKey; } @@ -197,6 +203,10 @@ export class Web3AuthMPCCoreKit implements ICoreKit { return this.keyType === KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; } + public setSessionSigGenerator(sessionSigGenerator: () => Promise) { + this.fetchSessionSignatures = sessionSigGenerator; + } + // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : // TssShareType.DEVICE and TssShareType.RECOVERY // if the factors key provided is the same type recovery will not works @@ -331,12 +341,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { if (this.isRedirectMode) return; - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: loginResponse.nodesData?.nodeIndexes, - userInfo: loginResponse.userInfo, - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData), - }); + await this._finalizeOauthLogin(loginResponse, loginResponse.userInfo, true, importTssKey); } else if (aggregateParams.subVerifierDetailsArray) { const loginResponse = await tkeyServiceProvider.triggerAggregateLogin({ aggregateVerifierType: aggregateParams.aggregateVerifierType || AGGREGATE_VERIFIER.SINGLE_VERIFIER_ID, @@ -346,15 +351,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { if (this.isRedirectMode) return; - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: loginResponse.nodesData?.nodeIndexes, - userInfo: loginResponse.userInfo[0], - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData), - }); + await this._finalizeOauthLogin(loginResponse, loginResponse.userInfo[0], true, importTssKey); } - - await this.setupTkey(importTssKey); } catch (err: unknown) { log.error("login error", err); if (err instanceof CoreError) { @@ -401,18 +399,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { // wait for prefetch completed before setup tkey const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]); - - const postBoxKey = this._getPostBoxKey(loginResponse); - - this.torusSp.postboxKey = new BN(postBoxKey, "hex"); - - this.updateState({ - postBoxKey, - postboxKeyNodeIndexes: loginResponse.nodesData?.nodeIndexes || [], - userInfo: { ...parseToken(idToken), verifier, verifierId }, - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData), - }); - await this.setupTkey(importTssKey); + const userInfo = { ...parseToken(idToken), verifier, verifierId }; + await this._finalizeOauthLogin(loginResponse, userInfo, true, importTssKey); } catch (err: unknown) { log.error("login error", err); if (err instanceof CoreError) { @@ -478,6 +466,20 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } } + public async _finalizeOauthLogin(loginResponse: TorusKey, userInfo: UserInfo, persistSessionSigs = true, importTssKey?: string): Promise { + const postBoxKey = this._getPostBoxKey(loginResponse); + this.torusSp.postboxKey = new BN(postBoxKey, "hex"); + + this.updateState({ + postBoxKey, + postboxKeyNodeIndexes: loginResponse.nodesData?.nodeIndexes, + userInfo, + signatures: persistSessionSigs ? this._getSignatures(loginResponse.sessionData.sessionTokenData) : [], + }); + + await this.setupTkey(importTssKey); + } + public async inputFactorKey(factorKey: BN): Promise { this.checkReady(); try { @@ -658,6 +660,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { public async precompute_secp256k1(): Promise<{ client: Client; serverCoeffs: Record; + signatures: string[]; }> { this.wasmLib = await this.loadTssWasm(); // PreSetup @@ -707,7 +710,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { throw CoreKitError.activeSessionNotFound(); } - const { signatures } = this; + const signatures = await this.fetchSessionSignatures(); if (!signatures) { throw CoreKitError.signaturesNotPresent(); } @@ -740,6 +743,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { return { client, serverCoeffs, + signatures, }; } @@ -774,7 +778,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { throw CoreKitError.factorInUseCannotBeDeleted("Cannot delete current active factor"); } - await this.tKey.deleteFactorPub({ factorKey: this.state.factorKey, deleteFactorPub: factorPub, authSignatures: this.signatures }); + const authSignatures = await this.fetchSessionSignatures(); + await this.tKey.deleteFactorPub({ factorKey: this.state.factorKey, deleteFactorPub: factorPub, authSignatures }); const factorPubHex = fpp.toSEC1(factorKeyCurve, true).toString("hex"); const allDesc = this.tKey.metadata.getShareDescription(); const keyDesc = allDesc[factorPubHex]; @@ -1224,11 +1229,11 @@ export class Web3AuthMPCCoreKit implements ICoreKit { if (this.tKey.metadata.factorPubs[this.tKey.tssTag].length >= MAX_FACTORS) { throw CoreKitError.maximumFactorsReached(`The maximum number of allowable factors (${MAX_FACTORS}) has been reached.`); } - + const authSignatures = await this.fetchSessionSignatures(); // Generate new share. await this.tkey.addFactorPub({ existingFactorKey: this.state.factorKey, - authSignatures: this.signatures, + authSignatures, newFactorPub, newTSSIndex: newFactorTSSIndex, refreshShares: this.state.tssShareIndex !== newFactorTSSIndex, // Refresh shares if we have a new factor key index. @@ -1364,9 +1369,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } const isAlreadyPrecomputed = precomputedTssClient?.client && precomputedTssClient?.serverCoeffs; - const { client, serverCoeffs } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); + const { client, serverCoeffs, signatures } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); - const { signatures } = this; if (!signatures) { throw CoreKitError.signaturesNotPresent(); } @@ -1430,10 +1434,12 @@ export class Web3AuthMPCCoreKit implements ICoreKit { const serverURLs = endpoints.map((x) => x.url); const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); const serverCoefficientsHex = serverCoefficients.map((c) => ec.scalarToBuffer(c, Buffer).toString("hex")); + const authSignatures = await this.fetchSessionSignatures(); + const signature = await signEd25519( this.wasmLib as FrostWasmLib, session, - this.signatures, + authSignatures, serverXCoords, serverURLs, clientXCoord, From 5d6aa4e1f1d390da814bcd6c2d7cda52b413075b Mon Sep 17 00:00:00 2001 From: himanshu Date: Tue, 26 Nov 2024 16:14:08 +0530 Subject: [PATCH 04/37] passkey registration --- demo/redirect-flow-example/package-lock.json | 3703 ++++++++++++++++-- demo/redirect-flow-example/package.json | 3 +- demo/redirect-flow-example/src/App.css | 2 +- demo/redirect-flow-example/src/App.test.tsx | 14 +- demo/redirect-flow-example/src/App.tsx | 54 +- package-lock.json | 12 +- package.json | 2 +- 7 files changed, 3547 insertions(+), 243 deletions(-) diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index 455648b1..b3fab0a5 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -18,7 +18,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "file:../..", + "@web3auth/mpc-core-kit": "file:../../web3auth-mpc-core-kit-3.2.6.tgz", + "@web3auth/mpc-passkey-plugin": "file:../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin/", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", @@ -52,80 +53,32 @@ "url": "^0.11.4" } }, - "../..": { - "name": "@web3auth/mpc-core-kit", - "version": "3.2.4", + "../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin": { + "name": "@web3auth/mpc-passkey-plugin", + "version": "0.0.0", "license": "ISC", "dependencies": { - "@tkey/common-types": "^15.1.0", - "@tkey/core": "^15.1.0", - "@tkey/share-serialization": "^15.1.0", - "@tkey/storage-layer-torus": "^15.1.0", - "@tkey/tss": "^15.1.0", - "@toruslabs/constants": "^14.0.0", - "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.0", + "@simplewebauthn/browser": "^11.0.0", + "@simplewebauthn/types": "^11.0.0", + "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/http-helpers": "^7.0.0", "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/openlogin-utils": "^8.2.1", - "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "^15.1.0", - "@toruslabs/tss-client": "^3.1.0", - "@toruslabs/tss-frost-client": "0.3.1", - "@toruslabs/tss-frost-common": "^1.0.1", - "bn.js": "^5.2.1", - "bowser": "^2.11.0", - "elliptic": "^6.5.7", + "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.2.tgz", + "@web3auth/auth": "^9.4.1", + "@web3auth/mpc-core-kit": "file:./web3auth-mpc-core-kit-3.2.7.tgz", + "base64url": "^3.0.1", + "cbor-x": "^1.6.0", "loglevel": "^1.9.2" }, - "devDependencies": { - "@babel/register": "^7.25.7", - "@toruslabs/config": "^2.2.0", - "@toruslabs/eslint-config-typescript": "^3.3.3", - "@toruslabs/torus-scripts": "^6.1.2", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", - "@types/chai": "^4.3.16", - "@types/elliptic": "^6.4.18", - "@types/jsonwebtoken": "^9.0.7", - "@types/node": "^20.14.0", - "@typescript-eslint/eslint-plugin": "^6.7.0", - "chai": "^5.1.1", - "cross-env": "^7.0.3", - "dotenv": "^16.4.5", - "esbuild-register": "^3.6.0", - "eslint": "^8.56.0", - "husky": "^9.1.6", - "jsonwebtoken": "^9.0.2", - "lint-staged": "^15.2.10", - "mocha": "^10.7.3", - "node-fetch": "^3.3.2", - "prettier": "^3.3.3", - "rimraf": "^6.0.1", - "ts-node": "^10.9.2", - "tsconfig-paths": "^4.2.0", - "tsconfig-paths-webpack-plugin": "^4.1.0", - "tslib": "^2.7.0", - "typescript": "^5.6.3" - }, "engines": { - "node": ">=20.x" - }, - "peerDependencies": { - "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0" - }, - "peerDependenciesMeta": { - "@toruslabs/tss-dkls-lib": { - "optional": true - }, - "@toruslabs/tss-frost-lib": { - "optional": true - } + "node": ">=18.x", + "npm": ">=9.x" } }, + "../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin/dist": { + "extraneous": true + }, "node_modules/@adraffy/ens-normalize": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", @@ -836,6 +789,131 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT", + "peer": true + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@ethereumjs/rlp": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", @@ -861,6 +939,68 @@ "node": ">=18" } }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "license": "BSD-3-Clause", + "peer": true + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -920,6 +1060,52 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@microsoft/tsdoc": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", + "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", + "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.15.0", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@noble/ciphers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.0.0.tgz", + "integrity": "sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@noble/curves": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", @@ -960,7 +1146,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -974,7 +1159,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -984,7 +1168,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -1010,6 +1193,18 @@ "node": ">= 10" } }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.24.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", @@ -1233,6 +1428,18 @@ ], "peer": true }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "license": "MIT" + }, "node_modules/@scure/base": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", @@ -1333,20 +1540,20 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/base-controllers": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-6.2.4.tgz", - "integrity": "sha512-VRki0iYnSL3Chy2W/mwk2dc3tiLuSR5a/dwaapCNn3SgMGIEgnJMwq1wNQO1l5eaHgl3eN7b/IL8Y2DfqHnW4g==", + "node_modules/@tkey/core": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/core/-/core-15.1.0.tgz", + "integrity": "sha512-JaFprczHR8fBEw1LrwKs87ASgpZagxQ9VZ6lAfAAI8jEh1yhz8djh9l2wzJbaFuLEOQskh7GoxpKfgB+YtBSmw==", + "license": "MIT", "dependencies": { - "@ethereumjs/util": "^9.1.0", - "@toruslabs/broadcast-channel": "^11.0.0", + "@tkey/common-types": "^15.1.0", + "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", - "@web3auth/auth": "^9.3.3", - "async-mutex": "^0.5.0", - "bignumber.js": "^9.1.2", - "bowser": "^2.11.0", - "jwt-decode": "^4.0.0", - "loglevel": "^1.9.2" + "@toruslabs/torus.js": "^15.1.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.5", + "ethereum-cryptography": "^2.1.3", + "json-stable-stringify": "^1.1.1" }, "engines": { "node": ">=18.x", @@ -1356,30 +1563,16 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/broadcast-channel": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/broadcast-channel/-/broadcast-channel-11.0.0.tgz", - "integrity": "sha512-nnM5yjQGzmCiie37G4Ks+5VsPjMrcY/81tga5ASb/u5TbZhSPQUw0CSW42Q9uBtR8sZbsHU06cPZ8j0z6LeAUg==", + "node_modules/@tkey/service-provider-base": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/service-provider-base/-/service-provider-base-15.1.0.tgz", + "integrity": "sha512-MruUxiWwyRczZ8KlhhGJ2TQ/p+VFPMOQZ089B5SIi7UsTOBMlzRqJWP3lM2fBSyQsfJCzpzXkj9a29ecpRZe0g==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.24.7", - "@toruslabs/eccrypto": "^5.0.0", - "@toruslabs/metadata-helpers": "^6.0.0", - "loglevel": "^1.9.1", - "oblivious-set": "1.4.0", - "socket.io-client": "^4.7.5", - "unload": "^2.4.1" + "@tkey/common-types": "^15.1.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.5" }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - } - }, - "node_modules/@toruslabs/bs58": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/bs58/-/bs58-1.0.0.tgz", - "integrity": "sha512-osqIgm1MzEB6+fkaQeEUg4tuZXmhhXTn+K7+nZU7xDBcy+8Yr3eGNqJcQ4jds82g+dhkk2cBkge9sffv38iDQQ==", - "license": "MIT", "engines": { "node": ">=18.x", "npm": ">=9.x" @@ -1388,11 +1581,19 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/constants": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.0.0.tgz", - "integrity": "sha512-c0lrqxxiR0FL+XdtbX+77PWTeB8izFUrnPwkF2pjjfXlMJLukAWPLhALpmZmqlGmJApT8kJbMN7be2LurAGa1g==", + "node_modules/@tkey/service-provider-torus": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/service-provider-torus/-/service-provider-torus-15.1.0.tgz", + "integrity": "sha512-7tA/1ALPo4ToXvwTwMj9OF0wh97S3p1sCeilwRcfyxBMJGpaDW8MSbiAbPqaSkK/DT3AFxlkHwAXWYYZ4+ZueQ==", "license": "MIT", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@tkey/service-provider-base": "^15.1.0", + "@toruslabs/customauth": "^20.3.0", + "@toruslabs/torus.js": "^15.1.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.5" + }, "engines": { "node": ">=18.x", "npm": ">=9.x" @@ -1401,8 +1602,146 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/customauth": { - "version": "20.3.0", + "node_modules/@tkey/share-serialization": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/share-serialization/-/share-serialization-15.1.0.tgz", + "integrity": "sha512-n8jf6WDAWcWKFUr/nSnBURxX8vlXCQjJOfQUchiqvvUFlExeDqXqJq8I5icn2hjxKqANNcXVf1vKSvOCxPCAng==", + "license": "MIT", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "bn.js": "^5.2.1", + "ethereum-cryptography": "^2.2.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@tkey/storage-layer-torus": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/storage-layer-torus/-/storage-layer-torus-15.1.0.tgz", + "integrity": "sha512-ZRk1FclOEomd7KAE3evKc/4Nk9I//RW20Bq2UrSPyKGf5YeTbDTaglAK0GrcG5CPtCpVLqh348Bw6hvGzjArag==", + "license": "MIT", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@toruslabs/http-helpers": "^7.0.0", + "base64url": "3.0.1", + "bn.js": "^5.2.1", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@tkey/tss": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/tss/-/tss-15.1.0.tgz", + "integrity": "sha512-UcbJbWscIL83Zh1/i6M+X/xhN4EOimGV8JoWZ3D23Ji2pHPo8BgveUZA9i1DK4Y3YqqZ9aS8PvhSHt+KVnNluw==", + "license": "ISC", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@tkey/core": "^15.1.0", + "@tkey/service-provider-torus": "^15.1.0", + "@toruslabs/customauth": "^20.3.0", + "@toruslabs/rss-client": "^2.0.1", + "@toruslabs/torus.js": "^15.1.0", + "@types/bn.js": "^5.1.5", + "bn.js": "^5.2.1", + "elliptic": "^6.5.5", + "ethereum-cryptography": "^2.1.3" + } + }, + "node_modules/@toruslabs/base-controllers": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-6.2.4.tgz", + "integrity": "sha512-VRki0iYnSL3Chy2W/mwk2dc3tiLuSR5a/dwaapCNn3SgMGIEgnJMwq1wNQO1l5eaHgl3eN7b/IL8Y2DfqHnW4g==", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/broadcast-channel": "^11.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.3.3", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@toruslabs/broadcast-channel": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@toruslabs/broadcast-channel/-/broadcast-channel-11.0.0.tgz", + "integrity": "sha512-nnM5yjQGzmCiie37G4Ks+5VsPjMrcY/81tga5ASb/u5TbZhSPQUw0CSW42Q9uBtR8sZbsHU06cPZ8j0z6LeAUg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@toruslabs/eccrypto": "^5.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "loglevel": "^1.9.1", + "oblivious-set": "1.4.0", + "socket.io-client": "^4.7.5", + "unload": "^2.4.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + } + }, + "node_modules/@toruslabs/bs58": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@toruslabs/bs58/-/bs58-1.0.0.tgz", + "integrity": "sha512-osqIgm1MzEB6+fkaQeEUg4tuZXmhhXTn+K7+nZU7xDBcy+8Yr3eGNqJcQ4jds82g+dhkk2cBkge9sffv38iDQQ==", + "license": "MIT", + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@toruslabs/config": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/config/-/config-2.2.0.tgz", + "integrity": "sha512-gH69an6qIVEP9W/YkPmroBrqoPfIf8aoBSGC6ZAcc4ihXDeyByXtdpThZ+wm9TSWMYsjewhZVstRAZeaE3zp9w==", + "license": "MIT", + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.16" + } + }, + "node_modules/@toruslabs/constants": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.0.0.tgz", + "integrity": "sha512-c0lrqxxiR0FL+XdtbX+77PWTeB8izFUrnPwkF2pjjfXlMJLukAWPLhALpmZmqlGmJApT8kJbMN7be2LurAGa1g==", + "license": "MIT", + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@toruslabs/customauth": { + "version": "20.3.0", "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-20.3.0.tgz", "integrity": "sha512-PxRd71s8WYvkp6Mpph8aUiU/vfq46adJOt+a/22JCRMOUMgiS1TzVAs8Eks5dpOS+FGjdowFLaJg+/UcBBoLrA==", "license": "MIT", @@ -1449,6 +1788,49 @@ "npm": ">=9.x" } }, + "node_modules/@toruslabs/elliptic-wrapper": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.1.tgz", + "integrity": "sha512-2IehQMK+OfRnJPcwNuM5b+je3+8XlPqjbQVPm85vjsSoliWO23G/2OK1635melTZYcjbxa+88l2m0wWuK/YTSg==", + "license": "ISC", + "dependencies": { + "@toruslabs/config": "^2.0.2", + "@toruslabs/eslint-config-typescript": "^3.0.3", + "bn.js": "^5.2.1", + "elliptic": "^6.5.4" + } + }, + "node_modules/@toruslabs/eslint-config-typescript": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@toruslabs/eslint-config-typescript/-/eslint-config-typescript-3.3.4.tgz", + "integrity": "sha512-i1nowtYX9Yq+mCYrPj3vY/yoIKouJT7j+wqhrFoBF6el/3rDYQgz09cwdWlh7B+BGYeuJ+Nf9RSuC1bPc0egvg==", + "license": "MIT", + "dependencies": { + "@rushstack/eslint-patch": "^1.10.4", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^18.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-config-problems": "^8.0.0", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-mocha": "^10.5.0", + "eslint-plugin-n": "^17.11.1", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-promise": "^7.1.0", + "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-tsdoc": "^0.3.0" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "eslint": "^8.x", + "prettier": "^3.x", + "typescript": "^5.x" + } + }, "node_modules/@toruslabs/fetch-node-details": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.0.1.tgz", @@ -1537,6 +1919,57 @@ "@babel/runtime": "7.x" } }, + "node_modules/@toruslabs/openlogin-utils": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@toruslabs/openlogin-utils/-/openlogin-utils-8.2.1.tgz", + "integrity": "sha512-NSOtj61NZe7w9qbd92cYwMlE/1UwPGtDH02NfUjoEEc3p1yD5U2cLZjdSwsnAgjGNgRqVomXpND4hii12lI/ew==", + "license": "ISC", + "dependencies": { + "@toruslabs/constants": "^13.2.0", + "base64url": "^3.0.1", + "color": "^4.2.3" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@toruslabs/openlogin-utils/node_modules/@toruslabs/constants": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-13.4.0.tgz", + "integrity": "sha512-CjmnMQ5Oj0bqSBGkhv7Xm3LciGJDHwe4AJ1LF6mijlP+QcCnUM5I6kVp60j7zZ/r0DT7nIEiuHHHczGpCZor0A==", + "license": "MIT", + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@toruslabs/rss-client": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@toruslabs/rss-client/-/rss-client-2.0.2.tgz", + "integrity": "sha512-kmtl7KaxTOdrftxtv/hTzz6k2RJbVFq6oPs5Vg4u4iybdQYdRzyP1HqQ3wMu9ADhiItbZAg80VP4gOCCmjao4w==", + "license": "MIT", + "dependencies": { + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@toruslabs/session-manager": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.1.0.tgz", @@ -1578,9 +2011,9 @@ } }, "node_modules/@toruslabs/torus.js": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.0.tgz", - "integrity": "sha512-ZVQzeRl8qXbaw6jVUvPjNnuY6fJjxX4k8NoNfdp+8F2Og1rBiINnASMfRVeDajc4Bg+rfbsX5HZ+T0S+F6lv1A==", + "version": "15.1.1", + "resolved": "file:../../toruslabs-torus.js-15.1.2.tgz", + "integrity": "sha512-McZ4UAZM8ljtNUOg77aDZp4ufftJT5t0cc6RSwXtytLmhn8j2oL9iaTDrvD4AzwF1ASaQFPm1UNtjLXyLl0gcA==", "license": "MIT", "dependencies": { "@toruslabs/bs58": "^1.0.0", @@ -1588,10 +2021,10 @@ "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "bn.js": "^5.2.1", - "elliptic": "^6.5.6", + "elliptic": "^6.5.7", "ethereum-cryptography": "^2.2.1", "json-stable-stringify": "^1.1.1", - "loglevel": "^1.9.1" + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", @@ -1601,11 +2034,109 @@ "@babel/runtime": "7.x" } }, + "node_modules/@toruslabs/tss-client": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-client/-/tss-client-3.2.0.tgz", + "integrity": "sha512-hDJdKOUFN7UhvojoDIiVT1rsLcGjU5SdTJFcJlrKpVZxmB+NuMWkjJvZK/SoYY6mFTnyod7/NYTCsyfrIOagvg==", + "license": "ISC", + "dependencies": { + "@toruslabs/eccrypto": "^5.0.4", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^3.0.0", + "socket.io-client": "^4.8.0" + } + }, + "node_modules/@toruslabs/tss-client-util": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-client-util/-/tss-client-util-0.1.1.tgz", + "integrity": "sha512-ePhhn8DuYI0E07Aec7tGc6XbdbizytJBhU2NFwzQ70DsyHLy0UK1Q2EdtVqp2fm8Y+8ArScVq6HqRxPE2fd0CQ==", + "license": "ISC", + "dependencies": { + "bn.js": "^5.2.1" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@noble/curves": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", + "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.5.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@scure/bip32": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz", + "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.6.0", + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.7" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@scure/bip39": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz", + "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.8" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/ethereum-cryptography": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.0.0.tgz", + "integrity": "sha512-Ij7U9OgVZc4MAui8BttPCEaWUrAXy+eo2IbVfIxZyfzfFxMQrbIWXRUbrsRBqRrIhJ75T8P+KQRKpKTaG0Du8Q==", + "license": "MIT", + "dependencies": { + "@noble/ciphers": "1.0.0", + "@noble/curves": "1.6.0", + "@noble/hashes": "1.5.0", + "@scure/bip32": "1.5.0", + "@scure/bip39": "1.4.0" + }, + "engines": { + "node": "^14.21.3 || >=16", + "npm": ">=9" + } + }, "node_modules/@toruslabs/tss-dkls-lib": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-4.0.0.tgz", "integrity": "sha512-XIYv4M6el0wlX/I4WEJjxDS/TcUKRrG/+PTljNumh3UrchfkNpm4uW4+d4aOHclAXbX42pi1SkRpz81+YM+Gsg==" }, + "node_modules/@toruslabs/tss-frost-client": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-client/-/tss-frost-client-0.3.1.tgz", + "integrity": "sha512-x19hWpbbAHVRWSUPt6FB4VH1vdQGiOe/aSJTts2HZtXRph/LzEGuT7FXyIOnglocYf58t5Z1nXqFEzn0rgQ49Q==", + "license": "ISC", + "dependencies": { + "@toruslabs/tss-client-util": "^0.1.1", + "@toruslabs/tss-frost-common": "^1.0.1", + "socket.io-client": "^4.7.2" + } + }, + "node_modules/@toruslabs/tss-frost-common": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-common/-/tss-frost-common-1.0.1.tgz", + "integrity": "sha512-WmunNSH9XOM/oHQ/CjsTCn4KN9eqxo4keTRV6Yf6roq/S5hzKjOoowWM86vpwPJ6mfa2Qho9bndE2CCS11nKwg==", + "license": "ISC" + }, "node_modules/@toruslabs/tss-frost-lib": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-1.0.0.tgz", @@ -1662,7 +2193,6 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -1727,6 +2257,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "license": "MIT" + }, "node_modules/@types/jsrsasign": { "version": "10.5.14", "resolved": "https://registry.npmjs.org/@types/jsrsasign/-/jsrsasign-10.5.14.tgz", @@ -1780,28 +2316,261 @@ "@types/node": "*" } }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", - "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-transform-react-jsx-self": "^7.24.7", - "@babel/plugin-transform-react-jsx-source": "^7.24.7", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@web3auth/auth": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.4.1.tgz", + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "license": "ISC", + "peer": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", + "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/@web3auth/auth": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.4.1.tgz", "integrity": "sha512-V5JNBc7VeHDmP+9VN4obAIav/NbkyZXEVJ3rD9C4SdbO/ZF3Hc+G8SdVPymJlR2JrBCsuPJiFsUatBl1hx+FSg==", "license": "MIT", "dependencies": { @@ -1949,7 +2718,52 @@ } }, "node_modules/@web3auth/mpc-core-kit": { - "resolved": "../..", + "version": "3.2.6", + "resolved": "file:../../web3auth-mpc-core-kit-3.2.6.tgz", + "integrity": "sha512-1AjLkItco15bi39+UdkS5kwUOPcLme+FzrleisaKHNjxZ4PLa41dta8Yge+QqJYbBElNFB1slQbxuQJFAbqWXQ==", + "license": "ISC", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@tkey/core": "^15.1.0", + "@tkey/share-serialization": "^15.1.0", + "@tkey/storage-layer-torus": "^15.1.0", + "@tkey/tss": "^15.1.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/customauth": "^20.3.0", + "@toruslabs/elliptic-wrapper": "^0.1.0", + "@toruslabs/fetch-node-details": "^14.0.1", + "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "@toruslabs/openlogin-utils": "^8.2.1", + "@toruslabs/session-manager": "^3.1.0", + "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.2.tgz", + "@toruslabs/tss-client": "^3.1.0", + "@toruslabs/tss-frost-client": "0.3.1", + "@toruslabs/tss-frost-common": "^1.0.1", + "bn.js": "^5.2.1", + "bowser": "^2.11.0", + "elliptic": "^6.5.7", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=20.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x", + "@toruslabs/tss-dkls-lib": "^4.0.0", + "@toruslabs/tss-frost-lib": "^1.0.0" + }, + "peerDependenciesMeta": { + "@toruslabs/tss-dkls-lib": { + "optional": true + }, + "@toruslabs/tss-frost-lib": { + "optional": true + } + } + }, + "node_modules/@web3auth/mpc-passkey-plugin": { + "resolved": "../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin", "link": true }, "node_modules/@webassemblyjs/ast": { @@ -2175,7 +2989,6 @@ "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "devOptional": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -2195,6 +3008,16 @@ "acorn": "^8" } }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/aes-js": { "version": "4.0.0-beta.5", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", @@ -2269,54 +3092,106 @@ "node": ">=4" } }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0", + "peer": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "license": "MIT", "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "license": "MIT" + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/assert": { + "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", - "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/async-mutex": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", - "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "license": "MIT", "dependencies": { - "tslib": "^2.4.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "license": "MIT", "dependencies": { - "possible-typed-array-names": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2325,7 +3200,91 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/base64-js": { + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", @@ -2391,11 +3350,19 @@ "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", "license": "MIT" }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -2646,6 +3613,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/camel-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", @@ -2792,6 +3769,18 @@ "node": ">= 12" } }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "license": "MIT" + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -2898,6 +3887,21 @@ "node-fetch": "^2.6.12" } }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "peer": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -2958,6 +3962,57 @@ "dev": true, "license": "MIT" }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -2975,6 +4030,13 @@ } } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT", + "peer": true + }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -3057,6 +4119,40 @@ "dev": true, "license": "MIT" }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -3218,9 +4314,7 @@ "version": "5.17.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", - "dev": true, "license": "MIT", - "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -3239,6 +4333,66 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/es-abstract": { + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -3268,6 +4422,58 @@ "license": "MIT", "peer": true }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esbuild": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", @@ -3307,44 +4513,732 @@ "@esbuild/win32-x64": "0.21.5" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "license": "MIT", + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-typescript": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz", + "integrity": "sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==", + "license": "MIT", + "dependencies": { + "eslint-config-airbnb-base": "^15.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^7.0.0", + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-problems": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-problems/-/eslint-config-problems-8.0.0.tgz", + "integrity": "sha512-bvZKVXwFe1pPmFNPc0KTr14K89GHo3H/EytD7Ig/MEmlyNEdqC8QlBguPcS/QWvOWDgVqkJiGwmmTljkAV/qpg==", + "license": "ISC", + "peerDependencies": { + "eslint": "^8.27.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", + "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.11.0", + "eslint-compat-utils": "^0.5.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-mocha": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz", + "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==", + "license": "MIT", + "dependencies": { + "eslint-utils": "^3.0.0", + "globals": "^13.24.0", + "rambda": "^7.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-mocha/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-n": { + "version": "17.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.14.0.tgz", + "integrity": "sha512-maxPLMEA0rPmRpoOlxEclKng4UpDe+N5BJS4t24I3UKnN109Qcivnfs37KMy84G0af3bxjog5lKctP5ObsvcTA==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.1", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "ignore": "^5.3.2", + "minimatch": "^9.0.5", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": ">=8.23.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", + "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-promise": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.2.0.tgz", + "integrity": "sha512-O2QBfKGRP0AHxXhZ3Lk2sFGGGw8TlMW84c+QfPX0gMnDrKJEN5SGJOICt/nR6spLvzuYO3d3nV4R3AIzdbaW7Q==", + "license": "ISC", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-simple-import-sort": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz", + "integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==", + "license": "MIT", + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-tsdoc": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.3.0.tgz", + "integrity": "sha512-0MuFdBrrJVBjT/gyhkP2BqpD0np1NxNLfQ38xXDlSs/KVVpKI2A6vN7jx2Rve/CyUsvOsMGwp9KKrinv7q9g3A==", + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.15.0", + "@microsoft/tsdoc-config": "0.17.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT", + "peer": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", + "peer": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "license": "MIT", + "peer": true + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=0.8.0" + "node": "*" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "license": "BSD-2-Clause", "peer": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { @@ -3358,7 +5252,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "license": "BSD-2-Clause", "peer": true, "engines": { @@ -3376,6 +5269,15 @@ "node": ">=4.0" } }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ethereum-cryptography": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", @@ -3501,14 +5403,18 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT" }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "license": "Apache-2.0" + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -3525,7 +5431,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -3538,7 +5443,13 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "license": "MIT", "peer": true }, @@ -3559,17 +5470,28 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "license": "MIT", + "peer": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -3578,6 +5500,45 @@ "node": ">=8" } }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "license": "MIT", + "peer": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "license": "ISC", + "peer": true + }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -3587,6 +5548,13 @@ "is-callable": "^1.1.3" } }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC", + "peer": true + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -3611,6 +5579,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3639,11 +5634,61 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -3660,6 +5705,30 @@ "license": "BSD-2-Clause", "peer": true }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -3669,6 +5738,22 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "14.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", @@ -3706,9 +5791,22 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/has-flag": { "version": "3.0.0", @@ -3933,18 +6031,70 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", + "peer": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "peer": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -3952,7 +6102,23 @@ "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -3967,6 +6133,49 @@ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "license": "MIT" }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -3979,16 +6188,75 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", + "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -4008,7 +6276,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -4017,6 +6284,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -4033,16 +6312,125 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", @@ -4064,12 +6452,59 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "license": "MIT" }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT" }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC", + "peer": true + }, "node_modules/isomorphic-ws": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", @@ -4302,12 +6737,31 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "license": "MIT" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "peer": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -4320,6 +6774,13 @@ "node": ">=6" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT", + "peer": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -4337,7 +6798,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify": { @@ -4358,6 +6818,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "license": "MIT", + "peer": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -4457,6 +6924,30 @@ "node": ">=18" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "peer": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -4468,6 +6959,22 @@ "node": ">=6.11.5" } }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -4511,6 +7018,13 @@ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "license": "MIT" }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT", + "peer": true + }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", @@ -4585,7 +7099,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -4595,7 +7108,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -4663,6 +7175,30 @@ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "license": "MIT" }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -4688,6 +7224,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "license": "MIT" + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -4757,10 +7299,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "dev": true, + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -4812,6 +7353,69 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/oblivious-set": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.4.0.tgz", @@ -4830,6 +7434,24 @@ "wrappy": "1" } }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "license": "MIT", + "peer": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -4837,6 +7459,38 @@ "dev": true, "license": "MIT" }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -4855,6 +7509,19 @@ "tslib": "^2.0.3" } }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "peer": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parse-asn1": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", @@ -4891,6 +7558,42 @@ "dev": true, "license": "MIT" }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, "node_modules/path-type": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", @@ -4931,7 +7634,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -4978,6 +7680,44 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", @@ -5090,7 +7830,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -5107,6 +7846,12 @@ ], "license": "MIT" }, + "node_modules/rambda": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", + "license": "MIT" + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -5184,12 +7929,51 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", + "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "which-builtin-type": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "license": "MIT" }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -5218,23 +8002,74 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -5286,7 +8121,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -5316,6 +8150,24 @@ "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -5336,6 +8188,23 @@ ], "license": "MIT" }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -5392,9 +8261,24 @@ "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" }, "engines": { @@ -5421,11 +8305,33 @@ "sha.js": "bin.js" } }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "peer": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -5584,11 +8490,59 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -5597,6 +8551,28 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5609,11 +8585,38 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -5738,6 +8741,13 @@ "devOptional": true, "license": "MIT" }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT", + "peer": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -5751,7 +8761,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -5766,6 +8775,18 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT" }, + "node_modules/ts-api-utils": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.1.tgz", + "integrity": "sha512-5RU2/lxTA3YUZxju61HO2U6EoZLvBLtmV2mbTvqyu4a/7s7RmJPT+1YekhMVsQhznRWk/czIwDUg+V8Q9ZuG4w==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-custom-error": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz", @@ -5775,12 +8796,135 @@ "node": ">=14.0.0" } }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/tslib": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "license": "0BSD" }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", + "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", @@ -5812,6 +8956,21 @@ "node": ">=14.17" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -5874,9 +9033,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -5885,9 +9042,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -6494,6 +9649,83 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", + "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", @@ -6513,6 +9745,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -6564,6 +9806,19 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "license": "ISC" }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zod": { "version": "3.23.8", "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index 26ca6465..2777c645 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -13,7 +13,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "file:../..", + "@web3auth/mpc-core-kit": "file:../../web3auth-mpc-core-kit-3.2.6.tgz", + "@web3auth/mpc-passkey-plugin": "file:../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin/", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", diff --git a/demo/redirect-flow-example/src/App.css b/demo/redirect-flow-example/src/App.css index 8f38bacd..4bcda14f 100644 --- a/demo/redirect-flow-example/src/App.css +++ b/demo/redirect-flow-example/src/App.css @@ -122,4 +122,4 @@ .flex-column { display: flex; flex-direction: column; -} \ No newline at end of file +} diff --git a/demo/redirect-flow-example/src/App.test.tsx b/demo/redirect-flow-example/src/App.test.tsx index 2a68616d..6eebec4a 100644 --- a/demo/redirect-flow-example/src/App.test.tsx +++ b/demo/redirect-flow-example/src/App.test.tsx @@ -1,9 +1,9 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; -import App from './App'; +// import { render, screen } from '@testing-library/react'; +// import App from './App'; -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); +// test('renders learn react link', () => { +// render(); +// const linkElement = screen.getByText(/learn react/i); +// expect(linkElement).toBeInTheDocument(); +// }); diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index 73364482..cbd801eb 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -13,6 +13,7 @@ import { factorKeyCurve, makeEthereumSigner, } from "@web3auth/mpc-core-kit"; +import { PasskeysPlugin } from "@web3auth/mpc-passkey-plugin"; import Web3 from "web3"; import { CHAIN_NAMESPACES, CustomChainConfig, IProvider } from "@web3auth/base"; import { EthereumSigningProvider } from "@web3auth/ethereum-mpc-provider"; @@ -57,6 +58,8 @@ const coreKitInstance = new Web3AuthMPCCoreKit({ useDKG: false, }); +const passkeyPlugin = new PasskeysPlugin(); + const privateKey = "MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCCD7oLrcKae+jVZPGx52Cb/lKhdKxpXjl9eGNa1MlY57A=="; const jwtPrivateKey = `-----BEGIN PRIVATE KEY-----\n${privateKey}\n-----END PRIVATE KEY-----`; const alg: Algorithm = "ES256"; @@ -116,6 +119,7 @@ function App() { // Example config to handle redirect result manually if (coreKitInstance.status === COREKIT_STATUS.NOT_INITIALIZED) { await coreKitInstance.init({ handleRedirectResult: false, rehydrate }); + await passkeyPlugin.initWithMpcCoreKit(coreKitInstance as any); if (window.location.hash.includes("#state")) { await coreKitInstance.handleRedirectResult(); } @@ -171,7 +175,7 @@ function App() { if (!factorPubs) { throw new Error("factorPubs not found"); } - const pubsHex = factorPubs[coreKitInstance.tKey.tssTag].map((pub: Point) => { + const pubsHex = factorPubs[coreKitInstance.tKey.tssTag].map((pub) => { return pub.toSEC1(factorKeyCurve, true).toString("hex"); }); uiConsole(pubsHex); @@ -357,7 +361,9 @@ function App() { } const address = (await web3.eth.getAccounts())[0]; const balance = web3.utils.fromWei( - await web3.eth.getBalance(address) // Balance is in wei + await web3.eth.getBalance(address), + // Balance is in wei + "ether" ); uiConsole(balance); return balance; @@ -512,7 +518,7 @@ function App() { const fromAddress = (await web3.eth.getAccounts())[0]; const destination = "0x2E464670992574A613f10F7682D5057fB507Cc21"; - const amount = web3.utils.toWei("0.0001"); // Convert 1 ether to wei + const amount = web3.utils.toWei("0.0001", "ether"); // Convert 1 ether to wei // Submit transaction to the blockchain and wait for it to be mined uiConsole("Sending transaction..."); @@ -564,7 +570,35 @@ function App() { uiConsole("MFA enabled, device factor stored in local store, deleted hashed cloud key, your backup factor key: ", factorKeyMnemonic); }; + const registerPasskey = async () => { + if (!coreKitInstance) { + throw new Error("coreKitInstance is not set"); + } + if (!passkeyPlugin) { + throw new Error("passkeyPlugin is not set"); + } + await passkeyPlugin.registerPasskey() + }; + const loginWithPasskey = async () => { + if (!coreKitInstance) { + throw new Error("coreKitInstance is not set"); + } + if (!passkeyPlugin) { + throw new Error("passkeyPlugin is not set"); + } + await passkeyPlugin.authenticateWithPasskey() + }; + const listPasskeys = async () => { + if (!coreKitInstance) { + throw new Error("coreKitInstance is not set"); + } + if (!passkeyPlugin) { + throw new Error("passkeyPlugin is not set"); + } + const passkeys = await passkeyPlugin.listPasskeys() + uiConsole(passkeys) + }; const commit = async () => { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); @@ -617,6 +651,16 @@ function App() { Enable MFA + +

Register Passkey

+
+ + +

Manual Factors Manipulation

@@ -735,6 +779,10 @@ function App() { MockLogin + + diff --git a/package-lock.json b/package-lock.json index c83fce80..6a060930 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "^15.1.0", + "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.2.tgz", "@toruslabs/tss-client": "^3.1.0", "@toruslabs/tss-frost-client": "0.3.1", "@toruslabs/tss-frost-common": "^1.0.1", @@ -4431,9 +4431,9 @@ } }, "node_modules/@toruslabs/torus.js": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.0.tgz", - "integrity": "sha512-ZVQzeRl8qXbaw6jVUvPjNnuY6fJjxX4k8NoNfdp+8F2Og1rBiINnASMfRVeDajc4Bg+rfbsX5HZ+T0S+F6lv1A==", + "version": "15.1.1", + "resolved": "file:toruslabs-torus.js-15.1.2.tgz", + "integrity": "sha512-McZ4UAZM8ljtNUOg77aDZp4ufftJT5t0cc6RSwXtytLmhn8j2oL9iaTDrvD4AzwF1ASaQFPm1UNtjLXyLl0gcA==", "license": "MIT", "dependencies": { "@toruslabs/bs58": "^1.0.0", @@ -4441,10 +4441,10 @@ "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "bn.js": "^5.2.1", - "elliptic": "^6.5.6", + "elliptic": "^6.5.7", "ethereum-cryptography": "^2.2.1", "json-stable-stringify": "^1.1.1", - "loglevel": "^1.9.1" + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", diff --git a/package.json b/package.json index e8ad207b..90f42dc8 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/session-manager": "^3.1.0", "@toruslabs/openlogin-utils": "^8.2.1", - "@toruslabs/torus.js": "^15.1.0", + "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.2.tgz", "@toruslabs/tss-client": "^3.1.0", "@toruslabs/tss-frost-client": "0.3.1", "@toruslabs/tss-frost-common": "^1.0.1", From 952df9187440977e4415d2bb461954c6259d75d1 Mon Sep 17 00:00:00 2001 From: Matthias Geihs Date: Tue, 26 Nov 2024 15:59:02 +0100 Subject: [PATCH 05/37] fetch node details with sig type --- package-lock.json | 16 ++++++++-------- package.json | 2 +- src/mpcCoreKit.ts | 15 +++++---------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index f7670215..9009aca6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "@toruslabs/customauth": "^20.3.0", "@toruslabs/elliptic-wrapper": "^0.1.1", "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/fnd-base": "^14.2.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/session-manager": "^3.1.0", @@ -3901,9 +3901,9 @@ } }, "node_modules/@toruslabs/constants": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.0.0.tgz", - "integrity": "sha512-c0lrqxxiR0FL+XdtbX+77PWTeB8izFUrnPwkF2pjjfXlMJLukAWPLhALpmZmqlGmJApT8kJbMN7be2LurAGa1g==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.2.0.tgz", + "integrity": "sha512-Mb5EfYNSPyvvw5s1JXnpZwritCgp4NmLni1imTqrSKGV3yikYhUn1ufyLMAHGnBBgv4AuMIXBIe3EpJJ+SpA0g==", "license": "MIT", "engines": { "node": ">=18.x", @@ -4268,12 +4268,12 @@ } }, "node_modules/@toruslabs/fnd-base": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.0.0.tgz", - "integrity": "sha512-zaYrm/HHHU4Evj/Et1HrVT8hmMaUpVw3Rcx2Gvp1W5pWZybbdEVoa0uqIANYxcr/NH7PUIU3DoRbk+bXx0kkYg==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.2.0.tgz", + "integrity": "sha512-nqfcigOuz3pQJi+Q+tdCaDUVCaSUkGqqmw0bGnaKK2/PyXBlZhnEDzReM3aUbApJn3xitfrJEhnRvOJhzog/og==", "license": "MIT", "dependencies": { - "@toruslabs/constants": "^14.0.0" + "@toruslabs/constants": "^14.2.0" }, "engines": { "node": ">=18.x", diff --git a/package.json b/package.json index 8a04df01..e90e10f4 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@toruslabs/customauth": "^20.3.0", "@toruslabs/elliptic-wrapper": "^0.1.1", "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/fnd-base": "^14.2.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/session-manager": "^3.1.0", diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 11c21b4a..29210cc5 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -1429,20 +1429,15 @@ export class Web3AuthMPCCoreKit implements ICoreKit { throw CoreKitError.default(`hashed data not supported for ${this._sigType}`); } - const serverEndpoints = (() => { - // We have to fix the key type to `ed25519` for now, because we would get - // the DKLS tss server endpoints otherwise. - const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, "ed25519"); - // Endpoints must end with backslash, but URLs returned by - // `fetch-node-details` don't have it. - return nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ index: nodeDetails.torusIndexes[i], url: `${ep}/` })); - })(); - - const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); + const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType, this._sigType); if (!nodeDetails.torusNodeTSSEndpoints) { throw CoreKitError.default("could not fetch tss node endpoints"); } + // Endpoints must end with backslash, but URLs returned by + // `fetch-node-details` don't have it. + const serverEndpoints = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ index: nodeDetails.torusIndexes[i], url: `${ep}/` })); + // Select endpoints and derive party indices. const serverThreshold = Math.floor(serverEndpoints.length / 2) + 1; const endpoints = sampleEndpoints(serverEndpoints, serverThreshold); From 24c3422edfe0044a8462fe64bb3a8c213f736644 Mon Sep 17 00:00:00 2001 From: Matthias Geihs Date: Wed, 27 Nov 2024 18:06:54 +0100 Subject: [PATCH 06/37] use sig type from @toruslabs/constants --- src/interfaces.ts | 7 ++----- src/mpcCoreKit.ts | 35 ++++++++++------------------------- 2 files changed, 12 insertions(+), 30 deletions(-) diff --git a/src/interfaces.ts b/src/interfaces.ts index 6d770f43..7465023a 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -1,5 +1,6 @@ import { KeyType, Point as TkeyPoint, ShareDescriptionMap } from "@tkey/common-types"; import { TKeyTSS } from "@tkey/tss"; +import { WEB3AUTH_SIG_TYPE } from "@toruslabs/constants"; import type { AGGREGATE_VERIFIER_TYPE, ExtraParams, @@ -458,11 +459,7 @@ export interface TkeyLocalStoreData { factorKey: string; } -export enum SigType { - ecdsa_secp256k1 = "ecdsa-secp256k1", - ed25519 = "ed25519", - bip340 = "bip340", -} +export type SigType = WEB3AUTH_SIG_TYPE; export interface CoreKitSigner { keyType: KeyType; diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 29210cc5..e0098d5c 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -110,22 +110,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { this._tssLib = options.tssLib; this._keyType = options.tssLib.keyType as KeyType; - this._sigType = (() => { - if (!(options.tssLib as V4TSSLibType).sigType) { - if (this._keyType === "secp256k1") { - return SigType.ecdsa_secp256k1; - } else if (this._keyType === "ed25519") { - return SigType.ed25519; - } - throw CoreKitError.invalidKeyType(); - } - const sigType = (options.tssLib as V4TSSLibType).sigType as SigType; - // Check if sigType is valid SigType. - if (!Object.values(SigType).includes(sigType)) { - throw CoreKitError.invalidSigType(); - } - return sigType; - })(); + this._sigType = options.tssLib.sigType as SigType; const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); @@ -199,7 +184,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } get supportsAccountIndex(): boolean { - return this._sigType !== SigType.ed25519; + return this._sigType !== "ed25519"; } private get verifier(): string { @@ -218,7 +203,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } private get useClientGeneratedTSSKey(): boolean { - return this._sigType === SigType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; + return this._sigType === "ed25519" && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; } // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : @@ -257,7 +242,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); - if (this._sigType === SigType.ed25519 && this.options.useDKG) { + if (this._sigType === "ed25519" && this.options.useDKG) { throw CoreKitError.invalidConfig("DKG is not supported for ed25519 signature type"); } @@ -675,7 +660,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { * Throws an error if signature type is not ed25519. */ public getPubKeyEd25519(): Buffer { - if (this._sigType !== SigType.ed25519) { + if (this._sigType !== "ed25519") { throw CoreKitError.default(`getPubKeyEd25519 not supported for signature type ${this.sigType}`); } @@ -689,7 +674,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { * Throws an error if signature type is not bip340. */ public getPubKeyBip340(): Buffer { - if (this._sigType !== SigType.bip340) { + if (this._sigType !== "bip340") { throw CoreKitError.default(`getPubKeyBip340 not supported for signature type ${this.sigType}`); } @@ -787,10 +772,10 @@ export class Web3AuthMPCCoreKit implements ICoreKit { public async sign(data: Buffer, hashed: boolean = false, secp256k1Precompute?: Secp256k1PrecomputedClient): Promise { this.wasmLib = await this.loadTssWasm(); - if (this._sigType === SigType.ecdsa_secp256k1) { + if (this._sigType === "ecdsa-secp256k1") { const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); - } else if (this._sigType === SigType.ed25519 || this._sigType === SigType.bip340) { + } else if (this._sigType === "ed25519" || this._sigType === "bip340") { return this.sign_frost(data, hashed); } throw CoreKitError.default(`sign not supported for key type ${this.keyType}`); @@ -960,7 +945,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { * flow has been used. */ public async _UNSAFE_exportTssEd25519Seed(): Promise { - if (this._sigType !== SigType.ed25519) { + if (this._sigType !== "ed25519") { throw CoreKitError.default("Wrong signature type. Method can only be used when signature type is ed25519."); } if (!this.state.factorKey) throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); @@ -1031,7 +1016,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { let importTssKey = providedImportTssKey; if (!existingUser) { if (!importTssKey && this.useClientGeneratedTSSKey) { - if (this._sigType === SigType.ed25519) { + if (this._sigType === "ed25519") { const k = generateEd25519Seed(); importTssKey = k.toString("hex"); } else if (this.keyType === KeyType.secp256k1) { From ab2fbe6a611d90112e2569360138ff2625670036 Mon Sep 17 00:00:00 2001 From: Matthias Geihs Date: Wed, 27 Nov 2024 18:07:09 +0100 Subject: [PATCH 07/37] drop support for v3 lib type --- src/interfaces.ts | 3 +-- src/mpcCoreKit.ts | 8 +------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/interfaces.ts b/src/interfaces.ts index 7465023a..c9cfc8a2 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -21,9 +21,8 @@ import { FactorKeyTypeShareDescription, TssShareType, USER_PATH, WEB3AUTH_NETWOR export type CoreKitMode = UX_MODE_TYPE | "nodejs" | "react-native"; -export type V3TSSLibType = { keyType: string; lib: unknown }; export type V4TSSLibType = typeof TssDklsLib | typeof TssFrostLibEd25519 | typeof TssFrostLibBip340; -export type TssLibType = V4TSSLibType | V3TSSLibType; +export type TssLibType = typeof TssDklsLib | typeof TssFrostLibEd25519 | typeof TssFrostLibBip340; export interface IStorage { getItem(key: string): string | null; diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index e0098d5c..c5996dfd 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -51,8 +51,6 @@ import { TkeyLocalStoreData, TssLibType, UserInfo, - V3TSSLibType, - V4TSSLibType, Web3AuthOptions, Web3AuthOptionsWithDefaults, Web3AuthState, @@ -1480,10 +1478,6 @@ export class Web3AuthMPCCoreKit implements ICoreKit { private async loadTssWasm() { if (this.wasmLib) return this.wasmLib; - if (typeof (this._tssLib as V4TSSLibType).load === "function") { - return (this._tssLib as V4TSSLibType).load(); - } else if ((this._tssLib as V3TSSLibType).lib) { - return (this._tssLib as V3TSSLibType).lib as DKLSWasmLib | FrostWasmLibEd25519 | FrostWasmLibBip340; - } + return this._tssLib.load(); } } From 09514aa8a1a65ec7c2dbf2c04d634fb8760861c3 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 28 Nov 2024 12:29:55 +0530 Subject: [PATCH 08/37] demo updates --- .../dist/assets/index-BBrtMuOx.js | 1 + .../dist/assets/index-Bnj_EkxG.js | 140 + .../dist/assets/index-CFiF7Nza.js | 1 + .../dist/assets/index-CLR7ePzE.css | 1 + demo/redirect-flow-example/dist/favicon.ico | Bin 0 -> 3870 bytes demo/redirect-flow-example/dist/index.html | 46 + demo/redirect-flow-example/dist/logo192.png | Bin 0 -> 5347 bytes demo/redirect-flow-example/dist/logo512.png | Bin 0 -> 9664 bytes demo/redirect-flow-example/dist/manifest.json | 25 + demo/redirect-flow-example/dist/robots.txt | 3 + demo/redirect-flow-example/package-lock.json | 5706 ++++------------- demo/redirect-flow-example/package.json | 2 +- package-lock.json | 90 +- package.json | 2 +- package/README.md | 113 + package/dist/lib.cjs/constants.js | 63 + package/dist/lib.cjs/helper/browserStorage.js | 62 + package/dist/lib.cjs/helper/errors.js | 301 + .../lib.cjs/helper/factorSerialization.js | 28 + .../dist/lib.cjs/helper/securityQuestion.js | 214 + package/dist/lib.cjs/index.js | 56 + package/dist/lib.cjs/interfaces.js | 13 + package/dist/lib.cjs/mpcCoreKit.js | 1404 ++++ package/dist/lib.cjs/utils.js | 212 + package/dist/lib.esm/constants.js | 50 + package/dist/lib.esm/helper/browserStorage.js | 59 + package/dist/lib.esm/helper/errors.js | 296 + .../lib.esm/helper/factorSerialization.js | 25 + .../dist/lib.esm/helper/securityQuestion.js | 211 + package/dist/lib.esm/index.js | 8 + package/dist/lib.esm/interfaces.js | 11 + package/dist/lib.esm/mpcCoreKit.js | 1402 ++++ package/dist/lib.esm/utils.js | 192 + package/dist/mpcCoreKit.cjs.js | 2389 +++++++ package/dist/mpcCoreKit.esm.js | 2209 +++++++ package/dist/mpcCoreKit.umd.min.js | 2 + .../dist/mpcCoreKit.umd.min.js.LICENSE.txt | 8 + package/dist/types/constants.d.ts | 42 + package/dist/types/helper/browserStorage.d.ts | 19 + package/dist/types/helper/errors.d.ts | 98 + .../types/helper/factorSerialization.d.ts | 12 + package/dist/types/helper/index.d.ts | 3 + .../dist/types/helper/securityQuestion.d.ts | 33 + package/dist/types/index.d.ts | 6 + package/dist/types/interfaces.d.ts | 407 ++ package/dist/types/mpcCoreKit.d.ts | 120 + package/dist/types/utils.d.ts | 69 + package/package.json | 117 + 48 files changed, 11707 insertions(+), 4564 deletions(-) create mode 100644 demo/redirect-flow-example/dist/assets/index-BBrtMuOx.js create mode 100644 demo/redirect-flow-example/dist/assets/index-Bnj_EkxG.js create mode 100644 demo/redirect-flow-example/dist/assets/index-CFiF7Nza.js create mode 100644 demo/redirect-flow-example/dist/assets/index-CLR7ePzE.css create mode 100644 demo/redirect-flow-example/dist/favicon.ico create mode 100644 demo/redirect-flow-example/dist/index.html create mode 100644 demo/redirect-flow-example/dist/logo192.png create mode 100644 demo/redirect-flow-example/dist/logo512.png create mode 100644 demo/redirect-flow-example/dist/manifest.json create mode 100644 demo/redirect-flow-example/dist/robots.txt create mode 100644 package/README.md create mode 100644 package/dist/lib.cjs/constants.js create mode 100644 package/dist/lib.cjs/helper/browserStorage.js create mode 100644 package/dist/lib.cjs/helper/errors.js create mode 100644 package/dist/lib.cjs/helper/factorSerialization.js create mode 100644 package/dist/lib.cjs/helper/securityQuestion.js create mode 100644 package/dist/lib.cjs/index.js create mode 100644 package/dist/lib.cjs/interfaces.js create mode 100644 package/dist/lib.cjs/mpcCoreKit.js create mode 100644 package/dist/lib.cjs/utils.js create mode 100644 package/dist/lib.esm/constants.js create mode 100644 package/dist/lib.esm/helper/browserStorage.js create mode 100644 package/dist/lib.esm/helper/errors.js create mode 100644 package/dist/lib.esm/helper/factorSerialization.js create mode 100644 package/dist/lib.esm/helper/securityQuestion.js create mode 100644 package/dist/lib.esm/index.js create mode 100644 package/dist/lib.esm/interfaces.js create mode 100644 package/dist/lib.esm/mpcCoreKit.js create mode 100644 package/dist/lib.esm/utils.js create mode 100644 package/dist/mpcCoreKit.cjs.js create mode 100644 package/dist/mpcCoreKit.esm.js create mode 100644 package/dist/mpcCoreKit.umd.min.js create mode 100644 package/dist/mpcCoreKit.umd.min.js.LICENSE.txt create mode 100644 package/dist/types/constants.d.ts create mode 100644 package/dist/types/helper/browserStorage.d.ts create mode 100644 package/dist/types/helper/errors.d.ts create mode 100644 package/dist/types/helper/factorSerialization.d.ts create mode 100644 package/dist/types/helper/index.d.ts create mode 100644 package/dist/types/helper/securityQuestion.d.ts create mode 100644 package/dist/types/index.d.ts create mode 100644 package/dist/types/interfaces.d.ts create mode 100644 package/dist/types/mpcCoreKit.d.ts create mode 100644 package/dist/types/utils.d.ts create mode 100644 package/package.json diff --git a/demo/redirect-flow-example/dist/assets/index-BBrtMuOx.js b/demo/redirect-flow-example/dist/assets/index-BBrtMuOx.js new file mode 100644 index 00000000..bd44bafc --- /dev/null +++ b/demo/redirect-flow-example/dist/assets/index-BBrtMuOx.js @@ -0,0 +1 @@ +var Ce=n=>{throw TypeError(n)};var de=(n,t,e)=>t.has(n)||Ce("Cannot "+e);var O=(n,t,e)=>(de(n,t,"read from private field"),e?e.call(n):t.get(n)),$=(n,t,e)=>t.has(n)?Ce("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(n):t.set(n,e),I=(n,t,e,r)=>(de(n,t,"write to private field"),r?r.call(n,e):t.set(n,e),e),ne=(n,t,e)=>(de(n,t,"access private method"),e);import{g as ot,a as L,b as rt,h as _,H as Xe,c as wn,t as Je,e as se,d as Bn,f as ge,o as En,w as Qe,r as nt,u as S,i as An,j as vn,k as be,l as Wt,S as St,m as ke,n as Xt,p as oe,q as ae,s as we,v as tn,x as st,y as Pn,z as ie,A as tt}from"./index-Bnj_EkxG.js";import{M as kr,T as _r,Z as qr,F as Rr,E as $r,I as zr,D as Vr,C as Kr,G as Zr,L as jr,J as Dr,K as Mr,N as Yr,B as Wr}from"./index-Bnj_EkxG.js";function In(n){let t=n.toString(16);for(;t.length<2;)t="0"+t;return"0x"+t}function _e(n,t,e){let r=0;for(let s=0;s{rt(r<=n.length,"data short segment too short","BUFFER_OVERRUN",{buffer:n,length:n.length,offset:r})};if(n[t]>=248){const r=n[t]-247;e(t+1+r);const s=_e(n,t+1,r);return e(t+1+r+s),qe(n,t,t+1+r,r+s)}else if(n[t]>=192){const r=n[t]-192;return e(t+1+r),qe(n,t,t+1,r)}else if(n[t]>=184){const r=n[t]-183;e(t+1+r);const s=_e(n,t+1,r);e(t+1+r+s);const i=_(n.slice(t+1+r,t+1+r+s));return{consumed:1+r+s,result:i}}else if(n[t]>=128){const r=n[t]-128;e(t+1+r);const s=_(n.slice(t+1,t+1+r));return{consumed:1+r,result:s}}return{consumed:1,result:In(n[t])}}function ce(n){const t=ot(n,"data"),e=en(t,0);return L(e.consumed===t.length,"unexpected junk after rlp payload","data",n),e.result}function Re(n){const t=[];for(;n;)t.unshift(n&255),n>>=8;return t}function nn(n){if(Array.isArray(n)){let r=[];if(n.forEach(function(i){r=r.concat(nn(i))}),r.length<=55)return r.unshift(192+r.length),r;const s=Re(r.length);return s.unshift(247+s.length),s.concat(r)}const t=Array.prototype.slice.call(ot(n,"object"));if(t.length===1&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const e=Re(t.length);return e.unshift(183+e.length),e.concat(t)}const $e="0123456789abcdef";function Kt(n){let t="0x";for(const e of nn(n))t+=$e[e>>4],t+=$e[e&15];return t}class rn extends Xe{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,wn(t);const r=Je(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,i=new Uint8Array(s);i.set(r.length>s?t.create().update(r).digest():r);for(let c=0;cnew rn(n,t).update(e).digest();sn.create=(n,t)=>new rn(n,t);function Sn(n,t,e,r){if(typeof n.setBigUint64=="function")return n.setBigUint64(t,e,r);const s=BigInt(32),i=BigInt(4294967295),c=Number(e>>s&i),a=Number(e&i),o=r?4:0,l=r?0:4;n.setUint32(t+o,c,r),n.setUint32(t+l,a,r)}class on extends Xe{constructor(t,e,r,s){super(),this.blockLen=t,this.outputLen=e,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=ge(this.buffer)}update(t){se(this);const{view:e,buffer:r,blockLen:s}=this;t=Je(t);const i=t.length;for(let c=0;cs-c&&(this.process(r,0),c=0);for(let f=c;fy.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fn&t^~n&e,Hn=(n,t,e)=>n&t^n&e^t&e,Nn=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),gt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),bt=new Uint32Array(64);class Fn extends on{constructor(){super(64,32,8,!1),this.A=gt[0]|0,this.B=gt[1]|0,this.C=gt[2]|0,this.D=gt[3]|0,this.E=gt[4]|0,this.F=gt[5]|0,this.G=gt[6]|0,this.H=gt[7]|0}get(){const{A:t,B:e,C:r,D:s,E:i,F:c,G:a,H:o}=this;return[t,e,r,s,i,c,a,o]}set(t,e,r,s,i,c,a,o){this.A=t|0,this.B=e|0,this.C=r|0,this.D=s|0,this.E=i|0,this.F=c|0,this.G=a|0,this.H=o|0}process(t,e){for(let f=0;f<16;f++,e+=4)bt[f]=t.getUint32(e,!1);for(let f=16;f<64;f++){const w=bt[f-15],P=bt[f-2],m=nt(w,7)^nt(w,18)^w>>>3,u=nt(P,17)^nt(P,19)^P>>>10;bt[f]=u+bt[f-7]+m+bt[f-16]|0}let{A:r,B:s,C:i,D:c,E:a,F:o,G:l,H:y}=this;for(let f=0;f<64;f++){const w=nt(a,6)^nt(a,11)^nt(a,25),P=y+w+Ln(a,o,l)+Nn[f]+bt[f]|0,u=(nt(r,2)^nt(r,13)^nt(r,22))+Hn(r,s,i)|0;y=l,l=o,o=a,a=c+P|0,c=i,i=s,s=r,r=P+u|0}r=r+this.A|0,s=s+this.B|0,i=i+this.C|0,c=c+this.D|0,a=a+this.E|0,o=o+this.F|0,l=l+this.G|0,y=y+this.H|0,this.set(r,s,i,c,a,o,l,y)}roundClean(){bt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const an=Qe(()=>new Fn),[Gn,On]=S.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(n=>BigInt(n))),yt=new Uint32Array(80),pt=new Uint32Array(80);class Un extends on{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:e,Bh:r,Bl:s,Ch:i,Cl:c,Dh:a,Dl:o,Eh:l,El:y,Fh:f,Fl:w,Gh:P,Gl:m,Hh:u,Hl:d}=this;return[t,e,r,s,i,c,a,o,l,y,f,w,P,m,u,d]}set(t,e,r,s,i,c,a,o,l,y,f,w,P,m,u,d){this.Ah=t|0,this.Al=e|0,this.Bh=r|0,this.Bl=s|0,this.Ch=i|0,this.Cl=c|0,this.Dh=a|0,this.Dl=o|0,this.Eh=l|0,this.El=y|0,this.Fh=f|0,this.Fl=w|0,this.Gh=P|0,this.Gl=m|0,this.Hh=u|0,this.Hl=d|0}process(t,e){for(let b=0;b<16;b++,e+=4)yt[b]=t.getUint32(e),pt[b]=t.getUint32(e+=4);for(let b=16;b<80;b++){const H=yt[b-15]|0,v=pt[b-15]|0,x=S.rotrSH(H,v,1)^S.rotrSH(H,v,8)^S.shrSH(H,v,7),A=S.rotrSL(H,v,1)^S.rotrSL(H,v,8)^S.shrSL(H,v,7),E=yt[b-2]|0,k=pt[b-2]|0,G=S.rotrSH(E,k,19)^S.rotrBH(E,k,61)^S.shrSH(E,k,6),F=S.rotrSL(E,k,19)^S.rotrBL(E,k,61)^S.shrSL(E,k,6),z=S.add4L(A,F,pt[b-7],pt[b-16]),j=S.add4H(z,x,G,yt[b-7],yt[b-16]);yt[b]=j|0,pt[b]=z|0}let{Ah:r,Al:s,Bh:i,Bl:c,Ch:a,Cl:o,Dh:l,Dl:y,Eh:f,El:w,Fh:P,Fl:m,Gh:u,Gl:d,Hh:g,Hl:B}=this;for(let b=0;b<80;b++){const H=S.rotrSH(f,w,14)^S.rotrSH(f,w,18)^S.rotrBH(f,w,41),v=S.rotrSL(f,w,14)^S.rotrSL(f,w,18)^S.rotrBL(f,w,41),x=f&P^~f&u,A=w&m^~w&d,E=S.add5L(B,v,A,On[b],pt[b]),k=S.add5H(E,g,H,x,Gn[b],yt[b]),G=E|0,F=S.rotrSH(r,s,28)^S.rotrBH(r,s,34)^S.rotrBH(r,s,39),z=S.rotrSL(r,s,28)^S.rotrBL(r,s,34)^S.rotrBL(r,s,39),j=r&i^r&a^i&a,et=s&c^s&o^c&o;g=u|0,B=d|0,u=P|0,d=m|0,P=f|0,m=w|0,{h:f,l:w}=S.add(l|0,y|0,k|0,G|0),l=a|0,y=o|0,a=i|0,o=c|0,i=r|0,c=s|0;const h=S.add3L(G,z,et);r=S.add3H(h,k,F,j),s=h|0}({h:r,l:s}=S.add(this.Ah|0,this.Al|0,r|0,s|0)),{h:i,l:c}=S.add(this.Bh|0,this.Bl|0,i|0,c|0),{h:a,l:o}=S.add(this.Ch|0,this.Cl|0,a|0,o|0),{h:l,l:y}=S.add(this.Dh|0,this.Dl|0,l|0,y|0),{h:f,l:w}=S.add(this.Eh|0,this.El|0,f|0,w|0),{h:P,l:m}=S.add(this.Fh|0,this.Fl|0,P|0,m|0),{h:u,l:d}=S.add(this.Gh|0,this.Gl|0,u|0,d|0),{h:g,l:B}=S.add(this.Hh|0,this.Hl|0,g|0,B|0),this.set(r,s,i,c,a,o,l,y,f,w,P,m,u,d,g,B)}roundClean(){yt.fill(0),pt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Tn=Qe(()=>new Un);function Cn(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate global object")}const ze=Cn();ze.crypto||ze.msCrypto;function kn(n){switch(n){case"sha256":return an.create();case"sha512":return Tn.create()}L(!1,"invalid hashing algorithm name","algorithm",n)}const cn=function(n){return kn("sha256").update(n).digest()};let ln=cn,fn=!1;function Mt(n){const t=ot(n,"data");return _(ln(t))}Mt._=cn;Mt.lock=function(){fn=!0};Mt.register=function(n){if(fn)throw new Error("sha256 is locked");ln=n};Object.freeze(Mt);Object.freeze(Mt);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const un=BigInt(0),le=BigInt(1),_n=BigInt(2),fe=n=>n instanceof Uint8Array,qn=Array.from({length:256},(n,t)=>t.toString(16).padStart(2,"0"));function Zt(n){if(!fe(n))throw new Error("Uint8Array expected");let t="";for(let e=0;er+s.length,0));let e=0;return n.forEach(r=>{if(!fe(r))throw new Error("Uint8Array expected");t.set(r,e),e+=r.length}),t}function $n(n,t){if(n.length!==t.length)return!1;for(let e=0;eun;n>>=le,t+=1);return t}function Kn(n,t){return n>>BigInt(t)&le}const Zn=(n,t,e)=>n|(e?le:un)<(_n<new Uint8Array(n),Ve=n=>Uint8Array.from(n);function dn(n,t,e){if(typeof n!="number"||n<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof e!="function")throw new Error("hmacFn must be a function");let r=ye(n),s=ye(n),i=0;const c=()=>{r.fill(1),s.fill(0),i=0},a=(...f)=>e(s,r,...f),o=(f=ye())=>{s=a(Ve([0]),f),r=a(),f.length!==0&&(s=a(Ve([1]),f),r=a())},l=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let f=0;const w=[];for(;f{c(),o(f);let P;for(;!(P=w(l()));)o();return c(),P}}const jn={bigint:n=>typeof n=="bigint",function:n=>typeof n=="function",boolean:n=>typeof n=="boolean",string:n=>typeof n=="string",stringOrUint8Array:n=>typeof n=="string"||n instanceof Uint8Array,isSafeInteger:n=>Number.isSafeInteger(n),array:n=>Array.isArray(n),field:(n,t)=>t.Fp.isValid(n),hash:n=>typeof n=="function"&&Number.isSafeInteger(n.outputLen)};function te(n,t,e={}){const r=(s,i,c)=>{const a=jn[i];if(typeof a!="function")throw new Error(`Invalid validator "${i}", expected function`);const o=n[s];if(!(c&&o===void 0)&&!a(o,n))throw new Error(`Invalid param ${String(s)}=${o} (${typeof o}), expected ${i}`)};for(const[s,i]of Object.entries(t))r(s,i,!1);for(const[s,i]of Object.entries(e))r(s,i,!0);return n}const Dn=Object.freeze(Object.defineProperty({__proto__:null,bitGet:Kn,bitLen:Vn,bitMask:Le,bitSet:Zn,bytesToHex:Zt,bytesToNumberBE:It,bytesToNumberLE:Ie,concatBytes:Jt,createHmacDrbg:dn,ensureBytes:Q,equalBytes:$n,hexToBytes:jt,hexToNumber:Pe,numberToBytesBE:Dt,numberToBytesLE:Se,numberToHexUnpadded:hn,numberToVarBytesBE:Rn,utf8ToBytes:zn,validateObject:te},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Z=BigInt(0),q=BigInt(1),Et=BigInt(2),Mn=BigInt(3),Be=BigInt(4),Ke=BigInt(5),Ze=BigInt(8);BigInt(9);BigInt(16);function D(n,t){const e=n%t;return e>=Z?e:t+e}function Yn(n,t,e){if(e<=Z||t 0");if(e===q)return Z;let r=q;for(;t>Z;)t&q&&(r=r*n%e),n=n*n%e,t>>=q;return r}function W(n,t,e){let r=n;for(;t-- >Z;)r*=r,r%=e;return r}function Ee(n,t){if(n===Z||t<=Z)throw new Error(`invert: expected positive integers, got n=${n} mod=${t}`);let e=D(n,t),r=t,s=Z,i=q;for(;e!==Z;){const a=r/e,o=r%e,l=s-i*a;r=e,e=o,s=i,i=l}if(r!==q)throw new Error("invert: does not exist");return D(s,t)}function Wn(n){const t=(n-q)/Et;let e,r,s;for(e=n-q,r=0;e%Et===Z;e/=Et,r++);for(s=Et;s(r[s]="function",r),t);return te(n,e)}function tr(n,t,e){if(e 0");if(e===Z)return n.ONE;if(e===q)return t;let r=n.ONE,s=t;for(;e>Z;)e&q&&(r=n.mul(r,s)),s=n.sqr(s),e>>=q;return r}function er(n,t){const e=new Array(t.length),r=t.reduce((i,c,a)=>n.is0(c)?i:(e[a]=i,n.mul(i,c)),n.ONE),s=n.inv(r);return t.reduceRight((i,c,a)=>n.is0(c)?i:(e[a]=n.mul(i,e[a]),n.mul(i,c)),s),e}function gn(n,t){const e=t!==void 0?t:n.toString(2).length,r=Math.ceil(e/8);return{nBitLength:e,nByteLength:r}}function nr(n,t,e=!1,r={}){if(n<=Z)throw new Error(`Expected Field ORDER > 0, got ${n}`);const{nBitLength:s,nByteLength:i}=gn(n,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const c=Xn(n),a=Object.freeze({ORDER:n,BITS:s,BYTES:i,MASK:Le(s),ZERO:Z,ONE:q,create:o=>D(o,n),isValid:o=>{if(typeof o!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof o}`);return Z<=o&&oo===Z,isOdd:o=>(o&q)===q,neg:o=>D(-o,n),eql:(o,l)=>o===l,sqr:o=>D(o*o,n),add:(o,l)=>D(o+l,n),sub:(o,l)=>D(o-l,n),mul:(o,l)=>D(o*l,n),pow:(o,l)=>tr(a,o,l),div:(o,l)=>D(o*Ee(l,n),n),sqrN:o=>o*o,addN:(o,l)=>o+l,subN:(o,l)=>o-l,mulN:(o,l)=>o*l,inv:o=>Ee(o,n),sqrt:r.sqrt||(o=>c(a,o)),invertBatch:o=>er(a,o),cmov:(o,l,y)=>y?l:o,toBytes:o=>e?Se(o,i):Dt(o,i),fromBytes:o=>{if(o.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${o.length}`);return e?Ie(o):It(o)}});return Object.freeze(a)}function bn(n){if(typeof n!="bigint")throw new Error("field order must be bigint");const t=n.toString(2).length;return Math.ceil(t/8)}function yn(n){const t=bn(n);return t+Math.ceil(t/2)}function rr(n,t,e=!1){const r=n.length,s=bn(t),i=yn(t);if(r<16||r1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);const c=e?It(n):Ie(n),a=D(c,t-q)+q;return e?Se(a,s):Dt(a,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const sr=BigInt(0),pe=BigInt(1);function ir(n,t){const e=(s,i)=>{const c=i.negate();return s?c:i},r=s=>{const i=Math.ceil(t/s)+1,c=2**(s-1);return{windows:i,windowSize:c}};return{constTimeNegate:e,unsafeLadder(s,i){let c=n.ZERO,a=s;for(;i>sr;)i&pe&&(c=c.add(a)),a=a.double(),i>>=pe;return c},precomputeWindow(s,i){const{windows:c,windowSize:a}=r(i),o=[];let l=s,y=l;for(let f=0;f>=P,d>o&&(d-=w,c+=pe);const g=u,B=u+Math.abs(d)-1,b=m%2!==0,H=d<0;d===0?y=y.add(e(b,i[g])):l=l.add(e(H,i[B]))}return{p:l,f:y}},wNAFCached(s,i,c,a){const o=s._WINDOW_SIZE||1;let l=i.get(s);return l||(l=this.precomputeWindow(s,o),o!==1&&i.set(s,a(l))),this.wNAF(o,l,c)}}}function pn(n){return Qn(n.Fp),te(n,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...gn(n.n,n.nBitLength),...n,p:n.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function or(n){const t=pn(n);te(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:e,Fp:r,a:s}=t;if(e){if(!r.eql(s,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:ar,hexToBytes:cr}=Dn,vt={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(n){const{Err:t}=vt;if(n.length<2||n[0]!==2)throw new t("Invalid signature integer tag");const e=n[1],r=n.subarray(2,e+2);if(!e||r.length!==e)throw new t("Invalid signature integer: wrong length");if(r[0]&128)throw new t("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:ar(r),l:n.subarray(e+2)}},toSig(n){const{Err:t}=vt,e=typeof n=="string"?cr(n):n;if(!(e instanceof Uint8Array))throw new Error("ui8a expected");let r=e.length;if(r<2||e[0]!=48)throw new t("Invalid signature tag");if(e[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:s,l:i}=vt._parseInt(e.subarray(2)),{d:c,l:a}=vt._parseInt(i);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:s,s:c}},hexFromSig(n){const t=l=>Number.parseInt(l[0],16)&8?"00"+l:l,e=l=>{const y=l.toString(16);return y.length&1?`0${y}`:y},r=t(e(n.s)),s=t(e(n.r)),i=r.length/2,c=s.length/2,a=e(i),o=e(c);return`30${e(c+i+4)}02${o}${s}02${a}${r}`}},ft=BigInt(0),X=BigInt(1);BigInt(2);const je=BigInt(3);BigInt(4);function lr(n){const t=or(n),{Fp:e}=t,r=t.toBytes||((m,u,d)=>{const g=u.toAffine();return Jt(Uint8Array.from([4]),e.toBytes(g.x),e.toBytes(g.y))}),s=t.fromBytes||(m=>{const u=m.subarray(1),d=e.fromBytes(u.subarray(0,e.BYTES)),g=e.fromBytes(u.subarray(e.BYTES,2*e.BYTES));return{x:d,y:g}});function i(m){const{a:u,b:d}=t,g=e.sqr(m),B=e.mul(g,m);return e.add(e.add(B,e.mul(m,u)),d)}if(!e.eql(e.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function c(m){return typeof m=="bigint"&&fte.eql(b,e.ZERO);return B(d)&&B(g)?f.ZERO:new f(d,g,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(u){const d=e.invertBatch(u.map(g=>g.pz));return u.map((g,B)=>g.toAffine(d[B])).map(f.fromAffine)}static fromHex(u){const d=f.fromAffine(s(Q("pointHex",u)));return d.assertValidity(),d}static fromPrivateKey(u){return f.BASE.multiply(o(u))}_setWindowSize(u){this._WINDOW_SIZE=u,l.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!e.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:u,y:d}=this.toAffine();if(!e.isValid(u)||!e.isValid(d))throw new Error("bad point: x or y not FE");const g=e.sqr(d),B=i(u);if(!e.eql(g,B))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:u}=this.toAffine();if(e.isOdd)return!e.isOdd(u);throw new Error("Field doesn't support isOdd")}equals(u){y(u);const{px:d,py:g,pz:B}=this,{px:b,py:H,pz:v}=u,x=e.eql(e.mul(d,v),e.mul(b,B)),A=e.eql(e.mul(g,v),e.mul(H,B));return x&&A}negate(){return new f(this.px,e.neg(this.py),this.pz)}double(){const{a:u,b:d}=t,g=e.mul(d,je),{px:B,py:b,pz:H}=this;let v=e.ZERO,x=e.ZERO,A=e.ZERO,E=e.mul(B,B),k=e.mul(b,b),G=e.mul(H,H),F=e.mul(B,b);return F=e.add(F,F),A=e.mul(B,H),A=e.add(A,A),v=e.mul(u,A),x=e.mul(g,G),x=e.add(v,x),v=e.sub(k,x),x=e.add(k,x),x=e.mul(v,x),v=e.mul(F,v),A=e.mul(g,A),G=e.mul(u,G),F=e.sub(E,G),F=e.mul(u,F),F=e.add(F,A),A=e.add(E,E),E=e.add(A,E),E=e.add(E,G),E=e.mul(E,F),x=e.add(x,E),G=e.mul(b,H),G=e.add(G,G),E=e.mul(G,F),v=e.sub(v,E),A=e.mul(G,k),A=e.add(A,A),A=e.add(A,A),new f(v,x,A)}add(u){y(u);const{px:d,py:g,pz:B}=this,{px:b,py:H,pz:v}=u;let x=e.ZERO,A=e.ZERO,E=e.ZERO;const k=t.a,G=e.mul(t.b,je);let F=e.mul(d,b),z=e.mul(g,H),j=e.mul(B,v),et=e.add(d,g),h=e.add(b,H);et=e.mul(et,h),h=e.add(F,z),et=e.sub(et,h),h=e.add(d,B);let p=e.add(b,v);return h=e.mul(h,p),p=e.add(F,j),h=e.sub(h,p),p=e.add(g,B),x=e.add(H,v),p=e.mul(p,x),x=e.add(z,j),p=e.sub(p,x),E=e.mul(k,h),x=e.mul(G,j),E=e.add(x,E),x=e.sub(z,E),E=e.add(z,E),A=e.mul(x,E),z=e.add(F,F),z=e.add(z,F),j=e.mul(k,j),h=e.mul(G,h),z=e.add(z,j),j=e.sub(F,j),j=e.mul(k,j),h=e.add(h,j),F=e.mul(z,h),A=e.add(A,F),F=e.mul(p,h),x=e.mul(et,x),x=e.sub(x,F),F=e.mul(et,z),E=e.mul(p,E),E=e.add(E,F),new f(x,A,E)}subtract(u){return this.add(u.negate())}is0(){return this.equals(f.ZERO)}wNAF(u){return P.wNAFCached(this,l,u,d=>{const g=e.invertBatch(d.map(B=>B.pz));return d.map((B,b)=>B.toAffine(g[b])).map(f.fromAffine)})}multiplyUnsafe(u){const d=f.ZERO;if(u===ft)return d;if(a(u),u===X)return this;const{endo:g}=t;if(!g)return P.unsafeLadder(this,u);let{k1neg:B,k1:b,k2neg:H,k2:v}=g.splitScalar(u),x=d,A=d,E=this;for(;b>ft||v>ft;)b&X&&(x=x.add(E)),v&X&&(A=A.add(E)),E=E.double(),b>>=X,v>>=X;return B&&(x=x.negate()),H&&(A=A.negate()),A=new f(e.mul(A.px,g.beta),A.py,A.pz),x.add(A)}multiply(u){a(u);let d=u,g,B;const{endo:b}=t;if(b){const{k1neg:H,k1:v,k2neg:x,k2:A}=b.splitScalar(d);let{p:E,f:k}=this.wNAF(v),{p:G,f:F}=this.wNAF(A);E=P.constTimeNegate(H,E),G=P.constTimeNegate(x,G),G=new f(e.mul(G.px,b.beta),G.py,G.pz),g=E.add(G),B=k.add(F)}else{const{p:H,f:v}=this.wNAF(d);g=H,B=v}return f.normalizeZ([g,B])[0]}multiplyAndAddUnsafe(u,d,g){const B=f.BASE,b=(v,x)=>x===ft||x===X||!v.equals(B)?v.multiplyUnsafe(x):v.multiply(x),H=b(this,d).add(b(u,g));return H.is0()?void 0:H}toAffine(u){const{px:d,py:g,pz:B}=this,b=this.is0();u==null&&(u=b?e.ONE:e.inv(B));const H=e.mul(d,u),v=e.mul(g,u),x=e.mul(B,u);if(b)return{x:e.ZERO,y:e.ZERO};if(!e.eql(x,e.ONE))throw new Error("invZ was invalid");return{x:H,y:v}}isTorsionFree(){const{h:u,isTorsionFree:d}=t;if(u===X)return!0;if(d)return d(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:u,clearCofactor:d}=t;return u===X?this:d?d(f,this):this.multiplyUnsafe(t.h)}toRawBytes(u=!0){return this.assertValidity(),r(f,this,u)}toHex(u=!0){return Zt(this.toRawBytes(u))}}f.BASE=new f(t.Gx,t.Gy,e.ONE),f.ZERO=new f(e.ZERO,e.ONE,e.ZERO);const w=t.nBitLength,P=ir(f,t.endo?Math.ceil(w/2):w);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:o,weierstrassEquation:i,isWithinCurveOrder:c}}function fr(n){const t=pn(n);return te(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function ur(n){const t=fr(n),{Fp:e,n:r}=t,s=e.BYTES+1,i=2*e.BYTES+1;function c(h){return ftZt(Dt(h,t.nByteLength));function m(h){const p=r>>X;return h>p}function u(h){return m(h)?a(-h):h}const d=(h,p,N)=>It(h.slice(p,N));class g{constructor(p,N,T){this.r=p,this.s=N,this.recovery=T,this.assertValidity()}static fromCompact(p){const N=t.nByteLength;return p=Q("compactSignature",p,N*2),new g(d(p,0,N),d(p,N,2*N))}static fromDER(p){const{r:N,s:T}=vt.toSig(Q("DER",p));return new g(N,T)}assertValidity(){if(!w(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!w(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(p){return new g(this.r,this.s,p)}recoverPublicKey(p){const{r:N,s:T,recovery:U}=this,V=A(Q("msgHash",p));if(U==null||![0,1,2,3].includes(U))throw new Error("recovery id invalid");const M=U===2||U===3?N+t.n:N;if(M>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");const Y=U&1?"03":"02",ut=l.fromHex(Y+P(M)),ht=o(M),Lt=a(-V*ht),Yt=a(T*ht),dt=l.BASE.multiplyAndAddUnsafe(ut,Lt,Yt);if(!dt)throw new Error("point at infinify");return dt.assertValidity(),dt}hasHighS(){return m(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return jt(this.toDERHex())}toDERHex(){return vt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return jt(this.toCompactHex())}toCompactHex(){return P(this.r)+P(this.s)}}const B={isValidPrivateKey(h){try{return y(h),!0}catch{return!1}},normPrivateKeyToScalar:y,randomPrivateKey:()=>{const h=yn(t.n);return rr(t.randomBytes(h),t.n)},precompute(h=8,p=l.BASE){return p._setWindowSize(h),p.multiply(BigInt(3)),p}};function b(h,p=!0){return l.fromPrivateKey(h).toRawBytes(p)}function H(h){const p=h instanceof Uint8Array,N=typeof h=="string",T=(p||N)&&h.length;return p?T===s||T===i:N?T===2*s||T===2*i:h instanceof l}function v(h,p,N=!0){if(H(h))throw new Error("first arg must be private key");if(!H(p))throw new Error("second arg must be public key");return l.fromHex(p).multiply(y(h)).toRawBytes(N)}const x=t.bits2int||function(h){const p=It(h),N=h.length*8-t.nBitLength;return N>0?p>>BigInt(N):p},A=t.bits2int_modN||function(h){return a(x(h))},E=Le(t.nBitLength);function k(h){if(typeof h!="bigint")throw new Error("bigint expected");if(!(ft<=h&&hBt in N))throw new Error("sign() legacy options not supported");const{hash:T,randomBytes:U}=t;let{lowS:V,prehash:M,extraEntropy:Y}=N;V==null&&(V=!0),h=Q("msgHash",h),M&&(h=Q("prehashed msgHash",T(h)));const ut=A(h),ht=y(p),Lt=[k(ht),k(ut)];if(Y!=null){const Bt=Y===!0?U(e.BYTES):Y;Lt.push(Q("extraEntropy",Bt))}const Yt=Jt(...Lt),dt=ut;function he(Bt){const Ht=x(Bt);if(!w(Ht))return;const Oe=o(Ht),Nt=l.BASE.multiply(Ht).toAffine(),J=a(Nt.x);if(J===ft)return;const Ft=a(Oe*a(dt+J*ht));if(Ft===ft)return;let Ue=(Nt.x===J?0:2)|Number(Nt.y&X),Te=Ft;return V&&m(Ft)&&(Te=u(Ft),Ue^=1),new g(J,Te,Ue)}return{seed:Yt,k2sig:he}}const F={lowS:t.lowS,prehash:!1},z={lowS:t.lowS,prehash:!1};function j(h,p,N=F){const{seed:T,k2sig:U}=G(h,p,N),V=t;return dn(V.hash.outputLen,V.nByteLength,V.hmac)(T,U)}l.BASE._setWindowSize(8);function et(h,p,N,T=z){var Nt;const U=h;if(p=Q("msgHash",p),N=Q("publicKey",N),"strict"in T)throw new Error("options.strict was renamed to lowS");const{lowS:V,prehash:M}=T;let Y,ut;try{if(typeof U=="string"||U instanceof Uint8Array)try{Y=g.fromDER(U)}catch(J){if(!(J instanceof vt.Err))throw J;Y=g.fromCompact(U)}else if(typeof U=="object"&&typeof U.r=="bigint"&&typeof U.s=="bigint"){const{r:J,s:Ft}=U;Y=new g(J,Ft)}else throw new Error("PARSE");ut=l.fromHex(N)}catch(J){if(J.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(V&&Y.hasHighS())return!1;M&&(p=t.hash(p));const{r:ht,s:Lt}=Y,Yt=A(p),dt=o(Lt),he=a(Yt*dt),Bt=a(ht*dt),Ht=(Nt=l.BASE.multiplyAndAddUnsafe(ut,he,Bt))==null?void 0:Nt.toAffine();return Ht?a(Ht.x)===ht:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:v,sign:j,verify:et,ProjectivePoint:l,Signature:g,utils:B}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function hr(n){return{hash:n,hmac:(t,...e)=>sn(n,t,An(...e)),randomBytes:vn}}function dr(n,t){const e=r=>ur({...n,...hr(r)});return Object.freeze({...e(t),create:e})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const mn=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),De=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),gr=BigInt(1),Ae=BigInt(2),Me=(n,t)=>(n+t/Ae)/t;function br(n){const t=mn,e=BigInt(3),r=BigInt(6),s=BigInt(11),i=BigInt(22),c=BigInt(23),a=BigInt(44),o=BigInt(88),l=n*n*n%t,y=l*l*n%t,f=W(y,e,t)*y%t,w=W(f,e,t)*y%t,P=W(w,Ae,t)*l%t,m=W(P,s,t)*P%t,u=W(m,i,t)*m%t,d=W(u,a,t)*u%t,g=W(d,o,t)*d%t,B=W(g,a,t)*u%t,b=W(B,e,t)*y%t,H=W(b,c,t)*m%t,v=W(H,r,t)*l%t,x=W(v,Ae,t);if(!ve.eql(ve.sqr(x),n))throw new Error("Cannot find square root");return x}const ve=nr(mn,void 0,void 0,{sqrt:br}),mt=dr({a:BigInt(0),b:BigInt(7),Fp:ve,n:De,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:n=>{const t=De,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-gr*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,c=BigInt("0x100000000000000000000000000000000"),a=Me(i*n,t),o=Me(-r*n,t);let l=D(n-a*e-o*s,t),y=D(-a*r-o*i,t);const f=l>c,w=y>c;if(f&&(l=t-l),w&&(y=t-y),l>c||y>c)throw new Error("splitScalar: Endomorphism failed, k="+n);return{k1neg:f,k1:l,k2neg:w,k2:y}}}},an);BigInt(0);mt.ProjectivePoint;const xn="0x0000000000000000000000000000000000000000";var ct;const At=class At{constructor(t){$(this,ct);L(be(t)===32,"invalid private key","privateKey","[REDACTED]"),I(this,ct,_(t))}get privateKey(){return O(this,ct)}get publicKey(){return At.computePublicKey(O(this,ct))}get compressedPublicKey(){return At.computePublicKey(O(this,ct),!0)}sign(t){L(be(t)===32,"invalid digest length","digest",t);const e=mt.sign(Wt(t),Wt(O(this,ct)),{lowS:!0});return St.from({r:ke(e.r,32),s:ke(e.s,32),v:e.recovery?28:27})}computeSharedSecret(t){const e=At.computePublicKey(t);return _(mt.getSharedSecret(Wt(O(this,ct)),ot(e),!1))}static computePublicKey(t,e){let r=ot(t,"key");if(r.length===32){const i=mt.getPublicKey(r,!!e);return _(i)}if(r.length===64){const i=new Uint8Array(65);i[0]=4,i.set(r,1),r=i}const s=mt.ProjectivePoint.fromHex(r);return _(s.toRawBytes(e))}static recoverPublicKey(t,e){L(be(t)===32,"invalid digest length","digest",t);const r=St.from(e);let s=mt.Signature.fromCompact(Wt(Xt([r.r,r.s])));s=s.addRecoveryBit(r.yParity);const i=s.recoverPublicKey(Wt(t));return L(i!=null,"invalid signautre for digest","signature",e),"0x"+i.toHex(!1)}static addPoints(t,e,r){const s=mt.ProjectivePoint.fromHex(At.computePublicKey(t).substring(2)),i=mt.ProjectivePoint.fromHex(At.computePublicKey(e).substring(2));return"0x"+s.add(i).toHex(!!r)}};ct=new WeakMap;let Qt=At;function me(n,t){return{address:oe(n),storageKeys:t.map((e,r)=>(L(ae(e,32),"invalid slot",`storageKeys[${r}]`,e),e.toLowerCase()))}}function He(n){if(Array.isArray(n))return n.map((e,r)=>Array.isArray(e)?(L(e.length===2,"invalid slot set",`value[${r}]`,e),me(e[0],e[1])):(L(e!=null&&typeof e=="object","invalid address-slot set","value",n),me(e.address,e.storageKeys)));L(n!=null&&typeof n=="object","invalid access list","value",n);const t=Object.keys(n).map(e=>{const r=n[e].reduce((s,i)=>(s[i]=!0,s),{});return me(e,Object.keys(r).sort())});return t.sort((e,r)=>e.address.localeCompare(r.address)),t}function yr(n){let t;return typeof n=="string"?t=Qt.computePublicKey(n,!1):t=n.publicKey,oe(we("0x"+t.substring(4)).substring(26))}function pr(n,t){return yr(Qt.recoverPublicKey(n,t))}const K=BigInt(0),mr=BigInt(2),xr=BigInt(27),wr=BigInt(28),Br=BigInt(35),Er=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),xe=4096*32;function Ye(n,t){let e=n.toString(16);for(;e.length<2;)e="0"+e;return e+=Mt(t).substring(4),"0x"+e}function ue(n){return n==="0x"?null:oe(n)}function Ne(n,t){try{return He(n)}catch(e){L(!1,e.message,t,n)}}function ee(n,t){return n==="0x"?0:tn(n,t)}function R(n,t){if(n==="0x")return K;const e=st(n,t);return L(e<=Er,"value exceeds uint size",t,e),e}function C(n,t){const e=st(n,"value"),r=tt(e);return L(r.length<=32,"value too large",`tx.${t}`,e),r}function Fe(n){return He(n).map(t=>[t.address,t.storageKeys])}function Ar(n,t){L(Array.isArray(n),`invalid ${t}`,"value",n);for(let e=0;es.data),e.map(s=>s.commitment),e.map(s=>s.proof)])]):Xt(["0x03",Kt(r)])}var it,Gt,Ot,Ut,Tt,Ct,kt,_t,qt,Rt,$t,zt,Pt,xt,lt,wt,Vt,re;const at=class at{constructor(){$(this,Vt);$(this,it);$(this,Gt);$(this,Ot);$(this,Ut);$(this,Tt);$(this,Ct);$(this,kt);$(this,_t);$(this,qt);$(this,Rt);$(this,$t);$(this,zt);$(this,Pt);$(this,xt);$(this,lt);$(this,wt);I(this,it,null),I(this,Gt,null),I(this,Ut,0),I(this,Tt,K),I(this,Ct,null),I(this,kt,null),I(this,_t,null),I(this,Ot,"0x"),I(this,qt,K),I(this,Rt,K),I(this,$t,null),I(this,zt,null),I(this,Pt,null),I(this,xt,null),I(this,wt,null),I(this,lt,null)}get type(){return O(this,it)}set type(t){switch(t){case null:I(this,it,null);break;case 0:case"legacy":I(this,it,0);break;case 1:case"berlin":case"eip-2930":I(this,it,1);break;case 2:case"london":case"eip-1559":I(this,it,2);break;case 3:case"cancun":case"eip-4844":I(this,it,3);break;default:L(!1,"unsupported transaction type","type",t)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844"}return null}get to(){const t=O(this,Gt);return t==null&&this.type===3?xn:t}set to(t){I(this,Gt,t==null?null:oe(t))}get nonce(){return O(this,Ut)}set nonce(t){I(this,Ut,tn(t,"value"))}get gasLimit(){return O(this,Tt)}set gasLimit(t){I(this,Tt,st(t))}get gasPrice(){const t=O(this,Ct);return t==null&&(this.type===0||this.type===1)?K:t}set gasPrice(t){I(this,Ct,t==null?null:st(t,"gasPrice"))}get maxPriorityFeePerGas(){const t=O(this,kt);return t??(this.type===2||this.type===3?K:null)}set maxPriorityFeePerGas(t){I(this,kt,t==null?null:st(t,"maxPriorityFeePerGas"))}get maxFeePerGas(){const t=O(this,_t);return t??(this.type===2||this.type===3?K:null)}set maxFeePerGas(t){I(this,_t,t==null?null:st(t,"maxFeePerGas"))}get data(){return O(this,Ot)}set data(t){I(this,Ot,_(t))}get value(){return O(this,qt)}set value(t){I(this,qt,st(t,"value"))}get chainId(){return O(this,Rt)}set chainId(t){I(this,Rt,st(t))}get signature(){return O(this,$t)||null}set signature(t){I(this,$t,t==null?null:St.from(t))}get accessList(){const t=O(this,zt)||null;return t??(this.type===1||this.type===2||this.type===3?[]:null)}set accessList(t){I(this,zt,t==null?null:He(t))}get maxFeePerBlobGas(){const t=O(this,Pt);return t==null&&this.type===3?K:t}set maxFeePerBlobGas(t){I(this,Pt,t==null?null:st(t,"maxFeePerBlobGas"))}get blobVersionedHashes(){let t=O(this,xt);return t==null&&this.type===3?[]:t}set blobVersionedHashes(t){if(t!=null){L(Array.isArray(t),"blobVersionedHashes must be an Array","value",t),t=t.slice();for(let e=0;eObject.assign({},t))}set blobs(t){if(t==null){I(this,wt,null);return}const e=[],r=[];for(let s=0;s=0?2:t.pop()}inferTypes(){const t=this.gasPrice!=null,e=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,r=this.accessList!=null,s=O(this,Pt)!=null||O(this,xt);this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null&&rt(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),rt(!e||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),rt(this.type!==0||!r,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const i=[];return this.type!=null?i.push(this.type):e?i.push(2):t?(i.push(1),r||i.push(0)):r?(i.push(1),i.push(2)):(s&&this.to||(i.push(0),i.push(1),i.push(2)),i.push(3)),i.sort(),i}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return at.from(this)}toJSON(){const t=e=>e==null?null:e.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:t(this.gasLimit),gasPrice:t(this.gasPrice),maxPriorityFeePerGas:t(this.maxPriorityFeePerGas),maxFeePerGas:t(this.maxFeePerGas),value:t(this.value),chainId:t(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(t){if(t==null)return new at;if(typeof t=="string"){const r=ot(t);if(r[0]>=127)return at.from(vr(r));switch(r[0]){case 1:return at.from(Lr(r));case 2:return at.from(Ir(r));case 3:return at.from(Nr(r))}rt(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const e=new at;return t.type!=null&&(e.type=t.type),t.to!=null&&(e.to=t.to),t.nonce!=null&&(e.nonce=t.nonce),t.gasLimit!=null&&(e.gasLimit=t.gasLimit),t.gasPrice!=null&&(e.gasPrice=t.gasPrice),t.maxPriorityFeePerGas!=null&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas),t.maxFeePerGas!=null&&(e.maxFeePerGas=t.maxFeePerGas),t.maxFeePerBlobGas!=null&&(e.maxFeePerBlobGas=t.maxFeePerBlobGas),t.data!=null&&(e.data=t.data),t.value!=null&&(e.value=t.value),t.chainId!=null&&(e.chainId=t.chainId),t.signature!=null&&(e.signature=St.from(t.signature)),t.accessList!=null&&(e.accessList=t.accessList),t.blobVersionedHashes!=null&&(e.blobVersionedHashes=t.blobVersionedHashes),t.kzg!=null&&(e.kzg=t.kzg),t.blobs!=null&&(e.blobs=t.blobs),t.hash!=null&&(L(e.isSigned(),"unsigned transaction cannot define '.hash'","tx",t),L(e.hash===t.hash,"hash mismatch","tx",t)),t.from!=null&&(L(e.isSigned(),"unsigned transaction cannot define '.from'","tx",t),L(e.from.toLowerCase()===(t.from||"").toLowerCase(),"from mismatch","tx",t)),e}};it=new WeakMap,Gt=new WeakMap,Ot=new WeakMap,Ut=new WeakMap,Tt=new WeakMap,Ct=new WeakMap,kt=new WeakMap,_t=new WeakMap,qt=new WeakMap,Rt=new WeakMap,$t=new WeakMap,zt=new WeakMap,Pt=new WeakMap,xt=new WeakMap,lt=new WeakMap,wt=new WeakMap,Vt=new WeakSet,re=function(t,e){rt(!t||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});const r=t?this.signature:null;switch(this.inferType()){case 0:return Pr(this,r);case 1:return Hr(this,r);case 2:return Sr(this,r);case 3:return Fr(this,r,e?this.blobs:null)}rt(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})};let We=at;export{kr as MessagePrefix,St as Signature,Qt as SigningKey,We as Transaction,_r as TypedDataEncoder,xn as ZeroAddress,qr as ZeroHash,He as accessListify,rt as assert,L as assertArgument,Rr as assertPrivate,yr as computeAddress,Xt as concat,be as dataLength,ce as decodeRlp,$r as defineProperties,Kt as encodeRlp,oe as getAddress,st as getBigInt,ot as getBytes,Wt as getBytesCopy,tn as getNumber,zr as getUint,Vr as hashMessage,_ as hexlify,Kr as id,Pn as isBytesLike,ae as isHexString,we as keccak256,Zr as makeError,jr as mask,pr as recoverAddress,Mt as sha256,tt as toBeArray,ke as toBeHex,Dr as toQuantity,Mr as toTwos,Yr as toUtf8Bytes,Wr as version,ie as zeroPadValue}; diff --git a/demo/redirect-flow-example/dist/assets/index-Bnj_EkxG.js b/demo/redirect-flow-example/dist/assets/index-Bnj_EkxG.js new file mode 100644 index 00000000..0acdb3dd --- /dev/null +++ b/demo/redirect-flow-example/dist/assets/index-Bnj_EkxG.js @@ -0,0 +1,140 @@ +var tX=Object.defineProperty;var mG=e=>{throw TypeError(e)};var iX=(e,A,t)=>A in e?tX(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t;var vG=(e,A,t)=>iX(e,typeof A!="symbol"?A+"":A,t),OD=(e,A,t)=>A.has(e)||mG("Cannot "+t);var In=(e,A,t)=>(OD(e,A,"read from private field"),t?t.call(e):A.get(e)),Xs=(e,A,t)=>A.has(e)?mG("Cannot add the same private member more than once"):A instanceof WeakSet?A.add(e):A.set(e,t),fn=(e,A,t,i)=>(OD(e,A,"write to private field"),i?i.call(e,t):A.set(e,t),t),MG=(e,A,t)=>(OD(e,A,"access private method"),t);(function(){const A=document.createElement("link").relList;if(A&&A.supports&&A.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const f of r.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&i(f)}).observe(document,{childList:!0,subtree:!0});function t(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(o){if(o.ep)return;o.ep=!0;const r=t(o);fetch(o.href,r)}})();var Qr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function $i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Ik(e){if(e.__esModule)return e;var A=e.default;if(typeof A=="function"){var t=function i(){return this instanceof i?Reflect.construct(A,arguments,this.constructor):A.apply(this,arguments)};t.prototype=A.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach(function(i){var o=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:function(){return e[i]}})}),t}var jt={},Qy={};Qy.byteLength=oX;Qy.toByteArray=aX;Qy.fromByteArray=fX;var hs=[],On=[],rX=typeof Uint8Array<"u"?Uint8Array:Array,jD="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var nh=0,nX=jD.length;nh0)throw new Error("Invalid string. Length must be a multiple of 4");var t=e.indexOf("=");t===-1&&(t=A);var i=t===A?0:4-t%4;return[t,i]}function oX(e){var A=qq(e),t=A[0],i=A[1];return(t+i)*3/4-i}function sX(e,A,t){return(A+t)*3/4-t}function aX(e){var A,t=qq(e),i=t[0],o=t[1],r=new rX(sX(e,i,o)),f=0,h=o>0?i-4:i,d;for(d=0;d>16&255,r[f++]=A>>8&255,r[f++]=A&255;return o===2&&(A=On[e.charCodeAt(d)]<<2|On[e.charCodeAt(d+1)]>>4,r[f++]=A&255),o===1&&(A=On[e.charCodeAt(d)]<<10|On[e.charCodeAt(d+1)]<<4|On[e.charCodeAt(d+2)]>>2,r[f++]=A>>8&255,r[f++]=A&255),r}function gX(e){return hs[e>>18&63]+hs[e>>12&63]+hs[e>>6&63]+hs[e&63]}function IX(e,A,t){for(var i,o=[],r=A;rh?h:f+r));return i===1?(A=e[t-1],o.push(hs[A>>2]+hs[A<<4&63]+"==")):i===2&&(A=(e[t-2]<<8)+e[t-1],o.push(hs[A>>10]+hs[A>>4&63]+hs[A<<2&63]+"=")),o.join("")}var fk={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */fk.read=function(e,A,t,i,o){var r,f,h=o*8-i-1,d=(1<>1,C=-7,y=t?o-1:0,w=t?-1:1,D=e[A+y];for(y+=w,r=D&(1<<-C)-1,D>>=-C,C+=h;C>0;r=r*256+e[A+y],y+=w,C-=8);for(f=r&(1<<-C)-1,r>>=-C,C+=i;C>0;f=f*256+e[A+y],y+=w,C-=8);if(r===0)r=1-p;else{if(r===d)return f?NaN:(D?-1:1)*(1/0);f=f+Math.pow(2,i),r=r-p}return(D?-1:1)*f*Math.pow(2,r-i)};fk.write=function(e,A,t,i,o,r){var f,h,d,p=r*8-o-1,C=(1<>1,w=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,D=i?0:r-1,v=i?1:-1,M=A<0||A===0&&1/A<0?1:0;for(A=Math.abs(A),isNaN(A)||A===1/0?(h=isNaN(A)?1:0,f=C):(f=Math.floor(Math.log(A)/Math.LN2),A*(d=Math.pow(2,-f))<1&&(f--,d*=2),f+y>=1?A+=w/d:A+=w*Math.pow(2,1-y),A*d>=2&&(f++,d/=2),f+y>=C?(h=0,f=C):f+y>=1?(h=(A*d-1)*Math.pow(2,o),f=f+y):(h=A*Math.pow(2,y-1)*Math.pow(2,o),f=0));o>=8;e[t+D]=h&255,D+=v,h/=256,o-=8);for(f=f<0;e[t+D]=f&255,D+=v,f/=256,p-=8);e[t+D-v]|=M*128};/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */(function(e){const A=Qy,t=fk,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=h,e.SlowBuffer=S,e.INSPECT_MAX_BYTES=50;const o=2147483647;e.kMaxLength=o,h.TYPED_ARRAY_SUPPORT=r(),!h.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function r(){try{const x=new Uint8Array(1),k={foo:function(){return 42}};return Object.setPrototypeOf(k,Uint8Array.prototype),Object.setPrototypeOf(x,k),x.foo()===42}catch{return!1}}Object.defineProperty(h.prototype,"parent",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.buffer}}),Object.defineProperty(h.prototype,"offset",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.byteOffset}});function f(x){if(x>o)throw new RangeError('The value "'+x+'" is invalid for option "size"');const k=new Uint8Array(x);return Object.setPrototypeOf(k,h.prototype),k}function h(x,k,F){if(typeof x=="number"){if(typeof k=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(x)}return d(x,k,F)}h.poolSize=8192;function d(x,k,F){if(typeof x=="string")return w(x,k);if(ArrayBuffer.isView(x))return v(x);if(x==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x);if(IA(x,ArrayBuffer)||x&&IA(x.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(IA(x,SharedArrayBuffer)||x&&IA(x.buffer,SharedArrayBuffer)))return M(x,k,F);if(typeof x=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const T=x.valueOf&&x.valueOf();if(T!=null&&T!==x)return h.from(T,k,F);const Z=R(x);if(Z)return Z;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof x[Symbol.toPrimitive]=="function")return h.from(x[Symbol.toPrimitive]("string"),k,F);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x)}h.from=function(x,k,F){return d(x,k,F)},Object.setPrototypeOf(h.prototype,Uint8Array.prototype),Object.setPrototypeOf(h,Uint8Array);function p(x){if(typeof x!="number")throw new TypeError('"size" argument must be of type number');if(x<0)throw new RangeError('The value "'+x+'" is invalid for option "size"')}function C(x,k,F){return p(x),x<=0?f(x):k!==void 0?typeof F=="string"?f(x).fill(k,F):f(x).fill(k):f(x)}h.alloc=function(x,k,F){return C(x,k,F)};function y(x){return p(x),f(x<0?0:b(x)|0)}h.allocUnsafe=function(x){return y(x)},h.allocUnsafeSlow=function(x){return y(x)};function w(x,k){if((typeof k!="string"||k==="")&&(k="utf8"),!h.isEncoding(k))throw new TypeError("Unknown encoding: "+k);const F=G(x,k)|0;let T=f(F);const Z=T.write(x,k);return Z!==F&&(T=T.slice(0,Z)),T}function D(x){const k=x.length<0?0:b(x.length)|0,F=f(k);for(let T=0;T=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return x|0}function S(x){return+x!=x&&(x=0),h.alloc(+x)}h.isBuffer=function(k){return k!=null&&k._isBuffer===!0&&k!==h.prototype},h.compare=function(k,F){if(IA(k,Uint8Array)&&(k=h.from(k,k.offset,k.byteLength)),IA(F,Uint8Array)&&(F=h.from(F,F.offset,F.byteLength)),!h.isBuffer(k)||!h.isBuffer(F))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(k===F)return 0;let T=k.length,Z=F.length;for(let fA=0,eA=Math.min(T,Z);fAZ.length?(h.isBuffer(eA)||(eA=h.from(eA)),eA.copy(Z,fA)):Uint8Array.prototype.set.call(Z,eA,fA);else if(h.isBuffer(eA))eA.copy(Z,fA);else throw new TypeError('"list" argument must be an Array of Buffers');fA+=eA.length}return Z};function G(x,k){if(h.isBuffer(x))return x.length;if(ArrayBuffer.isView(x)||IA(x,ArrayBuffer))return x.byteLength;if(typeof x!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof x);const F=x.length,T=arguments.length>2&&arguments[2]===!0;if(!T&&F===0)return 0;let Z=!1;for(;;)switch(k){case"ascii":case"latin1":case"binary":return F;case"utf8":case"utf-8":return lA(x).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F*2;case"hex":return F>>>1;case"base64":return xA(x).length;default:if(Z)return T?-1:lA(x).length;k=(""+k).toLowerCase(),Z=!0}}h.byteLength=G;function U(x,k,F){let T=!1;if((k===void 0||k<0)&&(k=0),k>this.length||((F===void 0||F>this.length)&&(F=this.length),F<=0)||(F>>>=0,k>>>=0,F<=k))return"";for(x||(x="utf8");;)switch(x){case"hex":return u(this,k,F);case"utf8":case"utf-8":return g(this,k,F);case"ascii":return B(this,k,F);case"latin1":case"binary":return E(this,k,F);case"base64":return a(this,k,F);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return s(this,k,F);default:if(T)throw new TypeError("Unknown encoding: "+x);x=(x+"").toLowerCase(),T=!0}}h.prototype._isBuffer=!0;function P(x,k,F){const T=x[k];x[k]=x[F],x[F]=T}h.prototype.swap16=function(){const k=this.length;if(k%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let F=0;FF&&(k+=" ... "),""},i&&(h.prototype[i]=h.prototype.inspect),h.prototype.compare=function(k,F,T,Z,fA){if(IA(k,Uint8Array)&&(k=h.from(k,k.offset,k.byteLength)),!h.isBuffer(k))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof k);if(F===void 0&&(F=0),T===void 0&&(T=k?k.length:0),Z===void 0&&(Z=0),fA===void 0&&(fA=this.length),F<0||T>k.length||Z<0||fA>this.length)throw new RangeError("out of range index");if(Z>=fA&&F>=T)return 0;if(Z>=fA)return-1;if(F>=T)return 1;if(F>>>=0,T>>>=0,Z>>>=0,fA>>>=0,this===k)return 0;let eA=fA-Z,dA=T-F;const PA=Math.min(eA,dA),cA=this.slice(Z,fA),QA=k.slice(F,T);for(let YA=0;YA2147483647?F=2147483647:F<-2147483648&&(F=-2147483648),F=+F,UA(F)&&(F=Z?0:x.length-1),F<0&&(F=x.length+F),F>=x.length){if(Z)return-1;F=x.length-1}else if(F<0)if(Z)F=0;else return-1;if(typeof k=="string"&&(k=h.from(k,T)),h.isBuffer(k))return k.length===0?-1:oA(x,k,F,T,Z);if(typeof k=="number")return k=k&255,typeof Uint8Array.prototype.indexOf=="function"?Z?Uint8Array.prototype.indexOf.call(x,k,F):Uint8Array.prototype.lastIndexOf.call(x,k,F):oA(x,[k],F,T,Z);throw new TypeError("val must be string, number or Buffer")}function oA(x,k,F,T,Z){let fA=1,eA=x.length,dA=k.length;if(T!==void 0&&(T=String(T).toLowerCase(),T==="ucs2"||T==="ucs-2"||T==="utf16le"||T==="utf-16le")){if(x.length<2||k.length<2)return-1;fA=2,eA/=2,dA/=2,F/=2}function PA(QA,YA){return fA===1?QA[YA]:QA.readUInt16BE(YA*fA)}let cA;if(Z){let QA=-1;for(cA=F;cAeA&&(F=eA-dA),cA=F;cA>=0;cA--){let QA=!0;for(let YA=0;YAZ&&(T=Z)):T=Z;const fA=k.length;T>fA/2&&(T=fA/2);let eA;for(eA=0;eA>>0,isFinite(T)?(T=T>>>0,Z===void 0&&(Z="utf8")):(Z=T,T=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const fA=this.length-F;if((T===void 0||T>fA)&&(T=fA),k.length>0&&(T<0||F<0)||F>this.length)throw new RangeError("Attempt to write outside buffer bounds");Z||(Z="utf8");let eA=!1;for(;;)switch(Z){case"hex":return J(this,k,F,T);case"utf8":case"utf-8":return q(this,k,F,T);case"ascii":case"latin1":case"binary":return X(this,k,F,T);case"base64":return Q(this,k,F,T);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return n(this,k,F,T);default:if(eA)throw new TypeError("Unknown encoding: "+Z);Z=(""+Z).toLowerCase(),eA=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function a(x,k,F){return k===0&&F===x.length?A.fromByteArray(x):A.fromByteArray(x.slice(k,F))}function g(x,k,F){F=Math.min(x.length,F);const T=[];let Z=k;for(;Z239?4:fA>223?3:fA>191?2:1;if(Z+dA<=F){let PA,cA,QA,YA;switch(dA){case 1:fA<128&&(eA=fA);break;case 2:PA=x[Z+1],(PA&192)===128&&(YA=(fA&31)<<6|PA&63,YA>127&&(eA=YA));break;case 3:PA=x[Z+1],cA=x[Z+2],(PA&192)===128&&(cA&192)===128&&(YA=(fA&15)<<12|(PA&63)<<6|cA&63,YA>2047&&(YA<55296||YA>57343)&&(eA=YA));break;case 4:PA=x[Z+1],cA=x[Z+2],QA=x[Z+3],(PA&192)===128&&(cA&192)===128&&(QA&192)===128&&(YA=(fA&15)<<18|(PA&63)<<12|(cA&63)<<6|QA&63,YA>65535&&YA<1114112&&(eA=YA))}}eA===null?(eA=65533,dA=1):eA>65535&&(eA-=65536,T.push(eA>>>10&1023|55296),eA=56320|eA&1023),T.push(eA),Z+=dA}return c(T)}const I=4096;function c(x){const k=x.length;if(k<=I)return String.fromCharCode.apply(String,x);let F="",T=0;for(;TT)&&(F=T);let Z="";for(let fA=k;fAT&&(k=T),F<0?(F+=T,F<0&&(F=0)):F>T&&(F=T),FF)throw new RangeError("Trying to access beyond buffer length")}h.prototype.readUintLE=h.prototype.readUIntLE=function(k,F,T){k=k>>>0,F=F>>>0,T||l(k,F,this.length);let Z=this[k],fA=1,eA=0;for(;++eA>>0,F=F>>>0,T||l(k,F,this.length);let Z=this[k+--F],fA=1;for(;F>0&&(fA*=256);)Z+=this[k+--F]*fA;return Z},h.prototype.readUint8=h.prototype.readUInt8=function(k,F){return k=k>>>0,F||l(k,1,this.length),this[k]},h.prototype.readUint16LE=h.prototype.readUInt16LE=function(k,F){return k=k>>>0,F||l(k,2,this.length),this[k]|this[k+1]<<8},h.prototype.readUint16BE=h.prototype.readUInt16BE=function(k,F){return k=k>>>0,F||l(k,2,this.length),this[k]<<8|this[k+1]},h.prototype.readUint32LE=h.prototype.readUInt32LE=function(k,F){return k=k>>>0,F||l(k,4,this.length),(this[k]|this[k+1]<<8|this[k+2]<<16)+this[k+3]*16777216},h.prototype.readUint32BE=h.prototype.readUInt32BE=function(k,F){return k=k>>>0,F||l(k,4,this.length),this[k]*16777216+(this[k+1]<<16|this[k+2]<<8|this[k+3])},h.prototype.readBigUInt64LE=hA(function(k){k=k>>>0,j(k,"offset");const F=this[k],T=this[k+7];(F===void 0||T===void 0)&&sA(k,this.length-8);const Z=F+this[++k]*2**8+this[++k]*2**16+this[++k]*2**24,fA=this[++k]+this[++k]*2**8+this[++k]*2**16+T*2**24;return BigInt(Z)+(BigInt(fA)<>>0,j(k,"offset");const F=this[k],T=this[k+7];(F===void 0||T===void 0)&&sA(k,this.length-8);const Z=F*2**24+this[++k]*2**16+this[++k]*2**8+this[++k],fA=this[++k]*2**24+this[++k]*2**16+this[++k]*2**8+T;return(BigInt(Z)<>>0,F=F>>>0,T||l(k,F,this.length);let Z=this[k],fA=1,eA=0;for(;++eA=fA&&(Z-=Math.pow(2,8*F)),Z},h.prototype.readIntBE=function(k,F,T){k=k>>>0,F=F>>>0,T||l(k,F,this.length);let Z=F,fA=1,eA=this[k+--Z];for(;Z>0&&(fA*=256);)eA+=this[k+--Z]*fA;return fA*=128,eA>=fA&&(eA-=Math.pow(2,8*F)),eA},h.prototype.readInt8=function(k,F){return k=k>>>0,F||l(k,1,this.length),this[k]&128?(255-this[k]+1)*-1:this[k]},h.prototype.readInt16LE=function(k,F){k=k>>>0,F||l(k,2,this.length);const T=this[k]|this[k+1]<<8;return T&32768?T|4294901760:T},h.prototype.readInt16BE=function(k,F){k=k>>>0,F||l(k,2,this.length);const T=this[k+1]|this[k]<<8;return T&32768?T|4294901760:T},h.prototype.readInt32LE=function(k,F){return k=k>>>0,F||l(k,4,this.length),this[k]|this[k+1]<<8|this[k+2]<<16|this[k+3]<<24},h.prototype.readInt32BE=function(k,F){return k=k>>>0,F||l(k,4,this.length),this[k]<<24|this[k+1]<<16|this[k+2]<<8|this[k+3]},h.prototype.readBigInt64LE=hA(function(k){k=k>>>0,j(k,"offset");const F=this[k],T=this[k+7];(F===void 0||T===void 0)&&sA(k,this.length-8);const Z=this[k+4]+this[k+5]*2**8+this[k+6]*2**16+(T<<24);return(BigInt(Z)<>>0,j(k,"offset");const F=this[k],T=this[k+7];(F===void 0||T===void 0)&&sA(k,this.length-8);const Z=(F<<24)+this[++k]*2**16+this[++k]*2**8+this[++k];return(BigInt(Z)<>>0,F||l(k,4,this.length),t.read(this,k,!0,23,4)},h.prototype.readFloatBE=function(k,F){return k=k>>>0,F||l(k,4,this.length),t.read(this,k,!1,23,4)},h.prototype.readDoubleLE=function(k,F){return k=k>>>0,F||l(k,8,this.length),t.read(this,k,!0,52,8)},h.prototype.readDoubleBE=function(k,F){return k=k>>>0,F||l(k,8,this.length),t.read(this,k,!1,52,8)};function m(x,k,F,T,Z,fA){if(!h.isBuffer(x))throw new TypeError('"buffer" argument must be a Buffer instance');if(k>Z||kx.length)throw new RangeError("Index out of range")}h.prototype.writeUintLE=h.prototype.writeUIntLE=function(k,F,T,Z){if(k=+k,F=F>>>0,T=T>>>0,!Z){const dA=Math.pow(2,8*T)-1;m(this,k,F,T,dA,0)}let fA=1,eA=0;for(this[F]=k&255;++eA>>0,T=T>>>0,!Z){const dA=Math.pow(2,8*T)-1;m(this,k,F,T,dA,0)}let fA=T-1,eA=1;for(this[F+fA]=k&255;--fA>=0&&(eA*=256);)this[F+fA]=k/eA&255;return F+T},h.prototype.writeUint8=h.prototype.writeUInt8=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,1,255,0),this[F]=k&255,F+1},h.prototype.writeUint16LE=h.prototype.writeUInt16LE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,2,65535,0),this[F]=k&255,this[F+1]=k>>>8,F+2},h.prototype.writeUint16BE=h.prototype.writeUInt16BE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,2,65535,0),this[F]=k>>>8,this[F+1]=k&255,F+2},h.prototype.writeUint32LE=h.prototype.writeUInt32LE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,4,4294967295,0),this[F+3]=k>>>24,this[F+2]=k>>>16,this[F+1]=k>>>8,this[F]=k&255,F+4},h.prototype.writeUint32BE=h.prototype.writeUInt32BE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,4,4294967295,0),this[F]=k>>>24,this[F+1]=k>>>16,this[F+2]=k>>>8,this[F+3]=k&255,F+4};function N(x,k,F,T,Z){_(k,T,Z,x,F,7);let fA=Number(k&BigInt(4294967295));x[F++]=fA,fA=fA>>8,x[F++]=fA,fA=fA>>8,x[F++]=fA,fA=fA>>8,x[F++]=fA;let eA=Number(k>>BigInt(32)&BigInt(4294967295));return x[F++]=eA,eA=eA>>8,x[F++]=eA,eA=eA>>8,x[F++]=eA,eA=eA>>8,x[F++]=eA,F}function L(x,k,F,T,Z){_(k,T,Z,x,F,7);let fA=Number(k&BigInt(4294967295));x[F+7]=fA,fA=fA>>8,x[F+6]=fA,fA=fA>>8,x[F+5]=fA,fA=fA>>8,x[F+4]=fA;let eA=Number(k>>BigInt(32)&BigInt(4294967295));return x[F+3]=eA,eA=eA>>8,x[F+2]=eA,eA=eA>>8,x[F+1]=eA,eA=eA>>8,x[F]=eA,F+8}h.prototype.writeBigUInt64LE=hA(function(k,F=0){return N(this,k,F,BigInt(0),BigInt("0xffffffffffffffff"))}),h.prototype.writeBigUInt64BE=hA(function(k,F=0){return L(this,k,F,BigInt(0),BigInt("0xffffffffffffffff"))}),h.prototype.writeIntLE=function(k,F,T,Z){if(k=+k,F=F>>>0,!Z){const PA=Math.pow(2,8*T-1);m(this,k,F,T,PA-1,-PA)}let fA=0,eA=1,dA=0;for(this[F]=k&255;++fA>0)-dA&255;return F+T},h.prototype.writeIntBE=function(k,F,T,Z){if(k=+k,F=F>>>0,!Z){const PA=Math.pow(2,8*T-1);m(this,k,F,T,PA-1,-PA)}let fA=T-1,eA=1,dA=0;for(this[F+fA]=k&255;--fA>=0&&(eA*=256);)k<0&&dA===0&&this[F+fA+1]!==0&&(dA=1),this[F+fA]=(k/eA>>0)-dA&255;return F+T},h.prototype.writeInt8=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,1,127,-128),k<0&&(k=255+k+1),this[F]=k&255,F+1},h.prototype.writeInt16LE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,2,32767,-32768),this[F]=k&255,this[F+1]=k>>>8,F+2},h.prototype.writeInt16BE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,2,32767,-32768),this[F]=k>>>8,this[F+1]=k&255,F+2},h.prototype.writeInt32LE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,4,2147483647,-2147483648),this[F]=k&255,this[F+1]=k>>>8,this[F+2]=k>>>16,this[F+3]=k>>>24,F+4},h.prototype.writeInt32BE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,4,2147483647,-2147483648),k<0&&(k=4294967295+k+1),this[F]=k>>>24,this[F+1]=k>>>16,this[F+2]=k>>>8,this[F+3]=k&255,F+4},h.prototype.writeBigInt64LE=hA(function(k,F=0){return N(this,k,F,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),h.prototype.writeBigInt64BE=hA(function(k,F=0){return L(this,k,F,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function O(x,k,F,T,Z,fA){if(F+T>x.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("Index out of range")}function H(x,k,F,T,Z){return k=+k,F=F>>>0,Z||O(x,k,F,4),t.write(x,k,F,T,23,4),F+4}h.prototype.writeFloatLE=function(k,F,T){return H(this,k,F,!0,T)},h.prototype.writeFloatBE=function(k,F,T){return H(this,k,F,!1,T)};function K(x,k,F,T,Z){return k=+k,F=F>>>0,Z||O(x,k,F,8),t.write(x,k,F,T,52,8),F+8}h.prototype.writeDoubleLE=function(k,F,T){return K(this,k,F,!0,T)},h.prototype.writeDoubleBE=function(k,F,T){return K(this,k,F,!1,T)},h.prototype.copy=function(k,F,T,Z){if(!h.isBuffer(k))throw new TypeError("argument should be a Buffer");if(T||(T=0),!Z&&Z!==0&&(Z=this.length),F>=k.length&&(F=k.length),F||(F=0),Z>0&&Z=this.length)throw new RangeError("Index out of range");if(Z<0)throw new RangeError("sourceEnd out of bounds");Z>this.length&&(Z=this.length),k.length-F>>0,T=T===void 0?this.length:T>>>0,k||(k=0);let fA;if(typeof k=="number")for(fA=F;fA2**32?Z=$(String(F)):typeof F=="bigint"&&(Z=String(F),(F>BigInt(2)**BigInt(32)||F<-(BigInt(2)**BigInt(32)))&&(Z=$(Z)),Z+="n"),T+=` It must be ${k}. Received ${Z}`,T},RangeError);function $(x){let k="",F=x.length;const T=x[0]==="-"?1:0;for(;F>=T+4;F-=3)k=`_${x.slice(F-3,F)}${k}`;return`${x.slice(0,F)}${k}`}function V(x,k,F){j(k,"offset"),(x[k]===void 0||x[k+F]===void 0)&&sA(k,x.length-(F+1))}function _(x,k,F,T,Z,fA){if(x>F||x= 0${eA} and < 2${eA} ** ${(fA+1)*8}${eA}`:dA=`>= -(2${eA} ** ${(fA+1)*8-1}${eA}) and < 2 ** ${(fA+1)*8-1}${eA}`,new Y.ERR_OUT_OF_RANGE("value",dA,x)}V(T,Z,fA)}function j(x,k){if(typeof x!="number")throw new Y.ERR_INVALID_ARG_TYPE(k,"number",x)}function sA(x,k,F){throw Math.floor(x)!==x?(j(x,F),new Y.ERR_OUT_OF_RANGE("offset","an integer",x)):k<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${k}`,x)}const iA=/[^+/0-9A-Za-z-_]/g;function aA(x){if(x=x.split("=")[0],x=x.trim().replace(iA,""),x.length<2)return"";for(;x.length%4!==0;)x=x+"=";return x}function lA(x,k){k=k||1/0;let F;const T=x.length;let Z=null;const fA=[];for(let eA=0;eA55295&&F<57344){if(!Z){if(F>56319){(k-=3)>-1&&fA.push(239,191,189);continue}else if(eA+1===T){(k-=3)>-1&&fA.push(239,191,189);continue}Z=F;continue}if(F<56320){(k-=3)>-1&&fA.push(239,191,189),Z=F;continue}F=(Z-55296<<10|F-56320)+65536}else Z&&(k-=3)>-1&&fA.push(239,191,189);if(Z=null,F<128){if((k-=1)<0)break;fA.push(F)}else if(F<2048){if((k-=2)<0)break;fA.push(F>>6|192,F&63|128)}else if(F<65536){if((k-=3)<0)break;fA.push(F>>12|224,F>>6&63|128,F&63|128)}else if(F<1114112){if((k-=4)<0)break;fA.push(F>>18|240,F>>12&63|128,F>>6&63|128,F&63|128)}else throw new Error("Invalid code point")}return fA}function nA(x){const k=[];for(let F=0;F>8,Z=F%256,fA.push(Z),fA.push(T);return fA}function xA(x){return A.toByteArray(aA(x))}function gA(x,k,F,T){let Z;for(Z=0;Z=k.length||Z>=x.length);++Z)k[Z+F]=x[Z];return Z}function IA(x,k){return x instanceof k||x!=null&&x.constructor!=null&&x.constructor.name!=null&&x.constructor.name===k.name}function UA(x){return x!==x}const rA=function(){const x="0123456789abcdef",k=new Array(256);for(let F=0;F<16;++F){const T=F*16;for(let Z=0;Z<16;++Z)k[T+Z]=x[F]+x[Z]}return k}();function hA(x){return typeof BigInt>"u"?OA:x}function OA(){throw new Error("BigInt not supported")}})(jt);var Hq={exports:{}},oi=Hq.exports={},os,ss;function $2(){throw new Error("setTimeout has not been defined")}function X2(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?os=setTimeout:os=$2}catch{os=$2}try{typeof clearTimeout=="function"?ss=clearTimeout:ss=X2}catch{ss=X2}})();function Yq(e){if(os===setTimeout)return setTimeout(e,0);if((os===$2||!os)&&setTimeout)return os=setTimeout,setTimeout(e,0);try{return os(e,0)}catch{try{return os.call(null,e,0)}catch{return os.call(this,e,0)}}}function hX(e){if(ss===clearTimeout)return clearTimeout(e);if((ss===X2||!ss)&&clearTimeout)return ss=clearTimeout,clearTimeout(e);try{return ss(e)}catch{try{return ss.call(null,e)}catch{return ss.call(this,e)}}}var Ea=[],sc=!1,HI,gE=-1;function cX(){!sc||!HI||(sc=!1,HI.length?Ea=HI.concat(Ea):gE=-1,Ea.length&&Jq())}function Jq(){if(!sc){var e=Yq(cX);sc=!0;for(var A=Ea.length;A;){for(HI=Ea,Ea=[];++gE1)for(var t=1;t>>1,m=E[l];if(0>>1;lo(O,s))Ho(K,O)?(E[l]=K,E[H]=s,l=H):(E[l]=O,E[L]=s,l=L);else if(Ho(K,s))E[l]=K,E[H]=s,l=H;else break A}}return u}function o(E,u){var s=E.sortIndex-u.sortIndex;return s!==0?s:E.id-u.id}if(typeof performance=="object"&&typeof performance.now=="function"){var r=performance;e.unstable_now=function(){return r.now()}}else{var f=Date,h=f.now();e.unstable_now=function(){return f.now()-h}}var d=[],p=[],C=1,y=null,w=3,D=!1,v=!1,M=!1,R=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(E){for(var u=t(p);u!==null;){if(u.callback===null)i(p);else if(u.startTime<=E)i(p),u.sortIndex=u.expirationTime,A(d,u);else break;u=t(p)}}function U(E){if(M=!1,G(E),!v)if(t(d)!==null)v=!0,c(P);else{var u=t(p);u!==null&&B(U,u.startTime-E)}}function P(E,u){v=!1,M&&(M=!1,b(J),J=-1),D=!0;var s=w;try{for(G(u),y=t(d);y!==null&&(!(y.expirationTime>u)||E&&!Q());){var l=y.callback;if(typeof l=="function"){y.callback=null,w=y.priorityLevel;var m=l(y.expirationTime<=u);u=e.unstable_now(),typeof m=="function"?y.callback=m:y===t(d)&&i(d),G(u)}else i(d);y=t(d)}if(y!==null)var N=!0;else{var L=t(p);L!==null&&B(U,L.startTime-u),N=!1}return N}finally{y=null,w=s,D=!1}}var z=!1,oA=null,J=-1,q=5,X=-1;function Q(){return!(e.unstable_now()-XE||125l?(E.sortIndex=s,A(p,E),t(d)===null&&E===t(p)&&(M?(b(J),J=-1):M=!0,B(U,s-l))):(E.sortIndex=m,A(d,E),v||D||(v=!0,c(P))),E},e.unstable_shouldYield=Q,e.unstable_wrapCallback=function(E){var u=w;return function(){var s=w;w=u;try{return E.apply(this,arguments)}finally{w=s}}}})(rH);iH.exports=rH;var LX=iH.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var UX=bi,wn=LX;function re(e){for(var A="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),eb=Object.prototype.hasOwnProperty,_X=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,kG={},RG={};function qX(e){return eb.call(RG,e)?!0:eb.call(kG,e)?!1:_X.test(e)?RG[e]=!0:(kG[e]=!0,!1)}function HX(e,A,t,i){if(t!==null&&t.type===0)return!1;switch(typeof A){case"function":case"symbol":return!0;case"boolean":return i?!1:t!==null?!t.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function YX(e,A,t,i){if(A===null||typeof A>"u"||HX(e,A,t,i))return!0;if(i)return!1;if(t!==null)switch(t.type){case 3:return!A;case 4:return A===!1;case 5:return isNaN(A);case 6:return isNaN(A)||1>A}return!1}function Kr(e,A,t,i,o,r,f){this.acceptsBooleans=A===2||A===3||A===4,this.attributeName=i,this.attributeNamespace=o,this.mustUseProperty=t,this.propertyName=e,this.type=A,this.sanitizeURL=r,this.removeEmptyString=f}var zi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){zi[e]=new Kr(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var A=e[0];zi[A]=new Kr(A,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){zi[e]=new Kr(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){zi[e]=new Kr(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){zi[e]=new Kr(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){zi[e]=new Kr(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){zi[e]=new Kr(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){zi[e]=new Kr(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){zi[e]=new Kr(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ck=/[\-:]([a-z])/g;function Bk(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var A=e.replace(Ck,Bk);zi[A]=new Kr(A,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var A=e.replace(Ck,Bk);zi[A]=new Kr(A,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var A=e.replace(Ck,Bk);zi[A]=new Kr(A,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){zi[e]=new Kr(e,1,!1,e.toLowerCase(),null,!1,!1)});zi.xlinkHref=new Kr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){zi[e]=new Kr(e,1,!1,e.toLowerCase(),null,!0,!0)});function dk(e,A,t,i){var o=zi.hasOwnProperty(A)?zi[A]:null;(o!==null?o.type!==0:i||!(2h||o[f]!==r[h]){var d=` +`+o[f].replace(" at new "," at ");return e.displayName&&d.includes("")&&(d=d.replace("",e.displayName)),d}while(1<=f&&0<=h);break}}}finally{ZD=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?A0(e):""}function JX(e){switch(e.tag){case 5:return A0(e.type);case 16:return A0("Lazy");case 13:return A0("Suspense");case 19:return A0("SuspenseList");case 0:case 2:case 15:return e=zD(e.type,!1),e;case 11:return e=zD(e.type.render,!1),e;case 1:return e=zD(e.type,!0),e;default:return""}}function nb(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case _h:return"Fragment";case Uh:return"Portal";case tb:return"Profiler";case Ek:return"StrictMode";case ib:return"Suspense";case rb:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case sH:return(e.displayName||"Context")+".Consumer";case oH:return(e._context.displayName||"Context")+".Provider";case Qk:var A=e.render;return e=e.displayName,e||(e=A.displayName||A.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case pk:return A=e.displayName||null,A!==null?A:nb(e.type)||"Memo";case dg:A=e._payload,e=e._init;try{return nb(e(A))}catch{}}return null}function TX(e){var A=e.type;switch(e.tag){case 24:return"Cache";case 9:return(A.displayName||"Context")+".Consumer";case 10:return(A._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=A.render,e=e.displayName||e.name||"",A.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return A;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return nb(A);case 8:return A===Ek?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof A=="function")return A.displayName||A.name||null;if(typeof A=="string")return A}return null}function Wg(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function gH(e){var A=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(A==="checkbox"||A==="radio")}function PX(e){var A=gH(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,A),i=""+e[A];if(!e.hasOwnProperty(A)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var o=t.get,r=t.set;return Object.defineProperty(e,A,{configurable:!0,get:function(){return o.call(this)},set:function(f){i=""+f,r.call(this,f)}}),Object.defineProperty(e,A,{enumerable:t.enumerable}),{getValue:function(){return i},setValue:function(f){i=""+f},stopTracking:function(){e._valueTracker=null,delete e[A]}}}}function PB(e){e._valueTracker||(e._valueTracker=PX(e))}function IH(e){if(!e)return!1;var A=e._valueTracker;if(!A)return!0;var t=A.getValue(),i="";return e&&(i=gH(e)?e.checked?"true":"false":e.value),e=i,e!==t?(A.setValue(e),!0):!1}function uQ(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ob(e,A){var t=A.checked;return Ot({},A,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??e._wrapperState.initialChecked})}function GG(e,A){var t=A.defaultValue==null?"":A.defaultValue,i=A.checked!=null?A.checked:A.defaultChecked;t=Wg(A.value!=null?A.value:t),e._wrapperState={initialChecked:i,initialValue:t,controlled:A.type==="checkbox"||A.type==="radio"?A.checked!=null:A.value!=null}}function fH(e,A){A=A.checked,A!=null&&dk(e,"checked",A,!1)}function sb(e,A){fH(e,A);var t=Wg(A.value),i=A.type;if(t!=null)i==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(i==="submit"||i==="reset"){e.removeAttribute("value");return}A.hasOwnProperty("value")?ab(e,A.type,t):A.hasOwnProperty("defaultValue")&&ab(e,A.type,Wg(A.defaultValue)),A.checked==null&&A.defaultChecked!=null&&(e.defaultChecked=!!A.defaultChecked)}function FG(e,A,t){if(A.hasOwnProperty("value")||A.hasOwnProperty("defaultValue")){var i=A.type;if(!(i!=="submit"&&i!=="reset"||A.value!==void 0&&A.value!==null))return;A=""+e._wrapperState.initialValue,t||A===e.value||(e.value=A),e.defaultValue=A}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function ab(e,A,t){(A!=="number"||uQ(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var e0=Array.isArray;function ac(e,A,t,i){if(e=e.options,A){A={};for(var o=0;o"+A.valueOf().toString()+"",A=OB.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;A.firstChild;)e.appendChild(A.firstChild)}});function H0(e,A){if(A){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=A;return}}e.textContent=A}var B0={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},OX=["Webkit","ms","Moz","O"];Object.keys(B0).forEach(function(e){OX.forEach(function(A){A=A+e.charAt(0).toUpperCase()+e.substring(1),B0[A]=B0[e]})});function lH(e,A,t){return A==null||typeof A=="boolean"||A===""?"":t||typeof A!="number"||A===0||B0.hasOwnProperty(e)&&B0[e]?(""+A).trim():A+"px"}function CH(e,A){e=e.style;for(var t in A)if(A.hasOwnProperty(t)){var i=t.indexOf("--")===0,o=lH(t,A[t],i);t==="float"&&(t="cssFloat"),i?e.setProperty(t,o):e[t]=o}}var jX=Ot({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function fb(e,A){if(A){if(jX[e]&&(A.children!=null||A.dangerouslySetInnerHTML!=null))throw Error(re(137,e));if(A.dangerouslySetInnerHTML!=null){if(A.children!=null)throw Error(re(60));if(typeof A.dangerouslySetInnerHTML!="object"||!("__html"in A.dangerouslySetInnerHTML))throw Error(re(61))}if(A.style!=null&&typeof A.style!="object")throw Error(re(62))}}function hb(e,A){if(e.indexOf("-")===-1)return typeof A.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var cb=null;function yk(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var ub=null,gc=null,Ic=null;function UG(e){if(e=$C(e)){if(typeof ub!="function")throw Error(re(280));var A=e.stateNode;A&&(A=vy(A),ub(e.stateNode,e.type,A))}}function BH(e){gc?Ic?Ic.push(e):Ic=[e]:gc=e}function dH(){if(gc){var e=gc,A=Ic;if(Ic=gc=null,UG(e),A)for(e=0;e>>=0,e===0?32:31-(rAA(e)/nAA|0)|0}var jB=64,WB=4194304;function t0(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function dQ(e,A){var t=e.pendingLanes;if(t===0)return 0;var i=0,o=e.suspendedLanes,r=e.pingedLanes,f=t&268435455;if(f!==0){var h=f&~o;h!==0?i=t0(h):(r&=f,r!==0&&(i=t0(r)))}else f=t&~o,f!==0?i=t0(f):r!==0&&(i=t0(r));if(i===0)return 0;if(A!==0&&A!==i&&!(A&o)&&(o=i&-i,r=A&-A,o>=r||o===16&&(r&4194240)!==0))return A;if(i&4&&(i|=t&16),A=e.entangledLanes,A!==0)for(e=e.entanglements,A&=i;0t;t++)A.push(e);return A}function ZC(e,A,t){e.pendingLanes|=A,A!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,A=31-qo(A),e[A]=t}function gAA(e,A){var t=e.pendingLanes&~A;e.pendingLanes=A,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=A,e.mutableReadLanes&=A,e.entangledLanes&=A,A=e.entanglements;var i=e.eventTimes;for(e=e.expirationTimes;0=E0),jG=" ",WG=!1;function UH(e,A){switch(e){case"keyup":return LAA.indexOf(A.keyCode)!==-1;case"keydown":return A.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function _H(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var qh=!1;function _AA(e,A){switch(e){case"compositionend":return _H(A);case"keypress":return A.which!==32?null:(WG=!0,jG);case"textInput":return e=A.data,e===jG&&WG?null:e;default:return null}}function qAA(e,A){if(qh)return e==="compositionend"||!Nk&&UH(e,A)?(e=xH(),cE=Mk=Ng=null,qh=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(A.ctrlKey||A.altKey||A.metaKey)||A.ctrlKey&&A.altKey){if(A.char&&1=A)return{node:t,offset:A-e};e=i}A:{for(;t;){if(t.nextSibling){t=t.nextSibling;break A}t=t.parentNode}t=void 0}t=$G(t)}}function JH(e,A){return e&&A?e===A?!0:e&&e.nodeType===3?!1:A&&A.nodeType===3?JH(e,A.parentNode):"contains"in e?e.contains(A):e.compareDocumentPosition?!!(e.compareDocumentPosition(A)&16):!1:!1}function TH(){for(var e=window,A=uQ();A instanceof e.HTMLIFrameElement;){try{var t=typeof A.contentWindow.location.href=="string"}catch{t=!1}if(t)e=A.contentWindow;else break;A=uQ(e.document)}return A}function kk(e){var A=e&&e.nodeName&&e.nodeName.toLowerCase();return A&&(A==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||A==="textarea"||e.contentEditable==="true")}function VAA(e){var A=TH(),t=e.focusedElem,i=e.selectionRange;if(A!==t&&t&&t.ownerDocument&&JH(t.ownerDocument.documentElement,t)){if(i!==null&&kk(t)){if(A=i.start,e=i.end,e===void 0&&(e=A),"selectionStart"in t)t.selectionStart=A,t.selectionEnd=Math.min(e,t.value.length);else if(e=(A=t.ownerDocument||document)&&A.defaultView||window,e.getSelection){e=e.getSelection();var o=t.textContent.length,r=Math.min(i.start,o);i=i.end===void 0?r:Math.min(i.end,o),!e.extend&&r>i&&(o=i,i=r,r=o),o=XG(t,r);var f=XG(t,i);o&&f&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==f.node||e.focusOffset!==f.offset)&&(A=A.createRange(),A.setStart(o.node,o.offset),e.removeAllRanges(),r>i?(e.addRange(A),e.extend(f.node,f.offset)):(A.setEnd(f.node,f.offset),e.addRange(A)))}}for(A=[],e=t;e=e.parentNode;)e.nodeType===1&&A.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,Hh=null,Qb=null,p0=null,pb=!1;function AF(e,A,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;pb||Hh==null||Hh!==uQ(i)||(i=Hh,"selectionStart"in i&&kk(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),p0&&j0(p0,i)||(p0=i,i=pQ(Qb,"onSelect"),0Th||(e.current=Mb[Th],Mb[Th]=null,Th--)}function St(e,A){Th++,Mb[Th]=e.current,e.current=A}var Vg={},dr=sI(Vg),$r=sI(!1),Df=Vg;function Fc(e,A){var t=e.type.contextTypes;if(!t)return Vg;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===A)return i.__reactInternalMemoizedMaskedChildContext;var o={},r;for(r in t)o[r]=A[r];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=A,e.__reactInternalMemoizedMaskedChildContext=o),o}function Xr(e){return e=e.childContextTypes,e!=null}function wQ(){Ft($r),Ft(dr)}function sF(e,A,t){if(dr.current!==Vg)throw Error(re(168));St(dr,A),St($r,t)}function XH(e,A,t){var i=e.stateNode;if(A=A.childContextTypes,typeof i.getChildContext!="function")return t;i=i.getChildContext();for(var o in i)if(!(o in A))throw Error(re(108,TX(e)||"Unknown",o));return Ot({},t,i)}function DQ(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Vg,Df=dr.current,St(dr,e),St($r,$r.current),!0}function aF(e,A,t){var i=e.stateNode;if(!i)throw Error(re(169));t?(e=XH(e,A,Df),i.__reactInternalMemoizedMergedChildContext=e,Ft($r),Ft(dr),St(dr,e)):Ft($r),St($r,t)}var ha=null,My=!1,fm=!1;function AY(e){ha===null?ha=[e]:ha.push(e)}function seA(e){My=!0,AY(e)}function aI(){if(!fm&&ha!==null){fm=!0;var e=0,A=Qt;try{var t=ha;for(Qt=1;e>=f,o-=f,Qa=1<<32-qo(A)+o|t<J?(q=oA,oA=null):q=oA.sibling;var X=w(b,oA,G[J],U);if(X===null){oA===null&&(oA=q);break}e&&oA&&X.alternate===null&&A(b,oA),S=r(X,S,J),z===null?P=X:z.sibling=X,z=X,oA=q}if(J===G.length)return t(b,oA),qt&&RI(b,J),P;if(oA===null){for(;JJ?(q=oA,oA=null):q=oA.sibling;var Q=w(b,oA,X.value,U);if(Q===null){oA===null&&(oA=q);break}e&&oA&&Q.alternate===null&&A(b,oA),S=r(Q,S,J),z===null?P=Q:z.sibling=Q,z=Q,oA=q}if(X.done)return t(b,oA),qt&&RI(b,J),P;if(oA===null){for(;!X.done;J++,X=G.next())X=y(b,X.value,U),X!==null&&(S=r(X,S,J),z===null?P=X:z.sibling=X,z=X);return qt&&RI(b,J),P}for(oA=i(b,oA);!X.done;J++,X=G.next())X=D(oA,b,J,X.value,U),X!==null&&(e&&X.alternate!==null&&oA.delete(X.key===null?J:X.key),S=r(X,S,J),z===null?P=X:z.sibling=X,z=X);return e&&oA.forEach(function(n){return A(b,n)}),qt&&RI(b,J),P}function R(b,S,G,U){if(typeof G=="object"&&G!==null&&G.type===_h&&G.key===null&&(G=G.props.children),typeof G=="object"&&G!==null){switch(G.$$typeof){case TB:A:{for(var P=G.key,z=S;z!==null;){if(z.key===P){if(P=G.type,P===_h){if(z.tag===7){t(b,z.sibling),S=o(z,G.props.children),S.return=b,b=S;break A}}else if(z.elementType===P||typeof P=="object"&&P!==null&&P.$$typeof===dg&&fF(P)===z.type){t(b,z.sibling),S=o(z,G.props),S.ref=yl(b,z,G),S.return=b,b=S;break A}t(b,z);break}else A(b,z);z=z.sibling}G.type===_h?(S=Af(G.props.children,b.mode,U,G.key),S.return=b,b=S):(U=pE(G.type,G.key,G.props,null,b.mode,U),U.ref=yl(b,S,G),U.return=b,b=U)}return f(b);case Uh:A:{for(z=G.key;S!==null;){if(S.key===z)if(S.tag===4&&S.stateNode.containerInfo===G.containerInfo&&S.stateNode.implementation===G.implementation){t(b,S.sibling),S=o(S,G.children||[]),S.return=b,b=S;break A}else{t(b,S);break}else A(b,S);S=S.sibling}S=Em(G,b.mode,U),S.return=b,b=S}return f(b);case dg:return z=G._init,R(b,S,z(G._payload),U)}if(e0(G))return v(b,S,G,U);if(Bl(G))return M(b,S,G,U);ed(b,G)}return typeof G=="string"&&G!==""||typeof G=="number"?(G=""+G,S!==null&&S.tag===6?(t(b,S.sibling),S=o(S,G),S.return=b,b=S):(t(b,S),S=dm(G,b.mode,U),S.return=b,b=S),f(b)):t(b,S)}return R}var Lc=rY(!0),nY=rY(!1),MQ=sI(null),bQ=null,jh=null,Fk=null;function xk(){Fk=jh=bQ=null}function Lk(e){var A=MQ.current;Ft(MQ),e._currentValue=A}function Nb(e,A,t){for(;e!==null;){var i=e.alternate;if((e.childLanes&A)!==A?(e.childLanes|=A,i!==null&&(i.childLanes|=A)):i!==null&&(i.childLanes&A)!==A&&(i.childLanes|=A),e===t)break;e=e.return}}function hc(e,A){bQ=e,Fk=jh=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&A&&(Wr=!0),e.firstContext=null)}function oo(e){var A=e._currentValue;if(Fk!==e)if(e={context:e,memoizedValue:A,next:null},jh===null){if(bQ===null)throw Error(re(308));jh=e,bQ.dependencies={lanes:0,firstContext:e}}else jh=jh.next=e;return A}var JI=null;function Uk(e){JI===null?JI=[e]:JI.push(e)}function oY(e,A,t,i){var o=A.interleaved;return o===null?(t.next=t,Uk(A)):(t.next=o.next,o.next=t),A.interleaved=t,ka(e,i)}function ka(e,A){e.lanes|=A;var t=e.alternate;for(t!==null&&(t.lanes|=A),t=e,e=e.return;e!==null;)e.childLanes|=A,t=e.alternate,t!==null&&(t.childLanes|=A),t=e,e=e.return;return t.tag===3?t.stateNode:null}var Eg=!1;function _k(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function sY(e,A){e=e.updateQueue,A.updateQueue===e&&(A.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ma(e,A){return{eventTime:e,lane:A,tag:0,payload:null,callback:null,next:null}}function _g(e,A,t){var i=e.updateQueue;if(i===null)return null;if(i=i.shared,ct&2){var o=i.pending;return o===null?A.next=A:(A.next=o.next,o.next=A),i.pending=A,ka(e,t)}return o=i.interleaved,o===null?(A.next=A,Uk(i)):(A.next=o.next,o.next=A),i.interleaved=A,ka(e,t)}function lE(e,A,t){if(A=A.updateQueue,A!==null&&(A=A.shared,(t&4194240)!==0)){var i=A.lanes;i&=e.pendingLanes,t|=i,A.lanes=t,Dk(e,t)}}function hF(e,A){var t=e.updateQueue,i=e.alternate;if(i!==null&&(i=i.updateQueue,t===i)){var o=null,r=null;if(t=t.firstBaseUpdate,t!==null){do{var f={eventTime:t.eventTime,lane:t.lane,tag:t.tag,payload:t.payload,callback:t.callback,next:null};r===null?o=r=f:r=r.next=f,t=t.next}while(t!==null);r===null?o=r=A:r=r.next=A}else o=r=A;t={baseState:i.baseState,firstBaseUpdate:o,lastBaseUpdate:r,shared:i.shared,effects:i.effects},e.updateQueue=t;return}e=t.lastBaseUpdate,e===null?t.firstBaseUpdate=A:e.next=A,t.lastBaseUpdate=A}function SQ(e,A,t,i){var o=e.updateQueue;Eg=!1;var r=o.firstBaseUpdate,f=o.lastBaseUpdate,h=o.shared.pending;if(h!==null){o.shared.pending=null;var d=h,p=d.next;d.next=null,f===null?r=p:f.next=p,f=d;var C=e.alternate;C!==null&&(C=C.updateQueue,h=C.lastBaseUpdate,h!==f&&(h===null?C.firstBaseUpdate=p:h.next=p,C.lastBaseUpdate=d))}if(r!==null){var y=o.baseState;f=0,C=p=d=null,h=r;do{var w=h.lane,D=h.eventTime;if((i&w)===w){C!==null&&(C=C.next={eventTime:D,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,next:null});A:{var v=e,M=h;switch(w=A,D=t,M.tag){case 1:if(v=M.payload,typeof v=="function"){y=v.call(D,y,w);break A}y=v;break A;case 3:v.flags=v.flags&-65537|128;case 0:if(v=M.payload,w=typeof v=="function"?v.call(D,y,w):v,w==null)break A;y=Ot({},y,w);break A;case 2:Eg=!0}}h.callback!==null&&h.lane!==0&&(e.flags|=64,w=o.effects,w===null?o.effects=[h]:w.push(h))}else D={eventTime:D,lane:w,tag:h.tag,payload:h.payload,callback:h.callback,next:null},C===null?(p=C=D,d=y):C=C.next=D,f|=w;if(h=h.next,h===null){if(h=o.shared.pending,h===null)break;w=h,h=w.next,w.next=null,o.lastBaseUpdate=w,o.shared.pending=null}}while(!0);if(C===null&&(d=y),o.baseState=d,o.firstBaseUpdate=p,o.lastBaseUpdate=C,A=o.shared.interleaved,A!==null){o=A;do f|=o.lane,o=o.next;while(o!==A)}else r===null&&(o.shared.lanes=0);Mf|=f,e.lanes=f,e.memoizedState=y}}function cF(e,A,t){if(e=A.effects,A.effects=null,e!==null)for(A=0;At?t:4,e(!0);var i=cm.transition;cm.transition={};try{e(!1),A()}finally{Qt=t,cm.transition=i}}function DY(){return so().memoizedState}function feA(e,A,t){var i=Hg(e);if(t={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null},mY(e))vY(A,t);else if(t=oY(e,A,t,i),t!==null){var o=vr();Ho(t,e,i,o),MY(t,A,i)}}function heA(e,A,t){var i=Hg(e),o={lane:i,action:t,hasEagerState:!1,eagerState:null,next:null};if(mY(e))vY(A,o);else{var r=e.alternate;if(e.lanes===0&&(r===null||r.lanes===0)&&(r=A.lastRenderedReducer,r!==null))try{var f=A.lastRenderedState,h=r(f,t);if(o.hasEagerState=!0,o.eagerState=h,To(h,f)){var d=A.interleaved;d===null?(o.next=o,Uk(A)):(o.next=d.next,d.next=o),A.interleaved=o;return}}catch{}finally{}t=oY(e,A,o,i),t!==null&&(o=vr(),Ho(t,e,i,o),MY(t,A,i))}}function mY(e){var A=e.alternate;return e===Pt||A!==null&&A===Pt}function vY(e,A){y0=kQ=!0;var t=e.pending;t===null?A.next=A:(A.next=t.next,t.next=A),e.pending=A}function MY(e,A,t){if(t&4194240){var i=A.lanes;i&=e.pendingLanes,t|=i,A.lanes=t,Dk(e,t)}}var RQ={readContext:oo,useCallback:tr,useContext:tr,useEffect:tr,useImperativeHandle:tr,useInsertionEffect:tr,useLayoutEffect:tr,useMemo:tr,useReducer:tr,useRef:tr,useState:tr,useDebugValue:tr,useDeferredValue:tr,useTransition:tr,useMutableSource:tr,useSyncExternalStore:tr,useId:tr,unstable_isNewReconciler:!1},ceA={readContext:oo,useCallback:function(e,A){return ns().memoizedState=[e,A===void 0?null:A],e},useContext:oo,useEffect:lF,useImperativeHandle:function(e,A,t){return t=t!=null?t.concat([e]):null,BE(4194308,4,EY.bind(null,A,e),t)},useLayoutEffect:function(e,A){return BE(4194308,4,e,A)},useInsertionEffect:function(e,A){return BE(4,2,e,A)},useMemo:function(e,A){var t=ns();return A=A===void 0?null:A,e=e(),t.memoizedState=[e,A],e},useReducer:function(e,A,t){var i=ns();return A=t!==void 0?t(A):A,i.memoizedState=i.baseState=A,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:A},i.queue=e,e=e.dispatch=feA.bind(null,Pt,e),[i.memoizedState,e]},useRef:function(e){var A=ns();return e={current:e},A.memoizedState=e},useState:uF,useDebugValue:jk,useDeferredValue:function(e){return ns().memoizedState=e},useTransition:function(){var e=uF(!1),A=e[0];return e=IeA.bind(null,e[1]),ns().memoizedState=e,[A,e]},useMutableSource:function(){},useSyncExternalStore:function(e,A,t){var i=Pt,o=ns();if(qt){if(t===void 0)throw Error(re(407));t=t()}else{if(t=A(),Fi===null)throw Error(re(349));vf&30||fY(i,A,t)}o.memoizedState=t;var r={value:t,getSnapshot:A};return o.queue=r,lF(cY.bind(null,i,r,e),[e]),i.flags|=2048,eC(9,hY.bind(null,i,r,t,A),void 0,null),t},useId:function(){var e=ns(),A=Fi.identifierPrefix;if(qt){var t=pa,i=Qa;t=(i&~(1<<32-qo(i)-1)).toString(32)+t,A=":"+A+"R"+t,t=X0++,0<\/script>",e=e.removeChild(e.firstChild)):typeof i.is=="string"?e=f.createElement(t,{is:i.is}):(e=f.createElement(t),t==="select"&&(f=e,i.multiple?f.multiple=!0:i.size&&(f.size=i.size))):e=f.createElementNS(e,t),e[cs]=A,e[Z0]=i,LY(e,A,!1,!1),A.stateNode=e;A:{switch(f=hb(t,i),t){case"dialog":Gt("cancel",e),Gt("close",e),o=i;break;case"iframe":case"object":case"embed":Gt("load",e),o=i;break;case"video":case"audio":for(o=0;oqc&&(A.flags|=128,i=!0,wl(r,!1),A.lanes=4194304)}else{if(!i)if(e=NQ(f),e!==null){if(A.flags|=128,i=!0,t=e.updateQueue,t!==null&&(A.updateQueue=t,A.flags|=4),wl(r,!0),r.tail===null&&r.tailMode==="hidden"&&!f.alternate&&!qt)return ir(A),null}else 2*ri()-r.renderingStartTime>qc&&t!==1073741824&&(A.flags|=128,i=!0,wl(r,!1),A.lanes=4194304);r.isBackwards?(f.sibling=A.child,A.child=f):(t=r.last,t!==null?t.sibling=f:A.child=f,r.last=f)}return r.tail!==null?(A=r.tail,r.rendering=A,r.tail=A.sibling,r.renderingStartTime=ri(),A.sibling=null,t=Tt.current,St(Tt,i?t&1|2:t&1),A):(ir(A),null);case 22:case 23:return Xk(),i=A.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(A.flags|=8192),i&&A.mode&1?ln&1073741824&&(ir(A),A.subtreeFlags&6&&(A.flags|=8192)):ir(A),null;case 24:return null;case 25:return null}throw Error(re(156,A.tag))}function peA(e,A){switch(Kk(A),A.tag){case 1:return Xr(A.type)&&wQ(),e=A.flags,e&65536?(A.flags=e&-65537|128,A):null;case 3:return Uc(),Ft($r),Ft(dr),Yk(),e=A.flags,e&65536&&!(e&128)?(A.flags=e&-65537|128,A):null;case 5:return Hk(A),null;case 13:if(Ft(Tt),e=A.memoizedState,e!==null&&e.dehydrated!==null){if(A.alternate===null)throw Error(re(340));xc()}return e=A.flags,e&65536?(A.flags=e&-65537|128,A):null;case 19:return Ft(Tt),null;case 4:return Uc(),null;case 10:return Lk(A.type._context),null;case 22:case 23:return Xk(),null;case 24:return null;default:return null}}var id=!1,hr=!1,yeA=typeof WeakSet=="function"?WeakSet:Set,Ee=null;function Wh(e,A){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(i){Wt(e,A,i)}else t.current=null}function _b(e,A,t){try{t()}catch(i){Wt(e,A,i)}}var vF=!1;function weA(e,A){if(yb=EQ,e=TH(),kk(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else A:{t=(t=e.ownerDocument)&&t.defaultView||window;var i=t.getSelection&&t.getSelection();if(i&&i.rangeCount!==0){t=i.anchorNode;var o=i.anchorOffset,r=i.focusNode;i=i.focusOffset;try{t.nodeType,r.nodeType}catch{t=null;break A}var f=0,h=-1,d=-1,p=0,C=0,y=e,w=null;e:for(;;){for(var D;y!==t||o!==0&&y.nodeType!==3||(h=f+o),y!==r||i!==0&&y.nodeType!==3||(d=f+i),y.nodeType===3&&(f+=y.nodeValue.length),(D=y.firstChild)!==null;)w=y,y=D;for(;;){if(y===e)break e;if(w===t&&++p===o&&(h=f),w===r&&++C===i&&(d=f),(D=y.nextSibling)!==null)break;y=w,w=y.parentNode}y=D}t=h===-1||d===-1?null:{start:h,end:d}}else t=null}t=t||{start:0,end:0}}else t=null;for(wb={focusedElem:e,selectionRange:t},EQ=!1,Ee=A;Ee!==null;)if(A=Ee,e=A.child,(A.subtreeFlags&1028)!==0&&e!==null)e.return=A,Ee=e;else for(;Ee!==null;){A=Ee;try{var v=A.alternate;if(A.flags&1024)switch(A.tag){case 0:case 11:case 15:break;case 1:if(v!==null){var M=v.memoizedProps,R=v.memoizedState,b=A.stateNode,S=b.getSnapshotBeforeUpdate(A.elementType===A.type?M:vo(A.type,M),R);b.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var G=A.stateNode.containerInfo;G.nodeType===1?G.textContent="":G.nodeType===9&&G.documentElement&&G.removeChild(G.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(re(163))}}catch(U){Wt(A,A.return,U)}if(e=A.sibling,e!==null){e.return=A.return,Ee=e;break}Ee=A.return}return v=vF,vF=!1,v}function w0(e,A,t){var i=A.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var o=i=i.next;do{if((o.tag&e)===e){var r=o.destroy;o.destroy=void 0,r!==void 0&&_b(A,t,r)}o=o.next}while(o!==i)}}function Ny(e,A){if(A=A.updateQueue,A=A!==null?A.lastEffect:null,A!==null){var t=A=A.next;do{if((t.tag&e)===e){var i=t.create;t.destroy=i()}t=t.next}while(t!==A)}}function qb(e){var A=e.ref;if(A!==null){var t=e.stateNode;switch(e.tag){case 5:e=t;break;default:e=t}typeof A=="function"?A(e):A.current=e}}function qY(e){var A=e.alternate;A!==null&&(e.alternate=null,qY(A)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(A=e.stateNode,A!==null&&(delete A[cs],delete A[Z0],delete A[vb],delete A[neA],delete A[oeA])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function HY(e){return e.tag===5||e.tag===3||e.tag===4}function MF(e){A:for(;;){for(;e.sibling===null;){if(e.return===null||HY(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue A;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Hb(e,A,t){var i=e.tag;if(i===5||i===6)e=e.stateNode,A?t.nodeType===8?t.parentNode.insertBefore(e,A):t.insertBefore(e,A):(t.nodeType===8?(A=t.parentNode,A.insertBefore(e,t)):(A=t,A.appendChild(e)),t=t._reactRootContainer,t!=null||A.onclick!==null||(A.onclick=yQ));else if(i!==4&&(e=e.child,e!==null))for(Hb(e,A,t),e=e.sibling;e!==null;)Hb(e,A,t),e=e.sibling}function Yb(e,A,t){var i=e.tag;if(i===5||i===6)e=e.stateNode,A?t.insertBefore(e,A):t.appendChild(e);else if(i!==4&&(e=e.child,e!==null))for(Yb(e,A,t),e=e.sibling;e!==null;)Yb(e,A,t),e=e.sibling}var Pi=null,So=!1;function ng(e,A,t){for(t=t.child;t!==null;)YY(e,A,t),t=t.sibling}function YY(e,A,t){if(ps&&typeof ps.onCommitFiberUnmount=="function")try{ps.onCommitFiberUnmount(yy,t)}catch{}switch(t.tag){case 5:hr||Wh(t,A);case 6:var i=Pi,o=So;Pi=null,ng(e,A,t),Pi=i,So=o,Pi!==null&&(So?(e=Pi,t=t.stateNode,e.nodeType===8?e.parentNode.removeChild(t):e.removeChild(t)):Pi.removeChild(t.stateNode));break;case 18:Pi!==null&&(So?(e=Pi,t=t.stateNode,e.nodeType===8?Im(e.parentNode,t):e.nodeType===1&&Im(e,t),P0(e)):Im(Pi,t.stateNode));break;case 4:i=Pi,o=So,Pi=t.stateNode.containerInfo,So=!0,ng(e,A,t),Pi=i,So=o;break;case 0:case 11:case 14:case 15:if(!hr&&(i=t.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){o=i=i.next;do{var r=o,f=r.destroy;r=r.tag,f!==void 0&&(r&2||r&4)&&_b(t,A,f),o=o.next}while(o!==i)}ng(e,A,t);break;case 1:if(!hr&&(Wh(t,A),i=t.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=t.memoizedProps,i.state=t.memoizedState,i.componentWillUnmount()}catch(h){Wt(t,A,h)}ng(e,A,t);break;case 21:ng(e,A,t);break;case 22:t.mode&1?(hr=(i=hr)||t.memoizedState!==null,ng(e,A,t),hr=i):ng(e,A,t);break;default:ng(e,A,t)}}function bF(e){var A=e.updateQueue;if(A!==null){e.updateQueue=null;var t=e.stateNode;t===null&&(t=e.stateNode=new yeA),A.forEach(function(i){var o=ReA.bind(null,e,i);t.has(i)||(t.add(i),i.then(o,o))})}}function po(e,A){var t=A.deletions;if(t!==null)for(var i=0;io&&(o=f),i&=~r}if(i=o,i=ri()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*meA(i/1960))-i,10e?16:e,kg===null)var i=!1;else{if(e=kg,kg=null,FQ=0,ct&6)throw Error(re(331));var o=ct;for(ct|=4,Ee=e.current;Ee!==null;){var r=Ee,f=r.child;if(Ee.flags&16){var h=r.deletions;if(h!==null){for(var d=0;dri()-zk?XI(e,0):Zk|=t),An(e,A)}function ZY(e,A){A===0&&(e.mode&1?(A=WB,WB<<=1,!(WB&130023424)&&(WB=4194304)):A=1);var t=vr();e=ka(e,A),e!==null&&(ZC(e,A,t),An(e,t))}function keA(e){var A=e.memoizedState,t=0;A!==null&&(t=A.retryLane),ZY(e,t)}function ReA(e,A){var t=0;switch(e.tag){case 13:var i=e.stateNode,o=e.memoizedState;o!==null&&(t=o.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(re(314))}i!==null&&i.delete(A),ZY(e,t)}var zY;zY=function(e,A,t){if(e!==null)if(e.memoizedProps!==A.pendingProps||$r.current)Wr=!0;else{if(!(e.lanes&t)&&!(A.flags&128))return Wr=!1,EeA(e,A,t);Wr=!!(e.flags&131072)}else Wr=!1,qt&&A.flags&1048576&&eY(A,vQ,A.index);switch(A.lanes=0,A.tag){case 2:var i=A.type;dE(e,A),e=A.pendingProps;var o=Fc(A,dr.current);hc(A,t),o=Tk(null,A,i,e,o,t);var r=Pk();return A.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(A.tag=1,A.memoizedState=null,A.updateQueue=null,Xr(i)?(r=!0,DQ(A)):r=!1,A.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,_k(A),o.updater=Sy,A.stateNode=o,o._reactInternals=A,Rb(A,i,e,t),A=Fb(null,A,i,!0,r,t)):(A.tag=0,qt&&r&&Rk(A),wr(null,A,o,t),A=A.child),A;case 16:i=A.elementType;A:{switch(dE(e,A),e=A.pendingProps,o=i._init,i=o(i._payload),A.type=i,o=A.tag=GeA(i),e=vo(i,e),o){case 0:A=Gb(null,A,i,e,t);break A;case 1:A=wF(null,A,i,e,t);break A;case 11:A=pF(null,A,i,e,t);break A;case 14:A=yF(null,A,i,vo(i.type,e),t);break A}throw Error(re(306,i,""))}return A;case 0:return i=A.type,o=A.pendingProps,o=A.elementType===i?o:vo(i,o),Gb(e,A,i,o,t);case 1:return i=A.type,o=A.pendingProps,o=A.elementType===i?o:vo(i,o),wF(e,A,i,o,t);case 3:A:{if(GY(A),e===null)throw Error(re(387));i=A.pendingProps,r=A.memoizedState,o=r.element,sY(e,A),SQ(A,i,null,t);var f=A.memoizedState;if(i=f.element,r.isDehydrated)if(r={element:i,isDehydrated:!1,cache:f.cache,pendingSuspenseBoundaries:f.pendingSuspenseBoundaries,transitions:f.transitions},A.updateQueue.baseState=r,A.memoizedState=r,A.flags&256){o=_c(Error(re(423)),A),A=DF(e,A,i,t,o);break A}else if(i!==o){o=_c(Error(re(424)),A),A=DF(e,A,i,t,o);break A}else for(dn=Ug(A.stateNode.containerInfo.firstChild),pn=A,qt=!0,Ko=null,t=nY(A,null,i,t),A.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(xc(),i===o){A=Ra(e,A,t);break A}wr(e,A,i,t)}A=A.child}return A;case 5:return aY(A),e===null&&Sb(A),i=A.type,o=A.pendingProps,r=e!==null?e.memoizedProps:null,f=o.children,Db(i,o)?f=null:r!==null&&Db(i,r)&&(A.flags|=32),KY(e,A),wr(e,A,f,t),A.child;case 6:return e===null&&Sb(A),null;case 13:return FY(e,A,t);case 4:return qk(A,A.stateNode.containerInfo),i=A.pendingProps,e===null?A.child=Lc(A,null,i,t):wr(e,A,i,t),A.child;case 11:return i=A.type,o=A.pendingProps,o=A.elementType===i?o:vo(i,o),pF(e,A,i,o,t);case 7:return wr(e,A,A.pendingProps,t),A.child;case 8:return wr(e,A,A.pendingProps.children,t),A.child;case 12:return wr(e,A,A.pendingProps.children,t),A.child;case 10:A:{if(i=A.type._context,o=A.pendingProps,r=A.memoizedProps,f=o.value,St(MQ,i._currentValue),i._currentValue=f,r!==null)if(To(r.value,f)){if(r.children===o.children&&!$r.current){A=Ra(e,A,t);break A}}else for(r=A.child,r!==null&&(r.return=A);r!==null;){var h=r.dependencies;if(h!==null){f=r.child;for(var d=h.firstContext;d!==null;){if(d.context===i){if(r.tag===1){d=Ma(-1,t&-t),d.tag=2;var p=r.updateQueue;if(p!==null){p=p.shared;var C=p.pending;C===null?d.next=d:(d.next=C.next,C.next=d),p.pending=d}}r.lanes|=t,d=r.alternate,d!==null&&(d.lanes|=t),Nb(r.return,t,A),h.lanes|=t;break}d=d.next}}else if(r.tag===10)f=r.type===A.type?null:r.child;else if(r.tag===18){if(f=r.return,f===null)throw Error(re(341));f.lanes|=t,h=f.alternate,h!==null&&(h.lanes|=t),Nb(f,t,A),f=r.sibling}else f=r.child;if(f!==null)f.return=r;else for(f=r;f!==null;){if(f===A){f=null;break}if(r=f.sibling,r!==null){r.return=f.return,f=r;break}f=f.return}r=f}wr(e,A,o.children,t),A=A.child}return A;case 9:return o=A.type,i=A.pendingProps.children,hc(A,t),o=oo(o),i=i(o),A.flags|=1,wr(e,A,i,t),A.child;case 14:return i=A.type,o=vo(i,A.pendingProps),o=vo(i.type,o),yF(e,A,i,o,t);case 15:return kY(e,A,A.type,A.pendingProps,t);case 17:return i=A.type,o=A.pendingProps,o=A.elementType===i?o:vo(i,o),dE(e,A),A.tag=1,Xr(i)?(e=!0,DQ(A)):e=!1,hc(A,t),bY(A,i,o),Rb(A,i,o,t),Fb(null,A,i,!0,e,t);case 19:return xY(e,A,t);case 22:return RY(e,A,t)}throw Error(re(156,A.tag))};function $Y(e,A){return mH(e,A)}function KeA(e,A,t,i){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=A,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function io(e,A,t,i){return new KeA(e,A,t,i)}function e3(e){return e=e.prototype,!(!e||!e.isReactComponent)}function GeA(e){if(typeof e=="function")return e3(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Qk)return 11;if(e===pk)return 14}return 2}function Yg(e,A){var t=e.alternate;return t===null?(t=io(e.tag,A,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=A,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=e.flags&14680064,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,A=e.dependencies,t.dependencies=A===null?null:{lanes:A.lanes,firstContext:A.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function pE(e,A,t,i,o,r){var f=2;if(i=e,typeof e=="function")e3(e)&&(f=1);else if(typeof e=="string")f=5;else A:switch(e){case _h:return Af(t.children,o,r,A);case Ek:f=8,o|=8;break;case tb:return e=io(12,t,A,o|2),e.elementType=tb,e.lanes=r,e;case ib:return e=io(13,t,A,o),e.elementType=ib,e.lanes=r,e;case rb:return e=io(19,t,A,o),e.elementType=rb,e.lanes=r,e;case aH:return Ry(t,o,r,A);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case oH:f=10;break A;case sH:f=9;break A;case Qk:f=11;break A;case pk:f=14;break A;case dg:f=16,i=null;break A}throw Error(re(130,e==null?e:typeof e,""))}return A=io(f,t,A,o),A.elementType=e,A.type=i,A.lanes=r,A}function Af(e,A,t,i){return e=io(7,e,i,A),e.lanes=t,e}function Ry(e,A,t,i){return e=io(22,e,i,A),e.elementType=aH,e.lanes=t,e.stateNode={isHidden:!1},e}function dm(e,A,t){return e=io(6,e,null,A),e.lanes=t,e}function Em(e,A,t){return A=io(4,e.children!==null?e.children:[],e.key,A),A.lanes=t,A.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},A}function FeA(e,A,t,i,o){this.tag=A,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=XD(0),this.expirationTimes=XD(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=XD(0),this.identifierPrefix=i,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function t3(e,A,t,i,o,r,f,h,d){return e=new FeA(e,A,t,h,d),A===1?(A=1,r===!0&&(A|=8)):A=0,r=io(3,null,null,A),e.current=r,r.stateNode=e,r.memoizedState={element:i,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},_k(r),e}function xeA(e,A,t){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(tJ)}catch(e){console.error(e)}}tJ(),tH.exports=Mn;var HeA=tH.exports,xF=HeA;Ab.createRoot=xF.createRoot,Ab.hydrateRoot=xF.hydrateRoot;const Wi={MAINNET:"mainnet",TESTNET:"testnet",CYAN:"cyan",AQUA:"aqua",CELESTE:"celeste"},cr={SAPPHIRE_DEVNET:"sapphire_devnet",SAPPHIRE_MAINNET:"sapphire_mainnet"},YeA=[],Tr={[Wi.AQUA]:{migrationCompleted:!0,networkIdentifier:"aqua",networkMigratedTo:cr.SAPPHIRE_MAINNET},[Wi.CELESTE]:{migrationCompleted:!0,networkIdentifier:"celeste",networkMigratedTo:cr.SAPPHIRE_MAINNET},[Wi.CYAN]:{migrationCompleted:!0,networkIdentifier:"cyan",networkMigratedTo:cr.SAPPHIRE_MAINNET},[Wi.MAINNET]:{migrationCompleted:!0,networkIdentifier:"mainnet",networkMigratedTo:cr.SAPPHIRE_MAINNET},[Wi.TESTNET]:{migrationCompleted:!0,networkIdentifier:"teal",networkMigratedTo:cr.SAPPHIRE_DEVNET}},iJ={[cr.SAPPHIRE_MAINNET]:"https://signer.web3auth.io",[cr.SAPPHIRE_DEVNET]:"https://signer.web3auth.io",[Wi.MAINNET]:"https://signer.web3auth.io",[Wi.TESTNET]:"https://signer.web3auth.io",[Wi.CYAN]:"https://signer-polygon.web3auth.io",[Wi.AQUA]:"https://signer-polygon.web3auth.io",[Wi.CELESTE]:"https://signer-polygon.web3auth.io"},rJ={[Wi.MAINNET]:"https://metadata.web3auth.io",[Wi.TESTNET]:"https://metadata.web3auth.io",[Wi.CYAN]:"https://metadata.web3auth.io",[Wi.AQUA]:"https://metadata.web3auth.io",[Wi.CELESTE]:"https://metadata.web3auth.io"},JeA="https://fnd.web3auth.io",lt={SECP256K1:"secp256k1",ED25519:"ed25519"},nJ={MAINNET:cr.SAPPHIRE_MAINNET,DEVNET:cr.SAPPHIRE_DEVNET};let v0=function(e){return e.HashedShare="hashedShare",e.SecurityQuestions="tssSecurityQuestions",e.DeviceShare="deviceShare",e.SeedPhrase="seedPhrase",e.PasswordShare="passwordShare",e.SocialShare="socialShare",e.Other="Other",e}({});const od={Delimiter1:"",Delimiter2:"",Delimiter3:"",Delimiter4:""},Qm={TKEY_SHARES_REQUIRED:"required more shares",INVALID_BACKUP_SHARE:"invalid backup share"};let Uo=function(e){return e[e.DEVICE=2]="DEVICE",e[e.RECOVERY=3]="RECOVERY",e}({});const Zh=[Uo.DEVICE,Uo.RECOVERY],TeA=32,pm=32*2,LF=10,PeA=1;function iC(e){"@babel/helpers - typeof";return iC=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(A){return typeof A}:function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},iC(e)}function OeA(e,A){if(iC(e)!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var i=t.call(e,A||"default");if(iC(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(A==="string"?String:Number)(e)}function jeA(e){var A=OeA(e,"string");return iC(A)=="symbol"?A:A+""}function FA(e,A,t){return(A=jeA(A))in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}const WeA=Object.freeze(Object.defineProperty({__proto__:null,default:FA},Symbol.toStringTag,{value:"Module"}));function VeA(e,A){const{setPrototypeOf:t}=Object;t?t(e,A):e.__proto__=A}function ZeA(e,A=e.constructor){const{captureStackTrace:t}=Error;t&&t(e,A)}let zeA=class extends Error{constructor(A,t){super(A,t),FA(this,"name",void 0),Object.defineProperty(this,"name",{value:new.target.name,enumerable:!1,configurable:!0}),VeA(this,new.target.prototype),ZeA(this)}},$eA=class extends zeA{constructor(A,t){super(t),FA(this,"code",void 0),FA(this,"message",void 0),this.code=A,this.message=t||"",Object.defineProperty(this,"name",{value:"TkeyError"})}toJSON(){return{name:this.name,code:this.code,message:this.message}}toString(){return JSON.stringify(this.toJSON())}},ue=class qe extends $eA{constructor(A,t){super(A,t),Object.defineProperty(this,"name",{value:"CoreKitError"})}static fromCode(A,t=""){return new qe(A,`${qe.messages[A]} ${t}`)}static default(A=""){return new qe(1e3,`${qe.messages[1e3]} ${A}`)}static chainConfigInvalid(A=""){return qe.fromCode(1001,A)}static clientIdInvalid(A=""){return qe.fromCode(1002,A)}static storageTypeUnsupported(A=""){return qe.fromCode(1003,A)}static oauthLoginUnsupported(A=""){return qe.fromCode(1004,A)}static noValidStorageOptionFound(A=""){return qe.fromCode(1005,A)}static noDataFoundInStorage(A=""){return qe.fromCode(1006,A)}static invalidConfig(A=""){return qe.fromCode(1007,A)}static tssLibRequired(A=""){return qe.fromCode(1101,A)}static tkeyInstanceUninitialized(A=""){return qe.fromCode(1102,A)}static duplicateTssIndex(A=""){return qe.fromCode(1103,A)}static nodeDetailsRetrievalFailed(A=""){return qe.fromCode(1104,A)}static prefetchValueExceeded(A=""){return qe.fromCode(1105,A)}static invalidTorusLoginResponse(A=""){return qe.fromCode(1106,A)}static invalidTorusAggregateLoginResponse(A=""){return qe.fromCode(1107,A)}static unsupportedRedirectMethod(A=""){return qe.fromCode(1108,A)}static postBoxKeyMissing(A=""){return qe.fromCode(1109,A)}static tssShareTypeIndexMissing(A=""){return qe.fromCode(1110,A)}static tssPublicKeyOrEndpointsMissing(A=""){return qe.fromCode(1111,A)}static activeSessionNotFound(A=""){return qe.fromCode(1112,A)}static tssNoncesMissing(A=""){return qe.fromCode(1113,A)}static tssKeyImportNotAllowed(A=""){return qe.fromCode(1114,A)}static factorKeyNotPresent(A=""){return qe.fromCode(1201,A)}static factorKeyAlreadyExists(A=""){return qe.fromCode(1202,A)}static mfaAlreadyEnabled(A=""){return qe.fromCode(1203,A)}static cannotDeleteLastFactor(A=""){return qe.fromCode(1204,A)}static factorInUseCannotBeDeleted(A=""){return qe.fromCode(1205,A)}static userNotLoggedIn(A=""){return qe.fromCode(1206,A)}static providedFactorKeyInvalid(A=""){return qe.fromCode(1207,A)}static factorEncsMissing(A=""){return qe.fromCode(1208,A)}static noMetadataFound(A=""){return qe.fromCode(1209,A)}static newShareIndexInvalid(A=""){return qe.fromCode(1210,A)}static maximumFactorsReached(A=""){return qe.fromCode(1211,A)}static noMetadataShareFound(A=""){return qe.fromCode(1212,A)}static signaturesNotPresent(A=""){return qe.fromCode(1213,A)}static factorPubsMissing(A=""){return qe.fromCode(1214,A)}static commitChangesBeforeMFA(A=""){return qe.fromCode(1301,A)}static mpcCoreKitNotInitialized(A=""){return qe.fromCode(1302,A)}};FA(ue,"messages",{1001:"You must specify a valid eip155 chain configuration in the options.",1002:"You must specify a web3auth clientId.",1003:"Unsupported storage type in this UX mode.",1004:"OAuth login is NOT supported in this UX mode.",1005:"No valid storage option found.",1006:"No data found in storage.",1007:"Invalid config.",1101:"'tssLib' is required when running in this UX mode.",1102:"'tkey' instance has not been initialized.",1103:"Duplicate TSS index found. Ensure that each TSS index is unique.",1104:"Failed to retrieve node details. Please check your network connection and try again.",1105:"The prefetch TSS public keys exceeds the maximum allowed limit of 3.",1106:"Invalid 'TorusLoginResponse' data provided.",1107:"Invalid 'TorusAggregateLoginResponse' data provided.",1108:"Unsupported method type encountered in redirect result.",1109:"OAuthKey not present in state.",1110:"TSS Share Type (Index) not present in state when getting current factor key.",1111:"'tssPubKey' or 'torusNodeTSSEndpoints' are missing.",1112:"No active session found.",1113:"tssNonces not present in metadata when getting tss nonce.",1114:"A TSS key cannot be imported for an existing user who already has a key configured.",1201:"factorKey not present in state when required.",1202:"A factor with the same key already exists.",1203:"MFA is already enabled.",1204:"Cannot delete the last remaining factor as at least one factor is required.",1205:"The factor currently in use cannot be deleted.",1206:"User is not logged in.",1207:"Provided factor key is invalid.",1208:"'factorEncs' mpt [resemt].",1209:"No metadata found for the provided factor key. Consider resetting your account if this error persists.",1210:"The new share index is not valid. It must be one of the valid share indices.",1211:"The maximum number of allowable factors (10) has been reached.",1212:"No metadata share found in the current polynomial.",1213:"No signatures found.",1214:"Factor public keys not present",1301:"The 'CommitChanges' method must be called before enabling MFA.",1302:"The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations."});let XeA=class{constructor(A,t){FA(this,"storage",void 0),FA(this,"_storeKey",void 0),this.storage=t,this._storeKey=A}async toJSON(){const A=await this.storage.getItem(this._storeKey);if(!A)throw ue.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`);return A}async resetStore(){const A=await this.getStore();return await this.storage.setItem(this._storeKey,JSON.stringify({})),A}async getStore(){return JSON.parse(await this.storage.getItem(this._storeKey)||"{}")}async get(A){return JSON.parse(await this.storage.getItem(this._storeKey)||"{}")[A]}async set(A,t){const i=JSON.parse(await this.storage.getItem(this._storeKey)||"{}");i[A]=t,await this.storage.setItem(this._storeKey,JSON.stringify(i))}async remove(A){const t=JSON.parse(await this.storage.getItem(this._storeKey)||"{}");delete t[A],await this.storage.setItem(this._storeKey,JSON.stringify(t))}},Ur=function(e){return e.secp256k1="secp256k1",e.ed25519="ed25519",e}({});const je={GOOGLE:"google",FACEBOOK:"facebook",REDDIT:"reddit",DISCORD:"discord",TWITCH:"twitch",APPLE:"apple",GITHUB:"github",LINKEDIN:"linkedin",TWITTER:"twitter",WEIBO:"weibo",LINE:"line",EMAIL_PASSWORD:"email_password",PASSWORDLESS:"passwordless",EMAIL_PASSWORDLESS:"email_passwordless",SMS_PASSWORDLESS:"sms_passwordless",JWT:"jwt",PASSKEYS:"passkeys"},oJ={SINGLE_VERIFIER_ID:"single_id_verifier"},to={POPUP:"popup",REDIRECT:"redirect"},sh={LOCAL_STORAGE:"localStorage",SESSION_STORAGE:"sessionStorage",SERVER:"server"},zh={TRIGGER_LOGIN:"triggerLogin",TRIGGER_AGGREGATE_LOGIN:"triggerAggregateLogin"},UF={FETCH_NODE_DETAILS:"fetchNodeDetails",PUB_ADDRESS_LOOKUP:"pubAddressLookup",FETCH_SHARES:"fetchShares"};function _F(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);A&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),t.push.apply(t,i)}return t}function ZA(e){for(var A=1;A=0&&n<=b.levels.SILENT)return n;throw new TypeError("log.setLevel() called with invalid level: "+Q)}b.name=M,b.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},b.methodFactory=R||w,b.getLevel=function(){return U??G??S},b.setLevel=function(Q,n){return U=q(Q),n!==!1&&z(U),C.call(b)},b.setDefaultLevel=function(Q){G=q(Q),oA()||b.setLevel(Q,!1)},b.resetLevel=function(){U=null,J(),C.call(b)},b.enableAll=function(Q){b.setLevel(b.levels.TRACE,Q)},b.disableAll=function(Q){b.setLevel(b.levels.SILENT,Q)},b.rebuild=function(){if(f!==b&&(S=q(f.getLevel())),C.call(b),f===b)for(var Q in r)r[Q].rebuild()},S=q(f?f.getLevel():"WARN");var X=oA();X!=null&&(U=q(X)),C.call(b)}f=new D,f.getLogger=function(R){if(typeof R!="symbol"&&typeof R!="string"||R==="")throw new TypeError("You must supply a name when creating a logger.");var b=r[R];return b||(b=r[R]=new D(R,f.methodFactory)),b};var v=typeof window!==t?window.log:void 0;return f.noConflict=function(){return typeof window!==t&&window.log===f&&(window.log=v),f},f.getLoggers=function(){return r},f.default=f,f})})(aJ);var gJ=aJ.exports;const tn=$i(gJ),UQ=tn.getLogger("http-helpers");UQ.setLevel(gJ.levels.INFO);let jb="torus-default",Wb="";const utA="x-api-key",ltA="x-embed-host";function CtA(e){Wb=e}function BtA(e){jb=e}async function Ly(e,A){let t=null;try{t=new URL(e)}catch{}return fetch(e,A)}function Uy(){const e={};return jb&&(e[utA]=jb),Wb&&(e[ltA]=Wb),e}function _y(e){UQ.info(`Response: ${e.status} ${e.statusText}`),UQ.info(`Url: ${e.url}`)}function dtA(e){const A=e.headers.get("x-web3-correlation-id");A&&UQ.info(`Request tracing with traceID = ${A}`)}const EtA=async(e,A)=>{let t=null;try{const i=new Promise((r,f)=>{t=setTimeout(()=>{f(new Error(`Timed out in ${e}ms`))},e)}),o=await Promise.race([A,i]);return t!=null&&clearTimeout(t),o}catch(i){throw t!=null&&clearTimeout(t),i}},Nn=async(e,A={},t={})=>{const i={mode:"cors",headers:{}};t.useAPIKey&&(i.headers=ZA(ZA({},i.headers),Uy())),A.method="GET";const o=Sn(i,A),r=await Ly(e,o);if(r.ok){const f=r.headers.get("content-type");return f!=null&&f.includes("application/json")?r.json():r.text()}throw _y(r),r},ci=(e,A={},t={},i={})=>{const o={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};i.useAPIKey&&(o.headers=ZA(ZA({},o.headers),Uy())),t.method="POST";const r=Sn(o,t);return i.isUrlEncodedData?(r.body=A,r.headers["Content-Type"]==="application/json; charset=utf-8"&&delete r.headers["Content-Type"]):r.body=JSON.stringify(A),EtA(i.timeout||6e4,Ly(e,r).then(f=>{if(i.logTracingHeader&&dtA(f),f.ok){const h=f.headers.get("content-type");return h!=null&&h.includes("application/json")?f.json():f.text()}throw _y(f),f}))},QtA=async(e,A={},t={},i={})=>{const o={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};i.useAPIKey&&(o.headers=ZA(ZA({},o.headers),Uy())),t.method="PATCH";const r=Sn(o,t);i.isUrlEncodedData?(r.body=A,r.headers["Content-Type"]==="application/json; charset=utf-8"&&delete r.headers["Content-Type"]):r.body=JSON.stringify(A);const f=await Ly(e,r);if(f.ok){const h=f.headers.get("content-type");return h!=null&&h.includes("application/json")?f.json():f.text()}throw _y(f),f},ptA=async(e,A={},t={},i={})=>{const o={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};i.useAPIKey&&(o.headers=ZA(ZA({},o.headers),Uy())),t.method="PUT";const r=Sn(o,t);i.isUrlEncodedData?(r.body=A,r.headers["Content-Type"]==="application/json; charset=utf-8"&&delete r.headers["Content-Type"]):r.body=JSON.stringify(A);const f=await Ly(e,r);if(f.ok){const h=f.headers.get("content-type");return h!=null&&h.includes("application/json")?f.json():f.text()}throw _y(f),f},uc=(e,A)=>({jsonrpc:"2.0",method:e,id:10,params:A}),ytA="modulepreload",wtA=function(e){return"/"+e},HF={},o3=function(A,t,i){let o=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const f=document.querySelector("meta[property=csp-nonce]"),h=(f==null?void 0:f.nonce)||(f==null?void 0:f.getAttribute("nonce"));o=Promise.allSettled(t.map(d=>{if(d=wtA(d),d in HF)return;HF[d]=!0;const p=d.endsWith(".css"),C=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${C}`))return;const y=document.createElement("link");if(y.rel=p?"stylesheet":ytA,p||(y.as="script"),y.crossOrigin="",y.href=d,h&&y.setAttribute("nonce",h),document.head.appendChild(y),p)return new Promise((w,D)=>{y.addEventListener("load",w),y.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${d}`)))})}))}function r(f){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=f,window.dispatchEvent(h),!h.defaultPrevented)throw f}return o.then(f=>{for(const h of f||[])h.status==="rejected"&&r(h.reason);return A().catch(r)})};function DtA(e,A){if(e==null)return{};var t={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(A.includes(i))continue;t[i]=e[i]}return t}function M0(e,A){if(e==null)return{};var t,i,o=DtA(e,A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i0&&i[1]||""}static getSecondMatch(A,t){const i=t.match(A);return i&&i.length>1&&i[2]||""}static matchAndReturnConst(A,t,i){if(A.test(t))return i}static getWindowsVersionName(A){switch(A){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(A){const t=A.split(".").splice(0,2).map(i=>parseInt(i,10)||0);if(t.push(0),t[0]===10)switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(A){const t=A.split(".").splice(0,2).map(i=>parseInt(i,10)||0);if(t.push(0),!(t[0]===1&&t[1]<5)){if(t[0]===1&&t[1]<6)return"Cupcake";if(t[0]===1&&t[1]>=6)return"Donut";if(t[0]===2&&t[1]<2)return"Eclair";if(t[0]===2&&t[1]===2)return"Froyo";if(t[0]===2&&t[1]>2)return"Gingerbread";if(t[0]===3)return"Honeycomb";if(t[0]===4&&t[1]<1)return"Ice Cream Sandwich";if(t[0]===4&&t[1]<4)return"Jelly Bean";if(t[0]===4&&t[1]>=4)return"KitKat";if(t[0]===5)return"Lollipop";if(t[0]===6)return"Marshmallow";if(t[0]===7)return"Nougat";if(t[0]===8)return"Oreo";if(t[0]===9)return"Pie"}}static getVersionPrecision(A){return A.split(".").length}static compareVersions(A,t,i=!1){const o=$A.getVersionPrecision(A),r=$A.getVersionPrecision(t);let f=Math.max(o,r),h=0;const d=$A.map([A,t],p=>{const C=f-$A.getVersionPrecision(p),y=p+new Array(C+1).join(".0");return $A.map(y.split("."),w=>new Array(20-w.length).join("0")+w).reverse()});for(i&&(h=f-Math.min(o,r)),f-=1;f>=h;){if(d[0][f]>d[1][f])return 1;if(d[0][f]===d[1][f]){if(f===h)return 0;f-=1}else if(d[0][f]{i[d]=f[d]})}return A}static getBrowserAlias(A){return NtA[A]}static getBrowserTypeByAlias(A){return hJ[A]||""}}const wt=/version\/(\d+(\.?_?\d+)+)/i,ktA=[{test:[/googlebot/i],describe(e){const A={name:"Googlebot"},t=$A.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/opera/i],describe(e){const A={name:"Opera"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/opr\/|opios/i],describe(e){const A={name:"Opera"},t=$A.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/SamsungBrowser/i],describe(e){const A={name:"Samsung Internet for Android"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/Whale/i],describe(e){const A={name:"NAVER Whale Browser"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/MZBrowser/i],describe(e){const A={name:"MZ Browser"},t=$A.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/focus/i],describe(e){const A={name:"Focus"},t=$A.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/swing/i],describe(e){const A={name:"Swing"},t=$A.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/coast/i],describe(e){const A={name:"Opera Coast"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(e){const A={name:"Opera Touch"},t=$A.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/yabrowser/i],describe(e){const A={name:"Yandex Browser"},t=$A.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/ucbrowser/i],describe(e){const A={name:"UC Browser"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/Maxthon|mxios/i],describe(e){const A={name:"Maxthon"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/epiphany/i],describe(e){const A={name:"Epiphany"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/puffin/i],describe(e){const A={name:"Puffin"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/sleipnir/i],describe(e){const A={name:"Sleipnir"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/k-meleon/i],describe(e){const A={name:"K-Meleon"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/micromessenger/i],describe(e){const A={name:"WeChat"},t=$A.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/qqbrowser/i],describe(e){const A={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},t=$A.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/msie|trident/i],describe(e){const A={name:"Internet Explorer"},t=$A.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/\sedg\//i],describe(e){const A={name:"Microsoft Edge"},t=$A.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/edg([ea]|ios)/i],describe(e){const A={name:"Microsoft Edge"},t=$A.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/vivaldi/i],describe(e){const A={name:"Vivaldi"},t=$A.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/seamonkey/i],describe(e){const A={name:"SeaMonkey"},t=$A.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/sailfish/i],describe(e){const A={name:"Sailfish"},t=$A.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return t&&(A.version=t),A}},{test:[/silk/i],describe(e){const A={name:"Amazon Silk"},t=$A.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/phantom/i],describe(e){const A={name:"PhantomJS"},t=$A.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/slimerjs/i],describe(e){const A={name:"SlimerJS"},t=$A.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){const A={name:"BlackBerry"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/(web|hpw)[o0]s/i],describe(e){const A={name:"WebOS Browser"},t=$A.getFirstMatch(wt,e)||$A.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/bada/i],describe(e){const A={name:"Bada"},t=$A.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/tizen/i],describe(e){const A={name:"Tizen"},t=$A.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/qupzilla/i],describe(e){const A={name:"QupZilla"},t=$A.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/firefox|iceweasel|fxios/i],describe(e){const A={name:"Firefox"},t=$A.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/electron/i],describe(e){const A={name:"Electron"},t=$A.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/MiuiBrowser/i],describe(e){const A={name:"Miui"},t=$A.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/chromium/i],describe(e){const A={name:"Chromium"},t=$A.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/chrome|crios|crmo/i],describe(e){const A={name:"Chrome"},t=$A.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/GSA/i],describe(e){const A={name:"Google Search"},t=$A.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test(e){const A=!e.test(/like android/i),t=e.test(/android/i);return A&&t},describe(e){const A={name:"Android Browser"},t=$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/playstation 4/i],describe(e){const A={name:"PlayStation 4"},t=$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/safari|applewebkit/i],describe(e){const A={name:"Safari"},t=$A.getFirstMatch(wt,e);return t&&(A.version=t),A}},{test:[/.*/i],describe(e){const A=/^(.*)\/(.*) /,t=/^(.*)\/(.*)[ \t]\((.*)/,o=e.search("\\(")!==-1?t:A;return{name:$A.getFirstMatch(o,e),version:$A.getSecondMatch(o,e)}}}],RtA=[{test:[/Roku\/DVP/],describe(e){const A=$A.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:yr.Roku,version:A}}},{test:[/windows phone/i],describe(e){const A=$A.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:yr.WindowsPhone,version:A}}},{test:[/windows /i],describe(e){const A=$A.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),t=$A.getWindowsVersionName(A);return{name:yr.Windows,version:A,versionName:t}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(e){const A={name:yr.iOS},t=$A.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return t&&(A.version=t),A}},{test:[/macintosh/i],describe(e){const A=$A.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),t=$A.getMacOSVersionName(A),i={name:yr.MacOS,version:A};return t&&(i.versionName=t),i}},{test:[/(ipod|iphone|ipad)/i],describe(e){const A=$A.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:yr.iOS,version:A}}},{test(e){const A=!e.test(/like android/i),t=e.test(/android/i);return A&&t},describe(e){const A=$A.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),t=$A.getAndroidVersionName(A),i={name:yr.Android,version:A};return t&&(i.versionName=t),i}},{test:[/(web|hpw)[o0]s/i],describe(e){const A=$A.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),t={name:yr.WebOS};return A&&A.length&&(t.version=A),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){const A=$A.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||$A.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||$A.getFirstMatch(/\bbb(\d+)/i,e);return{name:yr.BlackBerry,version:A}}},{test:[/bada/i],describe(e){const A=$A.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:yr.Bada,version:A}}},{test:[/tizen/i],describe(e){const A=$A.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:yr.Tizen,version:A}}},{test:[/linux/i],describe(){return{name:yr.Linux}}},{test:[/CrOS/],describe(){return{name:yr.ChromeOS}}},{test:[/PlayStation 4/],describe(e){const A=$A.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:yr.PlayStation4,version:A}}}],KtA=[{test:[/googlebot/i],describe(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe(e){const A=$A.getFirstMatch(/(can-l01)/i,e)&&"Nova",t={type:ti.mobile,vendor:"Huawei"};return A&&(t.model=A),t}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe(){return{type:ti.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe(){return{type:ti.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(){return{type:ti.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe(){return{type:ti.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe(){return{type:ti.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe(){return{type:ti.tablet}}},{test(e){const A=e.test(/ipod|iphone/i),t=e.test(/like (ipod|iphone)/i);return A&&!t},describe(e){const A=$A.getFirstMatch(/(ipod|iphone)/i,e);return{type:ti.mobile,vendor:"Apple",model:A}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe(){return{type:ti.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe(){return{type:ti.mobile}}},{test(e){return e.getBrowserName(!0)==="blackberry"},describe(){return{type:ti.mobile,vendor:"BlackBerry"}}},{test(e){return e.getBrowserName(!0)==="bada"},describe(){return{type:ti.mobile}}},{test(e){return e.getBrowserName()==="windows phone"},describe(){return{type:ti.mobile,vendor:"Microsoft"}}},{test(e){const A=Number(String(e.getOSVersion()).split(".")[0]);return e.getOSName(!0)==="android"&&A>=3},describe(){return{type:ti.tablet}}},{test(e){return e.getOSName(!0)==="android"},describe(){return{type:ti.mobile}}},{test(e){return e.getOSName(!0)==="macos"},describe(){return{type:ti.desktop,vendor:"Apple"}}},{test(e){return e.getOSName(!0)==="windows"},describe(){return{type:ti.desktop}}},{test(e){return e.getOSName(!0)==="linux"},describe(){return{type:ti.desktop}}},{test(e){return e.getOSName(!0)==="playstation 4"},describe(){return{type:ti.tv}}},{test(e){return e.getOSName(!0)==="roku"},describe(){return{type:ti.tv}}}],GtA=[{test(e){return e.getBrowserName(!0)==="microsoft edge"},describe(e){if(/\sedg\//i.test(e))return{name:Cg.Blink};const t=$A.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:Cg.EdgeHTML,version:t}}},{test:[/trident/i],describe(e){const A={name:Cg.Trident},t=$A.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test(e){return e.test(/presto/i)},describe(e){const A={name:Cg.Presto},t=$A.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test(e){const A=e.test(/gecko/i),t=e.test(/like gecko/i);return A&&!t},describe(e){const A={name:Cg.Gecko},t=$A.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/(apple)?webkit\/537\.36/i],describe(){return{name:Cg.Blink}}},{test:[/(apple)?webkit/i],describe(e){const A={name:Cg.WebKit},t=$A.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}}];class YF{constructor(A,t=!1){if(A==null||A==="")throw new Error("UserAgent parameter can't be empty");this._ua=A,this.parsedResult={},t!==!0&&this.parse()}getUA(){return this._ua}test(A){return A.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const A=$A.find(ktA,t=>{if(typeof t.test=="function")return t.test(this);if(t.test instanceof Array)return t.test.some(i=>this.test(i));throw new Error("Browser's test function is not valid")});return A&&(this.parsedResult.browser=A.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(A){return A?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const A=$A.find(RtA,t=>{if(typeof t.test=="function")return t.test(this);if(t.test instanceof Array)return t.test.some(i=>this.test(i));throw new Error("Browser's test function is not valid")});return A&&(this.parsedResult.os=A.describe(this.getUA())),this.parsedResult.os}getOSName(A){const{name:t}=this.getOS();return A?String(t).toLowerCase()||"":t||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(A=!1){const{type:t}=this.getPlatform();return A?String(t).toLowerCase()||"":t||""}parsePlatform(){this.parsedResult.platform={};const A=$A.find(KtA,t=>{if(typeof t.test=="function")return t.test(this);if(t.test instanceof Array)return t.test.some(i=>this.test(i));throw new Error("Browser's test function is not valid")});return A&&(this.parsedResult.platform=A.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(A){return A?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};const A=$A.find(GtA,t=>{if(typeof t.test=="function")return t.test(this);if(t.test instanceof Array)return t.test.some(i=>this.test(i));throw new Error("Browser's test function is not valid")});return A&&(this.parsedResult.engine=A.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return $A.assign({},this.parsedResult)}satisfies(A){const t={};let i=0;const o={};let r=0;if(Object.keys(A).forEach(h=>{const d=A[h];typeof d=="string"?(o[h]=d,r+=1):typeof d=="object"&&(t[h]=d,i+=1)}),i>0){const h=Object.keys(t),d=$A.find(h,C=>this.isOS(C));if(d){const C=this.satisfies(t[d]);if(C!==void 0)return C}const p=$A.find(h,C=>this.isPlatform(C));if(p){const C=this.satisfies(t[p]);if(C!==void 0)return C}}if(r>0){const h=Object.keys(o),d=$A.find(h,p=>this.isBrowser(p,!0));if(d!==void 0)return this.compareVersion(o[d])}}isBrowser(A,t=!1){const i=this.getBrowserName().toLowerCase();let o=A.toLowerCase();const r=$A.getBrowserTypeByAlias(o);return t&&r&&(o=r.toLowerCase()),o===i}compareVersion(A){let t=[0],i=A,o=!1;const r=this.getBrowserVersion();if(typeof r=="string")return A[0]===">"||A[0]==="<"?(i=A.substr(1),A[1]==="="?(o=!0,i=A.substr(2)):t=[],A[0]===">"?t.push(1):t.push(-1)):A[0]==="="?i=A.substr(1):A[0]==="~"&&(o=!0,i=A.substr(1)),t.indexOf($A.compareVersions(r,i,o))>-1}isOS(A){return this.getOSName(!0)===String(A).toLowerCase()}isPlatform(A){return this.getPlatformType(!0)===String(A).toLowerCase()}isEngine(A){return this.getEngineName(!0)===String(A).toLowerCase()}is(A,t=!1){return this.isBrowser(A,t)||this.isOS(A)||this.isPlatform(A)}some(A=[]){return A.some(t=>this.is(t))}}/*! + * Bowser - a browser detector + * https://github.com/lancedikson/bowser + * MIT License | (c) Dustin Diaz 2012-2015 + * MIT License | (c) Denis Demchenko 2015-2019 + */class ef{static getParser(A,t=!1){if(typeof A!="string")throw new Error("UserAgent should be a string");return new YF(A,t)}static parse(A){return new YF(A).getResult()}static get BROWSER_MAP(){return hJ}static get ENGINE_MAP(){return Cg}static get OS_MAP(){return yr}static get PLATFORMS_MAP(){return ti}}var Bt=tn.getLogger("customauth");const cJ={[je.APPLE]:"apple",[je.GITHUB]:"github",[je.LINKEDIN]:"linkedin",[je.TWITTER]:"twitter",[je.WEIBO]:"weibo",[je.LINE]:"line",[je.EMAIL_PASSWORD]:"Username-Password-Authentication",[je.PASSWORDLESS]:"email",[je.EMAIL_PASSWORDLESS]:"email",[je.SMS_PASSWORDLESS]:"sms"},qy=e=>e.href.endsWith("/")?e.href:`${e.href}/`,FtA=()=>Math.random().toString(36).slice(2),uJ={webWorkerSupport:!1};function ym(e,A){return A?e:e.toLowerCase()}const Yc=(e,A,t,i=!0)=>{const{name:o,sub:r}=e;if(t)return ym(e[t],i);switch(A){case je.PASSWORDLESS:case je.EMAIL_PASSWORD:case je.EMAIL_PASSWORDLESS:case je.SMS_PASSWORDLESS:return ym(o,i);case je.WEIBO:case je.GITHUB:case je.TWITTER:case je.APPLE:case je.LINKEDIN:case je.LINE:case je.JWT:return ym(r,i);default:throw new Error("Invalid login type to get verifier id")}},wm=(e,A)=>{const t=e.split("&").reduce((r,f)=>{const[h,d]=f.split("=");return r[h]=d,r},{});Bt.info(t,A);let i={},o="";return Object.keys(t).length>0&&t.state?(i=JSON.parse(Ka.decode(decodeURIComponent(decodeURIComponent(t.state))))||{},o=t.error_description||t.error||o):Object.keys(A).length>0&&A.state&&(i=JSON.parse(Ka.decode(decodeURIComponent(decodeURIComponent(A.state))))||{},A.error&&(o=A.error)),{error:o,instanceParameters:i,hashParameters:t}};function xtA(e){let A;try{A=window[e];const t="__storage_test__";return A.setItem(t,t),A.removeItem(t),!0}catch(t){const i=t;return i&&(i.code===22||i.code===1014||i.name==="QuotaExceededError"||i.name==="NS_ERROR_DOM_QUOTA_REACHED")&&A&&A.length!==0}}function LtA(){const e=window.screenLeft!==void 0?window.screenLeft:window.screenX,A=window.screenTop!==void 0?window.screenTop:window.screenY,t=1200,i=700,o=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:window.screen.width,r=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:window.screen.height,f=1,h=Math.abs((o-t)/2/f+e),d=Math.abs((r-i)/2/f+A);return`titlebar=0,toolbar=0,status=0,location=0,menubar=0,height=${i/f},width=${t/f},top=${d},left=${h}`}const UtA=()=>{var e;return((e=window)===null||e===void 0||(e=e.navigator)===null||e===void 0?void 0:e.userAgent.toLowerCase().indexOf("firefox"))>-1||!1};function lJ(e){const{baseURL:A,query:t,hash:i}=e,o=new URL(A);if(t&&Object.keys(t).forEach(r=>{o.searchParams.append(r,t[r])}),i){const r=new URL(lJ({baseURL:A,query:i})).searchParams.toString();o.hash=r}return o.toString()}function _tA(){var e;const A=ef.parse(navigator.userAgent);Bt.info(JSON.stringify(A),"current browser info");let t=!0;return(e=navigator)!==null&&e!==void 0&&e.brave&&(t=!1),(A.engine.name===ef.ENGINE_MAP.WebKit||A.engine.name===ef.ENGINE_MAP.Gecko)&&(t=!1),t}const I3=e=>{try{return new URL(decodeURIComponent(e))}catch(A){throw new Error(`${(A==null?void 0:A.message)||""}, Note: Your jwt domain: (i.e ${e}) must have http:// or https:// prefix`)}};function qtA(){const A=ef.getParser(navigator.userAgent).getPlatform();return A.type===ef.PLATFORMS_MAP.tablet||A.type===ef.PLATFORMS_MAP.mobile}function HtA(e){return(e===je.FACEBOOK||e===je.LINE)&&qtA()?1e3*60:1e3*10}function Hy(e){const[A,t]=e.split(".");return{header:JSON.parse(Ka.decode(A)),payload:JSON.parse(Ka.decode(t))}}var f3={exports:{}},lc=typeof Reflect=="object"?Reflect:null,JF=lc&&typeof lc.apply=="function"?lc.apply:function(A,t,i){return Function.prototype.apply.call(A,t,i)},yE;lc&&typeof lc.ownKeys=="function"?yE=lc.ownKeys:Object.getOwnPropertySymbols?yE=function(A){return Object.getOwnPropertyNames(A).concat(Object.getOwnPropertySymbols(A))}:yE=function(A){return Object.getOwnPropertyNames(A)};function YtA(e){console&&console.warn&&console.warn(e)}var CJ=Number.isNaN||function(A){return A!==A};function pt(){pt.init.call(this)}f3.exports=pt;f3.exports.once=OtA;pt.EventEmitter=pt;pt.prototype._events=void 0;pt.prototype._eventsCount=0;pt.prototype._maxListeners=void 0;var TF=10;function Yy(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(pt,"defaultMaxListeners",{enumerable:!0,get:function(){return TF},set:function(e){if(typeof e!="number"||e<0||CJ(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");TF=e}});pt.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};pt.prototype.setMaxListeners=function(A){if(typeof A!="number"||A<0||CJ(A))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+A+".");return this._maxListeners=A,this};function BJ(e){return e._maxListeners===void 0?pt.defaultMaxListeners:e._maxListeners}pt.prototype.getMaxListeners=function(){return BJ(this)};pt.prototype.emit=function(A){for(var t=[],i=1;i0&&(f=t[0]),f instanceof Error)throw f;var h=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw h.context=f,h}var d=r[A];if(d===void 0)return!1;if(typeof d=="function")JF(d,this,t);else for(var p=d.length,C=yJ(d,p),i=0;i0&&f.length>o&&!f.warned){f.warned=!0;var h=new Error("Possible EventEmitter memory leak detected. "+f.length+" "+String(A)+" listeners added. Use emitter.setMaxListeners() to increase limit");h.name="MaxListenersExceededWarning",h.emitter=e,h.type=A,h.count=f.length,YtA(h)}return e}pt.prototype.addListener=function(A,t){return dJ(this,A,t,!1)};pt.prototype.on=pt.prototype.addListener;pt.prototype.prependListener=function(A,t){return dJ(this,A,t,!0)};function JtA(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function EJ(e,A,t){var i={fired:!1,wrapFn:void 0,target:e,type:A,listener:t},o=JtA.bind(i);return o.listener=t,i.wrapFn=o,o}pt.prototype.once=function(A,t){return Yy(t),this.on(A,EJ(this,A,t)),this};pt.prototype.prependOnceListener=function(A,t){return Yy(t),this.prependListener(A,EJ(this,A,t)),this};pt.prototype.removeListener=function(A,t){var i,o,r,f,h;if(Yy(t),o=this._events,o===void 0)return this;if(i=o[A],i===void 0)return this;if(i===t||i.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete o[A],o.removeListener&&this.emit("removeListener",A,i.listener||t));else if(typeof i!="function"){for(r=-1,f=i.length-1;f>=0;f--)if(i[f]===t||i[f].listener===t){h=i[f].listener,r=f;break}if(r<0)return this;r===0?i.shift():TtA(i,r),i.length===1&&(o[A]=i[0]),o.removeListener!==void 0&&this.emit("removeListener",A,h||t)}return this};pt.prototype.off=pt.prototype.removeListener;pt.prototype.removeAllListeners=function(A){var t,i,o;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[A]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[A]),this;if(arguments.length===0){var r=Object.keys(i),f;for(o=0;o=0;o--)this.removeListener(A,t[o]);return this};function QJ(e,A,t){var i=e._events;if(i===void 0)return[];var o=i[A];return o===void 0?[]:typeof o=="function"?t?[o.listener||o]:[o]:t?PtA(o):yJ(o,o.length)}pt.prototype.listeners=function(A){return QJ(this,A,!0)};pt.prototype.rawListeners=function(A){return QJ(this,A,!1)};pt.listenerCount=function(e,A){return typeof e.listenerCount=="function"?e.listenerCount(A):pJ.call(e,A)};pt.prototype.listenerCount=pJ;function pJ(e){var A=this._events;if(A!==void 0){var t=A[e];if(typeof t=="function")return 1;if(t!==void 0)return t.length}return 0}pt.prototype.eventNames=function(){return this._eventsCount>0?yE(this._events):[]};function yJ(e,A){for(var t=new Array(A),i=0;i{this.window&&this.window.closed&&(clearInterval(this.windowTimer),setTimeout(()=>{this.iClosedWindow||this.emit("close"),this.iClosedWindow=!1,this.window=void 0},this.timeout)),this.window===void 0&&clearInterval(this.windowTimer)},500))}open(){var A;if(this.window=window.open(this.url.href,this.target,this.features),!this.window)throw new Error("popup window is blocked");return(A=this.window)!==null&&A!==void 0&&A.focus&&this.window.focus(),Promise.resolve()}close(){this.iClosedWindow=!0,this.window&&this.window.close()}redirect(A){A?window.location.replace(this.url.href):window.location.href=this.url.href}}const WtA=["access_token","id_token"];class Va{constructor(A){FA(this,"nonce",FtA()),FA(this,"finalURL",void 0),FA(this,"params",void 0),this.params=A}get state(){return encodeURIComponent(Ka.encode(JSON.stringify(ZA(ZA({},this.params.customState||{}),{},{instanceId:this.nonce,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin,redirectToOpener:this.params.redirectToOpener||!1}))))}async handleLoginWindow(A){const t=new DJ({url:this.finalURL,features:A.popupFeatures,timeout:HtA(this.params.typeOfLogin)});if(this.params.uxMode===to.REDIRECT)t.redirect(A.locationReplaceOnRedirect);else{const{BroadcastChannel:i}=await o3(async()=>{const{BroadcastChannel:o}=await import("./index-CFiF7Nza.js");return{BroadcastChannel:o}},[]);return new Promise((o,r)=>{let f;const h=async d=>{try{const{error:p,data:C}=d,y=C||{},{instanceParams:w,hashParams:{access_token:D,id_token:v}}=y,M=M0(y.hashParams,WtA);if(p){Bt.error(d),r(new Error(`Error: ${p}. Info: ${JSON.stringify(d.data||{})}`));return}d.data&&w.verifier===this.params.verifier&&(Bt.info(d.data),!this.params.redirectToOpener&&f&&await f.postMessage({success:!0}),o(ZA(ZA({accessToken:D,idToken:v||""},M),{},{state:w})))}catch(p){Bt.error(p),r(p)}};if(!this.params.redirectToOpener)f=new i(`redirect_channel_${this.nonce}`,uJ),f.addEventListener("message",async d=>{await h(d),f.close(),t.close()});else{const d=async p=>{if(!p.data)return;const C=p.data;C.channel===`redirect_channel_${this.nonce}`&&(window.removeEventListener("message",d),h(C),t.close())};window.addEventListener("message",d)}try{t.open()}catch(d){Bt.error(d),r(d);return}t.once("close",()=>{f&&f.close(),r(new Error("user closed popup"))})})}return null}}class VtA extends Va{constructor(A){super(A),FA(this,"RESPONSE_TYPE","token"),FA(this,"SCOPE","identify email"),this.setFinalUrl()}setFinalUrl(){const A=new URL("https://discord.com/api/oauth2/authorize"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),i=Sn({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE},t);Object.keys(i).forEach(o=>{const r=o;i[r]&&A.searchParams.append(r,i[r])}),this.finalURL=A}async getUserInfo(A){const{accessToken:t}=A,i=await Nn("https://discord.com/api/users/@me",{headers:{Authorization:`Bearer ${t}`}}),{id:o,avatar:r,email:f="",username:h="",discriminator:d=""}=i;return{profileImage:r===null?`https://cdn.discordapp.com/embed/avatars/${Number(d)%5}.png`:`https://cdn.discordapp.com/avatars/${o}/${r}.png?size=2048`,name:`${h}#${d}`,email:f,verifierId:o,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}class ZtA extends Va{constructor(A){super(A),FA(this,"RESPONSE_TYPE","token"),FA(this,"SCOPE","public_profile email"),this.setFinalUrl()}setFinalUrl(){const A=new URL("https://www.facebook.com/v20.0/dialog/oauth"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),i=Sn({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE},t);Object.keys(i).forEach(o=>{const r=o;i[r]&&A.searchParams.append(r,i[r])}),this.finalURL=A}async getUserInfo(A){const{accessToken:t}=A,i=await Nn("https://graph.facebook.com/me?fields=name,email,picture.type(large)",{headers:{Authorization:`Bearer ${t}`}}),{name:o="",id:r,picture:f,email:h=""}=i;return{email:h,name:o,profileImage:f.data.url||"",verifier:this.params.verifier,verifierId:r,typeOfLogin:this.params.typeOfLogin}}}class ztA extends Va{constructor(A){super(A),FA(this,"RESPONSE_TYPE","token id_token"),FA(this,"SCOPE","profile email openid"),FA(this,"PROMPT","select_account"),this.setFinalUrl()}setFinalUrl(){const A=new URL("https://accounts.google.com/o/oauth2/v2/auth"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),i=Sn({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,prompt:this.PROMPT,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,nonce:this.nonce},t);Object.keys(i).forEach(o=>{const r=o;i[r]&&A.searchParams.append(r,i[r])}),this.finalURL=A}async getUserInfo(A){const{accessToken:t}=A,i=await Nn("https://www.googleapis.com/userinfo/v2/me",{headers:{Authorization:`Bearer ${t}`}}),{picture:o="",email:r="",name:f=""}=i;return{email:r,name:f,profileImage:o,verifier:this.params.verifier,verifierId:r.toLowerCase(),typeOfLogin:this.params.typeOfLogin}}}class $tA extends Va{constructor(A){super(A),FA(this,"SCOPE","openid profile email"),FA(this,"RESPONSE_TYPE","token id_token"),FA(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:A}=this.params.jwtParams,t=I3(A);t.pathname+=t.pathname.endsWith("/")?"authorize":"/authorize";const i=JSON.parse(JSON.stringify(this.params.jwtParams));delete i.domain;const o=Sn({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,prompt:this.PROMPT,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,connection:cJ[this.params.typeOfLogin],nonce:this.nonce},i);Object.keys(o).forEach(r=>{const f=r;o[f]&&t.searchParams.append(f,o[f])}),this.finalURL=t}async getUserInfo(A){const{idToken:t,accessToken:i}=A,{domain:o,verifierIdField:r,isVerifierIdCaseSensitive:f,user_info_route:h="userinfo"}=this.params.jwtParams;if(i)try{const d=new URL(o),p=await Nn(`${qy(d)}${h}`,{headers:{Authorization:`Bearer ${i}`}}),{picture:C,name:y,email:w}=p;return{email:w,name:y,profileImage:C,verifierId:Yc(p,this.params.typeOfLogin,r,f),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(d){tn.warn(d,"Unable to get userinfo from endpoint")}if(t){const d=Hy(t).payload,{name:p,email:C,picture:y}=d;return{profileImage:y,name:p,email:C,verifierId:Yc(d,this.params.typeOfLogin,r,f),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}throw new Error("Access/id token not available")}}class XtA extends Va{constructor(A){super(A),this.setFinalUrl()}setFinalUrl(){const A=JSON.parse(JSON.stringify(this.params.jwtParams));delete A.domain;const t=Sn({state:this.state,client_id:this.params.clientId,nonce:this.nonce},A);this.finalURL=new URL(lJ({baseURL:this.params.redirect_uri,query:null,hash:t}))}async getUserInfo(A){const{idToken:t,accessToken:i}=A,{domain:o,verifierIdField:r,isVerifierIdCaseSensitive:f,user_info_route:h="userinfo"}=this.params.jwtParams;if(i)try{const d=new URL(o),p=await Nn(`${qy(d)}${h}`,{headers:{Authorization:`Bearer ${i}`}}),{picture:C,name:y,email:w}=p;return{email:w,name:y,profileImage:C,verifierId:Yc(p,this.params.typeOfLogin,r,f),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(d){tn.warn(d,"Unable to get userinfo from endpoint")}if(t){const d=Hy(t).payload,{name:p,email:C,picture:y}=d;return{profileImage:y,name:p,email:C,verifierId:Yc(d,this.params.typeOfLogin,r,f),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}throw new Error("Access/id token not available")}handleLoginWindow(A){const{id_token:t,access_token:i}=this.params.jwtParams,o=new DJ({url:this.finalURL,features:A.popupFeatures});if(this.params.uxMode===to.REDIRECT)o.redirect(A.locationReplaceOnRedirect);else return Promise.resolve({state:{},idToken:t,accessToken:i});return null}}class AiA{constructor(){FA(this,"sessionId",void 0)}checkSessionParams(){if(!this.sessionId)throw new Error("Session id is required");this.sessionId=this.sessionId.padStart(64,"0")}request({method:A="GET",url:t,data:i={},headers:o={}}){const r={headers:o};switch(A){case"GET":return Nn(t,r);case"POST":return ci(t,i,r);case"PUT":return ptA(t,i,r);case"PATCH":return QtA(t,i,r)}throw new Error("Invalid method type")}}var Dm={};const eiA="elliptic",tiA="6.5.7",iiA="EC cryptography",riA="lib/elliptic.js",niA=["lib"],oiA={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},siA={type:"git",url:"git@github.com:indutny/elliptic"},aiA=["EC","Elliptic","curve","Cryptography"],giA="Fedor Indutny ",IiA="MIT",fiA={url:"https://github.com/indutny/elliptic/issues"},hiA="https://github.com/indutny/elliptic",ciA={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},uiA={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},liA={name:eiA,version:tiA,description:iiA,main:riA,files:niA,scripts:oiA,repository:siA,keywords:aiA,author:giA,license:IiA,bugs:fiA,homepage:hiA,devDependencies:ciA,dependencies:uiA};var kn={},h3={exports:{}};const CiA={},BiA=Object.freeze(Object.defineProperty({__proto__:null,default:CiA},Symbol.toStringTag,{value:"Module"})),Ht=Ik(BiA);h3.exports;(function(e){(function(A,t){function i(Q,n){if(!Q)throw new Error(n||"Assertion failed")}function o(Q,n){Q.super_=n;var a=function(){};a.prototype=n.prototype,Q.prototype=new a,Q.prototype.constructor=Q}function r(Q,n,a){if(r.isBN(Q))return Q;this.negative=0,this.words=null,this.length=0,this.red=null,Q!==null&&((n==="le"||n==="be")&&(a=n,n=10),this._init(Q||0,n||10,a||"be"))}typeof A=="object"?A.exports=r:t.BN=r,r.BN=r,r.wordSize=26;var f;try{typeof window<"u"&&typeof window.Buffer<"u"?f=window.Buffer:f=Ht.Buffer}catch{}r.isBN=function(n){return n instanceof r?!0:n!==null&&typeof n=="object"&&n.constructor.wordSize===r.wordSize&&Array.isArray(n.words)},r.max=function(n,a){return n.cmp(a)>0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g,I+=2,I>=26&&(I-=26,B--)}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)})(h3);var Za=h3.exports,Io=mJ;function mJ(e,A){if(!e)throw new Error(A||"Assertion failed")}mJ.equal=function(A,t,i){if(A!=t)throw new Error(i||"Assertion failed: "+A+" != "+t)};var c3={};(function(e){var A=e;function t(r,f){if(Array.isArray(r))return r.slice();if(!r)return[];var h=[];if(typeof r!="string"){for(var d=0;d>8,y=p&255;C?h.push(C,y):h.push(y)}return h}A.toArray=t;function i(r){return r.length===1?"0"+r:r}A.zero2=i;function o(r){for(var f="",h=0;h(M>>1)-1?b=(M>>1)-S:b=S,R.isubn(b)):b=0,D[v]=b,R.iushrn(1)}return D}A.getNAF=r;function f(C,y){var w=[[],[]];C=C.clone(),y=y.clone();for(var D=0,v=0,M;C.cmpn(-D)>0||y.cmpn(-v)>0;){var R=C.andln(3)+D&3,b=y.andln(3)+v&3;R===3&&(R=-1),b===3&&(b=-1);var S;R&1?(M=C.andln(7)+D&7,(M===3||M===5)&&b===2?S=-R:S=R):S=0,w[0].push(S);var G;b&1?(M=y.andln(7)+v&7,(M===3||M===5)&&R===2?G=-b:G=b):G=0,w[1].push(G),2*D===S+1&&(D=1-D),2*v===G+1&&(v=1-v),C.iushrn(1),y.iushrn(1)}return w}A.getJSF=f;function h(C,y,w){var D="_"+y;C.prototype[y]=function(){return this[D]!==void 0?this[D]:this[D]=w.call(this)}}A.cachedProperty=h;function d(C){return typeof C=="string"?A.toArray(C,"hex"):C}A.parseBytes=d;function p(C){return new t(C,"hex","le")}A.intFromLE=p})(kn);var sd={exports:{}},Je={},Zb={exports:{}},zb={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh */(function(e,A){var t=jt,i=t.Buffer;function o(f,h){for(var d in f)h[d]=f[d]}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=t:(o(t,A),A.Buffer=r);function r(f,h,d){return i(f,h,d)}r.prototype=Object.create(i.prototype),o(i,r),r.from=function(f,h,d){if(typeof f=="number")throw new TypeError("Argument must not be a number");return i(f,h,d)},r.alloc=function(f,h,d){if(typeof f!="number")throw new TypeError("Argument must be a number");var p=i(f);return h!==void 0?typeof d=="string"?p.fill(h,d):p.fill(h):p.fill(0),p},r.allocUnsafe=function(f){if(typeof f!="number")throw new TypeError("Argument must be a number");return i(f)},r.allocUnsafeSlow=function(f){if(typeof f!="number")throw new TypeError("Argument must be a number");return t.SlowBuffer(f)}})(zb,zb.exports);var Ge=zb.exports,mm=65536,diA=4294967295;function EiA(){throw new Error(`Secure random number generation is not supported by this browser. +Use Chrome, Firefox or Internet Explorer 11`)}var QiA=Ge.Buffer,_Q=globalThis.crypto||globalThis.msCrypto;_Q&&_Q.getRandomValues?Zb.exports=piA:Zb.exports=EiA;function piA(e,A){if(e>diA)throw new RangeError("requested too many random bytes");var t=QiA.allocUnsafe(e);if(e>0)if(e>mm)for(var i=0;i0?this.tail.next=b:this.head=b,this.tail=b,++this.length}},{key:"unshift",value:function(R){var b={data:R,next:this.head};this.length===0&&(this.tail=b),this.head=b,++this.length}},{key:"shift",value:function(){if(this.length!==0){var R=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,R}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(R){if(this.length===0)return"";for(var b=this.head,S=""+b.data;b=b.next;)S+=R+b.data;return S}},{key:"concat",value:function(R){if(this.length===0)return p.alloc(0);for(var b=p.allocUnsafe(R>>>0),S=this.head,G=0;S;)D(S.data,b,G),G+=S.data.length,S=S.next;return b}},{key:"consume",value:function(R,b){var S;return RU.length?U.length:R;if(P===U.length?G+=U:G+=U.slice(0,R),R-=P,R===0){P===U.length?(++S,b.next?this.head=b.next:this.head=this.tail=null):(this.head=b,b.data=U.slice(P));break}++S}return this.length-=S,G}},{key:"_getBuffer",value:function(R){var b=p.allocUnsafe(R),S=this.head,G=1;for(S.data.copy(b),R-=S.data.length;S=S.next;){var U=S.data,P=R>U.length?U.length:R;if(U.copy(b,b.length-R,0,P),R-=P,R===0){P===U.length?(++G,S.next?this.head=S.next:this.head=this.tail=null):(this.head=S,S.data=U.slice(P));break}++G}return this.length-=G,b}},{key:w,value:function(R,b){return y(this,A(A({},b),{},{depth:0,customInspect:!1}))}}]),v}(),Mm}var bm,jF;function MJ(){if(jF)return bm;jF=1;function e(f,h){var d=this,p=this._readableState&&this._readableState.destroyed,C=this._writableState&&this._writableState.destroyed;return p||C?(h?h(f):f&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(o,this,f)):process.nextTick(o,this,f)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(f||null,function(y){!h&&y?d._writableState?d._writableState.errorEmitted?process.nextTick(t,d):(d._writableState.errorEmitted=!0,process.nextTick(A,d,y)):process.nextTick(A,d,y):h?(process.nextTick(t,d),h(y)):process.nextTick(t,d)}),this)}function A(f,h){o(f,h),t(f)}function t(f){f._writableState&&!f._writableState.emitClose||f._readableState&&!f._readableState.emitClose||f.emit("close")}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function o(f,h){f.emit("error",h)}function r(f,h){var d=f._readableState,p=f._writableState;d&&d.autoDestroy||p&&p.autoDestroy?f.destroy(h):f.emit("error",h)}return bm={destroy:e,undestroy:i,errorOrDestroy:r},bm}var Sm={},WF;function _u(){if(WF)return Sm;WF=1;function e(h,d){h.prototype=Object.create(d.prototype),h.prototype.constructor=h,h.__proto__=d}var A={};function t(h,d,p){p||(p=Error);function C(w,D,v){return typeof d=="string"?d:d(w,D,v)}var y=function(w){e(D,w);function D(v,M,R){return w.call(this,C(v,M,R))||this}return D}(p);y.prototype.name=p.name,y.prototype.code=h,A[h]=y}function i(h,d){if(Array.isArray(h)){var p=h.length;return h=h.map(function(C){return String(C)}),p>2?"one of ".concat(d," ").concat(h.slice(0,p-1).join(", "),", or ")+h[p-1]:p===2?"one of ".concat(d," ").concat(h[0]," or ").concat(h[1]):"of ".concat(d," ").concat(h[0])}else return"of ".concat(d," ").concat(String(h))}function o(h,d,p){return h.substr(0,d.length)===d}function r(h,d,p){return(p===void 0||p>h.length)&&(p=h.length),h.substring(p-d.length,p)===d}function f(h,d,p){return typeof p!="number"&&(p=0),p+d.length>h.length?!1:h.indexOf(d,p)!==-1}return t("ERR_INVALID_OPT_VALUE",function(h,d){return'The value "'+d+'" is invalid for option "'+h+'"'},TypeError),t("ERR_INVALID_ARG_TYPE",function(h,d,p){var C;typeof d=="string"&&o(d,"not ")?(C="must not be",d=d.replace(/^not /,"")):C="must be";var y;if(r(h," argument"))y="The ".concat(h," ").concat(C," ").concat(i(d,"type"));else{var w=f(h,".")?"property":"argument";y='The "'.concat(h,'" ').concat(w," ").concat(C," ").concat(i(d,"type"))}return y+=". Received type ".concat(typeof p),y},TypeError),t("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),t("ERR_METHOD_NOT_IMPLEMENTED",function(h){return"The "+h+" method is not implemented"}),t("ERR_STREAM_PREMATURE_CLOSE","Premature close"),t("ERR_STREAM_DESTROYED",function(h){return"Cannot call "+h+" after a stream was destroyed"}),t("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),t("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),t("ERR_STREAM_WRITE_AFTER_END","write after end"),t("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),t("ERR_UNKNOWN_ENCODING",function(h){return"Unknown encoding: "+h},TypeError),t("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Sm.codes=A,Sm}var Nm,VF;function bJ(){if(VF)return Nm;VF=1;var e=_u().codes.ERR_INVALID_OPT_VALUE;function A(i,o,r){return i.highWaterMark!=null?i.highWaterMark:o?i[r]:null}function t(i,o,r,f){var h=A(o,f,r);if(h!=null){if(!(isFinite(h)&&Math.floor(h)===h)||h<0){var d=f?r:"highWaterMark";throw new e(d,h)}return Math.floor(h)}return i.objectMode?16:16*1024}return Nm={getHighWaterMark:t},Nm}var km,ZF;function SJ(){if(ZF)return km;ZF=1,km=e;function e(t,i){if(A("noDeprecation"))return t;var o=!1;function r(){if(!o){if(A("throwDeprecation"))throw new Error(i);A("traceDeprecation")?console.trace(i):console.warn(i),o=!0}return t.apply(this,arguments)}return r}function A(t){try{if(!globalThis.localStorage)return!1}catch{return!1}var i=globalThis.localStorage[t];return i==null?!1:String(i).toLowerCase()==="true"}return km}var Rm,zF;function NJ(){if(zF)return Rm;zF=1,Rm=J;function e(H){var K=this;this.next=null,this.entry=null,this.finish=function(){O(K,H)}}var A;J.WritableState=z;var t={deprecate:SJ()},i=vJ(),o=jt.Buffer,r=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function f(H){return o.from(H)}function h(H){return o.isBuffer(H)||H instanceof r}var d=MJ(),p=bJ(),C=p.getHighWaterMark,y=_u().codes,w=y.ERR_INVALID_ARG_TYPE,D=y.ERR_METHOD_NOT_IMPLEMENTED,v=y.ERR_MULTIPLE_CALLBACK,M=y.ERR_STREAM_CANNOT_PIPE,R=y.ERR_STREAM_DESTROYED,b=y.ERR_STREAM_NULL_VALUES,S=y.ERR_STREAM_WRITE_AFTER_END,G=y.ERR_UNKNOWN_ENCODING,U=d.errorOrDestroy;Fe(J,i);function P(){}function z(H,K,Y){A=A||Jc(),H=H||{},typeof Y!="boolean"&&(Y=K instanceof A),this.objectMode=!!H.objectMode,Y&&(this.objectMode=this.objectMode||!!H.writableObjectMode),this.highWaterMark=C(this,H,"writableHighWaterMark",Y),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var W=H.decodeStrings===!1;this.decodeStrings=!W,this.defaultEncoding=H.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function($){c(K,$)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=H.emitClose!==!1,this.autoDestroy=!!H.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}z.prototype.getBuffer=function(){for(var K=this.bufferedRequest,Y=[];K;)Y.push(K),K=K.next;return Y},function(){try{Object.defineProperty(z.prototype,"buffer",{get:t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var oA;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(oA=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(K){return oA.call(this,K)?!0:this!==J?!1:K&&K._writableState instanceof z}})):oA=function(K){return K instanceof this};function J(H){A=A||Jc();var K=this instanceof A;if(!K&&!oA.call(J,this))return new J(H);this._writableState=new z(H,this,K),this.writable=!0,H&&(typeof H.write=="function"&&(this._write=H.write),typeof H.writev=="function"&&(this._writev=H.writev),typeof H.destroy=="function"&&(this._destroy=H.destroy),typeof H.final=="function"&&(this._final=H.final)),i.call(this)}J.prototype.pipe=function(){U(this,new M)};function q(H,K){var Y=new S;U(H,Y),process.nextTick(K,Y)}function X(H,K,Y,W){var $;return Y===null?$=new b:typeof Y!="string"&&!K.objectMode&&($=new w("chunk",["string","Buffer"],Y)),$?(U(H,$),process.nextTick(W,$),!1):!0}J.prototype.write=function(H,K,Y){var W=this._writableState,$=!1,V=!W.objectMode&&h(H);return V&&!o.isBuffer(H)&&(H=f(H)),typeof K=="function"&&(Y=K,K=null),V?K="buffer":K||(K=W.defaultEncoding),typeof Y!="function"&&(Y=P),W.ending?q(this,Y):(V||X(this,W,H,Y))&&(W.pendingcb++,$=n(this,W,V,H,K,Y)),$},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var H=this._writableState;H.corked&&(H.corked--,!H.writing&&!H.corked&&!H.bufferProcessing&&H.bufferedRequest&&u(this,H))},J.prototype.setDefaultEncoding=function(K){if(typeof K=="string"&&(K=K.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((K+"").toLowerCase())>-1))throw new G(K);return this._writableState.defaultEncoding=K,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Q(H,K,Y){return!H.objectMode&&H.decodeStrings!==!1&&typeof K=="string"&&(K=o.from(K,Y)),K}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function n(H,K,Y,W,$,V){if(!Y){var _=Q(K,W,$);W!==_&&(Y=!0,$="buffer",W=_)}var j=K.objectMode?1:W.length;K.length+=j;var sA=K.length>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function miA(e,A,t){var i=A.length-1;if(i=0?(o>0&&(e.lastNeed=o-1),o):--i=0?(o>0&&(e.lastNeed=o-2),o):--i=0?(o>0&&(o===2?o=0:e.lastNeed=o-3),o):0))}function viA(e,A,t){if((A[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&A.length>1){if((A[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&A.length>2&&(A[2]&192)!==128)return e.lastNeed=2,"�"}}function MiA(e){var A=this.lastTotal-this.lastNeed,t=viA(this,e);if(t!==void 0)return t;if(this.lastNeed<=e.length)return e.copy(this.lastChar,A,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,A,0,e.length),this.lastNeed-=e.length}function biA(e,A){var t=miA(this,e,A);if(!this.lastNeed)return e.toString("utf8",A);this.lastTotal=t;var i=e.length-(t-this.lastNeed);return e.copy(this.lastChar,0,i),e.toString("utf8",A,i)}function SiA(e){var A=e&&e.length?this.write(e):"";return this.lastNeed?A+"�":A}function NiA(e,A){if((e.length-A)%2===0){var t=e.toString("utf16le",A);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",A,e.length-1)}function kiA(e){var A=e&&e.length?this.write(e):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return A+this.lastChar.toString("utf16le",0,t)}return A}function RiA(e,A){var t=(e.length-A)%3;return t===0?e.toString("base64",A):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",A,e.length-t))}function KiA(e){var A=e&&e.length?this.write(e):"";return this.lastNeed?A+this.lastChar.toString("base64",0,3-this.lastNeed):A}function GiA(e){return e.toString(this.encoding)}function FiA(e){return e&&e.length?this.write(e):""}var Fm,Ax;function l3(){if(Ax)return Fm;Ax=1;var e=_u().codes.ERR_STREAM_PREMATURE_CLOSE;function A(r){var f=!1;return function(){if(!f){f=!0;for(var h=arguments.length,d=new Array(h),p=0;p0)if(typeof _!="string"&&!aA.objectMode&&Object.getPrototypeOf(_)!==i.prototype&&(_=r(_)),sA)aA.endEmitted?P(V,new b):Q(V,aA,_,!0);else if(aA.ended)P(V,new M);else{if(aA.destroyed)return!1;aA.reading=!1,aA.decoder&&!j?(_=aA.decoder.write(_),aA.objectMode||_.length!==0?Q(V,aA,_,!1):u(V,aA)):Q(V,aA,_,!1)}else sA||(aA.reading=!1,u(V,aA))}return!aA.ended&&(aA.length=a?V=a:(V--,V|=V>>>1,V|=V>>>2,V|=V>>>4,V|=V>>>8,V|=V>>>16,V++),V}function I(V,_){return V<=0||_.length===0&&_.ended?0:_.objectMode?1:V!==V?_.flowing&&_.length?_.buffer.head.data.length:_.length:(V>_.highWaterMark&&(_.highWaterMark=g(V)),V<=_.length?V:_.ended?_.length:(_.needReadable=!0,0))}q.prototype.read=function(V){d("read",V),V=parseInt(V,10);var _=this._readableState,j=V;if(V!==0&&(_.emittedReadable=!1),V===0&&_.needReadable&&((_.highWaterMark!==0?_.length>=_.highWaterMark:_.length>0)||_.ended))return d("read: emitReadable",_.length,_.ended),_.length===0&&_.ended?Y(this):B(this),null;if(V=I(V,_),V===0&&_.ended)return _.length===0&&Y(this),null;var sA=_.needReadable;d("need readable",sA),(_.length===0||_.length-V<_.highWaterMark)&&(sA=!0,d("length less than watermark",sA)),_.ended||_.reading?(sA=!1,d("reading or ended",sA)):sA&&(d("do read"),_.reading=!0,_.sync=!0,_.length===0&&(_.needReadable=!0),this._read(_.highWaterMark),_.sync=!1,_.reading||(V=I(j,_)));var iA;return V>0?iA=K(V,_):iA=null,iA===null?(_.needReadable=_.length<=_.highWaterMark,V=0):(_.length-=V,_.awaitDrain=0),_.length===0&&(_.ended||(_.needReadable=!0),j!==V&&_.ended&&Y(this)),iA!==null&&this.emit("data",iA),iA};function c(V,_){if(d("onEofChunk"),!_.ended){if(_.decoder){var j=_.decoder.end();j&&j.length&&(_.buffer.push(j),_.length+=_.objectMode?1:j.length)}_.ended=!0,_.sync?B(V):(_.needReadable=!1,_.emittedReadable||(_.emittedReadable=!0,E(V)))}}function B(V){var _=V._readableState;d("emitReadable",_.needReadable,_.emittedReadable),_.needReadable=!1,_.emittedReadable||(d("emitReadable",_.flowing),_.emittedReadable=!0,process.nextTick(E,V))}function E(V){var _=V._readableState;d("emitReadable_",_.destroyed,_.length,_.ended),!_.destroyed&&(_.length||_.ended)&&(V.emit("readable"),_.emittedReadable=!1),_.needReadable=!_.flowing&&!_.ended&&_.length<=_.highWaterMark,H(V)}function u(V,_){_.readingMore||(_.readingMore=!0,process.nextTick(s,V,_))}function s(V,_){for(;!_.reading&&!_.ended&&(_.length<_.highWaterMark||_.flowing&&_.length===0);){var j=_.length;if(d("maybeReadMore read 0"),V.read(0),j===_.length)break}_.readingMore=!1}q.prototype._read=function(V){P(this,new R("_read()"))},q.prototype.pipe=function(V,_){var j=this,sA=this._readableState;switch(sA.pipesCount){case 0:sA.pipes=V;break;case 1:sA.pipes=[sA.pipes,V];break;default:sA.pipes.push(V);break}sA.pipesCount+=1,d("pipe count=%d opts=%j",sA.pipesCount,_);var iA=(!_||_.end!==!1)&&V!==process.stdout&&V!==process.stderr,aA=iA?nA:OA;sA.endEmitted?process.nextTick(aA):j.once("end",aA),V.on("unpipe",lA);function lA(x,k){d("onunpipe"),x===j&&k&&k.hasUnpiped===!1&&(k.hasUnpiped=!0,gA())}function nA(){d("onend"),V.end()}var tA=l(j);V.on("drain",tA);var xA=!1;function gA(){d("cleanup"),V.removeListener("close",rA),V.removeListener("finish",hA),V.removeListener("drain",tA),V.removeListener("error",UA),V.removeListener("unpipe",lA),j.removeListener("end",nA),j.removeListener("end",OA),j.removeListener("data",IA),xA=!0,sA.awaitDrain&&(!V._writableState||V._writableState.needDrain)&&tA()}j.on("data",IA);function IA(x){d("ondata");var k=V.write(x);d("dest.write",k),k===!1&&((sA.pipesCount===1&&sA.pipes===V||sA.pipesCount>1&&$(sA.pipes,V)!==-1)&&!xA&&(d("false write response, pause",sA.awaitDrain),sA.awaitDrain++),j.pause())}function UA(x){d("onerror",x),OA(),V.removeListener("error",UA),A(V,"error")===0&&P(V,x)}oA(V,"error",UA);function rA(){V.removeListener("finish",hA),OA()}V.once("close",rA);function hA(){d("onfinish"),V.removeListener("close",rA),OA()}V.once("finish",hA);function OA(){d("unpipe"),j.unpipe(V)}return V.emit("pipe",j),sA.flowing||(d("pipe resume"),j.resume()),V};function l(V){return function(){var j=V._readableState;d("pipeOnDrain",j.awaitDrain),j.awaitDrain&&j.awaitDrain--,j.awaitDrain===0&&A(V,"data")&&(j.flowing=!0,H(V))}}q.prototype.unpipe=function(V){var _=this._readableState,j={hasUnpiped:!1};if(_.pipesCount===0)return this;if(_.pipesCount===1)return V&&V!==_.pipes?this:(V||(V=_.pipes),_.pipes=null,_.pipesCount=0,_.flowing=!1,V&&V.emit("unpipe",this,j),this);if(!V){var sA=_.pipes,iA=_.pipesCount;_.pipes=null,_.pipesCount=0,_.flowing=!1;for(var aA=0;aA0,sA.flowing!==!1&&this.resume()):V==="readable"&&!sA.endEmitted&&!sA.readableListening&&(sA.readableListening=sA.needReadable=!0,sA.flowing=!1,sA.emittedReadable=!1,d("on readable",sA.length,sA.reading),sA.length?B(this):sA.reading||process.nextTick(N,this)),j},q.prototype.addListener=q.prototype.on,q.prototype.removeListener=function(V,_){var j=t.prototype.removeListener.call(this,V,_);return V==="readable"&&process.nextTick(m,this),j},q.prototype.removeAllListeners=function(V){var _=t.prototype.removeAllListeners.apply(this,arguments);return(V==="readable"||V===void 0)&&process.nextTick(m,this),_};function m(V){var _=V._readableState;_.readableListening=V.listenerCount("readable")>0,_.resumeScheduled&&!_.paused?_.flowing=!0:V.listenerCount("data")>0&&V.resume()}function N(V){d("readable nexttick read 0"),V.read(0)}q.prototype.resume=function(){var V=this._readableState;return V.flowing||(d("resume"),V.flowing=!V.readableListening,L(this,V)),V.paused=!1,this};function L(V,_){_.resumeScheduled||(_.resumeScheduled=!0,process.nextTick(O,V,_))}function O(V,_){d("resume",_.reading),_.reading||V.read(0),_.resumeScheduled=!1,V.emit("resume"),H(V),_.flowing&&!_.reading&&V.read(0)}q.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function H(V){var _=V._readableState;for(d("flow",_.flowing);_.flowing&&V.read()!==null;);}q.prototype.wrap=function(V){var _=this,j=this._readableState,sA=!1;V.on("end",function(){if(d("wrapped end"),j.decoder&&!j.ended){var lA=j.decoder.end();lA&&lA.length&&_.push(lA)}_.push(null)}),V.on("data",function(lA){if(d("wrapped data"),j.decoder&&(lA=j.decoder.write(lA)),!(j.objectMode&&lA==null)&&!(!j.objectMode&&(!lA||!lA.length))){var nA=_.push(lA);nA||(sA=!0,V.pause())}});for(var iA in V)this[iA]===void 0&&typeof V[iA]=="function"&&(this[iA]=function(nA){return function(){return V[nA].apply(V,arguments)}}(iA));for(var aA=0;aA=_.length?(_.decoder?j=_.buffer.join(""):_.buffer.length===1?j=_.buffer.first():j=_.buffer.concat(_.length),_.buffer.clear()):j=_.buffer.consume(V,_.decoder),j}function Y(V){var _=V._readableState;d("endReadable",_.endEmitted),_.endEmitted||(_.ended=!0,process.nextTick(W,_,V))}function W(V,_){if(d("endReadableNT",V.endEmitted,V.length),!V.endEmitted&&V.length===0&&(V.endEmitted=!0,_.readable=!1,_.emit("end"),V.autoDestroy)){var j=_._writableState;(!j||j.autoDestroy&&j.finished)&&_.destroy()}}typeof Symbol=="function"&&(q.from=function(V,_){return U===void 0&&(U=LiA()),U(q,V,_)});function $(V,_){for(var j=0,sA=V.length;j0;return h(S,U,P,function(z){R||(R=z),z&&b.forEach(d),!U&&(b.forEach(d),M(R))})});return D.reduce(p)}return Hm=y,Hm}var eB=ao,C3=Zo.EventEmitter,qiA=Fe;qiA(ao,C3);ao.Readable=kJ();ao.Writable=NJ();ao.Duplex=Jc();ao.Transform=RJ();ao.PassThrough=UiA();ao.finished=l3();ao.pipeline=_iA();ao.Stream=ao;function ao(){C3.call(this)}ao.prototype.pipe=function(e,A){var t=this;function i(C){e.writable&&e.write(C)===!1&&t.pause&&t.pause()}t.on("data",i);function o(){t.readable&&t.resume&&t.resume()}e.on("drain",o),!e._isStdio&&(!A||A.end!==!1)&&(t.on("end",f),t.on("close",h));var r=!1;function f(){r||(r=!0,e.end())}function h(){r||(r=!0,typeof e.destroy=="function"&&e.destroy())}function d(C){if(p(),C3.listenerCount(this,"error")===0)throw C}t.on("error",d),e.on("error",d);function p(){t.removeListener("data",i),e.removeListener("drain",o),t.removeListener("end",f),t.removeListener("close",h),t.removeListener("error",d),e.removeListener("error",d),t.removeListener("end",p),t.removeListener("close",p),e.removeListener("close",p)}return t.on("end",p),t.on("close",p),e.on("close",p),e.emit("pipe",t),e};var qQ=Ge.Buffer,KJ=eB.Transform,HiA=Fe;function YiA(e,A){if(!qQ.isBuffer(e)&&typeof e!="string")throw new TypeError(A+" must be a string or a buffer")}function gI(e){KJ.call(this),this._block=qQ.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}HiA(gI,KJ);gI.prototype._transform=function(e,A,t){var i=null;try{this.update(e,A)}catch(o){i=o}t(i)};gI.prototype._flush=function(e){var A=null;try{this.push(this.digest())}catch(t){A=t}e(A)};gI.prototype.update=function(e,A){if(YiA(e,"Data"),this._finalized)throw new Error("Digest already called");qQ.isBuffer(e)||(e=qQ.from(e,A));for(var t=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var o=this._blockOffset;o0;++r)this._length[r]+=f,f=this._length[r]/4294967296|0,f>0&&(this._length[r]-=4294967296*f);return this};gI.prototype._update=function(){throw new Error("_update is not implemented")};gI.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var A=this._digest();e!==void 0&&(A=A.toString(e)),this._block.fill(0),this._blockOffset=0;for(var t=0;t<4;++t)this._length[t]=0;return A};gI.prototype._digest=function(){throw new Error("_digest is not implemented")};var GJ=gI,JiA=Fe,FJ=GJ,TiA=Ge.Buffer,PiA=new Array(16);function Jy(){FJ.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}JiA(Jy,FJ);Jy.prototype._update=function(){for(var e=PiA,A=0;A<16;++A)e[A]=this._block.readInt32LE(A*4);var t=this._a,i=this._b,o=this._c,r=this._d;t=rr(t,i,o,r,e[0],3614090360,7),r=rr(r,t,i,o,e[1],3905402710,12),o=rr(o,r,t,i,e[2],606105819,17),i=rr(i,o,r,t,e[3],3250441966,22),t=rr(t,i,o,r,e[4],4118548399,7),r=rr(r,t,i,o,e[5],1200080426,12),o=rr(o,r,t,i,e[6],2821735955,17),i=rr(i,o,r,t,e[7],4249261313,22),t=rr(t,i,o,r,e[8],1770035416,7),r=rr(r,t,i,o,e[9],2336552879,12),o=rr(o,r,t,i,e[10],4294925233,17),i=rr(i,o,r,t,e[11],2304563134,22),t=rr(t,i,o,r,e[12],1804603682,7),r=rr(r,t,i,o,e[13],4254626195,12),o=rr(o,r,t,i,e[14],2792965006,17),i=rr(i,o,r,t,e[15],1236535329,22),t=nr(t,i,o,r,e[1],4129170786,5),r=nr(r,t,i,o,e[6],3225465664,9),o=nr(o,r,t,i,e[11],643717713,14),i=nr(i,o,r,t,e[0],3921069994,20),t=nr(t,i,o,r,e[5],3593408605,5),r=nr(r,t,i,o,e[10],38016083,9),o=nr(o,r,t,i,e[15],3634488961,14),i=nr(i,o,r,t,e[4],3889429448,20),t=nr(t,i,o,r,e[9],568446438,5),r=nr(r,t,i,o,e[14],3275163606,9),o=nr(o,r,t,i,e[3],4107603335,14),i=nr(i,o,r,t,e[8],1163531501,20),t=nr(t,i,o,r,e[13],2850285829,5),r=nr(r,t,i,o,e[2],4243563512,9),o=nr(o,r,t,i,e[7],1735328473,14),i=nr(i,o,r,t,e[12],2368359562,20),t=or(t,i,o,r,e[5],4294588738,4),r=or(r,t,i,o,e[8],2272392833,11),o=or(o,r,t,i,e[11],1839030562,16),i=or(i,o,r,t,e[14],4259657740,23),t=or(t,i,o,r,e[1],2763975236,4),r=or(r,t,i,o,e[4],1272893353,11),o=or(o,r,t,i,e[7],4139469664,16),i=or(i,o,r,t,e[10],3200236656,23),t=or(t,i,o,r,e[13],681279174,4),r=or(r,t,i,o,e[0],3936430074,11),o=or(o,r,t,i,e[3],3572445317,16),i=or(i,o,r,t,e[6],76029189,23),t=or(t,i,o,r,e[9],3654602809,4),r=or(r,t,i,o,e[12],3873151461,11),o=or(o,r,t,i,e[15],530742520,16),i=or(i,o,r,t,e[2],3299628645,23),t=sr(t,i,o,r,e[0],4096336452,6),r=sr(r,t,i,o,e[7],1126891415,10),o=sr(o,r,t,i,e[14],2878612391,15),i=sr(i,o,r,t,e[5],4237533241,21),t=sr(t,i,o,r,e[12],1700485571,6),r=sr(r,t,i,o,e[3],2399980690,10),o=sr(o,r,t,i,e[10],4293915773,15),i=sr(i,o,r,t,e[1],2240044497,21),t=sr(t,i,o,r,e[8],1873313359,6),r=sr(r,t,i,o,e[15],4264355552,10),o=sr(o,r,t,i,e[6],2734768916,15),i=sr(i,o,r,t,e[13],1309151649,21),t=sr(t,i,o,r,e[4],4149444226,6),r=sr(r,t,i,o,e[11],3174756917,10),o=sr(o,r,t,i,e[2],718787259,15),i=sr(i,o,r,t,e[9],3951481745,21),this._a=this._a+t|0,this._b=this._b+i|0,this._c=this._c+o|0,this._d=this._d+r|0};Jy.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=TiA.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e};function Ty(e,A){return e<>>32-A}function rr(e,A,t,i,o,r,f){return Ty(e+(A&t|~A&i)+o+r|0,f)+A|0}function nr(e,A,t,i,o,r,f){return Ty(e+(A&i|t&~i)+o+r|0,f)+A|0}function or(e,A,t,i,o,r,f){return Ty(e+(A^t^i)+o+r|0,f)+A|0}function sr(e,A,t,i,o,r,f){return Ty(e+(t^(A|~i))+o+r|0,f)+A|0}var B3=Jy,Ym=jt.Buffer,OiA=Fe,xJ=GJ,jiA=new Array(16),ml=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],vl=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Ml=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],bl=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Sl=[0,1518500249,1859775393,2400959708,2840853838],Nl=[1352829926,1548603684,1836072691,2053994217,0];function Py(){xJ.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}OiA(Py,xJ);Py.prototype._update=function(){for(var e=jiA,A=0;A<16;++A)e[A]=this._block.readInt32LE(A*4);for(var t=this._a|0,i=this._b|0,o=this._c|0,r=this._d|0,f=this._e|0,h=this._a|0,d=this._b|0,p=this._c|0,C=this._d|0,y=this._e|0,w=0;w<80;w+=1){var D,v;w<16?(D=sx(t,i,o,r,f,e[ml[w]],Sl[0],Ml[w]),v=fx(h,d,p,C,y,e[vl[w]],Nl[0],bl[w])):w<32?(D=ax(t,i,o,r,f,e[ml[w]],Sl[1],Ml[w]),v=Ix(h,d,p,C,y,e[vl[w]],Nl[1],bl[w])):w<48?(D=gx(t,i,o,r,f,e[ml[w]],Sl[2],Ml[w]),v=gx(h,d,p,C,y,e[vl[w]],Nl[2],bl[w])):w<64?(D=Ix(t,i,o,r,f,e[ml[w]],Sl[3],Ml[w]),v=ax(h,d,p,C,y,e[vl[w]],Nl[3],bl[w])):(D=fx(t,i,o,r,f,e[ml[w]],Sl[4],Ml[w]),v=sx(h,d,p,C,y,e[vl[w]],Nl[4],bl[w])),t=f,f=r,r=Sf(o,10),o=i,i=D,h=y,y=C,C=Sf(p,10),p=d,d=v}var M=this._b+o+C|0;this._b=this._c+r+y|0,this._c=this._d+f+h|0,this._d=this._e+t+d|0,this._e=this._a+i+p|0,this._a=M};Py.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=Ym.alloc?Ym.alloc(20):new Ym(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e};function Sf(e,A){return e<>>32-A}function sx(e,A,t,i,o,r,f,h){return Sf(e+(A^t^i)+r+f|0,h)+o|0}function ax(e,A,t,i,o,r,f,h){return Sf(e+(A&t|~A&i)+r+f|0,h)+o|0}function gx(e,A,t,i,o,r,f,h){return Sf(e+((A|~t)^i)+r+f|0,h)+o|0}function Ix(e,A,t,i,o,r,f,h){return Sf(e+(A&i|t&~i)+r+f|0,h)+o|0}function fx(e,A,t,i,o,r,f,h){return Sf(e+(A^(t|~i))+r+f|0,h)+o|0}var d3=Py,LJ={exports:{}},UJ=Ge.Buffer;function Oy(e,A){this._block=UJ.alloc(e),this._finalSize=A,this._blockSize=e,this._len=0}Oy.prototype.update=function(e,A){typeof e=="string"&&(A=A||"utf8",e=UJ.from(e,A));for(var t=this._block,i=this._blockSize,o=e.length,r=this._len,f=0;f=this._finalSize&&(this._update(this._block),this._block.fill(0));var t=this._len*8;if(t<=4294967295)this._block.writeUInt32BE(t,this._blockSize-4);else{var i=(t&4294967295)>>>0,o=(t-i)/4294967296;this._block.writeUInt32BE(o,this._blockSize-8),this._block.writeUInt32BE(i,this._blockSize-4)}this._update(this._block);var r=this._hash();return e?r.toString(e):r};Oy.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var qu=Oy,WiA=Fe,_J=qu,ViA=Ge.Buffer,ZiA=[1518500249,1859775393,-1894007588,-899497514],ziA=new Array(80);function tB(){this.init(),this._w=ziA,_J.call(this,64,56)}WiA(tB,_J);tB.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function $iA(e){return e<<5|e>>>27}function XiA(e){return e<<30|e>>>2}function ArA(e,A,t,i){return e===0?A&t|~A&i:e===2?A&t|A&i|t&i:A^t^i}tB.prototype._update=function(e){for(var A=this._w,t=this._a|0,i=this._b|0,o=this._c|0,r=this._d|0,f=this._e|0,h=0;h<16;++h)A[h]=e.readInt32BE(h*4);for(;h<80;++h)A[h]=A[h-3]^A[h-8]^A[h-14]^A[h-16];for(var d=0;d<80;++d){var p=~~(d/20),C=$iA(t)+ArA(p,i,o,r)+f+A[d]+ZiA[p]|0;f=r,r=o,o=XiA(i),i=t,t=C}this._a=t+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=r+this._d|0,this._e=f+this._e|0};tB.prototype._hash=function(){var e=ViA.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var erA=tB,trA=Fe,qJ=qu,irA=Ge.Buffer,rrA=[1518500249,1859775393,-1894007588,-899497514],nrA=new Array(80);function iB(){this.init(),this._w=nrA,qJ.call(this,64,56)}trA(iB,qJ);iB.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function orA(e){return e<<1|e>>>31}function srA(e){return e<<5|e>>>27}function arA(e){return e<<30|e>>>2}function grA(e,A,t,i){return e===0?A&t|~A&i:e===2?A&t|A&i|t&i:A^t^i}iB.prototype._update=function(e){for(var A=this._w,t=this._a|0,i=this._b|0,o=this._c|0,r=this._d|0,f=this._e|0,h=0;h<16;++h)A[h]=e.readInt32BE(h*4);for(;h<80;++h)A[h]=orA(A[h-3]^A[h-8]^A[h-14]^A[h-16]);for(var d=0;d<80;++d){var p=~~(d/20),C=srA(t)+grA(p,i,o,r)+f+A[d]+rrA[p]|0;f=r,r=o,o=arA(i),i=t,t=C}this._a=t+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=r+this._d|0,this._e=f+this._e|0};iB.prototype._hash=function(){var e=irA.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var IrA=iB,frA=Fe,HJ=qu,hrA=Ge.Buffer,crA=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],urA=new Array(64);function rB(){this.init(),this._w=urA,HJ.call(this,64,56)}frA(rB,HJ);rB.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function lrA(e,A,t){return t^e&(A^t)}function CrA(e,A,t){return e&A|t&(e|A)}function BrA(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function drA(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function ErA(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function QrA(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}rB.prototype._update=function(e){for(var A=this._w,t=this._a|0,i=this._b|0,o=this._c|0,r=this._d|0,f=this._e|0,h=this._f|0,d=this._g|0,p=this._h|0,C=0;C<16;++C)A[C]=e.readInt32BE(C*4);for(;C<64;++C)A[C]=QrA(A[C-2])+A[C-7]+ErA(A[C-15])+A[C-16]|0;for(var y=0;y<64;++y){var w=p+drA(f)+lrA(f,h,d)+crA[y]+A[y]|0,D=BrA(t)+CrA(t,i,o)|0;p=d,d=h,h=f,f=r+w|0,r=o,o=i,i=t,t=w+D|0}this._a=t+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=r+this._d|0,this._e=f+this._e|0,this._f=h+this._f|0,this._g=d+this._g|0,this._h=p+this._h|0};rB.prototype._hash=function(){var e=hrA.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e};var YJ=rB,prA=Fe,yrA=YJ,wrA=qu,DrA=Ge.Buffer,mrA=new Array(64);function jy(){this.init(),this._w=mrA,wrA.call(this,64,56)}prA(jy,yrA);jy.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};jy.prototype._hash=function(){var e=DrA.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e};var vrA=jy,MrA=Fe,JJ=qu,brA=Ge.Buffer,hx=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],SrA=new Array(160);function nB(){this.init(),this._w=SrA,JJ.call(this,128,112)}MrA(nB,JJ);nB.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function cx(e,A,t){return t^e&(A^t)}function ux(e,A,t){return e&A|t&(e|A)}function lx(e,A){return(e>>>28|A<<4)^(A>>>2|e<<30)^(A>>>7|e<<25)}function Cx(e,A){return(e>>>14|A<<18)^(e>>>18|A<<14)^(A>>>9|e<<23)}function NrA(e,A){return(e>>>1|A<<31)^(e>>>8|A<<24)^e>>>7}function krA(e,A){return(e>>>1|A<<31)^(e>>>8|A<<24)^(e>>>7|A<<25)}function RrA(e,A){return(e>>>19|A<<13)^(A>>>29|e<<3)^e>>>6}function KrA(e,A){return(e>>>19|A<<13)^(A>>>29|e<<3)^(e>>>6|A<<26)}function mi(e,A){return e>>>0>>0?1:0}nB.prototype._update=function(e){for(var A=this._w,t=this._ah|0,i=this._bh|0,o=this._ch|0,r=this._dh|0,f=this._eh|0,h=this._fh|0,d=this._gh|0,p=this._hh|0,C=this._al|0,y=this._bl|0,w=this._cl|0,D=this._dl|0,v=this._el|0,M=this._fl|0,R=this._gl|0,b=this._hl|0,S=0;S<32;S+=2)A[S]=e.readInt32BE(S*4),A[S+1]=e.readInt32BE(S*4+4);for(;S<160;S+=2){var G=A[S-30],U=A[S-15*2+1],P=NrA(G,U),z=krA(U,G);G=A[S-2*2],U=A[S-2*2+1];var oA=RrA(G,U),J=KrA(U,G),q=A[S-7*2],X=A[S-7*2+1],Q=A[S-16*2],n=A[S-16*2+1],a=z+X|0,g=P+q+mi(a,z)|0;a=a+J|0,g=g+oA+mi(a,J)|0,a=a+n|0,g=g+Q+mi(a,n)|0,A[S]=g,A[S+1]=a}for(var I=0;I<160;I+=2){g=A[I],a=A[I+1];var c=ux(t,i,o),B=ux(C,y,w),E=lx(t,C),u=lx(C,t),s=Cx(f,v),l=Cx(v,f),m=hx[I],N=hx[I+1],L=cx(f,h,d),O=cx(v,M,R),H=b+l|0,K=p+s+mi(H,b)|0;H=H+O|0,K=K+L+mi(H,O)|0,H=H+N|0,K=K+m+mi(H,N)|0,H=H+a|0,K=K+g+mi(H,a)|0;var Y=u+B|0,W=E+c+mi(Y,u)|0;p=d,b=R,d=h,R=M,h=f,M=v,v=D+H|0,f=r+K+mi(v,D)|0,r=o,D=w,o=i,w=y,i=t,y=C,C=H+Y|0,t=K+W+mi(C,H)|0}this._al=this._al+C|0,this._bl=this._bl+y|0,this._cl=this._cl+w|0,this._dl=this._dl+D|0,this._el=this._el+v|0,this._fl=this._fl+M|0,this._gl=this._gl+R|0,this._hl=this._hl+b|0,this._ah=this._ah+t+mi(this._al,C)|0,this._bh=this._bh+i+mi(this._bl,y)|0,this._ch=this._ch+o+mi(this._cl,w)|0,this._dh=this._dh+r+mi(this._dl,D)|0,this._eh=this._eh+f+mi(this._el,v)|0,this._fh=this._fh+h+mi(this._fl,M)|0,this._gh=this._gh+d+mi(this._gl,R)|0,this._hh=this._hh+p+mi(this._hl,b)|0};nB.prototype._hash=function(){var e=brA.allocUnsafe(64);function A(t,i,o){e.writeInt32BE(t,o),e.writeInt32BE(i,o+4)}return A(this._ah,this._al,0),A(this._bh,this._bl,8),A(this._ch,this._cl,16),A(this._dh,this._dl,24),A(this._eh,this._el,32),A(this._fh,this._fl,40),A(this._gh,this._gl,48),A(this._hh,this._hl,56),e};var TJ=nB,GrA=Fe,FrA=TJ,xrA=qu,LrA=Ge.Buffer,UrA=new Array(160);function Wy(){this.init(),this._w=UrA,xrA.call(this,128,112)}GrA(Wy,FrA);Wy.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};Wy.prototype._hash=function(){var e=LrA.allocUnsafe(48);function A(t,i,o){e.writeInt32BE(t,o),e.writeInt32BE(i,o+4)}return A(this._ah,this._al,0),A(this._bh,this._bl,8),A(this._ch,this._cl,16),A(this._dh,this._dl,24),A(this._eh,this._el,32),A(this._fh,this._fl,40),e};var _rA=Wy,Vf=LJ.exports=function(A){A=A.toLowerCase();var t=Vf[A];if(!t)throw new Error(A+" is not supported (we accept pull requests)");return new t};Vf.sha=erA;Vf.sha1=IrA;Vf.sha224=vrA;Vf.sha256=YJ;Vf.sha384=_rA;Vf.sha512=TJ;var E3=LJ.exports,PJ=Ge.Buffer,OJ=eB.Transform,qrA=nC.StringDecoder,HrA=Fe;function zo(e){OJ.call(this),this.hashMode=typeof e=="string",this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}HrA(zo,OJ);zo.prototype.update=function(e,A,t){typeof e=="string"&&(e=PJ.from(e,A));var i=this._update(e);return this.hashMode?this:(t&&(i=this._toString(i,t)),i)};zo.prototype.setAutoPadding=function(){};zo.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")};zo.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")};zo.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")};zo.prototype._transform=function(e,A,t){var i;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(o){i=o}finally{t(i)}};zo.prototype._flush=function(e){var A;try{this.push(this.__final())}catch(t){A=t}e(A)};zo.prototype._finalOrDigest=function(e){var A=this.__final()||PJ.alloc(0);return e&&(A=this._toString(A,e,!0)),A};zo.prototype._toString=function(e,A,t){if(this._decoder||(this._decoder=new qrA(A),this._encoding=A),this._encoding!==A)throw new Error("can't switch encodings");var i=this._decoder.write(e);return t&&(i+=this._decoder.end()),i};var II=zo,YrA=Fe,JrA=B3,TrA=d3,PrA=E3,jJ=II;function Vy(e){jJ.call(this,"digest"),this._hash=e}YrA(Vy,jJ);Vy.prototype._update=function(e){this._hash.update(e)};Vy.prototype._final=function(){return this._hash.digest()};var oB=function(A){return A=A.toLowerCase(),A==="md5"?new JrA:A==="rmd160"||A==="ripemd160"?new TrA:new Vy(PrA(A))},OrA=Fe,PI=Ge.Buffer,WJ=II,jrA=PI.alloc(128),ah=64;function Zy(e,A){WJ.call(this,"digest"),typeof A=="string"&&(A=PI.from(A)),this._alg=e,this._key=A,A.length>ah?A=e(A):A.lengtht){var i=e==="rmd160"?new Xb:AS(e);A=i.update(A).digest()}else A.lengthhnA||A!==A)throw new TypeError("Bad key length")},wE;if(globalThis.process&&globalThis.process.browser)wE="utf-8";else if(globalThis.process&&globalThis.process.version){var cnA=parseInt(process.version.split(".")[0].slice(1),10);wE=cnA>=6?"utf-8":"binary"}else wE="utf-8";var A9=wE,Jm=Ge.Buffer,e9=function(e,A,t){if(Jm.isBuffer(e))return e;if(typeof e=="string")return Jm.from(e,A);if(ArrayBuffer.isView(e))return Jm.from(e.buffer);throw new TypeError(t+" must be a string, a Buffer, a typed array or a DataView")},unA=VJ,lnA=d3,CnA=E3,OI=Ge.Buffer,BnA=XJ,Bx=A9,dx=e9,dnA=OI.alloc(128),DE={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function t9(e,A,t){var i=EnA(e),o=e==="sha512"||e==="sha384"?128:64;A.length>o?A=i(A):A.length>>0};Rn.writeUInt32BE=function(A,t,i){A[0+i]=t>>>24,A[1+i]=t>>>16&255,A[2+i]=t>>>8&255,A[3+i]=t&255};Rn.ip=function(A,t,i,o){for(var r=0,f=0,h=6;h>=0;h-=2){for(var d=0;d<=24;d+=8)r<<=1,r|=t>>>d+h&1;for(var d=0;d<=24;d+=8)r<<=1,r|=A>>>d+h&1}for(var h=6;h>=0;h-=2){for(var d=1;d<=25;d+=8)f<<=1,f|=t>>>d+h&1;for(var d=1;d<=25;d+=8)f<<=1,f|=A>>>d+h&1}i[o+0]=r>>>0,i[o+1]=f>>>0};Rn.rip=function(A,t,i,o){for(var r=0,f=0,h=0;h<4;h++)for(var d=24;d>=0;d-=8)r<<=1,r|=t>>>d+h&1,r<<=1,r|=A>>>d+h&1;for(var h=4;h<8;h++)for(var d=24;d>=0;d-=8)f<<=1,f|=t>>>d+h&1,f<<=1,f|=A>>>d+h&1;i[o+0]=r>>>0,i[o+1]=f>>>0};Rn.pc1=function(A,t,i,o){for(var r=0,f=0,h=7;h>=5;h--){for(var d=0;d<=24;d+=8)r<<=1,r|=t>>d+h&1;for(var d=0;d<=24;d+=8)r<<=1,r|=A>>d+h&1}for(var d=0;d<=24;d+=8)r<<=1,r|=t>>d+h&1;for(var h=1;h<=3;h++){for(var d=0;d<=24;d+=8)f<<=1,f|=t>>d+h&1;for(var d=0;d<=24;d+=8)f<<=1,f|=A>>d+h&1}for(var d=0;d<=24;d+=8)f<<=1,f|=A>>d+h&1;i[o+0]=r>>>0,i[o+1]=f>>>0};Rn.r28shl=function(A,t){return A<>>28-t};var gd=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];Rn.pc2=function(A,t,i,o){for(var r=0,f=0,h=gd.length>>>1,d=0;d>>gd[d]&1;for(var d=h;d>>gd[d]&1;i[o+0]=r>>>0,i[o+1]=f>>>0};Rn.expand=function(A,t,i){var o=0,r=0;o=(A&1)<<5|A>>>27;for(var f=23;f>=15;f-=4)o<<=6,o|=A>>>f&63;for(var f=11;f>=3;f-=4)r|=A>>>f&63,r<<=6;r|=(A&31)<<1|A>>>31,t[i+0]=o>>>0,t[i+1]=r>>>0};var yx=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];Rn.substitute=function(A,t){for(var i=0,o=0;o<4;o++){var r=A>>>18-o*6&63,f=yx[o*64+r];i<<=4,i|=f}for(var o=0;o<4;o++){var r=t>>>18-o*6&63,f=yx[4*64+o*64+r];i<<=4,i|=f}return i>>>0};var wx=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];Rn.permute=function(A){for(var t=0,i=0;i>>wx[i]&1;return t>>>0};Rn.padSplit=function(A,t,i){for(var o=A.toString(2);o.length0;o--)t+=this._buffer(A,t),i+=this._flushBuffer(r,i);return t+=this._buffer(A,t),r};fo.prototype.final=function(A){var t;A&&(t=this.update(A));var i;return this.type==="encrypt"?i=this._finalEncrypt():i=this._finalDecrypt(),t?t.concat(i):i};fo.prototype._pad=function(A,t){if(t===0)return!1;for(;t>>1];i=pi.r28shl(i,f),o=pi.r28shl(o,f),pi.pc2(i,o,A.keys,r)}};Rs.prototype._update=function(A,t,i,o){var r=this._desState,f=pi.readUInt32BE(A,t),h=pi.readUInt32BE(A,t+4);pi.ip(f,h,r.tmp,0),f=r.tmp[0],h=r.tmp[1],this.type==="encrypt"?this._encrypt(r,f,h,r.tmp,0):this._decrypt(r,f,h,r.tmp,0),f=r.tmp[0],h=r.tmp[1],pi.writeUInt32BE(i,f,o),pi.writeUInt32BE(i,h,o+4)};Rs.prototype._pad=function(A,t){if(this.padding===!1)return!1;for(var i=A.length-t,o=t;o>>0,f=D}pi.rip(h,f,o,r)};Rs.prototype._decrypt=function(A,t,i,o,r){for(var f=i,h=t,d=A.keys.length-2;d>=0;d-=2){var p=A.keys[d],C=A.keys[d+1];pi.expand(f,A.tmp,0),p^=A.tmp[0],C^=A.tmp[1];var y=pi.substitute(p,C),w=pi.permute(y),D=f;f=(h^w)>>>0,h=D}pi.rip(f,h,o,r)};var g9={},NnA=Io,knA=Fe,HQ={};function RnA(e){NnA.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var A=0;A>o%8,e._prev=JnA(e._prev,t?h:d);return f}function JnA(e,A){var t=e.length,i=-1,o=mE.allocUnsafe(e.length);for(e=mE.concat([e,mE.from([A])]);++i>7;return o}l9.encrypt=function(e,A,t){for(var i=A.length,o=mE.allocUnsafe(i),r=-1;++r>>24]^f[C>>>16&255]^h[y>>>8&255]^d[w&255]^A[b++],v=r[C>>>24]^f[y>>>16&255]^h[w>>>8&255]^d[p&255]^A[b++],M=r[y>>>24]^f[w>>>16&255]^h[p>>>8&255]^d[C&255]^A[b++],R=r[w>>>24]^f[p>>>16&255]^h[C>>>8&255]^d[y&255]^A[b++],p=D,C=v,y=M,w=R;return D=(i[p>>>24]<<24|i[C>>>16&255]<<16|i[y>>>8&255]<<8|i[w&255])^A[b++],v=(i[C>>>24]<<24|i[y>>>16&255]<<16|i[w>>>8&255]<<8|i[p&255])^A[b++],M=(i[y>>>24]<<24|i[w>>>16&255]<<16|i[p>>>8&255]<<8|i[C&255])^A[b++],R=(i[w>>>24]<<24|i[p>>>16&255]<<16|i[C>>>8&255]<<8|i[y&255])^A[b++],D=D>>>0,v=v>>>0,M=M>>>0,R=R>>>0,[D,v,M,R]}var AoA=[0,1,2,4,8,16,32,64,128,27,54],ai=function(){for(var e=new Array(256),A=0;A<256;A++)A<128?e[A]=A<<1:e[A]=A<<1^283;for(var t=[],i=[],o=[[],[],[],[]],r=[[],[],[],[]],f=0,h=0,d=0;d<256;++d){var p=h^h<<1^h<<2^h<<3^h<<4;p=p>>>8^p&255^99,t[f]=p,i[p]=f;var C=e[f],y=e[C],w=e[y],D=e[p]*257^p*16843008;o[0][f]=D<<24|D>>>8,o[1][f]=D<<16|D>>>16,o[2][f]=D<<8|D>>>24,o[3][f]=D,D=w*16843009^y*65537^C*257^f*16843008,r[0][p]=D<<24|D>>>8,r[1][p]=D<<16|D>>>16,r[2][p]=D<<8|D>>>24,r[3][p]=D,f===0?f=h=1:(f=C^e[e[e[w^C]]],h^=e[e[h]])}return{SBOX:t,INV_SBOX:i,SUB_MIX:o,INV_SUB_MIX:r}}();function go(e){this._key=m3(e),this._reset()}go.blockSize=4*4;go.keySize=256/8;go.prototype.blockSize=go.blockSize;go.prototype.keySize=go.keySize;go.prototype._reset=function(){for(var e=this._key,A=e.length,t=A+6,i=(t+1)*4,o=[],r=0;r>>24,f=ai.SBOX[f>>>24]<<24|ai.SBOX[f>>>16&255]<<16|ai.SBOX[f>>>8&255]<<8|ai.SBOX[f&255],f^=AoA[r/A|0]<<24):A>6&&r%A===4&&(f=ai.SBOX[f>>>24]<<24|ai.SBOX[f>>>16&255]<<16|ai.SBOX[f>>>8&255]<<8|ai.SBOX[f&255]),o[r]=o[r-A]^f}for(var h=[],d=0;d>>24]]^ai.INV_SUB_MIX[1][ai.SBOX[C>>>16&255]]^ai.INV_SUB_MIX[2][ai.SBOX[C>>>8&255]]^ai.INV_SUB_MIX[3][ai.SBOX[C&255]]}this._nRounds=t,this._keySchedule=o,this._invKeySchedule=h};go.prototype.encryptBlockRaw=function(e){return e=m3(e),E9(e,this._keySchedule,ai.SUB_MIX,ai.SBOX,this._nRounds)};go.prototype.encryptBlock=function(e){var A=this.encryptBlockRaw(e),t=YQ.allocUnsafe(16);return t.writeUInt32BE(A[0],0),t.writeUInt32BE(A[1],4),t.writeUInt32BE(A[2],8),t.writeUInt32BE(A[3],12),t};go.prototype.decryptBlock=function(e){e=m3(e);var A=e[1];e[1]=e[3],e[3]=A;var t=E9(e,this._invKeySchedule,ai.INV_SUB_MIX,ai.INV_SBOX,this._nRounds),i=YQ.allocUnsafe(16);return i.writeUInt32BE(t[0],0),i.writeUInt32BE(t[3],4),i.writeUInt32BE(t[2],8),i.writeUInt32BE(t[1],12),i};go.prototype.scrub=function(){Om(this._keySchedule),Om(this._invKeySchedule),Om(this._key)};aB.AES=go;var Tc=Ge.Buffer,eoA=Tc.alloc(16,0);function toA(e){return[e.readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)]}function Q9(e){var A=Tc.allocUnsafe(16);return A.writeUInt32BE(e[0]>>>0,0),A.writeUInt32BE(e[1]>>>0,4),A.writeUInt32BE(e[2]>>>0,8),A.writeUInt32BE(e[3]>>>0,12),A}function gB(e){this.h=e,this.state=Tc.alloc(16,0),this.cache=Tc.allocUnsafe(0)}gB.prototype.ghash=function(e){for(var A=-1;++A0;t--)e[t]=e[t]>>>1|(e[t-1]&1)<<31;e[0]=e[0]>>>1,o&&(e[0]=e[0]^225<<24)}this.state=Q9(A)};gB.prototype.update=function(e){this.cache=Tc.concat([this.cache,e]);for(var A;this.cache.length>=16;)A=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(A)};gB.prototype.final=function(e,A){return this.cache.length&&this.ghash(Tc.concat([this.cache,eoA],16)),this.ghash(Q9([0,e,0,A])),this.state};var ioA=gB,roA=aB,_r=Ge.Buffer,p9=II,noA=Fe,y9=ioA,ooA=sB,soA=B9;function aoA(e,A){var t=0;e.length!==A.length&&t++;for(var i=Math.min(e.length,A.length),o=0;o0||i>0;){var d=new hoA;d.update(h),d.update(e),A&&d.update(A),h=d.digest();var p=0;if(o>0){var C=r.length-o;p=Math.min(o,h.length),h.copy(r,C,0,p),o-=p}if(p0){var y=f.length-i,w=Math.min(i,h.length-p);h.copy(f,y,p,p+w),i-=w}}return h.fill(0),{key:r,iv:f}}var Aw=coA,v9=D3,uoA=w9,Ga=Ge.Buffer,loA=m9,M9=II,CoA=aB,BoA=Aw,doA=Fe;function IB(e,A,t){M9.call(this),this._cache=new ew,this._cipher=new CoA.AES(A),this._prev=Ga.from(t),this._mode=e,this._autopadding=!0}doA(IB,M9);IB.prototype._update=function(e){this._cache.add(e);for(var A,t,i=[];A=this._cache.get();)t=this._mode.encrypt(this,A),i.push(t);return Ga.concat(i)};var EoA=Ga.alloc(16,16);IB.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(EoA))throw this._cipher.scrub(),new Error("data not multiple of block length")};IB.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this};function ew(){this.cache=Ga.allocUnsafe(0)}ew.prototype.add=function(e){this.cache=Ga.concat([this.cache,e])};ew.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null};ew.prototype.flush=function(){for(var e=16-this.cache.length,A=Ga.allocUnsafe(e),t=-1;++t16)return A=this.cache.slice(0,16),this.cache=this.cache.slice(16),A}else if(this.cache.length>=16)return A=this.cache.slice(0,16),this.cache=this.cache.slice(16),A;return null};tw.prototype.flush=function(){if(this.cache.length)return this.cache};function voA(e){var A=e[15];if(A<1||A>16)throw new Error("unable to decrypt data");for(var t=-1;++t0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g,I+=2,I>=26&&(I-=26,B--)}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)})(b3);var _9=b3.exports,S3={exports:{}};S3.exports;(function(e){(function(A,t){function i(Q,n){if(!Q)throw new Error(n||"Assertion failed")}function o(Q,n){Q.super_=n;var a=function(){};a.prototype=n.prototype,Q.prototype=new a,Q.prototype.constructor=Q}function r(Q,n,a){if(r.isBN(Q))return Q;this.negative=0,this.words=null,this.length=0,this.red=null,Q!==null&&((n==="le"||n==="be")&&(a=n,n=10),this._init(Q||0,n||10,a||"be"))}typeof A=="object"?A.exports=r:t.BN=r,r.BN=r,r.wordSize=26;var f;try{typeof window<"u"&&typeof window.Buffer<"u"?f=window.Buffer:f=Ht.Buffer}catch{}r.isBN=function(n){return n instanceof r?!0:n!==null&&typeof n=="object"&&n.constructor.wordSize===r.wordSize&&Array.isArray(n.words)},r.max=function(n,a){return n.cmp(a)>0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g,I+=2,I>=26&&(I-=26,B--)}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)})(S3);var KoA=S3.exports,Wm,Mx;function q9(){if(Mx)return Wm;Mx=1;var e=KoA,A=_3();function t(i){this.rand=i||new A.Rand}return Wm=t,t.create=function(o){return new t(o)},t.prototype._randbelow=function(o){var r=o.bitLength(),f=Math.ceil(r/8);do var h=new e(this.rand.generate(f));while(h.cmp(o)>=0);return h},t.prototype._randrange=function(o,r){var f=r.sub(o);return o.add(this._randbelow(f))},t.prototype.test=function(o,r,f){var h=o.bitLength(),d=e.mont(o),p=new e(1).toRed(d);r||(r=Math.max(1,h/48|0));for(var C=o.subn(1),y=0;!C.testn(y);y++);for(var w=o.shrn(y),D=C.toRed(d),v=!0;r>0;r--){var M=this._randrange(new e(2),C);f&&f(M);var R=M.toRed(d).redPow(w);if(!(R.cmp(p)===0||R.cmp(D)===0)){for(var b=1;b0;r--){var D=this._randrange(new e(2),p),v=o.gcd(D);if(v.cmpn(1)!==0)return v;var M=D.toRed(h).redPow(y);if(!(M.cmp(d)===0||M.cmp(w)===0)){for(var R=1;Rb;)G.ishrn(1);if(G.isEven()&&G.iadd(r),G.testn(1)||G.iadd(f),S.cmp(f)){if(!S.cmp(h))for(;G.mod(d).cmp(p);)G.iadd(y)}else for(;G.mod(t).cmp(C);)G.iadd(y);if(U=G.shrn(1),v(U)&&v(G)&&M(U)&&M(G)&&o.test(U)&&o.test(G))return G}}return Vm}const GoA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},FoA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},xoA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},LoA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},UoA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},_oA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},qoA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},HoA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},YoA={modp1:GoA,modp2:FoA,modp5:xoA,modp14:LoA,modp15:UoA,modp16:_oA,modp17:qoA,modp18:HoA};var Zm,Sx;function JoA(){if(Sx)return Zm;Sx=1;var e=_9,A=q9(),t=new A,i=new e(24),o=new e(11),r=new e(10),f=new e(3),h=new e(7),d=H9(),p=Uu;Zm=v;function C(R,b){return b=b||"utf8",Buffer.isBuffer(R)||(R=new Buffer(R,b)),this._pub=new e(R),this}function y(R,b){return b=b||"utf8",Buffer.isBuffer(R)||(R=new Buffer(R,b)),this._priv=new e(R),this}var w={};function D(R,b){var S=b.toString("hex"),G=[S,R.toString(16)].join("_");if(G in w)return w[G];var U=0;if(R.isEven()||!d.simpleSieve||!d.fermatTest(R)||!t.test(R))return U+=1,S==="02"||S==="05"?U+=8:U+=4,w[G]=U,U;t.test(R.shrn(1))||(U+=2);var P;switch(S){case"02":R.mod(i).cmp(o)&&(U+=8);break;case"05":P=R.mod(r),P.cmp(f)&&P.cmp(h)&&(U+=8);break;default:U+=4}return w[G]=U,U}function v(R,b,S){this.setGenerator(b),this.__prime=new e(R),this._prime=e.mont(this.__prime),this._primeLen=R.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,S?(this.setPublicKey=C,this.setPrivateKey=y):this._primeCode=8}Object.defineProperty(v.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=D(this.__prime,this.__gen)),this._primeCode}}),v.prototype.generateKeys=function(){return this._priv||(this._priv=new e(p(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},v.prototype.computeSecret=function(R){R=new e(R),R=R.toRed(this._prime);var b=R.redPow(this._priv).fromRed(),S=new Buffer(b.toArray()),G=this.getPrime();if(S.length"u"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?nS.exports={nextTick:PoA}:nS.exports=process;function PoA(e,A,t,i){if(typeof e!="function")throw new TypeError('"callback" argument must be a function');var o=arguments.length,r,f;switch(o){case 0:case 1:return process.nextTick(e);case 2:return process.nextTick(function(){e.call(null,A)});case 3:return process.nextTick(function(){e.call(null,A,t)});case 4:return process.nextTick(function(){e.call(null,A,t,i)});default:for(r=new Array(o-1),f=0;f"u"}Bi.isPrimitive=ssA;Bi.isBuffer=jt.Buffer.isBuffer;function rw(e){return Object.prototype.toString.call(e)}var zm={exports:{}},kx;function asA(){return kx||(kx=1,function(e){function A(r,f){if(!(r instanceof f))throw new TypeError("Cannot call a class as a function")}var t=N3.Buffer,i=Ht;function o(r,f,h){r.copy(f,h)}e.exports=function(){function r(){A(this,r),this.head=null,this.tail=null,this.length=0}return r.prototype.push=function(h){var d={data:h,next:null};this.length>0?this.tail.next=d:this.head=d,this.tail=d,++this.length},r.prototype.unshift=function(h){var d={data:h,next:this.head};this.length===0&&(this.tail=d),this.head=d,++this.length},r.prototype.shift=function(){if(this.length!==0){var h=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,h}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(h){if(this.length===0)return"";for(var d=this.head,p=""+d.data;d=d.next;)p+=h+d.data;return p},r.prototype.concat=function(h){if(this.length===0)return t.alloc(0);for(var d=t.allocUnsafe(h>>>0),p=this.head,C=0;p;)o(p.data,d,C),C+=p.data.length,p=p.next;return d},r}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var r=i.inspect({length:this.length});return this.constructor.name+" "+r})}(zm)),zm.exports}var Id=iw;function gsA(e,A){var t=this,i=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return i||o?(A?A(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,Id.nextTick(fd,this,e)):Id.nextTick(fd,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(r){!A&&r?t._writableState?t._writableState.errorEmitted||(t._writableState.errorEmitted=!0,Id.nextTick(fd,t,r)):Id.nextTick(fd,t,r):A&&A(r)}),this)}function IsA(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function fd(e,A){e.emit("error",A)}var J9={destroy:gsA,undestroy:IsA},$m,Rx;function T9(){if(Rx)return $m;Rx=1;var e=iw;$m=M;function A(B){var E=this;this.next=null,this.entry=null,this.finish=function(){c(E,B)}}var t=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:e.nextTick,i;M.WritableState=D;var o=Object.create(Bi);o.inherits=Fe;var r={deprecate:SJ()},f=Y9,h=N3.Buffer,d=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function p(B){return h.from(B)}function C(B){return h.isBuffer(B)||B instanceof d}var y=J9;o.inherits(M,f);function w(){}function D(B,E){i=i||Oc(),B=B||{};var u=E instanceof i;this.objectMode=!!B.objectMode,u&&(this.objectMode=this.objectMode||!!B.writableObjectMode);var s=B.highWaterMark,l=B.writableHighWaterMark,m=this.objectMode?16:16*1024;s||s===0?this.highWaterMark=s:u&&(l||l===0)?this.highWaterMark=l:this.highWaterMark=m,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var N=B.decodeStrings===!1;this.decodeStrings=!N,this.defaultEncoding=B.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(L){oA(E,L)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new A(this)}D.prototype.getBuffer=function(){for(var E=this.bufferedRequest,u=[];E;)u.push(E),E=E.next;return u},function(){try{Object.defineProperty(D.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var v;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(v=Function.prototype[Symbol.hasInstance],Object.defineProperty(M,Symbol.hasInstance,{value:function(B){return v.call(this,B)?!0:this!==M?!1:B&&B._writableState instanceof D}})):v=function(B){return B instanceof this};function M(B){if(i=i||Oc(),!v.call(M,this)&&!(this instanceof i))return new M(B);this._writableState=new D(B,this),this.writable=!0,B&&(typeof B.write=="function"&&(this._write=B.write),typeof B.writev=="function"&&(this._writev=B.writev),typeof B.destroy=="function"&&(this._destroy=B.destroy),typeof B.final=="function"&&(this._final=B.final)),f.call(this)}M.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function R(B,E){var u=new Error("write after end");B.emit("error",u),e.nextTick(E,u)}function b(B,E,u,s){var l=!0,m=!1;return u===null?m=new TypeError("May not write null values to stream"):typeof u!="string"&&u!==void 0&&!E.objectMode&&(m=new TypeError("Invalid non-string/buffer chunk")),m&&(B.emit("error",m),e.nextTick(s,m),l=!1),l}M.prototype.write=function(B,E,u){var s=this._writableState,l=!1,m=!s.objectMode&&C(B);return m&&!h.isBuffer(B)&&(B=p(B)),typeof E=="function"&&(u=E,E=null),m?E="buffer":E||(E=s.defaultEncoding),typeof u!="function"&&(u=w),s.ended?R(this,u):(m||b(this,s,B,u))&&(s.pendingcb++,l=G(this,s,m,B,E,u)),l},M.prototype.cork=function(){var B=this._writableState;B.corked++},M.prototype.uncork=function(){var B=this._writableState;B.corked&&(B.corked--,!B.writing&&!B.corked&&!B.bufferProcessing&&B.bufferedRequest&&X(this,B))},M.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+E);return this._writableState.defaultEncoding=E,this};function S(B,E,u){return!B.objectMode&&B.decodeStrings!==!1&&typeof E=="string"&&(E=h.from(E,u)),E}Object.defineProperty(M.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function G(B,E,u,s,l,m){if(!u){var N=S(E,s,l);s!==N&&(u=!0,l="buffer",s=N)}var L=E.objectMode?1:s.length;E.length+=L;var O=E.length>5===6?2:b>>4===14?3:b>>3===30?4:b>>6===2?-1:-2}function f(b,S,G){var U=S.length-1;if(U=0?(P>0&&(b.lastNeed=P-1),P):--U=0?(P>0&&(b.lastNeed=P-2),P):--U=0?(P>0&&(P===2?P=0:b.lastNeed=P-3),P):0))}function h(b,S,G){if((S[0]&192)!==128)return b.lastNeed=0,"�";if(b.lastNeed>1&&S.length>1){if((S[1]&192)!==128)return b.lastNeed=1,"�";if(b.lastNeed>2&&S.length>2&&(S[2]&192)!==128)return b.lastNeed=2,"�"}}function d(b){var S=this.lastTotal-this.lastNeed,G=h(this,b);if(G!==void 0)return G;if(this.lastNeed<=b.length)return b.copy(this.lastChar,S,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);b.copy(this.lastChar,S,0,b.length),this.lastNeed-=b.length}function p(b,S){var G=f(this,b,S);if(!this.lastNeed)return b.toString("utf8",S);this.lastTotal=G;var U=b.length-(G-this.lastNeed);return b.copy(this.lastChar,0,U),b.toString("utf8",S,U)}function C(b){var S=b&&b.length?this.write(b):"";return this.lastNeed?S+"�":S}function y(b,S){if((b.length-S)%2===0){var G=b.toString("utf16le",S);if(G){var U=G.charCodeAt(G.length-1);if(U>=55296&&U<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=b[b.length-2],this.lastChar[1]=b[b.length-1],G.slice(0,-1)}return G}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=b[b.length-1],b.toString("utf16le",S,b.length-1)}function w(b){var S=b&&b.length?this.write(b):"";if(this.lastNeed){var G=this.lastTotal-this.lastNeed;return S+this.lastChar.toString("utf16le",0,G)}return S}function D(b,S){var G=(b.length-S)%3;return G===0?b.toString("base64",S):(this.lastNeed=3-G,this.lastTotal=3,G===1?this.lastChar[0]=b[b.length-1]:(this.lastChar[0]=b[b.length-2],this.lastChar[1]=b[b.length-1]),b.toString("base64",S,b.length-G))}function v(b){var S=b&&b.length?this.write(b):"";return this.lastNeed?S+this.lastChar.toString("base64",0,3-this.lastNeed):S}function M(b){return b.toString(this.encoding)}function R(b){return b&&b.length?this.write(b):""}return Av}var ev,Lx;function P9(){if(Lx)return ev;Lx=1;var e=iw;ev=S;var A=joA,t;S.ReadableState=b,Zo.EventEmitter;var i=function(K,Y){return K.listeners(Y).length},o=Y9,r=N3.Buffer,f=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function h(K){return r.from(K)}function d(K){return r.isBuffer(K)||K instanceof f}var p=Object.create(Bi);p.inherits=Fe;var C=Ht,y=void 0;C&&C.debuglog?y=C.debuglog("stream"):y=function(){};var w=asA(),D=J9,v;p.inherits(S,o);var M=["error","close","destroy","pause","resume"];function R(K,Y,W){if(typeof K.prependListener=="function")return K.prependListener(Y,W);!K._events||!K._events[Y]?K.on(Y,W):A(K._events[Y])?K._events[Y].unshift(W):K._events[Y]=[W,K._events[Y]]}function b(K,Y){t=t||Oc(),K=K||{};var W=Y instanceof t;this.objectMode=!!K.objectMode,W&&(this.objectMode=this.objectMode||!!K.readableObjectMode);var $=K.highWaterMark,V=K.readableHighWaterMark,_=this.objectMode?16:16*1024;$||$===0?this.highWaterMark=$:W&&(V||V===0)?this.highWaterMark=V:this.highWaterMark=_,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new w,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=K.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,K.encoding&&(v||(v=xx().StringDecoder),this.decoder=new v(K.encoding),this.encoding=K.encoding)}function S(K){if(t=t||Oc(),!(this instanceof S))return new S(K);this._readableState=new b(K,this),this.readable=!0,K&&(typeof K.read=="function"&&(this._read=K.read),typeof K.destroy=="function"&&(this._destroy=K.destroy)),o.call(this)}Object.defineProperty(S.prototype,"destroyed",{get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(K){this._readableState&&(this._readableState.destroyed=K)}}),S.prototype.destroy=D.destroy,S.prototype._undestroy=D.undestroy,S.prototype._destroy=function(K,Y){this.push(null),Y(K)},S.prototype.push=function(K,Y){var W=this._readableState,$;return W.objectMode?$=!0:typeof K=="string"&&(Y=Y||W.defaultEncoding,Y!==W.encoding&&(K=r.from(K,Y),Y=""),$=!0),G(this,K,Y,!1,$)},S.prototype.unshift=function(K){return G(this,K,null,!0,!1)};function G(K,Y,W,$,V){var _=K._readableState;if(Y===null)_.reading=!1,X(K,_);else{var j;V||(j=P(_,Y)),j?K.emit("error",j):_.objectMode||Y&&Y.length>0?(typeof Y!="string"&&!_.objectMode&&Object.getPrototypeOf(Y)!==r.prototype&&(Y=h(Y)),$?_.endEmitted?K.emit("error",new Error("stream.unshift() after end event")):U(K,_,Y,!0):_.ended?K.emit("error",new Error("stream.push() after EOF")):(_.reading=!1,_.decoder&&!W?(Y=_.decoder.write(Y),_.objectMode||Y.length!==0?U(K,_,Y,!1):a(K,_)):U(K,_,Y,!1))):$||(_.reading=!1)}return z(_)}function U(K,Y,W,$){Y.flowing&&Y.length===0&&!Y.sync?(K.emit("data",W),K.read(0)):(Y.length+=Y.objectMode?1:W.length,$?Y.buffer.unshift(W):Y.buffer.push(W),Y.needReadable&&Q(K)),a(K,Y)}function P(K,Y){var W;return!d(Y)&&typeof Y!="string"&&Y!==void 0&&!K.objectMode&&(W=new TypeError("Invalid non-string/buffer chunk")),W}function z(K){return!K.ended&&(K.needReadable||K.length=oA?K=oA:(K--,K|=K>>>1,K|=K>>>2,K|=K>>>4,K|=K>>>8,K|=K>>>16,K++),K}function q(K,Y){return K<=0||Y.length===0&&Y.ended?0:Y.objectMode?1:K!==K?Y.flowing&&Y.length?Y.buffer.head.data.length:Y.length:(K>Y.highWaterMark&&(Y.highWaterMark=J(K)),K<=Y.length?K:Y.ended?Y.length:(Y.needReadable=!0,0))}S.prototype.read=function(K){y("read",K),K=parseInt(K,10);var Y=this._readableState,W=K;if(K!==0&&(Y.emittedReadable=!1),K===0&&Y.needReadable&&(Y.length>=Y.highWaterMark||Y.ended))return y("read: emitReadable",Y.length,Y.ended),Y.length===0&&Y.ended?L(this):Q(this),null;if(K=q(K,Y),K===0&&Y.ended)return Y.length===0&&L(this),null;var $=Y.needReadable;y("need readable",$),(Y.length===0||Y.length-K0?V=s(K,Y):V=null,V===null?(Y.needReadable=!0,K=0):Y.length-=K,Y.length===0&&(Y.ended||(Y.needReadable=!0),W!==K&&Y.ended&&L(this)),V!==null&&this.emit("data",V),V};function X(K,Y){if(!Y.ended){if(Y.decoder){var W=Y.decoder.end();W&&W.length&&(Y.buffer.push(W),Y.length+=Y.objectMode?1:W.length)}Y.ended=!0,Q(K)}}function Q(K){var Y=K._readableState;Y.needReadable=!1,Y.emittedReadable||(y("emitReadable",Y.flowing),Y.emittedReadable=!0,Y.sync?e.nextTick(n,K):n(K))}function n(K){y("emit readable"),K.emit("readable"),u(K)}function a(K,Y){Y.readingMore||(Y.readingMore=!0,e.nextTick(g,K,Y))}function g(K,Y){for(var W=Y.length;!Y.reading&&!Y.flowing&&!Y.ended&&Y.length1&&H($.pipes,K)!==-1)&&!aA&&(y("false write response, pause",$.awaitDrain),$.awaitDrain++,nA=!0),W.pause())}function xA(rA){y("onerror",rA),UA(),K.removeListener("error",xA),i(K,"error")===0&&K.emit("error",rA)}R(K,"error",xA);function gA(){K.removeListener("finish",IA),UA()}K.once("close",gA);function IA(){y("onfinish"),K.removeListener("close",gA),UA()}K.once("finish",IA);function UA(){y("unpipe"),W.unpipe(K)}return K.emit("pipe",W),$.flowing||(y("pipe resume"),W.resume()),K};function I(K){return function(){var Y=K._readableState;y("pipeOnDrain",Y.awaitDrain),Y.awaitDrain&&Y.awaitDrain--,Y.awaitDrain===0&&i(K,"data")&&(Y.flowing=!0,u(K))}}S.prototype.unpipe=function(K){var Y=this._readableState,W={hasUnpiped:!1};if(Y.pipesCount===0)return this;if(Y.pipesCount===1)return K&&K!==Y.pipes?this:(K||(K=Y.pipes),Y.pipes=null,Y.pipesCount=0,Y.flowing=!1,K&&K.emit("unpipe",this,W),this);if(!K){var $=Y.pipes,V=Y.pipesCount;Y.pipes=null,Y.pipesCount=0,Y.flowing=!1;for(var _=0;_=Y.length?(Y.decoder?W=Y.buffer.join(""):Y.buffer.length===1?W=Y.buffer.head.data:W=Y.buffer.concat(Y.length),Y.buffer.clear()):W=l(K,Y.buffer,Y.decoder),W}function l(K,Y,W){var $;return K_.length?_.length:K;if(j===_.length?V+=_:V+=_.slice(0,K),K-=j,K===0){j===_.length?(++$,W.next?Y.head=W.next:Y.head=Y.tail=null):(Y.head=W,W.data=_.slice(j));break}++$}return Y.length-=$,V}function N(K,Y){var W=r.allocUnsafe(K),$=Y.head,V=1;for($.data.copy(W),K-=$.data.length;$=$.next;){var _=$.data,j=K>_.length?_.length:K;if(_.copy(W,W.length-K,0,j),K-=j,K===0){j===_.length?(++V,$.next?Y.head=$.next:Y.head=Y.tail=null):(Y.head=$,$.data=_.slice(j));break}++V}return Y.length-=V,W}function L(K){var Y=K._readableState;if(Y.length>0)throw new Error('"endReadable()" called on non-empty stream');Y.endEmitted||(Y.ended=!0,e.nextTick(O,Y,K))}function O(K,Y){!K.endEmitted&&K.length===0&&(K.endEmitted=!0,Y.readable=!1,Y.emit("end"))}function H(K,Y){for(var W=0,$=K.length;W<$;W++)if(K[W]===Y)return W;return-1}return ev}var O9=Fa,nw=Oc(),j9=Object.create(Bi);j9.inherits=Fe;j9.inherits(Fa,nw);function hsA(e,A){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(!i)return this.emit("error",new Error("write callback called multiple times"));t.writechunk=null,t.writecb=null,A!=null&&this.push(A),i(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length0?g:I},r.min=function(g,I){return g.cmp(I)<0?g:I},r.prototype._init=function(g,I,c){if(typeof g=="number")return this._initNumber(g,I,c);if(typeof g=="object")return this._initArray(g,I,c);I==="hex"&&(I=16),i(I===(I|0)&&I>=2&&I<=36),g=g.toString().replace(/\s+/g,"");var B=0;g[0]==="-"&&(B++,this.negative=1),B=0;B-=3)u=g[B]|g[B-1]<<8|g[B-2]<<16,this.words[E]|=u<>>26-s&67108863,s+=24,s>=26&&(s-=26,E++);else if(c==="le")for(B=0,E=0;B>>26-s&67108863,s+=24,s>=26&&(s-=26,E++);return this._strip()};function h(a,g){var I=a.charCodeAt(g);if(I>=48&&I<=57)return I-48;if(I>=65&&I<=70)return I-55;if(I>=97&&I<=102)return I-87;i(!1,"Invalid character in "+a)}function d(a,g,I){var c=h(a,I);return I-1>=g&&(c|=h(a,I-1)<<4),c}r.prototype._parseHex=function(g,I,c){this.length=Math.ceil((g.length-I)/6),this.words=new Array(this.length);for(var B=0;B=I;B-=2)s=d(g,I,B)<=18?(E-=18,u+=1,this.words[u]|=s>>>26):E+=8;else{var l=g.length-I;for(B=l%2===0?I+1:I;B=18?(E-=18,u+=1,this.words[u]|=s>>>26):E+=8}this._strip()};function p(a,g,I,c){for(var B=0,E=0,u=Math.min(a.length,I),s=g;s=49?E=l-49+10:l>=17?E=l-17+10:E=l,i(l>=0&&E1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{r.prototype[Symbol.for("nodejs.util.inspect.custom")]=y}catch{r.prototype.inspect=y}else r.prototype.inspect=y;function y(){return(this.red?""}var w=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],D=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(g,I){g=g||10,I=I|0||1;var c;if(g===16||g==="hex"){c="";for(var B=0,E=0,u=0;u>>24-B&16777215,B+=2,B>=26&&(B-=26,u--),E!==0||u!==this.length-1?c=w[6-l.length]+l+c:c=l+c}for(E!==0&&(c=E.toString(16)+c);c.length%I!==0;)c="0"+c;return this.negative!==0&&(c="-"+c),c}if(g===(g|0)&&g>=2&&g<=36){var m=D[g],N=v[g];c="";var L=this.clone();for(L.negative=0;!L.isZero();){var O=L.modrn(N).toString(g);L=L.idivn(N),L.isZero()?c=O+c:c=w[m-O.length]+O+c}for(this.isZero()&&(c="0"+c);c.length%I!==0;)c="0"+c;return this.negative!==0&&(c="-"+c),c}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var g=this.words[0];return this.length===2?g+=this.words[1]*67108864:this.length===3&&this.words[2]===1?g+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-g:g},r.prototype.toJSON=function(){return this.toString(16,2)},f&&(r.prototype.toBuffer=function(g,I){return this.toArrayLike(f,g,I)}),r.prototype.toArray=function(g,I){return this.toArrayLike(Array,g,I)};var M=function(g,I){return g.allocUnsafe?g.allocUnsafe(I):new g(I)};r.prototype.toArrayLike=function(g,I,c){this._strip();var B=this.byteLength(),E=c||Math.max(1,B);i(B<=E,"byte array longer than desired length"),i(E>0,"Requested array length <= 0");var u=M(g,E),s=I==="le"?"LE":"BE";return this["_toArrayLike"+s](u,B),u},r.prototype._toArrayLikeLE=function(g,I){for(var c=0,B=0,E=0,u=0;E>8&255),c>16&255),u===6?(c>24&255),B=0,u=0):(B=s>>>24,u+=2)}if(c=0&&(g[c--]=s>>8&255),c>=0&&(g[c--]=s>>16&255),u===6?(c>=0&&(g[c--]=s>>24&255),B=0,u=0):(B=s>>>24,u+=2)}if(c>=0)for(g[c--]=B;c>=0;)g[c--]=0},Math.clz32?r.prototype._countBits=function(g){return 32-Math.clz32(g)}:r.prototype._countBits=function(g){var I=g,c=0;return I>=4096&&(c+=13,I>>>=13),I>=64&&(c+=7,I>>>=7),I>=8&&(c+=4,I>>>=4),I>=2&&(c+=2,I>>>=2),c+I},r.prototype._zeroBits=function(g){if(g===0)return 26;var I=g,c=0;return I&8191||(c+=13,I>>>=13),I&127||(c+=7,I>>>=7),I&15||(c+=4,I>>>=4),I&3||(c+=2,I>>>=2),I&1||c++,c},r.prototype.bitLength=function(){var g=this.words[this.length-1],I=this._countBits(g);return(this.length-1)*26+I};function R(a){for(var g=new Array(a.bitLength()),I=0;I>>B&1}return g}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var g=0,I=0;Ig.length?this.clone().ior(g):g.clone().ior(this)},r.prototype.uor=function(g){return this.length>g.length?this.clone().iuor(g):g.clone().iuor(this)},r.prototype.iuand=function(g){var I;this.length>g.length?I=g:I=this;for(var c=0;cg.length?this.clone().iand(g):g.clone().iand(this)},r.prototype.uand=function(g){return this.length>g.length?this.clone().iuand(g):g.clone().iuand(this)},r.prototype.iuxor=function(g){var I,c;this.length>g.length?(I=this,c=g):(I=g,c=this);for(var B=0;Bg.length?this.clone().ixor(g):g.clone().ixor(this)},r.prototype.uxor=function(g){return this.length>g.length?this.clone().iuxor(g):g.clone().iuxor(this)},r.prototype.inotn=function(g){i(typeof g=="number"&&g>=0);var I=Math.ceil(g/26)|0,c=g%26;this._expand(I),c>0&&I--;for(var B=0;B0&&(this.words[B]=~this.words[B]&67108863>>26-c),this._strip()},r.prototype.notn=function(g){return this.clone().inotn(g)},r.prototype.setn=function(g,I){i(typeof g=="number"&&g>=0);var c=g/26|0,B=g%26;return this._expand(c+1),I?this.words[c]=this.words[c]|1<g.length?(c=this,B=g):(c=g,B=this);for(var E=0,u=0;u>>26;for(;E!==0&&u>>26;if(this.length=c.length,E!==0)this.words[this.length]=E,this.length++;else if(c!==this)for(;ug.length?this.clone().iadd(g):g.clone().iadd(this)},r.prototype.isub=function(g){if(g.negative!==0){g.negative=0;var I=this.iadd(g);return g.negative=1,I._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(g),this.negative=1,this._normSign();var c=this.cmp(g);if(c===0)return this.negative=0,this.length=1,this.words[0]=0,this;var B,E;c>0?(B=this,E=g):(B=g,E=this);for(var u=0,s=0;s>26,this.words[s]=I&67108863;for(;u!==0&&s>26,this.words[s]=I&67108863;if(u===0&&s>>26,L=l&67108863,O=Math.min(m,g.length-1),H=Math.max(0,m-a.length+1);H<=O;H++){var K=m-H|0;B=a.words[K]|0,E=g.words[H]|0,u=B*E+L,N+=u/67108864|0,L=u&67108863}I.words[m]=L|0,l=N|0}return l!==0?I.words[m]=l|0:I.length--,I._strip()}var S=function(g,I,c){var B=g.words,E=I.words,u=c.words,s=0,l,m,N,L=B[0]|0,O=L&8191,H=L>>>13,K=B[1]|0,Y=K&8191,W=K>>>13,$=B[2]|0,V=$&8191,_=$>>>13,j=B[3]|0,sA=j&8191,iA=j>>>13,aA=B[4]|0,lA=aA&8191,nA=aA>>>13,tA=B[5]|0,xA=tA&8191,gA=tA>>>13,IA=B[6]|0,UA=IA&8191,rA=IA>>>13,hA=B[7]|0,OA=hA&8191,x=hA>>>13,k=B[8]|0,F=k&8191,T=k>>>13,Z=B[9]|0,fA=Z&8191,eA=Z>>>13,dA=E[0]|0,PA=dA&8191,cA=dA>>>13,QA=E[1]|0,YA=QA&8191,wA=QA>>>13,RA=E[2]|0,Ie=RA&8191,yA=RA>>>13,NA=E[3]|0,ne=NA&8191,pA=NA>>>13,MA=E[4]|0,uA=MA&8191,AA=MA>>>13,CA=E[5]|0,qA=CA&8191,BA=CA>>>13,bA=E[6]|0,oe=bA&8191,mA=bA>>>13,SA=E[7]|0,fe=SA&8191,vA=SA>>>13,KA=E[8]|0,ge=KA&8191,DA=KA>>>13,kA=E[9]|0,ee=kA&8191,XA=kA>>>13;c.negative=g.negative^I.negative,c.length=19,l=Math.imul(O,PA),m=Math.imul(O,cA),m=m+Math.imul(H,PA)|0,N=Math.imul(H,cA);var Qe=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,l=Math.imul(Y,PA),m=Math.imul(Y,cA),m=m+Math.imul(W,PA)|0,N=Math.imul(W,cA),l=l+Math.imul(O,YA)|0,m=m+Math.imul(O,wA)|0,m=m+Math.imul(H,YA)|0,N=N+Math.imul(H,wA)|0;var Ce=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,l=Math.imul(V,PA),m=Math.imul(V,cA),m=m+Math.imul(_,PA)|0,N=Math.imul(_,cA),l=l+Math.imul(Y,YA)|0,m=m+Math.imul(Y,wA)|0,m=m+Math.imul(W,YA)|0,N=N+Math.imul(W,wA)|0,l=l+Math.imul(O,Ie)|0,m=m+Math.imul(O,yA)|0,m=m+Math.imul(H,Ie)|0,N=N+Math.imul(H,yA)|0;var ye=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(ye>>>26)|0,ye&=67108863,l=Math.imul(sA,PA),m=Math.imul(sA,cA),m=m+Math.imul(iA,PA)|0,N=Math.imul(iA,cA),l=l+Math.imul(V,YA)|0,m=m+Math.imul(V,wA)|0,m=m+Math.imul(_,YA)|0,N=N+Math.imul(_,wA)|0,l=l+Math.imul(Y,Ie)|0,m=m+Math.imul(Y,yA)|0,m=m+Math.imul(W,Ie)|0,N=N+Math.imul(W,yA)|0,l=l+Math.imul(O,ne)|0,m=m+Math.imul(O,pA)|0,m=m+Math.imul(H,ne)|0,N=N+Math.imul(H,pA)|0;var we=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(we>>>26)|0,we&=67108863,l=Math.imul(lA,PA),m=Math.imul(lA,cA),m=m+Math.imul(nA,PA)|0,N=Math.imul(nA,cA),l=l+Math.imul(sA,YA)|0,m=m+Math.imul(sA,wA)|0,m=m+Math.imul(iA,YA)|0,N=N+Math.imul(iA,wA)|0,l=l+Math.imul(V,Ie)|0,m=m+Math.imul(V,yA)|0,m=m+Math.imul(_,Ie)|0,N=N+Math.imul(_,yA)|0,l=l+Math.imul(Y,ne)|0,m=m+Math.imul(Y,pA)|0,m=m+Math.imul(W,ne)|0,N=N+Math.imul(W,pA)|0,l=l+Math.imul(O,uA)|0,m=m+Math.imul(O,AA)|0,m=m+Math.imul(H,uA)|0,N=N+Math.imul(H,AA)|0;var De=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(De>>>26)|0,De&=67108863,l=Math.imul(xA,PA),m=Math.imul(xA,cA),m=m+Math.imul(gA,PA)|0,N=Math.imul(gA,cA),l=l+Math.imul(lA,YA)|0,m=m+Math.imul(lA,wA)|0,m=m+Math.imul(nA,YA)|0,N=N+Math.imul(nA,wA)|0,l=l+Math.imul(sA,Ie)|0,m=m+Math.imul(sA,yA)|0,m=m+Math.imul(iA,Ie)|0,N=N+Math.imul(iA,yA)|0,l=l+Math.imul(V,ne)|0,m=m+Math.imul(V,pA)|0,m=m+Math.imul(_,ne)|0,N=N+Math.imul(_,pA)|0,l=l+Math.imul(Y,uA)|0,m=m+Math.imul(Y,AA)|0,m=m+Math.imul(W,uA)|0,N=N+Math.imul(W,AA)|0,l=l+Math.imul(O,qA)|0,m=m+Math.imul(O,BA)|0,m=m+Math.imul(H,qA)|0,N=N+Math.imul(H,BA)|0;var me=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(me>>>26)|0,me&=67108863,l=Math.imul(UA,PA),m=Math.imul(UA,cA),m=m+Math.imul(rA,PA)|0,N=Math.imul(rA,cA),l=l+Math.imul(xA,YA)|0,m=m+Math.imul(xA,wA)|0,m=m+Math.imul(gA,YA)|0,N=N+Math.imul(gA,wA)|0,l=l+Math.imul(lA,Ie)|0,m=m+Math.imul(lA,yA)|0,m=m+Math.imul(nA,Ie)|0,N=N+Math.imul(nA,yA)|0,l=l+Math.imul(sA,ne)|0,m=m+Math.imul(sA,pA)|0,m=m+Math.imul(iA,ne)|0,N=N+Math.imul(iA,pA)|0,l=l+Math.imul(V,uA)|0,m=m+Math.imul(V,AA)|0,m=m+Math.imul(_,uA)|0,N=N+Math.imul(_,AA)|0,l=l+Math.imul(Y,qA)|0,m=m+Math.imul(Y,BA)|0,m=m+Math.imul(W,qA)|0,N=N+Math.imul(W,BA)|0,l=l+Math.imul(O,oe)|0,m=m+Math.imul(O,mA)|0,m=m+Math.imul(H,oe)|0,N=N+Math.imul(H,mA)|0;var EA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(EA>>>26)|0,EA&=67108863,l=Math.imul(OA,PA),m=Math.imul(OA,cA),m=m+Math.imul(x,PA)|0,N=Math.imul(x,cA),l=l+Math.imul(UA,YA)|0,m=m+Math.imul(UA,wA)|0,m=m+Math.imul(rA,YA)|0,N=N+Math.imul(rA,wA)|0,l=l+Math.imul(xA,Ie)|0,m=m+Math.imul(xA,yA)|0,m=m+Math.imul(gA,Ie)|0,N=N+Math.imul(gA,yA)|0,l=l+Math.imul(lA,ne)|0,m=m+Math.imul(lA,pA)|0,m=m+Math.imul(nA,ne)|0,N=N+Math.imul(nA,pA)|0,l=l+Math.imul(sA,uA)|0,m=m+Math.imul(sA,AA)|0,m=m+Math.imul(iA,uA)|0,N=N+Math.imul(iA,AA)|0,l=l+Math.imul(V,qA)|0,m=m+Math.imul(V,BA)|0,m=m+Math.imul(_,qA)|0,N=N+Math.imul(_,BA)|0,l=l+Math.imul(Y,oe)|0,m=m+Math.imul(Y,mA)|0,m=m+Math.imul(W,oe)|0,N=N+Math.imul(W,mA)|0,l=l+Math.imul(O,fe)|0,m=m+Math.imul(O,vA)|0,m=m+Math.imul(H,fe)|0,N=N+Math.imul(H,vA)|0;var GA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(GA>>>26)|0,GA&=67108863,l=Math.imul(F,PA),m=Math.imul(F,cA),m=m+Math.imul(T,PA)|0,N=Math.imul(T,cA),l=l+Math.imul(OA,YA)|0,m=m+Math.imul(OA,wA)|0,m=m+Math.imul(x,YA)|0,N=N+Math.imul(x,wA)|0,l=l+Math.imul(UA,Ie)|0,m=m+Math.imul(UA,yA)|0,m=m+Math.imul(rA,Ie)|0,N=N+Math.imul(rA,yA)|0,l=l+Math.imul(xA,ne)|0,m=m+Math.imul(xA,pA)|0,m=m+Math.imul(gA,ne)|0,N=N+Math.imul(gA,pA)|0,l=l+Math.imul(lA,uA)|0,m=m+Math.imul(lA,AA)|0,m=m+Math.imul(nA,uA)|0,N=N+Math.imul(nA,AA)|0,l=l+Math.imul(sA,qA)|0,m=m+Math.imul(sA,BA)|0,m=m+Math.imul(iA,qA)|0,N=N+Math.imul(iA,BA)|0,l=l+Math.imul(V,oe)|0,m=m+Math.imul(V,mA)|0,m=m+Math.imul(_,oe)|0,N=N+Math.imul(_,mA)|0,l=l+Math.imul(Y,fe)|0,m=m+Math.imul(Y,vA)|0,m=m+Math.imul(W,fe)|0,N=N+Math.imul(W,vA)|0,l=l+Math.imul(O,ge)|0,m=m+Math.imul(O,DA)|0,m=m+Math.imul(H,ge)|0,N=N+Math.imul(H,DA)|0;var LA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(LA>>>26)|0,LA&=67108863,l=Math.imul(fA,PA),m=Math.imul(fA,cA),m=m+Math.imul(eA,PA)|0,N=Math.imul(eA,cA),l=l+Math.imul(F,YA)|0,m=m+Math.imul(F,wA)|0,m=m+Math.imul(T,YA)|0,N=N+Math.imul(T,wA)|0,l=l+Math.imul(OA,Ie)|0,m=m+Math.imul(OA,yA)|0,m=m+Math.imul(x,Ie)|0,N=N+Math.imul(x,yA)|0,l=l+Math.imul(UA,ne)|0,m=m+Math.imul(UA,pA)|0,m=m+Math.imul(rA,ne)|0,N=N+Math.imul(rA,pA)|0,l=l+Math.imul(xA,uA)|0,m=m+Math.imul(xA,AA)|0,m=m+Math.imul(gA,uA)|0,N=N+Math.imul(gA,AA)|0,l=l+Math.imul(lA,qA)|0,m=m+Math.imul(lA,BA)|0,m=m+Math.imul(nA,qA)|0,N=N+Math.imul(nA,BA)|0,l=l+Math.imul(sA,oe)|0,m=m+Math.imul(sA,mA)|0,m=m+Math.imul(iA,oe)|0,N=N+Math.imul(iA,mA)|0,l=l+Math.imul(V,fe)|0,m=m+Math.imul(V,vA)|0,m=m+Math.imul(_,fe)|0,N=N+Math.imul(_,vA)|0,l=l+Math.imul(Y,ge)|0,m=m+Math.imul(Y,DA)|0,m=m+Math.imul(W,ge)|0,N=N+Math.imul(W,DA)|0,l=l+Math.imul(O,ee)|0,m=m+Math.imul(O,XA)|0,m=m+Math.imul(H,ee)|0,N=N+Math.imul(H,XA)|0;var HA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(HA>>>26)|0,HA&=67108863,l=Math.imul(fA,YA),m=Math.imul(fA,wA),m=m+Math.imul(eA,YA)|0,N=Math.imul(eA,wA),l=l+Math.imul(F,Ie)|0,m=m+Math.imul(F,yA)|0,m=m+Math.imul(T,Ie)|0,N=N+Math.imul(T,yA)|0,l=l+Math.imul(OA,ne)|0,m=m+Math.imul(OA,pA)|0,m=m+Math.imul(x,ne)|0,N=N+Math.imul(x,pA)|0,l=l+Math.imul(UA,uA)|0,m=m+Math.imul(UA,AA)|0,m=m+Math.imul(rA,uA)|0,N=N+Math.imul(rA,AA)|0,l=l+Math.imul(xA,qA)|0,m=m+Math.imul(xA,BA)|0,m=m+Math.imul(gA,qA)|0,N=N+Math.imul(gA,BA)|0,l=l+Math.imul(lA,oe)|0,m=m+Math.imul(lA,mA)|0,m=m+Math.imul(nA,oe)|0,N=N+Math.imul(nA,mA)|0,l=l+Math.imul(sA,fe)|0,m=m+Math.imul(sA,vA)|0,m=m+Math.imul(iA,fe)|0,N=N+Math.imul(iA,vA)|0,l=l+Math.imul(V,ge)|0,m=m+Math.imul(V,DA)|0,m=m+Math.imul(_,ge)|0,N=N+Math.imul(_,DA)|0,l=l+Math.imul(Y,ee)|0,m=m+Math.imul(Y,XA)|0,m=m+Math.imul(W,ee)|0,N=N+Math.imul(W,XA)|0;var JA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(JA>>>26)|0,JA&=67108863,l=Math.imul(fA,Ie),m=Math.imul(fA,yA),m=m+Math.imul(eA,Ie)|0,N=Math.imul(eA,yA),l=l+Math.imul(F,ne)|0,m=m+Math.imul(F,pA)|0,m=m+Math.imul(T,ne)|0,N=N+Math.imul(T,pA)|0,l=l+Math.imul(OA,uA)|0,m=m+Math.imul(OA,AA)|0,m=m+Math.imul(x,uA)|0,N=N+Math.imul(x,AA)|0,l=l+Math.imul(UA,qA)|0,m=m+Math.imul(UA,BA)|0,m=m+Math.imul(rA,qA)|0,N=N+Math.imul(rA,BA)|0,l=l+Math.imul(xA,oe)|0,m=m+Math.imul(xA,mA)|0,m=m+Math.imul(gA,oe)|0,N=N+Math.imul(gA,mA)|0,l=l+Math.imul(lA,fe)|0,m=m+Math.imul(lA,vA)|0,m=m+Math.imul(nA,fe)|0,N=N+Math.imul(nA,vA)|0,l=l+Math.imul(sA,ge)|0,m=m+Math.imul(sA,DA)|0,m=m+Math.imul(iA,ge)|0,N=N+Math.imul(iA,DA)|0,l=l+Math.imul(V,ee)|0,m=m+Math.imul(V,XA)|0,m=m+Math.imul(_,ee)|0,N=N+Math.imul(_,XA)|0;var VA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(VA>>>26)|0,VA&=67108863,l=Math.imul(fA,ne),m=Math.imul(fA,pA),m=m+Math.imul(eA,ne)|0,N=Math.imul(eA,pA),l=l+Math.imul(F,uA)|0,m=m+Math.imul(F,AA)|0,m=m+Math.imul(T,uA)|0,N=N+Math.imul(T,AA)|0,l=l+Math.imul(OA,qA)|0,m=m+Math.imul(OA,BA)|0,m=m+Math.imul(x,qA)|0,N=N+Math.imul(x,BA)|0,l=l+Math.imul(UA,oe)|0,m=m+Math.imul(UA,mA)|0,m=m+Math.imul(rA,oe)|0,N=N+Math.imul(rA,mA)|0,l=l+Math.imul(xA,fe)|0,m=m+Math.imul(xA,vA)|0,m=m+Math.imul(gA,fe)|0,N=N+Math.imul(gA,vA)|0,l=l+Math.imul(lA,ge)|0,m=m+Math.imul(lA,DA)|0,m=m+Math.imul(nA,ge)|0,N=N+Math.imul(nA,DA)|0,l=l+Math.imul(sA,ee)|0,m=m+Math.imul(sA,XA)|0,m=m+Math.imul(iA,ee)|0,N=N+Math.imul(iA,XA)|0;var zA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(zA>>>26)|0,zA&=67108863,l=Math.imul(fA,uA),m=Math.imul(fA,AA),m=m+Math.imul(eA,uA)|0,N=Math.imul(eA,AA),l=l+Math.imul(F,qA)|0,m=m+Math.imul(F,BA)|0,m=m+Math.imul(T,qA)|0,N=N+Math.imul(T,BA)|0,l=l+Math.imul(OA,oe)|0,m=m+Math.imul(OA,mA)|0,m=m+Math.imul(x,oe)|0,N=N+Math.imul(x,mA)|0,l=l+Math.imul(UA,fe)|0,m=m+Math.imul(UA,vA)|0,m=m+Math.imul(rA,fe)|0,N=N+Math.imul(rA,vA)|0,l=l+Math.imul(xA,ge)|0,m=m+Math.imul(xA,DA)|0,m=m+Math.imul(gA,ge)|0,N=N+Math.imul(gA,DA)|0,l=l+Math.imul(lA,ee)|0,m=m+Math.imul(lA,XA)|0,m=m+Math.imul(nA,ee)|0,N=N+Math.imul(nA,XA)|0;var ae=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(ae>>>26)|0,ae&=67108863,l=Math.imul(fA,qA),m=Math.imul(fA,BA),m=m+Math.imul(eA,qA)|0,N=Math.imul(eA,BA),l=l+Math.imul(F,oe)|0,m=m+Math.imul(F,mA)|0,m=m+Math.imul(T,oe)|0,N=N+Math.imul(T,mA)|0,l=l+Math.imul(OA,fe)|0,m=m+Math.imul(OA,vA)|0,m=m+Math.imul(x,fe)|0,N=N+Math.imul(x,vA)|0,l=l+Math.imul(UA,ge)|0,m=m+Math.imul(UA,DA)|0,m=m+Math.imul(rA,ge)|0,N=N+Math.imul(rA,DA)|0,l=l+Math.imul(xA,ee)|0,m=m+Math.imul(xA,XA)|0,m=m+Math.imul(gA,ee)|0,N=N+Math.imul(gA,XA)|0;var se=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(se>>>26)|0,se&=67108863,l=Math.imul(fA,oe),m=Math.imul(fA,mA),m=m+Math.imul(eA,oe)|0,N=Math.imul(eA,mA),l=l+Math.imul(F,fe)|0,m=m+Math.imul(F,vA)|0,m=m+Math.imul(T,fe)|0,N=N+Math.imul(T,vA)|0,l=l+Math.imul(OA,ge)|0,m=m+Math.imul(OA,DA)|0,m=m+Math.imul(x,ge)|0,N=N+Math.imul(x,DA)|0,l=l+Math.imul(UA,ee)|0,m=m+Math.imul(UA,XA)|0,m=m+Math.imul(rA,ee)|0,N=N+Math.imul(rA,XA)|0;var Be=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(Be>>>26)|0,Be&=67108863,l=Math.imul(fA,fe),m=Math.imul(fA,vA),m=m+Math.imul(eA,fe)|0,N=Math.imul(eA,vA),l=l+Math.imul(F,ge)|0,m=m+Math.imul(F,DA)|0,m=m+Math.imul(T,ge)|0,N=N+Math.imul(T,DA)|0,l=l+Math.imul(OA,ee)|0,m=m+Math.imul(OA,XA)|0,m=m+Math.imul(x,ee)|0,N=N+Math.imul(x,XA)|0;var de=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(de>>>26)|0,de&=67108863,l=Math.imul(fA,ge),m=Math.imul(fA,DA),m=m+Math.imul(eA,ge)|0,N=Math.imul(eA,DA),l=l+Math.imul(F,ee)|0,m=m+Math.imul(F,XA)|0,m=m+Math.imul(T,ee)|0,N=N+Math.imul(T,XA)|0;var si=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(si>>>26)|0,si&=67108863,l=Math.imul(fA,ee),m=Math.imul(fA,XA),m=m+Math.imul(eA,ee)|0,N=Math.imul(eA,XA);var Ai=(s+l|0)+((m&8191)<<13)|0;return s=(N+(m>>>13)|0)+(Ai>>>26)|0,Ai&=67108863,u[0]=Qe,u[1]=Ce,u[2]=ye,u[3]=we,u[4]=De,u[5]=me,u[6]=EA,u[7]=GA,u[8]=LA,u[9]=HA,u[10]=JA,u[11]=VA,u[12]=zA,u[13]=ae,u[14]=se,u[15]=Be,u[16]=de,u[17]=si,u[18]=Ai,s!==0&&(u[19]=s,c.length++),c};Math.imul||(S=b);function G(a,g,I){I.negative=g.negative^a.negative,I.length=a.length+g.length;for(var c=0,B=0,E=0;E>>26)|0,B+=u>>>26,u&=67108863}I.words[E]=s,c=u,u=B}return c!==0?I.words[E]=c:I.length--,I._strip()}function U(a,g,I){return G(a,g,I)}r.prototype.mulTo=function(g,I){var c,B=this.length+g.length;return this.length===10&&g.length===10?c=S(this,g,I):B<63?c=b(this,g,I):B<1024?c=G(this,g,I):c=U(this,g,I),c},r.prototype.mul=function(g){var I=new r(null);return I.words=new Array(this.length+g.length),this.mulTo(g,I)},r.prototype.mulf=function(g){var I=new r(null);return I.words=new Array(this.length+g.length),U(this,g,I)},r.prototype.imul=function(g){return this.clone().mulTo(g,this)},r.prototype.imuln=function(g){var I=g<0;I&&(g=-g),i(typeof g=="number"),i(g<67108864);for(var c=0,B=0;B>=26,c+=E/67108864|0,c+=u>>>26,this.words[B]=u&67108863}return c!==0&&(this.words[B]=c,this.length++),I?this.ineg():this},r.prototype.muln=function(g){return this.clone().imuln(g)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(g){var I=R(g);if(I.length===0)return new r(1);for(var c=this,B=0;B=0);var I=g%26,c=(g-I)/26,B=67108863>>>26-I<<26-I,E;if(I!==0){var u=0;for(E=0;E>>26-I}u&&(this.words[E]=u,this.length++)}if(c!==0){for(E=this.length-1;E>=0;E--)this.words[E+c]=this.words[E];for(E=0;E=0);var B;I?B=(I-I%26)/26:B=0;var E=g%26,u=Math.min((g-E)/26,this.length),s=67108863^67108863>>>E<u)for(this.length-=u,m=0;m=0&&(N!==0||m>=B);m--){var L=this.words[m]|0;this.words[m]=N<<26-E|L>>>E,N=L&s}return l&&N!==0&&(l.words[l.length++]=N),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},r.prototype.ishrn=function(g,I,c){return i(this.negative===0),this.iushrn(g,I,c)},r.prototype.shln=function(g){return this.clone().ishln(g)},r.prototype.ushln=function(g){return this.clone().iushln(g)},r.prototype.shrn=function(g){return this.clone().ishrn(g)},r.prototype.ushrn=function(g){return this.clone().iushrn(g)},r.prototype.testn=function(g){i(typeof g=="number"&&g>=0);var I=g%26,c=(g-I)/26,B=1<=0);var I=g%26,c=(g-I)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=c)return this;if(I!==0&&c++,this.length=Math.min(c,this.length),I!==0){var B=67108863^67108863>>>I<=67108864;I++)this.words[I]-=67108864,I===this.length-1?this.words[I+1]=1:this.words[I+1]++;return this.length=Math.max(this.length,I+1),this},r.prototype.isubn=function(g){if(i(typeof g=="number"),i(g<67108864),g<0)return this.iaddn(-g);if(this.negative!==0)return this.negative=0,this.iaddn(g),this.negative=1,this;if(this.words[0]-=g,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var I=0;I>26)-(l/67108864|0),this.words[E+c]=u&67108863}for(;E>26,this.words[E+c]=u&67108863;if(s===0)return this._strip();for(i(s===-1),s=0,E=0;E>26,this.words[E]=u&67108863;return this.negative=1,this._strip()},r.prototype._wordDiv=function(g,I){var c=this.length-g.length,B=this.clone(),E=g,u=E.words[E.length-1]|0,s=this._countBits(u);c=26-s,c!==0&&(E=E.ushln(c),B.iushln(c),u=E.words[E.length-1]|0);var l=B.length-E.length,m;if(I!=="mod"){m=new r(null),m.length=l+1,m.words=new Array(m.length);for(var N=0;N=0;O--){var H=(B.words[E.length+O]|0)*67108864+(B.words[E.length+O-1]|0);for(H=Math.min(H/u|0,67108863),B._ishlnsubmul(E,H,O);B.negative!==0;)H--,B.negative=0,B._ishlnsubmul(E,1,O),B.isZero()||(B.negative^=1);m&&(m.words[O]=H)}return m&&m._strip(),B._strip(),I!=="div"&&c!==0&&B.iushrn(c),{div:m||null,mod:B}},r.prototype.divmod=function(g,I,c){if(i(!g.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var B,E,u;return this.negative!==0&&g.negative===0?(u=this.neg().divmod(g,I),I!=="mod"&&(B=u.div.neg()),I!=="div"&&(E=u.mod.neg(),c&&E.negative!==0&&E.iadd(g)),{div:B,mod:E}):this.negative===0&&g.negative!==0?(u=this.divmod(g.neg(),I),I!=="mod"&&(B=u.div.neg()),{div:B,mod:u.mod}):this.negative&g.negative?(u=this.neg().divmod(g.neg(),I),I!=="div"&&(E=u.mod.neg(),c&&E.negative!==0&&E.isub(g)),{div:u.div,mod:E}):g.length>this.length||this.cmp(g)<0?{div:new r(0),mod:this}:g.length===1?I==="div"?{div:this.divn(g.words[0]),mod:null}:I==="mod"?{div:null,mod:new r(this.modrn(g.words[0]))}:{div:this.divn(g.words[0]),mod:new r(this.modrn(g.words[0]))}:this._wordDiv(g,I)},r.prototype.div=function(g){return this.divmod(g,"div",!1).div},r.prototype.mod=function(g){return this.divmod(g,"mod",!1).mod},r.prototype.umod=function(g){return this.divmod(g,"mod",!0).mod},r.prototype.divRound=function(g){var I=this.divmod(g);if(I.mod.isZero())return I.div;var c=I.div.negative!==0?I.mod.isub(g):I.mod,B=g.ushrn(1),E=g.andln(1),u=c.cmp(B);return u<0||E===1&&u===0?I.div:I.div.negative!==0?I.div.isubn(1):I.div.iaddn(1)},r.prototype.modrn=function(g){var I=g<0;I&&(g=-g),i(g<=67108863);for(var c=(1<<26)%g,B=0,E=this.length-1;E>=0;E--)B=(c*B+(this.words[E]|0))%g;return I?-B:B},r.prototype.modn=function(g){return this.modrn(g)},r.prototype.idivn=function(g){var I=g<0;I&&(g=-g),i(g<=67108863);for(var c=0,B=this.length-1;B>=0;B--){var E=(this.words[B]|0)+c*67108864;this.words[B]=E/g|0,c=E%g}return this._strip(),I?this.ineg():this},r.prototype.divn=function(g){return this.clone().idivn(g)},r.prototype.egcd=function(g){i(g.negative===0),i(!g.isZero());var I=this,c=g.clone();I.negative!==0?I=I.umod(g):I=I.clone();for(var B=new r(1),E=new r(0),u=new r(0),s=new r(1),l=0;I.isEven()&&c.isEven();)I.iushrn(1),c.iushrn(1),++l;for(var m=c.clone(),N=I.clone();!I.isZero();){for(var L=0,O=1;!(I.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(I.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(m),E.isub(N)),B.iushrn(1),E.iushrn(1);for(var H=0,K=1;!(c.words[0]&K)&&H<26;++H,K<<=1);if(H>0)for(c.iushrn(H);H-- >0;)(u.isOdd()||s.isOdd())&&(u.iadd(m),s.isub(N)),u.iushrn(1),s.iushrn(1);I.cmp(c)>=0?(I.isub(c),B.isub(u),E.isub(s)):(c.isub(I),u.isub(B),s.isub(E))}return{a:u,b:s,gcd:c.iushln(l)}},r.prototype._invmp=function(g){i(g.negative===0),i(!g.isZero());var I=this,c=g.clone();I.negative!==0?I=I.umod(g):I=I.clone();for(var B=new r(1),E=new r(0),u=c.clone();I.cmpn(1)>0&&c.cmpn(1)>0;){for(var s=0,l=1;!(I.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(I.iushrn(s);s-- >0;)B.isOdd()&&B.iadd(u),B.iushrn(1);for(var m=0,N=1;!(c.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(c.iushrn(m);m-- >0;)E.isOdd()&&E.iadd(u),E.iushrn(1);I.cmp(c)>=0?(I.isub(c),B.isub(E)):(c.isub(I),E.isub(B))}var L;return I.cmpn(1)===0?L=B:L=E,L.cmpn(0)<0&&L.iadd(g),L},r.prototype.gcd=function(g){if(this.isZero())return g.abs();if(g.isZero())return this.abs();var I=this.clone(),c=g.clone();I.negative=0,c.negative=0;for(var B=0;I.isEven()&&c.isEven();B++)I.iushrn(1),c.iushrn(1);do{for(;I.isEven();)I.iushrn(1);for(;c.isEven();)c.iushrn(1);var E=I.cmp(c);if(E<0){var u=I;I=c,c=u}else if(E===0||c.cmpn(1)===0)break;I.isub(c)}while(!0);return c.iushln(B)},r.prototype.invm=function(g){return this.egcd(g).a.umod(g)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(g){return this.words[0]&g},r.prototype.bincn=function(g){i(typeof g=="number");var I=g%26,c=(g-I)/26,B=1<>>26,s&=67108863,this.words[u]=s}return E!==0&&(this.words[u]=E,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(g){var I=g<0;if(this.negative!==0&&!I)return-1;if(this.negative===0&&I)return 1;this._strip();var c;if(this.length>1)c=1;else{I&&(g=-g),i(g<=67108863,"Number is too big");var B=this.words[0]|0;c=B===g?0:Bg.length)return 1;if(this.length=0;c--){var B=this.words[c]|0,E=g.words[c]|0;if(B!==E){BE&&(I=1);break}}return I},r.prototype.gtn=function(g){return this.cmpn(g)===1},r.prototype.gt=function(g){return this.cmp(g)===1},r.prototype.gten=function(g){return this.cmpn(g)>=0},r.prototype.gte=function(g){return this.cmp(g)>=0},r.prototype.ltn=function(g){return this.cmpn(g)===-1},r.prototype.lt=function(g){return this.cmp(g)===-1},r.prototype.lten=function(g){return this.cmpn(g)<=0},r.prototype.lte=function(g){return this.cmp(g)<=0},r.prototype.eqn=function(g){return this.cmpn(g)===0},r.prototype.eq=function(g){return this.cmp(g)===0},r.red=function(g){return new Q(g)},r.prototype.toRed=function(g){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),g.convertTo(this)._forceRed(g)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(g){return this.red=g,this},r.prototype.forceRed=function(g){return i(!this.red,"Already a number in reduction context"),this._forceRed(g)},r.prototype.redAdd=function(g){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,g)},r.prototype.redIAdd=function(g){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,g)},r.prototype.redSub=function(g){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,g)},r.prototype.redISub=function(g){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,g)},r.prototype.redShl=function(g){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,g)},r.prototype.redMul=function(g){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.mul(this,g)},r.prototype.redIMul=function(g){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.imul(this,g)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(g){return i(this.red&&!g.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,g)};var P={k256:null,p224:null,p192:null,p25519:null};function z(a,g){this.name=a,this.p=new r(g,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}z.prototype._tmp=function(){var g=new r(null);return g.words=new Array(Math.ceil(this.n/13)),g},z.prototype.ireduce=function(g){var I=g,c;do this.split(I,this.tmp),I=this.imulK(I),I=I.iadd(this.tmp),c=I.bitLength();while(c>this.n);var B=c0?I.isub(this.p):I.strip!==void 0?I.strip():I._strip(),I},z.prototype.split=function(g,I){g.iushrn(this.n,0,I)},z.prototype.imulK=function(g){return g.imul(this.k)};function oA(){z.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(oA,z),oA.prototype.split=function(g,I){for(var c=4194303,B=Math.min(g.length,9),E=0;E>>22,u=s}u>>>=22,g.words[E-10]=u,u===0&&g.length>10?g.length-=10:g.length-=9},oA.prototype.imulK=function(g){g.words[g.length]=0,g.words[g.length+1]=0,g.length+=2;for(var I=0,c=0;c>>=26,g.words[c]=E,I=B}return I!==0&&(g.words[g.length++]=I),g},r._prime=function(g){if(P[g])return P[g];var I;if(g==="k256")I=new oA;else if(g==="p224")I=new J;else if(g==="p192")I=new q;else if(g==="p25519")I=new X;else throw new Error("Unknown prime "+g);return P[g]=I,I};function Q(a){if(typeof a=="string"){var g=r._prime(a);this.m=g.p,this.prime=g}else i(a.gtn(1),"modulus must be greater than 1"),this.m=a,this.prime=null}Q.prototype._verify1=function(g){i(g.negative===0,"red works only with positives"),i(g.red,"red works only with red numbers")},Q.prototype._verify2=function(g,I){i((g.negative|I.negative)===0,"red works only with positives"),i(g.red&&g.red===I.red,"red works only with red numbers")},Q.prototype.imod=function(g){return this.prime?this.prime.ireduce(g)._forceRed(this):(C(g,g.umod(this.m)._forceRed(this)),g)},Q.prototype.neg=function(g){return g.isZero()?g.clone():this.m.sub(g)._forceRed(this)},Q.prototype.add=function(g,I){this._verify2(g,I);var c=g.add(I);return c.cmp(this.m)>=0&&c.isub(this.m),c._forceRed(this)},Q.prototype.iadd=function(g,I){this._verify2(g,I);var c=g.iadd(I);return c.cmp(this.m)>=0&&c.isub(this.m),c},Q.prototype.sub=function(g,I){this._verify2(g,I);var c=g.sub(I);return c.cmpn(0)<0&&c.iadd(this.m),c._forceRed(this)},Q.prototype.isub=function(g,I){this._verify2(g,I);var c=g.isub(I);return c.cmpn(0)<0&&c.iadd(this.m),c},Q.prototype.shl=function(g,I){return this._verify1(g),this.imod(g.ushln(I))},Q.prototype.imul=function(g,I){return this._verify2(g,I),this.imod(g.imul(I))},Q.prototype.mul=function(g,I){return this._verify2(g,I),this.imod(g.mul(I))},Q.prototype.isqr=function(g){return this.imul(g,g.clone())},Q.prototype.sqr=function(g){return this.mul(g,g)},Q.prototype.sqrt=function(g){if(g.isZero())return g.clone();var I=this.m.andln(3);if(i(I%2===1),I===3){var c=this.m.add(new r(1)).iushrn(2);return this.pow(g,c)}for(var B=this.m.subn(1),E=0;!B.isZero()&&B.andln(1)===0;)E++,B.iushrn(1);i(!B.isZero());var u=new r(1).toRed(this),s=u.redNeg(),l=this.m.subn(1).iushrn(1),m=this.m.bitLength();for(m=new r(2*m*m).toRed(this);this.pow(m,l).cmp(s)!==0;)m.redIAdd(s);for(var N=this.pow(m,B),L=this.pow(g,B.addn(1).iushrn(1)),O=this.pow(g,B),H=E;O.cmp(u)!==0;){for(var K=O,Y=0;K.cmp(u)!==0;Y++)K=K.redSqr();i(Y=0;E--){for(var N=I.words[E],L=m-1;L>=0;L--){var O=N>>L&1;if(u!==B[0]&&(u=this.sqr(u)),O===0&&s===0){l=0;continue}s<<=1,s|=O,l++,!(l!==c&&(E!==0||L!==0))&&(u=this.mul(u,B[s]),l=0,s=0)}m=26}return u},Q.prototype.convertTo=function(g){var I=g.umod(this.m);return I===g?I.clone():I},Q.prototype.convertFrom=function(g){var I=g.clone();return I.red=null,I},r.mont=function(g){return new n(g)};function n(a){Q.call(this,a),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(n,Q),n.prototype.convertTo=function(g){return this.imod(g.ushln(this.shift))},n.prototype.convertFrom=function(g){var I=this.imod(g.mul(this.rinv));return I.red=null,I},n.prototype.imul=function(g,I){if(g.isZero()||I.isZero())return g.words[0]=0,g.length=1,g;var c=g.imul(I),B=c.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),E=c.isub(B).iushrn(this.shift),u=E;return E.cmp(this.m)>=0?u=E.isub(this.m):E.cmpn(0)<0&&(u=E.iadd(this.m)),u._forceRed(this)},n.prototype.mul=function(g,I){if(g.isZero()||I.isZero())return new r(0)._forceRed(this);var c=g.mul(I),B=c.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),E=c.isub(B).iushrn(this.shift),u=E;return E.cmp(this.m)>=0?u=E.isub(this.m):E.cmpn(0)<0&&(u=E.iadd(this.m)),u._forceRed(this)},n.prototype.invm=function(g){var I=this.imod(g._invmp(this.m).mul(this.r2));return I._forceRed(this)}})(e,Qr)})(k3);var xa=k3.exports;const _A=$i(xa);var Cc=xa,CsA=Uu,BsA=Ge.Buffer;function Z9(e){var A=e.modulus.byteLength(),t;do t=new Cc(CsA(A));while(t.cmp(e.modulus)>=0||!t.umod(e.prime1)||!t.umod(e.prime2));return t}function dsA(e){var A=Z9(e),t=A.toRed(Cc.mont(e.modulus)).redPow(new Cc(e.publicExponent)).fromRed();return{blinder:t,unblinder:A.invm(e.modulus)}}function z9(e,A){var t=dsA(A),i=A.modulus.byteLength(),o=new Cc(e).mul(t.blinder).umod(A.modulus),r=o.toRed(Cc.mont(A.prime1)),f=o.toRed(Cc.mont(A.prime2)),h=A.coefficient,d=A.prime1,p=A.prime2,C=r.redPow(A.exponent1).fromRed(),y=f.redPow(A.exponent2).fromRed(),w=C.isub(y).imul(h).umod(d).imul(p);return y.iadd(w).imul(t.unblinder).umod(A.modulus).toArrayLike(BsA,"be",i)}z9.getr=Z9;var R3=z9,$o={},tv={},K3={exports:{}};K3.exports;(function(e){(function(A,t){function i(Q,n){if(!Q)throw new Error(n||"Assertion failed")}function o(Q,n){Q.super_=n;var a=function(){};a.prototype=n.prototype,Q.prototype=new a,Q.prototype.constructor=Q}function r(Q,n,a){if(r.isBN(Q))return Q;this.negative=0,this.words=null,this.length=0,this.red=null,Q!==null&&((n==="le"||n==="be")&&(a=n,n=10),this._init(Q||0,n||10,a||"be"))}typeof A=="object"?A.exports=r:t.BN=r,r.BN=r,r.wordSize=26;var f;try{typeof window<"u"&&typeof window.Buffer<"u"?f=window.Buffer:f=Ht.Buffer}catch{}r.isBN=function(n){return n instanceof r?!0:n!==null&&typeof n=="object"&&n.constructor.wordSize===r.wordSize&&Array.isArray(n.words)},r.max=function(n,a){return n.cmp(a)>0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g,I+=2,I>=26&&(I-=26,B--)}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)})(K3);var EsA=K3.exports,iv={},_x;function QsA(){return _x||(_x=1,function(e){var A=hB(),t=Fe,i=e;i.define=function(f,h){return new o(f,h)};function o(r,f){this.name=r,this.body=f,this.decoders={},this.encoders={}}o.prototype._createNamed=function(f){var h;try{h=Ht.runInThisContext("(function "+this.name+`(entity) { + this._initNamed(entity); +})`)}catch{h=function(p){this._initNamed(p)}}return t(h,f),h.prototype._initNamed=function(p){f.call(this,p)},new h(this)},o.prototype._getDecoder=function(f){return f=f||"der",this.decoders.hasOwnProperty(f)||(this.decoders[f]=this._createNamed(A.decoders[f])),this.decoders[f]},o.prototype.decode=function(f,h,d){return this._getDecoder(h).decode(f,d)},o.prototype._getEncoder=function(f){return f=f||"der",this.encoders.hasOwnProperty(f)||(this.encoders[f]=this._createNamed(A.encoders[f])),this.encoders[f]},o.prototype.encode=function(f,h,d){return this._getEncoder(h).encode(f,d)}}(iv)),iv}var rv={},$9={},psA=Fe;function ho(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}$9.Reporter=ho;ho.prototype.isError=function(A){return A instanceof jc};ho.prototype.save=function(){var A=this._reporterState;return{obj:A.obj,pathLen:A.path.length}};ho.prototype.restore=function(A){var t=this._reporterState;t.obj=A.obj,t.path=t.path.slice(0,A.pathLen)};ho.prototype.enterKey=function(A){return this._reporterState.path.push(A)};ho.prototype.exitKey=function(A){var t=this._reporterState;t.path=t.path.slice(0,A-1)};ho.prototype.leaveKey=function(A,t,i){var o=this._reporterState;this.exitKey(A),o.obj!==null&&(o.obj[t]=i)};ho.prototype.path=function(){return this._reporterState.path.join("/")};ho.prototype.enterObject=function(){var A=this._reporterState,t=A.obj;return A.obj={},t};ho.prototype.leaveObject=function(A){var t=this._reporterState,i=t.obj;return t.obj=A,i};ho.prototype.error=function(A){var t,i=this._reporterState,o=A instanceof jc;if(o?t=A:t=new jc(i.path.map(function(r){return"["+JSON.stringify(r)+"]"}).join(""),A.message||A,A.stack),!i.options.partial)throw t;return o||i.errors.push(t),t};ho.prototype.wrapResult=function(A){var t=this._reporterState;return t.options.partial?{result:this.isError(A)?null:A,errors:t.errors}:A};function jc(e,A){this.path=e,this.rethrow(A)}psA(jc,Error);jc.prototype.rethrow=function(A){if(this.message=A+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,jc),!this.stack)try{throw new Error(this.message)}catch(t){this.stack=t.stack}return this};var cd={},qx;function Hx(){if(qx)return cd;qx=1;var e=Fe,A=S0().Reporter,t=jt.Buffer;function i(r,f){if(A.call(this,f),!t.isBuffer(r)){this.error("Input not Buffer");return}this.base=r,this.offset=0,this.length=r.length}e(i,A),cd.DecoderBuffer=i,i.prototype.save=function(){return{offset:this.offset,reporter:A.prototype.save.call(this)}},i.prototype.restore=function(f){var h=new i(this.base);return h.offset=f.offset,h.length=this.offset,this.offset=f.offset,A.prototype.restore.call(this,f.reporter),h},i.prototype.isEmpty=function(){return this.offset===this.length},i.prototype.readUInt8=function(f){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(f||"DecoderBuffer overrun")},i.prototype.skip=function(f,h){if(!(this.offset+f<=this.length))return this.error(h||"DecoderBuffer overrun");var d=new i(this.base);return d._reporterState=this._reporterState,d.offset=this.offset,d.length=this.offset+f,this.offset+=f,d},i.prototype.raw=function(f){return this.base.slice(f?f.offset:this.offset,this.length)};function o(r,f){if(Array.isArray(r))this.length=0,this.value=r.map(function(h){return h instanceof o||(h=new o(h,f)),this.length+=h.length,h},this);else if(typeof r=="number"){if(!(0<=r&&r<=255))return f.error("non-byte EncoderBuffer value");this.value=r,this.length=1}else if(typeof r=="string")this.value=r,this.length=t.byteLength(r);else if(t.isBuffer(r))this.value=r,this.length=r.length;else return f.error("Unsupported type: "+typeof r)}return cd.EncoderBuffer=o,o.prototype.join=function(f,h){return f||(f=new t(this.length)),h||(h=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(d){d.join(f,h),h+=d.length}):(typeof this.value=="number"?f[h]=this.value:typeof this.value=="string"?f.write(this.value,h):t.isBuffer(this.value)&&this.value.copy(f,h),h+=this.length)),f},cd}var nv,Yx;function ysA(){if(Yx)return nv;Yx=1;var e=S0().Reporter,A=S0().EncoderBuffer,t=S0().DecoderBuffer,i=Io,o=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],r=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(o),f=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function h(p,C){var y={};this._baseState=y,y.enc=p,y.parent=C||null,y.children=null,y.tag=null,y.args=null,y.reverseArgs=null,y.choice=null,y.optional=!1,y.any=!1,y.obj=!1,y.use=null,y.useDecoder=null,y.key=null,y.default=null,y.explicit=null,y.implicit=null,y.contains=null,y.parent||(y.children=[],this._wrap())}nv=h;var d=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];return h.prototype.clone=function(){var C=this._baseState,y={};d.forEach(function(D){y[D]=C[D]});var w=new this.constructor(y.parent);return w._baseState=y,w},h.prototype._wrap=function(){var C=this._baseState;r.forEach(function(y){this[y]=function(){var D=new this.constructor(this);return C.children.push(D),D[y].apply(D,arguments)}},this)},h.prototype._init=function(C){var y=this._baseState;i(y.parent===null),C.call(this),y.children=y.children.filter(function(w){return w._baseState.parent===this},this),i.equal(y.children.length,1,"Root node can have only one child")},h.prototype._useArgs=function(C){var y=this._baseState,w=C.filter(function(D){return D instanceof this.constructor},this);C=C.filter(function(D){return!(D instanceof this.constructor)},this),w.length!==0&&(i(y.children===null),y.children=w,w.forEach(function(D){D._baseState.parent=this},this)),C.length!==0&&(i(y.args===null),y.args=C,y.reverseArgs=C.map(function(D){if(typeof D!="object"||D.constructor!==Object)return D;var v={};return Object.keys(D).forEach(function(M){M==(M|0)&&(M|=0);var R=D[M];v[R]=M}),v}))},f.forEach(function(p){h.prototype[p]=function(){var y=this._baseState;throw new Error(p+" not implemented for encoding: "+y.enc)}}),o.forEach(function(p){h.prototype[p]=function(){var y=this._baseState,w=Array.prototype.slice.call(arguments);return i(y.tag===null),y.tag=p,this._useArgs(w),this}}),h.prototype.use=function(C){i(C);var y=this._baseState;return i(y.use===null),y.use=C,this},h.prototype.optional=function(){var C=this._baseState;return C.optional=!0,this},h.prototype.def=function(C){var y=this._baseState;return i(y.default===null),y.default=C,y.optional=!0,this},h.prototype.explicit=function(C){var y=this._baseState;return i(y.explicit===null&&y.implicit===null),y.explicit=C,this},h.prototype.implicit=function(C){var y=this._baseState;return i(y.explicit===null&&y.implicit===null),y.implicit=C,this},h.prototype.obj=function(){var C=this._baseState,y=Array.prototype.slice.call(arguments);return C.obj=!0,y.length!==0&&this._useArgs(y),this},h.prototype.key=function(C){var y=this._baseState;return i(y.key===null),y.key=C,this},h.prototype.any=function(){var C=this._baseState;return C.any=!0,this},h.prototype.choice=function(C){var y=this._baseState;return i(y.choice===null),y.choice=C,this._useArgs(Object.keys(C).map(function(w){return C[w]})),this},h.prototype.contains=function(C){var y=this._baseState;return i(y.use===null),y.contains=C,this},h.prototype._decode=function(C,y){var w=this._baseState;if(w.parent===null)return C.wrapResult(w.children[0]._decode(C,y));var D=w.default,v=!0,M=null;if(w.key!==null&&(M=C.enterKey(w.key)),w.optional){var R=null;if(w.explicit!==null?R=w.explicit:w.implicit!==null?R=w.implicit:w.tag!==null&&(R=w.tag),R===null&&!w.any){var b=C.save();try{w.choice===null?this._decodeGeneric(w.tag,C,y):this._decodeChoice(C,y),v=!0}catch{v=!1}C.restore(b)}else if(v=this._peekTag(C,R,w.any),C.isError(v))return v}var S;if(w.obj&&v&&(S=C.enterObject()),v){if(w.explicit!==null){var G=this._decodeTag(C,w.explicit);if(C.isError(G))return G;C=G}var U=C.offset;if(w.use===null&&w.choice===null){if(w.any)var b=C.save();var P=this._decodeTag(C,w.implicit!==null?w.implicit:w.tag,w.any);if(C.isError(P))return P;w.any?D=C.raw(b):C=P}if(y&&y.track&&w.tag!==null&&y.track(C.path(),U,C.length,"tagged"),y&&y.track&&w.tag!==null&&y.track(C.path(),C.offset,C.length,"content"),w.any?D=D:w.choice===null?D=this._decodeGeneric(w.tag,C,y):D=this._decodeChoice(C,y),C.isError(D))return D;if(!w.any&&w.choice===null&&w.children!==null&&w.children.forEach(function(J){J._decode(C,y)}),w.contains&&(w.tag==="octstr"||w.tag==="bitstr")){var z=new t(D);D=this._getUse(w.contains,C._reporterState.obj)._decode(z,y)}}return w.obj&&v&&(D=C.leaveObject(S)),w.key!==null&&(D!==null||v===!0)?C.leaveKey(M,w.key,D):M!==null&&C.exitKey(M),D},h.prototype._decodeGeneric=function(C,y,w){var D=this._baseState;return C==="seq"||C==="set"?null:C==="seqof"||C==="setof"?this._decodeList(y,C,D.args[0],w):/str$/.test(C)?this._decodeStr(y,C,w):C==="objid"&&D.args?this._decodeObjid(y,D.args[0],D.args[1],w):C==="objid"?this._decodeObjid(y,null,null,w):C==="gentime"||C==="utctime"?this._decodeTime(y,C,w):C==="null_"?this._decodeNull(y,w):C==="bool"?this._decodeBool(y,w):C==="objDesc"?this._decodeStr(y,C,w):C==="int"||C==="enum"?this._decodeInt(y,D.args&&D.args[0],w):D.use!==null?this._getUse(D.use,y._reporterState.obj)._decode(y,w):y.error("unknown tag: "+C)},h.prototype._getUse=function(C,y){var w=this._baseState;return w.useDecoder=this._use(C,y),i(w.useDecoder._baseState.parent===null),w.useDecoder=w.useDecoder._baseState.children[0],w.implicit!==w.useDecoder._baseState.implicit&&(w.useDecoder=w.useDecoder.clone(),w.useDecoder._baseState.implicit=w.implicit),w.useDecoder},h.prototype._decodeChoice=function(C,y){var w=this._baseState,D=null,v=!1;return Object.keys(w.choice).some(function(M){var R=C.save(),b=w.choice[M];try{var S=b._decode(C,y);if(C.isError(S))return!1;D={type:M,value:S},v=!0}catch{return C.restore(R),!1}return!0},this),v?D:C.error("Choice not matched")},h.prototype._createEncoderBuffer=function(C){return new A(C,this.reporter)},h.prototype._encode=function(C,y,w){var D=this._baseState;if(!(D.default!==null&&D.default===C)){var v=this._encodeValue(C,y,w);if(v!==void 0&&!this._skipDefault(v,y,w))return v}},h.prototype._encodeValue=function(C,y,w){var D=this._baseState;if(D.parent===null)return D.children[0]._encode(C,y||new e);var b=null;if(this.reporter=y,D.optional&&C===void 0)if(D.default!==null)C=D.default;else return;var v=null,M=!1;if(D.any)b=this._createEncoderBuffer(C);else if(D.choice)b=this._encodeChoice(C,y);else if(D.contains)v=this._getUse(D.contains,w)._encode(C,y),M=!0;else if(D.children)v=D.children.map(function(U){if(U._baseState.tag==="null_")return U._encode(null,y,C);if(U._baseState.key===null)return y.error("Child should have a key");var P=y.enterKey(U._baseState.key);if(typeof C!="object")return y.error("Child expected, but input is not object");var z=U._encode(C[U._baseState.key],y,C);return y.leaveKey(P),z},this).filter(function(U){return U}),v=this._createEncoderBuffer(v);else if(D.tag==="seqof"||D.tag==="setof"){if(!(D.args&&D.args.length===1))return y.error("Too many args for : "+D.tag);if(!Array.isArray(C))return y.error("seqof/setof, but data is not Array");var R=this.clone();R._baseState.implicit=null,v=this._createEncoderBuffer(C.map(function(U){var P=this._baseState;return this._getUse(P.args[0],C)._encode(U,y)},R))}else D.use!==null?b=this._getUse(D.use,w)._encode(C,y):(v=this._encodePrimitive(D.tag,C),M=!0);var b;if(!D.any&&D.choice===null){var S=D.implicit!==null?D.implicit:D.tag,G=D.implicit===null?"universal":"context";S===null?D.use===null&&y.error("Tag could be omitted only for .use()"):D.use===null&&(b=this._encodeComposite(S,M,G,v))}return D.explicit!==null&&(b=this._encodeComposite(D.explicit,!1,"context",b)),b},h.prototype._encodeChoice=function(C,y){var w=this._baseState,D=w.choice[C.type];return D||i(!1,C.type+" not found in "+JSON.stringify(Object.keys(w.choice))),D._encode(C.value,y)},h.prototype._encodePrimitive=function(C,y){var w=this._baseState;if(/str$/.test(C))return this._encodeStr(y,C);if(C==="objid"&&w.args)return this._encodeObjid(y,w.reverseArgs[0],w.args[1]);if(C==="objid")return this._encodeObjid(y,null,null);if(C==="gentime"||C==="utctime")return this._encodeTime(y,C);if(C==="null_")return this._encodeNull();if(C==="int"||C==="enum")return this._encodeInt(y,w.args&&w.reverseArgs[0]);if(C==="bool")return this._encodeBool(y);if(C==="objDesc")return this._encodeStr(y,C);throw new Error("Unsupported tag: "+C)},h.prototype._isNumstr=function(C){return/^[0-9 ]*$/.test(C)},h.prototype._isPrintstr=function(C){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(C)},nv}var Jx;function S0(){return Jx||(Jx=1,function(e){var A=e;A.Reporter=$9.Reporter,A.DecoderBuffer=Hx().DecoderBuffer,A.EncoderBuffer=Hx().EncoderBuffer,A.Node=ysA()}(rv)),rv}var ov={},sv={},Tx;function wsA(){return Tx||(Tx=1,function(e){var A=X9();e.tagClass={0:"universal",1:"application",2:"context",3:"private"},e.tagClassByName=A._reverse(e.tagClass),e.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},e.tagByName=A._reverse(e.tag)}(sv)),sv}var Px;function X9(){return Px||(Px=1,function(e){var A=e;A._reverse=function(i){var o={};return Object.keys(i).forEach(function(r){(r|0)==r&&(r=r|0);var f=i[r];o[f]=r}),o},A.der=wsA()}(ov)),ov}var av={},gv,Ox;function AT(){if(Ox)return gv;Ox=1;var e=Fe,A=hB(),t=A.base,i=A.bignum,o=A.constants.der;function r(p){this.enc="der",this.name=p.name,this.entity=p,this.tree=new f,this.tree._init(p.body)}gv=r,r.prototype.decode=function(C,y){return C instanceof t.DecoderBuffer||(C=new t.DecoderBuffer(C,y)),this.tree._decode(C,y)};function f(p){t.Node.call(this,"der",p)}e(f,t.Node),f.prototype._peekTag=function(C,y,w){if(C.isEmpty())return!1;var D=C.save(),v=h(C,'Failed to peek tag: "'+y+'"');return C.isError(v)?v:(C.restore(D),v.tag===y||v.tagStr===y||v.tagStr+"of"===y||w)},f.prototype._decodeTag=function(C,y,w){var D=h(C,'Failed to decode tag of "'+y+'"');if(C.isError(D))return D;var v=d(C,D.primitive,'Failed to get length of "'+y+'"');if(C.isError(v))return v;if(!w&&D.tag!==y&&D.tagStr!==y&&D.tagStr+"of"!==y)return C.error('Failed to match tag: "'+y+'"');if(D.primitive||v!==null)return C.skip(v,'Failed to match body of: "'+y+'"');var M=C.save(),R=this._skipUntilEnd(C,'Failed to skip indefinite length body: "'+this.tag+'"');return C.isError(R)?R:(v=C.offset-M.offset,C.restore(M),C.skip(v,'Failed to match body of: "'+y+'"'))},f.prototype._skipUntilEnd=function(C,y){for(;;){var w=h(C,y);if(C.isError(w))return w;var D=d(C,w.primitive,y);if(C.isError(D))return D;var v;if(w.primitive||D!==null?v=C.skip(D):v=this._skipUntilEnd(C,y),C.isError(v))return v;if(w.tagStr==="end")break}},f.prototype._decodeList=function(C,y,w,D){for(var v=[];!C.isEmpty();){var M=this._peekTag(C,"end");if(C.isError(M))return M;var R=w.decode(C,"der",D);if(C.isError(R)&&M)break;v.push(R)}return v},f.prototype._decodeStr=function(C,y){if(y==="bitstr"){var w=C.readUInt8();return C.isError(w)?w:{unused:w,data:C.raw()}}else if(y==="bmpstr"){var D=C.raw();if(D.length%2===1)return C.error("Decoding of string type: bmpstr length mismatch");for(var v="",M=0;M>6],D=(y&32)===0;if((y&31)===31){var v=y;for(y=0;(v&128)===128;){if(v=p.readUInt8(C),p.isError(v))return v;y<<=7,y|=v&127}}else y&=31;var M=o.tag[y];return{cls:w,primitive:D,tag:y,tagStr:M}}function d(p,C,y){var w=p.readUInt8(y);if(p.isError(w))return w;if(!C&&w===128)return null;if(!(w&128))return w;var D=w&127;if(D>4)return p.error("length octect is too long");w=0;for(var v=0;v=256;R>>=8)M++;var b=new A(2+M);b[0]=v,b[1]=128|M;for(var R=1+M,S=D.length;S>0;R--,S>>=8)b[R]=S&255;return this._createEncoderBuffer([b,D])},f.prototype._encodeStr=function(C,y){if(y==="bitstr")return this._createEncoderBuffer([C.unused|0,C.data]);if(y==="bmpstr"){for(var w=new A(C.length*2),D=0;D=40)return this.reporter.error("Second objid identifier OOB");C.splice(0,2,C[0]*40+C[1])}for(var v=0,D=0;D=128;M>>=7)v++}for(var R=new A(v),b=R.length-1,D=C.length-1;D>=0;D--){var M=C[D];for(R[b--]=M&127;(M>>=7)>0;)R[b--]=128|M&127}return this._createEncoderBuffer(R)};function h(p){return p<10?"0"+p:p}f.prototype._encodeTime=function(C,y){var w,D=new Date(C);return y==="gentime"?w=[h(D.getFullYear()),h(D.getUTCMonth()+1),h(D.getUTCDate()),h(D.getUTCHours()),h(D.getUTCMinutes()),h(D.getUTCSeconds()),"Z"].join(""):y==="utctime"?w=[h(D.getFullYear()%100),h(D.getUTCMonth()+1),h(D.getUTCDate()),h(D.getUTCHours()),h(D.getUTCMinutes()),h(D.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+y+" time is not supported yet"),this._encodeStr(w,"octstr")},f.prototype._encodeNull=function(){return this._createEncoderBuffer("")},f.prototype._encodeInt=function(C,y){if(typeof C=="string"){if(!y)return this.reporter.error("String int or enum given, but no values map");if(!y.hasOwnProperty(C))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(C));C=y[C]}if(typeof C!="number"&&!A.isBuffer(C)){var w=C.toArray();!C.sign&&w[0]&128&&w.unshift(0),C=new A(w)}if(A.isBuffer(C)){var D=C.length;C.length===0&&D++;var M=new A(D);return C.copy(M),C.length===0&&(M[0]=0),this._createEncoderBuffer(M)}if(C<128)return this._createEncoderBuffer(C);if(C<256)return this._createEncoderBuffer([0,C]);for(var D=1,v=C;v>=256;v>>=8)D++;for(var M=new Array(D),v=M.length-1;v>=0;v--)M[v]=C&255,C>>=8;return M[0]&128&&M.unshift(0),this._createEncoderBuffer(new A(M))},f.prototype._encodeBool=function(C){return this._createEncoderBuffer(C?255:0)},f.prototype._use=function(C,y){return typeof C=="function"&&(C=C(y)),C._getEncoder("der").tree},f.prototype._skipDefault=function(C,y,w){var D=this._baseState,v;if(D.default===null)return!1;var M=C.join();if(D.defaultBuffer===void 0&&(D.defaultBuffer=this._encodeValue(D.default,y,w).join()),M.length!==D.defaultBuffer.length)return!1;for(v=0;v=31?w.error("Multi-octet tag encoding unsupported"):(C||(D|=32),D|=o.tagClassByName[y||"universal"]<<6,D)}return hv}var cv,Zx;function vsA(){if(Zx)return cv;Zx=1;var e=Fe,A=eT();function t(i){A.call(this,i),this.enc="pem"}return e(t,A),cv=t,t.prototype.encode=function(o,r){for(var f=A.prototype.encode.call(this,o),h=f.toString("base64"),d=["-----BEGIN "+r.label+"-----"],p=0;p0&&G.ishrn(U),G}function v(b,S){b=D(b,S),b=b.mod(S);var G=e.from(b.toArray());if(G.length=0)throw new Error("invalid sig")}return uv=r,uv}var lv,i6;function naA(){if(i6)return lv;i6=1;var e=Ge.Buffer,A=oB,t=lsA,i=Fe,o=iaA(),r=raA(),f=$J;Object.keys(f).forEach(function(y){f[y].id=e.from(f[y].id,"hex"),f[y.toLowerCase()]=f[y]});function h(y){t.Writable.call(this);var w=f[y];if(!w)throw new Error("Unknown message digest");this._hashType=w.hash,this._hash=A(w.hash),this._tag=w.id,this._signType=w.sign}i(h,t.Writable),h.prototype._write=function(w,D,v){this._hash.update(w),v()},h.prototype.update=function(w,D){return this._hash.update(typeof w=="string"?e.from(w,D):w),this},h.prototype.sign=function(w,D){this.end();var v=this._hash.digest(),M=o(v,w,this._hashType,this._signType,this._tag);return D?M.toString(D):M};function d(y){t.Writable.call(this);var w=f[y];if(!w)throw new Error("Unknown message digest");this._hash=A(w.hash),this._tag=w.id,this._signType=w.sign}i(d,t.Writable),d.prototype._write=function(w,D,v){this._hash.update(w),v()},d.prototype.update=function(w,D){return this._hash.update(typeof w=="string"?e.from(w,D):w),this},d.prototype.verify=function(w,D,v){var M=typeof D=="string"?e.from(D,v):D;this.end();var R=this._hash.digest();return r(M,R,w,this._signType,this._tag)};function p(y){return new h(y)}function C(y){return new d(y)}return lv={Sign:p,Verify:C,createSign:p,createVerify:C},lv}var F3={exports:{}};F3.exports;(function(e){(function(A,t){function i(Q,n){if(!Q)throw new Error(n||"Assertion failed")}function o(Q,n){Q.super_=n;var a=function(){};a.prototype=n.prototype,Q.prototype=new a,Q.prototype.constructor=Q}function r(Q,n,a){if(r.isBN(Q))return Q;this.negative=0,this.words=null,this.length=0,this.red=null,Q!==null&&((n==="le"||n==="be")&&(a=n,n=10),this._init(Q||0,n||10,a||"be"))}typeof A=="object"?A.exports=r:t.BN=r,r.BN=r,r.wordSize=26;var f;try{typeof window<"u"&&typeof window.Buffer<"u"?f=window.Buffer:f=Ht.Buffer}catch{}r.isBN=function(n){return n instanceof r?!0:n!==null&&typeof n=="object"&&n.constructor.wordSize===r.wordSize&&Array.isArray(n.words)},r.max=function(n,a){return n.cmp(a)>0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g,I+=2,I>=26&&(I-=26,B--)}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)})(F3);var oaA=F3.exports,Cv,r6;function saA(){if(r6)return Cv;r6=1;var e=Cw(),A=oaA;Cv=function(f){return new i(f)};var t={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};t.p224=t.secp224r1,t.p256=t.secp256r1=t.prime256v1,t.p192=t.secp192r1=t.prime192v1,t.p384=t.secp384r1,t.p521=t.secp521r1;function i(r){this.curveType=t[r],this.curveType||(this.curveType={name:r}),this.curve=new e.ec(this.curveType.name),this.keys=void 0}i.prototype.generateKeys=function(r,f){return this.keys=this.curve.genKeyPair(),this.getPublicKey(r,f)},i.prototype.computeSecret=function(r,f,h){f=f||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,f));var d=this.curve.keyFromPublic(r).getPublic(),p=d.mul(this.keys.getPrivate()).getX();return o(p,h,this.curveType.byteLength)},i.prototype.getPublicKey=function(r,f){var h=this.keys.getPublic(f==="compressed",!0);return f==="hybrid"&&(h[h.length-1]%2?h[0]=7:h[0]=6),o(h,r)},i.prototype.getPrivateKey=function(r){return o(this.keys.getPrivate(),r)},i.prototype.setPublicKey=function(r,f){return f=f||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,f)),this.keys._importPublic(r),this},i.prototype.setPrivateKey=function(r,f){f=f||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,f));var h=new A(r);return h=h.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(h),this};function o(r,f,h){Array.isArray(r)||(r=r.toArray());var d=new Buffer(r);if(h&&d.length0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g,I+=2,I>=26&&(I-=26,B--)}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)})(x3);var L3=x3.exports,n6=L3,IaA=Ge.Buffer;function faA(e,A){return IaA.from(e.toRed(n6.mont(A.modulus)).redPow(new n6(A.publicExponent)).fromRed().toArray())}var aT=faA,haA=ow,gS=Uu,caA=oB,o6=oT,s6=sT,U3=L3,uaA=aT,laA=R3,Go=Ge.Buffer,CaA=function(A,t,i){var o;A.padding?o=A.padding:i?o=1:o=4;var r=haA(A),f;if(o===4)f=BaA(r,t);else if(o===1)f=daA(r,t,i);else if(o===3){if(f=new U3(t),f.cmp(r.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return i?laA(f,r):uaA(f,r)};function BaA(e,A){var t=e.modulus.byteLength(),i=A.length,o=caA("sha1").update(Go.alloc(0)).digest(),r=o.length,f=2*r;if(i>t-f-2)throw new Error("message too long");var h=Go.alloc(t-i-f-2),d=t-r-1,p=gS(r),C=s6(Go.concat([o,h,Go.alloc(1,1),A],d),o6(p,d)),y=s6(p,o6(C,r));return new U3(Go.concat([Go.alloc(1),y,C],t))}function daA(e,A,t){var i=A.length,o=e.modulus.byteLength();if(i>o-11)throw new Error("message too long");var r;return t?r=Go.alloc(o-i-3,255):r=EaA(o-i-3),new U3(Go.concat([Go.from([0,t?1:2]),r,Go.alloc(1),A],o))}function EaA(e){for(var A=Go.allocUnsafe(e),t=0,i=gS(e*2),o=0,r;tf||new I6(t).cmp(r.modulus)>=0)throw new Error("decryption error");var h;i?h=waA(new I6(t),r):h=paA(t,r);var d=gC.alloc(f-h.length);if(h=gC.concat([d,h],f),o===4)return maA(r,h);if(o===1)return vaA(r,h,i);if(o===3)return h;throw new Error("unknown padding")};function maA(e,A){var t=e.modulus.byteLength(),i=yaA("sha1").update(gC.alloc(0)).digest(),o=i.length;if(A[0]!==0)throw new Error("decryption error");var r=A.slice(1,o+1),f=A.slice(o+1),h=g6(r,a6(f,o)),d=g6(f,a6(h,t-o-1));if(MaA(i,d.slice(0,o)))throw new Error("decryption error");for(var p=o;d[p]===0;)p++;if(d[p++]!==1)throw new Error("decryption error");return d.slice(p)}function vaA(e,A,t){for(var i=A.slice(0,2),o=2,r=0;A[o++]!==0;)if(o>=A.length){r++;break}var f=A.slice(2,o-1);if((i.toString("hex")!=="0002"&&!t||i.toString("hex")!=="0001"&&t)&&r++,f.length<8&&r++,r)throw new Error("decryption error");return A.slice(o)}function MaA(e,A){e=gC.from(e),A=gC.from(A);var t=0,i=e.length;e.length!==A.length&&(t++,i=Math.min(e.length,A.length));for(var o=-1;++ohT||e<0)throw new TypeError("offset must be a uint32");if(e>fT||e>A)throw new RangeError("offset out of range")}function uT(e,A,t){if(typeof e!="number"||e!==e)throw new TypeError("size must be a number");if(e>hT||e<0)throw new TypeError("size must be a uint32");if(e+A>t||e>fT)throw new RangeError("buffer too small")}IS&&IS.getRandomValues||!process.browser?(o0.randomFill=baA,o0.randomFillSync=SaA):(o0.randomFill=f6,o0.randomFillSync=f6);function baA(e,A,t,i){if(!IT.isBuffer(e)&&!(e instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof A=="function")i=A,A=0,t=e.length;else if(typeof t=="function")i=t,t=e.length-A;else if(typeof i!="function")throw new TypeError('"cb" argument must be a function');return cT(A,e.length),uT(t,A,e.length),lT(e,A,t,i)}function lT(e,A,t,i){if(process.browser){var o=e.buffer,r=new Uint8Array(o,A,t);if(IS.getRandomValues(r),i){process.nextTick(function(){i(null,e)});return}return e}if(i){h6(t,function(h,d){if(h)return i(h);d.copy(e,A),i(null,e)});return}var f=h6(t);return f.copy(e,A),e}function SaA(e,A,t){if(typeof A>"u"&&(A=0),!IT.isBuffer(e)&&!(e instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return cT(A,e.length),t===void 0&&(t=e.length-A),uT(t,A,e.length),lT(e,A,t)}var c6;function CT(){if(c6)return Je;c6=1,Je.randomBytes=Je.rng=Je.pseudoRandomBytes=Je.prng=Uu,Je.createHash=Je.Hash=oB,Je.createHmac=Je.Hmac=zJ;var e=fnA,A=Object.keys(e),t=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(A);Je.getHashes=function(){return t};var i=zy;Je.pbkdf2=i.pbkdf2,Je.pbkdf2Sync=i.pbkdf2Sync;var o=Po;Je.Cipher=o.Cipher,Je.createCipher=o.createCipher,Je.Cipheriv=o.Cipheriv,Je.createCipheriv=o.createCipheriv,Je.Decipher=o.Decipher,Je.createDecipher=o.createDecipher,Je.Decipheriv=o.Decipheriv,Je.createDecipheriv=o.createDecipheriv,Je.getCiphers=o.getCiphers,Je.listCiphers=o.listCiphers;var r=ToA();Je.DiffieHellmanGroup=r.DiffieHellmanGroup,Je.createDiffieHellmanGroup=r.createDiffieHellmanGroup,Je.getDiffieHellman=r.getDiffieHellman,Je.createDiffieHellman=r.createDiffieHellman,Je.DiffieHellman=r.DiffieHellman;var f=naA();Je.createSign=f.createSign,Je.Sign=f.Sign,Je.createVerify=f.createVerify,Je.Verify=f.Verify,Je.createECDH=saA();var h=nT;Je.publicEncrypt=h.publicEncrypt,Je.privateEncrypt=h.privateEncrypt,Je.publicDecrypt=h.publicDecrypt,Je.privateDecrypt=h.privateDecrypt;var d=o0;return Je.randomFill=d.randomFill,Je.randomFillSync=d.randomFillSync,Je.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` +`))},Je.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},Je}var u6;function _3(){if(u6)return sd.exports;u6=1;var e;sd.exports=function(o){return e||(e=new A(null)),e.generate(o)};function A(i){this.rand=i}if(sd.exports.Rand=A,A.prototype.generate=function(o){return this._rand(o)},A.prototype._rand=function(o){if(this.rand.getBytes)return this.rand.getBytes(o);for(var r=new Uint8Array(o),f=0;f0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var sw=fI;fI.prototype.point=function(){throw new Error("Not implemented")};fI.prototype.validate=function(){throw new Error("Not implemented")};fI.prototype._fixedNafMul=function(A,t){TQ(A.precomputed);var i=A._getDoubles(),o=JQ(t,1,this._bitLength),r=(1<=h;p--)d=(d<<1)+o[p];f.push(d)}for(var C=this.jpoint(null,null,null),y=this.jpoint(null,null,null),w=r;w>0;w--){for(h=0;h=0;d--){for(var p=0;d>=0&&f[d]===0;d--)p++;if(d>=0&&p++,h=h.dblp(p),d<0)break;var C=f[d];TQ(C!==0),A.type==="affine"?C>0?h=h.mixedAdd(r[C-1>>1]):h=h.mixedAdd(r[-C-1>>1].neg()):C>0?h=h.add(r[C-1>>1]):h=h.add(r[-C-1>>1].neg())}return A.type==="affine"?h.toP():h};fI.prototype._wnafMulAdd=function(A,t,i,o,r){var f=this._wnafT1,h=this._wnafT2,d=this._wnafT3,p=0,C,y,w;for(C=0;C=1;C-=2){var v=C-1,M=C;if(f[v]!==1||f[M]!==1){d[v]=JQ(i[v],f[v],this._bitLength),d[M]=JQ(i[M],f[M],this._bitLength),p=Math.max(d[v].length,p),p=Math.max(d[M].length,p);continue}var R=[t[v],null,null,t[M]];t[v].y.cmp(t[M].y)===0?(R[1]=t[v].add(t[M]),R[2]=t[v].toJ().mixedAdd(t[M].neg())):t[v].y.cmp(t[M].y.redNeg())===0?(R[1]=t[v].toJ().mixedAdd(t[M]),R[2]=t[v].add(t[M].neg())):(R[1]=t[v].toJ().mixedAdd(t[M]),R[2]=t[v].toJ().mixedAdd(t[M].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],S=NaA(i[v],i[M]);for(p=Math.max(S[0].length,p),d[v]=new Array(p),d[M]=new Array(p),y=0;y=0;C--){for(var oA=0;C>=0;){var J=!0;for(y=0;y=0&&oA++,P=P.dblp(oA),C<0)break;for(y=0;y0?w=h[y][q-1>>1]:q<0&&(w=h[y][-q-1>>1].neg()),w.type==="affine"?P=P.mixedAdd(w):P=P.add(w))}}for(C=0;C=Math.ceil((A.bitLength()+1)/t.step):!1};co.prototype._getDoubles=function(A,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var i=[this],o=this,r=0;r=0&&(D=p,v=C),y.negative&&(y=y.neg(),w=w.neg()),D.negative&&(D=D.neg(),v=v.neg()),[{a:y,b:w},{a:D,b:v}]};uo.prototype._endoSplit=function(A){var t=this.endo.basis,i=t[0],o=t[1],r=o.b.mul(A).divRound(this.n),f=i.b.neg().mul(A).divRound(this.n),h=r.mul(i.a),d=f.mul(o.a),p=r.mul(i.b),C=f.mul(o.b),y=A.sub(h).sub(d),w=p.add(C).neg();return{k1:y,k2:w}};uo.prototype.pointFromX=function(A,t){A=new zt(A,16),A.red||(A=A.toRed(this.red));var i=A.redSqr().redMul(A).redIAdd(A.redMul(this.a)).redIAdd(this.b),o=i.redSqrt();if(o.redSqr().redSub(i).cmp(this.zero)!==0)throw new Error("invalid point");var r=o.fromRed().isOdd();return(t&&!r||!t&&r)&&(o=o.redNeg()),this.point(A,o)};uo.prototype.validate=function(A){if(A.inf)return!0;var t=A.x,i=A.y,o=this.a.redMul(t),r=t.redSqr().redMul(t).redIAdd(o).redIAdd(this.b);return i.redSqr().redISub(r).cmpn(0)===0};uo.prototype._endoWnafMulAdd=function(A,t,i){for(var o=this._endoWnafT1,r=this._endoWnafT2,f=0;f":""};Hi.prototype.isInfinity=function(){return this.inf};Hi.prototype.add=function(A){if(this.inf)return A;if(A.inf)return this;if(this.eq(A))return this.dbl();if(this.neg().eq(A))return this.curve.point(null,null);if(this.x.cmp(A.x)===0)return this.curve.point(null,null);var t=this.y.redSub(A.y);t.cmpn(0)!==0&&(t=t.redMul(this.x.redSub(A.x).redInvm()));var i=t.redSqr().redISub(this.x).redISub(A.x),o=t.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,o)};Hi.prototype.dbl=function(){if(this.inf)return this;var A=this.y.redAdd(this.y);if(A.cmpn(0)===0)return this.curve.point(null,null);var t=this.curve.a,i=this.x.redSqr(),o=A.redInvm(),r=i.redAdd(i).redIAdd(i).redIAdd(t).redMul(o),f=r.redSqr().redISub(this.x.redAdd(this.x)),h=r.redMul(this.x.redSub(f)).redISub(this.y);return this.curve.point(f,h)};Hi.prototype.getX=function(){return this.x.fromRed()};Hi.prototype.getY=function(){return this.y.fromRed()};Hi.prototype.mul=function(A){return A=new zt(A,16),this.isInfinity()?this:this._hasDoubles(A)?this.curve._fixedNafMul(this,A):this.curve.endo?this.curve._endoWnafMulAdd([this],[A]):this.curve._wnafMul(this,A)};Hi.prototype.mulAdd=function(A,t,i){var o=[this,t],r=[A,i];return this.curve.endo?this.curve._endoWnafMulAdd(o,r):this.curve._wnafMulAdd(1,o,r,2)};Hi.prototype.jmulAdd=function(A,t,i){var o=[this,t],r=[A,i];return this.curve.endo?this.curve._endoWnafMulAdd(o,r,!0):this.curve._wnafMulAdd(1,o,r,2,!0)};Hi.prototype.eq=function(A){return this===A||this.inf===A.inf&&(this.inf||this.x.cmp(A.x)===0&&this.y.cmp(A.y)===0)};Hi.prototype.neg=function(A){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(A&&this.precomputed){var i=this.precomputed,o=function(r){return r.neg()};t.precomputed={naf:i.naf&&{wnd:i.naf.wnd,points:i.naf.points.map(o)},doubles:i.doubles&&{step:i.doubles.step,points:i.doubles.points.map(o)}}}return t};Hi.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var A=this.curve.jpoint(this.x,this.y,this.curve.one);return A};function Xi(e,A,t,i){Yu.BasePoint.call(this,e,"jacobian"),A===null&&t===null&&i===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new zt(0)):(this.x=new zt(A,16),this.y=new zt(t,16),this.z=new zt(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}H3(Xi,Yu.BasePoint);uo.prototype.jpoint=function(A,t,i){return new Xi(this,A,t,i)};Xi.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var A=this.z.redInvm(),t=A.redSqr(),i=this.x.redMul(t),o=this.y.redMul(t).redMul(A);return this.curve.point(i,o)};Xi.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};Xi.prototype.add=function(A){if(this.isInfinity())return A;if(A.isInfinity())return this;var t=A.z.redSqr(),i=this.z.redSqr(),o=this.x.redMul(t),r=A.x.redMul(i),f=this.y.redMul(t.redMul(A.z)),h=A.y.redMul(i.redMul(this.z)),d=o.redSub(r),p=f.redSub(h);if(d.cmpn(0)===0)return p.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var C=d.redSqr(),y=C.redMul(d),w=o.redMul(C),D=p.redSqr().redIAdd(y).redISub(w).redISub(w),v=p.redMul(w.redISub(D)).redISub(f.redMul(y)),M=this.z.redMul(A.z).redMul(d);return this.curve.jpoint(D,v,M)};Xi.prototype.mixedAdd=function(A){if(this.isInfinity())return A.toJ();if(A.isInfinity())return this;var t=this.z.redSqr(),i=this.x,o=A.x.redMul(t),r=this.y,f=A.y.redMul(t).redMul(this.z),h=i.redSub(o),d=r.redSub(f);if(h.cmpn(0)===0)return d.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var p=h.redSqr(),C=p.redMul(h),y=i.redMul(p),w=d.redSqr().redIAdd(C).redISub(y).redISub(y),D=d.redMul(y.redISub(w)).redISub(r.redMul(C)),v=this.z.redMul(h);return this.curve.jpoint(w,D,v)};Xi.prototype.dblp=function(A){if(A===0)return this;if(this.isInfinity())return this;if(!A)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var i=this;for(t=0;t=0)return!1;if(i.redIAdd(r),this.x.cmp(i)===0)return!0}};Xi.prototype.inspect=function(){return this.isInfinity()?"":""};Xi.prototype.isInfinity=function(){return this.z.cmpn(0)===0};var $h=Za,BT=Fe,aw=sw,GaA=kn;function Ju(e){aw.call(this,"mont",e),this.a=new $h(e.a,16).toRed(this.red),this.b=new $h(e.b,16).toRed(this.red),this.i4=new $h(4).toRed(this.red).redInvm(),this.two=new $h(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}BT(Ju,aw);var FaA=Ju;Ju.prototype.validate=function(A){var t=A.normalize().x,i=t.redSqr(),o=i.redMul(t).redAdd(i.redMul(this.a)).redAdd(t),r=o.redSqrt();return r.redSqr().cmp(o)===0};function Ui(e,A,t){aw.BasePoint.call(this,e,"projective"),A===null&&t===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new $h(A,16),this.z=new $h(t,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}BT(Ui,aw.BasePoint);Ju.prototype.decodePoint=function(A,t){return this.point(GaA.toArray(A,t),1)};Ju.prototype.point=function(A,t){return new Ui(this,A,t)};Ju.prototype.pointFromJSON=function(A){return Ui.fromJSON(this,A)};Ui.prototype.precompute=function(){};Ui.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())};Ui.fromJSON=function(A,t){return new Ui(A,t[0],t[1]||A.one)};Ui.prototype.inspect=function(){return this.isInfinity()?"":""};Ui.prototype.isInfinity=function(){return this.z.cmpn(0)===0};Ui.prototype.dbl=function(){var A=this.x.redAdd(this.z),t=A.redSqr(),i=this.x.redSub(this.z),o=i.redSqr(),r=t.redSub(o),f=t.redMul(o),h=r.redMul(o.redAdd(this.curve.a24.redMul(r)));return this.curve.point(f,h)};Ui.prototype.add=function(){throw new Error("Not supported on Montgomery curve")};Ui.prototype.diffAdd=function(A,t){var i=this.x.redAdd(this.z),o=this.x.redSub(this.z),r=A.x.redAdd(A.z),f=A.x.redSub(A.z),h=f.redMul(i),d=r.redMul(o),p=t.z.redMul(h.redAdd(d).redSqr()),C=t.x.redMul(h.redISub(d).redSqr());return this.curve.point(p,C)};Ui.prototype.mul=function(A){for(var t=A.clone(),i=this,o=this.curve.point(null,null),r=this,f=[];t.cmpn(0)!==0;t.iushrn(1))f.push(t.andln(1));for(var h=f.length-1;h>=0;h--)f[h]===0?(i=i.diffAdd(o,r),o=o.dbl()):(o=i.diffAdd(o,r),i=i.dbl());return o};Ui.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")};Ui.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")};Ui.prototype.eq=function(A){return this.getX().cmp(A.getX())===0};Ui.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};Ui.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var xaA=kn,ya=Za,dT=Fe,gw=sw,LaA=xaA.assert;function Os(e){this.twisted=(e.a|0)!==1,this.mOneA=this.twisted&&(e.a|0)===-1,this.extended=this.mOneA,gw.call(this,"edwards",e),this.a=new ya(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new ya(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new ya(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),LaA(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(e.c|0)===1}dT(Os,gw);var UaA=Os;Os.prototype._mulA=function(A){return this.mOneA?A.redNeg():this.a.redMul(A)};Os.prototype._mulC=function(A){return this.oneC?A:this.c.redMul(A)};Os.prototype.jpoint=function(A,t,i,o){return this.point(A,t,i,o)};Os.prototype.pointFromX=function(A,t){A=new ya(A,16),A.red||(A=A.toRed(this.red));var i=A.redSqr(),o=this.c2.redSub(this.a.redMul(i)),r=this.one.redSub(this.c2.redMul(this.d).redMul(i)),f=o.redMul(r.redInvm()),h=f.redSqrt();if(h.redSqr().redSub(f).cmp(this.zero)!==0)throw new Error("invalid point");var d=h.fromRed().isOdd();return(t&&!d||!t&&d)&&(h=h.redNeg()),this.point(A,h)};Os.prototype.pointFromY=function(A,t){A=new ya(A,16),A.red||(A=A.toRed(this.red));var i=A.redSqr(),o=i.redSub(this.c2),r=i.redMul(this.d).redMul(this.c2).redSub(this.a),f=o.redMul(r.redInvm());if(f.cmp(this.zero)===0){if(t)throw new Error("invalid point");return this.point(this.zero,A)}var h=f.redSqrt();if(h.redSqr().redSub(f).cmp(this.zero)!==0)throw new Error("invalid point");return h.fromRed().isOdd()!==t&&(h=h.redNeg()),this.point(h,A)};Os.prototype.validate=function(A){if(A.isInfinity())return!0;A.normalize();var t=A.x.redSqr(),i=A.y.redSqr(),o=t.redMul(this.a).redAdd(i),r=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(i)));return o.cmp(r)===0};function Rt(e,A,t,i,o){gw.BasePoint.call(this,e,"projective"),A===null&&t===null&&i===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new ya(A,16),this.y=new ya(t,16),this.z=i?new ya(i,16):this.curve.one,this.t=o&&new ya(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}dT(Rt,gw.BasePoint);Os.prototype.pointFromJSON=function(A){return Rt.fromJSON(this,A)};Os.prototype.point=function(A,t,i,o){return new Rt(this,A,t,i,o)};Rt.fromJSON=function(A,t){return new Rt(A,t[0],t[1],t[2])};Rt.prototype.inspect=function(){return this.isInfinity()?"":""};Rt.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Rt.prototype._extDbl=function(){var A=this.x.redSqr(),t=this.y.redSqr(),i=this.z.redSqr();i=i.redIAdd(i);var o=this.curve._mulA(A),r=this.x.redAdd(this.y).redSqr().redISub(A).redISub(t),f=o.redAdd(t),h=f.redSub(i),d=o.redSub(t),p=r.redMul(h),C=f.redMul(d),y=r.redMul(d),w=h.redMul(f);return this.curve.point(p,C,w,y)};Rt.prototype._projDbl=function(){var A=this.x.redAdd(this.y).redSqr(),t=this.x.redSqr(),i=this.y.redSqr(),o,r,f,h,d,p;if(this.curve.twisted){h=this.curve._mulA(t);var C=h.redAdd(i);this.zOne?(o=A.redSub(t).redSub(i).redMul(C.redSub(this.curve.two)),r=C.redMul(h.redSub(i)),f=C.redSqr().redSub(C).redSub(C)):(d=this.z.redSqr(),p=C.redSub(d).redISub(d),o=A.redSub(t).redISub(i).redMul(p),r=C.redMul(h.redSub(i)),f=C.redMul(p))}else h=t.redAdd(i),d=this.curve._mulC(this.z).redSqr(),p=h.redSub(d).redSub(d),o=this.curve._mulC(A.redISub(h)).redMul(p),r=this.curve._mulC(h).redMul(t.redISub(i)),f=h.redMul(p);return this.curve.point(o,r,f)};Rt.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()};Rt.prototype._extAdd=function(A){var t=this.y.redSub(this.x).redMul(A.y.redSub(A.x)),i=this.y.redAdd(this.x).redMul(A.y.redAdd(A.x)),o=this.t.redMul(this.curve.dd).redMul(A.t),r=this.z.redMul(A.z.redAdd(A.z)),f=i.redSub(t),h=r.redSub(o),d=r.redAdd(o),p=i.redAdd(t),C=f.redMul(h),y=d.redMul(p),w=f.redMul(p),D=h.redMul(d);return this.curve.point(C,y,D,w)};Rt.prototype._projAdd=function(A){var t=this.z.redMul(A.z),i=t.redSqr(),o=this.x.redMul(A.x),r=this.y.redMul(A.y),f=this.curve.d.redMul(o).redMul(r),h=i.redSub(f),d=i.redAdd(f),p=this.x.redAdd(this.y).redMul(A.x.redAdd(A.y)).redISub(o).redISub(r),C=t.redMul(h).redMul(p),y,w;return this.curve.twisted?(y=t.redMul(d).redMul(r.redSub(this.curve._mulA(o))),w=h.redMul(d)):(y=t.redMul(d).redMul(r.redSub(o)),w=this.curve._mulC(h).redMul(d)),this.curve.point(C,y,w)};Rt.prototype.add=function(A){return this.isInfinity()?A:A.isInfinity()?this:this.curve.extended?this._extAdd(A):this._projAdd(A)};Rt.prototype.mul=function(A){return this._hasDoubles(A)?this.curve._fixedNafMul(this,A):this.curve._wnafMul(this,A)};Rt.prototype.mulAdd=function(A,t,i){return this.curve._wnafMulAdd(1,[this,t],[A,i],2,!1)};Rt.prototype.jmulAdd=function(A,t,i){return this.curve._wnafMulAdd(1,[this,t],[A,i],2,!0)};Rt.prototype.normalize=function(){if(this.zOne)return this;var A=this.z.redInvm();return this.x=this.x.redMul(A),this.y=this.y.redMul(A),this.t&&(this.t=this.t.redMul(A)),this.z=this.curve.one,this.zOne=!0,this};Rt.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Rt.prototype.getX=function(){return this.normalize(),this.x.fromRed()};Rt.prototype.getY=function(){return this.normalize(),this.y.fromRed()};Rt.prototype.eq=function(A){return this===A||this.getX().cmp(A.getX())===0&&this.getY().cmp(A.getY())===0};Rt.prototype.eqXToP=function(A){var t=A.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(t)===0)return!0;for(var i=A.clone(),o=this.curve.redN.redMul(this.z);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(o),this.x.cmp(t)===0)return!0}};Rt.prototype.toP=Rt.prototype.normalize;Rt.prototype.mixedAdd=Rt.prototype.add;(function(e){var A=e;A.base=sw,A.short=KaA,A.mont=FaA,A.edwards=UaA})(q3);var Iw={},fw={},nt={},_aA=Io,qaA=Fe;nt.inherits=qaA;function HaA(e,A){return(e.charCodeAt(A)&64512)!==55296||A<0||A+1>=e.length?!1:(e.charCodeAt(A+1)&64512)===56320}function YaA(e,A){if(Array.isArray(e))return e.slice();if(!e)return[];var t=[];if(typeof e=="string")if(A){if(A==="hex")for(e=e.replace(/[^a-z0-9]+/ig,""),e.length%2!==0&&(e="0"+e),o=0;o>6|192,t[i++]=r&63|128):HaA(e,o)?(r=65536+((r&1023)<<10)+(e.charCodeAt(++o)&1023),t[i++]=r>>18|240,t[i++]=r>>12&63|128,t[i++]=r>>6&63|128,t[i++]=r&63|128):(t[i++]=r>>12|224,t[i++]=r>>6&63|128,t[i++]=r&63|128)}else for(o=0;o>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24;return A>>>0}nt.htonl=ET;function TaA(e,A){for(var t="",i=0;i>>0}return r}nt.join32=PaA;function OaA(e,A){for(var t=new Array(e.length*4),i=0,o=0;i>>24,t[o+1]=r>>>16&255,t[o+2]=r>>>8&255,t[o+3]=r&255):(t[o+3]=r>>>24,t[o+2]=r>>>16&255,t[o+1]=r>>>8&255,t[o]=r&255)}return t}nt.split32=OaA;function jaA(e,A){return e>>>A|e<<32-A}nt.rotr32=jaA;function WaA(e,A){return e<>>32-A}nt.rotl32=WaA;function VaA(e,A){return e+A>>>0}nt.sum32=VaA;function ZaA(e,A,t){return e+A+t>>>0}nt.sum32_3=ZaA;function zaA(e,A,t,i){return e+A+t+i>>>0}nt.sum32_4=zaA;function $aA(e,A,t,i,o){return e+A+t+i+o>>>0}nt.sum32_5=$aA;function XaA(e,A,t,i){var o=e[A],r=e[A+1],f=i+r>>>0,h=(f>>0,e[A+1]=f}nt.sum64=XaA;function AgA(e,A,t,i){var o=A+i>>>0,r=(o>>0}nt.sum64_hi=AgA;function egA(e,A,t,i){var o=A+i;return o>>>0}nt.sum64_lo=egA;function tgA(e,A,t,i,o,r,f,h){var d=0,p=A;p=p+i>>>0,d+=p>>0,d+=p>>0,d+=p>>0}nt.sum64_4_hi=tgA;function igA(e,A,t,i,o,r,f,h){var d=A+i+r+h;return d>>>0}nt.sum64_4_lo=igA;function rgA(e,A,t,i,o,r,f,h,d,p){var C=0,y=A;y=y+i>>>0,C+=y>>0,C+=y>>0,C+=y>>0,C+=y>>0}nt.sum64_5_hi=rgA;function ngA(e,A,t,i,o,r,f,h,d,p){var C=A+i+r+h+p;return C>>>0}nt.sum64_5_lo=ngA;function ogA(e,A,t){var i=A<<32-t|e>>>t;return i>>>0}nt.rotr64_hi=ogA;function sgA(e,A,t){var i=e<<32-t|A>>>t;return i>>>0}nt.rotr64_lo=sgA;function agA(e,A,t){return e>>>t}nt.shr64_hi=agA;function ggA(e,A,t){var i=e<<32-t|A>>>t;return i>>>0}nt.shr64_lo=ggA;var Tu={},l6=nt,IgA=Io;function hw(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}Tu.BlockHash=hw;hw.prototype.update=function(A,t){if(A=l6.toArray(A,t),this.pending?this.pending=this.pending.concat(A):this.pending=A,this.pendingTotal+=A.length,this.pending.length>=this._delta8){A=this.pending;var i=A.length%this._delta8;this.pending=A.slice(A.length-i,A.length),this.pending.length===0&&(this.pending=null),A=l6.join32(A,0,A.length-i,this.endian);for(var o=0;o>>24&255,o[r++]=A>>>16&255,o[r++]=A>>>8&255,o[r++]=A&255}else for(o[r++]=A&255,o[r++]=A>>>8&255,o[r++]=A>>>16&255,o[r++]=A>>>24&255,o[r++]=0,o[r++]=0,o[r++]=0,o[r++]=0,f=8;f>>3}js.g0_256=lgA;function CgA(e){return ws(e,17)^ws(e,19)^e>>>10}js.g1_256=CgA;var Wc=nt,BgA=Tu,dgA=js,Bv=Wc.rotl32,Rl=Wc.sum32,EgA=Wc.sum32_5,QgA=dgA.ft_1,mT=BgA.BlockHash,pgA=[1518500249,1859775393,2400959708,3395469782];function Ks(){if(!(this instanceof Ks))return new Ks;mT.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Wc.inherits(Ks,mT);var ygA=Ks;Ks.blockSize=512;Ks.outSize=160;Ks.hmacStrength=80;Ks.padLength=64;Ks.prototype._update=function(A,t){for(var i=this.W,o=0;o<16;o++)i[o]=A[t+o];for(;othis.blockSize&&(A=new this.Hash().update(A).digest()),gIA(A.length<=this.blockSize);for(var t=A.length;t=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(A,t,i)}var cIA=Zg;Zg.prototype._init=function(A,t,i){var o=A.concat(t).concat(i);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var r=0;r=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(A.concat(i||[])),this._reseed=1};Zg.prototype.generate=function(A,t,i,o){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof t!="string"&&(o=i,i=t,t=null),i&&(i=tf.toArray(i,o||"hex"),this._update(i));for(var r=[];r.length"};var PQ=Za,Y3=kn,BIA=Y3.assert;function cw(e,A){if(e instanceof cw)return e;this._importDER(e,A)||(BIA(e.r&&e.s,"Signature without r or s"),this.r=new PQ(e.r,16),this.s=new PQ(e.s,16),e.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var dIA=cw;function EIA(){this.place=0}function pv(e,A){var t=e[A.place++];if(!(t&128))return t;var i=t&15;if(i===0||i>4||e[A.place]===0)return!1;for(var o=0,r=0,f=A.place;r>>=0;return o<=127?!1:(A.place=f,o)}function Q6(e){for(var A=0,t=e.length-1;!e[A]&&!(e[A+1]&128)&&A>>3);for(e.push(t|128);--t;)e.push(A>>>(t<<3)&255);e.push(A)}cw.prototype.toDER=function(A){var t=this.r.toArray(),i=this.s.toArray();for(t[0]&128&&(t=[0].concat(t)),i[0]&128&&(i=[0].concat(i)),t=Q6(t),i=Q6(i);!i[0]&&!(i[1]&128);)i=i.slice(1);var o=[2];yv(o,t.length),o=o.concat(t),o.push(2),yv(o,i.length);var r=o.concat(i),f=[48];return yv(f,r.length),f=f.concat(r),Y3.encode(f,A)};var wv,p6;function QIA(){if(p6)return wv;p6=1;var e=Za,A=cIA,t=kn,i=Iw,o=_3(),r=t.assert,f=CIA,h=dIA;function d(p){if(!(this instanceof d))return new d(p);typeof p=="string"&&(r(Object.prototype.hasOwnProperty.call(i,p),"Unknown curve "+p),p=i[p]),p instanceof i.PresetCurve&&(p={curve:p}),this.curve=p.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=p.curve.g,this.g.precompute(p.curve.n.bitLength()+1),this.hash=p.hash||p.curve.hash}return wv=d,d.prototype.keyPair=function(C){return new f(this,C)},d.prototype.keyFromPrivate=function(C,y){return f.fromPrivate(this,C,y)},d.prototype.keyFromPublic=function(C,y){return f.fromPublic(this,C,y)},d.prototype.genKeyPair=function(C){C||(C={});for(var y=new A({hash:this.hash,pers:C.pers,persEnc:C.persEnc||"utf8",entropy:C.entropy||o(this.hash.hmacStrength),entropyEnc:C.entropy&&C.entropyEnc||"utf8",nonce:this.n.toArray()}),w=this.n.byteLength(),D=this.n.sub(new e(2));;){var v=new e(y.generate(w));if(!(v.cmp(D)>0))return v.iaddn(1),this.keyFromPrivate(v)}},d.prototype._truncateToN=function(C,y){var w=C.byteLength()*8-this.n.bitLength();return w>0&&(C=C.ushrn(w)),!y&&C.cmp(this.n)>=0?C.sub(this.n):C},d.prototype.sign=function(C,y,w,D){typeof w=="object"&&(D=w,w=null),D||(D={}),y=this.keyFromPrivate(y,w),C=this._truncateToN(new e(C,16));for(var v=this.n.byteLength(),M=y.getPrivate().toArray("be",v),R=C.toArray("be",v),b=new A({hash:this.hash,entropy:M,nonce:R,pers:D.pers,persEnc:D.persEnc||"utf8"}),S=this.n.sub(new e(1)),G=0;;G++){var U=D.k?D.k(G):new e(b.generate(this.n.byteLength()));if(U=this._truncateToN(U,!0),!(U.cmpn(1)<=0||U.cmp(S)>=0)){var P=this.g.mul(U);if(!P.isInfinity()){var z=P.getX(),oA=z.umod(this.n);if(oA.cmpn(0)!==0){var J=U.invm(this.n).mul(oA.mul(y.getPrivate()).iadd(C));if(J=J.umod(this.n),J.cmpn(0)!==0){var q=(P.getY().isOdd()?1:0)|(z.cmp(oA)!==0?2:0);return D.canonical&&J.cmp(this.nh)>0&&(J=this.n.sub(J),q^=1),new h({r:oA,s:J,recoveryParam:q})}}}}}},d.prototype.verify=function(C,y,w,D){C=this._truncateToN(new e(C,16)),w=this.keyFromPublic(w,D),y=new h(y,"hex");var v=y.r,M=y.s;if(v.cmpn(1)<0||v.cmp(this.n)>=0||M.cmpn(1)<0||M.cmp(this.n)>=0)return!1;var R=M.invm(this.n),b=R.mul(C).umod(this.n),S=R.mul(v).umod(this.n),G;return this.curve._maxwellTrick?(G=this.g.jmulAdd(b,w.getPublic(),S),G.isInfinity()?!1:G.eqXToP(v)):(G=this.g.mulAdd(b,w.getPublic(),S),G.isInfinity()?!1:G.getX().umod(this.n).cmp(v)===0)},d.prototype.recoverPubKey=function(p,C,y,w){r((3&y)===y,"The recovery param is more than two bits"),C=new h(C,w);var D=this.n,v=new e(p),M=C.r,R=C.s,b=y&1,S=y>>1;if(M.cmp(this.curve.p.umod(this.curve.n))>=0&&S)throw new Error("Unable to find sencond key candinate");S?M=this.curve.pointFromX(M.add(this.curve.n),b):M=this.curve.pointFromX(M,b);var G=C.r.invm(D),U=D.sub(v).mul(G).umod(D),P=R.mul(G).umod(D);return this.g.mulAdd(U,M,P)},d.prototype.getKeyRecoveryParam=function(p,C,y,w){if(C=new h(C,w),C.recoveryParam!==null)return C.recoveryParam;for(var D=0;D<4;D++){var v;try{v=this.recoverPubKey(p,C,D)}catch{continue}if(v.eq(y))return D}throw new Error("Unable to find valid recovery factor")},wv}var uB=kn,LT=uB.assert,y6=uB.parseBytes,ju=uB.cachedProperty;function xi(e,A){this.eddsa=e,this._secret=y6(A.secret),e.isPoint(A.pub)?this._pub=A.pub:this._pubBytes=y6(A.pub)}xi.fromPublic=function(A,t){return t instanceof xi?t:new xi(A,{pub:t})};xi.fromSecret=function(A,t){return t instanceof xi?t:new xi(A,{secret:t})};xi.prototype.secret=function(){return this._secret};ju(xi,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())});ju(xi,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())});ju(xi,"privBytes",function(){var A=this.eddsa,t=this.hash(),i=A.encodingLength-1,o=t.slice(0,A.encodingLength);return o[0]&=248,o[i]&=127,o[i]|=64,o});ju(xi,"priv",function(){return this.eddsa.decodeInt(this.privBytes())});ju(xi,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()});ju(xi,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)});xi.prototype.sign=function(A){return LT(this._secret,"KeyPair can only verify"),this.eddsa.sign(A,this)};xi.prototype.verify=function(A,t){return this.eddsa.verify(A,t,this)};xi.prototype.getSecret=function(A){return LT(this._secret,"KeyPair is public only"),uB.encode(this.secret(),A)};xi.prototype.getPublic=function(A){return uB.encode(this.pubBytes(),A)};var pIA=xi,yIA=Za,uw=kn,w6=uw.assert,lw=uw.cachedProperty,wIA=uw.parseBytes;function zf(e,A){this.eddsa=e,typeof A!="object"&&(A=wIA(A)),Array.isArray(A)&&(w6(A.length===e.encodingLength*2,"Signature has invalid size"),A={R:A.slice(0,e.encodingLength),S:A.slice(e.encodingLength)}),w6(A.R&&A.S,"Signature without R or S"),e.isPoint(A.R)&&(this._R=A.R),A.S instanceof yIA&&(this._S=A.S),this._Rencoded=Array.isArray(A.R)?A.R:A.Rencoded,this._Sencoded=Array.isArray(A.S)?A.S:A.Sencoded}lw(zf,"S",function(){return this.eddsa.decodeInt(this.Sencoded())});lw(zf,"R",function(){return this.eddsa.decodePoint(this.Rencoded())});lw(zf,"Rencoded",function(){return this.eddsa.encodePoint(this.R())});lw(zf,"Sencoded",function(){return this.eddsa.encodeInt(this.S())});zf.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};zf.prototype.toHex=function(){return uw.encode(this.toBytes(),"hex").toUpperCase()};var DIA=zf,mIA=fw,vIA=Iw,zc=kn,MIA=zc.assert,UT=zc.parseBytes,_T=pIA,D6=DIA;function nn(e){if(MIA(e==="ed25519","only tested with ed25519 so far"),!(this instanceof nn))return new nn(e);e=vIA[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=mIA.sha512}var bIA=nn;nn.prototype.sign=function(A,t){A=UT(A);var i=this.keyFromSecret(t),o=this.hashInt(i.messagePrefix(),A),r=this.g.mul(o),f=this.encodePoint(r),h=this.hashInt(f,i.pubBytes(),A).mul(i.priv()),d=o.add(h).umod(this.curve.n);return this.makeSignature({R:r,S:d,Rencoded:f})};nn.prototype.verify=function(A,t,i){if(A=UT(A),t=this.makeSignature(t),t.S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var o=this.keyFromPublic(i),r=this.hashInt(t.Rencoded(),o.pubBytes(),A),f=this.g.mul(t.S()),h=t.R().add(o.pub().mul(r));return h.eq(f)};nn.prototype.hashInt=function(){for(var A=this.hash(),t=0;t0&&e.compare(SIA)<0:!1}function RIA(e,A){if(e.length!==A.length)return!1;let t=0;for(let i=0;i"u")return Buffer.from(En.randomBytes(e));const A=new Uint8Array(e);return En.getRandomValues(A),Buffer.from(A)}async function HT(e){if(!En.createHash){const i=await Dg.digest("SHA-512",e);return new Uint8Array(i)}const t=En.createHash("sha512").update(e).digest();return new Uint8Array(t)}function YT(e){return async function(A,t,i){if(Dg&&Dg[e]&&Dg.importKey){const o={name:"AES-CBC"},r=await Dg.importKey("raw",t,o,!1,[e]),f={name:"AES-CBC",iv:A},h=await Dg[e](f,r,i);return Buffer.from(new Uint8Array(h))}else if(e==="encrypt"&&En.createCipheriv){const o=En.createCipheriv("aes-256-cbc",t,A),r=o.update(i),f=o.final();return Buffer.concat([r,f])}else if(e==="decrypt"&&En.createDecipheriv){const o=En.createDecipheriv("aes-256-cbc",t,A),r=o.update(i),f=o.final();return Buffer.concat([r,f])}throw new Error(`Unsupported operation: ${e}`)}}const KIA=YT("encrypt"),GIA=YT("decrypt");async function JT(e,A){if(!En.createHmac){const o={name:"HMAC",hash:{name:"SHA-256"}},r=await Dg.importKey("raw",new Uint8Array(e),o,!1,["sign","verify"]),f=await Dg.sign("HMAC",r,A);return Buffer.from(new Uint8Array(f))}const t=En.createHmac("sha256",Buffer.from(e));return t.update(A),t.digest()}async function FIA(e,A,t){const i=await JT(e,A);return RIA(i,t)}const Bw=function(){let e=N0(32);for(;!Wu(e);)e=N0(32);return e},ds=function(e){return fi(e.length===32,"Bad private key"),fi(Wu(e),"Bad private key"),Buffer.from($c.keyFromPrivate(e).getPublic("array"))},ME=async function(e,A){return fi(e.length===32,"Bad private key"),fi(Wu(e),"Bad private key"),fi(A.length>0,"Message should not be empty"),fi(A.length<=32,"Message is too long"),Buffer.from($c.sign(A,e,{canonical:!0}).toDER())},xIA=async function(e,A){fi(Buffer.isBuffer(e),"Bad private key"),fi(Buffer.isBuffer(A),"Bad public key"),fi(e.length===32,"Bad private key"),fi(Wu(e),"Bad private key"),fi(A.length===65||A.length===33,"Bad public key"),A.length===65&&fi(A[0]===4,"Bad public key"),A.length===33&&fi(A[0]===2||A[0]===3,"Bad public key");const t=$c.keyFromPrivate(e),i=$c.keyFromPublic(A),o=t.derive(i.getPublic());return Buffer.from(o.toArray())},TT=xIA,LIA=async function(e,A){fi(Buffer.isBuffer(e),"Bad private key"),fi(Buffer.isBuffer(A),"Bad public key"),fi(e.length===32,"Bad private key"),fi(Wu(e),"Bad private key"),fi(A.length===65||A.length===33,"Bad public key"),A.length===65&&fi(A[0]===4,"Bad public key"),A.length===33&&fi(A[0]===2||A[0]===3,"Bad public key");const t=$c.keyFromPrivate(e),i=$c.keyFromPublic(A),o=t.derive(i.getPublic());return Buffer.from(o.toString(16,64),"hex")},lB=async function(e,A,t){t=t||{};let i=t.ephemPrivateKey||N0(32);for(;!Wu(i);)i=t.ephemPrivateKey||N0(32);const o=ds(i),r=await TT(i,e),f=await HT(r),h=t.iv||N0(16),d=f.slice(0,32),p=f.slice(32),y=await KIA(h,Buffer.from(d),A),w=Buffer.concat([h,o,y]),D=await JT(Buffer.from(p),w);return{iv:h,ephemPublicKey:o,ciphertext:y,mac:D}},zg=async function(e,A,t){const i=t??!1,r=await(i?LIA:TT)(e,A.ephemPublicKey),f=await HT(r),h=f.slice(0,32),d=f.slice(32),p=Buffer.concat([A.iv,A.ephemPublicKey,A.ciphertext]),C=await FIA(Buffer.from(d),p,A.mac);if(!C&&i===!1)return zg(e,A,!0);if(!C&&i===!0)throw new Error("bad MAC after trying padded");const y=await GIA(A.iv,Buffer.from(h),A.ciphertext);return Buffer.from(new Uint8Array(y))};var Cd={},Dv,v6;function UIA(){if(v6)return Dv;v6=1;var e,A,t={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` +`,r:"\r",t:" "},i;function o(D){throw{name:"SyntaxError",message:D,at:e,text:i}}function r(D){return D&&D!==A&&o("Expected '"+D+"' instead of '"+A+"'"),A=i.charAt(e),e+=1,A}function f(){var D,v="";for(A==="-"&&(v="-",r("-"));A>="0"&&A<="9";)v+=A,r();if(A===".")for(v+=".";r()&&A>="0"&&A<="9";)v+=A;if(A==="e"||A==="E")for(v+=A,r(),(A==="-"||A==="+")&&(v+=A,r());A>="0"&&A<="9";)v+=A,r();return D=Number(v),isFinite(D)||o("Bad number"),D}function h(){var D,v,M="",R;if(A==='"')for(;r();){if(A==='"')return r(),M;if(A==="\\")if(r(),A==="u"){for(R=0,v=0;v<4&&(D=parseInt(r(),16),!!isFinite(D));v+=1)R=R*16+D;M+=String.fromCharCode(R)}else if(typeof t[A]=="string")M+=t[A];else break;else M+=A}o("Bad string")}function d(){for(;A&&A<=" ";)r()}function p(){switch(A){case"t":return r("t"),r("r"),r("u"),r("e"),!0;case"f":return r("f"),r("a"),r("l"),r("s"),r("e"),!1;case"n":return r("n"),r("u"),r("l"),r("l"),null;default:o("Unexpected '"+A+"'")}}function C(){var D=[];if(A==="["){if(r("["),d(),A==="]")return r("]"),D;for(;A;){if(D.push(w()),d(),A==="]")return r("]"),D;r(","),d()}}o("Bad array")}function y(){var D,v={};if(A==="{"){if(r("{"),d(),A==="}")return r("}"),v;for(;A;){if(D=h(),d(),r(":"),Object.prototype.hasOwnProperty.call(v,D)&&o('Duplicate key "'+D+'"'),v[D]=w(),d(),A==="}")return r("}"),v;r(","),d()}}o("Bad object")}function w(){switch(d(),A){case"{":return y();case"[":return C();case'"':return h();case"-":return f();default:return A>="0"&&A<="9"?f():p()}}return Dv=function(D,v){var M;return i=D,e=0,A=" ",M=w(),d(),A&&o("Syntax error"),typeof v=="function"?function R(b,S){var G,U,P=b[S];if(P&&typeof P=="object")for(G in w)Object.prototype.hasOwnProperty.call(P,G)&&(U=R(P,G),typeof U>"u"?delete P[G]:P[G]=U);return v.call(b,S,P)}({"":M},""):M},Dv}var mv,M6;function _IA(){if(M6)return mv;M6=1;var e=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,A,t,i={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},o;function r(h){return e.lastIndex=0,e.test(h)?'"'+h.replace(e,function(d){var p=i[d];return typeof p=="string"?p:"\\u"+("0000"+d.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+h+'"'}function f(h,d){var p,C,y,w,D=A,v,M=d[h];switch(M&&typeof M=="object"&&typeof M.toJSON=="function"&&(M=M.toJSON(h)),typeof o=="function"&&(M=o.call(d,h,M)),typeof M){case"string":return r(M);case"number":return isFinite(M)?String(M):"null";case"boolean":case"null":return String(M);case"object":if(!M)return"null";if(A+=t,v=[],Object.prototype.toString.apply(M)==="[object Array]"){for(w=M.length,p=0;p=0&&S6.call(A.callee)==="[object Function]"),i},vv,N6;function JIA(){if(N6)return vv;N6=1;var e;if(!Object.keys){var A=Object.prototype.hasOwnProperty,t=Object.prototype.toString,i=PT,o=Object.prototype.propertyIsEnumerable,r=!o.call({toString:null},"toString"),f=o.call(function(){},"prototype"),h=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],d=function(w){var D=w.constructor;return D&&D.prototype===w},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},C=function(){if(typeof window>"u")return!1;for(var w in window)try{if(!p["$"+w]&&A.call(window,w)&&window[w]!==null&&typeof window[w]=="object")try{d(window[w])}catch{return!0}}catch{return!0}return!1}(),y=function(w){if(typeof window>"u"||!C)return d(w);try{return d(w)}catch{return!1}};e=function(D){var v=D!==null&&typeof D=="object",M=t.call(D)==="[object Function]",R=i(D),b=v&&t.call(D)==="[object String]",S=[];if(!v&&!M&&!R)throw new TypeError("Object.keys called on a non-object");var G=f&&M;if(b&&D.length>0&&!A.call(D,0))for(var U=0;U0)for(var P=0;P"u"||!Ni?et:Ni(Uint8Array),nf={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?et:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?et:ArrayBuffer,"%ArrayIteratorPrototype%":gh&&Ni?Ni([][Symbol.iterator]()):et,"%AsyncFromSyncIteratorPrototype%":et,"%AsyncFunction%":bh,"%AsyncGenerator%":bh,"%AsyncGeneratorFunction%":bh,"%AsyncIteratorPrototype%":bh,"%Atomics%":typeof Atomics>"u"?et:Atomics,"%BigInt%":typeof BigInt>"u"?et:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?et:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?et:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?et:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":ufA,"%eval%":eval,"%EvalError%":lfA,"%Float32Array%":typeof Float32Array>"u"?et:Float32Array,"%Float64Array%":typeof Float64Array>"u"?et:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?et:FinalizationRegistry,"%Function%":VT,"%GeneratorFunction%":bh,"%Int8Array%":typeof Int8Array>"u"?et:Int8Array,"%Int16Array%":typeof Int16Array>"u"?et:Int16Array,"%Int32Array%":typeof Int32Array>"u"?et:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":gh&&Ni?Ni(Ni([][Symbol.iterator]())):et,"%JSON%":typeof JSON=="object"?JSON:et,"%Map%":typeof Map>"u"?et:Map,"%MapIteratorPrototype%":typeof Map>"u"||!gh||!Ni?et:Ni(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?et:Promise,"%Proxy%":typeof Proxy>"u"?et:Proxy,"%RangeError%":CfA,"%ReferenceError%":BfA,"%Reflect%":typeof Reflect>"u"?et:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?et:Set,"%SetIteratorPrototype%":typeof Set>"u"||!gh||!Ni?et:Ni(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?et:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":gh&&Ni?Ni(""[Symbol.iterator]()):et,"%Symbol%":gh?Symbol:et,"%SyntaxError%":Xc,"%ThrowTypeError%":EfA,"%TypedArray%":pfA,"%TypeError%":Bc,"%Uint8Array%":typeof Uint8Array>"u"?et:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?et:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?et:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?et:Uint32Array,"%URIError%":dfA,"%WeakMap%":typeof WeakMap>"u"?et:WeakMap,"%WeakRef%":typeof WeakRef>"u"?et:WeakRef,"%WeakSet%":typeof WeakSet>"u"?et:WeakSet};if(Ni)try{null.error}catch(e){var yfA=Ni(Ni(e));nf["%Error.prototype%"]=yfA}var wfA=function e(A){var t;if(A==="%AsyncFunction%")t=bv("async function () {}");else if(A==="%GeneratorFunction%")t=bv("function* () {}");else if(A==="%AsyncGeneratorFunction%")t=bv("async function* () {}");else if(A==="%AsyncGenerator%"){var i=e("%AsyncGeneratorFunction%");i&&(t=i.prototype)}else if(A==="%AsyncIteratorPrototype%"){var o=e("%AsyncGenerator%");o&&Ni&&(t=Ni(o.prototype))}return nf[A]=t,t},F6={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},CB=J3,OQ=cfA,DfA=CB.call(Function.call,Array.prototype.concat),mfA=CB.call(Function.apply,Array.prototype.splice),x6=CB.call(Function.call,String.prototype.replace),jQ=CB.call(Function.call,String.prototype.slice),vfA=CB.call(Function.call,RegExp.prototype.exec),MfA=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,bfA=/\\(\\)?/g,SfA=function(A){var t=jQ(A,0,1),i=jQ(A,-1);if(t==="%"&&i!=="%")throw new Xc("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&t!=="%")throw new Xc("invalid intrinsic syntax, expected opening `%`");var o=[];return x6(A,MfA,function(r,f,h,d){o[o.length]=h?x6(d,bfA,"$1"):f||r}),o},NfA=function(A,t){var i=A,o;if(OQ(F6,i)&&(o=F6[i],i="%"+o[0]+"%"),OQ(nf,i)){var r=nf[i];if(r===bh&&(r=wfA(i)),typeof r>"u"&&!t)throw new Bc("intrinsic "+A+" exists, but is not available. Please file an issue!");return{alias:o,name:i,value:r}}throw new Xc("intrinsic "+A+" does not exist!")},BB=function(A,t){if(typeof A!="string"||A.length===0)throw new Bc("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof t!="boolean")throw new Bc('"allowMissing" argument must be a boolean');if(vfA(/^%?[^%]*%?$/,A)===null)throw new Xc("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=SfA(A),o=i.length>0?i[0]:"",r=NfA("%"+o+"%",t),f=r.name,h=r.value,d=!1,p=r.alias;p&&(o=p[0],mfA(i,DfA([0,1],p)));for(var C=1,y=!0;C=i.length){var M=rf(h,w);y=!!M,y&&"get"in M&&!("originalValue"in M.get)?h=M.get:h=h[w]}else y=OQ(h,w),h=h[w];y&&!d&&(nf[f]=h)}}return h},Nv,L6;function T3(){if(L6)return Nv;L6=1;var e=BB,A=e("%Object.defineProperty%",!0)||!1;if(A)try{A({},"a",{value:1})}catch{A=!1}return Nv=A,Nv}var kfA=BB,SE=kfA("%Object.getOwnPropertyDescriptor%",!0);if(SE)try{SE([],"length")}catch{SE=null}var P3=SE,U6=T3(),RfA=jT,Ih=dw,_6=P3,KfA=function(A,t,i){if(!A||typeof A!="object"&&typeof A!="function")throw new Ih("`obj` must be an object or a function`");if(typeof t!="string"&&typeof t!="symbol")throw new Ih("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Ih("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Ih("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Ih("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Ih("`loose`, if provided, must be a boolean");var o=arguments.length>3?arguments[3]:null,r=arguments.length>4?arguments[4]:null,f=arguments.length>5?arguments[5]:null,h=arguments.length>6?arguments[6]:!1,d=!!_6&&_6(A,t);if(U6)U6(A,t,{configurable:f===null&&d?d.configurable:!f,enumerable:o===null&&d?d.enumerable:!o,value:i,writable:r===null&&d?d.writable:!r});else if(h||!o&&!r&&!f)A[t]=i;else throw new RfA("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},uS=T3(),ZT=function(){return!!uS};ZT.hasArrayLengthDefineBug=function(){if(!uS)return null;try{return uS([],"length",{value:1}).length!==1}catch{return!0}};var GfA=ZT,FfA=BB,q6=KfA,xfA=GfA(),H6=P3,Y6=dw,LfA=FfA("%Math.floor%"),UfA=function(A,t){if(typeof A!="function")throw new Y6("`fn` is not a function");if(typeof t!="number"||t<0||t>4294967295||LfA(t)!==t)throw new Y6("`length` must be a positive 32-bit integer");var i=arguments.length>2&&!!arguments[2],o=!0,r=!0;if("length"in A&&H6){var f=H6(A,"length");f&&!f.configurable&&(o=!1),f&&!f.writable&&(r=!1)}return(o||r||!i)&&(xfA?q6(A,"length",t,!0,!0):q6(A,"length",t)),A};(function(e){var A=J3,t=BB,i=UfA,o=dw,r=t("%Function.prototype.apply%"),f=t("%Function.prototype.call%"),h=t("%Reflect.apply%",!0)||A.call(f,r),d=T3(),p=t("%Math.max%");e.exports=function(w){if(typeof w!="function")throw new o("a function is required");var D=h(A,f,arguments);return i(D,1+p(0,w.length-(arguments.length-1)),!0)};var C=function(){return h(A,r,arguments)};d?d(e.exports,"apply",{value:C}):e.exports.apply=C})(OT);var O3=OT.exports,zT=BB,$T=O3,_fA=$T(zT("String.prototype.indexOf")),j3=function(A,t){var i=zT(A,!!t);return typeof i=="function"&&_fA(A,".prototype.")>-1?$T(i):i},Bd=(typeof JSON<"u"?JSON:qIA()).stringify,qfA=YIA,HfA=OIA,YfA=O3,XT=j3,J6=XT("Array.prototype.join"),kv=XT("Array.prototype.push"),T6=function(A,t){for(var i="",o=0;o1?arguments[1]:void 0,i=t&&t.space||"";typeof i=="number"&&(i=T6(i," "));var o=!!t&&typeof t.cycles=="boolean"&&t.cycles,r=t&&t.replacer?YfA(t.replacer):JfA,f=typeof t=="function"?t:t&&t.cmp,h=f&&function(p){var C=f.length>2&&function(w){return p[w]};return function(y,w){return f({key:y,value:p[y]},{key:w,value:p[w]},C?{__proto__:null,get:C}:void 0)}},d=[];return function p(C,y,w,D){var v=i?` +`+T6(D,i):"",M=i?": ":":";if(w&&w.toJSON&&typeof w.toJSON=="function"&&(w=w.toJSON()),w=r(C,y,w),w!==void 0){if(typeof w!="object"||w===null)return Bd(w);if(qfA(w)){for(var G=[],R=0;R0&&!A.includes(e.length))throw new Error(`Uint8Array expected of length ${A}, not of length=${e.length}`)}function W3(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Jr(e.outputLen),Jr(e.blockLen)}function Rf(e,A=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(A&&e.finished)throw new Error("Hash#digest() has already been called")}function V3(e,A){Vu(e);const t=A.outputLen;if(e.length>lS&dd)}:{h:Number(e>>lS&dd)|0,l:Number(e&dd)|0}}function tP(e,A=!1){let t=new Uint32Array(e.length),i=new Uint32Array(e.length);for(let o=0;oBigInt(e>>>0)<>>0),WfA=(e,A,t)=>e>>>t,VfA=(e,A,t)=>e<<32-t|A>>>t,ZfA=(e,A,t)=>e>>>t|A<<32-t,zfA=(e,A,t)=>e<<32-t|A>>>t,$fA=(e,A,t)=>e<<64-t|A>>>t-32,XfA=(e,A,t)=>e>>>t-32|A<<64-t,AhA=(e,A)=>A,ehA=(e,A)=>e,iP=(e,A,t)=>e<>>32-t,rP=(e,A,t)=>A<>>32-t,nP=(e,A,t)=>A<>>64-t,oP=(e,A,t)=>e<>>64-t;function thA(e,A,t,i){const o=(A>>>0)+(i>>>0);return{h:e+t+(o/2**32|0)|0,l:o|0}}const ihA=(e,A,t)=>(e>>>0)+(A>>>0)+(t>>>0),rhA=(e,A,t,i)=>A+t+i+(e/2**32|0)|0,nhA=(e,A,t,i)=>(e>>>0)+(A>>>0)+(t>>>0)+(i>>>0),ohA=(e,A,t,i,o)=>A+t+i+o+(e/2**32|0)|0,shA=(e,A,t,i,o)=>(e>>>0)+(A>>>0)+(t>>>0)+(i>>>0)+(o>>>0),ahA=(e,A,t,i,o,r)=>A+t+i+o+r+(e/2**32|0)|0,Oe={fromBig:eP,split:tP,toBig:jfA,shrSH:WfA,shrSL:VfA,rotrSH:ZfA,rotrSL:zfA,rotrBH:$fA,rotrBL:XfA,rotr32H:AhA,rotr32L:ehA,rotlSH:iP,rotlSL:rP,rotlBH:nP,rotlBL:oP,add:thA,add3L:ihA,add3H:rhA,add4L:nhA,add4H:ohA,add5H:ahA,add5L:shA},NE=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const kE=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),RE=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),ts=(e,A)=>e<<32-A|e>>>A,ut=(e,A)=>e<>>32-A>>>0,WQ=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,ghA=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;function VQ(e){for(let A=0;Ae().update(eu(i)).digest(),t=e();return A.outputLen=t.outputLen,A.blockLen=t.blockLen,A.create=()=>e(),A}function aP(e=32){if(NE&&typeof NE.getRandomValues=="function")return NE.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}const gP=[],IP=[],fP=[],fhA=BigInt(0),Gl=BigInt(1),hhA=BigInt(2),chA=BigInt(7),uhA=BigInt(256),lhA=BigInt(113);for(let e=0,A=Gl,t=1,i=0;e<24;e++){[t,i]=[i,(2*t+3*i)%5],gP.push(2*(5*i+t)),IP.push((e+1)*(e+2)/2%64);let o=fhA;for(let r=0;r<7;r++)A=(A<>chA)*lhA)%uhA,A&hhA&&(o^=Gl<<(Gl<t>32?nP(e,A,t):iP(e,A,t),O6=(e,A,t)=>t>32?oP(e,A,t):rP(e,A,t);function dhA(e,A=24){const t=new Uint32Array(10);for(let i=24-A;i<24;i++){for(let f=0;f<10;f++)t[f]=e[f]^e[f+10]^e[f+20]^e[f+30]^e[f+40];for(let f=0;f<10;f+=2){const h=(f+8)%10,d=(f+2)%10,p=t[d],C=t[d+1],y=P6(p,C,1)^t[h],w=O6(p,C,1)^t[h+1];for(let D=0;D<50;D+=10)e[f+D]^=y,e[f+D+1]^=w}let o=e[2],r=e[3];for(let f=0;f<24;f++){const h=IP[f],d=P6(o,r,h),p=O6(o,r,h),C=gP[f];o=e[C],r=e[C+1],e[C]=d,e[C+1]=p}for(let f=0;f<50;f+=10){for(let h=0;h<10;h++)t[h]=e[f+h];for(let h=0;h<10;h++)e[f+h]^=~t[(h+2)%10]&t[(h+4)%10]}e[0]^=ChA[i],e[1]^=BhA[i]}t.fill(0)}let EhA=class hP extends Z3{constructor(A,t,i,o=!1,r=24){if(super(),this.blockLen=A,this.suffix=t,this.outputLen=i,this.enableXOF=o,this.rounds=r,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Jr(i),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=kE(this.state)}keccak(){WQ||VQ(this.state32),dhA(this.state32,this.rounds),WQ||VQ(this.state32),this.posOut=0,this.pos=0}update(A){Rf(this);const{blockLen:t,state:i}=this;A=eu(A);const o=A.length;for(let r=0;r=i&&this.keccak();const f=Math.min(i-this.posOut,r-o);A.set(t.subarray(this.posOut,this.posOut+f),o),this.posOut+=f,o+=f}return A}xofInto(A){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(A)}xof(A){return Jr(A),this.xofInto(new Uint8Array(A))}digestInto(A){if(V3(A,this),this.finished)throw new Error("digest() was already called");return this.writeInto(A),this.destroy(),A}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(A){const{blockLen:t,suffix:i,outputLen:o,rounds:r,enableXOF:f}=this;return A||(A=new hP(t,i,o,f,r)),A.state32.set(this.state32),A.pos=this.pos,A.posOut=this.posOut,A.finished=this.finished,A.rounds=r,A.suffix=i,A.outputLen=o,A.enableXOF=f,A.destroyed=this.destroyed,A}};const QhA=(e,A,t)=>z3(()=>new EhA(A,e,t)),j6=QhA(1,136,256/8),ZQ=AP.bytes;function cP(e){if(!(e instanceof Uint8Array))throw new TypeError(`bytesToUtf8 expected Uint8Array, got ${typeof e}`);return new TextDecoder().decode(e)}function phA(e,A){if(e.length!==A.length)return!1;for(let t=0;t(AP.bytes(A),e(A))}(()=>{const e=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0,A=typeof module<"u"&&typeof module.require=="function"&&module.require.bind(module);return{node:A&&!e?A("crypto"):void 0,web:e}})();const xt=(()=>{const e=$3(j6);return e.create=j6.create,e})();function of(e){return Buffer.from(xt(e))}const yhA=new br.ec("secp256k1");function whA(e){return{iv:Buffer.from(e.iv,"hex"),ephemPublicKey:Buffer.from(e.ephemPublicKey,"hex"),ciphertext:Buffer.from(e.ciphertext,"hex"),mac:Buffer.from(e.mac,"hex")}}function DhA(e){return{iv:Buffer.from(e.iv).toString("hex"),ephemPublicKey:Buffer.from(e.ephemPublicKey).toString("hex"),ciphertext:Buffer.from(e.ciphertext).toString("hex"),mac:Buffer.from(e.mac).toString("hex")}}async function KE(e,A){const t=JSON.stringify(A),i=Buffer.from(t,"utf-8"),o=await lB(ds(Buffer.from(e,"hex")),i),r=DhA(o);return JSON.stringify(r)}async function uP(e,A){const t=JSON.parse(A),i=whA(t),o=yhA.keyFromPrivate(e),f=(await zg(Buffer.from(o.getPrivate().toString("hex",64),"hex"),i)).toString("utf-8");return JSON.parse(f)}const mhA=86400;class BS extends AiA{constructor({sessionServerBaseUrl:A,sessionNamespace:t,sessionTime:i,sessionId:o,allowedOrigin:r}={}){super(),FA(this,"sessionServerBaseUrl","https://session.web3auth.io"),FA(this,"sessionNamespace",void 0),FA(this,"allowedOrigin",void 0),FA(this,"sessionTime",mhA),FA(this,"sessionId",""),A&&(this.sessionServerBaseUrl=A),t&&(this.sessionNamespace=t),i&&(this.sessionTime=i),o&&(this.sessionId=o.padStart(64,"0")),r&&(this.allowedOrigin=r||"*")}static generateRandomSessionKey(){return Bw().toString("hex").padStart(64,"0")}async createSession(A,t={}){super.checkSessionParams();const i=Buffer.from(this.sessionId,"hex"),o=ds(i).toString("hex"),r=await KE(this.sessionId,A),f=(await ME(i,of(Buffer.from(r,"utf8")))).toString("hex"),h={key:o,data:r,signature:f,namespace:this.sessionNamespace,timeout:this.sessionTime,allowedOrigin:this.allowedOrigin};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:h,headers:t}),this.sessionId}async authorizeSession({headers:A}={headers:{}}){super.checkSessionParams();const i={key:ds(Buffer.from(this.sessionId,"hex")).toString("hex"),namespace:this.sessionNamespace},o=await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/get`,data:i,headers:A});if(!o.message)throw new Error("Session Expired or Invalid public key");const r=await uP(this.sessionId,o.message);if(r.error)throw new Error("There was an error decrypting data.");return r}async updateSession(A,t={}){super.checkSessionParams();const i=Buffer.from(this.sessionId,"hex"),o=ds(i).toString("hex"),r=await KE(this.sessionId,A),f=(await ME(i,of(Buffer.from(r,"utf8")))).toString("hex"),h={key:o,data:r,signature:f,namespace:this.sessionNamespace,allowedOrigin:this.allowedOrigin};await super.request({method:"PUT",url:`${this.sessionServerBaseUrl}/v2/store/update`,data:h,headers:t})}async invalidateSession(A={}){super.checkSessionParams();const t=Buffer.from(this.sessionId,"hex"),i=ds(t).toString("hex"),o=await KE(this.sessionId,{}),r=(await ME(t,of(Buffer.from(o,"utf8")))).toString("hex"),f={key:i,data:o,signature:r,namespace:this.sessionNamespace,timeout:1};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:f,headers:A}),this.sessionId="",!0}}async function vhA(e,A){try{return await new BS({sessionId:e,sessionServerBaseUrl:A,allowedOrigin:!0}).authorizeSession()}catch(t){throw tn.error("fetch data from storage server error",t),new Error("Unable to retrieve data from storage server, invalid key or key expired.")}}class MhA extends Va{constructor(A){super(A),this.setFinalUrl()}setFinalUrl(){const{passkeysHostUrl:A}=this.params.customState||{};if(!A)throw new Error("Invalid passkeys url.");const t=new URL(A),i=JSON.parse(JSON.stringify(this.params.jwtParams||{})),o=Sn({state:this.state,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri},i);Object.keys(o).forEach(r=>{const f=r;o[f]&&t.searchParams.append(f,o[f])}),this.finalURL=t}async getUserInfo(A,t){const{idToken:i,extraParams:o}=A,{sessionId:r}=JSON.parse(Ka.decode(o))||{};if(!r)throw new Error("sessionId not found");const{verifier_id:f,signature:h,clientDataJSON:d,authenticatorData:p,publicKey:C,challenge:y,rpOrigin:w,rpId:D,credId:v,transports:M,username:R}=await vhA(r,t);if(h!==i)throw new Error("idtoken should be equal to signature");return{email:"",name:"Passkeys Login",profileImage:"",verifier:this.params.verifier,verifierId:f,typeOfLogin:this.params.typeOfLogin,extraVerifierParams:{signature:h,clientDataJSON:d,authenticatorData:p,publicKey:C,challenge:y,rpOrigin:w,rpId:D,credId:v,transports:M,username:R}}}}const bhA=["access_token","id_token"];class ShA extends Va{constructor(A){super(A),FA(this,"SCOPE","openid profile email"),FA(this,"RESPONSE_TYPE","token id_token"),FA(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:A}=this.params.jwtParams,t=I3(A);t.pathname="/passwordless/start",this.finalURL=t}async getUserInfo(A){const{idToken:t,accessToken:i}=A,{domain:o,verifierIdField:r,isVerifierIdCaseSensitive:f}=this.params.jwtParams;try{const h=new URL(o),d=await Nn(`${qy(h)}userinfo`,{headers:{Authorization:`Bearer ${i}`}}),{picture:p,name:C,email:y}=d;return{email:y,name:C,profileImage:p,verifierId:Yc(d,this.params.typeOfLogin,r,f),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(h){Bt.error(h);const d=Hy(t).payload,{name:p,email:C,picture:y}=d;return{profileImage:y,name:p,email:C,verifierId:Yc(d,this.params.typeOfLogin,r,f),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}async handleLoginWindow(){const{BroadcastChannel:A}=await o3(async()=>{const{BroadcastChannel:t}=await import("./index-CFiF7Nza.js");return{BroadcastChannel:t}},[]);return new Promise((t,i)=>{if(this.params.redirectToOpener){i(new Error("Cannot use redirect to opener for passwordless"));return}const o=f=>{try{const{error:h,data:d}=f,p=d||{},{instanceParams:C,hashParams:{access_token:y,id_token:w}}=p,D=M0(p.hashParams,bhA);if(h){Bt.error(f.error),i(new Error(h));return}f.data&&C.verifier===this.params.verifier&&(Bt.info(f.data),t(ZA(ZA({accessToken:y,idToken:w||""},D),{},{state:C})))}catch(h){Bt.error(h),i(h)}},r=new A(`redirect_channel_${this.nonce}`,uJ);r.addEventListener("message",async f=>{o(f),r.close()});try{const{connection:f="email",login_hint:h}=this.params.jwtParams,d=Sn({client_id:this.params.clientId,connection:f,email:f==="email"?h:void 0,phone_number:f==="sms"?h:void 0,send:"link",authParams:{scope:this.SCOPE,state:this.state,response_type:this.RESPONSE_TYPE,redirect_uri:this.params.redirect_uri,nonce:this.nonce,prompt:this.PROMPT}},{authParams:this.params.jwtParams});ci(this.finalURL.href,JSON.parse(JSON.stringify(d))).then(p=>{Bt.info("posted",p)}).catch(p=>{Bt.error(p),i(p)})}catch(f){Bt.error(f),i(f)}})}}class NhA extends Va{constructor(A){super(A),FA(this,"RESPONSE_TYPE","token"),FA(this,"SCOPE","user:read:email"),this.setFinalUrl()}setFinalUrl(){const A=new URL("https://id.twitch.tv/oauth2/authorize"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),i=Sn({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,force_verify:"true"},t);Object.keys(i).forEach(o=>{const r=o;i[r]&&A.searchParams.append(r,i[r])}),this.finalURL=A}async getUserInfo(A){const{accessToken:t}=A,i=await Nn("https://api.twitch.tv/helix/users",{headers:{Authorization:`Bearer ${t}`,"Client-ID":this.params.clientId}}),[{profile_image_url:o="",display_name:r="",email:f="",id:h}]=i.data||[];return{profileImage:o,name:r,email:f,verifierId:h,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}const khA={link:"link",code:"code"};class RhA extends Va{constructor(A){super(A),FA(this,"SCOPE","openid profile email"),FA(this,"RESPONSE_TYPE","token id_token"),FA(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:A}=this.params.jwtParams||{},t=I3(A||"https://passwordless.web3auth.io/v6");t.pathname+=t.pathname.endsWith("/")?"authorize":"/authorize";const i=JSON.parse(JSON.stringify(this.params.jwtParams||{}));delete i.domain,this.params.customState=ZA(ZA({},this.params.customState||{}),{},{client:this.params.web3AuthClientId});const o=Sn({state:this.state,client_id:this.params.clientId||this.params.web3AuthClientId,redirect_uri:this.params.redirect_uri,nonce:this.nonce,network:this.params.web3AuthNetwork,connection:cJ[this.params.typeOfLogin],scope:this.SCOPE,response_type:this.RESPONSE_TYPE,prompt:this.PROMPT,flow_type:(i==null?void 0:i.flow_type)||khA.code},i);Object.keys(o).forEach(r=>{const f=r;o[f]&&t.searchParams.append(f,o[f])}),this.finalURL=t}async getUserInfo(A){const{idToken:t}=A,i=Hy(t).payload,{name:o,email:r,picture:f}=i;return{profileImage:f,name:o,email:r,verifierId:o.toLowerCase(),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}const KhA=e=>{const{verifier:A,typeOfLogin:t,clientId:i,jwtParams:o}=e;if(!A||!t||!i)throw new Error("Invalid params. Missing verifier, typeOfLogin or clientId");const{domain:r,login_hint:f,id_token:h,access_token:d}=o||{};switch(t){case je.GOOGLE:return new ztA(e);case je.FACEBOOK:return new ZtA(e);case je.TWITCH:return new NhA(e);case je.DISCORD:return new VtA(e);case je.EMAIL_PASSWORDLESS:case je.SMS_PASSWORDLESS:if(!f)throw new Error("Invalid params. Missing login_hint for web3auth passwordless login");return new RhA(e);case je.PASSWORDLESS:if(!r||!f)throw new Error("Invalid params. Missing domain or login_hint for passwordless login");return new ShA(e);case je.APPLE:case je.GITHUB:case je.LINKEDIN:case je.TWITTER:case je.WEIBO:case je.LINE:case je.EMAIL_PASSWORD:case je.JWT:case je.REDDIT:if(h||d)return new XtA(e);if(!r)throw new Error("Invalid params for jwt login. Missing domain");return new $tA(e);case je.PASSKEYS:return new MhA(e);default:throw new Error("Unsupported login type")}};var W6=KhA;const X3={[cr.SAPPHIRE_DEVNET]:["https://node-1.dev-node.web3auth.io","https://node-2.dev-node.web3auth.io","https://node-3.dev-node.web3auth.io","https://node-4.dev-node.web3auth.io","https://node-5.dev-node.web3auth.io"],[cr.SAPPHIRE_MAINNET]:["https://node-1.node.web3auth.io","https://node-2.node.web3auth.io","https://node-3.node.web3auth.io","https://node-4.node.web3auth.io","https://node-5.node.web3auth.io"]},V6=(e,A)=>{const t=X3[e];if(!t||t.length===0)throw new Error(`Unsupported network: ${e}`);const i=Tr[A];return t.map(o=>i&&i.networkIdentifier?`${o}/sss/${i.networkIdentifier}/jrpc`:`${o}/sss/jrpc`)},GhA=(e,A)=>{const t=X3[e];if(!t||t.length===0)throw new Error(`Unsupported network: ${e}`);const i=Tr[A];return t.map(o=>i&&i.networkIdentifier?`${o}/rss/${i.networkIdentifier}`:`${o}/rss`)},FhA=(e,A,t=lt.SECP256K1)=>{const i=X3[e];if(!i||i.length===0)throw new Error(`Unsupported network: ${e}`);const o=t===lt.ED25519?"tss-frost":"tss",r=Tr[A];return i.map(f=>r&&r.networkIdentifier?`${f}/${o}/${r.networkIdentifier}`:`${f}/${o}`)},xhA={[cr.SAPPHIRE_MAINNET]:[{X:"e0925898fee0e9e941fdca7ee88deec99939ae9407e923535c4d4a3a3ff8b052",Y:"54b9fea924e3f3e40791f9987f4234ae4222412d65b74068032fa5d8b63375c1"},{X:"9124cf1e280aab32ba50dffd2de81cecabc13d82d2c1fe9de82f3b3523f9b637",Y:"fca939a1ceb42ce745c55b21ef094f543b457630cb63a94ef4f1afeee2b1f107"},{X:"555f681a63d469cc6c3a58a97e29ebd277425f0e6159708e7c7bf05f18f89476",Y:"606f2bcc0884fa5b64366fc3e8362e4939841b56acd60d5f4553cf36b891ac4e"},{X:"2b5f58d8e340f1ab922e89b3a69a68930edfe51364644a456335e179bc130128",Y:"4b4daa05939426e3cbe7d08f0e773d2bf36f64c00d04620ee6df2a7af4d2247"},{X:"3ecbb6a68afe72cf34ec6c0a12b5cb78a0d2e83ba402983b6adbc5f36219861a",Y:"dc1031c5cc8f0472bd521a62a64ebca9e163902c247bf05937daf4ae835091e4"}],[cr.SAPPHIRE_DEVNET]:[{X:"f74389b0a4c8d10d2a687ae575f69b20f412d41ab7f1fe6b358aa14871327247",Y:"54e3a73098ed9bced3ef8821736e9794f9264a1420c0c7ad15d2fa617ba35ef7"},{X:"bc38813a6873e526087918507c78fc3a61624670ee851ecfb4f3bef55d027b5a",Y:"ac4b21229f662a0aefdfdac21cf17c3261a392c74a8790db218b34e3e4c1d56a"},{X:"b56541684ea5fa40c8337b7688d502f0e9e092098962ad344c34e94f06d293fb",Y:"759a998cef79d389082f9a75061a29190eec0cac99b8c25ddcf6b58569dad55c"},{X:"7bcb058d4c6ffc6ba4bfdfd93d141af35a66338a62c7c27cdad2ae3f8289b767",Y:"336ab1935e41ed4719e162587f0ab55518db4207a1eb36cc72303f1b86689d2b"},{X:"bf12a136ef94399ea098f926f04e26a4ec4ac70f69cce274e8893704c4951773",Y:"bdd44828020f52ce510e026338216ada184a6867eb4e19fb4c2d495d4a7e15e4"}]},Z6=(e,A,t)=>({currentEpoch:"1",torusNodeEndpoints:V6(e,A),torusNodeSSSEndpoints:V6(e,A),torusNodeRSSEndpoints:GhA(e,A),torusNodeTSSEndpoints:FhA(e,A,t),torusIndexes:[1,2,3,4,5],torusNodePub:xhA[e]});function GE(e,A){if(Object.values(cr).includes(e))return Z6(e,void 0,A);if(Object.values(Wi).includes(e)){const t=Tr[e];if(t.migrationCompleted)return Z6(t.networkMigratedTo,e,A)}}const Ed=tn.getLogger("fnd");let LhA=class{constructor({network:A=cr.SAPPHIRE_MAINNET,keyType:t=lt.SECP256K1,fndServerEndpoint:i,enableLogging:o=!1}={}){FA(this,"fndServerEndpoint",`${JeA}/node-details`),FA(this,"_currentEpoch","1"),FA(this,"_keyType",void 0),FA(this,"_torusNodeEndpoints",[]),FA(this,"_torusNodeRSSEndpoints",[]),FA(this,"_torusNodeSSSEndpoints",[]),FA(this,"_torusNodeTSSEndpoints",[]),FA(this,"_torusNodePub",[]),FA(this,"_torusIndexes",[]),FA(this,"updated",void 0),FA(this,"network",void 0),this.network=A,this._keyType=t,this.updated=!1,i&&(this.fndServerEndpoint=i),o?Ed.enableAll():Ed.disableAll()}get _nodeDetails(){return{currentEpoch:this._currentEpoch,torusNodeEndpoints:this._torusNodeEndpoints,torusNodeSSSEndpoints:this._torusNodeSSSEndpoints,torusNodeRSSEndpoints:this._torusNodeRSSEndpoints,torusNodeTSSEndpoints:this._torusNodeTSSEndpoints,torusNodePub:this._torusNodePub,torusIndexes:this._torusIndexes,updated:this.updated}}async getNodeDetails({verifier:A,verifierId:t}){try{if(this.updated&&!YeA.includes(this.network))return this._nodeDetails;try{const{nodeDetails:o}=await Nn(`${this.fndServerEndpoint}?network=${this.network}&verifier=${A}&verifierId=${t}&keyType=${this._keyType}`);return this.setNodeDetails(o),this._nodeDetails}catch(o){Ed.error("Failed to fetch node details from server, using local.",o)}const i=GE(this.network,this._keyType);if(!i)throw new Error("Failed to fetch node details");return this.setNodeDetails(i),this._nodeDetails}catch(i){throw Ed.error("Failed to fetch node details",i),i}}async getMetadataUrl(){return Object.values(Wi).includes(this.network)?rJ[this.network]:(await this.getNodeDetails({verifier:"test-verifier",verifierId:"test-verifier-id"})).torusNodeEndpoints[0].replace("/sss/jrpc","/metadata")}setNodeDetails(A){const{currentEpoch:t,torusNodeEndpoints:i,torusNodeSSSEndpoints:o,torusNodeRSSEndpoints:r,torusNodeTSSEndpoints:f,torusNodePub:h,torusIndexes:d}=A;this._torusNodeEndpoints=i,this._torusNodeSSSEndpoints=o||[],this._torusNodeRSSEndpoints=r||[],this._torusNodeTSSEndpoints=f||[],this._torusNodePub=h,this._torusIndexes=d,this._currentEpoch=t,this.updated=!0}};var UhA=LhA;const Tg={GET_OR_SET_KEY:"GetPubKeyOrKeyAssign",VERIFIER_LOOKUP:"VerifierLookupRequest",COMMITMENT_REQUEST:"CommitmentRequest",IMPORT_SHARES:"ImportShares",GET_SHARE_OR_KEY_ASSIGN:"GetShareOrKeyAssign",RETRIEVE_SHARES_WITH_LINKED_PASSKEY:"RetrieveSharesWithLinkedPasskey",GENERATE_AUTH_MESSAGE:"GenerateAuthMessage",LINK_PASSKEY:"LinkPasskey",UNLINK_PASSKEY:"UnlinkPasskey",GET_LINKED_PASSKEYS:"GetLinkedPasskeys"},_hA="https://node-1.node.web3auth.io/metadata",qhA="https://node-1.dev-node.web3auth.io/metadata";let HhA=class lP{constructor(A,t){FA(this,"share",void 0),FA(this,"shareIndex",void 0),this.share=new _A(t,"hex"),this.shareIndex=new _A(A,"hex")}static fromJSON(A){const{share:t,shareIndex:i}=A;return new lP(i,t)}toJSON(){return{share:this.share.toString("hex",64),shareIndex:this.shareIndex.toString("hex",64)}}},YhA=class{constructor(A,t){FA(this,"polynomial",void 0),FA(this,"ecCurve",void 0),this.polynomial=A,this.ecCurve=t}getThreshold(){return this.polynomial.length}polyEval(A){const t=new _A(A,"hex");let i=new _A(t),o=new _A(0);o=o.add(this.polynomial[0]);for(let r=1;rtypeof o=="number"?new _A(o):o instanceof _A?o:typeof o=="string"?new _A(o,"hex"):o),i={};for(let o=0;o(r==null?void 0:r.message)||r).join(", ")}, + predicate error: ${i}, + ${t.length} responses, + responses: ${JSON.stringify(t)}`;super(o),FA(this,"errors",void 0),FA(this,"responses",void 0),FA(this,"predicate",void 0),this.errors=A,this.responses=t,this.predicate=i}get message(){return`${super.message}. errors: ${this.errors.map(A=>(A==null?void 0:A.message)||A).join(", ")} and ${this.responses.length} responses: ${JSON.stringify(this.responses)}, + predicate error: ${this.predicate}`}toString(){return this.message}};const Ew=(e,A)=>new Promise((t,i)=>{let o=0;const r={resolved:!1},f=new Array(e.length).fill(void 0),h=new Array(e.length).fill(void 0);let d;e.forEach((p,C)=>{p.then(y=>{h[C]=y}).catch(y=>{f[C]=y}).finally(()=>{if(!r.resolved)return A(h.slice(0),r).then(y=>{r.resolved=!0,t(y)}).catch(y=>{d=y}).finally(()=>{if(o+=1,o===e.length){const w=Object.values(h.reduce((D,v)=>{if(v){var M;const{id:R,error:b}=v;(b==null||(M=b.data)===null||M===void 0?void 0:M.length)>0&&(b.data.startsWith("Error occurred while verifying params")?D[R]=ThA(b.data):D[R]=b.data)}return D},{}));if(w.length>0){const D=w.length>1?` +${w.map(v=>`• ${v}`).join(` +`)}`:w[0];i(new Error(D))}else{var y;i(new PhA({errors:f,responses:h,predicate:((y=d)===null||y===void 0?void 0:y.message)||d}))}}})})})});function ur(e){return`0x${Buffer.from(xt(e)).toString("hex")}`}const AR=(e,A)=>e.genKeyPair().getPrivate().toArrayLike(A),za=e=>{if(e===lt.ED25519)return new br.ec(lt.ED25519);if(e===lt.SECP256K1)return new br.ec(lt.SECP256K1);throw new Error(`Invalid keyType: ${e}`)},OhA=e=>{const A={keys:[],is_new_key:e.is_new_key};if(e&&e.keys&&e.keys.length>0){const t=e.keys[0];A.keys=[{pub_key_X:t.pub_key_X,pub_key_Y:t.pub_key_Y,address:t.address}]}return A},jhA=e=>{const A={keys:[]};if(e&&e.keys&&e.keys.length>0){const t=e.keys[0];A.keys=[{pub_key_X:t.pub_key_X,pub_key_Y:t.pub_key_Y,address:t.address}]}return A},BP=(e,A)=>{let t=e;if(typeof t=="number"&&(t=Array.from({length:t},(r,f)=>f)),A>t.length||A<=0)return[];if(A===t.length)return[t];if(A===1)return t.reduce((r,f)=>[...r,[f]],[]);const i=[];let o=[];for(let r=0;r<=t.length-A+1;r+=1){o=BP(t.slice(r+1),A-1);for(let f=0;f{const t={};for(let i=0;i{e>0?setTimeout(A,e):t(new Error("value of milliseconds must be greater than 0"))})}function VhA(e,A){async function t(i){try{if(i>0){const r=2**i*100;await WhA(r)}return await e()}catch(o){const r=o.message,f=["Timed out","Failed to fetch","fetch failed","Load failed","cancelled","NetworkError when attempting to fetch resource.","TypeError: Failed to fetch","TypeError: cancelled","TypeError: NetworkError when attempting to fetch resource."];if(i{if(e.length>=255)throw new TypeError("Alphabet too long");const A=new Uint8Array(256);for(let p=0;p>>0,M=new Uint8Array(v);for(;w!==D;){let S=p[w],G=0;for(let U=v-1;(S!==0||G>>0,M[U]=S%t>>>0,S=S/t>>>0;if(S!==0)throw new Error("Non-zero carry");y=G,w++}let R=v-y;for(;R!==v&&M[R]===0;)R++;let b=i.repeat(C);for(;R>>0,v=new Uint8Array(D);for(;p[C];){let S=A[p.charCodeAt(C)];if(S===255)return;let G=0;for(let U=D-1;(S!==0||G>>0,v[U]=S%256>>>0,S=S/256>>>0;if(S!==0)throw new Error("Non-zero carry");w=G,C++}let M=D-w;for(;M!==D&&v[M]===0;)M++;const R=new Uint8Array(y+(D-M));let b=y;for(;M!==D;)R[b++]=v[M++];return R}function d(p){const C=h(p);if(C)return C;throw new Error(`Non-base${t} character`)}return{encode:f,decodeUnsafe:h,decode:d}},zhA="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",$hA=ZhA(zhA);function XhA(e,A,t,i){if(typeof e.setBigUint64=="function")return e.setBigUint64(A,t,i);const o=BigInt(32),r=BigInt(4294967295),f=Number(t>>o&r),h=Number(t&r),d=i?4:0,p=i?0:4;e.setUint32(A+d,f,i),e.setUint32(A+p,h,i)}const AcA=(e,A,t)=>e&A^~e&t,ecA=(e,A,t)=>e&A^e&t^A&t;let QP=class extends Z3{constructor(A,t,i,o){super(),this.blockLen=A,this.outputLen=t,this.padOffset=i,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(A),this.view=RE(this.buffer)}update(A){Rf(this);const{view:t,buffer:i,blockLen:o}=this;A=eu(A);const r=A.length;for(let f=0;fo-f&&(this.process(i,0),f=0);for(let y=f;yC.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;yBigInt(e))),sg=new Uint32Array(80),ag=new Uint32Array(80);let rcA=class extends QP{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:A,Al:t,Bh:i,Bl:o,Ch:r,Cl:f,Dh:h,Dl:d,Eh:p,El:C,Fh:y,Fl:w,Gh:D,Gl:v,Hh:M,Hl:R}=this;return[A,t,i,o,r,f,h,d,p,C,y,w,D,v,M,R]}set(A,t,i,o,r,f,h,d,p,C,y,w,D,v,M,R){this.Ah=A|0,this.Al=t|0,this.Bh=i|0,this.Bl=o|0,this.Ch=r|0,this.Cl=f|0,this.Dh=h|0,this.Dl=d|0,this.Eh=p|0,this.El=C|0,this.Fh=y|0,this.Fl=w|0,this.Gh=D|0,this.Gl=v|0,this.Hh=M|0,this.Hl=R|0}process(A,t){for(let G=0;G<16;G++,t+=4)sg[G]=A.getUint32(t),ag[G]=A.getUint32(t+=4);for(let G=16;G<80;G++){const U=sg[G-15]|0,P=ag[G-15]|0,z=Oe.rotrSH(U,P,1)^Oe.rotrSH(U,P,8)^Oe.shrSH(U,P,7),oA=Oe.rotrSL(U,P,1)^Oe.rotrSL(U,P,8)^Oe.shrSL(U,P,7),J=sg[G-2]|0,q=ag[G-2]|0,X=Oe.rotrSH(J,q,19)^Oe.rotrBH(J,q,61)^Oe.shrSH(J,q,6),Q=Oe.rotrSL(J,q,19)^Oe.rotrBL(J,q,61)^Oe.shrSL(J,q,6),n=Oe.add4L(oA,Q,ag[G-7],ag[G-16]),a=Oe.add4H(n,z,X,sg[G-7],sg[G-16]);sg[G]=a|0,ag[G]=n|0}let{Ah:i,Al:o,Bh:r,Bl:f,Ch:h,Cl:d,Dh:p,Dl:C,Eh:y,El:w,Fh:D,Fl:v,Gh:M,Gl:R,Hh:b,Hl:S}=this;for(let G=0;G<80;G++){const U=Oe.rotrSH(y,w,14)^Oe.rotrSH(y,w,18)^Oe.rotrBH(y,w,41),P=Oe.rotrSL(y,w,14)^Oe.rotrSL(y,w,18)^Oe.rotrBL(y,w,41),z=y&D^~y&M,oA=w&v^~w&R,J=Oe.add5L(S,P,oA,icA[G],ag[G]),q=Oe.add5H(J,b,U,z,tcA[G],sg[G]),X=J|0,Q=Oe.rotrSH(i,o,28)^Oe.rotrBH(i,o,34)^Oe.rotrBH(i,o,39),n=Oe.rotrSL(i,o,28)^Oe.rotrBL(i,o,34)^Oe.rotrBL(i,o,39),a=i&r^i&h^r&h,g=o&f^o&d^f&d;b=M|0,S=R|0,M=D|0,R=v|0,D=y|0,v=w|0,{h:y,l:w}=Oe.add(p|0,C|0,q|0,X|0),p=h|0,C=d|0,h=r|0,d=f|0,r=i|0,f=o|0;const I=Oe.add3L(X,n,g);i=Oe.add3H(I,q,Q,a),o=I|0}({h:i,l:o}=Oe.add(this.Ah|0,this.Al|0,i|0,o|0)),{h:r,l:f}=Oe.add(this.Bh|0,this.Bl|0,r|0,f|0),{h,l:d}=Oe.add(this.Ch|0,this.Cl|0,h|0,d|0),{h:p,l:C}=Oe.add(this.Dh|0,this.Dl|0,p|0,C|0),{h:y,l:w}=Oe.add(this.Eh|0,this.El|0,y|0,w|0),{h:D,l:v}=Oe.add(this.Fh|0,this.Fl|0,D|0,v|0),{h:M,l:R}=Oe.add(this.Gh|0,this.Gl|0,M|0,R|0),{h:b,l:S}=Oe.add(this.Hh|0,this.Hl|0,b|0,S|0),this.set(i,o,r,f,h,d,p,C,y,w,D,v,M,R,b,S)}roundClean(){sg.fill(0),ag.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};const ncA=z3(()=>new rcA),ocA=$3(ncA);function dS(e,A){const t=new _A(AR(A,Buffer));return e.find(i=>i.eq(t))?dS(e,A):t}function scA(e,A,t){if(A.length!==t.length)throw new Error("shares not equal to nodeIndex length in lagrangeInterpolation");let i=new _A(0);for(let o=0;o{const A=za(lt.SECP256K1),t=e.toString("hex",64),i=xt(Buffer.from(t,"hex")),o=new _A(i).umod(A.n).toString("hex",64),r=Buffer.from(o,"hex"),f=A.keyFromPrivate(r);if(r.length!==32)throw new Error(`Key length must be equal to 32. got ${r.length}`);return{scalar:f.getPrivate(),point:f.getPublic()}};async function z6(e,A,t){const i=eR(e);return await zg(t,ZA(ZA({},i),{},{ciphertext:Buffer.from(A,"hex")}))}async function gcA(e,A,t){const i=eR(e);try{return await zg(t,ZA(ZA({},i),{},{ciphertext:Buffer.from(A,"hex")}))}catch(o){const r=A.padStart(64,"0");return tn.warn("Failed to decrypt padded share cipher",o),zg(t,ZA(ZA({},i),{},{ciphertext:Buffer.from(r,"hex")}))}}function IcA(e,A,t,i){const o=e.keyFromPrivate(i.toString("hex",64),"hex"),r={data:t,timestamp:new _A(~~(A+Date.now()/1e3)).toString(16)},f=o.sign(ur(Buffer.from(yi(r),"utf8")).slice(2));return{pub_key_X:o.getPublic().getX().toString("hex"),pub_key_Y:o.getPublic().getY().toString("hex"),set_data:r,signature:Buffer.from(f.r.toString(16,64)+f.s.toString(16,64)+new _A("").toString(16,2),"hex").toString("base64")}}async function zQ(e,A,t={}){try{const i=await ci(`${e}/get`,A,t,{useAPIKey:!0});return!i||!i.message?new _A(0):new _A(i.message,16)}catch(i){return tn.error("get metadata error",i),new _A(0)}}function pP(e,A,t,i,o,r){const f=za(lt.SECP256K1).keyFromPrivate(t.toString("hex",64),"hex"),h={operation:A,timestamp:new _A(~~(e+Date.now()/1e3)).toString(16)};o&&(h.data=o.toString("hex",64)),r?h.seed=r:h.seed="";const d=f.sign(ur(Buffer.from(yi(h),"utf8")).slice(2));return{pub_key_X:f.getPublic().getX().toString("hex",64),pub_key_Y:f.getPublic().getY().toString("hex",64),set_data:h,key_type:i,signature:Buffer.from(d.r.toString(16,64)+d.s.toString(16,64)+new _A("").toString(16,2),"hex").toString("base64")}}async function yP(e,A,t,i,o,r,f=!1,h=!0,d=new _A(0),p="secp256k1",C=""){if(h){let D;const v=f?"getNonce":"getOrSetNonce";return r?D=IcA(A,t,v,r):D={pub_key_X:i,pub_key_Y:o,set_data:{data:v}},ci(`${e}/get_or_set_nonce`,D,void 0,{useAPIKey:!0})}const y=f?"getNonce":"getOrSetNonce";if(y==="getOrSetNonce"){if(!r)throw new Error("privKey is required while `getOrSetNonce` for non legacy metadata");if(d.cmp(new _A(0))===0)throw new Error("nonce is required while `getOrSetNonce` for non legacy metadata");if(p===lt.ED25519&&!C)throw new Error("seed is required while `getOrSetNonce` for non legacy metadata for ed25519 key type");const D=pP(t,y,r,p,d,C);return ci(`${e}/get_or_set_nonce`,D,void 0,{useAPIKey:!0})}const w={pub_key_X:i,pub_key_Y:o,set_data:{operation:y},key_type:p};return ci(`${e}/get_or_set_nonce`,w,void 0,{useAPIKey:!0})}const fcA=async(e,A)=>{const t=tu(A),i=Buffer.from(e,"base64").toString("utf-8"),o=JSON.parse(i),r=ZA(ZA({},eR(o.metadata)),{},{mode:"AES256"}),f=t.scalar.toArrayLike(Buffer,"be",32);return await zg(f,ZA(ZA({},r),{},{ciphertext:Buffer.from(o.enc_text,"hex")}))};async function wP(e,A,t,i,o){if(Tr[e])throw new Error("getOrSetSapphireMetadataNonce should only be used for sapphire networks");let r={pub_key_X:A,pub_key_Y:t,key_type:"secp256k1",set_data:{operation:"getOrSetNonce"}};if(o){const h=za(lt.SECP256K1).keyFromPrivate(o.toString("hex",64),"hex"),d={operation:"getOrSetNonce",timestamp:new _A(~~(i+Date.now()/1e3)).toString(16)},p=h.sign(ur(Buffer.from(yi(d),"utf8")).slice(2));r=ZA(ZA({},r),{},{set_data:d,signature:Buffer.from(p.r.toString(16,64)+p.s.toString(16,64)+new _A("").toString(16,2),"hex").toString("base64")})}const f=e===cr.SAPPHIRE_DEVNET?qhA:_hA;return ci(`${f}/get_or_set_nonce`,r,void 0,{useAPIKey:!0})}function hcA(e){return e.startsWith("0x")?e.slice(2):e}function ccA(e){const A=hcA(e).toLowerCase(),t=Buffer.from(A,"utf8"),i=Buffer.from(xt(t)).toString("hex");let o="0x";for(let r=0;r=8?o+=A[r].toUpperCase():o+=A[r];return o}function ucA(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function Qw(e){const A=za(lt.ED25519),t=32,i=A.g,o=A.n;if(e.length!==32)throw tn.error("Invalid seed for ed25519 key derivation",e.length),new Error("Invalid seed for ed25519 key derivation");const r=ocA(e);if(r.length!==64)throw new Error("Invalid hash length for ed25519 seed");const f=new _A(ucA(Buffer.from(r.slice(0,t))),"le"),h=new _A(f.umod(o),"le"),d=i.mul(h);return{scalar:h,point:d}}function $Q(e){const A=za(lt.ED25519),t=Math.ceil(A.n.bitLength()/8),i=e.getY().toArrayLike(Buffer,"le",t);return i[t-1]|=e.getX().isOdd()?128:0,i}const lcA=async e=>{const A=za(lt.ED25519),t=Qw(e),i=tu(t.scalar),o=await lB(Buffer.from(i.point.encodeCompressed("hex"),"hex"),e),r={enc_text:o.ciphertext.toString("hex"),metadata:dP(o),public_key:$Q(t.point).toString("hex")},f=Buffer.from(JSON.stringify(r),"utf-8").toString("base64"),h=A.genKeyPair().getPrivate(),d=t.scalar.sub(h).umod(A.n),p=A.keyFromPrivate(d.toArrayLike(Buffer)),C=tu(p.getPrivate());return{oAuthKeyScalar:p.getPrivate(),oAuthPubX:p.getPublic().getX(),oAuthPubY:p.getPublic().getY(),SigningPubX:C.point.getX(),SigningPubY:C.point.getY(),metadataNonce:h,metadataSigningKey:C.scalar,encryptedSeed:f,finalUserPubKeyPoint:t.point}},CcA=async e=>{const A=za(lt.SECP256K1),t=new _A(e),i=new _A(AR(A,Buffer)),o=t.sub(i).umod(A.n),r=A.keyFromPrivate(o.toArrayLike(Buffer)),f=r.getPublic(),h=A.keyFromPrivate(t.toString("hex",64),"hex");return{oAuthKeyScalar:r.getPrivate(),oAuthPubX:f.getX(),oAuthPubY:f.getY(),SigningPubX:f.getX(),SigningPubY:f.getY(),metadataNonce:i,encryptedSeed:"",metadataSigningKey:r.getPrivate(),finalUserPubKeyPoint:h.getPublic()}};function DP(e,A){if(e===lt.SECP256K1){const t=A.getPublic().encode("hex",!1).slice(2),i=`0x${ur(Buffer.from(t,"hex")).slice(26)}`;return ccA(i)}else if(e===lt.ED25519){const t=$Q(A.getPublic());return $hA.encode(t)}throw new Error(`Invalid keyType: ${e}`)}function BcA(e,A){const i=za(e).keyFromPrivate(A.toString("hex",64),"hex");return DP(e,i)}function s0(e,A,t){const o=za(e).keyFromPublic({x:A.toString("hex",64),y:t.toString("hex",64)});return DP(e,o)}function $6(e,A){const t=A.toString(16,64);return e.keyFromPrivate(t,"hex").getPublic()}const dcA=()=>new br.ec("secp256k1"),mP=async(e,A,t,i,o,r)=>{const f=A===lt.ED25519?await lcA(r):await CcA(r),{metadataNonce:h,oAuthKeyScalar:d,encryptedSeed:p,metadataSigningKey:C}=f,w=~~(o.length/2)+1-1,D=[];for(const z of i)D.push(new _A(z));const v=e.keyFromPrivate(d.toString("hex",64),"hex").getPublic(),R=acA(e,w,d).generateShares(D),b=pP(t,"getOrSetNonce",C,A,h,p),S=Buffer.from(yi(b.set_data),"utf8").toString("base64"),G=[],U=[];for(let z=0;z{const{endpoints:A,network:t,verifier:i,verifierId:o,extendedVerifierId:r,keyType:f}=e,h=~~(A.length/2)+1,d=A.map(w=>ci(w,uc(Tg.GET_OR_SET_KEY,{distributed_metadata:!0,verifier:i,verifier_id:o.toString(),extended_verifier_id:r,one_key_flow:!0,key_type:f,fetch_node_index:!0,client_time:Math.floor(Date.now()/1e3).toString()}),{},{logTracingHeader:sf.logRequestTracing}).catch(D=>Es.error(`${Tg.GET_OR_SET_KEY} request failed`,D)));let p;const C=[];return await Ew(d,async w=>{const D=w.filter(S=>S&&!S.error?S:!1),v=Kf(w.map(S=>S&&S.error),h),M=Kf(D.map(S=>S&&OhA(S.result)),h);if(M&&!p&&!r&&!Tr[t]){for(let S=0;S{if(G&&G.result){const U=G.result.keys[0].pub_key_X.toLowerCase(),P=M.keys[0].pub_key_X.toLowerCase();if(U===P){const oA=Number.parseInt(G.result.node_index);oA&&C.push(oA)}const z=G.result.server_time_offset?Number.parseInt(G.result.server_time_offset,10):0;b.push(z)}});const S=M?tR(b):0;return Promise.resolve({keyResult:M,serverTimeOffset:S,nodeIndexes:C,errorResult:v,nonceResult:p})}return Promise.reject(new Error(`invalid public key result: ${JSON.stringify(w)} and nonce result:${JSON.stringify(p||{})} for verifier: ${i}, verifierId: ${o} and extendedVerifierId: ${r} `))})},QcA=async e=>{const{endpoints:A,verifier:t,verifierId:i,keyType:o}=e,r=~~(A.length/2)+1,f=A.map(d=>ci(d,uc(Tg.VERIFIER_LOOKUP,{verifier:t,verifier_id:i.toString(),key_type:o,client_time:Math.floor(Date.now()/1e3).toString()}),{},{logTracingHeader:sf.logRequestTracing}).catch(p=>Es.error(`${Tg.GET_OR_SET_KEY} request failed`,p)));return await Ew(f,async d=>{const p=d.filter(D=>D&&!D.error?D:!1),C=Kf(d.map(D=>D&&D.error),r),y=Kf(p.map(D=>D&&jhA(D.result)),r),w=[];if(y||C){const D=y?tR(w):0;return Promise.resolve({keyResult:y,serverTimeOffset:D,errorResult:C})}return Promise.reject(new Error(`invalid lookup result: ${JSON.stringify(d)} + )} for verifier: ${t}, verifierId: ${i}`))})},pcA=async e=>{const{idToken:A,endpoints:t,indexes:i,keyType:o,verifier:r,verifierParams:f,pubKeyX:h,pubKeyY:d,finalImportedShares:p,overrideExistingKey:C}=e,y=ur(Buffer.from(A,"utf8")),w=~~(t.length*3/4)+1,D=~~(t.length/2)+1,v=[];for(let M=0;Mci(t[M],uc(Tg.COMMITMENT_REQUEST,{messageprefix:"mug00",keytype:o,tokencommitment:y.slice(2),temppubx:h,temppuby:d,verifieridentifier:r,verifier_id:f.verifier_id,extended_verifier_id:f.extended_verifier_id,is_import_key_flow:!0}),{},{logTracingHeader:sf.logRequestTracing}),4);v.push(b)}return new Promise((M,R)=>{Ew(v,b=>{const S=b.filter(G=>!(!G||typeof G!="object"||G.error));if(p.length>0){if(C&&S.length===t.length){if(S.find(U=>!!U))return Promise.resolve(b)}else if(!C&&S.length>=w){const G=[];for(let oA=0;oAoA&&oA.pub_key_x),D),P=EP(t,r,f.verifier_id),z=i[P].toString(10);if((U||!U&&S.length===t.length)&&S.find(J=>{var q;return!!(J&&((q=J.result)===null||q===void 0?void 0:q.nodeindex)===z)}))return Promise.resolve(b)}}else if(S.length>=w&&S.find(U=>!!U))return Promise.resolve(b);return Promise.reject(new Error(`invalid commitment results ${JSON.stringify(b)}`))}).then(b=>M(b)).catch(R)})};async function X6(e){const{legacyMetadataHost:A,enableOneKey:t,ecCurve:i,keyType:o,allowHost:r,network:f,clientId:h,endpoints:d,nodePubkeys:p,indexes:C,verifier:y,verifierParams:w,idToken:D,overrideExistingKey:v,newImportedShares:M,extraParams:R,useDkg:b=!0,serverTimeOffset:S,checkCommitment:G=!0,useLinkedPasskey:U=!1}=e;await Nn(r,{headers:{verifier:y,verifierid:w.verifier_id,network:f,clientid:h,enablegating:"true"}},{useAPIKey:!0});const P=Bw(),z=ds(P).toString("hex"),oA=z.slice(2,66),J=z.slice(66);let q=[];const X=~~(d.length/2)+1;if((M==null?void 0:M.length)>0){if(M.length!==d.length)throw new Error("Invalid imported shares length");q=M}else if(!b){const E=o===lt.SECP256K1?AR(i,Buffer):await CP(32),u=await mP(i,o,S,C,p,Buffer.from(E));q=[...q,...u]}let Q=[],n;const a=[];if(G){Q=await pcA({idToken:D,endpoints:d,indexes:C,keyType:o,verifier:y,verifierParams:w,pubKeyX:oA,pubKeyY:J,finalImportedShares:q,overrideExistingKey:v});for(let E=0;EE&&E.pub_key_x),X)}else if(!G&&q.length>0&&!v){var g,I;const E=await QcA({endpoints:d,verifier:y,verifierId:w.verifier_id,keyType:o});if(E.errorResult&&!((g=E.errorResult)!==null&&g!==void 0&&(g=g.data)!==null&&g!==void 0&&g.includes("Verifier + VerifierID has not yet been assigned")))throw new Error(`node results do not match at first lookup ${JSON.stringify(E.keyResult||{})}, ${JSON.stringify(E.errorResult||{})}`);((I=E.keyResult)===null||I===void 0||(I=I.keys)===null||I===void 0?void 0:I.length)>0&&(n=!!E.keyResult.keys[0])}const c=[],B=v||!b&&!n;if(B){const E=EP(d,y,w.verifier_id),u=[];for(let l=0;lEs.error("share req",l));c.push(s)}else for(let E=0;E{let s,l=[];if(E.length===1&&E[0]&&Array.isArray(E[0].result)){const W=E[0];E[0].result.forEach($=>{l.push({id:W.id,jsonrpc:"2.0",result:$,error:W.error})})}else l=E;const m=l.filter(W=>!(!W||typeof W!="object"||W.error)),N=l.map(W=>{if(W&&W.result&&W.result.keys[0].public_key)return W.result.keys[0].public_key}),L=Kf(N,X);if(!L)throw new Error("invalid result from nodes, threshold number of public key results are not matching");l.forEach(W=>{const $=W&&W.result&&W.result.keys[0].public_key&&W.result.keys[0];if($&&!s&&!w.extended_verifier_id){var V;const _=$.public_key;((V=$.nonce_data)===null||V===void 0||(V=V.pubNonce)===null||V===void 0?void 0:V.x)&&_.X===L.X&&(s=$.nonce_data)}});const O=B?d.length:X;if(m.length>=O&&L){const W=[],$=[],V=[],_=[],j=[],sA=[],iA=[];for(let x=0;x0){var K;fA&&(K=fA[0])!==null&&K!==void 0&&K.ephemPublicKey?$.push(z6(fA[0],Z[0],P).catch(cA=>Es.error("session sig decryption",cA))):$.push(Promise.resolve(Buffer.from(Z[0],"hex")))}else $.push(Promise.resolve(void 0));if((F==null?void 0:F.length)>0){var Y;T&&(Y=T[0])!==null&&Y!==void 0&&Y.ephemPublicKey?V.push(z6(T[0],F[0],P).catch(cA=>Es.error("session token sig decryption",cA))):V.push(Promise.resolve(Buffer.from(F[0],"base64")))}else V.push(Promise.resolve(void 0));if((eA==null?void 0:eA.length)>0){const cA=k.result.keys[0];_.push(new _A(cA.node_index)),cA.share_metadata&&W.push(gcA(cA.share_metadata,Buffer.from(cA.share,"base64").toString("binary"),P).catch(QA=>Es.error("share decryption",QA)))}else _.push(void 0),W.push(Promise.resolve(void 0))}const aA=await Promise.all(W.concat($).concat(V)),lA=aA.slice(0,W.length),nA=aA.slice(W.length,W.length+$.length),tA=aA.slice(W.length+$.length,aA.length),xA=nA.filter(x=>!!x);if(!w.extended_verifier_id&&xA.length!!x);if(!w.extended_verifier_id&&gA.length{!x||!nA[k]?j.push(void 0):j.push({token:x.toString("base64"),signature:nA[k].toString("hex"),node_pubx:m[k].result.node_pubx,node_puby:m[k].result.node_puby})}),u.resolved)return;const IA=lA.reduce((x,k,F)=>(k&&x.push({index:_[F],value:new _A(k)}),x),[]),UA=BP(IA.length,X);let rA=null;for(let x=0;xk.includes(QA)),T=F.map(cA=>cA.value),Z=F.map(cA=>cA.index),fA=scA(i,T,Z);if(!fA)continue;const eA=$6(i,fA),dA=eA.getX(),PA=eA.getY();if(dA.cmp(new _A(L.X,16))===0&&PA.cmp(new _A(L.Y,16))===0){rA=fA;break}}if(rA==null)throw new Error("could not derive private key");let hA=!1;sA.forEach(x=>{x.isNewKey==="true"&&x.publicKey.toLowerCase()===L.X.toLowerCase()&&(hA=!0)});const OA=iA.map(x=>Number.parseInt(x,10));return{privateKey:rA,sessionTokenData:j,thresholdNonceData:s,nodeIndexes:_,thresholdPubKey:L,isNewKey:hA,serverTimeOffsetResponse:S||tR(OA)}}throw m.length{var u;const{privateKey:s,thresholdPubKey:l,sessionTokenData:m,nodeIndexes:N,thresholdNonceData:L,isNewKey:O,serverTimeOffsetResponse:H}=E;let K=L;if(!s)throw new Error("Invalid private key returned");const Y=s,W=$6(i,Y),$=W.getX().toString("hex",64),V=W.getY().toString("hex",64);if(!K&&!w.extended_verifier_id&&!Tr[f]){const rA=await wP(f,l.X,l.Y,S,Y);if(rA&&!L)K=rA;else throw new Error(`invalid metadata result from nodes, nonce metadata is empty for verifier: ${y} and verifierId: ${w.verifier_id}`)}let _=new _A((u=K)!==null&&u!==void 0&&u.nonce?K.nonce.padStart(64,"0"):"0","hex"),j,sA,iA="v1";if(w.extended_verifier_id)iA="v2",j=i.keyFromPublic({x:$,y:V}).getPublic();else if(Tr[f])if(t)if(K=await yP(A,i,H,$,V,Y,!O),_=new _A(K.nonce||"0",16),iA=K.typeOfUser,iA==="v2")sA={X:K.pubNonce.x,Y:K.pubNonce.y},j=i.keyFromPublic({x:$,y:V}).getPublic().add(i.keyFromPublic({x:K.pubNonce.x,y:K.pubNonce.y}).getPublic());else{iA="v1",_=await zQ(A,{pub_key_X:$,pub_key_Y:V});const rA=Y.add(_).umod(i.n);j=i.keyFromPrivate(rA.toString(16,64),"hex").getPublic()}else{iA="v1",_=await zQ(A,{pub_key_X:$,pub_key_Y:V});const rA=Y.add(_).umod(i.n);j=i.keyFromPrivate(rA.toString(16,64),"hex").getPublic()}else iA="v2",j=i.keyFromPublic({x:$,y:V}).getPublic().add(i.keyFromPublic({x:K.pubNonce.x,y:K.pubNonce.y}).getPublic()),sA={X:K.pubNonce.x,Y:K.pubNonce.y};if(!j)throw new Error("Invalid public key, this might be a bug, please report this to web3auth team");let aA="",lA=!1;const nA=BcA(o,Y),tA=s0(o,j.getX(),j.getY());let xA="";if(iA==="v1"?lA=null:iA==="v2"&&(lA=_.eq(new _A("0"))),(iA==="v1"||iA==="v2"&&_.gt(new _A(0)))&&(xA=Y.add(_).umod(i.n).toString("hex",64)),o===lt.SECP256K1)aA=xA;else if(o===lt.ED25519){if(xA&&!K.seed)throw new Error("Invalid data, seed data is missing for ed25519 key, Please report this bug");xA&&K.seed&&(aA=(await fcA(K.seed,new _A(xA,"hex"))).toString("hex"))}else throw new Error(`Invalid keyType: ${o}`);let gA=Y,IA=$,UA=V;if(o===lt.ED25519){const{scalar:rA,point:hA}=tu(s);if(gA=rA,IA=hA.getX().toString(16,64),UA=hA.getY().toString(16,64),l.SignerX.padStart(64,"0")!==IA||l.SignerY.padStart(64,"0")!==UA)throw new Error("Invalid postbox key")}return{finalKeyData:{walletAddress:tA,X:j.getX().toString(16,64),Y:j.getY().toString(16,64),privKey:aA},oAuthKeyData:{walletAddress:nA,X:$,Y:V,privKey:Y.toString("hex",64)},postboxKeyData:{privKey:gA.toString("hex",64),X:IA,Y:UA},sessionData:{sessionTokenData:m,sessionAuthKey:P.toString("hex").padStart(64,"0")},metadata:{pubNonce:sA,nonce:_,typeOfUser:iA,upgraded:lA,serverTimeOffset:H},nodesData:{nodeIndexes:N.map(rA=>rA.toNumber())}}})}class Yo{constructor({enableOneKey:A=!1,clientId:t,network:i,serverTimeOffset:o=0,allowHost:r,legacyMetadataHost:f,keyType:h=lt.SECP256K1}){if(FA(this,"allowHost",void 0),FA(this,"serverTimeOffset",void 0),FA(this,"network",void 0),FA(this,"clientId",void 0),FA(this,"ec",void 0),FA(this,"enableOneKey",void 0),FA(this,"legacyMetadataHost",void 0),FA(this,"keyType",lt.SECP256K1),!t)throw new Error("Please provide a valid clientId in constructor");if(!i)throw new Error("Please provide a valid network in constructor");if(h===lt.ED25519&&Tr[i])throw new Error(`keyType: ${h} is not supported by ${i} network`);this.keyType=h,this.ec=new br.ec(this.keyType),this.serverTimeOffset=o||0,this.network=i,this.clientId=t,this.allowHost=r||`${iJ[i]}/api/allow`,this.enableOneKey=A,this.legacyMetadataHost=f||rJ[i]}static enableLogging(A=!0){A?(Es.enableAll(),sf.logRequestTracing=!0):Es.disableAll()}static setAPIKey(A){BtA(A)}static setEmbedHost(A){CtA(A)}static setSessionTime(A){Yo.sessionTime=A}static isGetOrSetNonceError(A){return A instanceof Rv}static getPostboxKey(A){return A.metadata.typeOfUser==="v1"&&A.finalKeyData.privKey||A.postboxKeyData.privKey}async retrieveShares(A){const{verifier:t,verifierParams:i,idToken:o,nodePubkeys:r,indexes:f,endpoints:h,useDkg:d,useLinkedPasskey:p,extraParams:C={},checkCommitment:y=!0}=A;if(r.length===0)throw new Error("nodePubkeys param is required");if(r.length!==f.length)throw new Error("nodePubkeys length must be same as indexes length");if(r.length!==h.length)throw new Error("nodePubkeys length must be same as endpoints length");let w;if(typeof d=="boolean"){if(d===!1&&Tr[this.network])throw new Error(`useDkg cannot be false for legacy network; ${this.network}`);w=this.keyType===lt.ED25519?!1:d}else this.keyType===lt.ED25519?w=!1:w=!0;if(!w&&r.length===0)throw new Error("nodePubkeys param is required");return C.session_token_exp_second||(C.session_token_exp_second=Yo.sessionTime),X6({legacyMetadataHost:this.legacyMetadataHost,serverTimeOffset:this.serverTimeOffset,enableOneKey:this.enableOneKey,ecCurve:this.ec,keyType:this.keyType,allowHost:this.allowHost,network:this.network,clientId:this.clientId,endpoints:h,indexes:f,verifier:t,verifierParams:i,idToken:o,useDkg:w,newImportedShares:[],overrideExistingKey:!1,nodePubkeys:r,extraParams:C,checkCommitment:y,useLinkedPasskey:p})}async getPublicAddress(A,t,{verifier:i,verifierId:o,extendedVerifierId:r}){return Es.info(t,{verifier:i,verifierId:o,extendedVerifierId:r}),this.getNewPublicAddress(A,{verifier:i,verifierId:o,extendedVerifierId:r},this.enableOneKey)}async importPrivateKey(A){const{nodeIndexes:t,newPrivateKey:i,verifier:o,verifierParams:r,idToken:f,nodePubkeys:h,endpoints:d,extraParams:p={},checkCommitment:C=!0}=A;if(Tr[this.network])throw new Error(`importPrivateKey is not supported by legacy network; ${this.network}`);if(d.length!==t.length)throw new Error("length of endpoints array must be same as length of nodeIndexes array");p.session_token_exp_second||(p.session_token_exp_second=Yo.sessionTime);let y;if(this.keyType===lt.SECP256K1&&(y=Buffer.from(i.padStart(64,"0"),"hex"),y.length!==32))throw new Error("Invalid private key length for given secp256k1 key");if(this.keyType===lt.ED25519&&(y=Buffer.from(i.padStart(64,"0"),"hex"),y.length!==32))throw new Error("Invalid private key length for given ed25519 key");const w=await mP(this.ec,this.keyType,this.serverTimeOffset,t,h,y);if(this.keyType===lt.ED25519){const D=Qw(y),v=$Q(D.point),M=$Q(w[0].final_user_point),R=Buffer.from(v).toString("hex"),b=M.toString("hex");if(R!==b)throw new Error("invalid shares data for ed25519 key, public key is not matching after generating shares")}return X6({legacyMetadataHost:this.legacyMetadataHost,serverTimeOffset:this.serverTimeOffset,enableOneKey:this.enableOneKey,ecCurve:this.ec,keyType:this.keyType,allowHost:this.allowHost,network:this.network,clientId:this.clientId,endpoints:d,indexes:t,verifier:o,verifierParams:r,idToken:f,useDkg:!1,overrideExistingKey:!0,newImportedShares:w,nodePubkeys:h,extraParams:p,checkCommitment:C})}async getUserTypeAndAddress(A,{verifier:t,verifierId:i,extendedVerifierId:o}){return this.getNewPublicAddress(A,{verifier:t,verifierId:i,extendedVerifierId:o},!0)}async getNewPublicAddress(A,{verifier:t,verifierId:i,extendedVerifierId:o},r){const f=await EcA({endpoints:A,network:this.network,verifier:t,verifierId:i,keyType:this.keyType,extendedVerifierId:o}),{errorResult:h,keyResult:d,nodeIndexes:p=[],serverTimeOffset:C}=f,y=this.serverTimeOffset||C,{nonceResult:w}=f;if(h&&JSON.stringify(h).toLowerCase().includes("verifier not supported"))throw new Error(`Verifier not supported. Check if you: + + 1. Are on the right network (Torus testnet/mainnet) + + 2. Have setup a verifier on dashboard.web3auth.io?`);if(h)throw new Error(`node results do not match at first lookup ${JSON.stringify(d||{})}, ${JSON.stringify(h||{})}`);if(!(d!=null&&d.keys))throw new Error(`node results do not match at final lookup ${JSON.stringify(d||{})}, ${JSON.stringify(h||{})}`);if(!w&&!o&&!Tr[this.network])throw new Rv("metadata nonce is missing in share response");const{pub_key_X:D,pub_key_Y:v}=d.keys[0];let M;const R=new _A((w==null?void 0:w.nonce)||"0",16);let b,S;if(o)S=this.ec.keyFromPublic({x:D,y:v}).getPublic(),b=S;else{if(Tr[this.network])return this.formatLegacyPublicKeyData({isNewKey:d.is_new_key,enableOneKey:r,finalKeyResult:{keys:d.keys},serverTimeOffset:y});{const q=w;b=this.ec.keyFromPublic({x:D,y:v}).getPublic(),S=this.ec.keyFromPublic({x:D,y:v}).getPublic().add(this.ec.keyFromPublic({x:q.pubNonce.x,y:q.pubNonce.y}).getPublic()),M={X:q.pubNonce.x,Y:q.pubNonce.y}}}if(!b)throw new Error("Unable to derive oAuthPubKey");const G=b.getX().toString(16,64),U=b.getY().toString(16,64),P=s0(this.keyType,b.getX(),b.getY());if(!S)throw new Error("Unable to derive finalPubKey");const z=S?S.getX().toString(16,64):"",oA=S?S.getY().toString(16,64):"",J=S?s0(this.keyType,S.getX(),S.getY()):"";return{oAuthKeyData:{walletAddress:P,X:G,Y:U},finalKeyData:{walletAddress:J,X:z,Y:oA},metadata:{pubNonce:M,nonce:R,upgraded:(w==null?void 0:w.upgraded)||!1,typeOfUser:"v2",serverTimeOffset:y},nodesData:{nodeIndexes:p}}}async formatLegacyPublicKeyData(A){var t;const{finalKeyResult:i,enableOneKey:o,isNewKey:r,serverTimeOffset:f}=A,{pub_key_X:h,pub_key_Y:d}=i.keys[0];let p,C,y,w,D;const v=this.ec.keyFromPublic({x:h,y:d}).getPublic(),M=this.serverTimeOffset||f;if(o){try{p=await yP(this.legacyMetadataHost,this.ec,M,h,d,void 0,!r),C=new _A(p.nonce||"0",16),w=p.typeOfUser}catch{throw new Rv}if(p.typeOfUser==="v1")C=await zQ(this.legacyMetadataHost,{pub_key_X:h,pub_key_Y:d}),y=this.ec.keyFromPublic({x:h,y:d}).getPublic().add(this.ec.keyFromPrivate(C.toString(16,64),"hex").getPublic());else if(p.typeOfUser==="v2")y=this.ec.keyFromPublic({x:h,y:d}).getPublic().add(this.ec.keyFromPublic({x:p.pubNonce.x,y:p.pubNonce.y}).getPublic()),D={X:p.pubNonce.x,Y:p.pubNonce.y};else throw new Error("getOrSetNonce should always return typeOfUser.")}else w="v1",C=await zQ(this.legacyMetadataHost,{pub_key_X:h,pub_key_Y:d}),y=this.ec.keyFromPublic({x:h,y:d}).getPublic().add(this.ec.keyFromPrivate(C.toString(16,64),"hex").getPublic());if(!v)throw new Error("Unable to derive oAuthPubKey");const R=v.getX().toString(16,64),b=v.getY().toString(16,64),S=s0(this.keyType,v.getX(),v.getY());if(w==="v2"&&!y)throw new Error("Unable to derive finalPubKey");const G=y?y.getX().toString(16,64):"",U=y?y.getY().toString(16,64):"",P=y?s0(this.keyType,y.getX(),y.getY()):"";return{oAuthKeyData:{walletAddress:S,X:R,Y:b},finalKeyData:{walletAddress:P,X:G,Y:U},metadata:{pubNonce:D,nonce:C,upgraded:((t=p)===null||t===void 0?void 0:t.upgraded)||!1,typeOfUser:w,serverTimeOffset:M},nodesData:{nodeIndexes:[]}}}}FA(Yo,"sessionTime",86400);var ycA=function(){return!!(window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/))},FE;typeof window<"u"&&(typeof document<"u"&&(document.readyState==="interactive"||document.readyState==="complete")?FE=Promise.resolve():typeof Promise<"u"?FE=new Promise(function(e){return window.addEventListener("load",e)}):FE={then:function(e){return window.addEventListener("load",e)}});var wcA=function(A,t){t===void 0&&(t={});var i=t.registrationOptions;i===void 0&&(i={}),delete t.registrationOptions;var o=function(r){for(var f=[],h=arguments.length-1;h-- >0;)f[h]=arguments[h+1];t&&t[r]&&t[r].apply(t,f)};"serviceWorker"in navigator&&FE.then(function(){ycA()?(DcA(A,o,i),navigator.serviceWorker.ready.then(function(r){o("ready",r)}).catch(function(r){return XQ(o,r)})):(vP(A,o,i),navigator.serviceWorker.ready.then(function(r){o("ready",r)}).catch(function(r){return XQ(o,r)}))})};function XQ(e,A){navigator.onLine||e("offline"),e("error",A)}function vP(e,A,t){navigator.serviceWorker.register(e,t).then(function(i){if(A("registered",i),i.waiting){A("updated",i);return}i.onupdatefound=function(){A("updatefound",i);var o=i.installing;o.onstatechange=function(){o.state==="installed"&&(navigator.serviceWorker.controller?A("updated",i):A("cached",i))}}}).catch(function(i){return XQ(A,i)})}function DcA(e,A,t){fetch(e).then(function(i){i.status===404?(A("error",new Error("Service worker not found at "+e)),unregister()):i.headers.get("content-type").indexOf("javascript")===-1?(A("error",new Error("Expected "+e+" to have javascript content-type, but received "+i.headers.get("content-type"))),unregister()):vP(e,A,t)}).catch(function(i){return XQ(A,i)})}const mcA=e=>new Promise((A,t)=>{const i=`${e}sw.js`;"serviceWorker"in window.navigator?wcA(i,{ready(){Bt.info(`App is being served from cache by a service worker. + For more details, visit https://goo.gl/AFskqB`),A(void 0)},registered(){Bt.info("Service worker has been registered."),A(void 0)},cached(){Bt.info("Content has been cached for offline use."),A(void 0)},updatefound(){Bt.info("New content is downloading.")},updated(){Bt.info("New content is available; please refresh.")},offline(){Bt.info("No internet connection found. App is running in offline mode."),t(new Error("App is offline"))},error(o){Bt.error("Error during service worker registration:",o),t(o)}}):t(new Error("Service workers are not supported"))});class vcA{constructor(A){FA(this,"sentry",null),this.sentry=A}startSpan(A,t){return this.sentry?this.sentry.startSpan(A,t):t(null)}}const MP=async e=>{const A=e instanceof Error,t=typeof e=="string",i=e&&typeof e=="object"&&"status"in e&&"type"in e;let o;if(i){const r=e,f=r.headers.get("content-type");if(f.includes("application/json")){const h=await r.json();o=new Error((h==null?void 0:h.error)||(h==null?void 0:h.message)||JSON.stringify(h))}else f.includes("text/plain")?o=new Error(await r.text()):o=new Error(`${r.status} ${r.type.toString()} ${r.statusText}`)}else t?o=new Error(e):A?o=e:o=new Error("Unknown error");return o};class McA{constructor(A){FA(this,"currentStorageMethod",sh.LOCAL_STORAGE),FA(this,"isInitialized",!1),FA(this,"storageServerUrl","https://session.web3auth.io"),FA(this,"localStorageAvailable",!0),this.storageServerUrl=A}get storageMethodUsed(){return this.currentStorageMethod}init(){const A=_tA(),t=xtA(sh.LOCAL_STORAGE);this.localStorageAvailable=t,A&&t?this.currentStorageMethod=sh.LOCAL_STORAGE:this.currentStorageMethod=sh.SERVER,this.isInitialized=!0}async storeLoginDetails(A,t){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");if(this.currentStorageMethod===sh.SERVER){const i=of(Buffer.from(t,"utf8")),o=i.toString("hex"),r=ds(i).toString("hex"),f=await KE(o,A),h=(await ME(i,of(Buffer.from(f,"utf8")))).toString("hex");await ci(`${this.storageServerUrl}/store/set`,{key:r,data:f,signature:h})}this.localStorageAvailable&&window.localStorage.setItem(`torus_login_${t}`,JSON.stringify(A))}async retrieveLoginDetails(A){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");if(this.localStorageAvailable){const t=window.localStorage.getItem(`torus_login_${A}`);if(t)return JSON.parse(t||"{}")}if(this.currentStorageMethod===sh.SERVER){const t=of(Buffer.from(A,"utf8")),i=t.toString("hex"),o=ds(t).toString("hex");try{const r=await Nn(`${this.storageServerUrl}/store/get?key=${o}`);if(r.message)return await uP(i,r.message)}catch(r){if(r.status===404)Bt.warn(r,"Session likely expired");else throw r}}}clearLoginDetailsStorage(A){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");this.localStorageAvailable&&window.localStorage.removeItem(`torus_login_${A}`)}clearOrphanedLoginDetails(){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");if(!this.localStorageAvailable)return;Object.keys(window.localStorage).forEach(t=>{t.startsWith("torus_login_")&&window.localStorage.removeItem(t)})}}const bcA=["access_token","id_token"],ScA=["access_token","id_token"],NcA=["args","method"];class kcA{constructor({baseUrl:A,network:t,enableLogging:i=!1,redirectToOpener:o=!1,redirectPathName:r="redirect",apiKey:f="torus-default",uxMode:h=to.POPUP,locationReplaceOnRedirect:d=!1,popupFeatures:p,storageServerUrl:C="https://session.web3auth.io",sentry:y,enableOneKey:w=!1,web3AuthClientId:D,useDkg:v,metadataUrl:M="https://metadata.tor.us",keyType:R="secp256k1",serverTimeOffset:b=0,nodeDetails:S,checkCommitment:G=!0}){if(FA(this,"isInitialized",void 0),FA(this,"config",void 0),FA(this,"torus",void 0),FA(this,"nodeDetailManager",void 0),FA(this,"storageHelper",void 0),FA(this,"sentryHandler",void 0),!D)throw new Error("Please provide a valid web3AuthClientId in constructor");if(!t)throw new Error("Please provide a valid network in constructor");this.isInitialized=!1;const U=new URL(A);this.config={baseUrl:qy(U),get redirect_uri(){return`${this.baseUrl}${r}`},redirectToOpener:o,uxMode:h,locationReplaceOnRedirect:d,popupFeatures:p,useDkg:v,web3AuthClientId:D,web3AuthNetwork:t,keyType:R,nodeDetails:S,checkCommitment:G};const P=new Yo({network:t,enableOneKey:w,serverTimeOffset:b,clientId:D,legacyMetadataHost:M,keyType:R});Yo.setAPIKey(f),this.torus=P,this.nodeDetailManager=new UhA({network:t}),i?Bt.enableAll():Bt.disableAll(),this.storageHelper=new McA(C),this.sentryHandler=new vcA(y)}async init({skipSw:A=!1,skipInit:t=!1,skipPrefetch:i=!1}={}){if(this.storageHelper.init(),t){this.isInitialized=!0;return}if(!A)if((await fetch(`${this.config.baseUrl}sw.js`,{cache:"reload"})).ok)try{await mcA(this.config.baseUrl),this.isInitialized=!0;return}catch(r){Bt.warn(r)}else throw new Error("Service worker is not being served. Please serve it");if(!i){if(UtA()){this.isInitialized=!0;return}await this.handlePrefetchRedirectUri();return}this.isInitialized=!0}async triggerLogin(A){const{verifier:t,typeOfLogin:i,clientId:o,jwtParams:r,hash:f,queryParameters:h,customState:d}=A;if(Bt.info("Verifier: ",t),!this.isInitialized)throw new Error("Not initialized yet");const p=W6({typeOfLogin:i,clientId:o,verifier:t,redirect_uri:this.config.redirect_uri,redirectToOpener:this.config.redirectToOpener,jwtParams:r,uxMode:this.config.uxMode,customState:d,web3AuthClientId:this.config.web3AuthClientId,web3AuthNetwork:this.config.web3AuthNetwork});let C;if(f&&h){const{error:D,hashParameters:v,instanceParameters:M}=wm(f,h);if(D)throw new Error(D);const{access_token:R,id_token:b}=v,S=M0(v,bcA);C=ZA(ZA({accessToken:R,idToken:b},S),{},{state:M})}else if(this.storageHelper.clearOrphanedLoginDetails(),this.config.uxMode===to.REDIRECT&&await this.storageHelper.storeLoginDetails({method:zh.TRIGGER_LOGIN,args:A},p.nonce),C=await p.handleLoginWindow({locationReplaceOnRedirect:this.config.locationReplaceOnRedirect,popupFeatures:this.config.popupFeatures}),this.config.uxMode===to.REDIRECT)return null;const y=await p.getUserInfo(C),w=await this.getTorusKey(t,y.verifierId,{verifier_id:y.verifierId},C.idToken||C.accessToken,y.extraVerifierParams);return ZA(ZA({},w),{},{userInfo:ZA(ZA({},y),C)})}async triggerAggregateLogin(A){const{aggregateVerifierType:t,verifierIdentifier:i,subVerifierDetailsArray:o}=A;if(!this.isInitialized)throw new Error("Not initialized yet");if(!t||!i||!Array.isArray(o))throw new Error("Invalid params. Missing aggregateVerifierType, verifierIdentifier or subVerifierDetailsArray");if(t===oJ.SINGLE_VERIFIER_ID&&o.length!==1)throw new Error("Single id verifier can only have one sub verifier");const r=[],f=[];for(const M of o){const{clientId:R,typeOfLogin:b,verifier:S,jwtParams:G,hash:U,queryParameters:P,customState:z}=M,oA=W6({typeOfLogin:b,clientId:R,verifier:S,redirect_uri:this.config.redirect_uri,redirectToOpener:this.config.redirectToOpener,jwtParams:G,uxMode:this.config.uxMode,customState:z,web3AuthClientId:this.config.web3AuthClientId,web3AuthNetwork:this.config.web3AuthNetwork});let J;if(U&&P){const{error:q,hashParameters:X,instanceParameters:Q}=wm(U,P);if(q)throw new Error(q);const{access_token:n,id_token:a}=X,g=M0(X,ScA);J=ZA(ZA({accessToken:n,idToken:a},g),{},{state:Q})}else if(this.storageHelper.clearOrphanedLoginDetails(),this.config.uxMode===to.REDIRECT&&await this.storageHelper.storeLoginDetails({method:zh.TRIGGER_AGGREGATE_LOGIN,args:A},oA.nonce),J=await oA.handleLoginWindow({locationReplaceOnRedirect:this.config.locationReplaceOnRedirect,popupFeatures:this.config.popupFeatures}),this.config.uxMode===to.REDIRECT)return null;r.push(oA.getUserInfo(J)),f.push(J)}const d=(await Promise.all(r)).map(M=>ZA(ZA({},M),{},{aggregateVerifier:i})),p={verify_params:[],sub_verifier_ids:[],verifier_id:""},C=[];let y="",w={};for(let M=0;MZA(ZA({},M),f[R]))})}async getTorusKey(A,t,i,o,r){const f=await this.sentryHandler.startSpan({name:UF.FETCH_NODE_DETAILS},async()=>this.config.nodeDetails?this.config.nodeDetails:this.nodeDetailManager.getNodeDetails({verifier:A,verifierId:t}));Bt.debug("torus-direct/getTorusKey",{torusNodeEndpoints:f.torusNodeEndpoints});const h=await this.sentryHandler.startSpan({name:UF.FETCH_SHARES},async()=>this.torus.retrieveShares({endpoints:f.torusNodeEndpoints,indexes:f.torusIndexes,verifier:A,verifierParams:i,idToken:o,nodePubkeys:f.torusNodePub,extraParams:ZA({},r),useDkg:this.config.useDkg,checkCommitment:this.config.checkCommitment}));return Bt.debug("torus-direct/getTorusKey",{retrieveShares:h}),h}async getAggregateTorusKey(A,t,i){const o={verify_params:[],sub_verifier_ids:[],verifier_id:""},r=[];let f={};for(let d=0;d{r[b]=R}),!o&&Object.keys(r).length===0)throw new Error("Found Empty hash and query parameters. This can happen if user reloads the page");const{error:f,instanceParameters:h,hashParameters:d}=wm(o,r),{instanceId:p}=h;Bt.info(p,"instanceId");const y=await this.storageHelper.retrieveLoginDetails(p)||{},{args:w,method:D}=y,v=M0(y,NcA);if(Bt.info(w,D),f)return{error:f,state:h||{},method:D,result:{},hashParameters:d,args:w};let M;try{if(D===zh.TRIGGER_LOGIN){const R=w;R.hash=o,R.queryParameters=r,M=await this.triggerLogin(R)}else if(D===zh.TRIGGER_AGGREGATE_LOGIN){const R=w;R.subVerifierDetailsArray.forEach(b=>{b.hash=o,b.queryParameters=r}),M=await this.triggerAggregateLogin(R)}}catch(R){const b=await MP(R);return Bt.error(b),t&&this.storageHelper.clearLoginDetailsStorage(p),ZA({error:`${b.message||""}`,state:h||{},method:D,result:{},hashParameters:d,args:w},v)}if(!M)return ZA({error:`Init parameters not found. It might be because storage is not available. Please retry the login in a different browser. Used storage method: ${this.storageHelper.storageMethodUsed}`,state:h||{},method:D,result:{},hashParameters:d,args:w},v);if(A){const R=window.location.origin+window.location.pathname;window.history.replaceState(ZA(ZA({},window.history.state),{},{as:R,url:R}),"",R)}return t&&this.storageHelper.clearLoginDetailsStorage(p),ZA({method:D,result:M,state:h||{},hashParameters:d,args:w},v)}async handlePrefetchRedirectUri(){return document?new Promise((A,t)=>{const i=document.createElement("link");i.href=this.config.redirect_uri,window.location.origin!==new URL(this.config.redirect_uri).origin&&(i.crossOrigin="anonymous"),i.type="text/html",i.rel="prefetch";const o=()=>{this.isInitialized=!0,A()};try{i.relList&&i.relList.supports&&i.relList.supports("prefetch")?(i.onload=o,i.onerror=()=>{t(new Error(`Please serve redirect.html present in serviceworker folder of this package on ${this.config.redirect_uri}`))},document.head.appendChild(i)):o()}catch{o()}}):Promise.resolve()}}var RcA=kcA;const $e=new br.ec("secp256k1");async function af(e,A){const t=await lB(e,A);return{ciphertext:t.ciphertext.toString("hex"),ephemPublicKey:t.ephemPublicKey.toString("hex"),iv:t.iv.toString("hex"),mac:t.mac.toString("hex")}}async function gf(e,A){const t={ciphertext:Buffer.from(A.ciphertext,"hex"),ephemPublicKey:Buffer.from(A.ephemPublicKey,"hex"),iv:Buffer.from(A.iv,"hex"),mac:Buffer.from(A.mac,"hex")};return zg(e,t)}const KcA=e=>e&&e.stack&&e.message!=="";async function Xh(e){return KcA(e)?e:MP(e)}function Rg(e){const A=new _A(Bw());return e.find(t=>t.eq(A))?Rg(e):A}const ES="KEY_NOT_FOUND",xE="SHARE_DELETED";function A4(e){return e.slice(0,2)==="0x"?e.slice(2):e}let GcA=class Bg{constructor(A,t){FA(this,"x",void 0),FA(this,"y",void 0),this.x=new _A(A,"hex"),this.y=new _A(t,"hex")}static fromScalar(A,t){const i=t.g.mul(A);return Bg.fromElliptic(i)}static fromCompressedPub(A){const i=$e.keyFromPublic(A,"hex").getPublic();return new Bg(i.getX(),i.getY())}static fromJSON(A){const{x:t,y:i}=A;return new Bg(t,i)}static fromElliptic(A){return A.isInfinity()?new Bg(null,null):new Bg(A.getX(),A.getY())}static fromSEC1(A,t){if(t.length===2&&t==="00"){const r=A.g.mul(new _A(0));return Bg.fromElliptic(r)}const o=A.keyFromPublic(t,"hex").getPublic();return Bg.fromElliptic(o)}encode(A){switch(A){case"arr":return Buffer.concat([Buffer.from("0x04","hex"),Buffer.from(this.x.toString("hex"),"hex"),Buffer.from(this.y.toString("hex"),"hex")]);case"elliptic-compressed":{const i=$e.keyFromPublic({x:this.x.toString("hex"),y:this.y.toString("hex")},"hex");return Buffer.from(i.getPublic(!0,"hex"))}default:throw new Error("encoding doesnt exist in Point")}}toEllipticPoint(A){return this.isIdentity()?A.g.mul(new _A(0)):A.keyFromPublic({x:this.x.toString("hex"),y:this.y.toString("hex")},"hex").getPublic()}toSEC1(A,t=!1){if(this.isIdentity())return Buffer.from("00","hex");const i=this.toEllipticPoint(A);return Buffer.from(i.encode("hex",t),"hex")}toJSON(){return{x:this.x.toString("hex"),y:this.y.toString("hex")}}isIdentity(){return this.x===null&&this.y===null}equals(A){return this.isIdentity()?A.isIdentity():this.x.eq(A.x)&&this.y.eq(A.y)}};var ht=GcA;const dc=e=>$e.keyFromPrivate(e.toString("hex",64)),Zu=e=>{const A=new _A(e,"hex");return Buffer.from(A.toString("hex",64),"hex")},FcA=e=>$e.keyFromPrivate(e.toString("hex",64)).getPublic(),Ap=e=>ds(Zu(e)),If=e=>{const A=FcA(e);return new ht(A.getX().toString("hex"),A.getY().toString("hex"))};class iR{constructor(A){FA(this,"polynomialCommitments",void 0),FA(this,"polynomialId",void 0),this.polynomialCommitments=A}static fromJSON(A){const t=A.polynomialCommitments.map(i=>ht.fromJSON(i));return new iR(t)}getThreshold(){return this.polynomialCommitments.length}getPolynomialID(){let A="";for(let t=0;tnew _A(i,"hex")))}getThreshold(){return this.polynomial.length}polyEval(A){const t=new _A(A,"hex");let i=new _A(t),o=new _A(0);o=o.add(this.polynomial[0]);for(let r=1;rtypeof o=="number"?new _A(o):o instanceof _A?o:typeof o=="string"?new _A(o,"hex"):o),i={};for(let o=0;oA.toString("hex"))}}}var NP=oR;class sR{constructor(A,t){FA(this,"share",void 0),FA(this,"polynomialID",void 0),this.share=A,this.polynomialID=t}static fromJSON(A){const{share:t,polynomialID:i}=A;return new sR(Ec.fromJSON(t),i)}toJSON(){return{share:this.share,polynomialID:this.polynomialID.toString()}}}var ii=sR;function xcA(e,A){var t=Object.setPrototypeOf;t?t(e,A):e.__proto__=A}function LcA(e,A){A===void 0&&(A=e.constructor);var t=Error.captureStackTrace;t&&t(e,A)}var UcA=function(){var e=function(t,i){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,r){o.__proto__=r}||function(o,r){for(var f in r)Object.prototype.hasOwnProperty.call(r,f)&&(o[f]=r[f])},e(t,i)};return function(A,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");e(A,t);function i(){this.constructor=A}A.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}(),kP=function(e){UcA(A,e);function A(t,i){var o=this.constructor,r=e.call(this,t,i)||this;return Object.defineProperty(r,"name",{value:o.name,enumerable:!1,configurable:!0}),xcA(r,o.prototype),LcA(r),r}return A}(Error);class RP extends kP{constructor(A,t){super(t),FA(this,"code",void 0),FA(this,"message",void 0),this.code=A,this.message=t||"",Object.defineProperty(this,"name",{value:"TkeyError"})}toJSON(){return{name:this.name,code:this.code,message:this.message}}toString(){return JSON.stringify(this.toJSON())}}const QS="__ONE_KEY_DELETE_NONCE__",_cA="noncev2";class Mo extends RP{constructor(A,t){super(A,t),Object.defineProperty(this,"name",{value:"ShareSerializationError"})}static fromCode(A,t=""){return new Mo(A,`${Mo.messages[A]}${t}`)}static default(A=""){return new Mo(7e3,`${Mo.messages[7e3]}${A}`)}static typeNotSupported(A=""){return Mo.fromCode(7010,A)}static invalidEntropy(A=""){return Mo.fromCode(7011,A)}static invalidChecksum(A=""){return Mo.fromCode(7012,A)}static invalidMnemonic(A=""){return Mo.fromCode(7013,A)}}FA(Mo,"messages",{7e3:"Custom",7010:"Type is not supported",7011:"Invalid Entropy",7012:"Invalid Checksum",7013:"Invalid mnemonic"});var Fo=Mo;const e4=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"],qcA=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),gg=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ig=new Uint32Array(64);let HcA=class extends QP{constructor(){super(64,32,8,!1),this.A=gg[0]|0,this.B=gg[1]|0,this.C=gg[2]|0,this.D=gg[3]|0,this.E=gg[4]|0,this.F=gg[5]|0,this.G=gg[6]|0,this.H=gg[7]|0}get(){const{A,B:t,C:i,D:o,E:r,F:f,G:h,H:d}=this;return[A,t,i,o,r,f,h,d]}set(A,t,i,o,r,f,h,d){this.A=A|0,this.B=t|0,this.C=i|0,this.D=o|0,this.E=r|0,this.F=f|0,this.G=h|0,this.H=d|0}process(A,t){for(let y=0;y<16;y++,t+=4)Ig[y]=A.getUint32(t,!1);for(let y=16;y<64;y++){const w=Ig[y-15],D=Ig[y-2],v=ts(w,7)^ts(w,18)^w>>>3,M=ts(D,17)^ts(D,19)^D>>>10;Ig[y]=M+Ig[y-7]+v+Ig[y-16]|0}let{A:i,B:o,C:r,D:f,E:h,F:d,G:p,H:C}=this;for(let y=0;y<64;y++){const w=ts(h,6)^ts(h,11)^ts(h,25),D=C+w+AcA(h,d,p)+qcA[y]+Ig[y]|0,M=(ts(i,2)^ts(i,13)^ts(i,22))+ecA(i,o,r)|0;C=p,p=d,d=h,h=f+D|0,f=r,r=o,o=i,i=D+M|0}i=i+this.A|0,o=o+this.B|0,r=r+this.C|0,f=f+this.D|0,h=h+this.E|0,d=d+this.F|0,p=p+this.G|0,C=C+this.H|0,this.set(i,o,r,f,h,d,p,C)}roundClean(){Ig.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};const pw=z3(()=>new HcA),YcA=$3(pw);function JcA(e){return(e||"").normalize("NFKD")}function KP(e){return parseInt(e,2)}function GP(e,A,t){let i=e;for(;i.lengthGP(A.toString(2),"0",8)).join("")}function xP(e){const t=e.length*8/32,i=YcA(e);return FP(Array.from(i)).slice(0,t)}function TcA(e,A){let t;if(Buffer.isBuffer(e)||(t=Buffer.from(e,"hex")),t.length<16||t.length>32||t.length%4!==0)throw Fo.invalidEntropy();const i=FP(Array.from(t)),o=xP(t),h=(i+o).match(/(.{1,11})/g).map(d=>{const p=KP(d);return A[p]});return A[0]==="あいこくしん"?h.join(" "):h.join(" ")}function PcA(e,A){const t=JcA(e).split(" ");if(t.length%3!==0)throw Fo.invalidMnemonic();const i=t.map(C=>{const y=A.indexOf(C);if(y===-1)throw Fo.invalidMnemonic();return GP(y.toString(2),"0",11)}).join(""),o=Math.floor(i.length/33)*32,r=i.slice(0,o),f=i.slice(o),h=r.match(/(.{1,8})/g).map(KP);if(h.length<16||h.length>32||h.length%4!==0)throw Fo.invalidEntropy();const d=Buffer.from(h);if(xP(d)!==f)throw Fo.invalidChecksum();return d.toString("hex")}const OcA="shareSerialization";class ep{constructor(){FA(this,"moduleName",void 0),FA(this,"tbSDK",void 0),this.moduleName=OcA}static serializeMnemonic(A){return TcA(A.toString("hex").padStart(64,"0"),e4)}static deserializeMnemonic(A){return new _A(PcA(A,e4),"hex")}setModuleReferences(A){this.tbSDK=A,this.tbSDK._addShareSerializationMiddleware(this.serialize.bind(this),this.deserialize.bind(this))}async initialize(){}async serialize(A,t){if(t==="mnemonic")return ep.serializeMnemonic(A);throw Fo.typeNotSupported()}async deserialize(A,t){if(t==="mnemonic")return ep.deserializeMnemonic(A);throw Fo.typeNotSupported()}}var aR=ep;function jcA(e){return aR.deserializeMnemonic(e).toString("hex")}function t4(e){const A=new _A(e,"hex");return aR.serializeMnemonic(A)}class gR{constructor({enableLogging:A=!1,postboxKey:t}){FA(this,"enableLogging",void 0),FA(this,"postboxKey",void 0),FA(this,"serviceProviderName",void 0),FA(this,"migratableKey",null),this.enableLogging=A,this.postboxKey=new _A(t,"hex"),this.serviceProviderName="ServiceProviderBase"}static fromJSON(A){const{enableLogging:t,postboxKey:i,serviceProviderName:o}=A;if(o==="ServiceProviderBase")return new gR({enableLogging:t,postboxKey:i})}async encrypt(A){const t=this.retrievePubKey("ecc");return af(t,A)}async decrypt(A){return gf(Zu(this.postboxKey),A)}retrievePubKeyPoint(){return dc(this.postboxKey).getPublic()}retrievePubKey(A){if(A==="ecc")return Ap(this.postboxKey);throw new Error("Unsupported pub key type")}sign(A){const t=new _A(A,"hex"),i=dc(this.postboxKey).sign(t.toString("hex"));return Buffer.from(i.r.toString(16,64)+i.s.toString(16,64)+new _A(0).toString(16,2),"hex").toString("base64")}toJSON(){return{enableLogging:this.enableLogging,postboxKey:this.postboxKey.toString("hex"),serviceProviderName:this.serviceProviderName}}}var WcA=gR;class IR extends WcA{constructor({enableLogging:A=!1,postboxKey:t,customAuthArgs:i}){super({enableLogging:A,postboxKey:t}),FA(this,"customAuthInstance",void 0),FA(this,"singleLoginKey",void 0),FA(this,"torusKey",void 0),FA(this,"migratableKey",null),FA(this,"customAuthArgs",void 0),this.customAuthArgs=i,this.customAuthInstance=new RcA(i),this.serviceProviderName="TorusServiceProvider"}static fromJSON(A){const{enableLogging:t,postboxKey:i,customAuthArgs:o,serviceProviderName:r}=A;if(r==="TorusServiceProvider")return new IR({enableLogging:t,postboxKey:i,customAuthArgs:o})}async init(A){return this.customAuthInstance.init(A)}async triggerLogin(A){const t=await this.customAuthInstance.triggerLogin(A);if(t){const i=Yo.getPostboxKey(t);if(this.torusKey=t,!t.metadata.upgraded){const{finalKeyData:o,oAuthKeyData:r}=t,f=o.privKey||r.privKey;this.migratableKey=new _A(f,"hex")}this.postboxKey=new _A(i,"hex")}return t}async triggerAggregateLogin(A){const t=await this.customAuthInstance.triggerAggregateLogin(A);if(t){const i=Yo.getPostboxKey(t);if(this.torusKey=t,!t.metadata.upgraded){const{finalKeyData:o,oAuthKeyData:r}=t,f=o.privKey||r.privKey;this.migratableKey=new _A(f,"hex")}this.postboxKey=new _A(i,"hex")}return t}toJSON(){return ZA(ZA({},super.toJSON()),{},{serviceProviderName:this.serviceProviderName,customAuthArgs:this.customAuthArgs})}}var VcA=IR;const LP=(e,A)=>{let t=e;if(typeof t=="number"&&(t=Array.from({length:t},(r,f)=>f)),A>t.length||A<=0)return[];if(A===t.length)return[t];if(A===1)return t.reduce((r,f)=>[...r,[f]],[]);const i=[];let o=[];for(let r=0;r<=t.length-A+1;r+=1){o=LP(t.slice(r+1),A-1);for(let f=0;fnew _A(p)),r=new _A(t),f=new _A(i);let h=new _A(1),d=new _A(1);for(let p=0;p({x:i.X,y:i.Y})),serverThreshold:Math.ceil(A.length/2)}}async getTSSPubKey(A,t){if(!this.verifierName||!this.verifierId)throw new Error("verifier userinfo not found, not logged in yet");const i=await this.customAuthInstance.nodeDetailManager.getNodeDetails({verifier:this.verifierName,verifierId:this.verifierId}),o=await this.customAuthInstance.torus.getPublicAddress(i.torusNodeSSSEndpoints,i.torusNodePub,{verifier:this.verifierName,verifierId:this.verifierId,extendedVerifierId:ZcA(this.verifierId,A,t)});return{pubKey:new ht(o.finalKeyData.X,o.finalKeyData.Y),nodeIndexes:o.nodesData.nodeIndexes||[]}}getVerifierNameVerifierId(){return`${this.verifierName}${this.verifierId}`}async triggerLogin(A){const t=await super.triggerLogin(A);if(t){const{verifier:i,verifierId:o}=t.userInfo;this.verifierName=i,this.verifierId=o}return t}async triggerAggregateLogin(A){const t=await super.triggerAggregateLogin(A);if(t){const{verifier:i,verifierId:o}=t.userInfo[0];this.verifierName=i,this.verifierId=o}return t}}class Lt extends RP{constructor(A,t){super(A,t),Object.defineProperty(this,"name",{value:"CoreError"})}static fromCode(A,t=""){return new Lt(A,`${Lt.messages[A]} ${t}`)}static default(A=""){return new Lt(1e3,`${Lt.messages[1e3]} ${A}`)}static metadataUndefined(A=""){return Lt.fromCode(1101,A)}static delete1OutOf1OnlyManualSync(A=""){return Lt.fromCode(1601,A)}static metadataGetFailed(A=""){return Lt.fromCode(1102,A)}static metadataPostFailed(A=""){return Lt.fromCode(1103,A)}static tkeyStoreInvalid(A=""){return Lt.fromCode(1201,A)}static tkeyEncryptionFailed(A=""){return Lt.fromCode(1202,A)}static tkeyDecryptionFailed(A=""){return Lt.fromCode(1203,A)}static privateKeyUnavailable(A=""){return Lt.fromCode(1301,A)}static unableToReconstruct(A=""){return Lt.fromCode(1302,A)}static incorrectReconstruction(A=""){return Lt.fromCode(1303,A)}static encryptedShareStoreUnavailable(A=""){return Lt.fromCode(1306,A)}static acquireLockFailed(A=""){return Lt.fromCode(1401,A)}static releaseLockFailed(A=""){return Lt.fromCode(1402,A)}static privKeyUnavailable(A=""){return Lt.fromCode(1501,A)}static metadataPubKeyUnavailable(A=""){return Lt.fromCode(1502,A)}static authMetadataGetUnavailable(A=""){return Lt.fromCode(1503,A)}static authMetadataSetUnavailable(A=""){return Lt.fromCode(1504,A)}}FA(Lt,"messages",{1e3:"Custom",1001:"Unable to delete service provider share",1002:"Wrong share index",1003:"Unable to updateSDK",1101:"metadata not found, SDK likely not initialized",1102:"getMetadata errored",1103:"setMetadata errored",1104:"previouslyFetchedCloudMetadata provided in initialization is outdated",1105:"previouslyFetchedCloudMetadata.nonce should never be higher than the latestShareDetails, please contact support",1201:"Invalid tkeyStore",1202:"Encryption failed",1203:"Decryption failed",1301:"Private key not available. Please reconstruct key first",1302:"Unable to reconstruct",1303:"reconstructed key is not pub key",1304:"Share found in unexpected polynomial",1305:"Input is not supported",1306:"no encrypted share store for share exists",1307:"Share doesn't exist",1308:"Share was deleted",1401:"Unable to acquire lock",1402:"Unable to release lock",1501:"privkey unavailable",1502:"metadata pubkey unavailable",1503:"getAuthMetadata errored",1504:"setAuthMetadata errored",1601:"delete1OutOf1 requires manualSync=true"});var jA=Lt;function fR(){return $e.genKeyPair().getPrivate()}const pS=e=>Array.from({length:e},()=>new _A(0)),$cA=(e,A)=>{let t=new _A(1);const i=A[e].x;for(let o=A.length-1;o>=0;o-=1)if(e!==o){let r=new _A(i);r=r.sub(A[o].x),r=r.umod($e.curve.n),t=t.mul(r),t=t.umod($e.curve.n)}return t},XcA=(e,A)=>{let t=pS(A.length);const i=$cA(e,A);if(i.cmp(new _A(0))===0)throw jA.default("Denominator for interpolationPoly is 0");t[0]=i.invm($e.curve.n);for(let o=0;o=0;f-=1){r[f+1]=r[f+1].add(t[f]),r[f+1]=r[f+1].umod($e.curve.n);let h=new _A(A[o].x);h=h.mul(t[f]),h=h.umod($e.curve.n),r[f]=r[f].sub(h),r[f]=r[f].umod($e.curve.n)}t=r}}return t},AuA=e=>{const A=[...e];return A.sort((t,i)=>t.x.cmp(i.x)),A},euA=e=>{const A=AuA(e),t=pS(A.length);for(let i=0;ie)throw jA.default("deterministicShares in generateRandomPolynomial should be less or equal than degree to ensure an element of randomness");const o={};t.forEach(r=>{o[r.shareIndex.toString("hex")]=new ht(r.shareIndex,r.share)});for(let r=0;rnew ht(b.x,b.y))}if(C){v.tssNonces={};for(const R in C)v.tssNonces[R]=C[R]}if(y){v.factorPubs={};for(const R in y)v.factorPubs[R]=y[R].map(b=>new ht(b.x,b.y))}w&&(v.factorEncs=w);for(let R=0;Rq==="0x0"),U=S.slice(0,G),P=S.slice(G+1,S.length),z=U.join("|"),oA=[];U.forEach(q=>{oA.push(ht.fromCompressedPub(q))});const J=new bP(oA);v.publicPolynomials[z]=J,M.push([z,P])}return v.polyIDList=M,v}getShareIndexesForPolynomial(A){const t=this.polyIDList.filter(i=>i[0]===A);if(t.length<1)throw jA.default("there is no matching polyID");if(t.length>1)throw jA.default("there is more than one matching polyID");return t[0][1]}getLatestPublicPolynomial(){return this.publicPolynomials[this.polyIDList[this.polyIDList.length-1][0]]}addPublicShare(A,t){A in this.publicShares||(this.publicShares[A]={}),this.publicShares[A][t.shareIndex.toString("hex")]=t}setGeneralStoreDomain(A,t){this.generalStore[A]=t}getGeneralStoreDomain(A){return this.generalStore[A]}deleteGeneralStoreDomain(A){delete this.generalStore[A]}setTkeyStoreDomain(A,t){this.tkeyStore[A]=t}getTkeyStoreDomain(A){return this.tkeyStore[A]}addFromPolynomialAndShares(A,t){const i=A.getPublicPolynomial(),o=i.getPolynomialID();this.publicPolynomials[o]=i;const r=[];if(Array.isArray(t))for(let f=0;f-1)i[A].splice(o,1);else throw jA.default(`No share description found for the given shareIndex: ${A} + and description: ${t}`)}updateShareDescription(A,t,i){const o=this.getGeneralStoreDomain("shareDescriptions"),r=o[A].indexOf(t);if(r>-1)o[A][r]=i;else throw jA.default(`No share description found for the given shareIndex: + ${A} and description: ${t}`)}shareToShareStore(A){const t=If(A);for(let i=this.polyIDList.length-1;i>=0;i-=1){const o=this.polyIDList[i][0];for(let r=0;rnew _A(h,"hex").cmp(new _A(d,"hex"))),f=i.split("|").concat("0x0").concat(...r).join("|");A.push(f)}return ZA(ZA(ZA(ZA(ZA({pubKey:this.pubKey.toSEC1($e,!0).toString("hex"),polyIDList:A,scopedStore:this.scopedStore,generalStore:this.generalStore,tkeyStore:this.tkeyStore,nonce:this.nonce},this.tssKeyTypes&&{tssKeyTypes:this.tssKeyTypes}),this.tssNonces&&{tssNonces:this.tssNonces}),this.tssPolyCommits&&{tssPolyCommits:this.tssPolyCommits}),this.factorPubs&&{factorPubs:this.factorPubs}),this.factorEncs&&{factorEncs:this.factorEncs})}updateTSSData(A){const{tssKeyType:t,tssTag:i,tssNonce:o,tssPolyCommits:r,factorPubs:f,factorEncs:h}=A;t&&(this.tssKeyTypes[i]=t),o!==void 0&&(this.tssNonces[i]=o),r&&(this.tssPolyCommits[i]=r),f&&(this.factorPubs[i]=f),h&&(this.factorEncs[i]=h)}}var Sh=tp;class hR{constructor(A,t){FA(this,"metadata",void 0),FA(this,"privKey",void 0),this.metadata=A,this.privKey=t}static fromJSON(A){const{data:t,sig:i}=A;if(!t)throw jA.metadataUndefined();const o=Sh.fromJSON(t);if(!o.pubKey)throw jA.metadataPubKeyUnavailable();if(!$e.keyFromPublic(o.pubKey.toSEC1($e)).verify(A4(ur(Buffer.from(yi(t),"utf8"))),i))throw jA.default("Signature not valid for returning metadata");return new hR(o)}toJSON(){const A=this.metadata;if(!this.privKey)throw jA.privKeyUnavailable();const i=dc(this.privKey).sign(A4(ur(Buffer.from(yi(A),"utf8"))));return{data:A,sig:i.toDER("hex")}}}var fh=hR;const Fv="ed25519Seed";class ip{constructor(A){FA(this,"modules",void 0),FA(this,"enableLogging",void 0),FA(this,"serviceProvider",void 0),FA(this,"storageLayer",void 0),FA(this,"shares",void 0),FA(this,"lastFetchedCloudMetadata",void 0),FA(this,"metadata",void 0),FA(this,"manualSync",void 0),FA(this,"_localMetadataTransitions",void 0),FA(this,"_refreshMiddleware",void 0),FA(this,"_reconstructKeyMiddleware",void 0),FA(this,"_shareSerializationMiddleware",void 0),FA(this,"storeDeviceShare",void 0),FA(this,"haveWriteMetadataLock",void 0),FA(this,"serverTimeOffset",0),FA(this,"privKey",void 0),FA(this,"_ed25519Seed",void 0);const{enableLogging:t=!1,modules:i={},serviceProvider:o,storageLayer:r,manualSync:f=!1,serverTimeOffset:h}=A||{};this.enableLogging=t,this.serviceProvider=o,this.storageLayer=r,this.modules=i,this.shares={},this.privKey=void 0,this.manualSync=f,this._refreshMiddleware={},this._reconstructKeyMiddleware={},this._shareSerializationMiddleware=void 0,this.storeDeviceShare=void 0,this._localMetadataTransitions=[[],[]],this.setModuleReferences(),this.haveWriteMetadataLock="",this.serverTimeOffset=h}get secp256k1Key(){return typeof this.privKey<"u"?this.privKey:null}get ed25519Key(){return typeof this._ed25519Seed<"u"?this._ed25519Seed:null}set secp256k1Key(A){this.privKey=A}set ed25519Key(A){this._ed25519Seed=A}static async fromJSON(A,t){const{enableLogging:i,privKey:o,metadata:r,shares:f,_localMetadataTransitions:h,manualSync:d,lastFetchedCloudMetadata:p,serverTimeOffset:C}=A,{storageLayer:y,serviceProvider:w,modules:D}=t,v=new ip({enableLogging:i,storageLayer:y,serviceProvider:w,modules:D,manualSync:d,serverTimeOffset:C});o&&(v.privKey=new _A(o,"hex"));for(const P in f)if(Object.prototype.hasOwnProperty.call(f,P)){const z=f[P];for(const oA in z)if(Object.prototype.hasOwnProperty.call(z,oA)){const J=z[oA];z[oA]=ii.fromJSON(J)}}v.shares=f;const M=Object.keys(JSON.parse(yi(new fh(new Sh(new ht("0","0")),new _A("0","hex"))))),R=Object.keys(JSON.parse(yi(new ii(new Ec("0","0"),"")))),b={message:"Sample message",dateAdded:Date.now()},S=Object.keys(b),G=[],U=[];if(h[0].forEach((P,z)=>{P?G.push(new _A(P,"hex")):G.push(void 0);const oA=Object.keys(h[1][z]);if(oA.length===M.length&&oA.every(J=>M.includes(J))){const J=fh.fromJSON(h[1][z]);J.privKey=o,U.push(J)}else if(oA.length===R.length&&oA.every(J=>R.includes(J)))U.push(ii.fromJSON(h[1][z]));else if(oA.length===S.length&&oA.every(J=>S.includes(J)))U.push(h[1][z]);else throw jA.default("fromJSON failed. Could not deserialise _localMetadataTransitions")}),r||p){let P,z,oA;if(v.serviceProvider.postboxKey.toString("hex")==="0"){const J=Sh.fromJSON(p).getLatestPublicPolynomial().getPolynomialID(),q=Object.keys(f[J]),X=q[Math.floor(Math.random()*(q.length-1))];q.length>=1&&(oA=f[J][X])}r&&(P=Sh.fromJSON(r)),p&&(z=Sh.fromJSON(p)),await v.initialize({neverInitializeNewKey:!0,transitionMetadata:P,previouslyFetchedCloudMetadata:z,previousLocalMetadataTransitions:[G,U],withShare:oA})}else await v.initialize({neverInitializeNewKey:!0});return v}getStorageLayer(){return this.storageLayer}getMetadata(){if(typeof this.metadata<"u")return this.metadata;throw jA.metadataUndefined()}async initialize(A){const t=A||{};if(t.delete1OutOf1&&!this.manualSync)throw jA.delete1OutOf1OnlyManualSync();const{withShare:i,importKey:o,importEd25519Seed:r,neverInitializeNewKey:f,transitionMetadata:h,previouslyFetchedCloudMetadata:d,previousLocalMetadataTransitions:p}=t,C=p&&p[0].length>0&&p[1].length>0,y=h&&C,w=y&&d===void 0;let D;if(i instanceof ii)D=i;else if(typeof i=="object")D=ii.fromJSON(i);else{if(i)throw jA.default("Input is not supported");{const S=w,G=w?p:void 0,U=await this.getGenericMetadataWithTransitionStates({serviceProvider:this.serviceProvider,includeLocalMetadataTransitions:S,_localMetadataTransitions:G,fromJSONConstructor:{fromJSON(z){return z}}});if(U.message===ES){if(f)throw jA.default("key has not been generated yet");if(this.serviceProvider.migratableKey&&!(o||r)){const z=this.manualSync;this.manualSync=!0,await this._initializeNewKey({initializeModules:!0,importedKey:this.serviceProvider.migratableKey,delete1OutOf1:!0}),z||await this.syncLocalMetadataTransitions(),this.manualSync=z}else await this._initializeNewKey({initializeModules:!0,importedKey:o,delete1OutOf1:t.delete1OutOf1,importEd25519Seed:r});return this.getKeyDetails()}D=ii.fromJSON(U)}}let v,M,R;try{R=await this.catchupToLatestShare({shareStore:D})}catch(S){const G=S;if(!(G.code===1503)||!y)throw G}if(y&&!w){if(d.nonceR.shareMetadata.nonce)throw jA.fromCode(1105);M=d}else M=R?R.shareMetadata.clone():void 0;y?(v=h,this._localMetadataTransitions=p):v=R.shareMetadata,this.lastFetchedCloudMetadata=M,this.metadata=v;const b=R?R.latestShare:D;if(this.inputShareStore(b),r&&this.getEd25519PublicKey())throw jA.default("Ed25119 key already exists");return await this.initializeModules(),this.getKeyDetails()}async catchupToLatestShare(A){const{shareStore:t,polyID:i,includeLocalMetadataTransitions:o}=A;let r;try{r=await this.getAuthMetadata({privKey:t.share.share,includeLocalMetadataTransitions:o})}catch(f){const h=f;if(h&&h.code===1308)throw h;const d=await Xh(h);throw jA.authMetadataGetUnavailable(`, ${d.message}`)}try{if(i&&t.polynomialID===i)return{latestShare:t,shareMetadata:r};const f=await r.getEncryptedShare(t);return await this.catchupToLatestShare({shareStore:f,polyID:i,includeLocalMetadataTransitions:o})}catch(f){const h=f;if(h&&h.code===1308)throw h;return{latestShare:t,shareMetadata:r}}}async reconstructKey(A=!0){if(!this.metadata)throw jA.metadataUndefined();const t=this.metadata.getLatestPublicPolynomial(),i=t.getThreshold(),o=t.getPolynomialID();let r=i;const f=this.metadata.getShareIndexesForPolynomial(o),h={};for(let M=0;M=0&&r>0;M-=1){const R=this.shares[this.metadata.polyIDList[M][0]];if(R){const b=Object.keys(R);for(let S=0;S0;S+=1)if(b[S]in h){const G=R[b[S]];if(G.polynomialID===o)d.push(G);else{const U=await this.catchupToLatestShare({shareStore:G,polyID:o,includeLocalMetadataTransitions:!0});if(U.latestShare.polynomialID===o)d.push(U.latestShare);else throw new jA(1304,"Share found in unexpected polynomial")}delete h[b[S]],r-=1}}}if(d.forEach(M=>{this.inputShareStore(M)}),r>0)throw jA.unableToReconstruct(` require ${i} but have ${i-r}`);const p=Object.keys(this.shares[o]),C=[],y=[];for(let M=0;M0&&await Promise.all(Object.keys(this._reconstructKeyMiddleware).map(async M=>{if(Object.prototype.hasOwnProperty.call(this._reconstructKeyMiddleware,M)){const R=await this._reconstructKeyMiddleware[M]();v[M]=R,v.allKeys.push(...R)}})),this.getEd25519PublicKey()){const M=await this.retrieveEd25519Seed();if(!M)throw jA.default("Ed25519 seed not found");this._ed25519Seed=M}return ZA({secp256k1Key:w,ed25519Seed:this._ed25519Seed},v)}reconstructLatestPoly(){if(!this.metadata)throw jA.metadataUndefined();const A=this.metadata.getLatestPublicPolynomial(),t=A.getPolynomialID(),i=A.getThreshold(),o=[],r=Object.keys(this.shares[t]);if(r.length{const y=new _A(C,"hex");y.cmp(t)!==0&&h.push(y.toString("hex"))}),f.length===h.length)throw jA.default("Share index does not exist in latest polynomial");if(h.lengthnew _A(d,"hex")),r=new _A(Rg(o));return{newShareStores:(await this._refreshShares(A.getThreshold(),[...i,r.toString("hex")],t)).shareStores,newShareIndex:r}}getEd25519PublicKey(){if(!this.metadata)throw jA.metadataUndefined();const A=this.metadata.getGeneralStoreDomain(Fv);return A==null?void 0:A.publicKey}async retrieveEd25519Seed(){if(!this.metadata)throw jA.metadataUndefined();if(!this.privKey)throw jA.privateKeyUnavailable();const A=this.metadata.getGeneralStoreDomain(Fv),t=await this.decrypt(A.message);return this._ed25519Seed=t,t}async addLocalMetadataTransitions(A){const{privKey:t,input:i}=A;this._localMetadataTransitions[0]=[...this._localMetadataTransitions[0],...t],this._localMetadataTransitions[1]=[...this._localMetadataTransitions[1],...i],this.manualSync||await this.syncLocalMetadataTransitions()}async syncLocalMetadataTransitions(){if(!this.metadata)throw jA.metadataUndefined();if(!(Array.isArray(this._localMetadataTransitions[0])&&this._localMetadataTransitions[0].length>0))return;let A=!1;this.lastFetchedCloudMetadata&&(await this.acquireWriteMetadataLock(),A=!0);try{await this.storageLayer.setMetadataStream({input:this._localMetadataTransitions[1],privKey:this._localMetadataTransitions[0],serviceProvider:this.serviceProvider}),this._localMetadataTransitions=[[],[]],this.lastFetchedCloudMetadata=this.metadata.clone()}catch(t){const i=await Xh(t);throw jA.metadataPostFailed(i.message)}finally{A&&await this.releaseWriteMetadataLock()}}async readMetadata(A){return this.storageLayer.getMetadata({privKey:A})}async updateSDK(A){const t=new ip({enableLogging:this.enableLogging,modules:this.modules,serviceProvider:this.serviceProvider,storageLayer:this.storageLayer,manualSync:this.manualSync});try{await t.initialize({neverInitializeNewKey:!0,withShare:A&&A.withShare})}catch(f){throw jA.fromCode(1103,`${f.message}`)}const i=t.metadata.polyIDList;let o;Object.keys(this.shares).forEach(f=>{i.find(h=>h[0]===f)?o=f:delete this.shares[f]});const r=Object.keys(this.shares[o]).map(f=>t.inputShareStoreSafe(this.outputShareStore(f,o)));return await Promise.all(r),t}inputShareStore(A){let t;if(A instanceof ii)t=A;else if(typeof A=="object")t=ii.fromJSON(A);else throw jA.default("can only add type ShareStore into shares");t.polynomialID in this.shares||(this.shares[t.polynomialID]={}),this.shares[t.polynomialID][t.share.shareIndex.toString("hex")]=t}async inputShareStoreSafe(A,t=!1){if(!this.metadata)throw jA.metadataUndefined();let i;if(A instanceof ii)i=A;else if(typeof A=="object")i=ii.fromJSON(A);else throw jA.default("can only add type ShareStore into shares");const o=this.metadata.getLatestPublicPolynomial().getPolynomialID();if(i.polynomialID!==o){const r=await this.catchupToLatestShare({shareStore:i,includeLocalMetadataTransitions:!0});if(!r.shareMetadata.polyIDList.find(f=>f[0]===o))throw jA.fromCode(1307);if(o!==r.latestShare.polynomialID)if(t)this.metadata=r.shareMetadata;else throw jA.default(`TKey SDK metadata seems to be outdated because shareIndex: ${r.latestShare.share.shareIndex.toString("hex")} has a more recent metadata. Please call updateSDK first`);r.latestShare.polynomialID in this.shares||(this.shares[r.latestShare.polynomialID]={}),this.shares[r.latestShare.polynomialID][r.latestShare.share.shareIndex.toString("hex")]=r.latestShare}else i.polynomialID in this.shares||(this.shares[i.polynomialID]={}),this.shares[i.polynomialID][i.share.shareIndex.toString("hex")]=i}outputShareStore(A,t){if(!this.metadata)throw jA.metadataUndefined();let i;typeof A=="number"?i=new _A(A):_A.isBN(A)?i=A:typeof A=="string"&&(i=new _A(A,"hex"));let o;if(t?o=t:o=this.metadata.getLatestPublicPolynomial().getPolynomialID(),!this.metadata.getShareIndexesForPolynomial(o).includes(i.toString("hex")))throw new jA(1002,"no such share index created");const r=this.shares[o][i.toString("hex")];if(r)return r;const h=this.reconstructLatestPoly().generateShares([i]);return new ii(h[i.toString("hex")],o)}getCurrentShareIndexes(){if(!this.metadata)throw jA.metadataUndefined();const t=this.metadata.getLatestPublicPolynomial().getPolynomialID();return Object.keys(this.shares[t])}getKeyDetails(){if(!this.metadata)throw jA.metadataUndefined();const A=this.metadata.getLatestPublicPolynomial(),t=A.getPolynomialID(),i=A.getThreshold()-Object.keys(this.shares[t]).length;let o=this.metadata.getShareDescription();if(o){const r=this.metadata.getShareIndexesForPolynomial(t);o=Object.keys(o).reduce((f,h)=>(r.indexOf(h)>=0&&(f[h]=o[h]),f),{})}return{pubKey:this.metadata.pubKey,ed25519PublicKey:this.getEd25519PublicKey(),requiredShares:i,threshold:A.getThreshold(),totalShares:this.metadata.getShareIndexesForPolynomial(t).length,shareDescriptions:o}}generateAuthMetadata(A){const{input:t}=A,i=[];for(let o=0;o=0;r-=1){const f=i[0][r];if((A.privKey&&f&&f.cmp(A.privKey)===0||A.serviceProvider&&!f)&&(o=r),o!==null)break}if(o!==null)return i[1][o]}let t;try{t=await this.storageLayer.getMetadata(A)}catch(i){const o=await Xh(i);throw jA.metadataGetFailed(o.message)}if(t.message===xE)throw jA.fromCode(1308);return A.fromJSONConstructor.fromJSON(t)}async acquireWriteMetadataLock(){if(this.haveWriteMetadataLock)return this.metadata.nonce;if(!this.privKey)throw jA.privateKeyUnavailable();let A;const t=this.lastFetchedCloudMetadata.getLatestPublicPolynomial().getPolynomialID(),i=Object.keys(this.shares[t]),o=i[Math.floor(Math.random()*(i.length-1))];i.length>=1?A=this.shares[t][o]:A=this.outputShareStore(o,t);const f=(await this.catchupToLatestShare({shareStore:A})).shareMetadata;if(f.nonce>this.lastFetchedCloudMetadata.nonce)throw jA.acquireLockFailed(`unable to acquire write access for metadata due to + lastFetchedCloudMetadata (${this.lastFetchedCloudMetadata.nonce}) + being lower than last written metadata nonce (${f.nonce}). perhaps update metadata SDK (create new tKey and init)`);if(f.noncei.share.share);await this.syncMultipleShareMetadata(t,A)}async syncMultipleShareMetadata(A,t){if(!this.metadata)throw jA.metadataUndefined();this.metadata.nonce+=1;const i=A.map(async r=>{const f=this.metadata.clone();let h;try{h=await this.getAuthMetadata({privKey:r,includeLocalMetadataTransitions:!0})}catch(p){const C=await Xh(p);throw jA.authMetadataGetUnavailable(C.message)}let d;return t?d=t(h.scopedStore):d=h.scopedStore,f.scopedStore=d,f}),o=await Promise.all(i);return this.setAuthMetadataBulk({input:o,privKey:A})}_addRefreshMiddleware(A,t){this._refreshMiddleware[A]=t}_addReconstructKeyMiddleware(A,t){this._reconstructKeyMiddleware[A]=t}_addShareSerializationMiddleware(A,t){this._shareSerializationMiddleware={serialize:A,deserialize:t}}_setDeviceStorage(A){if(this.storeDeviceShare)throw jA.default("storeDeviceShare already set");this.storeDeviceShare=A}async addShareDescription(A,t,i){if(!this.metadata)throw jA.metadataUndefined();this.metadata.addShareDescription(A,t),i&&await this._syncShareMetadata()}async deleteShareDescription(A,t,i){if(!this.metadata)throw jA.metadataUndefined();this.metadata.deleteShareDescription(A,t),i&&await this._syncShareMetadata()}async updateShareDescription(A,t,i,o){if(!this.metadata)throw jA.metadataUndefined();this.metadata.updateShareDescription(A,t,i),o&&await this._syncShareMetadata()}async encrypt(A){if(!this.privKey)throw jA.privateKeyUnavailable();return af(Ap(this.privKey),A)}async decrypt(A){if(!this.privKey)throw jA.privateKeyUnavailable();return gf(Zu(this.privKey),A)}async _setTKeyStoreItem(A,t){if(!this.metadata)throw jA.metadataUndefined();const i=this.metadata.getTkeyStoreDomain(A)||[],o=await Promise.all(i.map(async h=>{const d=await this.decrypt(h);return JSON.parse(d.toString())})),r=await this.encrypt(Buffer.from(yi(t))),f=o.findIndex(h=>h.id===t.id);f>-1?i[f]=r:i.push(r),this.metadata.setTkeyStoreDomain(A,i),await this._syncShareMetadata()}async _deleteTKeyStoreItem(A,t){if(!this.metadata)throw jA.metadataUndefined();const i=this.metadata.getTkeyStoreDomain(A)||[],r=(await Promise.all(i.map(async f=>{const h=await this.decrypt(f);return JSON.parse(h.toString())}))).filter(f=>f.id!==t);this.metadata.setTkeyStoreDomain(A,r),await this._syncShareMetadata()}async getTKeyStore(A){if(!this.metadata)throw jA.metadataUndefined();const t=this.metadata.getTkeyStoreDomain(A)||[];return await Promise.all(t.map(async o=>{const r=await this.decrypt(o);return JSON.parse(r.toString())}))}async getTKeyStoreItem(A,t){if(!this.metadata)throw jA.metadataUndefined();const i=this.metadata.getTkeyStoreDomain(A)||[];return(await Promise.all(i.map(async f=>{const h=await this.decrypt(f);return JSON.parse(h.toString())}))).find(f=>f.id===t)}async outputShare(A,t){const{share:i}=this.outputShareStore(A).share;return t?this._shareSerializationMiddleware.serialize(i,t):i}async inputShare(A,t){if(!this.metadata)throw jA.metadataUndefined();let i;if(!t)i=this.metadata.shareToShareStore(A);else{const h=await this._shareSerializationMiddleware.deserialize(A,t);i=this.metadata.shareToShareStore(h)}const r=this.metadata.getLatestPublicPolynomial().getPolynomialID();if(!this.metadata.getShareIndexesForPolynomial(r).includes(i.share.shareIndex.toString("hex")))throw jA.default("Latest poly doesn't include this share");await this.inputShareStoreSafe(i)}toJSON(){return{shares:this.shares,enableLogging:this.enableLogging,privKey:this.privKey?this.privKey.toString("hex"):void 0,metadata:this.metadata,lastFetchedCloudMetadata:this.lastFetchedCloudMetadata,_localMetadataTransitions:this._localMetadataTransitions,manualSync:this.manualSync,serviceProvider:this.serviceProvider,storageLayer:this.storageLayer}}getAllShareStoresForLatestPolynomial(){const A=this.metadata.getLatestPublicPolynomial(),t=A.getPolynomialID(),i=this.metadata.getShareIndexesForPolynomial(t),o=A.getThreshold(),r=[],f=Object.keys(this.shares[t]);if(f.lengththis.metadata.shareToShareStore(d[C].share))}async CRITICAL_deleteTkey(){if(!this.metadata)throw jA.metadataUndefined();if(!this.privKey)throw jA.privateKeyUnavailable();if(this._localMetadataTransitions[0].length>0||this._localMetadataTransitions[1].length>0)throw jA.default("Please sync all local state before calling this function");const A=this.getAllShareStoresForLatestPolynomial();await this.addLocalMetadataTransitions({input:[...Array(A.length).fill({message:xE,dateAdded:Date.now()}),{message:ES}],privKey:[...A.map(t=>t.share.share),void 0]}),await this.syncLocalMetadataTransitions(),this.privKey=void 0,this.metadata=void 0,this.shares={},this.lastFetchedCloudMetadata=void 0}getApi(){return{getMetadata:this.getMetadata.bind(this),getStorageLayer:this.getStorageLayer.bind(this),initialize:this.initialize.bind(this),catchupToLatestShare:this.catchupToLatestShare.bind(this),_syncShareMetadata:this._syncShareMetadata.bind(this),_addRefreshMiddleware:this._addRefreshMiddleware.bind(this),_addReconstructKeyMiddleware:this._addReconstructKeyMiddleware.bind(this),_addShareSerializationMiddleware:this._addShareSerializationMiddleware.bind(this),addShareDescription:this.addShareDescription.bind(this),generateNewShare:this.generateNewShare.bind(this),inputShareStore:this.inputShareStore.bind(this),inputShareStoreSafe:this.inputShareStoreSafe.bind(this),outputShareStore:this.outputShareStore.bind(this),inputShare:this.inputShare.bind(this),outputShare:this.outputShare.bind(this),_setDeviceStorage:this._setDeviceStorage.bind(this),encrypt:this.encrypt.bind(this),decrypt:this.decrypt.bind(this),getTKeyStore:this.getTKeyStore.bind(this),getTKeyStoreItem:this.getTKeyStoreItem.bind(this),_setTKeyStoreItem:this._setTKeyStoreItem.bind(this),_deleteTKeyStoreItem:this._deleteTKeyStoreItem.bind(this),deleteShare:this.deleteShare.bind(this)}}setModuleReferences(){Object.keys(this.modules).map(A=>this.modules[A].setModuleReferences(this.getApi()))}async initializeModules(){return Promise.all(Object.keys(this.modules).map(A=>this.modules[A].initialize()))}async _refreshShares(A,t,i){if(!this.metadata)throw jA.metadataUndefined();if(!this.privKey)throw jA.privateKeyUnavailable();if(A>t.length)throw jA.default(`threshold should not be greater than share indexes. ${A} > ${t.length}`);this.metadata.nonce+=1;const o=Gv(A-1,this.privKey),r=o.generateShares(t),f=this.metadata.getShareIndexesForPolynomial(i),h=[],d=Object.keys(this.shares[i]);if(d.length{w[P]=new ii(r[P],D)});const v=this.metadata.clone(),M={},R=await Promise.all(C.map(async P=>{const z=p.polyEval(new _A(P,"hex")),oA=await af(Ap(z),Buffer.from(JSON.stringify(w[P])));return M[If(z).x.toString("hex")]=oA,y[P]=new ii(new Ec(P,z),i),z}));v.setScopedStore("encryptedShares",M);const b=Array(R.length).fill(v);for(const P in this._refreshMiddleware)if(Object.prototype.hasOwnProperty.call(this._refreshMiddleware,P)){const z=this._refreshMiddleware[P](this.metadata.getGeneralStoreDomain(P),y,w);z?this.metadata.setGeneralStoreDomain(P,z):this.metadata.deleteGeneralStoreDomain(P)}const S=[],G=t.map(P=>{const z=this.metadata.clone();return S.push(z),w[P].share.share}),U=this.generateAuthMetadata({input:[...b,...S]});await this.addLocalMetadataTransitions({input:[...U,w[1]],privKey:[...R,...G,void 0]});for(let P=0;P(D.push(this.metadata),p[b.toString("hex")].share)),M=this.generateAuthMetadata({input:D});await this.addLocalMetadataTransitions({input:[...M,w],privKey:[...v,void 0]}),r&&await this.addLocalMetadataTransitions({input:[{message:QS}],privKey:[this.serviceProvider.postboxKey]});for(let b=0;be.length)throw new Error("trying to select more elements than available");const t=[],i=e.slice();for(;t.lengthnew _A(p)),r=new _A(A),f=new _A(t);let h=new _A(1),d=new _A(1);for(let p=0;p{const g=this.serverEndpoints[a-1];return Ll(g,"/rss_round_1",{round_name:"rss_round_1",server_set:"new",server_index:a,new_servers_info:p,user_temp_pubkey:ar(this.tempPubKey),target_index:f,auth:{label:i,sigs:o},key_type:this.keyType})}),y=f.map(a=>yI([0,1],0,a,this.ecCurve.n).umod(this.ecCurve.n)),w=[],D=[],v=[],M=[],R=()=>this.ecCurve.genKeyPair().getPrivate();for(let a=0;a{const E=this.ecCurve.g.mul(B);return ar(E)}));const c=Qd(p.threshold-1,ch(I,1,this.ecCurve.n),R);v.push(c),M.push(c.map(B=>ar(this.ecCurve.g.mul(B))))}const b=[],S=[];for(let a=0;a{a({target_index:f,data:G})}));const U=await Promise.all(C),P=f.map((a,g)=>{for(let B=0;Bcn(this.ecCurve,l)),c=s.map(l=>cn(this.ecCurve,l));continue}I=I.map((l,m)=>cn(this.ecCurve,u[m]).add(l)),c=c.map((l,m)=>cn(this.ecCurve,s[m]).add(l))}return{mc:I,sc:c}});f.map((a,g)=>{const{mc:I,sc:c}=P[g],B=cn(this.ecCurve,r).mul(yI([1,a],1,0,this.ecCurve.n)),E=I[0].mul(yI([1,a],a,0,this.ecCurve.n));if(!B.add(E).eq(this.tssPubKey))throw new Error("master poly commits inconsistent with tssPubKey");if(!I[0].add(I[1]).eq(c[0]))throw new Error("server poly commits inconsistent with master poly commits");return null});const z=Buffer.from(this.tempPrivKey.toString(16,64),"hex"),oA=[];for(let a=0;as.data[a].target_encryptions.user_enc),c=(await Promise.all(g.map(s=>o4(z,s)))).map(s=>new _A(s)).reduce((s,l)=>s.add(l).umod(this.ecCurve.n),new _A(0)),{mc:B}=P[a],E=this.ecCurve.g.mul(c),u=B[0].add(B[1].mul(new _A(99)));if(!E.eq(u))throw new Error("decrypted user shares inconsistent with poly commits");oA.push(c)}const J=await Promise.all(oA.map((a,g)=>{const I=d[g];return hh(Buffer.from(`04${I.x.padStart(64,"0")}${I.y.padStart(64,"0")}`,"hex"),Buffer.from(a.toString(16,64),"hex"))})),q=f.map((a,g)=>{const I=U.map(B=>B.data[g].target_encryptions.server_encs),c=[];for(let B=0;Bg+1),Q=await Promise.all(X.map(a=>{const g=[];f.map((c,B)=>{const{mc:E,sc:u}=P[B],s={master_commits:E.map(ar),server_commits:u.map(ar),server_encs:q[B][a-1],factor_pubkeys:[d[B]]};return g.push(s),null});const I=this.serverEndpoints[a-1];return Ll(I,"/rss_round_2",{round_name:"rss_round_2",server_index:a,target_index:f,data:g,key_type:this.keyType}).catch(c=>tn.error(c))}));if(Q.filter(a=>a).lengthg&&g.data[a].encs[0]),userFactorEnc:J[a]});return n}async refresh(A){const{targetIndexes:t,inputIndex:i,selectedServers:o,oldLabel:r,newLabel:f,sigs:h,dkgNewPub:d,inputShare:p,factorPubs:C}=A;if(C.length!==t.length)throw new Error("inconsistent factorPubs and targetIndexes lengths");const y={pubkeys:this.serverPubKeys,selected:o,threshold:this.serverThreshold},w=o.map(c=>{const B=this.serverEndpoints[c-1];return Ll(B,"/rss_round_1",{round_name:"rss_round_1",server_set:"old",server_index:c,old_servers_info:y,new_servers_info:y,old_user_share_index:i,user_temp_pubkey:ar(this.tempPubKey),target_index:t,auth:{label:r,sigs:h},key_type:this.keyType})}).concat(o.map(c=>{const B=this.serverEndpoints[c-1];return Ll(B,"/rss_round_1",{round_name:"rss_round_1",server_set:"new",server_index:c,old_servers_info:y,new_servers_info:y,old_user_share_index:i,user_temp_pubkey:ar(this.tempPubKey),target_index:t,auth:{label:f,sigs:h},key_type:this.keyType})})),D=yI([1,i],i,0,this.ecCurve.n),v=t.map(c=>D.mul(yI([0,1],0,c,this.ecCurve.n)).umod(this.ecCurve.n)),M=[],R=[],b=[],S=[],G=()=>this.ecCurve.genKeyPair().getPrivate();for(let c=0;c{const l=this.ecCurve.g.mul(s);return ar(l)}));const u=Qd(y.threshold-1,ch(E,1,this.ecCurve.n),G);b.push(u),S.push(u.map(s=>ar(this.ecCurve.g.mul(s))))}const U=[],P=[];for(let c=0;c{c({target_index:t,data:z})}));const oA=await Promise.all(w),J=t.map((c,B)=>{for(let s=0;scn(this.ecCurve,L)),u=N.map(L=>cn(this.ecCurve,L));continue}E=E.map((L,O)=>cn(this.ecCurve,m[O]).add(L)),u=u.map((L,O)=>cn(this.ecCurve,N[O]).add(L))}return{mc:E,sc:u}});t.map((c,B)=>{const{mc:E,sc:u}=J[B],s=cn(this.ecCurve,d).mul(yI([1,c],1,0,this.ecCurve.n)),l=E[0].mul(yI([1,c],c,0,this.ecCurve.n));if(!s.add(l).eq(this.tssPubKey))throw new Error("master poly commits inconsistent with tssPubKey");if(!E[0].add(E[1]).eq(u[0]))throw new Error("server poly commits inconsistent with master poly commits");return null});const q=Buffer.from(this.tempPrivKey.toString(16,64),"hex"),X=[];for(let c=0;cN.data[c].target_encryptions.user_enc),u=(await Promise.all(B.map(N=>o4(q,N)))).map(N=>new _A(N)).reduce((N,L)=>N.add(L).umod(this.ecCurve.n),new _A(0)),{mc:s}=J[c],l=this.ecCurve.g.mul(u),m=s[0].add(s[1].mul(new _A(99)));if(!l.eq(m))throw new Error("decrypted user shares inconsistent with poly commits");X.push(u)}const Q=await Promise.all(X.map((c,B)=>{const E=C[B];return hh(Buffer.from(`04${E.x.padStart(64,"0")}${E.y.padStart(64,"0")}`,"hex"),Buffer.from(c.toString(16,64),"hex"))})),n=t.map((c,B)=>{const E=oA.map(s=>s.data[B].target_encryptions.server_encs),u=[];for(let s=0;sB+1),g=await Promise.all(a.map(c=>{const B=[];t.map((u,s)=>{const{mc:l,sc:m}=J[s],N={master_commits:l.map(ar),server_commits:m.map(ar),server_encs:n[s][c-1],factor_pubkeys:[C[s]]};return B.push(N),null});const E=this.serverEndpoints[c-1];return Ll(E,"/rss_round_2",{round_name:"rss_round_2",server_index:c,target_index:t,data:B,key_type:this.keyType}).catch(u=>tn.error(u))}));if(g.filter(c=>c).lengthB&&B.data[c].encs[0]),userFactorEnc:Q[c]});return I}}const pd="tssModule",g4="default",nuA="secp256k1",Mt=new br.ec(nuA),I4="secp256k1";class ouA extends ruA{constructor(A){super(A),FA(this,"serviceProvider",null),FA(this,"_tssKeyType",void 0),FA(this,"_tssCurve",void 0),FA(this,"_tssTag",void 0),FA(this,"_accountSalt",void 0);const{serviceProvider:t,storageLayer:i,tssTag:o="default",tssKeyType:r}=A;if(t.customAuthArgs.keyType!==r)throw jA.default(`service provider keyType mismatch: ${t.customAuthArgs.keyType} !== ${r}`);this.serviceProvider=t,this.storageLayer=i,this._tssTag=o,this._tssKeyType=r,this._tssCurve=new br.ec(r)}get tssTag(){return this._tssTag}get tssKeyType(){return this._tssKeyType}get tssCurve(){return this._tssCurve}set tssTag(A){if((this.metadata.tssKeyTypes[this.tssTag]||I4)!==this.tssKeyType)throw jA.default(`tssKeyType mismatch: ${this.metadata.tssKeyTypes[this.tssTag]} !== ${this.tssKeyType}`);this._tssTag=A}async initialize(A){const t=await super.initialize(A);if(!this.metadata.tssPolyCommits[this.tssTag]&&!(A!=null&&A.skipTssInit||A!=null&&A.neverInitializeNewKey)){const{factorEncs:i,factorPubs:o,tssPolyCommits:r}=await this._initializeNewTSSKey(this.tssTag,A.deviceTSSShare,A.factorPub,A.deviceTSSIndex);this.metadata.updateTSSData({tssKeyType:this._tssKeyType,tssTag:this.tssTag,tssNonce:0,tssPolyCommits:r,factorPubs:o,factorEncs:i});const f=Kv(this._tssCurve);await this._setTKeyStoreItem(pd,{id:"accountSalt",value:f}),this._accountSalt=f}if(this.metadata.tssPolyCommits[this.tssTag]&&(this.metadata.tssKeyTypes[this.tssTag]||I4)!==this.tssKeyType)throw jA.default(`tssKeyType mismatch: ${this.metadata.tssKeyTypes[this.tssTag]} !== ${this.tssKeyType}`);return t}getFactorEncs(A){if(!this.metadata)throw jA.metadataUndefined();if(!this.metadata.factorEncs)throw jA.default("no factor encs mapping");if(!this.metadata.factorPubs)throw jA.default("no factor pubs mapping");const t=this.metadata.factorPubs[this.tssTag];if(!t)throw jA.default(`no factor pubs for this tssTag ${this.tssTag}`);if(t.filter(o=>o.x.cmp(A.x)===0&&o.y.cmp(A.y)===0).length===0)throw jA.default(`factor pub ${A} not found for tssTag ${this.tssTag}`);if(!this.metadata.factorEncs[this.tssTag])throw jA.default(`no factor encs for tssTag ${this.tssTag}`);const i=A.x.toString(16,64);return this.metadata.factorEncs[this.tssTag][i]}async getTSSShare(A,t){const i=Is(A,Mt),o=this.getFactorEncs(i),{userEnc:r,serverEncs:f,tssIndex:h,type:d}=o,p=await gf(Buffer.from(A.toString(16,64),"hex"),r),C=await Promise.all(f.map(z=>z===null?null:gf(Buffer.from(A.toString(16,64),"hex"),z))),w=[p].concat(C).map(z=>z===null?null:new _A(z)),D=this._tssCurve,v=this.getTSSCommits().map(z=>D.keyFromPublic({x:z.x.toString(16,64),y:z.y.toString(16,64)}).getPublic()),M=w[0],R=(t==null?void 0:t.accountIndex)||0,b=(t==null?void 0:t.coefficient)||new _A(1);if(d==="direct"){const z=D.g.mul(M),oA=v[0],J=v[1],q=oA.add(J.mul(new _A(h)));if(z.eq(q)){const X=this.adjustTssShare(M,R,b);return{tssIndex:h,tssShare:X}}throw new Error("user decryption does not match tss commitments...")}const S=w.slice(1),G=new Array(S.length).fill(null).map((z,oA)=>oA+1),U=(t==null?void 0:t.threshold)||Math.ceil(S.length/2),P=LP(S.length,U);for(let z=0;zoA.indexOf(u)>-1);if(J.includes(null))continue;const q=G.filter((E,u)=>oA.indexOf(u)>-1),X=q.map(E=>Fl(D,q,E)),Q=s4(X,J,D.n),n=[Fl(D,[1,99],1),Fl(D,[1,99],99)],a=s4(n,[Q,M],D.n),g=D.g.mul(a),I=v[0],c=v[1];let B=I;for(let E=0;E0){const o=this.computeAccountNonce(A),r=t.keyFromPrivate(o.toString("hex")).getPublic(),h=i[0].toEllipticPoint(t).add(r);return ht.fromElliptic(h)}return i[0]}async _getRssNodeDetails(){const{serverEndpoints:A,serverPubKeys:t,serverThreshold:i}=await this.serviceProvider.getRSSNodeDetails();if(!Array.isArray(A)||A.length===0)throw new Error("service provider tss server endpoints are missing");if(!Array.isArray(t)||t.length===0)throw new Error("service provider pub keys are missing");return{serverEndpoints:A,serverPubKeys:t,serverThreshold:i||Math.floor(A.length/2)+1}}async importTssKey(A,t){const i=this._tssCurve;if(!this.secp256k1Key)throw jA.privateKeyUnavailable();if(!this.metadata)throw jA.metadataUndefined();const{importKey:o,factorPub:r,newTSSIndex:f,tag:h}=A,d=this.tssTag;this._tssTag=h;try{const{selectedServers:p=[],authSignatures:C=[]}=t||{};if(!h)throw jA.default("invalid param, tag is required");if(!r)throw jA.default("invalid param, newFactorPub is required");if(!f)throw jA.default("invalid param, newTSSIndex is required");if(C.length===0)throw jA.default("invalid param, authSignatures is required");const y=this.metadata.factorPubs[h];if((y==null?void 0:y.length)>0)throw jA.default("Duplicate account tag, please use a unique tag for importing key");const w=[r],D=await(async()=>{if(this._tssKeyType===Ur.secp256k1)return new _A(o);if(this._tssKeyType===Ur.ed25519){const c=r4(this.tssTag||g4);if(this.metadata.getGeneralStoreDomain(c))throw new Error("Seed already exists");const{scalar:E}=Qw(o),u=Buffer.from(tu(E).point.encodeCompressed("hex"),"hex"),s=await af(u,o);return this.metadata.setGeneralStoreDomain(c,{message:s}),E}throw new Error("Invalid key type")})();if(!D||D.eq(new _A("0")))throw new Error("Invalid importedKey");const v=[f],M=this.metadata.tssNonces[this.tssTag],R=M&&M>0?M+1:0,S=`${this.serviceProvider.getVerifierNameVerifierId()}${this.tssTag}${R}`,G=ar(i.g.mul(D)),U=await this._getRssNodeDetails(),{pubKey:P,nodeIndexes:z}=await this.serviceProvider.getTSSPubKey(this.tssTag,R);let oA=p;(z==null?void 0:z.length)>0?p.length?oA=z.slice(0,Math.min(p.length,z.length)):oA=z.slice(0,3):(p==null?void 0:p.length)===0&&(oA=xv(new Array(U.serverEndpoints.length).fill(null).map((c,B)=>B+1),Math.ceil(U.serverEndpoints.length/2)));const{serverEndpoints:J,serverPubKeys:q,serverThreshold:X}=U,n=await new a4({serverEndpoints:J,serverPubKeys:q,serverThreshold:X,tssPubKey:G,keyType:this._tssKeyType}).import({importKey:D,dkgNewPub:xl(P),selectedServers:oA,factorPubs:w.map(c=>xl(c)),targetIndexes:v,newLabel:S,sigs:C}),a=P.toEllipticPoint(i).add(cn(i,G).neg()),g=[ht.fromJSON(G),ht.fromJSON({x:a.getX().toString(16,64),y:a.getY().toString(16,64)})],I={};for(let c=0;c0&&(z=P.slice(0,Math.min(v.length,P.length)));const oA=await R.refresh({factorPubs:o.map(Q=>xl(Q)),targetIndexes:r,oldLabel:S,newLabel:G,sigs:M,dkgNewPub:xl(U),inputShare:t,inputIndex:i,selectedServers:z}),J=U.toEllipticPoint(this._tssCurve).add(cn(this._tssCurve,C).neg()),q=[ht.fromJSON(C),ht.fromJSON({x:J.getX().toString(16,64),y:J.getY().toString(16,64)})],X={};for(let Q=0;QG+1),Math.ceil(D.serverEndpoints.length/2)),M=r||v,b=C.map(S=>this.getFactorEncs(S).tssIndex).concat([o]);await this._refreshTSSShares(!1,d,p,y,b,w,ZA(ZA({},D),{},{selectedServers:M,authSignatures:f}))}else{if(p!==o)throw jA.default("newTSSIndex does not match existing tssIndex, set refreshShares to true to refresh shares");const C=this.metadata.factorPubs[this.tssTag].concat([i]),y=JSON.parse(JSON.stringify(this.metadata.factorEncs[this.tssTag])),w=i.x.toString(16,64);y[w]={tssIndex:p,type:"direct",userEnc:await af(i.toSEC1($e,!1),d.toArrayLike(Buffer,"be",32)),serverEncs:[]},this.metadata.updateTSSData({tssKeyType:this.tssKeyType,tssTag:this.tssTag,factorPubs:C,factorEncs:y})}await this._syncShareMetadata()}async deleteFactorPub(A){if(!this.metadata)throw jA.metadataUndefined("metadata is undefined");if(!this.secp256k1Key)throw new Error("Tkey is not reconstructed");if(!this.metadata.tssPolyCommits[this.tssTag])throw new Error(`tss key has not been initialized for tssTag ${this.tssTag}`);const{factorKey:t,deleteFactorPub:i,selectedServers:o,authSignatures:r}=A,f=this.metadata.factorPubs[this.tssTag],{tssShare:h,tssIndex:d}=await this.getTSSShare(t),p=f.filter(M=>M.x.eq(i.x)&&M.y.eq(i.y));if(p.length===0)throw jA.default("could not find factorPub to delete");if(p.length>1)throw jA.default("found two or more factorPubs that match, error in metadata");const C=f.filter(M=>!M.x.eq(i.x)||!M.y.eq(i.y));this.metadata.updateTSSData({tssKeyType:this._tssKeyType,tssTag:this.tssTag,factorPubs:C});const y=await this._getRssNodeDetails(),w=xv(new Array(y.serverEndpoints.length).fill(null).map((M,R)=>R+1),Math.ceil(y.serverEndpoints.length/2)),D=o||w,v=C.map(M=>this.getFactorEncs(M).tssIndex);await this._refreshTSSShares(!1,h,d,C,v,this.serviceProvider.getVerifierNameVerifierId(),ZA(ZA({},y),{},{selectedServers:D,authSignatures:r})),await this._syncShareMetadata()}adjustTssShare(A,t,i){const o=this.computeAccountNonce(t);return A.mul(i).add(o).umod(this._tssCurve.n)}async _initializeNewTSSKey(A,t,i,o){const r=this._tssCurve;let f;const h=o||2;t?f=t:f=this._tssCurve.genKeyPair().getPrivate();const{pubKey:d}=await this.serviceProvider.getTSSPubKey(A,0),p=d.toEllipticPoint(r),C=this._tssCurve.g.mul(f),y=Fl(r,[1,h],1,0),w=Fl(r,[1,h],h,0),D=p.mul(y).add(C.mul(w)),v=p.add(D.neg()),M=[ht.fromElliptic(D),ht.fromElliptic(v)],R=[i],b={};for(let S=0;Sthis.generateMetadataParams(await k0.serializeMetadataParamsInput(C,t,i[y]),t,i[y]))),h=new FormData;f.forEach((C,y)=>{h.append(y.toString(),JSON.stringify(C))});const d={mode:"cors",method:"POST",headers:{}},p={isUrlEncodedData:!0,timeout:600*1e3};return await ci(`${this.hostUrl}/bulk_set_stream`,h,d,p)}catch(t){throw await Xh(t)}}generateMetadataParams(A,t,i){let o,r,f,h="tkey";const d={data:A,timestamp:new _A(~~(this.serverTimeOffset+Date.now()/1e3)).toString(16)};A===QS&&(h=_cA,d.data="");const p=xt(Buffer.from(yi(d),"utf8"));if(i){const C=dc(i).sign(p);o=Buffer.from(C.r.toString(16,64)+C.s.toString(16,64)+new _A(0).toString(16,2),"hex").toString("base64");const y=If(i);r=y.x.toString("hex"),f=y.y.toString("hex")}else{const C=t.retrievePubKeyPoint();o=t.sign(new _A(p)),r=C.getX().toString("hex"),f=C.getY().toString("hex")}return{pub_key_X:r,pub_key_Y:f,set_data:d,signature:o,namespace:h}}async acquireWriteLock(A){const{serviceProvider:t,privKey:i}=A,o={timestamp:Math.floor(this.serverTimeOffset+Date.now()/1e3)};let r;i?r=f4(o,i):r=t.sign(new _A(xt(Buffer.from(yi(o),"utf8"))));const f={key:dc(i).getPublic("hex"),data:o,signature:r};return ci(`${this.hostUrl}/acquireLock`,f)}async releaseWriteLock(A){const{serviceProvider:t,privKey:i,id:o}=A,r={timestamp:Math.floor(this.serverTimeOffset+Date.now()/1e3)};let f;i?f=f4(r,i):f=t.sign(new _A(xt(Buffer.from(yi(r),"utf8"))));const h={key:dc(i).getPublic("hex"),data:r,signature:f,id:o};return ci(`${this.hostUrl}/releaseLock`,h)}toJSON(){return{enableLogging:this.enableLogging,hostUrl:this.hostUrl,storageLayerName:this.storageLayerName}}}var suA=k0;let auA=class extends qT.ec{constructor(){super("ed25519")}bufferToScalar(A){return new _A(A,"le")}generateScalar(){return this.genKeyPair().getPrivate()}scalarToBuffer(A,t){return A.toArrayLike(t,"le",32)}pointToBuffer(A,t){const i=A.getX(),r=A.getY().toArrayLike(t,"le",32);return r[r.length-1]|=i.and(new _A(1)).eqn(1)?128:0,r}},hUA=class extends qT.ec{constructor(){super("secp256k1")}bufferToScalar(A){return new _A(A,"be")}generateScalar(){return this.genKeyPair().getPrivate()}scalarToBuffer(A,t){return A.toArrayLike(t,"be",32)}pointToBuffer(A,t){return t.from(A.encodeCompressed())}};function IC(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function guA(e){if(typeof e!="boolean")throw new Error(`boolean expected, not ${e}`)}function IuA(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function yw(e,...A){if(!IuA(e))throw new Error("Uint8Array expected");if(A.length>0&&!A.includes(e.length))throw new Error(`Uint8Array expected of length ${A}, not of length=${e.length}`)}function fuA(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");IC(e.outputLen),IC(e.blockLen)}function yS(e,A=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(A&&e.finished)throw new Error("Hash#digest() has already been called")}function qP(e,A){yw(e);const t=A.outputLen;if(e.length>h4&yd)}:{h:Number(e>>h4&yd)|0,l:Number(e&yd)|0}}function uuA(e,A=!1){let t=new Uint32Array(e.length),i=new Uint32Array(e.length);for(let o=0;oe<>>32-t,CuA=(e,A,t)=>A<>>32-t,BuA=(e,A,t)=>A<>>64-t,duA=(e,A,t)=>e<>>64-t;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const EuA=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),c4=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,QuA=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;function u4(e){for(let A=0;Ae().update(HP(i)).digest(),t=e();return A.outputLen=t.outputLen,A.blockLen=t.blockLen,A.create=()=>e(),A}const YP=[],JP=[],TP=[],DuA=BigInt(0),Ul=BigInt(1),muA=BigInt(2),vuA=BigInt(7),MuA=BigInt(256),buA=BigInt(113);for(let e=0,A=Ul,t=1,i=0;e<24;e++){[t,i]=[i,(2*t+3*i)%5],YP.push(2*(5*i+t)),JP.push((e+1)*(e+2)/2%64);let o=DuA;for(let r=0;r<7;r++)A=(A<>vuA)*buA)%MuA,A&muA&&(o^=Ul<<(Ul<t>32?BuA(e,A,t):luA(e,A,t),C4=(e,A,t)=>t>32?duA(e,A,t):CuA(e,A,t);function kuA(e,A=24){const t=new Uint32Array(10);for(let i=24-A;i<24;i++){for(let f=0;f<10;f++)t[f]=e[f]^e[f+10]^e[f+20]^e[f+30]^e[f+40];for(let f=0;f<10;f+=2){const h=(f+8)%10,d=(f+2)%10,p=t[d],C=t[d+1],y=l4(p,C,1)^t[h],w=C4(p,C,1)^t[h+1];for(let D=0;D<50;D+=10)e[f+D]^=y,e[f+D+1]^=w}let o=e[2],r=e[3];for(let f=0;f<24;f++){const h=JP[f],d=l4(o,r,h),p=C4(o,r,h),C=YP[f];o=e[C],r=e[C+1],e[C]=d,e[C+1]=p}for(let f=0;f<50;f+=10){for(let h=0;h<10;h++)t[h]=e[f+h];for(let h=0;h<10;h++)e[f+h]^=~t[(h+2)%10]&t[(h+4)%10]}e[0]^=SuA[i],e[1]^=NuA[i]}t.fill(0)}let RuA=class PP extends yuA{constructor(A,t,i,o=!1,r=24){if(super(),this.blockLen=A,this.suffix=t,this.outputLen=i,this.enableXOF=o,this.rounds=r,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,IC(i),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=EuA(this.state)}keccak(){c4||u4(this.state32),kuA(this.state32,this.rounds),c4||u4(this.state32),this.posOut=0,this.pos=0}update(A){yS(this);const{blockLen:t,state:i}=this;A=HP(A);const o=A.length;for(let r=0;r=i&&this.keccak();const f=Math.min(i-this.posOut,r-o);A.set(t.subarray(this.posOut,this.posOut+f),o),this.posOut+=f,o+=f}return A}xofInto(A){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(A)}xof(A){return IC(A),this.xofInto(new Uint8Array(A))}digestInto(A){if(qP(A,this),this.finished)throw new Error("digest() was already called");return this.writeInto(A),this.destroy(),A}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(A){const{blockLen:t,suffix:i,outputLen:o,rounds:r,enableXOF:f}=this;return A||(A=new PP(t,i,o,f,r)),A.state32.set(this.state32),A.pos=this.pos,A.posOut=this.posOut,A.finished=this.finished,A.rounds=r,A.suffix=i,A.outputLen=o,A.enableXOF=f,A.destroyed=this.destroyed,A}};const KuA=(e,A,t)=>wuA(()=>new RuA(A,e,t)),B4=KuA(1,136,256/8);function GuA(e){return A=>(huA.bytes(A),e(A))}const FuA=(()=>{const e=GuA(B4);return e.create=B4.create,e})(),UE="x-web3-session-id",OP={Delimiter1:"",Delimiter2:"",Delimiter3:"",Delimiter4:""},xs=Object.create(null);xs.open="0";xs.close="1";xs.ping="2";xs.pong="3";xs.message="4";xs.upgrade="5";xs.noop="6";const _E=Object.create(null);Object.keys(xs).forEach(e=>{_E[xs[e]]=e});const wS={type:"error",data:"parser error"},jP=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",WP=typeof ArrayBuffer=="function",VP=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,cR=({type:e,data:A},t,i)=>jP&&A instanceof Blob?t?i(A):d4(A,i):WP&&(A instanceof ArrayBuffer||VP(A))?t?i(A):d4(new Blob([A]),i):i(xs[e]+(A||"")),d4=(e,A)=>{const t=new FileReader;return t.onload=function(){const i=t.result.split(",")[1];A("b"+(i||""))},t.readAsDataURL(e)};function E4(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let Lv;function xuA(e,A){if(jP&&e.data instanceof Blob)return e.data.arrayBuffer().then(E4).then(A);if(WP&&(e.data instanceof ArrayBuffer||VP(e.data)))return A(E4(e.data));cR(e,!1,t=>{Lv||(Lv=new TextEncoder),A(Lv.encode(t))})}const Q4="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a0=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e{let A=e.length*.75,t=e.length,i,o=0,r,f,h,d;e[e.length-1]==="="&&(A--,e[e.length-2]==="="&&A--);const p=new ArrayBuffer(A),C=new Uint8Array(p);for(i=0;i>4,C[o++]=(f&15)<<4|h>>2,C[o++]=(h&3)<<6|d&63;return p},UuA=typeof ArrayBuffer=="function",uR=(e,A)=>{if(typeof e!="string")return{type:"message",data:ZP(e,A)};const t=e.charAt(0);return t==="b"?{type:"message",data:_uA(e.substring(1),A)}:_E[t]?e.length>1?{type:_E[t],data:e.substring(1)}:{type:_E[t]}:wS},_uA=(e,A)=>{if(UuA){const t=LuA(e);return ZP(t,A)}else return{base64:!0,data:e}},ZP=(e,A)=>{switch(A){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},zP="",quA=(e,A)=>{const t=e.length,i=new Array(t);let o=0;e.forEach((r,f)=>{cR(r,!1,h=>{i[f]=h,++o===t&&A(i.join(zP))})})},HuA=(e,A)=>{const t=e.split(zP),i=[];for(let o=0;o{const i=t.length;let o;if(i<126)o=new Uint8Array(1),new DataView(o.buffer).setUint8(0,i);else if(i<65536){o=new Uint8Array(3);const r=new DataView(o.buffer);r.setUint8(0,126),r.setUint16(1,i)}else{o=new Uint8Array(9);const r=new DataView(o.buffer);r.setUint8(0,127),r.setBigUint64(1,BigInt(i))}e.data&&typeof e.data!="string"&&(o[0]|=128),A.enqueue(o),A.enqueue(t)})}})}let Uv;function wd(e){return e.reduce((A,t)=>A+t.length,0)}function Dd(e,A){if(e[0].length===A)return e.shift();const t=new Uint8Array(A);let i=0;for(let o=0;oMath.pow(2,21)-1){h.enqueue(wS);break}o=C*Math.pow(2,32)+p.getUint32(4),i=3}else{if(wd(t)e){h.enqueue(wS);break}}}})}const $P=4;function ui(e){if(e)return TuA(e)}function TuA(e){for(var A in ui.prototype)e[A]=ui.prototype[A];return e}ui.prototype.on=ui.prototype.addEventListener=function(e,A){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(A),this};ui.prototype.once=function(e,A){function t(){this.off(e,t),A.apply(this,arguments)}return t.fn=A,this.on(e,t),this};ui.prototype.off=ui.prototype.removeListener=ui.prototype.removeAllListeners=ui.prototype.removeEventListener=function(e,A){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+e];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var i,o=0;oPromise.resolve().then(A):(A,t)=>t(A,0),zn=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),PuA="arraybuffer";function XP(e,...A){return A.reduce((t,i)=>(e.hasOwnProperty(i)&&(t[i]=e[i]),t),{})}const OuA=zn.setTimeout,juA=zn.clearTimeout;function Dw(e,A){A.useNativeTimers?(e.setTimeoutFn=OuA.bind(zn),e.clearTimeoutFn=juA.bind(zn)):(e.setTimeoutFn=zn.setTimeout.bind(zn),e.clearTimeoutFn=zn.clearTimeout.bind(zn))}const WuA=1.33;function VuA(e){return typeof e=="string"?ZuA(e):Math.ceil((e.byteLength||e.size)*WuA)}function ZuA(e){let A=0,t=0;for(let i=0,o=e.length;i=57344?t+=3:(i++,t+=4);return t}function A7(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function zuA(e){let A="";for(let t in e)e.hasOwnProperty(t)&&(A.length&&(A+="&"),A+=encodeURIComponent(t)+"="+encodeURIComponent(e[t]));return A}function $uA(e){let A={},t=e.split("&");for(let i=0,o=t.length;i{this.readyState="paused",A()};if(this._polling||!this.writable){let i=0;this._polling&&(i++,this.once("pollComplete",function(){--i||t()})),this.writable||(i++,this.once("drain",function(){--i||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(A){const t=i=>{if(this.readyState==="opening"&&i.type==="open"&&this.onOpen(),i.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(i)};HuA(A,this.socket.binaryType).forEach(t),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const A=()=>{this.write([{type:"close"}])};this.readyState==="open"?A():this.once("open",A)}write(A){this.writable=!1,quA(A,t=>{this.doWrite(t,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const A=this.opts.secure?"https":"http",t=this.query||{};return this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=A7()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(A,t)}},e7=!1;try{e7=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const elA=e7;function tlA(){}let ilA=class extends AlA{constructor(A){if(super(A),typeof location<"u"){const t=location.protocol==="https:";let i=location.port;i||(i=t?"443":"80"),this.xd=typeof location<"u"&&A.hostname!==location.hostname||i!==A.port}}doWrite(A,t){const i=this.request({method:"POST",data:A});i.on("success",t),i.on("error",(o,r)=>{this.onError("xhr post error",o,r)})}doPoll(){const A=this.request();A.on("data",this.onData.bind(this)),A.on("error",(t,i)=>{this.onError("xhr poll error",t,i)}),this.pollXhr=A}},Qc=class qE extends ui{constructor(A,t,i){super(),this.createRequest=A,Dw(this,i),this._opts=i,this._method=i.method||"GET",this._uri=t,this._data=i.data!==void 0?i.data:null,this._create()}_create(){var A;const t=XP(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this._opts.xd;const i=this._xhr=this.createRequest(t);try{i.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){i.setDisableHeaderCheck&&i.setDisableHeaderCheck(!0);for(let o in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(o)&&i.setRequestHeader(o,this._opts.extraHeaders[o])}}catch{}if(this._method==="POST")try{i.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{i.setRequestHeader("Accept","*/*")}catch{}(A=this._opts.cookieJar)===null||A===void 0||A.addCookies(i),"withCredentials"in i&&(i.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(i.timeout=this._opts.requestTimeout),i.onreadystatechange=()=>{var o;i.readyState===3&&((o=this._opts.cookieJar)===null||o===void 0||o.parseCookies(i.getResponseHeader("set-cookie"))),i.readyState===4&&(i.status===200||i.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof i.status=="number"?i.status:0)},0))},i.send(this._data)}catch(o){this.setTimeoutFn(()=>{this._onError(o)},0);return}typeof document<"u"&&(this._index=qE.requestsCount++,qE.requests[this._index]=this)}_onError(A){this.emitReserved("error",A,this._xhr),this._cleanup(!0)}_cleanup(A){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=tlA,A)try{this._xhr.abort()}catch{}typeof document<"u"&&delete qE.requests[this._index],this._xhr=null}}_onLoad(){const A=this._xhr.responseText;A!==null&&(this.emitReserved("data",A),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};Qc.requestsCount=0;Qc.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",p4);else if(typeof addEventListener=="function"){const e="onpagehide"in zn?"pagehide":"unload";addEventListener(e,p4,!1)}}function p4(){for(let e in Qc.requests)Qc.requests.hasOwnProperty(e)&&Qc.requests[e].abort()}const rlA=function(){const e=t7({xdomain:!1});return e&&e.responseType!==null}();let nlA=class extends ilA{constructor(A){super(A);const t=A&&A.forceBase64;this.supportsBinary=rlA&&!t}request(A={}){return Object.assign(A,{xd:this.xd},this.opts),new Qc(t7,this.uri(),A)}};function t7(e){const A=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!A||elA))return new XMLHttpRequest}catch{}if(!A)try{return new zn[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const i7=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";let olA=class extends lR{get name(){return"websocket"}doOpen(){const A=this.uri(),t=this.opts.protocols,i=i7?{}:XP(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(i.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(A,t,i)}catch(o){return this.emitReserved("error",o)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=A=>this.onClose({description:"websocket connection closed",context:A}),this.ws.onmessage=A=>this.onData(A.data),this.ws.onerror=A=>this.onError("websocket error",A)}write(A){this.writable=!1;for(let t=0;t{try{this.doWrite(i,r)}catch{}o&&ww(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){const A=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=A7()),this.supportsBinary||(t.b64=1),this.createUri(A,t)}};const _v=zn.WebSocket||zn.MozWebSocket;let slA=class extends olA{createSocket(A,t,i){return i7?new _v(A,t,i):t?new _v(A,t):new _v(A)}doWrite(A,t){this.ws.send(t)}},alA=class extends lR{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(A){return this.emitReserved("error",A)}this._transport.closed.then(()=>{this.onClose()}).catch(A=>{this.onError("webtransport error",A)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(A=>{const t=JuA(Number.MAX_SAFE_INTEGER,this.socket.binaryType),i=A.readable.pipeThrough(t).getReader(),o=YuA();o.readable.pipeTo(A.writable),this._writer=o.writable.getWriter();const r=()=>{i.read().then(({done:h,value:d})=>{h||(this.onPacket(d),r())}).catch(h=>{})};r();const f={type:"open"};this.query.sid&&(f.data=`{"sid":"${this.query.sid}"}`),this._writer.write(f).then(()=>this.onOpen())})})}write(A){this.writable=!1;for(let t=0;t{o&&ww(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var A;(A=this._transport)===null||A===void 0||A.close()}};const glA={websocket:slA,webtransport:alA,polling:nlA},IlA=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,flA=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function DS(e){if(e.length>8e3)throw"URI too long";const A=e,t=e.indexOf("["),i=e.indexOf("]");t!=-1&&i!=-1&&(e=e.substring(0,t)+e.substring(t,i).replace(/:/g,";")+e.substring(i,e.length));let o=IlA.exec(e||""),r={},f=14;for(;f--;)r[flA[f]]=o[f]||"";return t!=-1&&i!=-1&&(r.source=A,r.host=r.host.substring(1,r.host.length-1).replace(/;/g,":"),r.authority=r.authority.replace("[","").replace("]","").replace(/;/g,":"),r.ipv6uri=!0),r.pathNames=hlA(r,r.path),r.queryKey=clA(r,r.query),r}function hlA(e,A){const t=/\/{2,9}/g,i=A.replace(t,"/").split("/");return(A.slice(0,1)=="/"||A.length===0)&&i.splice(0,1),A.slice(-1)=="/"&&i.splice(i.length-1,1),i}function clA(e,A){const t={};return A.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(i,o,r){o&&(t[o]=r)}),t}const mS=typeof addEventListener=="function"&&typeof removeEventListener=="function",HE=[];mS&&addEventListener("offline",()=>{HE.forEach(e=>e())},!1);let YE=class JE extends ui{constructor(A,t){if(super(),this.binaryType=PuA,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,A&&typeof A=="object"&&(t=A,A=null),A){const i=DS(A);t.hostname=i.host,t.secure=i.protocol==="https"||i.protocol==="wss",t.port=i.port,i.query&&(t.query=i.query)}else t.host&&(t.hostname=DS(t.host).host);Dw(this,t),this.secure=t.secure!=null?t.secure:typeof location<"u"&&location.protocol==="https:",t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=t.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},t.transports.forEach(i=>{const o=i.prototype.name;this.transports.push(o),this._transportsByName[o]=i}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=$uA(this.opts.query)),mS&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},HE.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(A){const t=Object.assign({},this.opts.query);t.EIO=$P,t.transport=A,this.id&&(t.sid=this.id);const i=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[A]);return new this._transportsByName[A](i)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const A=this.opts.rememberUpgrade&&JE.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const t=this.createTransport(A);t.open(),this.setTransport(t)}setTransport(A){this.transport&&this.transport.removeAllListeners(),this.transport=A,A.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",t=>this._onClose("transport close",t))}onOpen(){this.readyState="open",JE.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(A){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",A),this.emitReserved("heartbeat"),A.type){case"open":this.onHandshake(JSON.parse(A.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const t=new Error("server error");t.code=A.data,this._onError(t);break;case"message":this.emitReserved("data",A.data),this.emitReserved("message",A.data);break}}onHandshake(A){this.emitReserved("handshake",A),this.id=A.sid,this.transport.query.sid=A.sid,this._pingInterval=A.pingInterval,this._pingTimeout=A.pingTimeout,this._maxPayload=A.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const A=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+A,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},A),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const A=this._getWritablePackets();this.transport.send(A),this._prevBufferLen=A.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let i=0;i0&&t>this._maxPayload)return this.writeBuffer.slice(0,i);t+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const A=Date.now()>this._pingTimeoutTime;return A&&(this._pingTimeoutTime=0,ww(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),A}write(A,t,i){return this._sendPacket("message",A,t,i),this}send(A,t,i){return this._sendPacket("message",A,t,i),this}_sendPacket(A,t,i,o){if(typeof t=="function"&&(o=t,t=void 0),typeof i=="function"&&(o=i,i=null),this.readyState==="closing"||this.readyState==="closed")return;i=i||{},i.compress=i.compress!==!1;const r={type:A,data:t,options:i};this.emitReserved("packetCreate",r),this.writeBuffer.push(r),o&&this.once("flush",o),this.flush()}close(){const A=()=>{this._onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),A()},i=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?i():A()}):this.upgrading?i():A()),this}_onError(A){if(JE.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",A),this._onClose("transport error",A)}_onClose(A,t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),mS&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const i=HE.indexOf(this._offlineEventListener);i!==-1&&HE.splice(i,1)}this.readyState="closed",this.id=null,this.emitReserved("close",A,t),this.writeBuffer=[],this._prevBufferLen=0}}};YE.protocol=$P;let ulA=class extends YE{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let A=0;A{i||(t.send([{type:"ping",data:"probe"}]),t.once("packet",y=>{if(!i)if(y.type==="pong"&&y.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;YE.priorWebsocketSuccess=t.name==="websocket",this.transport.pause(()=>{i||this.readyState!=="closed"&&(C(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{const w=new Error("probe error");w.transport=t.name,this.emitReserved("upgradeError",w)}}))};function r(){i||(i=!0,C(),t.close(),t=null)}const f=y=>{const w=new Error("probe error: "+y);w.transport=t.name,r(),this.emitReserved("upgradeError",w)};function h(){f("transport closed")}function d(){f("socket closed")}function p(y){t&&y.name!==t.name&&r()}const C=()=>{t.removeListener("open",o),t.removeListener("error",f),t.removeListener("close",h),this.off("close",d),this.off("upgrading",p)};t.once("open",o),t.once("error",f),t.once("close",h),this.once("close",d),this.once("upgrading",p),this._upgrades.indexOf("webtransport")!==-1&&A!=="webtransport"?this.setTimeoutFn(()=>{i||t.open()},200):t.open()}onHandshake(A){this._upgrades=this._filterUpgrades(A.upgrades),super.onHandshake(A)}_filterUpgrades(A){const t=[];for(let i=0;iglA[o]).filter(o=>!!o)),super(A,i)}};function ClA(e,A="",t){let i=e;t=t||typeof location<"u"&&location,e==null&&(e=t.protocol+"//"+t.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=t.protocol+e:e=t.host+e),/^(https?|wss?):\/\//.test(e)||(typeof t<"u"?e=t.protocol+"//"+e:e="https://"+e),i=DS(e)),i.port||(/^(http|ws)$/.test(i.protocol)?i.port="80":/^(http|ws)s$/.test(i.protocol)&&(i.port="443")),i.path=i.path||"/";const r=i.host.indexOf(":")!==-1?"["+i.host+"]":i.host;return i.id=i.protocol+"://"+r+":"+i.port+A,i.href=i.protocol+"://"+r+(t&&t.port===i.port?"":":"+i.port),i}const BlA=typeof ArrayBuffer=="function",dlA=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,r7=Object.prototype.toString,ElA=typeof Blob=="function"||typeof Blob<"u"&&r7.call(Blob)==="[object BlobConstructor]",QlA=typeof File=="function"||typeof File<"u"&&r7.call(File)==="[object FileConstructor]";function CR(e){return BlA&&(e instanceof ArrayBuffer||dlA(e))||ElA&&e instanceof Blob||QlA&&e instanceof File}function TE(e,A){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let t=0,i=e.length;t=0&&e.num{delete this.acks[A];for(let h=0;h{this.io.clearTimeoutFn(r),t.apply(this,h)};f.withError=!0,this.acks[A]=f}emitWithAck(A,...t){return new Promise((i,o)=>{const r=(f,h)=>f?o(f):i(h);r.withError=!0,t.push(r),this.emit(A,...t)})}_addToQueue(A){let t;typeof A[A.length-1]=="function"&&(t=A.pop());const i={id:this._queueSeq++,tryCount:0,pending:!1,args:A,flags:Object.assign({fromQueue:!0},this.flags)};A.push((o,...r)=>i!==this._queue[0]?void 0:(o!==null?i.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(o)):(this._queue.shift(),t&&t(null,...r)),i.pending=!1,this._drainQueue())),this._queue.push(i),this._drainQueue()}_drainQueue(A=!1){if(!this.connected||this._queue.length===0)return;const t=this._queue[0];t.pending&&!A||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(A){A.nsp=this.nsp,this.io._packet(A)}onopen(){typeof this.auth=="function"?this.auth(A=>{this._sendConnectPacket(A)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(A){this.packet({type:at.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},A):A})}onerror(A){this.connected||this.emitReserved("connect_error",A)}onclose(A,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",A,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(A=>{if(!this.sendBuffer.some(i=>String(i.id)===A)){const i=this.acks[A];delete this.acks[A],i.withError&&i.call(this,new Error("socket has been disconnected"))}})}onpacket(A){if(A.nsp===this.nsp)switch(A.type){case at.CONNECT:A.data&&A.data.sid?this.onconnect(A.data.sid,A.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case at.EVENT:case at.BINARY_EVENT:this.onevent(A);break;case at.ACK:case at.BINARY_ACK:this.onack(A);break;case at.DISCONNECT:this.ondisconnect();break;case at.CONNECT_ERROR:this.destroy();const i=new Error(A.data.message);i.data=A.data.data,this.emitReserved("connect_error",i);break}}onevent(A){const t=A.data||[];A.id!=null&&t.push(this.ack(A.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(A){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const i of t)i.apply(this,A)}super.emit.apply(this,A),this._pid&&A.length&&typeof A[A.length-1]=="string"&&(this._lastOffset=A[A.length-1])}ack(A){const t=this;let i=!1;return function(...o){i||(i=!0,t.packet({type:at.ACK,id:A,data:o}))}}onack(A){const t=this.acks[A.id];typeof t=="function"&&(delete this.acks[A.id],t.withError&&A.data.unshift(null),t.apply(this,A.data))}onconnect(A,t){this.id=A,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(A=>this.emitEvent(A)),this.receiveBuffer=[],this.sendBuffer.forEach(A=>{this.notifyOutgoingListeners(A),this.packet(A)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(A=>A()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:at.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(A){return this.flags.compress=A,this}get volatile(){return this.flags.volatile=!0,this}timeout(A){return this.flags.timeout=A,this}onAny(A){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(A),this}prependAny(A){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(A),this}offAny(A){if(!this._anyListeners)return this;if(A){const t=this._anyListeners;for(let i=0;i0&&e.jitter<=1?e.jitter:0,this.attempts=0}zu.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var A=Math.random(),t=Math.floor(A*this.jitter*e);e=Math.floor(A*10)&1?e+t:e-t}return Math.min(e,this.max)|0};zu.prototype.reset=function(){this.attempts=0};zu.prototype.setMin=function(e){this.ms=e};zu.prototype.setMax=function(e){this.max=e};zu.prototype.setJitter=function(e){this.jitter=e};let bS=class extends ui{constructor(A,t){var i;super(),this.nsps={},this.subs=[],A&&typeof A=="object"&&(t=A,A=void 0),t=t||{},t.path=t.path||"/socket.io",this.opts=t,Dw(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor((i=t.randomizationFactor)!==null&&i!==void 0?i:.5),this.backoff=new zu({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState="closed",this.uri=A;const o=t.parser||blA;this.encoder=new o.Encoder,this.decoder=new o.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(A){return arguments.length?(this._reconnection=!!A,A||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(A){return A===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=A,this)}reconnectionDelay(A){var t;return A===void 0?this._reconnectionDelay:(this._reconnectionDelay=A,(t=this.backoff)===null||t===void 0||t.setMin(A),this)}randomizationFactor(A){var t;return A===void 0?this._randomizationFactor:(this._randomizationFactor=A,(t=this.backoff)===null||t===void 0||t.setJitter(A),this)}reconnectionDelayMax(A){var t;return A===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=A,(t=this.backoff)===null||t===void 0||t.setMax(A),this)}timeout(A){return arguments.length?(this._timeout=A,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(A){if(~this._readyState.indexOf("open"))return this;this.engine=new llA(this.uri,this.opts);const t=this.engine,i=this;this._readyState="opening",this.skipReconnect=!1;const o=No(t,"open",function(){i.onopen(),A&&A()}),r=h=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",h),A?A(h):this.maybeReconnectOnOpen()},f=No(t,"error",r);if(this._timeout!==!1){const h=this._timeout,d=this.setTimeoutFn(()=>{o(),r(new Error("timeout")),t.close()},h);this.opts.autoUnref&&d.unref(),this.subs.push(()=>{this.clearTimeoutFn(d)})}return this.subs.push(o),this.subs.push(f),this}connect(A){return this.open(A)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const A=this.engine;this.subs.push(No(A,"ping",this.onping.bind(this)),No(A,"data",this.ondata.bind(this)),No(A,"error",this.onerror.bind(this)),No(A,"close",this.onclose.bind(this)),No(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(A){try{this.decoder.add(A)}catch(t){this.onclose("parse error",t)}}ondecoded(A){ww(()=>{this.emitReserved("packet",A)},this.setTimeoutFn)}onerror(A){this.emitReserved("error",A)}socket(A,t){let i=this.nsps[A];return i?this._autoConnect&&!i.active&&i.connect():(i=new o7(this,A,t),this.nsps[A]=i),i}_destroy(A){const t=Object.keys(this.nsps);for(const i of t)if(this.nsps[i].active)return;this._close()}_packet(A){const t=this.encoder.encode(A);for(let i=0;iA()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(A,t){var i;this.cleanup(),(i=this.engine)===null||i===void 0||i.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",A,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const A=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const i=this.setTimeoutFn(()=>{A.skipReconnect||(this.emitReserved("reconnect_attempt",A.backoff.attempts),!A.skipReconnect&&A.open(o=>{o?(A._reconnecting=!1,A.reconnect(),this.emitReserved("reconnect_error",o)):A.onreconnect()}))},t);this.opts.autoUnref&&i.unref(),this.subs.push(()=>{this.clearTimeoutFn(i)})}}onreconnect(){const A=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",A)}};const _l={};function R0(e,A){typeof e=="object"&&(A=e,e=void 0),A=A||{};const t=ClA(e,A.path||"/socket.io"),i=t.source,o=t.id,r=t.path,f=_l[o]&&r in _l[o].nsps,h=A.forceNew||A["force new connection"]||A.multiplex===!1||f;let d;return h?d=new bS(i,A):(_l[o]||(_l[o]=new bS(i,A)),d=_l[o]),t.query&&!A.query&&(A.query=t.queryKey),d.socket(t.path,A)}Object.assign(R0,{Manager:bS,Socket:o7,io:R0,connect:R0});function iu(){return new br.ec("secp256k1")}function PE(e,A,t=0){const i=iu(),o=e.map(p=>new _A(p)),r=new _A(A),f=new _A(t);let h=new _A(1),d=new _A(1);for(let p=0;p{const o=iu();if(e)return PE([1,t],t);const r=PE(A,i),f=PE([1,t],1);return r.mul(f).umod(o.curve.n)},D4=(e,A)=>{if(A.indexOf(e)===-1)throw new Error(`party ${e} not found in parties ${A}`);const t=iu();return PE(A,e).invm(t.curve.n).umod(t.curve.n)},m4=(e,A,t,i)=>{const o=A.sort((w,D)=>w-D);for(let w=0;we.map(i=>i==null?null:R0(i,{path:t,query:{sessionId:A},transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:5})),klA=async(e,A,t="/tss/socket.io")=>{const i=await NlA(e,A,t);return await new Promise(o=>{const r=setInterval(()=>{for(let f=0;f{C&&(C.hasListeners("send")&&C.off("send"),C.on("send",async(y,w)=>{const{session:D,sender:v,recipient:M,msg_type:R,msg_data:b}=y;if(D!==this.session){this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${D}`);return}this.msgQueue.push({session:D,sender:v,recipient:M,msg_type:R,msg_data:b}),w&&w()}),C.on("precompute_complete",async(y,w)=>{const{session:D,party:v}=y;if(D!==this.session){this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${D}`);return}this._precomputeComplete.push(v),w&&w()}),C.on("precompute_failed",async(y,w)=>{const{session:D,party:v}=y;if(D!==this.session){this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${D}`);return}this._precomputeFailed.push(v),w&&w()}))}),globalThis.tss_clients.set(this.session,this)}get sid(){return this.session.split(OP.Delimiter4)[1]}async ready(){if(this._readyResolve!=null)await this._readyResolve;else throw new Error("Precompute needs to be called before ready");await new Promise((A,t)=>{let i=0;const o=setInterval(()=>{this._precomputeFailed.length===0&&this._precomputeComplete.filter((r,f,h)=>h.indexOf(r)===f).length===this.parties.length&&this.precomputed_value!=null?(clearInterval(o),this._ready=!0,A()):this._precomputeFailed.length>0&&t(new Error("Peer failure detected, please try again")),i>=500&&(clearInterval(o),t(new Error("Client is not ready"))),i++},10)})}precompute(A){this.sockets.forEach((o,r)=>{if(o!==null&&o.id===void 0)throw new Error(`socket not connected yet, session: ${this.session}, party: ${r}`)});const t=[];for(let o=0;o{fetch(`${this.lookupEndpoint(this.session,r)}/precompute`,{method:"POST",headers:{"Content-Type":"application/json",[UE]:this.sid},body:JSON.stringify(ZA({endpoints:this.endpoints.map((d,p)=>p!==this.index?d:`websocket:${this.sockets[r].id}`),session:this.session,parties:this.parties,player_index:r,threshold:this.parties.length,pubkey:this.pubKey,notifyWebsocketId:this.sockets[r].id,sendWebsocket:this.sockets[r].id},A))}).then(async d=>{const p=await d.json();if(d.status!==200)throw new Error(`precompute route failed on ${this.lookupEndpoint(this.session,r)} with status ${d.status} + ${JSON.stringify(p)} `);return f(d)}).catch(d=>{h(d)})}))}const i=async()=>{this._startPrecomputeTime=Date.now(),await Promise.all(t),this._signer=await this.tssLib.threshold_signer(this.session,this.index,this.parties.length,this.parties.length,this.share,this.pubKey),this._rng=await this.tssLib.random_generator(Buffer.from(Bw()).toString("base64")),await this.tssLib.setup(this._signer,this._rng);const o=await this.tssLib.precompute(new Uint8Array(this.parties),this._signer,this._rng);this.precomputed_value=o,this._precomputeComplete.push(this.index),this._consumed=!1,this._endPrecomputeTime=Date.now()};this._readyResolve=i().catch(o=>{this._precomputeFailed.push(this.index),console.error(o)})}async sign(A,t,i,o,r){if(this._consumed===!0)throw new Error("This instance has already signed a message and cannot be reused");if(this._ready===!1)throw new Error("client is not ready");if(!t)if(o==="keccak256"){if(Buffer.from(FuA(Buffer.from(i))).toString("base64")!==A)throw new Error("hash of original message does not match msg")}else throw new Error(`hash algo ${o} not supported`);this._startSignTime=Date.now();const f=[],h=[];for(let M=0;M{const G=this.lookupEndpoint(this.session,R);fetch(`${G}/sign`,{method:"POST",headers:{"Content-Type":"application/json",[UE]:this.sid},body:JSON.stringify(ZA({session:this.session,sender:this.index,recipient:R,msg:A,hash_only:t,original_message:i,hash_algo:o},r))}).then(U=>U.json()).then(U=>b(U.sig)).catch(U=>{S(U)})}))}(await Promise.all(h)).forEach(M=>{f.push(M)});const p=await this.tssLib.get_r_from_precompute(this.precomputed_value),C=await this.tssLib.local_verify(A,t,p,f,this.pubKey);this._endSignTime=Date.now();const y=Buffer.from(C,"base64").toString("hex"),w=new _A(y.slice(0,64),16);let D=new _A(y.slice(64),16),v=Buffer.from(p,"base64")[63]%2;if(this._sLessThanHalf){const M=iu(),R=M.n.div(new _A(2));D.gt(R)&&(D=M.n.sub(D),v=(v+1)%2)}return this._consumed=!0,this._ready=!1,this._readyResolve=null,{r:w,s:D,recoveryParam:v}}lookupEndpoint(A,t){if(A!==this.session)throw new Error("incorrect session when looking up endpoint");return this.endpoints[t]}async cleanup(A){this.tssLib.random_generator_free(this._rng),this.tssLib.threshold_signer_free(this._signer),this._precomputeComplete=[],this._precomputeFailed=[],this.precomputed_value=null,this._endPrecomputeTime=null,this._startPrecomputeTime=null,this._endSignTime=null,this._startSignTime=null,this._consumed=!1,this._ready=!1,this._readyResolve=null,globalThis.tss_clients.delete(this.session),this.sockets.forEach(t=>{t&&t.connected&&t.close()}),await Promise.all(this.parties.map(async t=>(t!==this.index&&await fetch(`${this.lookupEndpoint(this.session,t)}/cleanup`,{method:"POST",headers:{"Content-Type":"application/json",[UE]:this.sid},body:JSON.stringify(ZA({session:this.session},A))}),Promise.resolve(!0))))}}globalThis.tss_clients===void 0&&(globalThis.tss_clients=new Map);globalThis.js_read_msg===void 0&&(globalThis.js_read_msg=async function(e,A,t,i){const o=globalThis.tss_clients.get(e);if(o.log(`reading msg, ${i}`),i==="ga1_worker_support")return"unsupported";const r=o.msgQueue.find(f=>f.sender===t&&f.recipient===A&&f.msg_type===i);return r?r.msg_data:new Promise((f,h)=>{let d=0;const p=setInterval(()=>{const C=o.msgQueue.find(y=>y.sender===t&&y.recipient===A&&y.msg_type===i);C!==void 0&&(clearInterval(p),f(C.msg_data)),d>=1e3&&(clearInterval(p),h("Message not received in a reasonable time")),d++},10)})});globalThis.js_send_msg===void 0&&(globalThis.js_send_msg=async function(e,A,t,i,o){const r=globalThis.tss_clients.get(e);if(r.log(`sending msg, ${i}`),i.indexOf("ga1_data_unprocessed")>-1)throw new Error("ga1_data_unprocessed should not be sent directly");if(r.websocketOnly)r.sockets[t].emit("send_msg",{session:e,sender:A,recipient:t,msg_type:i,msg_data:o});else{const f=e.split(OP.Delimiter4)[1],h=r.lookupEndpoint(e,t);fetch(`${h}/send`,{method:"POST",headers:{[UE]:f,"Content-Type":"application/json"},body:JSON.stringify({session:e,sender:A,recipient:t,msg_type:i,msg_data:o})})}return!0});function KlA(e){const A=atob(e);return Uint8Array.from(A,t=>t.codePointAt(0))}function s7(e){const A=String.fromCodePoint(...e);return btoa(A)}class GlA{constructor(){FA(this,"items",void 0),this.items=[]}add(A){return this.items.push(A),A}free(){this.items.forEach(A=>{try{A.free()}catch(t){console.log(`Warning: freeing value: ${t}`)}}),this.items=[]}}var a7={exports:{}};const FlA=Ik(WeA);(function(e){(()=>{var A={};A.n=D=>{var v=D&&D.__esModule?()=>D.default:()=>D;return A.d(v,{a:v}),v},A.d=(D,v)=>{for(var M in v)A.o(v,M)&&!A.o(D,M)&&Object.defineProperty(D,M,{enumerable:!0,get:v[M]})},A.o=(D,v)=>Object.prototype.hasOwnProperty.call(D,v),A.r=D=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(D,"__esModule",{value:!0})};var t={};A.r(t),A.d(t,{AwaitableMap:()=>r,MapQueue:()=>f,deriveShareCoefficients:()=>w,fraction:()=>p,lagrangeCoefficient:()=>C,lagrangeCoefficients:()=>y});const i=FlA;var o=A.n(i);class r{constructor(){o()(this,"map",new Map),o()(this,"queue",new Map)}get size(){return this.map.size}getSync(v){return this.map.get(v)}async get(v,M=0){const R=this.map.get(v);return R||new Promise(b=>{const S={resolve:b,timeout:setTimeout(()=>{const U=this.queue.get(v);if(U){const P=U.indexOf(S);P>=0&&U.splice(P,1)}b(void 0)},M)};let G=this.queue.get(v);G||(G=[],this.queue.set(v,G)),G.push(S)})}set(v,M){this.map.set(v,M);const R=this.queue.get(v);if(R){for(const b of R)clearTimeout(b.timeout),b.resolve(M);this.queue.delete(v)}}delete(v){this.map.delete(v),this.queue.delete(v)}forEach(v){this.map.forEach(v)}clear(){this.map.clear(),this.queue.clear()}}class f{constructor(){o()(this,"buffer",new Map),o()(this,"queue",new Map)}async pop(v,M=0){const R=this.buffer.get(v);return R&&R.length>0?R.splice(0,1)[0]:new Promise(b=>{const S={resolve:b,timeout:setTimeout(()=>{const U=this.queue.get(v);if(U){const P=U.indexOf(S);P>=0&&U.splice(P,1)}b(void 0)},M)};let G=this.queue.get(v);G||(G=[],this.queue.set(v,G)),G.push(S)})}push(v,M){const R=this.queue.get(v);if(R&&R.length>0){const S=R.splice(0,1)[0];clearTimeout(S.timeout),S.resolve(M);return}let b=this.buffer.get(v);b||(b=[],this.buffer.set(v,b)),b.push(M)}delete(v){this.buffer.delete(v),this.queue.delete(v)}forEach(v){this.buffer.forEach((M,R)=>{M.forEach(b=>{v(b,R)})})}clear(){this.buffer.clear(),this.queue.clear()}}const h=xa;var d=A.n(h);function p(D,v,M){return D.mul(v.invm(M)).umod(M)}function C(D,v,M,R){return D.filter((b,S)=>S!==v).reduce((b,S)=>{const G=p(M.sub(S),D[v].sub(S),R);return b.mul(G).umod(R)},new(d())(1))}function y(D,v,M){const R=D.map(S=>new(d())(S)),b=new(d())(v);return R.map((S,G)=>C(R,G,b,M))}function w(D,v,M,R=1,b=2){const S=y([R,b],0,M),G=y(D,0,M);if(D.includes(v))throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${D} ${v}`);const U=y([v,...D],0,M),P=G.map((oA,J)=>p(S[0].mul(oA),U[J+1],M)),z=p(S[1],U[0],M);return{serverCoefficients:P,clientCoefficient:z}}e.exports=t})()})(a7);var xlA=a7.exports;const LlA=1e4,UlA=1e4;function v4(e,A,t){return JSON.stringify([e,A,t])}class _lA{constructor(A,t){FA(this,"session_id",void 0),FA(this,"sender_id",void 0),FA(this,"messages",new xlA.MapQueue),FA(this,"sockets",new Map),this.session_id=A,this.sender_id=t}getSocket(A){return this.sockets.get(A)}async connect(A,t){if(A.length!==t.length)throw new Error("ids must have same length as endpoints");this.close();const i=t.map(r=>{const f=new URL("socket.io",r);return R0(f.origin,{path:f.pathname,transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:3})}),o=i.map(r=>new Promise((f,h)=>{r.on("connect",f),setTimeout(()=>{h(new Error("Connection timeout"))},UlA)}));await Promise.all(o),i.forEach((r,f)=>{const h=A[f];r.on("send",async(d,p)=>{if(d.sender!==h){console.log(`ignoring message: wrong sender: expected ${h}, got ${d.sender}`);return}if(d.session!==this.session_id){console.log(`ignoring message: wrong session: expected ${this.session_id}, got ${d.session}`);return}const C={sender:d.sender,data:KlA(d.msg_data),receiver:d.recipient,type:d.msg_type},y=v4(C.sender,C.receiver,C.type);this.messages.push(y,C),p&&p()}),this.sockets.set(h,r)})}close(){this.sockets.forEach(A=>A.disconnect()),this.sockets.clear()}async send(A,t,i){const o=this.sockets.get(A);if(!o)throw new Error("Socket not found");const r={msg_data:s7(i),msg_type:t,recipient:A,sender:this.sender_id,session:this.session_id};o.emit("send_msg",r)}async receive(A,t){const i=v4(A,this.sender_id,t),o=await this.messages.pop(i,LlA);if(!o)throw new Error("Timeout");return o.data}}async function qlA(e,A,t,i,o,r,f,h,d,p,C){const y=o.slice(),w=r.slice().map(R=>R.endsWith("/")?R.slice(0,-1):R);y.push(f),w.push(`websocket:${h.id}`);const D={session:A,msg:s7(d),player_index:t,pubkey:i,parties:y,endpoints:w,signatures:p,share_coefficient:C},v=new URL("sign",e),M=await fetch(v,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)});if(!M.ok){const R=(await M.json()).message;throw new Error(R)}}function HlA(){const e=new Uint8Array(32);return crypto.getRandomValues(e),e}async function YlA(e,A,t,i,o,r,f,h,d,p=void 0){const C=new _lA(A,r);await C.connect(i,o),i.forEach((D,v)=>{const M=C.getSocket(D);if(M===void 0)throw new Error(`socket not found: party ${D}`);qlA(new URL(o[v]),A,D,h,i,o,r,M,d,t,p?p[v]:void 0).catch(R=>{console.error(`Server ${v}: ${R}`)})});const y=HlA(),w=new GlA;try{const D=w.add(new e.RngSeed(y)),v=w.add(e.KeyShare.from_raw(r,f,h));return w.add(await e.sign(D,C,new Uint32Array(i),v,d)).to_hex()}finally{w.free(),C.close()}}const Nt={MAINNET:"mainnet",TESTNET:"testnet",CYAN:"cyan",AQUA:"aqua",CELESTE:"celeste"},mg={SAPPHIRE_DEVNET:"sapphire_devnet",SAPPHIRE_MAINNET:"sapphire_mainnet"};Nt.MAINNET+"",Nt.TESTNET+"",Nt.CYAN+"",Nt.AQUA+"",Nt.CELESTE+"";Nt.AQUA+"",mg.SAPPHIRE_MAINNET,Nt.CELESTE+"",mg.SAPPHIRE_MAINNET,Nt.CYAN+"",mg.SAPPHIRE_MAINNET,Nt.MAINNET+"",mg.SAPPHIRE_MAINNET,Nt.TESTNET+"",mg.SAPPHIRE_DEVNET;Nt.MAINNET+"",Nt.TESTNET+"",Nt.CYAN+"",Nt.AQUA+"",Nt.CELESTE+"";mg.SAPPHIRE_MAINNET+"",mg.SAPPHIRE_DEVNET+"",Nt.MAINNET+"",Nt.TESTNET+"",Nt.CYAN+"",Nt.AQUA+"",Nt.CELESTE+"";Nt.MAINNET+"",Nt.TESTNET+"",Nt.CYAN+"",Nt.AQUA+"",Nt.CELESTE+"";const JlA=Ka;function TlA(e){return JlA.decode(e)}function M4(e){let A=!1,t=0,i;try{i=window[e],A=!0,t=i.length;const o="__storage_test__";return i.setItem(o,o),i.removeItem(o),!0}catch(o){const r=o;return r&&(r.code===22||r.code===1014||r.name==="QuotaExceededError"||r.name==="NS_ERROR_DOM_QUOTA_REACHED")&&A&&t!==0}}let PlA=class{constructor(){FA(this,"store",new Map)}getItem(A){return this.store.get(A)||null}setItem(A,t){this.store.set(A,t)}removeItem(A){this.store.delete(A)}},OlA=class{constructor(A,t){FA(this,"storage",void 0),FA(this,"_storeKey",void 0),this.storage=t,this._storeKey=A;try{t.getItem(A)||this.resetStore()}catch{}}static getInstance(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"local";if(!this.instanceMap.has(A)){let i;t==="local"&&M4("localStorage")?i=window.localStorage:t==="session"&&M4("sessionStorage")?i=window.sessionStorage:i=new PlA,this.instanceMap.set(A,new this(A,i))}return this.instanceMap.get(A)}toJSON(){return this.storage.getItem(this._storeKey)}resetStore(){const A=this.getStore();return this.storage.removeItem(this._storeKey),A}getStore(){return JSON.parse(this.storage.getItem(this._storeKey)||"{}")}get(A){return JSON.parse(this.storage.getItem(this._storeKey)||"{}")[A]}set(A,t){const i=JSON.parse(this.storage.getItem(this._storeKey)||"{}");i[A]=t,this.storage.setItem(this._storeKey,JSON.stringify(i))}};FA(OlA,"instanceMap",new Map);ZA(ZA({},mg),Nt);const jlA=()=>new br.eddsa("ed25519");function WlA(e=32){const A=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;if(A&&typeof A.getRandomValues=="function")return A.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function VlA(){return Buffer.from(WlA(32))}const SS=()=>{const e=Mt.genKeyPair(),A=ht.fromElliptic(e.getPublic());return{private:e.getPrivate(),pub:A}},ZlA=(e,A,t,i)=>{const o=[],r=[],f=[],h=[];for(let d=0;d{const t=`${e}_${A}`;let i=ur(Buffer.from(t,"utf8"));return i=i.replace("0x",""),new _A(i,"hex")};function uh(e){return e.toArrayLike(Buffer,"be",TeA)}function zlA(e,A){if(A>e.length)throw new Error("Invalid number of endpoints");return e.slice().sort(()=>Math.random()-.5).slice(0,A).sort((i,o)=>i.index-o.index)}function NS(e,A,t){return A.mul(t.invm(e.n)).umod(e.n)}function $lA(e,A,t,i){return A.filter((o,r)=>r!==t).reduce((o,r)=>{const f=NS(e,i.sub(r),A[t].sub(r));return o.mul(f).umod(e.n)},new _A(1))}function qv(e,A,t){const i=A.map(r=>new _A(r)),o=new _A(t);return i.map((r,f)=>$lA(e,i,f,o))}const XlA=1,A0A=2;function e0A(e,A,t,i=A0A){const o=qv(e,[XlA,i],0),r=qv(e,A,0);if(A.includes(t))throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${A} ${t}`);const f=qv(e,[t,...A],0),h=r.map((p,C)=>NS(e,o[0].mul(p),f[C+1])),d=NS(e,o[1],f[0]);return{serverCoefficients:h,clientCoefficient:d}}function b4(){return ur(Buffer.from(fR().toString("hex")+Date.now(),"utf8"))}function S4(e,A,t,i,o){return`${e}${od.Delimiter1}${A}${od.Delimiter2}${t}${od.Delimiter3}${i}${od.Delimiter4}${o}`}function t0A(e){if(e.length!==65)throw new Error(`Invalid signature length: expected 65, got ${e.length}`);return{r:e.subarray(0,32),s:e.subarray(32,64),v:e[64]}}function i0A(e){if(e.keyType!==Ur.secp256k1)throw new Error(`Invalid key type: expected secp256k1, got ${e.keyType}`);return{sign:async A=>{const t=await e.sign(A,!0);return t0A(t)},getPublic:async()=>ht.fromSEC1($e,e.getPubKey().toString("hex")).toSEC1($e).subarray(1)}}const di=tn.getLogger("mpc-core-kit");di.disableAll();class I7{constructor(A){var t;if(FA(this,"state",{accountIndex:0}),FA(this,"torusSp",null),FA(this,"options",void 0),FA(this,"storageLayer",null),FA(this,"tkey",null),FA(this,"sessionManager",void 0),FA(this,"currentStorage",void 0),FA(this,"_storageBaseKey","corekit_store"),FA(this,"enableLogging",!1),FA(this,"ready",!1),FA(this,"_tssLib",void 0),FA(this,"wasmLib",void 0),FA(this,"_keyType",void 0),FA(this,"atomicCallStackCounter",0),FA(this,"fetchSessionSignatures",void 0),FA(this,"getTssFactorPub",()=>{if(this.checkReady(),!this.state.factorKey)throw ue.factorKeyNotPresent("factorKey not present in state when getting tss factor public key.");return this.tKey.metadata.factorPubs[this.tKey.tssTag].map(r=>r.toSEC1(Mt,!0).toString("hex"))}),!A.web3AuthClientId)throw ue.clientIdInvalid();this._tssLib=A.tssLib,this._keyType=A.tssLib.keyType;const i=this.isNodejsOrRN(A.uxMode);A.enableLogging?(di.enableAll(),this.enableLogging=!0):di.setLevel("error"),typeof A.manualSync!="boolean"&&(A.manualSync=!1),A.web3AuthNetwork||(A.web3AuthNetwork=nJ.MAINNET),A.sessionTime||(A.sessionTime=86400),A.serverTimeOffset||(A.serverTimeOffset=0),A.uxMode||(A.uxMode=to.REDIRECT),A.redirectPathName||(A.redirectPathName="redirect"),A.baseUrl||(A.baseUrl=i?"https://localhost":`${(t=window)===null||t===void 0?void 0:t.location.origin}/serviceworker`),A.disableHashedFactorKey||(A.disableHashedFactorKey=!1),A.hashedFactorNonce||(A.hashedFactorNonce=A.web3AuthClientId),A.disableSessionManager===void 0&&(A.disableSessionManager=!1),this.fetchSessionSignatures=()=>Promise.resolve(this.signatures),this.options=A,this.currentStorage=new XeA(this._storageBaseKey,A.storage),A.disableSessionManager||(this.sessionManager=new BS({sessionTime:A.sessionTime})),Yo.setSessionTime(this.options.sessionTime)}get tKey(){if(this.tkey===null)throw ue.tkeyInstanceUninitialized();return this.tkey}get keyType(){return this._keyType}get signatures(){var A;return(A=this.state)!==null&&A!==void 0&&A.signatures?this.state.signatures:[]}get config(){return this.options}get _storageKey(){return this._storageBaseKey}get status(){try{const{tkey:A}=this;return A?A.metadata?!A.secp256k1Key||!this.state.factorKey?Ir.REQUIRED_SHARE:Ir.LOGGED_IN:Ir.INITIALIZED:Ir.NOT_INITIALIZED}catch{}return Ir.NOT_INITIALIZED}get sessionId(){var A;return(A=this.sessionManager)===null||A===void 0?void 0:A.sessionId}get supportsAccountIndex(){return this._keyType!==Ur.ed25519}get verifier(){var A,t;return(A=this.state.userInfo)!==null&&A!==void 0&&A.aggregateVerifier?this.state.userInfo.aggregateVerifier:(t=this.state)!==null&&t!==void 0&&(t=t.userInfo)!==null&&t!==void 0&&t.verifier?this.state.userInfo.verifier:""}get verifierId(){var A;return(A=this.state)!==null&&A!==void 0&&(A=A.userInfo)!==null&&A!==void 0&&A.verifierId?this.state.userInfo.verifierId:""}get isRedirectMode(){return this.options.uxMode===to.REDIRECT}get useClientGeneratedTSSKey(){return this.keyType===Ur.ed25519&&this.options.useClientGeneratedTSSKey===void 0?!0:!!this.options.useClientGeneratedTSSKey}setSessionSigGenerator(A){this.fetchSessionSignatures=A}async _UNSAFE_recoverTssKey(A){this.checkReady();const t=new _A(A[0],"hex"),i=await this.getFactorKeyMetadata(t);await this.tKey.initialize({withShare:i});const o=[],r=[],f=[];for(let d=0;d{di.error("rehydrate session error",d)});if(h){await this.rehydrateSession(h);return}}}await this.featureRequest()}async loginWithOAuth(A){if(this.checkReady(),this.isNodejsOrRN(this.options.uxMode))throw ue.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`);const{importTssKey:t}=A,i=this.torusSp;try{const o=A,r=A;if(o.subVerifierDetails){const f=await i.triggerLogin(A.subVerifierDetails);if(this.isRedirectMode)return;await this._finalizeOauthLogin(f,f.userInfo,!0,t)}else if(r.subVerifierDetailsArray){const f=await i.triggerAggregateLogin({aggregateVerifierType:r.aggregateVerifierType||oJ.SINGLE_VERIFIER_ID,verifierIdentifier:r.aggregateVerifierIdentifier,subVerifierDetailsArray:r.subVerifierDetailsArray});if(this.isRedirectMode)return;await this._finalizeOauthLogin(f,f.userInfo[0],!0,t)}}catch(o){throw di.error("login error",o),o instanceof jA&&o.code===1302?ue.default(Qm.TKEY_SHARES_REQUIRED):ue.default(o.message)}}async loginWithJWT(A){this.checkReady();const{prefetchTssPublicKeys:t=1}=A;if(t>3)throw ue.prefetchValueExceeded(`The prefetch value '${t}' exceeds the maximum allowed limit of 3.`);const{verifier:i,verifierId:o,idToken:r,importTssKey:f}=A;this.torusSp.verifierName=i,this.torusSp.verifierId=o;try{const h=[];for(let y=0;y{let r;if(this.isNodejsOrRN(this.options.uxMode))r={browserName:"Node Env",browserVersion:"",deviceName:"nodejs"};else{const p=ef.parse(navigator.userAgent);r={browserName:`${p.browser.name}`,browserVersion:p.browser.version,deviceName:p.os.name}}const f=new _A(await this.createFactor({shareType:Uo.DEVICE,additionalMetadata:r}),"hex");await this.setDeviceFactor(f),await this.inputFactorKey(new _A(f,"hex"));const h=Is(o,Mt);await this.deleteFactor(h,o),await this.deleteMetadataShareBackup(o);let d;return t&&(d=await this.createFactor(ZA({shareType:Uo.RECOVERY},A))),d}).catch(r=>{di.error("error enabling MFA:",r.message);const f=ue.default(r.message);throw f.stack=r.stack,f})}async createFactor(A){this.checkReady();const{shareType:t}=A;let{factorKey:i,shareDescription:o,additionalMetadata:r}=A;if(!Zh.includes(t))throw ue.newShareIndexInvalid(`Invalid share type provided (${t}). Valid share types are ${Zh}.`);i||(i=SS().private),o||(o=v0.Other),r||(r={});const f=Is(i,Mt);if(this.getTssFactorPub().includes(f.toSEC1(Mt,!0).toString("hex")))throw ue.factorKeyAlreadyExists();return this.atomicSync(async()=>(await this.copyOrCreateShare(t,f),await this.backupMetadataShare(i),await this.addFactorDescription({factorKey:i,shareDescription:o,additionalMetadata:r,updateMetadata:!1}),uh(i).toString("hex"))).catch(h=>{di.error("error creating factor:",h.message);const d=ue.default(`error creating factor: ${h.message}`);throw d.stack=h.stack,d})}getPubKey(){const{tssPubKey:A}=this.state;return Buffer.from(A)}getPubKeyPoint(){const{tssPubKey:A}=this.state;return ht.fromSEC1(this.tkey.tssCurve,A.toString("hex"))}getPubKeyEd25519(){const A=this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic();return jlA().keyFromPublic(A).getPublic()}async precompute_secp256k1(){this.wasmLib=await this.loadTssWasm();const{tssShareIndex:A}=this.state,t=this.getPubKeyPoint(),{torusNodeTSSEndpoints:i}=GE(this.options.web3AuthNetwork,this.keyType);if(!this.state.factorKey)throw ue.factorKeyNotPresent("factorKey not present in state when signing.");const{tssShare:o}=await this.tKey.getTSSShare(this.state.factorKey,{accountIndex:0}),r=this.getTssNonce();if(!t||!i)throw ue.tssPublicKeyOrEndpointsMissing();const f=b4(),h=S4(this.verifier,this.verifierId,this.tKey.tssTag,r,f),d=4,p=d-1,{nodeIndexes:C}=await this.torusSp.getTSSPubKey(this.tKey.tssTag,this.tKey.metadata.tssNonces[this.tKey.tssTag]),{endpoints:y,tssWSEndpoints:w,partyIndexes:D,nodeIndexesReturned:v}=ZlA(i,d,p,C),M=await klA(w,f),b=m4(!0,v,A).mul(o).umod($e.curve.n),S=this.tkey.computeAccountNonce(this.state.accountIndex),G=b.add(S).umod($e.curve.n),U=uh(G).toString("base64");if(!h)throw ue.activeSessionNotFound();const P=await this.fetchSessionSignatures();if(!P)throw ue.signaturesNotPresent();const z=Buffer.from(t.toSEC1($e).subarray(1)).toString("base64"),oA=new RlA(h,p,D,y,M,U,z,!0,this.wasmLib),J={};for(let q=0;q{throw oA.cleanup({signatures:P,server_coeffs:J}),q}),{client:oA,serverCoeffs:J,signatures:P}}async sign(A,t=!1,i){if(this.wasmLib=await this.loadTssWasm(),this.keyType===Ur.secp256k1){const o=await this.sign_ECDSA_secp256k1(A,t,i);return Buffer.concat([o.r,o.s,Buffer.from([o.v])])}else if(this.keyType===Ur.ed25519)return this.sign_ed25519(A,t);throw ue.default(`sign not supported for key type ${this.keyType}`)}async deleteFactor(A,t){if(!this.state.factorKey)throw ue.factorKeyNotPresent("factorKey not present in state when deleting a factor.");if(!this.tKey.metadata.factorPubs)throw ue.factorPubsMissing();await this.atomicSync(async()=>{if((this.tKey.metadata.factorPubs[this.tKey.tssTag].length||0)<=1)throw ue.cannotDeleteLastFactor("Cannot delete last factor");const o=A,r=Is(this.state.factorKey,Mt);if(o.equals(r))throw ue.factorInUseCannotBeDeleted("Cannot delete current active factor");const f=await this.fetchSessionSignatures();await this.tKey.deleteFactorPub({factorKey:this.state.factorKey,deleteFactorPub:A,authSignatures:f});const h=o.toSEC1(Mt,!0).toString("hex"),p=this.tKey.metadata.getShareDescription()[h];if(p&&await Promise.all(p.map(async C=>{var y;return(y=this.tKey)===null||y===void 0?void 0:y.metadata.deleteShareDescription(h,C)})),t){const C=new _A(t,"hex");Is(C,Mt).equals(o)&&await this.deleteMetadataShareBackup(C)}})}async logout(){var A;(A=this.sessionManager)!==null&&A!==void 0&&A.sessionId&&await this.sessionManager.invalidateSession(),await this.currentStorage.set("sessionId",""),this.resetState(),await this.init({handleRedirectResult:!1,rehydrate:!1})}getUserInfo(){if(!this.state.userInfo)throw ue.userNotLoggedIn();return this.state.userInfo}getKeyDetails(){this.checkReady();const A=this.tKey.getKeyDetails(),t=this.state.tssPubKey?ht.fromSEC1(this.tkey.tssCurve,this.state.tssPubKey.toString("hex")):void 0,i=this.tKey.metadata.factorPubs?this.tKey.metadata.factorPubs[this.tKey.tssTag]:[];return{requiredFactors:A.requiredShares,threshold:A.threshold,totalFactors:i.length+1,shareDescriptions:this.tKey.getMetadata().getShareDescription(),metadataPubKey:A.pubKey,tssPubKey:t,keyType:this.keyType}}async commitChanges(){if(this.checkReady(),!this.state.factorKey)throw ue.factorKeyNotPresent("factorKey not present in state when committing changes.");try{await this.tKey._syncShareMetadata(),await this.tKey.syncLocalMetadataTransitions()}catch(A){throw di.error("sync metadata error",A),A}}async setManualSync(A){this.checkReady(),await this.tKey.syncLocalMetadataTransitions(),this.options.manualSync=A,this.tKey.manualSync=A}async setDeviceFactor(A,t=!1){if(!t&&await this.getDeviceFactor())throw ue.default("Device factor already exists");const o=this.tKey.getMetadata().pubKey.x.toString(16,pm);await this.currentStorage.set(o,JSON.stringify({factorKey:A.toString("hex").padStart(64,"0")}))}async getDeviceFactor(){const t=this.tKey.getMetadata().pubKey.x.toString(16,pm),i=await this.currentStorage.get(t);return JSON.parse(i||"{}").factorKey}async _UNSAFE_exportTssKey(){if(this.keyType!==Ur.secp256k1)throw ue.default("Wrong KeyType. Method can only be used when KeyType is secp256k1");if(!this.state.factorKey)throw ue.factorKeyNotPresent("factorKey not present in state when exporting tss key.");if(!this.state.signatures)throw ue.signaturesNotPresent("Signatures not present in state when exporting tss key.");const A=await this.tKey._UNSAFE_exportTssKey({factorKey:this.state.factorKey,authSignatures:this.state.signatures}),t=this.getAccountNonce();return A.add(t).umod(this.tKey.tssCurve.n).toString("hex",pm)}async _UNSAFE_exportTssEd25519Seed(){if(this.keyType!==Ur.ed25519)throw ue.default("Wrong KeyType. Method can only be used when KeyType is ed25519");if(!this.state.factorKey)throw ue.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed.");if(!this.state.signatures)throw ue.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed.");try{return await this.tKey._UNSAFE_exportTssEd25519Seed({factorKey:this.state.factorKey,authSignatures:this.state.signatures})}catch(A){throw ue.default(`Error exporting ed25519 seed: ${A}`)}}updateState(A){this.state=ZA(ZA({},this.state),A)}async atomicSync(A){this.atomicCallStackCounter+=1,this.tkey.manualSync=!0;try{const t=await A();return this.atomicCallStackCounter===1&&(this.options.manualSync||await this.commitChanges()),t}catch(t){throw t}finally{this.atomicCallStackCounter-=1,this.atomicCallStackCounter===0&&(this.tkey.manualSync=this.options.manualSync)}}async importTssKey(A,t,i=Uo.DEVICE){if(!this.state.signatures)throw ue.signaturesNotPresent("Signatures not present in state when importing tss key.");await this.tKey.importTssKey({tag:this.tKey.tssTag,importKey:Buffer.from(A,"hex"),factorPub:t,newTSSIndex:i},{authSignatures:this.state.signatures})}getTssNonce(){if(!this.tKey.metadata.tssNonces||this.tKey.metadata.tssNonces[this.tKey.tssTag]===void 0)throw ue.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`);return this.tKey.metadata.tssNonces[this.tKey.tssTag]}async setupTkey(A){if(!this.state.postBoxKey)throw ue.userNotLoggedIn();const t=await this.isMetadataPresent(this.state.postBoxKey);let i=A;if(t){if(i)throw ue.tssKeyImportNotAllowed();await this.handleExistingUser()}else{if(!i&&this.useClientGeneratedTSSKey)if(this.keyType===Ur.ed25519)i=VlA().toString("hex");else if(this.keyType===Ur.secp256k1){const o=$e.genKeyPair().getPrivate();i=uh(o).toString("hex")}else throw ue.default("Unsupported key type");await this.handleNewUser(i)}}async handleNewUser(A){await this.atomicSync(async()=>{let t;if(this.options.disableHashedFactorKey){t=SS().private;const r=md(this.state.postBoxKey,this.options.hashedFactorNonce);await this.deleteMetadataShareBackup(r)}else t=md(this.state.postBoxKey,this.options.hashedFactorNonce);const i=Uo.DEVICE,o=Is(t,Mt);if(A)await this.tKey.initialize({skipTssInit:!0}),await this.tKey.reconstructKey(),await this.importTssKey(A,o,i);else{const f=new br.ec(this.keyType).genKeyPair().getPrivate();await this.tKey.initialize({factorPub:o,deviceTSSShare:f,deviceTSSIndex:i})}await this.tKey.reconstructKey(),await this.finalizeTkey(t),await this.backupMetadataShare(t),this.options.disableHashedFactorKey?await this.addFactorDescription({factorKey:t,shareDescription:v0.Other,updateMetadata:!1}):await this.addFactorDescription({factorKey:t,shareDescription:v0.HashedShare,updateMetadata:!1})})}async handleExistingUser(){if(await this.tKey.initialize({neverInitializeNewKey:!0}),this.options.disableHashedFactorKey)return;const A=md(this.state.postBoxKey,this.options.hashedFactorNonce);if(this.state.factorKey=A,await this.checkIfFactorKeyValid(A)){const i=await this.getFactorKeyMetadata(A);try{await this.tKey.inputShareStoreSafe(i,!0),await this.tKey.reconstructKey(),await this.finalizeTkey(A)}catch(o){di.error("error initializing tkey with hashed share",o)}}else{var t;(await((t=this.tKey)===null||t===void 0?void 0:t.readMetadata(A))).message==="SHARE_DELETED"&&di.warn("hashed factor deleted")}}async finalizeTkey(A){this.state.accountIndex!==0&&(di.warn("AccountIndex should be 0"),this.state.accountIndex=0);const{tssIndex:t}=await this.tKey.getTSSShare(A),i=this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve,!1);this.updateState({tssShareIndex:t,tssPubKey:i,factorKey:A}),await this.createSession()}checkReady(){if(!this.ready)throw ue.mpcCoreKitNotInitialized()}async rehydrateSession(A){try{this.checkReady();const t=new _A(A.factorKey,"hex");if(!t)throw ue.providedFactorKeyInvalid();const i=A.postBoxKey||A.oAuthKey;if(!i)throw ue.default("postBoxKey or oAuthKey not present in session data");this.torusSp.postboxKey=new _A(i,"hex"),this.torusSp.verifierName=A.userInfo.aggregateVerifier||A.userInfo.verifier,this.torusSp.verifierId=A.userInfo.verifierId;const o=await this.getFactorKeyMetadata(t);await this.tKey.initialize({neverInitializeNewKey:!0}),await this.tKey.inputShareStoreSafe(o,!0),await this.tKey.reconstructKey(),this.updateState({factorKey:new _A(A.factorKey,"hex"),postBoxKey:i,postboxKeyNodeIndexes:A.postboxKeyNodeIndexes||[],tssShareIndex:A.tssShareIndex,tssPubKey:this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve,!1),signatures:A.signatures,userInfo:A.userInfo})}catch(t){di.warn("failed to authorize session",t)}}async createSession(){if(!this.options.disableSessionManager&&!this.sessionManager)throw new Error("sessionManager is not available");try{const A=BS.generateRandomSessionKey();this.sessionManager.sessionId=A;const{postBoxKey:t,factorKey:i,userInfo:o,tssShareIndex:r,tssPubKey:f,postboxKeyNodeIndexes:h}=this.state;if(!this.state.factorKey)throw ue.factorKeyNotPresent("factorKey not present in state when creating session.");const{tssShare:d}=await this.tKey.getTSSShare(this.state.factorKey,{accountIndex:this.state.accountIndex});if(!t||!i||!d||!f||!o)throw ue.userNotLoggedIn();const p={postBoxKey:t,postboxKeyNodeIndexes:h||[],factorKey:i==null?void 0:i.toString("hex"),tssShareIndex:r,tssPubKey:Buffer.from(f).toString("hex"),signatures:this.signatures,userInfo:o};await this.sessionManager.createSession(p),await this.currentStorage.set("sessionId",A)}catch(A){di.error("error creating session",A)}}async isMetadataPresent(A){var t;const i=new _A(A,"hex"),o=await((t=this.tKey)===null||t===void 0?void 0:t.readMetadata(i));return!!(o&&o.message!=="KEY_NOT_FOUND")}async checkIfFactorKeyValid(A){var t;this.checkReady();const i=await((t=this.tKey)===null||t===void 0?void 0:t.readMetadata(A));return!(!i||i.message==="KEY_NOT_FOUND"||i.message==="SHARE_DELETED")}async getFactorKeyMetadata(A){var t;this.checkReady();const i=await((t=this.tKey)===null||t===void 0?void 0:t.readMetadata(A));if(!i||i.message==="KEY_NOT_FOUND")throw ue.noMetadataFound();return ii.fromJSON(i)}async copyOrCreateShare(A,t){if(this.checkReady(),!this.tKey.metadata.factorPubs||!Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag]))throw ue.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key.");if(!this.tKey.metadata.factorEncs||typeof this.tKey.metadata.factorEncs[this.tKey.tssTag]!="object")throw ue.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key.");if(!this.state.factorKey)throw ue.factorKeyNotPresent("factorKey not present in state when copying or creating a share.");if(Zh.indexOf(A)===-1)throw ue.newShareIndexInvalid(`Invalid share type provided (${A}). Valid share types are ${Zh}.`);if(this.tKey.metadata.factorPubs[this.tKey.tssTag].length>=LF)throw ue.maximumFactorsReached(`The maximum number of allowable factors (${LF}) has been reached.`);const i=await this.fetchSessionSignatures();await this.tkey.addFactorPub({existingFactorKey:this.state.factorKey,authSignatures:i,newFactorPub:t,newTSSIndex:A,refreshShares:this.state.tssShareIndex!==A})}async getMetadataShare(){try{var A,t;const i=(A=this.tKey)===null||A===void 0?void 0:A.metadata.getLatestPublicPolynomial().getPolynomialID(),o=(t=this.tKey)===null||t===void 0?void 0:t.shares[i];let r=null;for(const f in o)f!==PeA.toString()&&(r=o[f]);if(!r)throw ue.noMetadataShareFound();return r}catch(i){throw di.error("create device share error",i),ue.default(i.message)}}async deleteMetadataShareBackup(A){var t,i;await this.tKey.addLocalMetadataTransitions({input:[{message:xE,dateAdded:Date.now()}],privKey:[A]}),(t=this.tkey)!==null&&t!==void 0&&t.manualSync||await((i=this.tkey)===null||i===void 0?void 0:i.syncLocalMetadataTransitions())}async backupMetadataShare(A){var t,i,o;const r=await this.getMetadataShare();await((t=this.tKey)===null||t===void 0?void 0:t.addLocalMetadataTransitions({input:[r],privKey:[A]})),(i=this.tkey)!==null&&i!==void 0&&i.manualSync||await((o=this.tkey)===null||o===void 0?void 0:o.syncLocalMetadataTransitions())}async addFactorDescription(A){var t;const{factorKey:i,shareDescription:o,updateMetadata:r}=A;let{additionalMetadata:f}=A;f||(f={});const{tssIndex:h}=await this.tKey.getTSSShare(i),p=Is(i,Mt).toSEC1(Mt,!0).toString("hex"),C=ZA(ZA({module:o,dateAdded:Date.now()},f),{},{tssShareIndex:h});await((t=this.tKey)===null||t===void 0?void 0:t.addShareDescription(p,JSON.stringify(C),r))}resetState(){this.ready=!1,this.tkey=null,this.torusSp=null,this.storageLayer=null,this.state={accountIndex:0}}_getPostBoxKey(A){return Yo.getPostboxKey(A)}_getSignatures(A){return A.filter(t=>!!t).map(t=>JSON.stringify({data:t.token,sig:t.signature}))}isNodejsOrRN(A){const t=A;return t==="nodejs"||t==="react-native"}async featureRequest(){const A=iJ[this.options.web3AuthNetwork],t={network:this.options.web3AuthNetwork,client_id:this.options.web3AuthClientId,is_mpc_core_kit:"true",enable_gating:"true",session_time:this.options.sessionTime.toString()},i=new URL(`${A}/api/feature-access`);i.search=new URLSearchParams(t).toString();const o=await fetch(i);if(o.status!==200){this.resetState();const r=await o.json();throw ue.default(r.error)}return o.json()}getAccountNonce(){return this.tkey.computeAccountNonce(this.state.accountIndex)}async sign_ECDSA_secp256k1(A,t=!1,i){const o=async(p,C,y,w)=>{const{r:D,s:v,recoveryParam:M}=await p.sign(y.toString("base64"),!0,"","keccak256",{signatures:w});return p.cleanup({signatures:w,server_coeffs:C}),{v:M,r:uh(D),s:uh(v)}};t||(A=of(A));const r=(i==null?void 0:i.client)&&(i==null?void 0:i.serverCoeffs),{client:f,serverCoeffs:h,signatures:d}=r?i:await this.precompute_secp256k1();if(!d)throw ue.signaturesNotPresent();try{return await o(f,h,A,d)}catch(p){if(!r)throw p;const{client:C,serverCoeffs:y}=await this.precompute_secp256k1();return await o(C,y,A,d)}}async sign_ed25519(A,t=!1){if(t)throw ue.default("hashed data not supported for ed25519");const i=GE(this.options.web3AuthNetwork,"ed25519");if(!i.torusNodeTSSEndpoints)throw ue.default("could not fetch tss node endpoints");const o=i.torusNodeTSSEndpoints.map((q,X)=>({index:i.torusIndexes[X],url:`${q}/`})),r=Math.floor(o.length/2)+1,f=zlA(o,r),h=f.map(q=>q.index),d=Math.max(...f.map(q=>q.index))+1,p=new auA,{serverCoefficients:C,clientCoefficient:y}=e0A(p,h,d,this.state.tssShareIndex),w=await this.getPubKey(),D=p.keyFromPublic(w).getPublic();if(this.state.accountIndex!==0)throw ue.default("Account index not supported for ed25519");const{tssShare:v}=await this.tKey.getTSSShare(this.state.factorKey),M=v.mul(y).umod(p.n),R=p.scalarToBuffer(M,Buffer).toString("hex"),b=this.getTssNonce(),S=b4(),G=S4(this.verifier,this.verifierId,this.tKey.tssTag,b,S),U=f.map(q=>q.url),P=p.pointToBuffer(D,Buffer).toString("hex"),z=C.map(q=>p.scalarToBuffer(q,Buffer).toString("hex")),oA=await this.fetchSessionSignatures(),J=await YlA(this.wasmLib,G,oA,h,U,d,R,P,A,z);return di.info(`signature: ${J}`),Buffer.from(J,"hex")}async loadTssWasm(){if(this.wasmLib)return this.wasmLib;if(typeof this._tssLib.load=="function")return this._tssLib.load();if(this._tssLib.lib)return this._tssLib.lib}}function fC(e){"@babel/helpers - typeof";return fC=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(A){return typeof A}:function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},fC(e)}function r0A(e,A){if(fC(e)!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var i=t.call(e,A||"default");if(fC(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(A==="string"?String:Number)(e)}function n0A(e){var A=r0A(e,"string");return fC(A)=="symbol"?A:A+""}function Le(e,A,t){return(A=n0A(A))in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}const o0A=Object.freeze(Object.defineProperty({__proto__:null,default:Le},Symbol.toStringTag,{value:"Module"}));var Hv={};const s0A="elliptic",a0A="6.6.1",g0A="EC cryptography",I0A="lib/elliptic.js",f0A=["lib"],h0A={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},c0A={type:"git",url:"git@github.com:indutny/elliptic"},u0A=["EC","Elliptic","curve","Cryptography"],l0A="Fedor Indutny ",C0A="MIT",B0A={url:"https://github.com/indutny/elliptic/issues"},d0A="https://github.com/indutny/elliptic",E0A={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},Q0A={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},p0A={name:s0A,version:a0A,description:g0A,main:I0A,files:f0A,scripts:h0A,repository:c0A,keywords:u0A,author:l0A,license:C0A,bugs:B0A,homepage:d0A,devDependencies:E0A,dependencies:Q0A};var Kn={},BR={exports:{}};BR.exports;(function(e){(function(A,t){function i(Q,n){if(!Q)throw new Error(n||"Assertion failed")}function o(Q,n){Q.super_=n;var a=function(){};a.prototype=n.prototype,Q.prototype=new a,Q.prototype.constructor=Q}function r(Q,n,a){if(r.isBN(Q))return Q;this.negative=0,this.words=null,this.length=0,this.red=null,Q!==null&&((n==="le"||n==="be")&&(a=n,n=10),this._init(Q||0,n||10,a||"be"))}typeof A=="object"?A.exports=r:t.BN=r,r.BN=r,r.wordSize=26;var f;try{typeof window<"u"&&typeof window.Buffer<"u"?f=window.Buffer:f=Ht.Buffer}catch{}r.isBN=function(n){return n instanceof r?!0:n!==null&&typeof n=="object"&&n.constructor.wordSize===r.wordSize&&Array.isArray(n.words)},r.max=function(n,a){return n.cmp(a)>0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,I+=2,I>=26&&(I-=26,B--),c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)})(BR);var $a=BR.exports,lo=f7;function f7(e,A){if(!e)throw new Error(A||"Assertion failed")}f7.equal=function(A,t,i){if(A!=t)throw new Error(i||"Assertion failed: "+A+" != "+t)};var dR={};(function(e){var A=e;function t(r,f){if(Array.isArray(r))return r.slice();if(!r)return[];var h=[];if(typeof r!="string"){for(var d=0;d>8,y=p&255;C?h.push(C,y):h.push(y)}return h}A.toArray=t;function i(r){return r.length===1?"0"+r:r}A.zero2=i;function o(r){for(var f="",h=0;h(M>>1)-1?b=(M>>1)-S:b=S,R.isubn(b)):b=0,D[v]=b,R.iushrn(1)}return D}A.getNAF=r;function f(C,y){var w=[[],[]];C=C.clone(),y=y.clone();for(var D=0,v=0,M;C.cmpn(-D)>0||y.cmpn(-v)>0;){var R=C.andln(3)+D&3,b=y.andln(3)+v&3;R===3&&(R=-1),b===3&&(b=-1);var S;R&1?(M=C.andln(7)+D&7,(M===3||M===5)&&b===2?S=-R:S=R):S=0,w[0].push(S);var G;b&1?(M=y.andln(7)+v&7,(M===3||M===5)&&R===2?G=-b:G=b):G=0,w[1].push(G),2*D===S+1&&(D=1-D),2*v===G+1&&(v=1-v),C.iushrn(1),y.iushrn(1)}return w}A.getJSF=f;function h(C,y,w){var D="_"+y;C.prototype[y]=function(){return this[D]!==void 0?this[D]:this[D]=w.call(this)}}A.cachedProperty=h;function d(C){return typeof C=="string"?A.toArray(C,"hex"):C}A.parseBytes=d;function p(C){return new t(C,"hex","le")}A.intFromLE=p})(Kn);var vd={exports:{}},Te={},Md={exports:{}},bd={exports:{}},Co={},mw={};mw.byteLength=D0A;mw.toByteArray=v0A;mw.fromByteArray=S0A;var us=[],jn=[],y0A=typeof Uint8Array<"u"?Uint8Array:Array,Yv="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var lh=0,w0A=Yv.length;lh0)throw new Error("Invalid string. Length must be a multiple of 4");var t=e.indexOf("=");t===-1&&(t=A);var i=t===A?0:4-t%4;return[t,i]}function D0A(e){var A=h7(e),t=A[0],i=A[1];return(t+i)*3/4-i}function m0A(e,A,t){return(A+t)*3/4-t}function v0A(e){var A,t=h7(e),i=t[0],o=t[1],r=new y0A(m0A(e,i,o)),f=0,h=o>0?i-4:i,d;for(d=0;d>16&255,r[f++]=A>>8&255,r[f++]=A&255;return o===2&&(A=jn[e.charCodeAt(d)]<<2|jn[e.charCodeAt(d+1)]>>4,r[f++]=A&255),o===1&&(A=jn[e.charCodeAt(d)]<<10|jn[e.charCodeAt(d+1)]<<4|jn[e.charCodeAt(d+2)]>>2,r[f++]=A>>8&255,r[f++]=A&255),r}function M0A(e){return us[e>>18&63]+us[e>>12&63]+us[e>>6&63]+us[e&63]}function b0A(e,A,t){for(var i,o=[],r=A;rh?h:f+r));return i===1?(A=e[t-1],o.push(us[A>>2]+us[A<<4&63]+"==")):i===2&&(A=(e[t-2]<<8)+e[t-1],o.push(us[A>>10]+us[A>>4&63]+us[A<<2&63]+"=")),o.join("")}var ER={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ER.read=function(e,A,t,i,o){var r,f,h=o*8-i-1,d=(1<>1,C=-7,y=t?o-1:0,w=t?-1:1,D=e[A+y];for(y+=w,r=D&(1<<-C)-1,D>>=-C,C+=h;C>0;r=r*256+e[A+y],y+=w,C-=8);for(f=r&(1<<-C)-1,r>>=-C,C+=i;C>0;f=f*256+e[A+y],y+=w,C-=8);if(r===0)r=1-p;else{if(r===d)return f?NaN:(D?-1:1)*(1/0);f=f+Math.pow(2,i),r=r-p}return(D?-1:1)*f*Math.pow(2,r-i)};ER.write=function(e,A,t,i,o,r){var f,h,d,p=r*8-o-1,C=(1<>1,w=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,D=i?0:r-1,v=i?1:-1,M=A<0||A===0&&1/A<0?1:0;for(A=Math.abs(A),isNaN(A)||A===1/0?(h=isNaN(A)?1:0,f=C):(f=Math.floor(Math.log(A)/Math.LN2),A*(d=Math.pow(2,-f))<1&&(f--,d*=2),f+y>=1?A+=w/d:A+=w*Math.pow(2,1-y),A*d>=2&&(f++,d/=2),f+y>=C?(h=0,f=C):f+y>=1?(h=(A*d-1)*Math.pow(2,o),f=f+y):(h=A*Math.pow(2,y-1)*Math.pow(2,o),f=0));o>=8;e[t+D]=h&255,D+=v,h/=256,o-=8);for(f=f<0;e[t+D]=f&255,D+=v,f/=256,p-=8);e[t+D-v]|=M*128};/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */(function(e){const A=mw,t=ER,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=h,e.SlowBuffer=S,e.INSPECT_MAX_BYTES=50;const o=2147483647;e.kMaxLength=o,h.TYPED_ARRAY_SUPPORT=r(),!h.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function r(){try{const x=new Uint8Array(1),k={foo:function(){return 42}};return Object.setPrototypeOf(k,Uint8Array.prototype),Object.setPrototypeOf(x,k),x.foo()===42}catch{return!1}}Object.defineProperty(h.prototype,"parent",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.buffer}}),Object.defineProperty(h.prototype,"offset",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.byteOffset}});function f(x){if(x>o)throw new RangeError('The value "'+x+'" is invalid for option "size"');const k=new Uint8Array(x);return Object.setPrototypeOf(k,h.prototype),k}function h(x,k,F){if(typeof x=="number"){if(typeof k=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(x)}return d(x,k,F)}h.poolSize=8192;function d(x,k,F){if(typeof x=="string")return w(x,k);if(ArrayBuffer.isView(x))return v(x);if(x==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x);if(IA(x,ArrayBuffer)||x&&IA(x.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(IA(x,SharedArrayBuffer)||x&&IA(x.buffer,SharedArrayBuffer)))return M(x,k,F);if(typeof x=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const T=x.valueOf&&x.valueOf();if(T!=null&&T!==x)return h.from(T,k,F);const Z=R(x);if(Z)return Z;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof x[Symbol.toPrimitive]=="function")return h.from(x[Symbol.toPrimitive]("string"),k,F);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof x)}h.from=function(x,k,F){return d(x,k,F)},Object.setPrototypeOf(h.prototype,Uint8Array.prototype),Object.setPrototypeOf(h,Uint8Array);function p(x){if(typeof x!="number")throw new TypeError('"size" argument must be of type number');if(x<0)throw new RangeError('The value "'+x+'" is invalid for option "size"')}function C(x,k,F){return p(x),x<=0?f(x):k!==void 0?typeof F=="string"?f(x).fill(k,F):f(x).fill(k):f(x)}h.alloc=function(x,k,F){return C(x,k,F)};function y(x){return p(x),f(x<0?0:b(x)|0)}h.allocUnsafe=function(x){return y(x)},h.allocUnsafeSlow=function(x){return y(x)};function w(x,k){if((typeof k!="string"||k==="")&&(k="utf8"),!h.isEncoding(k))throw new TypeError("Unknown encoding: "+k);const F=G(x,k)|0;let T=f(F);const Z=T.write(x,k);return Z!==F&&(T=T.slice(0,Z)),T}function D(x){const k=x.length<0?0:b(x.length)|0,F=f(k);for(let T=0;T=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return x|0}function S(x){return+x!=x&&(x=0),h.alloc(+x)}h.isBuffer=function(k){return k!=null&&k._isBuffer===!0&&k!==h.prototype},h.compare=function(k,F){if(IA(k,Uint8Array)&&(k=h.from(k,k.offset,k.byteLength)),IA(F,Uint8Array)&&(F=h.from(F,F.offset,F.byteLength)),!h.isBuffer(k)||!h.isBuffer(F))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(k===F)return 0;let T=k.length,Z=F.length;for(let fA=0,eA=Math.min(T,Z);fAZ.length?(h.isBuffer(eA)||(eA=h.from(eA)),eA.copy(Z,fA)):Uint8Array.prototype.set.call(Z,eA,fA);else if(h.isBuffer(eA))eA.copy(Z,fA);else throw new TypeError('"list" argument must be an Array of Buffers');fA+=eA.length}return Z};function G(x,k){if(h.isBuffer(x))return x.length;if(ArrayBuffer.isView(x)||IA(x,ArrayBuffer))return x.byteLength;if(typeof x!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof x);const F=x.length,T=arguments.length>2&&arguments[2]===!0;if(!T&&F===0)return 0;let Z=!1;for(;;)switch(k){case"ascii":case"latin1":case"binary":return F;case"utf8":case"utf-8":return lA(x).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F*2;case"hex":return F>>>1;case"base64":return xA(x).length;default:if(Z)return T?-1:lA(x).length;k=(""+k).toLowerCase(),Z=!0}}h.byteLength=G;function U(x,k,F){let T=!1;if((k===void 0||k<0)&&(k=0),k>this.length||((F===void 0||F>this.length)&&(F=this.length),F<=0)||(F>>>=0,k>>>=0,F<=k))return"";for(x||(x="utf8");;)switch(x){case"hex":return u(this,k,F);case"utf8":case"utf-8":return g(this,k,F);case"ascii":return B(this,k,F);case"latin1":case"binary":return E(this,k,F);case"base64":return a(this,k,F);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return s(this,k,F);default:if(T)throw new TypeError("Unknown encoding: "+x);x=(x+"").toLowerCase(),T=!0}}h.prototype._isBuffer=!0;function P(x,k,F){const T=x[k];x[k]=x[F],x[F]=T}h.prototype.swap16=function(){const k=this.length;if(k%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let F=0;FF&&(k+=" ... "),""},i&&(h.prototype[i]=h.prototype.inspect),h.prototype.compare=function(k,F,T,Z,fA){if(IA(k,Uint8Array)&&(k=h.from(k,k.offset,k.byteLength)),!h.isBuffer(k))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof k);if(F===void 0&&(F=0),T===void 0&&(T=k?k.length:0),Z===void 0&&(Z=0),fA===void 0&&(fA=this.length),F<0||T>k.length||Z<0||fA>this.length)throw new RangeError("out of range index");if(Z>=fA&&F>=T)return 0;if(Z>=fA)return-1;if(F>=T)return 1;if(F>>>=0,T>>>=0,Z>>>=0,fA>>>=0,this===k)return 0;let eA=fA-Z,dA=T-F;const PA=Math.min(eA,dA),cA=this.slice(Z,fA),QA=k.slice(F,T);for(let YA=0;YA2147483647?F=2147483647:F<-2147483648&&(F=-2147483648),F=+F,UA(F)&&(F=Z?0:x.length-1),F<0&&(F=x.length+F),F>=x.length){if(Z)return-1;F=x.length-1}else if(F<0)if(Z)F=0;else return-1;if(typeof k=="string"&&(k=h.from(k,T)),h.isBuffer(k))return k.length===0?-1:oA(x,k,F,T,Z);if(typeof k=="number")return k=k&255,typeof Uint8Array.prototype.indexOf=="function"?Z?Uint8Array.prototype.indexOf.call(x,k,F):Uint8Array.prototype.lastIndexOf.call(x,k,F):oA(x,[k],F,T,Z);throw new TypeError("val must be string, number or Buffer")}function oA(x,k,F,T,Z){let fA=1,eA=x.length,dA=k.length;if(T!==void 0&&(T=String(T).toLowerCase(),T==="ucs2"||T==="ucs-2"||T==="utf16le"||T==="utf-16le")){if(x.length<2||k.length<2)return-1;fA=2,eA/=2,dA/=2,F/=2}function PA(QA,YA){return fA===1?QA[YA]:QA.readUInt16BE(YA*fA)}let cA;if(Z){let QA=-1;for(cA=F;cAeA&&(F=eA-dA),cA=F;cA>=0;cA--){let QA=!0;for(let YA=0;YAZ&&(T=Z)):T=Z;const fA=k.length;T>fA/2&&(T=fA/2);let eA;for(eA=0;eA>>0,isFinite(T)?(T=T>>>0,Z===void 0&&(Z="utf8")):(Z=T,T=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const fA=this.length-F;if((T===void 0||T>fA)&&(T=fA),k.length>0&&(T<0||F<0)||F>this.length)throw new RangeError("Attempt to write outside buffer bounds");Z||(Z="utf8");let eA=!1;for(;;)switch(Z){case"hex":return J(this,k,F,T);case"utf8":case"utf-8":return q(this,k,F,T);case"ascii":case"latin1":case"binary":return X(this,k,F,T);case"base64":return Q(this,k,F,T);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return n(this,k,F,T);default:if(eA)throw new TypeError("Unknown encoding: "+Z);Z=(""+Z).toLowerCase(),eA=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function a(x,k,F){return k===0&&F===x.length?A.fromByteArray(x):A.fromByteArray(x.slice(k,F))}function g(x,k,F){F=Math.min(x.length,F);const T=[];let Z=k;for(;Z239?4:fA>223?3:fA>191?2:1;if(Z+dA<=F){let PA,cA,QA,YA;switch(dA){case 1:fA<128&&(eA=fA);break;case 2:PA=x[Z+1],(PA&192)===128&&(YA=(fA&31)<<6|PA&63,YA>127&&(eA=YA));break;case 3:PA=x[Z+1],cA=x[Z+2],(PA&192)===128&&(cA&192)===128&&(YA=(fA&15)<<12|(PA&63)<<6|cA&63,YA>2047&&(YA<55296||YA>57343)&&(eA=YA));break;case 4:PA=x[Z+1],cA=x[Z+2],QA=x[Z+3],(PA&192)===128&&(cA&192)===128&&(QA&192)===128&&(YA=(fA&15)<<18|(PA&63)<<12|(cA&63)<<6|QA&63,YA>65535&&YA<1114112&&(eA=YA))}}eA===null?(eA=65533,dA=1):eA>65535&&(eA-=65536,T.push(eA>>>10&1023|55296),eA=56320|eA&1023),T.push(eA),Z+=dA}return c(T)}const I=4096;function c(x){const k=x.length;if(k<=I)return String.fromCharCode.apply(String,x);let F="",T=0;for(;TT)&&(F=T);let Z="";for(let fA=k;fAT&&(k=T),F<0?(F+=T,F<0&&(F=0)):F>T&&(F=T),FF)throw new RangeError("Trying to access beyond buffer length")}h.prototype.readUintLE=h.prototype.readUIntLE=function(k,F,T){k=k>>>0,F=F>>>0,T||l(k,F,this.length);let Z=this[k],fA=1,eA=0;for(;++eA>>0,F=F>>>0,T||l(k,F,this.length);let Z=this[k+--F],fA=1;for(;F>0&&(fA*=256);)Z+=this[k+--F]*fA;return Z},h.prototype.readUint8=h.prototype.readUInt8=function(k,F){return k=k>>>0,F||l(k,1,this.length),this[k]},h.prototype.readUint16LE=h.prototype.readUInt16LE=function(k,F){return k=k>>>0,F||l(k,2,this.length),this[k]|this[k+1]<<8},h.prototype.readUint16BE=h.prototype.readUInt16BE=function(k,F){return k=k>>>0,F||l(k,2,this.length),this[k]<<8|this[k+1]},h.prototype.readUint32LE=h.prototype.readUInt32LE=function(k,F){return k=k>>>0,F||l(k,4,this.length),(this[k]|this[k+1]<<8|this[k+2]<<16)+this[k+3]*16777216},h.prototype.readUint32BE=h.prototype.readUInt32BE=function(k,F){return k=k>>>0,F||l(k,4,this.length),this[k]*16777216+(this[k+1]<<16|this[k+2]<<8|this[k+3])},h.prototype.readBigUInt64LE=hA(function(k){k=k>>>0,j(k,"offset");const F=this[k],T=this[k+7];(F===void 0||T===void 0)&&sA(k,this.length-8);const Z=F+this[++k]*2**8+this[++k]*2**16+this[++k]*2**24,fA=this[++k]+this[++k]*2**8+this[++k]*2**16+T*2**24;return BigInt(Z)+(BigInt(fA)<>>0,j(k,"offset");const F=this[k],T=this[k+7];(F===void 0||T===void 0)&&sA(k,this.length-8);const Z=F*2**24+this[++k]*2**16+this[++k]*2**8+this[++k],fA=this[++k]*2**24+this[++k]*2**16+this[++k]*2**8+T;return(BigInt(Z)<>>0,F=F>>>0,T||l(k,F,this.length);let Z=this[k],fA=1,eA=0;for(;++eA=fA&&(Z-=Math.pow(2,8*F)),Z},h.prototype.readIntBE=function(k,F,T){k=k>>>0,F=F>>>0,T||l(k,F,this.length);let Z=F,fA=1,eA=this[k+--Z];for(;Z>0&&(fA*=256);)eA+=this[k+--Z]*fA;return fA*=128,eA>=fA&&(eA-=Math.pow(2,8*F)),eA},h.prototype.readInt8=function(k,F){return k=k>>>0,F||l(k,1,this.length),this[k]&128?(255-this[k]+1)*-1:this[k]},h.prototype.readInt16LE=function(k,F){k=k>>>0,F||l(k,2,this.length);const T=this[k]|this[k+1]<<8;return T&32768?T|4294901760:T},h.prototype.readInt16BE=function(k,F){k=k>>>0,F||l(k,2,this.length);const T=this[k+1]|this[k]<<8;return T&32768?T|4294901760:T},h.prototype.readInt32LE=function(k,F){return k=k>>>0,F||l(k,4,this.length),this[k]|this[k+1]<<8|this[k+2]<<16|this[k+3]<<24},h.prototype.readInt32BE=function(k,F){return k=k>>>0,F||l(k,4,this.length),this[k]<<24|this[k+1]<<16|this[k+2]<<8|this[k+3]},h.prototype.readBigInt64LE=hA(function(k){k=k>>>0,j(k,"offset");const F=this[k],T=this[k+7];(F===void 0||T===void 0)&&sA(k,this.length-8);const Z=this[k+4]+this[k+5]*2**8+this[k+6]*2**16+(T<<24);return(BigInt(Z)<>>0,j(k,"offset");const F=this[k],T=this[k+7];(F===void 0||T===void 0)&&sA(k,this.length-8);const Z=(F<<24)+this[++k]*2**16+this[++k]*2**8+this[++k];return(BigInt(Z)<>>0,F||l(k,4,this.length),t.read(this,k,!0,23,4)},h.prototype.readFloatBE=function(k,F){return k=k>>>0,F||l(k,4,this.length),t.read(this,k,!1,23,4)},h.prototype.readDoubleLE=function(k,F){return k=k>>>0,F||l(k,8,this.length),t.read(this,k,!0,52,8)},h.prototype.readDoubleBE=function(k,F){return k=k>>>0,F||l(k,8,this.length),t.read(this,k,!1,52,8)};function m(x,k,F,T,Z,fA){if(!h.isBuffer(x))throw new TypeError('"buffer" argument must be a Buffer instance');if(k>Z||kx.length)throw new RangeError("Index out of range")}h.prototype.writeUintLE=h.prototype.writeUIntLE=function(k,F,T,Z){if(k=+k,F=F>>>0,T=T>>>0,!Z){const dA=Math.pow(2,8*T)-1;m(this,k,F,T,dA,0)}let fA=1,eA=0;for(this[F]=k&255;++eA>>0,T=T>>>0,!Z){const dA=Math.pow(2,8*T)-1;m(this,k,F,T,dA,0)}let fA=T-1,eA=1;for(this[F+fA]=k&255;--fA>=0&&(eA*=256);)this[F+fA]=k/eA&255;return F+T},h.prototype.writeUint8=h.prototype.writeUInt8=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,1,255,0),this[F]=k&255,F+1},h.prototype.writeUint16LE=h.prototype.writeUInt16LE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,2,65535,0),this[F]=k&255,this[F+1]=k>>>8,F+2},h.prototype.writeUint16BE=h.prototype.writeUInt16BE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,2,65535,0),this[F]=k>>>8,this[F+1]=k&255,F+2},h.prototype.writeUint32LE=h.prototype.writeUInt32LE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,4,4294967295,0),this[F+3]=k>>>24,this[F+2]=k>>>16,this[F+1]=k>>>8,this[F]=k&255,F+4},h.prototype.writeUint32BE=h.prototype.writeUInt32BE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,4,4294967295,0),this[F]=k>>>24,this[F+1]=k>>>16,this[F+2]=k>>>8,this[F+3]=k&255,F+4};function N(x,k,F,T,Z){_(k,T,Z,x,F,7);let fA=Number(k&BigInt(4294967295));x[F++]=fA,fA=fA>>8,x[F++]=fA,fA=fA>>8,x[F++]=fA,fA=fA>>8,x[F++]=fA;let eA=Number(k>>BigInt(32)&BigInt(4294967295));return x[F++]=eA,eA=eA>>8,x[F++]=eA,eA=eA>>8,x[F++]=eA,eA=eA>>8,x[F++]=eA,F}function L(x,k,F,T,Z){_(k,T,Z,x,F,7);let fA=Number(k&BigInt(4294967295));x[F+7]=fA,fA=fA>>8,x[F+6]=fA,fA=fA>>8,x[F+5]=fA,fA=fA>>8,x[F+4]=fA;let eA=Number(k>>BigInt(32)&BigInt(4294967295));return x[F+3]=eA,eA=eA>>8,x[F+2]=eA,eA=eA>>8,x[F+1]=eA,eA=eA>>8,x[F]=eA,F+8}h.prototype.writeBigUInt64LE=hA(function(k,F=0){return N(this,k,F,BigInt(0),BigInt("0xffffffffffffffff"))}),h.prototype.writeBigUInt64BE=hA(function(k,F=0){return L(this,k,F,BigInt(0),BigInt("0xffffffffffffffff"))}),h.prototype.writeIntLE=function(k,F,T,Z){if(k=+k,F=F>>>0,!Z){const PA=Math.pow(2,8*T-1);m(this,k,F,T,PA-1,-PA)}let fA=0,eA=1,dA=0;for(this[F]=k&255;++fA>0)-dA&255;return F+T},h.prototype.writeIntBE=function(k,F,T,Z){if(k=+k,F=F>>>0,!Z){const PA=Math.pow(2,8*T-1);m(this,k,F,T,PA-1,-PA)}let fA=T-1,eA=1,dA=0;for(this[F+fA]=k&255;--fA>=0&&(eA*=256);)k<0&&dA===0&&this[F+fA+1]!==0&&(dA=1),this[F+fA]=(k/eA>>0)-dA&255;return F+T},h.prototype.writeInt8=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,1,127,-128),k<0&&(k=255+k+1),this[F]=k&255,F+1},h.prototype.writeInt16LE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,2,32767,-32768),this[F]=k&255,this[F+1]=k>>>8,F+2},h.prototype.writeInt16BE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,2,32767,-32768),this[F]=k>>>8,this[F+1]=k&255,F+2},h.prototype.writeInt32LE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,4,2147483647,-2147483648),this[F]=k&255,this[F+1]=k>>>8,this[F+2]=k>>>16,this[F+3]=k>>>24,F+4},h.prototype.writeInt32BE=function(k,F,T){return k=+k,F=F>>>0,T||m(this,k,F,4,2147483647,-2147483648),k<0&&(k=4294967295+k+1),this[F]=k>>>24,this[F+1]=k>>>16,this[F+2]=k>>>8,this[F+3]=k&255,F+4},h.prototype.writeBigInt64LE=hA(function(k,F=0){return N(this,k,F,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),h.prototype.writeBigInt64BE=hA(function(k,F=0){return L(this,k,F,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function O(x,k,F,T,Z,fA){if(F+T>x.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("Index out of range")}function H(x,k,F,T,Z){return k=+k,F=F>>>0,Z||O(x,k,F,4),t.write(x,k,F,T,23,4),F+4}h.prototype.writeFloatLE=function(k,F,T){return H(this,k,F,!0,T)},h.prototype.writeFloatBE=function(k,F,T){return H(this,k,F,!1,T)};function K(x,k,F,T,Z){return k=+k,F=F>>>0,Z||O(x,k,F,8),t.write(x,k,F,T,52,8),F+8}h.prototype.writeDoubleLE=function(k,F,T){return K(this,k,F,!0,T)},h.prototype.writeDoubleBE=function(k,F,T){return K(this,k,F,!1,T)},h.prototype.copy=function(k,F,T,Z){if(!h.isBuffer(k))throw new TypeError("argument should be a Buffer");if(T||(T=0),!Z&&Z!==0&&(Z=this.length),F>=k.length&&(F=k.length),F||(F=0),Z>0&&Z=this.length)throw new RangeError("Index out of range");if(Z<0)throw new RangeError("sourceEnd out of bounds");Z>this.length&&(Z=this.length),k.length-F>>0,T=T===void 0?this.length:T>>>0,k||(k=0);let fA;if(typeof k=="number")for(fA=F;fA2**32?Z=$(String(F)):typeof F=="bigint"&&(Z=String(F),(F>BigInt(2)**BigInt(32)||F<-(BigInt(2)**BigInt(32)))&&(Z=$(Z)),Z+="n"),T+=` It must be ${k}. Received ${Z}`,T},RangeError);function $(x){let k="",F=x.length;const T=x[0]==="-"?1:0;for(;F>=T+4;F-=3)k=`_${x.slice(F-3,F)}${k}`;return`${x.slice(0,F)}${k}`}function V(x,k,F){j(k,"offset"),(x[k]===void 0||x[k+F]===void 0)&&sA(k,x.length-(F+1))}function _(x,k,F,T,Z,fA){if(x>F||x= 0${eA} and < 2${eA} ** ${(fA+1)*8}${eA}`:dA=`>= -(2${eA} ** ${(fA+1)*8-1}${eA}) and < 2 ** ${(fA+1)*8-1}${eA}`,new Y.ERR_OUT_OF_RANGE("value",dA,x)}V(T,Z,fA)}function j(x,k){if(typeof x!="number")throw new Y.ERR_INVALID_ARG_TYPE(k,"number",x)}function sA(x,k,F){throw Math.floor(x)!==x?(j(x,F),new Y.ERR_OUT_OF_RANGE("offset","an integer",x)):k<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${k}`,x)}const iA=/[^+/0-9A-Za-z-_]/g;function aA(x){if(x=x.split("=")[0],x=x.trim().replace(iA,""),x.length<2)return"";for(;x.length%4!==0;)x=x+"=";return x}function lA(x,k){k=k||1/0;let F;const T=x.length;let Z=null;const fA=[];for(let eA=0;eA55295&&F<57344){if(!Z){if(F>56319){(k-=3)>-1&&fA.push(239,191,189);continue}else if(eA+1===T){(k-=3)>-1&&fA.push(239,191,189);continue}Z=F;continue}if(F<56320){(k-=3)>-1&&fA.push(239,191,189),Z=F;continue}F=(Z-55296<<10|F-56320)+65536}else Z&&(k-=3)>-1&&fA.push(239,191,189);if(Z=null,F<128){if((k-=1)<0)break;fA.push(F)}else if(F<2048){if((k-=2)<0)break;fA.push(F>>6|192,F&63|128)}else if(F<65536){if((k-=3)<0)break;fA.push(F>>12|224,F>>6&63|128,F&63|128)}else if(F<1114112){if((k-=4)<0)break;fA.push(F>>18|240,F>>12&63|128,F>>6&63|128,F&63|128)}else throw new Error("Invalid code point")}return fA}function nA(x){const k=[];for(let F=0;F>8,Z=F%256,fA.push(Z),fA.push(T);return fA}function xA(x){return A.toByteArray(aA(x))}function gA(x,k,F,T){let Z;for(Z=0;Z=k.length||Z>=x.length);++Z)k[Z+F]=x[Z];return Z}function IA(x,k){return x instanceof k||x!=null&&x.constructor!=null&&x.constructor.name!=null&&x.constructor.name===k.name}function UA(x){return x!==x}const rA=function(){const x="0123456789abcdef",k=new Array(256);for(let F=0;F<16;++F){const T=F*16;for(let Z=0;Z<16;++Z)k[T+Z]=x[F]+x[Z]}return k}();function hA(x){return typeof BigInt>"u"?OA:x}function OA(){throw new Error("BigInt not supported")}})(Co);/*! safe-buffer. MIT License. Feross Aboukhadijeh */var N4;function Ve(){return N4||(N4=1,function(e,A){var t=Co,i=t.Buffer;function o(f,h){for(var d in f)h[d]=f[d]}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=t:(o(t,A),A.Buffer=r);function r(f,h,d){return i(f,h,d)}r.prototype=Object.create(i.prototype),o(i,r),r.from=function(f,h,d){if(typeof f=="number")throw new TypeError("Argument must not be a number");return i(f,h,d)},r.alloc=function(f,h,d){if(typeof f!="number")throw new TypeError("Argument must be a number");var p=i(f);return h!==void 0?typeof d=="string"?p.fill(h,d):p.fill(h):p.fill(0),p},r.allocUnsafe=function(f){if(typeof f!="number")throw new TypeError("Argument must be a number");return i(f)},r.allocUnsafeSlow=function(f){if(typeof f!="number")throw new TypeError("Argument must be a number");return t.SlowBuffer(f)}}(bd,bd.exports)),bd.exports}var k4;function $u(){if(k4)return Md.exports;k4=1;var e=65536,A=4294967295;function t(){throw new Error(`Secure random number generation is not supported by this browser. +Use Chrome, Firefox or Internet Explorer 11`)}var i=Ve().Buffer,o=globalThis.crypto||globalThis.msCrypto;o&&o.getRandomValues?Md.exports=r:Md.exports=t;function r(f,h){if(f>A)throw new RangeError("requested too many random bytes");var d=i.allocUnsafe(f);if(f>0)if(f>e)for(var p=0;p0&&(f=t[0]),f instanceof Error)throw f;var h=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw h.context=f,h}var d=r[A];if(d===void 0)return!1;if(typeof d=="function")R4(d,this,t);else for(var p=d.length,C=E7(d,p),i=0;i0&&f.length>o&&!f.warned){f.warned=!0;var h=new Error("Possible EventEmitter memory leak detected. "+f.length+" "+String(A)+" listeners added. Use emitter.setMaxListeners() to increase limit");h.name="MaxListenersExceededWarning",h.emitter=e,h.type=A,h.count=f.length,N0A(h)}return e}yt.prototype.addListener=function(A,t){return l7(this,A,t,!1)};yt.prototype.on=yt.prototype.addListener;yt.prototype.prependListener=function(A,t){return l7(this,A,t,!0)};function k0A(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C7(e,A,t){var i={fired:!1,wrapFn:void 0,target:e,type:A,listener:t},o=k0A.bind(i);return o.listener=t,i.wrapFn=o,o}yt.prototype.once=function(A,t){return vw(t),this.on(A,C7(this,A,t)),this};yt.prototype.prependOnceListener=function(A,t){return vw(t),this.prependListener(A,C7(this,A,t)),this};yt.prototype.removeListener=function(A,t){var i,o,r,f,h;if(vw(t),o=this._events,o===void 0)return this;if(i=o[A],i===void 0)return this;if(i===t||i.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete o[A],o.removeListener&&this.emit("removeListener",A,i.listener||t));else if(typeof i!="function"){for(r=-1,f=i.length-1;f>=0;f--)if(i[f]===t||i[f].listener===t){h=i[f].listener,r=f;break}if(r<0)return this;r===0?i.shift():R0A(i,r),i.length===1&&(o[A]=i[0]),o.removeListener!==void 0&&this.emit("removeListener",A,h||t)}return this};yt.prototype.off=yt.prototype.removeListener;yt.prototype.removeAllListeners=function(A){var t,i,o;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[A]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[A]),this;if(arguments.length===0){var r=Object.keys(i),f;for(o=0;o=0;o--)this.removeListener(A,t[o]);return this};function B7(e,A,t){var i=e._events;if(i===void 0)return[];var o=i[A];return o===void 0?[]:typeof o=="function"?t?[o.listener||o]:[o]:t?K0A(o):E7(o,o.length)}yt.prototype.listeners=function(A){return B7(this,A,!0)};yt.prototype.rawListeners=function(A){return B7(this,A,!1)};yt.listenerCount=function(e,A){return typeof e.listenerCount=="function"?e.listenerCount(A):d7.call(e,A)};yt.prototype.listenerCount=d7;function d7(e){var A=this._events;if(A!==void 0){var t=A[e];if(typeof t=="function")return 1;if(t!==void 0)return t.length}return 0}yt.prototype.eventNames=function(){return this._eventsCount>0?OE(this._events):[]};function E7(e,A){for(var t=new Array(A),i=0;i0?this.tail.next=b:this.head=b,this.tail=b,++this.length}},{key:"unshift",value:function(R){var b={data:R,next:this.head};this.length===0&&(this.tail=b),this.head=b,++this.length}},{key:"shift",value:function(){if(this.length!==0){var R=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,R}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(R){if(this.length===0)return"";for(var b=this.head,S=""+b.data;b=b.next;)S+=R+b.data;return S}},{key:"concat",value:function(R){if(this.length===0)return p.alloc(0);for(var b=p.allocUnsafe(R>>>0),S=this.head,G=0;S;)D(S.data,b,G),G+=S.data.length,S=S.next;return b}},{key:"consume",value:function(R,b){var S;return RU.length?U.length:R;if(P===U.length?G+=U:G+=U.slice(0,R),R-=P,R===0){P===U.length?(++S,b.next?this.head=b.next:this.head=this.tail=null):(this.head=b,b.data=U.slice(P));break}++S}return this.length-=S,G}},{key:"_getBuffer",value:function(R){var b=p.allocUnsafe(R),S=this.head,G=1;for(S.data.copy(b),R-=S.data.length;S=S.next;){var U=S.data,P=R>U.length?U.length:R;if(U.copy(b,b.length-R,0,P),R-=P,R===0){P===U.length?(++G,S.next?this.head=S.next:this.head=this.tail=null):(this.head=S,S.data=U.slice(P));break}++G}return this.length-=G,b}},{key:w,value:function(R,b){return y(this,A(A({},b),{},{depth:0,customInspect:!1}))}}]),v}(),Tv}var Pv,x4;function y7(){if(x4)return Pv;x4=1;function e(f,h){var d=this,p=this._readableState&&this._readableState.destroyed,C=this._writableState&&this._writableState.destroyed;return p||C?(h?h(f):f&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(o,this,f)):process.nextTick(o,this,f)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(f||null,function(y){!h&&y?d._writableState?d._writableState.errorEmitted?process.nextTick(t,d):(d._writableState.errorEmitted=!0,process.nextTick(A,d,y)):process.nextTick(A,d,y):h?(process.nextTick(t,d),h(y)):process.nextTick(t,d)}),this)}function A(f,h){o(f,h),t(f)}function t(f){f._writableState&&!f._writableState.emitClose||f._readableState&&!f._readableState.emitClose||f.emit("close")}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function o(f,h){f.emit("error",h)}function r(f,h){var d=f._readableState,p=f._writableState;d&&d.autoDestroy||p&&p.autoDestroy?f.destroy(h):f.emit("error",h)}return Pv={destroy:e,undestroy:i,errorOrDestroy:r},Pv}var Ov={},L4;function Xu(){if(L4)return Ov;L4=1;function e(h,d){h.prototype=Object.create(d.prototype),h.prototype.constructor=h,h.__proto__=d}var A={};function t(h,d,p){p||(p=Error);function C(w,D,v){return typeof d=="string"?d:d(w,D,v)}var y=function(w){e(D,w);function D(v,M,R){return w.call(this,C(v,M,R))||this}return D}(p);y.prototype.name=p.name,y.prototype.code=h,A[h]=y}function i(h,d){if(Array.isArray(h)){var p=h.length;return h=h.map(function(C){return String(C)}),p>2?"one of ".concat(d," ").concat(h.slice(0,p-1).join(", "),", or ")+h[p-1]:p===2?"one of ".concat(d," ").concat(h[0]," or ").concat(h[1]):"of ".concat(d," ").concat(h[0])}else return"of ".concat(d," ").concat(String(h))}function o(h,d,p){return h.substr(0,d.length)===d}function r(h,d,p){return(p===void 0||p>h.length)&&(p=h.length),h.substring(p-d.length,p)===d}function f(h,d,p){return typeof p!="number"&&(p=0),p+d.length>h.length?!1:h.indexOf(d,p)!==-1}return t("ERR_INVALID_OPT_VALUE",function(h,d){return'The value "'+d+'" is invalid for option "'+h+'"'},TypeError),t("ERR_INVALID_ARG_TYPE",function(h,d,p){var C;typeof d=="string"&&o(d,"not ")?(C="must not be",d=d.replace(/^not /,"")):C="must be";var y;if(r(h," argument"))y="The ".concat(h," ").concat(C," ").concat(i(d,"type"));else{var w=f(h,".")?"property":"argument";y='The "'.concat(h,'" ').concat(w," ").concat(C," ").concat(i(d,"type"))}return y+=". Received type ".concat(typeof p),y},TypeError),t("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),t("ERR_METHOD_NOT_IMPLEMENTED",function(h){return"The "+h+" method is not implemented"}),t("ERR_STREAM_PREMATURE_CLOSE","Premature close"),t("ERR_STREAM_DESTROYED",function(h){return"Cannot call "+h+" after a stream was destroyed"}),t("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),t("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),t("ERR_STREAM_WRITE_AFTER_END","write after end"),t("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),t("ERR_UNKNOWN_ENCODING",function(h){return"Unknown encoding: "+h},TypeError),t("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Ov.codes=A,Ov}var jv,U4;function w7(){if(U4)return jv;U4=1;var e=Xu().codes.ERR_INVALID_OPT_VALUE;function A(i,o,r){return i.highWaterMark!=null?i.highWaterMark:o?i[r]:null}function t(i,o,r,f){var h=A(o,f,r);if(h!=null){if(!(isFinite(h)&&Math.floor(h)===h)||h<0){var d=f?r:"highWaterMark";throw new e(d,h)}return Math.floor(h)}return i.objectMode?16:16*1024}return jv={getHighWaterMark:t},jv}var Wv,_4;function D7(){if(_4)return Wv;_4=1,Wv=e;function e(t,i){if(A("noDeprecation"))return t;var o=!1;function r(){if(!o){if(A("throwDeprecation"))throw new Error(i);A("traceDeprecation")?console.trace(i):console.warn(i),o=!0}return t.apply(this,arguments)}return r}function A(t){try{if(!globalThis.localStorage)return!1}catch{return!1}var i=globalThis.localStorage[t];return i==null?!1:String(i).toLowerCase()==="true"}return Wv}var Vv,q4;function m7(){if(q4)return Vv;q4=1,Vv=J;function e(H){var K=this;this.next=null,this.entry=null,this.finish=function(){O(K,H)}}var A;J.WritableState=z;var t={deprecate:D7()},i=p7(),o=Co.Buffer,r=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function f(H){return o.from(H)}function h(H){return o.isBuffer(H)||H instanceof r}var d=y7(),p=w7(),C=p.getHighWaterMark,y=Xu().codes,w=y.ERR_INVALID_ARG_TYPE,D=y.ERR_METHOD_NOT_IMPLEMENTED,v=y.ERR_MULTIPLE_CALLBACK,M=y.ERR_STREAM_CANNOT_PIPE,R=y.ERR_STREAM_DESTROYED,b=y.ERR_STREAM_NULL_VALUES,S=y.ERR_STREAM_WRITE_AFTER_END,G=y.ERR_UNKNOWN_ENCODING,U=d.errorOrDestroy;Ue(J,i);function P(){}function z(H,K,Y){A=A||ru(),H=H||{},typeof Y!="boolean"&&(Y=K instanceof A),this.objectMode=!!H.objectMode,Y&&(this.objectMode=this.objectMode||!!H.writableObjectMode),this.highWaterMark=C(this,H,"writableHighWaterMark",Y),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var W=H.decodeStrings===!1;this.decodeStrings=!W,this.defaultEncoding=H.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function($){c(K,$)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=H.emitClose!==!1,this.autoDestroy=!!H.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}z.prototype.getBuffer=function(){for(var K=this.bufferedRequest,Y=[];K;)Y.push(K),K=K.next;return Y},function(){try{Object.defineProperty(z.prototype,"buffer",{get:t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var oA;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(oA=Function.prototype[Symbol.hasInstance],Object.defineProperty(J,Symbol.hasInstance,{value:function(K){return oA.call(this,K)?!0:this!==J?!1:K&&K._writableState instanceof z}})):oA=function(K){return K instanceof this};function J(H){A=A||ru();var K=this instanceof A;if(!K&&!oA.call(J,this))return new J(H);this._writableState=new z(H,this,K),this.writable=!0,H&&(typeof H.write=="function"&&(this._write=H.write),typeof H.writev=="function"&&(this._writev=H.writev),typeof H.destroy=="function"&&(this._destroy=H.destroy),typeof H.final=="function"&&(this._final=H.final)),i.call(this)}J.prototype.pipe=function(){U(this,new M)};function q(H,K){var Y=new S;U(H,Y),process.nextTick(K,Y)}function X(H,K,Y,W){var $;return Y===null?$=new b:typeof Y!="string"&&!K.objectMode&&($=new w("chunk",["string","Buffer"],Y)),$?(U(H,$),process.nextTick(W,$),!1):!0}J.prototype.write=function(H,K,Y){var W=this._writableState,$=!1,V=!W.objectMode&&h(H);return V&&!o.isBuffer(H)&&(H=f(H)),typeof K=="function"&&(Y=K,K=null),V?K="buffer":K||(K=W.defaultEncoding),typeof Y!="function"&&(Y=P),W.ending?q(this,Y):(V||X(this,W,H,Y))&&(W.pendingcb++,$=n(this,W,V,H,K,Y)),$},J.prototype.cork=function(){this._writableState.corked++},J.prototype.uncork=function(){var H=this._writableState;H.corked&&(H.corked--,!H.writing&&!H.corked&&!H.bufferProcessing&&H.bufferedRequest&&u(this,H))},J.prototype.setDefaultEncoding=function(K){if(typeof K=="string"&&(K=K.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((K+"").toLowerCase())>-1))throw new G(K);return this._writableState.defaultEncoding=K,this},Object.defineProperty(J.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Q(H,K,Y){return!H.objectMode&&H.decodeStrings!==!1&&typeof K=="string"&&(K=o.from(K,Y)),K}Object.defineProperty(J.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function n(H,K,Y,W,$,V){if(!Y){var _=Q(K,W,$);W!==_&&(Y=!0,$="buffer",W=_)}var j=K.objectMode?1:W.length;K.length+=j;var sA=K.length>5===6?2:b>>4===14?3:b>>3===30?4:b>>6===2?-1:-2}function f(b,S,G){var U=S.length-1;if(U=0?(P>0&&(b.lastNeed=P-1),P):--U=0?(P>0&&(b.lastNeed=P-2),P):--U=0?(P>0&&(P===2?P=0:b.lastNeed=P-3),P):0))}function h(b,S,G){if((S[0]&192)!==128)return b.lastNeed=0,"�";if(b.lastNeed>1&&S.length>1){if((S[1]&192)!==128)return b.lastNeed=1,"�";if(b.lastNeed>2&&S.length>2&&(S[2]&192)!==128)return b.lastNeed=2,"�"}}function d(b){var S=this.lastTotal-this.lastNeed,G=h(this,b);if(G!==void 0)return G;if(this.lastNeed<=b.length)return b.copy(this.lastChar,S,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);b.copy(this.lastChar,S,0,b.length),this.lastNeed-=b.length}function p(b,S){var G=f(this,b,S);if(!this.lastNeed)return b.toString("utf8",S);this.lastTotal=G;var U=b.length-(G-this.lastNeed);return b.copy(this.lastChar,0,U),b.toString("utf8",S,U)}function C(b){var S=b&&b.length?this.write(b):"";return this.lastNeed?S+"�":S}function y(b,S){if((b.length-S)%2===0){var G=b.toString("utf16le",S);if(G){var U=G.charCodeAt(G.length-1);if(U>=55296&&U<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=b[b.length-2],this.lastChar[1]=b[b.length-1],G.slice(0,-1)}return G}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=b[b.length-1],b.toString("utf16le",S,b.length-1)}function w(b){var S=b&&b.length?this.write(b):"";if(this.lastNeed){var G=this.lastTotal-this.lastNeed;return S+this.lastChar.toString("utf16le",0,G)}return S}function D(b,S){var G=(b.length-S)%3;return G===0?b.toString("base64",S):(this.lastNeed=3-G,this.lastTotal=3,G===1?this.lastChar[0]=b[b.length-1]:(this.lastChar[0]=b[b.length-2],this.lastChar[1]=b[b.length-1]),b.toString("base64",S,b.length-G))}function v(b){var S=b&&b.length?this.write(b):"";return this.lastNeed?S+this.lastChar.toString("base64",0,3-this.lastNeed):S}function M(b){return b.toString(this.encoding)}function R(b){return b&&b.length?this.write(b):""}return zv}var $v,T4;function pR(){if(T4)return $v;T4=1;var e=Xu().codes.ERR_STREAM_PREMATURE_CLOSE;function A(r){var f=!1;return function(){if(!f){f=!0;for(var h=arguments.length,d=new Array(h),p=0;p0)if(typeof _!="string"&&!aA.objectMode&&Object.getPrototypeOf(_)!==i.prototype&&(_=r(_)),sA)aA.endEmitted?P(V,new b):Q(V,aA,_,!0);else if(aA.ended)P(V,new M);else{if(aA.destroyed)return!1;aA.reading=!1,aA.decoder&&!j?(_=aA.decoder.write(_),aA.objectMode||_.length!==0?Q(V,aA,_,!1):u(V,aA)):Q(V,aA,_,!1)}else sA||(aA.reading=!1,u(V,aA))}return!aA.ended&&(aA.length=a?V=a:(V--,V|=V>>>1,V|=V>>>2,V|=V>>>4,V|=V>>>8,V|=V>>>16,V++),V}function I(V,_){return V<=0||_.length===0&&_.ended?0:_.objectMode?1:V!==V?_.flowing&&_.length?_.buffer.head.data.length:_.length:(V>_.highWaterMark&&(_.highWaterMark=g(V)),V<=_.length?V:_.ended?_.length:(_.needReadable=!0,0))}q.prototype.read=function(V){d("read",V),V=parseInt(V,10);var _=this._readableState,j=V;if(V!==0&&(_.emittedReadable=!1),V===0&&_.needReadable&&((_.highWaterMark!==0?_.length>=_.highWaterMark:_.length>0)||_.ended))return d("read: emitReadable",_.length,_.ended),_.length===0&&_.ended?Y(this):B(this),null;if(V=I(V,_),V===0&&_.ended)return _.length===0&&Y(this),null;var sA=_.needReadable;d("need readable",sA),(_.length===0||_.length-V<_.highWaterMark)&&(sA=!0,d("length less than watermark",sA)),_.ended||_.reading?(sA=!1,d("reading or ended",sA)):sA&&(d("do read"),_.reading=!0,_.sync=!0,_.length===0&&(_.needReadable=!0),this._read(_.highWaterMark),_.sync=!1,_.reading||(V=I(j,_)));var iA;return V>0?iA=K(V,_):iA=null,iA===null?(_.needReadable=_.length<=_.highWaterMark,V=0):(_.length-=V,_.awaitDrain=0),_.length===0&&(_.ended||(_.needReadable=!0),j!==V&&_.ended&&Y(this)),iA!==null&&this.emit("data",iA),iA};function c(V,_){if(d("onEofChunk"),!_.ended){if(_.decoder){var j=_.decoder.end();j&&j.length&&(_.buffer.push(j),_.length+=_.objectMode?1:j.length)}_.ended=!0,_.sync?B(V):(_.needReadable=!1,_.emittedReadable||(_.emittedReadable=!0,E(V)))}}function B(V){var _=V._readableState;d("emitReadable",_.needReadable,_.emittedReadable),_.needReadable=!1,_.emittedReadable||(d("emitReadable",_.flowing),_.emittedReadable=!0,process.nextTick(E,V))}function E(V){var _=V._readableState;d("emitReadable_",_.destroyed,_.length,_.ended),!_.destroyed&&(_.length||_.ended)&&(V.emit("readable"),_.emittedReadable=!1),_.needReadable=!_.flowing&&!_.ended&&_.length<=_.highWaterMark,H(V)}function u(V,_){_.readingMore||(_.readingMore=!0,process.nextTick(s,V,_))}function s(V,_){for(;!_.reading&&!_.ended&&(_.length<_.highWaterMark||_.flowing&&_.length===0);){var j=_.length;if(d("maybeReadMore read 0"),V.read(0),j===_.length)break}_.readingMore=!1}q.prototype._read=function(V){P(this,new R("_read()"))},q.prototype.pipe=function(V,_){var j=this,sA=this._readableState;switch(sA.pipesCount){case 0:sA.pipes=V;break;case 1:sA.pipes=[sA.pipes,V];break;default:sA.pipes.push(V);break}sA.pipesCount+=1,d("pipe count=%d opts=%j",sA.pipesCount,_);var iA=(!_||_.end!==!1)&&V!==process.stdout&&V!==process.stderr,aA=iA?nA:OA;sA.endEmitted?process.nextTick(aA):j.once("end",aA),V.on("unpipe",lA);function lA(x,k){d("onunpipe"),x===j&&k&&k.hasUnpiped===!1&&(k.hasUnpiped=!0,gA())}function nA(){d("onend"),V.end()}var tA=l(j);V.on("drain",tA);var xA=!1;function gA(){d("cleanup"),V.removeListener("close",rA),V.removeListener("finish",hA),V.removeListener("drain",tA),V.removeListener("error",UA),V.removeListener("unpipe",lA),j.removeListener("end",nA),j.removeListener("end",OA),j.removeListener("data",IA),xA=!0,sA.awaitDrain&&(!V._writableState||V._writableState.needDrain)&&tA()}j.on("data",IA);function IA(x){d("ondata");var k=V.write(x);d("dest.write",k),k===!1&&((sA.pipesCount===1&&sA.pipes===V||sA.pipesCount>1&&$(sA.pipes,V)!==-1)&&!xA&&(d("false write response, pause",sA.awaitDrain),sA.awaitDrain++),j.pause())}function UA(x){d("onerror",x),OA(),V.removeListener("error",UA),A(V,"error")===0&&P(V,x)}oA(V,"error",UA);function rA(){V.removeListener("finish",hA),OA()}V.once("close",rA);function hA(){d("onfinish"),V.removeListener("close",rA),OA()}V.once("finish",hA);function OA(){d("unpipe"),j.unpipe(V)}return V.emit("pipe",j),sA.flowing||(d("pipe resume"),j.resume()),V};function l(V){return function(){var j=V._readableState;d("pipeOnDrain",j.awaitDrain),j.awaitDrain&&j.awaitDrain--,j.awaitDrain===0&&A(V,"data")&&(j.flowing=!0,H(V))}}q.prototype.unpipe=function(V){var _=this._readableState,j={hasUnpiped:!1};if(_.pipesCount===0)return this;if(_.pipesCount===1)return V&&V!==_.pipes?this:(V||(V=_.pipes),_.pipes=null,_.pipesCount=0,_.flowing=!1,V&&V.emit("unpipe",this,j),this);if(!V){var sA=_.pipes,iA=_.pipesCount;_.pipes=null,_.pipesCount=0,_.flowing=!1;for(var aA=0;aA0,sA.flowing!==!1&&this.resume()):V==="readable"&&!sA.endEmitted&&!sA.readableListening&&(sA.readableListening=sA.needReadable=!0,sA.flowing=!1,sA.emittedReadable=!1,d("on readable",sA.length,sA.reading),sA.length?B(this):sA.reading||process.nextTick(N,this)),j},q.prototype.addListener=q.prototype.on,q.prototype.removeListener=function(V,_){var j=t.prototype.removeListener.call(this,V,_);return V==="readable"&&process.nextTick(m,this),j},q.prototype.removeAllListeners=function(V){var _=t.prototype.removeAllListeners.apply(this,arguments);return(V==="readable"||V===void 0)&&process.nextTick(m,this),_};function m(V){var _=V._readableState;_.readableListening=V.listenerCount("readable")>0,_.resumeScheduled&&!_.paused?_.flowing=!0:V.listenerCount("data")>0&&V.resume()}function N(V){d("readable nexttick read 0"),V.read(0)}q.prototype.resume=function(){var V=this._readableState;return V.flowing||(d("resume"),V.flowing=!V.readableListening,L(this,V)),V.paused=!1,this};function L(V,_){_.resumeScheduled||(_.resumeScheduled=!0,process.nextTick(O,V,_))}function O(V,_){d("resume",_.reading),_.reading||V.read(0),_.resumeScheduled=!1,V.emit("resume"),H(V),_.flowing&&!_.reading&&V.read(0)}q.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function H(V){var _=V._readableState;for(d("flow",_.flowing);_.flowing&&V.read()!==null;);}q.prototype.wrap=function(V){var _=this,j=this._readableState,sA=!1;V.on("end",function(){if(d("wrapped end"),j.decoder&&!j.ended){var lA=j.decoder.end();lA&&lA.length&&_.push(lA)}_.push(null)}),V.on("data",function(lA){if(d("wrapped data"),j.decoder&&(lA=j.decoder.write(lA)),!(j.objectMode&&lA==null)&&!(!j.objectMode&&(!lA||!lA.length))){var nA=_.push(lA);nA||(sA=!0,V.pause())}});for(var iA in V)this[iA]===void 0&&typeof V[iA]=="function"&&(this[iA]=function(nA){return function(){return V[nA].apply(V,arguments)}}(iA));for(var aA=0;aA=_.length?(_.decoder?j=_.buffer.join(""):_.buffer.length===1?j=_.buffer.first():j=_.buffer.concat(_.length),_.buffer.clear()):j=_.buffer.consume(V,_.decoder),j}function Y(V){var _=V._readableState;d("endReadable",_.endEmitted),_.endEmitted||(_.ended=!0,process.nextTick(W,_,V))}function W(V,_){if(d("endReadableNT",V.endEmitted,V.length),!V.endEmitted&&V.length===0&&(V.endEmitted=!0,_.readable=!1,_.emit("end"),V.autoDestroy)){var j=_._writableState;(!j||j.autoDestroy&&j.finished)&&_.destroy()}}typeof Symbol=="function"&&(q.from=function(V,_){return U===void 0&&(U=_0A()),U(q,V,_)});function $(V,_){for(var j=0,sA=V.length;j0;return h(S,U,P,function(z){R||(R=z),z&&b.forEach(d),!U&&(b.forEach(d),M(R))})});return D.reduce(p)}return r1=y,r1}var n1,z4;function b7(){if(z4)return n1;z4=1,n1=t;var e=dB.EventEmitter,A=Ue;A(t,e),t.Readable=v7(),t.Writable=m7(),t.Duplex=ru(),t.Transform=M7(),t.PassThrough=q0A(),t.finished=pR(),t.pipeline=H0A(),t.Stream=t;function t(){e.call(this)}return t.prototype.pipe=function(i,o){var r=this;function f(D){i.writable&&i.write(D)===!1&&r.pause&&r.pause()}r.on("data",f);function h(){r.readable&&r.resume&&r.resume()}i.on("drain",h),!i._isStdio&&(!o||o.end!==!1)&&(r.on("end",p),r.on("close",C));var d=!1;function p(){d||(d=!0,i.end())}function C(){d||(d=!0,typeof i.destroy=="function"&&i.destroy())}function y(D){if(w(),e.listenerCount(this,"error")===0)throw D}r.on("error",y),i.on("error",y);function w(){r.removeListener("data",f),i.removeListener("drain",h),r.removeListener("end",p),r.removeListener("close",C),r.removeListener("error",y),i.removeListener("error",y),r.removeListener("end",w),r.removeListener("close",w),i.removeListener("close",w)}return r.on("end",w),r.on("close",w),i.on("close",w),i.emit("pipe",r),i},n1}var o1,$4;function S7(){if($4)return o1;$4=1;var e=Ve().Buffer,A=b7().Transform,t=Ue;function i(h){A.call(this),this._block=e.allocUnsafe(h),this._blockSize=h,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}t(i,A),i.prototype._transform=function(h,d,p){var C=null;try{this.update(h,d)}catch(y){C=y}p(C)},i.prototype._flush=function(h){var d=null;try{this.push(this.digest())}catch(p){d=p}h(d)};var o=typeof Uint8Array<"u",r=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&ArrayBuffer.isView&&(e.prototype instanceof Uint8Array||e.TYPED_ARRAY_SUPPORT);function f(h,d){if(h instanceof e)return h;if(typeof h=="string")return e.from(h,d);if(r&&ArrayBuffer.isView(h)){if(h.byteLength===0)return e.alloc(0);var p=e.from(h.buffer,h.byteOffset,h.byteLength);if(p.byteLength===h.byteLength)return p}if(o&&h instanceof Uint8Array||e.isBuffer(h)&&h.constructor&&typeof h.constructor.isBuffer=="function"&&h.constructor.isBuffer(h))return e.from(h);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}return i.prototype.update=function(h,d){if(this._finalized)throw new Error("Digest already called");h=f(h,d);for(var p=this._block,C=0;this._blockOffset+h.length-C>=this._blockSize;){for(var y=this._blockOffset;y0;++w)this._length[w]+=D,D=this._length[w]/4294967296|0,D>0&&(this._length[w]-=4294967296*D);return this},i.prototype._update=function(){throw new Error("_update is not implemented")},i.prototype.digest=function(h){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var d=this._digest();h!==void 0&&(d=d.toString(h)),this._block.fill(0),this._blockOffset=0;for(var p=0;p<4;++p)this._length[p]=0;return d},i.prototype._digest=function(){throw new Error("_digest is not implemented")},o1=i,o1}var s1,X4;function yR(){if(X4)return s1;X4=1;var e=Ue,A=S7(),t=Ve().Buffer,i=new Array(16);function o(){A.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}e(o,A),o.prototype._update=function(){for(var C=i,y=0;y<16;++y)C[y]=this._block.readInt32LE(y*4);var w=this._a,D=this._b,v=this._c,M=this._d;w=f(w,D,v,M,C[0],3614090360,7),M=f(M,w,D,v,C[1],3905402710,12),v=f(v,M,w,D,C[2],606105819,17),D=f(D,v,M,w,C[3],3250441966,22),w=f(w,D,v,M,C[4],4118548399,7),M=f(M,w,D,v,C[5],1200080426,12),v=f(v,M,w,D,C[6],2821735955,17),D=f(D,v,M,w,C[7],4249261313,22),w=f(w,D,v,M,C[8],1770035416,7),M=f(M,w,D,v,C[9],2336552879,12),v=f(v,M,w,D,C[10],4294925233,17),D=f(D,v,M,w,C[11],2304563134,22),w=f(w,D,v,M,C[12],1804603682,7),M=f(M,w,D,v,C[13],4254626195,12),v=f(v,M,w,D,C[14],2792965006,17),D=f(D,v,M,w,C[15],1236535329,22),w=h(w,D,v,M,C[1],4129170786,5),M=h(M,w,D,v,C[6],3225465664,9),v=h(v,M,w,D,C[11],643717713,14),D=h(D,v,M,w,C[0],3921069994,20),w=h(w,D,v,M,C[5],3593408605,5),M=h(M,w,D,v,C[10],38016083,9),v=h(v,M,w,D,C[15],3634488961,14),D=h(D,v,M,w,C[4],3889429448,20),w=h(w,D,v,M,C[9],568446438,5),M=h(M,w,D,v,C[14],3275163606,9),v=h(v,M,w,D,C[3],4107603335,14),D=h(D,v,M,w,C[8],1163531501,20),w=h(w,D,v,M,C[13],2850285829,5),M=h(M,w,D,v,C[2],4243563512,9),v=h(v,M,w,D,C[7],1735328473,14),D=h(D,v,M,w,C[12],2368359562,20),w=d(w,D,v,M,C[5],4294588738,4),M=d(M,w,D,v,C[8],2272392833,11),v=d(v,M,w,D,C[11],1839030562,16),D=d(D,v,M,w,C[14],4259657740,23),w=d(w,D,v,M,C[1],2763975236,4),M=d(M,w,D,v,C[4],1272893353,11),v=d(v,M,w,D,C[7],4139469664,16),D=d(D,v,M,w,C[10],3200236656,23),w=d(w,D,v,M,C[13],681279174,4),M=d(M,w,D,v,C[0],3936430074,11),v=d(v,M,w,D,C[3],3572445317,16),D=d(D,v,M,w,C[6],76029189,23),w=d(w,D,v,M,C[9],3654602809,4),M=d(M,w,D,v,C[12],3873151461,11),v=d(v,M,w,D,C[15],530742520,16),D=d(D,v,M,w,C[2],3299628645,23),w=p(w,D,v,M,C[0],4096336452,6),M=p(M,w,D,v,C[7],1126891415,10),v=p(v,M,w,D,C[14],2878612391,15),D=p(D,v,M,w,C[5],4237533241,21),w=p(w,D,v,M,C[12],1700485571,6),M=p(M,w,D,v,C[3],2399980690,10),v=p(v,M,w,D,C[10],4293915773,15),D=p(D,v,M,w,C[1],2240044497,21),w=p(w,D,v,M,C[8],1873313359,6),M=p(M,w,D,v,C[15],4264355552,10),v=p(v,M,w,D,C[6],2734768916,15),D=p(D,v,M,w,C[13],1309151649,21),w=p(w,D,v,M,C[4],4149444226,6),M=p(M,w,D,v,C[11],3174756917,10),v=p(v,M,w,D,C[2],718787259,15),D=p(D,v,M,w,C[9],3951481745,21),this._a=this._a+w|0,this._b=this._b+D|0,this._c=this._c+v|0,this._d=this._d+M|0},o.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var C=t.allocUnsafe(16);return C.writeInt32LE(this._a,0),C.writeInt32LE(this._b,4),C.writeInt32LE(this._c,8),C.writeInt32LE(this._d,12),C};function r(C,y){return C<>>32-y}function f(C,y,w,D,v,M,R){return r(C+(y&w|~y&D)+v+M|0,R)+y|0}function h(C,y,w,D,v,M,R){return r(C+(y&D|w&~D)+v+M|0,R)+y|0}function d(C,y,w,D,v,M,R){return r(C+(y^w^D)+v+M|0,R)+y|0}function p(C,y,w,D,v,M,R){return r(C+(w^(y|~D))+v+M|0,R)+y|0}return s1=o,s1}var a1,AL;function wR(){if(AL)return a1;AL=1;var e=Co.Buffer,A=Ue,t=S7(),i=new Array(16),o=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],r=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],f=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],h=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],d=[0,1518500249,1859775393,2400959708,2840853838],p=[1352829926,1548603684,1836072691,2053994217,0];function C(){t.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}A(C,t),C.prototype._update=function(){for(var b=i,S=0;S<16;++S)b[S]=this._block.readInt32LE(S*4);for(var G=this._a|0,U=this._b|0,P=this._c|0,z=this._d|0,oA=this._e|0,J=this._a|0,q=this._b|0,X=this._c|0,Q=this._d|0,n=this._e|0,a=0;a<80;a+=1){var g,I;a<16?(g=w(G,U,P,z,oA,b[o[a]],d[0],f[a]),I=R(J,q,X,Q,n,b[r[a]],p[0],h[a])):a<32?(g=D(G,U,P,z,oA,b[o[a]],d[1],f[a]),I=M(J,q,X,Q,n,b[r[a]],p[1],h[a])):a<48?(g=v(G,U,P,z,oA,b[o[a]],d[2],f[a]),I=v(J,q,X,Q,n,b[r[a]],p[2],h[a])):a<64?(g=M(G,U,P,z,oA,b[o[a]],d[3],f[a]),I=D(J,q,X,Q,n,b[r[a]],p[3],h[a])):(g=R(G,U,P,z,oA,b[o[a]],d[4],f[a]),I=w(J,q,X,Q,n,b[r[a]],p[4],h[a])),G=oA,oA=z,z=y(P,10),P=U,U=g,J=n,n=Q,Q=y(X,10),X=q,q=I}var c=this._b+P+Q|0;this._b=this._c+z+n|0,this._c=this._d+oA+J|0,this._d=this._e+G+q|0,this._e=this._a+U+X|0,this._a=c},C.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var b=e.alloc?e.alloc(20):new e(20);return b.writeInt32LE(this._a,0),b.writeInt32LE(this._b,4),b.writeInt32LE(this._c,8),b.writeInt32LE(this._d,12),b.writeInt32LE(this._e,16),b};function y(b,S){return b<>>32-S}function w(b,S,G,U,P,z,oA,J){return y(b+(S^G^U)+z+oA|0,J)+P|0}function D(b,S,G,U,P,z,oA,J){return y(b+(S&G|~S&U)+z+oA|0,J)+P|0}function v(b,S,G,U,P,z,oA,J){return y(b+((S|~G)^U)+z+oA|0,J)+P|0}function M(b,S,G,U,P,z,oA,J){return y(b+(S&U|G&~U)+z+oA|0,J)+P|0}function R(b,S,G,U,P,z,oA,J){return y(b+(S^(G|~U))+z+oA|0,J)+P|0}return a1=C,a1}var g1={exports:{}},I1,eL;function Al(){if(eL)return I1;eL=1;var e=Ve().Buffer;function A(t,i){this._block=e.alloc(t),this._finalSize=i,this._blockSize=t,this._len=0}return A.prototype.update=function(t,i){typeof t=="string"&&(i=i||"utf8",t=e.from(t,i));for(var o=this._block,r=this._blockSize,f=t.length,h=this._len,d=0;d=this._finalSize&&(this._update(this._block),this._block.fill(0));var o=this._len*8;if(o<=4294967295)this._block.writeUInt32BE(o,this._blockSize-4);else{var r=(o&4294967295)>>>0,f=(o-r)/4294967296;this._block.writeUInt32BE(f,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var h=this._hash();return t?h.toString(t):h},A.prototype._update=function(){throw new Error("_update must be implemented by subclass")},I1=A,I1}var f1,tL;function Y0A(){if(tL)return f1;tL=1;var e=Ue,A=Al(),t=Ve().Buffer,i=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function r(){this.init(),this._w=o,A.call(this,64,56)}e(r,A),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function f(p){return p<<5|p>>>27}function h(p){return p<<30|p>>>2}function d(p,C,y,w){return p===0?C&y|~C&w:p===2?C&y|C&w|y&w:C^y^w}return r.prototype._update=function(p){for(var C=this._w,y=this._a|0,w=this._b|0,D=this._c|0,v=this._d|0,M=this._e|0,R=0;R<16;++R)C[R]=p.readInt32BE(R*4);for(;R<80;++R)C[R]=C[R-3]^C[R-8]^C[R-14]^C[R-16];for(var b=0;b<80;++b){var S=~~(b/20),G=f(y)+d(S,w,D,v)+M+C[b]+i[S]|0;M=v,v=D,D=h(w),w=y,y=G}this._a=y+this._a|0,this._b=w+this._b|0,this._c=D+this._c|0,this._d=v+this._d|0,this._e=M+this._e|0},r.prototype._hash=function(){var p=t.allocUnsafe(20);return p.writeInt32BE(this._a|0,0),p.writeInt32BE(this._b|0,4),p.writeInt32BE(this._c|0,8),p.writeInt32BE(this._d|0,12),p.writeInt32BE(this._e|0,16),p},f1=r,f1}var h1,iL;function J0A(){if(iL)return h1;iL=1;var e=Ue,A=Al(),t=Ve().Buffer,i=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function r(){this.init(),this._w=o,A.call(this,64,56)}e(r,A),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function f(C){return C<<1|C>>>31}function h(C){return C<<5|C>>>27}function d(C){return C<<30|C>>>2}function p(C,y,w,D){return C===0?y&w|~y&D:C===2?y&w|y&D|w&D:y^w^D}return r.prototype._update=function(C){for(var y=this._w,w=this._a|0,D=this._b|0,v=this._c|0,M=this._d|0,R=this._e|0,b=0;b<16;++b)y[b]=C.readInt32BE(b*4);for(;b<80;++b)y[b]=f(y[b-3]^y[b-8]^y[b-14]^y[b-16]);for(var S=0;S<80;++S){var G=~~(S/20),U=h(w)+p(G,D,v,M)+R+y[S]+i[G]|0;R=M,M=v,v=d(D),D=w,w=U}this._a=w+this._a|0,this._b=D+this._b|0,this._c=v+this._c|0,this._d=M+this._d|0,this._e=R+this._e|0},r.prototype._hash=function(){var C=t.allocUnsafe(20);return C.writeInt32BE(this._a|0,0),C.writeInt32BE(this._b|0,4),C.writeInt32BE(this._c|0,8),C.writeInt32BE(this._d|0,12),C.writeInt32BE(this._e|0,16),C},h1=r,h1}var c1,rL;function N7(){if(rL)return c1;rL=1;var e=Ue,A=Al(),t=Ve().Buffer,i=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],o=new Array(64);function r(){this.init(),this._w=o,A.call(this,64,56)}e(r,A),r.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function f(w,D,v){return v^w&(D^v)}function h(w,D,v){return w&D|v&(w|D)}function d(w){return(w>>>2|w<<30)^(w>>>13|w<<19)^(w>>>22|w<<10)}function p(w){return(w>>>6|w<<26)^(w>>>11|w<<21)^(w>>>25|w<<7)}function C(w){return(w>>>7|w<<25)^(w>>>18|w<<14)^w>>>3}function y(w){return(w>>>17|w<<15)^(w>>>19|w<<13)^w>>>10}return r.prototype._update=function(w){for(var D=this._w,v=this._a|0,M=this._b|0,R=this._c|0,b=this._d|0,S=this._e|0,G=this._f|0,U=this._g|0,P=this._h|0,z=0;z<16;++z)D[z]=w.readInt32BE(z*4);for(;z<64;++z)D[z]=y(D[z-2])+D[z-7]+C(D[z-15])+D[z-16]|0;for(var oA=0;oA<64;++oA){var J=P+p(S)+f(S,G,U)+i[oA]+D[oA]|0,q=d(v)+h(v,M,R)|0;P=U,U=G,G=S,S=b+J|0,b=R,R=M,M=v,v=J+q|0}this._a=v+this._a|0,this._b=M+this._b|0,this._c=R+this._c|0,this._d=b+this._d|0,this._e=S+this._e|0,this._f=G+this._f|0,this._g=U+this._g|0,this._h=P+this._h|0},r.prototype._hash=function(){var w=t.allocUnsafe(32);return w.writeInt32BE(this._a,0),w.writeInt32BE(this._b,4),w.writeInt32BE(this._c,8),w.writeInt32BE(this._d,12),w.writeInt32BE(this._e,16),w.writeInt32BE(this._f,20),w.writeInt32BE(this._g,24),w.writeInt32BE(this._h,28),w},c1=r,c1}var u1,nL;function T0A(){if(nL)return u1;nL=1;var e=Ue,A=N7(),t=Al(),i=Ve().Buffer,o=new Array(64);function r(){this.init(),this._w=o,t.call(this,64,56)}return e(r,A),r.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},r.prototype._hash=function(){var f=i.allocUnsafe(28);return f.writeInt32BE(this._a,0),f.writeInt32BE(this._b,4),f.writeInt32BE(this._c,8),f.writeInt32BE(this._d,12),f.writeInt32BE(this._e,16),f.writeInt32BE(this._f,20),f.writeInt32BE(this._g,24),f},u1=r,u1}var l1,oL;function k7(){if(oL)return l1;oL=1;var e=Ue,A=Al(),t=Ve().Buffer,i=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],o=new Array(160);function r(){this.init(),this._w=o,A.call(this,128,112)}e(r,A),r.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function f(M,R,b){return b^M&(R^b)}function h(M,R,b){return M&R|b&(M|R)}function d(M,R){return(M>>>28|R<<4)^(R>>>2|M<<30)^(R>>>7|M<<25)}function p(M,R){return(M>>>14|R<<18)^(M>>>18|R<<14)^(R>>>9|M<<23)}function C(M,R){return(M>>>1|R<<31)^(M>>>8|R<<24)^M>>>7}function y(M,R){return(M>>>1|R<<31)^(M>>>8|R<<24)^(M>>>7|R<<25)}function w(M,R){return(M>>>19|R<<13)^(R>>>29|M<<3)^M>>>6}function D(M,R){return(M>>>19|R<<13)^(R>>>29|M<<3)^(M>>>6|R<<26)}function v(M,R){return M>>>0>>0?1:0}return r.prototype._update=function(M){for(var R=this._w,b=this._ah|0,S=this._bh|0,G=this._ch|0,U=this._dh|0,P=this._eh|0,z=this._fh|0,oA=this._gh|0,J=this._hh|0,q=this._al|0,X=this._bl|0,Q=this._cl|0,n=this._dl|0,a=this._el|0,g=this._fl|0,I=this._gl|0,c=this._hl|0,B=0;B<32;B+=2)R[B]=M.readInt32BE(B*4),R[B+1]=M.readInt32BE(B*4+4);for(;B<160;B+=2){var E=R[B-30],u=R[B-15*2+1],s=C(E,u),l=y(u,E);E=R[B-2*2],u=R[B-2*2+1];var m=w(E,u),N=D(u,E),L=R[B-7*2],O=R[B-7*2+1],H=R[B-16*2],K=R[B-16*2+1],Y=l+O|0,W=s+L+v(Y,l)|0;Y=Y+N|0,W=W+m+v(Y,N)|0,Y=Y+K|0,W=W+H+v(Y,K)|0,R[B]=W,R[B+1]=Y}for(var $=0;$<160;$+=2){W=R[$],Y=R[$+1];var V=h(b,S,G),_=h(q,X,Q),j=d(b,q),sA=d(q,b),iA=p(P,a),aA=p(a,P),lA=i[$],nA=i[$+1],tA=f(P,z,oA),xA=f(a,g,I),gA=c+aA|0,IA=J+iA+v(gA,c)|0;gA=gA+xA|0,IA=IA+tA+v(gA,xA)|0,gA=gA+nA|0,IA=IA+lA+v(gA,nA)|0,gA=gA+Y|0,IA=IA+W+v(gA,Y)|0;var UA=sA+_|0,rA=j+V+v(UA,sA)|0;J=oA,c=I,oA=z,I=g,z=P,g=a,a=n+gA|0,P=U+IA+v(a,n)|0,U=G,n=Q,G=S,Q=X,S=b,X=q,q=gA+UA|0,b=IA+rA+v(q,gA)|0}this._al=this._al+q|0,this._bl=this._bl+X|0,this._cl=this._cl+Q|0,this._dl=this._dl+n|0,this._el=this._el+a|0,this._fl=this._fl+g|0,this._gl=this._gl+I|0,this._hl=this._hl+c|0,this._ah=this._ah+b+v(this._al,q)|0,this._bh=this._bh+S+v(this._bl,X)|0,this._ch=this._ch+G+v(this._cl,Q)|0,this._dh=this._dh+U+v(this._dl,n)|0,this._eh=this._eh+P+v(this._el,a)|0,this._fh=this._fh+z+v(this._fl,g)|0,this._gh=this._gh+oA+v(this._gl,I)|0,this._hh=this._hh+J+v(this._hl,c)|0},r.prototype._hash=function(){var M=t.allocUnsafe(64);function R(b,S,G){M.writeInt32BE(b,G),M.writeInt32BE(S,G+4)}return R(this._ah,this._al,0),R(this._bh,this._bl,8),R(this._ch,this._cl,16),R(this._dh,this._dl,24),R(this._eh,this._el,32),R(this._fh,this._fl,40),R(this._gh,this._gl,48),R(this._hh,this._hl,56),M},l1=r,l1}var C1,sL;function P0A(){if(sL)return C1;sL=1;var e=Ue,A=k7(),t=Al(),i=Ve().Buffer,o=new Array(160);function r(){this.init(),this._w=o,t.call(this,128,112)}return e(r,A),r.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},r.prototype._hash=function(){var f=i.allocUnsafe(48);function h(d,p,C){f.writeInt32BE(d,C),f.writeInt32BE(p,C+4)}return h(this._ah,this._al,0),h(this._bh,this._bl,8),h(this._ch,this._cl,16),h(this._dh,this._dl,24),h(this._eh,this._el,32),h(this._fh,this._fl,40),f},C1=r,C1}var aL;function DR(){if(aL)return g1.exports;aL=1;var e=g1.exports=function(t){t=t.toLowerCase();var i=e[t];if(!i)throw new Error(t+" is not supported (we accept pull requests)");return new i};return e.sha=Y0A(),e.sha1=J0A(),e.sha224=T0A(),e.sha256=N7(),e.sha384=P0A(),e.sha512=k7(),g1.exports}var B1,gL;function hI(){if(gL)return B1;gL=1;var e=Ve().Buffer,A=b7().Transform,t=hC().StringDecoder,i=Ue;function o(h){A.call(this),this.hashMode=typeof h=="string",this.hashMode?this[h]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}i(o,A);var r=typeof Uint8Array<"u",f=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&ArrayBuffer.isView&&(e.prototype instanceof Uint8Array||e.TYPED_ARRAY_SUPPORT);return o.prototype.update=function(h,d,p){var C;if(h instanceof e)C=h;else if(typeof h=="string")C=e.from(h,d);else if(f&&ArrayBuffer.isView(h))C=e.from(h.buffer,h.byteOffset,h.byteLength);else if(r&&h instanceof Uint8Array)C=e.from(h);else if(e.isBuffer(h)&&h.constructor&&h.constructor.isBuffer&&h.constructor.isBuffer(h))C=e.from(h);else throw new Error('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');var y=this._update(C);return this.hashMode?this:(p&&(y=this._toString(y,p)),y)},o.prototype.setAutoPadding=function(){},o.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},o.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},o.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},o.prototype._transform=function(h,d,p){var C;try{this.hashMode?this._update(h):this.push(this._update(h))}catch(y){C=y}finally{p(C)}},o.prototype._flush=function(h){var d;try{this.push(this.__final())}catch(p){d=p}h(d)},o.prototype._finalOrDigest=function(h){var d=this.__final()||e.alloc(0);return h&&(d=this._toString(d,h,!0)),d},o.prototype._toString=function(h,d,p){if(this._decoder||(this._decoder=new t(d),this._encoding=d),this._encoding!==d)throw new Error("can’t switch encodings");var C=this._decoder.write(h);return p&&(C+=this._decoder.end()),C},B1=o,B1}var d1,IL;function EB(){if(IL)return d1;IL=1;var e=Ue,A=yR(),t=wR(),i=DR(),o=hI();function r(f){o.call(this,"digest"),this._hash=f}return e(r,o),r.prototype._update=function(f){this._hash.update(f)},r.prototype._final=function(){return this._hash.digest()},d1=function(h){return h=h.toLowerCase(),h==="md5"?new A:h==="rmd160"||h==="ripemd160"?new t:new r(i(h))},d1}var E1,fL;function O0A(){if(fL)return E1;fL=1;var e=Ue,A=Ve().Buffer,t=hI(),i=A.alloc(128),o=64;function r(f,h){t.call(this,"digest"),typeof h=="string"&&(h=A.from(h)),this._alg=f,this._key=h,h.length>o?h=f(h):h.lengthy){var w=p==="rmd160"?new r:f(p);C=w.update(C).digest()}else C.lengthe||t!==t)throw new TypeError("Bad key length")},w1}var D1,CL;function x7(){if(CL)return D1;CL=1;var e;if(globalThis.process&&globalThis.process.browser)e="utf-8";else if(globalThis.process&&globalThis.process.version){var A=parseInt(process.version.split(".")[0].slice(1),10);e=A>=6?"utf-8":"binary"}else e="utf-8";return D1=e,D1}var m1,BL;function L7(){if(BL)return m1;BL=1;var e=Ve().Buffer;return m1=function(A,t,i){if(e.isBuffer(A))return A;if(typeof A=="string")return e.from(A,t);if(ArrayBuffer.isView(A))return e.from(A.buffer);throw new TypeError(i+" must be a string, a Buffer, a typed array or a DataView")},m1}var v1,dL;function U7(){if(dL)return v1;dL=1;var e=R7(),A=wR(),t=DR(),i=Ve().Buffer,o=F7(),r=x7(),f=L7(),h=i.alloc(128),d={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function p(w,D,v){var M=C(w),R=w==="sha512"||w==="sha384"?128:64;D.length>R?D=M(D):D.length>>0},hn.writeUInt32BE=function(o,r,f){o[0+f]=r>>>24,o[1+f]=r>>>16&255,o[2+f]=r>>>8&255,o[3+f]=r&255},hn.ip=function(o,r,f,h){for(var d=0,p=0,C=6;C>=0;C-=2){for(var y=0;y<=24;y+=8)d<<=1,d|=r>>>y+C&1;for(var y=0;y<=24;y+=8)d<<=1,d|=o>>>y+C&1}for(var C=6;C>=0;C-=2){for(var y=1;y<=25;y+=8)p<<=1,p|=r>>>y+C&1;for(var y=1;y<=25;y+=8)p<<=1,p|=o>>>y+C&1}f[h+0]=d>>>0,f[h+1]=p>>>0},hn.rip=function(o,r,f,h){for(var d=0,p=0,C=0;C<4;C++)for(var y=24;y>=0;y-=8)d<<=1,d|=r>>>y+C&1,d<<=1,d|=o>>>y+C&1;for(var C=4;C<8;C++)for(var y=24;y>=0;y-=8)p<<=1,p|=r>>>y+C&1,p<<=1,p|=o>>>y+C&1;f[h+0]=d>>>0,f[h+1]=p>>>0},hn.pc1=function(o,r,f,h){for(var d=0,p=0,C=7;C>=5;C--){for(var y=0;y<=24;y+=8)d<<=1,d|=r>>y+C&1;for(var y=0;y<=24;y+=8)d<<=1,d|=o>>y+C&1}for(var y=0;y<=24;y+=8)d<<=1,d|=r>>y+C&1;for(var C=1;C<=3;C++){for(var y=0;y<=24;y+=8)p<<=1,p|=r>>y+C&1;for(var y=0;y<=24;y+=8)p<<=1,p|=o>>y+C&1}for(var y=0;y<=24;y+=8)p<<=1,p|=o>>y+C&1;f[h+0]=d>>>0,f[h+1]=p>>>0},hn.r28shl=function(o,r){return o<>>28-r};var e=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];hn.pc2=function(o,r,f,h){for(var d=0,p=0,C=e.length>>>1,y=0;y>>e[y]&1;for(var y=C;y>>e[y]&1;f[h+0]=d>>>0,f[h+1]=p>>>0},hn.expand=function(o,r,f){var h=0,d=0;h=(o&1)<<5|o>>>27;for(var p=23;p>=15;p-=4)h<<=6,h|=o>>>p&63;for(var p=11;p>=3;p-=4)d|=o>>>p&63,d<<=6;d|=(o&31)<<1|o>>>31,r[f+0]=h>>>0,r[f+1]=d>>>0};var A=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];hn.substitute=function(o,r){for(var f=0,h=0;h<4;h++){var d=o>>>18-h*6&63,p=A[h*64+d];f<<=4,f|=p}for(var h=0;h<4;h++){var d=r>>>18-h*6&63,p=A[4*64+h*64+d];f<<=4,f|=p}return f>>>0};var t=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];return hn.permute=function(o){for(var r=0,f=0;f>>t[f]&1;return r>>>0},hn.padSplit=function(o,r,f){for(var h=o.toString(2);h.length0;f--)o+=this._buffer(i,o),r+=this._flushBuffer(h,r);return o+=this._buffer(i,o),h},A.prototype.final=function(i){var o;i&&(o=this.update(i));var r;return this.type==="encrypt"?r=this._finalEncrypt():r=this._finalDecrypt(),o?o.concat(r):r},A.prototype._pad=function(i,o){if(o===0)return!1;for(;o>>1];C=t.r28shl(C,D),y=t.r28shl(y,D),t.pc2(C,y,d.keys,w)}},r.prototype._update=function(d,p,C,y){var w=this._desState,D=t.readUInt32BE(d,p),v=t.readUInt32BE(d,p+4);t.ip(D,v,w.tmp,0),D=w.tmp[0],v=w.tmp[1],this.type==="encrypt"?this._encrypt(w,D,v,w.tmp,0):this._decrypt(w,D,v,w.tmp,0),D=w.tmp[0],v=w.tmp[1],t.writeUInt32BE(C,D,y),t.writeUInt32BE(C,v,y+4)},r.prototype._pad=function(d,p){if(this.padding===!1)return!1;for(var C=d.length-p,y=p;y>>0,D=U}t.rip(v,D,y,w)},r.prototype._decrypt=function(d,p,C,y,w){for(var D=C,v=p,M=d.keys.length-2;M>=0;M-=2){var R=d.keys[M],b=d.keys[M+1];t.expand(D,d.tmp,0),R^=d.tmp[0],b^=d.tmp[1];var S=t.substitute(R,b),G=t.permute(S),U=D;D=(v^G)>>>0,v=U}t.rip(D,v,y,w)},S1}var N1={},DL;function oCA(){if(DL)return N1;DL=1;var e=lo,A=Ue,t={};function i(r){e.equal(r.length,8,"Invalid IV length"),this.iv=new Array(8);for(var f=0;f>h%8,i._prev=t(i._prev,r?C:y);return p}function t(i,o){var r=i.length,f=-1,h=e.allocUnsafe(i.length);for(i=e.concat([i,e.from([o])]);++f>7;return h}return x1.encrypt=function(i,o,r){for(var f=o.length,h=e.allocUnsafe(f),d=-1;++d>>24]^D[b>>>16&255]^v[S>>>8&255]^M[G&255]^d[J++],P=w[b>>>24]^D[S>>>16&255]^v[G>>>8&255]^M[R&255]^d[J++],z=w[S>>>24]^D[G>>>16&255]^v[R>>>8&255]^M[b&255]^d[J++],oA=w[G>>>24]^D[R>>>16&255]^v[b>>>8&255]^M[S&255]^d[J++],R=U,b=P,S=z,G=oA;return U=(C[R>>>24]<<24|C[b>>>16&255]<<16|C[S>>>8&255]<<8|C[G&255])^d[J++],P=(C[b>>>24]<<24|C[S>>>16&255]<<16|C[G>>>8&255]<<8|C[R&255])^d[J++],z=(C[S>>>24]<<24|C[G>>>16&255]<<16|C[R>>>8&255]<<8|C[b&255])^d[J++],oA=(C[G>>>24]<<24|C[R>>>16&255]<<16|C[b>>>8&255]<<8|C[S&255])^d[J++],U=U>>>0,P=P>>>0,z=z>>>0,oA=oA>>>0,[U,P,z,oA]}var o=[0,1,2,4,8,16,32,64,128,27,54],r=function(){for(var h=new Array(256),d=0;d<256;d++)d<128?h[d]=d<<1:h[d]=d<<1^283;for(var p=[],C=[],y=[[],[],[],[]],w=[[],[],[],[]],D=0,v=0,M=0;M<256;++M){var R=v^v<<1^v<<2^v<<3^v<<4;R=R>>>8^R&255^99,p[D]=R,C[R]=D;var b=h[D],S=h[b],G=h[S],U=h[R]*257^R*16843008;y[0][D]=U<<24|U>>>8,y[1][D]=U<<16|U>>>16,y[2][D]=U<<8|U>>>24,y[3][D]=U,U=G*16843009^S*65537^b*257^D*16843008,w[0][R]=U<<24|U>>>8,w[1][R]=U<<16|U>>>16,w[2][R]=U<<8|U>>>24,w[3][R]=U,D===0?D=v=1:(D=b^h[h[h[G^b]]],v^=h[h[v]])}return{SBOX:p,INV_SBOX:C,SUB_MIX:y,INV_SUB_MIX:w}}();function f(h){this._key=A(h),this._reset()}return f.blockSize=4*4,f.keySize=256/8,f.prototype.blockSize=f.blockSize,f.prototype.keySize=f.keySize,f.prototype._reset=function(){for(var h=this._key,d=h.length,p=d+6,C=(p+1)*4,y=[],w=0;w>>24,D=r.SBOX[D>>>24]<<24|r.SBOX[D>>>16&255]<<16|r.SBOX[D>>>8&255]<<8|r.SBOX[D&255],D^=o[w/d|0]<<24):d>6&&w%d===4&&(D=r.SBOX[D>>>24]<<24|r.SBOX[D>>>16&255]<<16|r.SBOX[D>>>8&255]<<8|r.SBOX[D&255]),y[w]=y[w-d]^D}for(var v=[],M=0;M>>24]]^r.INV_SUB_MIX[1][r.SBOX[b>>>16&255]]^r.INV_SUB_MIX[2][r.SBOX[b>>>8&255]]^r.INV_SUB_MIX[3][r.SBOX[b&255]]}this._nRounds=p,this._keySchedule=y,this._invKeySchedule=v},f.prototype.encryptBlockRaw=function(h){return h=A(h),i(h,this._keySchedule,r.SUB_MIX,r.SBOX,this._nRounds)},f.prototype.encryptBlock=function(h){var d=this.encryptBlockRaw(h),p=e.allocUnsafe(16);return p.writeUInt32BE(d[0],0),p.writeUInt32BE(d[1],4),p.writeUInt32BE(d[2],8),p.writeUInt32BE(d[3],12),p},f.prototype.decryptBlock=function(h){h=A(h);var d=h[1];h[1]=h[3],h[3]=d;var p=i(h,this._invKeySchedule,r.INV_SUB_MIX,r.INV_SBOX,this._nRounds),C=e.allocUnsafe(16);return C.writeUInt32BE(p[0],0),C.writeUInt32BE(p[3],4),C.writeUInt32BE(p[2],8),C.writeUInt32BE(p[1],12),C},f.prototype.scrub=function(){t(this._keySchedule),t(this._invKeySchedule),t(this._key)},H1.AES=f,H1}var Y1,qL;function ECA(){if(qL)return Y1;qL=1;var e=Ve().Buffer,A=e.alloc(16,0);function t(r){return[r.readUInt32BE(0),r.readUInt32BE(4),r.readUInt32BE(8),r.readUInt32BE(12)]}function i(r){var f=e.allocUnsafe(16);return f.writeUInt32BE(r[0]>>>0,0),f.writeUInt32BE(r[1]>>>0,4),f.writeUInt32BE(r[2]>>>0,8),f.writeUInt32BE(r[3]>>>0,12),f}function o(r){this.h=r,this.state=e.alloc(16,0),this.cache=e.allocUnsafe(0)}return o.prototype.ghash=function(r){for(var f=-1;++f0;h--)r[h]=r[h]>>>1|(r[h-1]&1)<<31;r[0]=r[0]>>>1,p&&(r[0]=r[0]^225<<24)}this.state=i(f)},o.prototype.update=function(r){this.cache=e.concat([this.cache,r]);for(var f;this.cache.length>=16;)f=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(f)},o.prototype.final=function(r,f){return this.cache.length&&this.ghash(e.concat([this.cache,A],16)),this.ghash(i([0,r,0,f])),this.state},Y1=o,Y1}var J1,HL;function T7(){if(HL)return J1;HL=1;var e=Mw(),A=Ve().Buffer,t=hI(),i=Ue,o=ECA(),r=QB(),f=Y7();function h(C,y){var w=0;C.length!==y.length&&w++;for(var D=Math.min(C.length,y.length),v=0;v0||f>0;){var y=new A;y.update(C),y.update(i),o&&y.update(o),C=y.digest();var w=0;if(h>0){var D=d.length-h;w=Math.min(h,C.length),C.copy(d,D,0,w),h-=w}if(w0){var v=p.length-f,M=Math.min(f,C.length-w);C.copy(p,v,w,w+M),f-=M}}return C.fill(0),{key:d,iv:p}}return P1=t,P1}var TL;function QCA(){if(TL)return kd;TL=1;var e=vR(),A=T7(),t=Ve().Buffer,i=P7(),o=hI(),r=Mw(),f=bw(),h=Ue;function d(D,v,M){o.call(this),this._cache=new C,this._cipher=new r.AES(v),this._prev=t.from(M),this._mode=D,this._autopadding=!0}h(d,o),d.prototype._update=function(D){this._cache.add(D);for(var v,M,R=[];v=this._cache.get();)M=this._mode.encrypt(this,v),R.push(M);return t.concat(R)};var p=t.alloc(16,16);d.prototype._final=function(){var D=this._cache.flush();if(this._autopadding)return D=this._mode.encrypt(this,D),this._cipher.scrub(),D;if(!D.equals(p))throw this._cipher.scrub(),new Error("data not multiple of block length")},d.prototype.setAutoPadding=function(D){return this._autopadding=!!D,this};function C(){this.cache=t.allocUnsafe(0)}C.prototype.add=function(D){this.cache=t.concat([this.cache,D])},C.prototype.get=function(){if(this.cache.length>15){var D=this.cache.slice(0,16);return this.cache=this.cache.slice(16),D}return null},C.prototype.flush=function(){for(var D=16-this.cache.length,v=t.allocUnsafe(D),M=-1;++M16)return v=this.cache.slice(0,16),this.cache=this.cache.slice(16),v}else if(this.cache.length>=16)return v=this.cache.slice(0,16),this.cache=this.cache.slice(16),v;return null},p.prototype.flush=function(){if(this.cache.length)return this.cache};function C(D){var v=D[15];if(v<1||v>16)throw new Error("unable to decrypt data");for(var M=-1;++M0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,I+=2,I>=26&&(I-=26,B--),c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)}(jE)),jE.exports}var WE={exports:{}};WE.exports;var ZL;function DCA(){return ZL||(ZL=1,function(e){(function(A,t){function i(Q,n){if(!Q)throw new Error(n||"Assertion failed")}function o(Q,n){Q.super_=n;var a=function(){};a.prototype=n.prototype,Q.prototype=new a,Q.prototype.constructor=Q}function r(Q,n,a){if(r.isBN(Q))return Q;this.negative=0,this.words=null,this.length=0,this.red=null,Q!==null&&((n==="le"||n==="be")&&(a=n,n=10),this._init(Q||0,n||10,a||"be"))}typeof A=="object"?A.exports=r:t.BN=r,r.BN=r,r.wordSize=26;var f;try{typeof window<"u"&&typeof window.Buffer<"u"?f=window.Buffer:f=Ht.Buffer}catch{}r.isBN=function(n){return n instanceof r?!0:n!==null&&typeof n=="object"&&n.constructor.wordSize===r.wordSize&&Array.isArray(n.words)},r.max=function(n,a){return n.cmp(a)>0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,I+=2,I>=26&&(I-=26,B--),c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)}(WE)),WE.exports}var j1,zL;function j7(){if(zL)return j1;zL=1;var e=DCA(),A=RR();function t(i){this.rand=i||new A.Rand}return j1=t,t.create=function(o){return new t(o)},t.prototype._randbelow=function(o){var r=o.bitLength(),f=Math.ceil(r/8);do var h=new e(this.rand.generate(f));while(h.cmp(o)>=0);return h},t.prototype._randrange=function(o,r){var f=r.sub(o);return o.add(this._randbelow(f))},t.prototype.test=function(o,r,f){var h=o.bitLength(),d=e.mont(o),p=new e(1).toRed(d);r||(r=Math.max(1,h/48|0));for(var C=o.subn(1),y=0;!C.testn(y);y++);for(var w=o.shrn(y),D=C.toRed(d),v=!0;r>0;r--){var M=this._randrange(new e(2),C);f&&f(M);var R=M.toRed(d).redPow(w);if(!(R.cmp(p)===0||R.cmp(D)===0)){for(var b=1;b0;r--){var D=this._randrange(new e(2),p),v=o.gcd(D);if(v.cmpn(1)!==0)return v;var M=D.toRed(h).redPow(y);if(!(M.cmp(d)===0||M.cmp(w)===0)){for(var R=1;Rb;)G.ishrn(1);if(G.isEven()&&G.iadd(r),G.testn(1)||G.iadd(f),S.cmp(f)){if(!S.cmp(h))for(;G.mod(d).cmp(p);)G.iadd(y)}else for(;G.mod(t).cmp(C);)G.iadd(y);if(U=G.shrn(1),v(U)&&v(G)&&M(U)&&M(G)&&o.test(U)&&o.test(G))return G}}return W1}const mCA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},vCA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},MCA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},bCA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},SCA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},NCA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},kCA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},RCA={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},KCA={modp1:mCA,modp2:vCA,modp5:MCA,modp14:bCA,modp15:SCA,modp16:NCA,modp17:kCA,modp18:RCA};var V1,XL;function GCA(){if(XL)return V1;XL=1;var e=O7(),A=j7(),t=new A,i=new e(24),o=new e(11),r=new e(10),f=new e(3),h=new e(7),d=W7(),p=$u();V1=v;function C(R,b){return b=b||"utf8",Buffer.isBuffer(R)||(R=new Buffer(R,b)),this._pub=new e(R),this}function y(R,b){return b=b||"utf8",Buffer.isBuffer(R)||(R=new Buffer(R,b)),this._priv=new e(R),this}var w={};function D(R,b){var S=b.toString("hex"),G=[S,R.toString(16)].join("_");if(G in w)return w[G];var U=0;if(R.isEven()||!d.simpleSieve||!d.fermatTest(R)||!t.test(R))return U+=1,S==="02"||S==="05"?U+=8:U+=4,w[G]=U,U;t.test(R.shrn(1))||(U+=2);var P;switch(S){case"02":R.mod(i).cmp(o)&&(U+=8);break;case"05":P=R.mod(r),P.cmp(f)&&P.cmp(h)&&(U+=8);break;default:U+=4}return w[G]=U,U}function v(R,b,S){this.setGenerator(b),this.__prime=new e(R),this._prime=e.mont(this.__prime),this._primeLen=R.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,S?(this.setPublicKey=C,this.setPrivateKey=y):this._primeCode=8}Object.defineProperty(v.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=D(this.__prime,this.__gen)),this._primeCode}}),v.prototype.generateKeys=function(){return this._priv||(this._priv=new e(p(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},v.prototype.computeSecret=function(R){R=new e(R),R=R.toRed(this._prime);var b=R.redPow(this._priv).fromRed(),S=new Buffer(b.toArray()),G=this.getPrime();if(S.length"u"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?xd.exports={nextTick:e}:xd.exports=process;function e(A,t,i,o){if(typeof A!="function")throw new TypeError('"callback" argument must be a function');var r=arguments.length,f,h;switch(r){case 0:case 1:return process.nextTick(A);case 2:return process.nextTick(function(){A.call(null,t)});case 3:return process.nextTick(function(){A.call(null,t,i)});case 4:return process.nextTick(function(){A.call(null,t,i,o)});default:for(f=new Array(r-1),h=0;h"u"}Ji.isPrimitive=D,Ji.isBuffer=Co.Buffer.isBuffer;function v(M){return Object.prototype.toString.call(M)}return Ji}var $1={exports:{}},o8;function LCA(){return o8||(o8=1,function(e){function A(r,f){if(!(r instanceof f))throw new TypeError("Cannot call a class as a function")}var t=bR().Buffer,i=Ht;function o(r,f,h){r.copy(f,h)}e.exports=function(){function r(){A(this,r),this.head=null,this.tail=null,this.length=0}return r.prototype.push=function(h){var d={data:h,next:null};this.length>0?this.tail.next=d:this.head=d,this.tail=d,++this.length},r.prototype.unshift=function(h){var d={data:h,next:this.head};this.length===0&&(this.tail=d),this.head=d,++this.length},r.prototype.shift=function(){if(this.length!==0){var h=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,h}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(h){if(this.length===0)return"";for(var d=this.head,p=""+d.data;d=d.next;)p+=h+d.data;return p},r.prototype.concat=function(h){if(this.length===0)return t.alloc(0);for(var d=t.allocUnsafe(h>>>0),p=this.head,C=0;p;)o(p.data,d,C),C+=p.data.length,p=p.next;return d},r}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var r=i.inspect({length:this.length});return this.constructor.name+" "+r})}($1)),$1.exports}var X1,s8;function Z7(){if(s8)return X1;s8=1;var e=Sw();function A(o,r){var f=this,h=this._readableState&&this._readableState.destroyed,d=this._writableState&&this._writableState.destroyed;return h||d?(r?r(o):o&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(i,this,o)):e.nextTick(i,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(p){!r&&p?f._writableState?f._writableState.errorEmitted||(f._writableState.errorEmitted=!0,e.nextTick(i,f,p)):e.nextTick(i,f,p):r&&r(p)}),this)}function t(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(o,r){o.emit("error",r)}return X1={destroy:A,undestroy:t},X1}var AM,a8;function z7(){if(a8)return AM;a8=1;var e=Sw();AM=M;function A(B){var E=this;this.next=null,this.entry=null,this.finish=function(){c(E,B)}}var t=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:e.nextTick,i;M.WritableState=D;var o=Object.create(pB());o.inherits=Ue;var r={deprecate:D7()},f=V7(),h=bR().Buffer,d=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function p(B){return h.from(B)}function C(B){return h.isBuffer(B)||B instanceof d}var y=Z7();o.inherits(M,f);function w(){}function D(B,E){i=i||nu(),B=B||{};var u=E instanceof i;this.objectMode=!!B.objectMode,u&&(this.objectMode=this.objectMode||!!B.writableObjectMode);var s=B.highWaterMark,l=B.writableHighWaterMark,m=this.objectMode?16:16*1024;s||s===0?this.highWaterMark=s:u&&(l||l===0)?this.highWaterMark=l:this.highWaterMark=m,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var N=B.decodeStrings===!1;this.decodeStrings=!N,this.defaultEncoding=B.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(L){oA(E,L)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new A(this)}D.prototype.getBuffer=function(){for(var E=this.bufferedRequest,u=[];E;)u.push(E),E=E.next;return u},function(){try{Object.defineProperty(D.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var v;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(v=Function.prototype[Symbol.hasInstance],Object.defineProperty(M,Symbol.hasInstance,{value:function(B){return v.call(this,B)?!0:this!==M?!1:B&&B._writableState instanceof D}})):v=function(B){return B instanceof this};function M(B){if(i=i||nu(),!v.call(M,this)&&!(this instanceof i))return new M(B);this._writableState=new D(B,this),this.writable=!0,B&&(typeof B.write=="function"&&(this._write=B.write),typeof B.writev=="function"&&(this._writev=B.writev),typeof B.destroy=="function"&&(this._destroy=B.destroy),typeof B.final=="function"&&(this._final=B.final)),f.call(this)}M.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function R(B,E){var u=new Error("write after end");B.emit("error",u),e.nextTick(E,u)}function b(B,E,u,s){var l=!0,m=!1;return u===null?m=new TypeError("May not write null values to stream"):typeof u!="string"&&u!==void 0&&!E.objectMode&&(m=new TypeError("Invalid non-string/buffer chunk")),m&&(B.emit("error",m),e.nextTick(s,m),l=!1),l}M.prototype.write=function(B,E,u){var s=this._writableState,l=!1,m=!s.objectMode&&C(B);return m&&!h.isBuffer(B)&&(B=p(B)),typeof E=="function"&&(u=E,E=null),m?E="buffer":E||(E=s.defaultEncoding),typeof u!="function"&&(u=w),s.ended?R(this,u):(m||b(this,s,B,u))&&(s.pendingcb++,l=G(this,s,m,B,E,u)),l},M.prototype.cork=function(){var B=this._writableState;B.corked++},M.prototype.uncork=function(){var B=this._writableState;B.corked&&(B.corked--,!B.writing&&!B.corked&&!B.bufferProcessing&&B.bufferedRequest&&X(this,B))},M.prototype.setDefaultEncoding=function(E){if(typeof E=="string"&&(E=E.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+E);return this._writableState.defaultEncoding=E,this};function S(B,E,u){return!B.objectMode&&B.decodeStrings!==!1&&typeof E=="string"&&(E=h.from(E,u)),E}Object.defineProperty(M.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function G(B,E,u,s,l,m){if(!u){var N=S(E,s,l);s!==N&&(u=!0,l="buffer",s=N)}var L=E.objectMode?1:s.length;E.length+=L;var O=E.length0?(typeof Y!="string"&&!_.objectMode&&Object.getPrototypeOf(Y)!==r.prototype&&(Y=h(Y)),$?_.endEmitted?K.emit("error",new Error("stream.unshift() after end event")):U(K,_,Y,!0):_.ended?K.emit("error",new Error("stream.push() after EOF")):(_.reading=!1,_.decoder&&!W?(Y=_.decoder.write(Y),_.objectMode||Y.length!==0?U(K,_,Y,!1):a(K,_)):U(K,_,Y,!1))):$||(_.reading=!1)}return z(_)}function U(K,Y,W,$){Y.flowing&&Y.length===0&&!Y.sync?(K.emit("data",W),K.read(0)):(Y.length+=Y.objectMode?1:W.length,$?Y.buffer.unshift(W):Y.buffer.push(W),Y.needReadable&&Q(K)),a(K,Y)}function P(K,Y){var W;return!d(Y)&&typeof Y!="string"&&Y!==void 0&&!K.objectMode&&(W=new TypeError("Invalid non-string/buffer chunk")),W}function z(K){return!K.ended&&(K.needReadable||K.length=oA?K=oA:(K--,K|=K>>>1,K|=K>>>2,K|=K>>>4,K|=K>>>8,K|=K>>>16,K++),K}function q(K,Y){return K<=0||Y.length===0&&Y.ended?0:Y.objectMode?1:K!==K?Y.flowing&&Y.length?Y.buffer.head.data.length:Y.length:(K>Y.highWaterMark&&(Y.highWaterMark=J(K)),K<=Y.length?K:Y.ended?Y.length:(Y.needReadable=!0,0))}S.prototype.read=function(K){y("read",K),K=parseInt(K,10);var Y=this._readableState,W=K;if(K!==0&&(Y.emittedReadable=!1),K===0&&Y.needReadable&&(Y.length>=Y.highWaterMark||Y.ended))return y("read: emitReadable",Y.length,Y.ended),Y.length===0&&Y.ended?L(this):Q(this),null;if(K=q(K,Y),K===0&&Y.ended)return Y.length===0&&L(this),null;var $=Y.needReadable;y("need readable",$),(Y.length===0||Y.length-K0?V=s(K,Y):V=null,V===null?(Y.needReadable=!0,K=0):Y.length-=K,Y.length===0&&(Y.ended||(Y.needReadable=!0),W!==K&&Y.ended&&L(this)),V!==null&&this.emit("data",V),V};function X(K,Y){if(!Y.ended){if(Y.decoder){var W=Y.decoder.end();W&&W.length&&(Y.buffer.push(W),Y.length+=Y.objectMode?1:W.length)}Y.ended=!0,Q(K)}}function Q(K){var Y=K._readableState;Y.needReadable=!1,Y.emittedReadable||(y("emitReadable",Y.flowing),Y.emittedReadable=!0,Y.sync?e.nextTick(n,K):n(K))}function n(K){y("emit readable"),K.emit("readable"),u(K)}function a(K,Y){Y.readingMore||(Y.readingMore=!0,e.nextTick(g,K,Y))}function g(K,Y){for(var W=Y.length;!Y.reading&&!Y.flowing&&!Y.ended&&Y.length1&&H($.pipes,K)!==-1)&&!aA&&(y("false write response, pause",$.awaitDrain),$.awaitDrain++,nA=!0),W.pause())}function xA(rA){y("onerror",rA),UA(),K.removeListener("error",xA),i(K,"error")===0&&K.emit("error",rA)}R(K,"error",xA);function gA(){K.removeListener("finish",IA),UA()}K.once("close",gA);function IA(){y("onfinish"),K.removeListener("close",gA),UA()}K.once("finish",IA);function UA(){y("unpipe"),W.unpipe(K)}return K.emit("pipe",W),$.flowing||(y("pipe resume"),W.resume()),K};function I(K){return function(){var Y=K._readableState;y("pipeOnDrain",Y.awaitDrain),Y.awaitDrain&&Y.awaitDrain--,Y.awaitDrain===0&&i(K,"data")&&(Y.flowing=!0,u(K))}}S.prototype.unpipe=function(K){var Y=this._readableState,W={hasUnpiped:!1};if(Y.pipesCount===0)return this;if(Y.pipesCount===1)return K&&K!==Y.pipes?this:(K||(K=Y.pipes),Y.pipes=null,Y.pipesCount=0,Y.flowing=!1,K&&K.emit("unpipe",this,W),this);if(!K){var $=Y.pipes,V=Y.pipesCount;Y.pipes=null,Y.pipesCount=0,Y.flowing=!1;for(var _=0;_=Y.length?(Y.decoder?W=Y.buffer.join(""):Y.buffer.length===1?W=Y.buffer.head.data:W=Y.buffer.concat(Y.length),Y.buffer.clear()):W=l(K,Y.buffer,Y.decoder),W}function l(K,Y,W){var $;return K_.length?_.length:K;if(j===_.length?V+=_:V+=_.slice(0,K),K-=j,K===0){j===_.length?(++$,W.next?Y.head=W.next:Y.head=Y.tail=null):(Y.head=W,W.data=_.slice(j));break}++$}return Y.length-=$,V}function N(K,Y){var W=r.allocUnsafe(K),$=Y.head,V=1;for($.data.copy(W),K-=$.data.length;$=$.next;){var _=$.data,j=K>_.length?_.length:K;if(_.copy(W,W.length-K,0,j),K-=j,K===0){j===_.length?(++V,$.next?Y.head=$.next:Y.head=Y.tail=null):(Y.head=$,$.data=_.slice(j));break}++V}return Y.length-=V,W}function L(K){var Y=K._readableState;if(Y.length>0)throw new Error('"endReadable()" called on non-empty stream');Y.endEmitted||(Y.ended=!0,e.nextTick(O,Y,K))}function O(K,Y){!K.endEmitted&&K.length===0&&(K.endEmitted=!0,Y.readable=!1,Y.emit("end"))}function H(K,Y){for(var W=0,$=K.length;W<$;W++)if(K[W]===Y)return W;return-1}return tM}var iM,f8;function X7(){if(f8)return iM;f8=1,iM=i;var e=nu(),A=Object.create(pB());A.inherits=Ue,A.inherits(i,e);function t(f,h){var d=this._transformState;d.transforming=!1;var p=d.writecb;if(!p)return this.emit("error",new Error("write callback called multiple times"));d.writechunk=null,d.writecb=null,h!=null&&this.push(h),p(f);var C=this._readableState;C.reading=!1,(C.needReadable||C.length0?g:I},r.min=function(g,I){return g.cmp(I)<0?g:I},r.prototype._init=function(g,I,c){if(typeof g=="number")return this._initNumber(g,I,c);if(typeof g=="object")return this._initArray(g,I,c);I==="hex"&&(I=16),i(I===(I|0)&&I>=2&&I<=36),g=g.toString().replace(/\s+/g,"");var B=0;g[0]==="-"&&(B++,this.negative=1),B=0;B-=3)u=g[B]|g[B-1]<<8|g[B-2]<<16,this.words[E]|=u<>>26-s&67108863,s+=24,s>=26&&(s-=26,E++);else if(c==="le")for(B=0,E=0;B>>26-s&67108863,s+=24,s>=26&&(s-=26,E++);return this._strip()};function h(a,g){var I=a.charCodeAt(g);if(I>=48&&I<=57)return I-48;if(I>=65&&I<=70)return I-55;if(I>=97&&I<=102)return I-87;i(!1,"Invalid character in "+a)}function d(a,g,I){var c=h(a,I);return I-1>=g&&(c|=h(a,I-1)<<4),c}r.prototype._parseHex=function(g,I,c){this.length=Math.ceil((g.length-I)/6),this.words=new Array(this.length);for(var B=0;B=I;B-=2)s=d(g,I,B)<=18?(E-=18,u+=1,this.words[u]|=s>>>26):E+=8;else{var l=g.length-I;for(B=l%2===0?I+1:I;B=18?(E-=18,u+=1,this.words[u]|=s>>>26):E+=8}this._strip()};function p(a,g,I,c){for(var B=0,E=0,u=Math.min(a.length,I),s=g;s=49?E=l-49+10:l>=17?E=l-17+10:E=l,i(l>=0&&E1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{r.prototype[Symbol.for("nodejs.util.inspect.custom")]=y}catch{r.prototype.inspect=y}else r.prototype.inspect=y;function y(){return(this.red?""}var w=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],D=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(g,I){g=g||10,I=I|0||1;var c;if(g===16||g==="hex"){c="";for(var B=0,E=0,u=0;u>>24-B&16777215,B+=2,B>=26&&(B-=26,u--),E!==0||u!==this.length-1?c=w[6-l.length]+l+c:c=l+c}for(E!==0&&(c=E.toString(16)+c);c.length%I!==0;)c="0"+c;return this.negative!==0&&(c="-"+c),c}if(g===(g|0)&&g>=2&&g<=36){var m=D[g],N=v[g];c="";var L=this.clone();for(L.negative=0;!L.isZero();){var O=L.modrn(N).toString(g);L=L.idivn(N),L.isZero()?c=O+c:c=w[m-O.length]+O+c}for(this.isZero()&&(c="0"+c);c.length%I!==0;)c="0"+c;return this.negative!==0&&(c="-"+c),c}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var g=this.words[0];return this.length===2?g+=this.words[1]*67108864:this.length===3&&this.words[2]===1?g+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-g:g},r.prototype.toJSON=function(){return this.toString(16,2)},f&&(r.prototype.toBuffer=function(g,I){return this.toArrayLike(f,g,I)}),r.prototype.toArray=function(g,I){return this.toArrayLike(Array,g,I)};var M=function(g,I){return g.allocUnsafe?g.allocUnsafe(I):new g(I)};r.prototype.toArrayLike=function(g,I,c){this._strip();var B=this.byteLength(),E=c||Math.max(1,B);i(B<=E,"byte array longer than desired length"),i(E>0,"Requested array length <= 0");var u=M(g,E),s=I==="le"?"LE":"BE";return this["_toArrayLike"+s](u,B),u},r.prototype._toArrayLikeLE=function(g,I){for(var c=0,B=0,E=0,u=0;E>8&255),c>16&255),u===6?(c>24&255),B=0,u=0):(B=s>>>24,u+=2)}if(c=0&&(g[c--]=s>>8&255),c>=0&&(g[c--]=s>>16&255),u===6?(c>=0&&(g[c--]=s>>24&255),B=0,u=0):(B=s>>>24,u+=2)}if(c>=0)for(g[c--]=B;c>=0;)g[c--]=0},Math.clz32?r.prototype._countBits=function(g){return 32-Math.clz32(g)}:r.prototype._countBits=function(g){var I=g,c=0;return I>=4096&&(c+=13,I>>>=13),I>=64&&(c+=7,I>>>=7),I>=8&&(c+=4,I>>>=4),I>=2&&(c+=2,I>>>=2),c+I},r.prototype._zeroBits=function(g){if(g===0)return 26;var I=g,c=0;return I&8191||(c+=13,I>>>=13),I&127||(c+=7,I>>>=7),I&15||(c+=4,I>>>=4),I&3||(c+=2,I>>>=2),I&1||c++,c},r.prototype.bitLength=function(){var g=this.words[this.length-1],I=this._countBits(g);return(this.length-1)*26+I};function R(a){for(var g=new Array(a.bitLength()),I=0;I>>B&1}return g}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var g=0,I=0;Ig.length?this.clone().ior(g):g.clone().ior(this)},r.prototype.uor=function(g){return this.length>g.length?this.clone().iuor(g):g.clone().iuor(this)},r.prototype.iuand=function(g){var I;this.length>g.length?I=g:I=this;for(var c=0;cg.length?this.clone().iand(g):g.clone().iand(this)},r.prototype.uand=function(g){return this.length>g.length?this.clone().iuand(g):g.clone().iuand(this)},r.prototype.iuxor=function(g){var I,c;this.length>g.length?(I=this,c=g):(I=g,c=this);for(var B=0;Bg.length?this.clone().ixor(g):g.clone().ixor(this)},r.prototype.uxor=function(g){return this.length>g.length?this.clone().iuxor(g):g.clone().iuxor(this)},r.prototype.inotn=function(g){i(typeof g=="number"&&g>=0);var I=Math.ceil(g/26)|0,c=g%26;this._expand(I),c>0&&I--;for(var B=0;B0&&(this.words[B]=~this.words[B]&67108863>>26-c),this._strip()},r.prototype.notn=function(g){return this.clone().inotn(g)},r.prototype.setn=function(g,I){i(typeof g=="number"&&g>=0);var c=g/26|0,B=g%26;return this._expand(c+1),I?this.words[c]=this.words[c]|1<g.length?(c=this,B=g):(c=g,B=this);for(var E=0,u=0;u>>26;for(;E!==0&&u>>26;if(this.length=c.length,E!==0)this.words[this.length]=E,this.length++;else if(c!==this)for(;ug.length?this.clone().iadd(g):g.clone().iadd(this)},r.prototype.isub=function(g){if(g.negative!==0){g.negative=0;var I=this.iadd(g);return g.negative=1,I._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(g),this.negative=1,this._normSign();var c=this.cmp(g);if(c===0)return this.negative=0,this.length=1,this.words[0]=0,this;var B,E;c>0?(B=this,E=g):(B=g,E=this);for(var u=0,s=0;s>26,this.words[s]=I&67108863;for(;u!==0&&s>26,this.words[s]=I&67108863;if(u===0&&s>>26,L=l&67108863,O=Math.min(m,g.length-1),H=Math.max(0,m-a.length+1);H<=O;H++){var K=m-H|0;B=a.words[K]|0,E=g.words[H]|0,u=B*E+L,N+=u/67108864|0,L=u&67108863}I.words[m]=L|0,l=N|0}return l!==0?I.words[m]=l|0:I.length--,I._strip()}var S=function(g,I,c){var B=g.words,E=I.words,u=c.words,s=0,l,m,N,L=B[0]|0,O=L&8191,H=L>>>13,K=B[1]|0,Y=K&8191,W=K>>>13,$=B[2]|0,V=$&8191,_=$>>>13,j=B[3]|0,sA=j&8191,iA=j>>>13,aA=B[4]|0,lA=aA&8191,nA=aA>>>13,tA=B[5]|0,xA=tA&8191,gA=tA>>>13,IA=B[6]|0,UA=IA&8191,rA=IA>>>13,hA=B[7]|0,OA=hA&8191,x=hA>>>13,k=B[8]|0,F=k&8191,T=k>>>13,Z=B[9]|0,fA=Z&8191,eA=Z>>>13,dA=E[0]|0,PA=dA&8191,cA=dA>>>13,QA=E[1]|0,YA=QA&8191,wA=QA>>>13,RA=E[2]|0,Ie=RA&8191,yA=RA>>>13,NA=E[3]|0,ne=NA&8191,pA=NA>>>13,MA=E[4]|0,uA=MA&8191,AA=MA>>>13,CA=E[5]|0,qA=CA&8191,BA=CA>>>13,bA=E[6]|0,oe=bA&8191,mA=bA>>>13,SA=E[7]|0,fe=SA&8191,vA=SA>>>13,KA=E[8]|0,ge=KA&8191,DA=KA>>>13,kA=E[9]|0,ee=kA&8191,XA=kA>>>13;c.negative=g.negative^I.negative,c.length=19,l=Math.imul(O,PA),m=Math.imul(O,cA),m=m+Math.imul(H,PA)|0,N=Math.imul(H,cA);var Qe=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,l=Math.imul(Y,PA),m=Math.imul(Y,cA),m=m+Math.imul(W,PA)|0,N=Math.imul(W,cA),l=l+Math.imul(O,YA)|0,m=m+Math.imul(O,wA)|0,m=m+Math.imul(H,YA)|0,N=N+Math.imul(H,wA)|0;var Ce=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,l=Math.imul(V,PA),m=Math.imul(V,cA),m=m+Math.imul(_,PA)|0,N=Math.imul(_,cA),l=l+Math.imul(Y,YA)|0,m=m+Math.imul(Y,wA)|0,m=m+Math.imul(W,YA)|0,N=N+Math.imul(W,wA)|0,l=l+Math.imul(O,Ie)|0,m=m+Math.imul(O,yA)|0,m=m+Math.imul(H,Ie)|0,N=N+Math.imul(H,yA)|0;var ye=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(ye>>>26)|0,ye&=67108863,l=Math.imul(sA,PA),m=Math.imul(sA,cA),m=m+Math.imul(iA,PA)|0,N=Math.imul(iA,cA),l=l+Math.imul(V,YA)|0,m=m+Math.imul(V,wA)|0,m=m+Math.imul(_,YA)|0,N=N+Math.imul(_,wA)|0,l=l+Math.imul(Y,Ie)|0,m=m+Math.imul(Y,yA)|0,m=m+Math.imul(W,Ie)|0,N=N+Math.imul(W,yA)|0,l=l+Math.imul(O,ne)|0,m=m+Math.imul(O,pA)|0,m=m+Math.imul(H,ne)|0,N=N+Math.imul(H,pA)|0;var we=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(we>>>26)|0,we&=67108863,l=Math.imul(lA,PA),m=Math.imul(lA,cA),m=m+Math.imul(nA,PA)|0,N=Math.imul(nA,cA),l=l+Math.imul(sA,YA)|0,m=m+Math.imul(sA,wA)|0,m=m+Math.imul(iA,YA)|0,N=N+Math.imul(iA,wA)|0,l=l+Math.imul(V,Ie)|0,m=m+Math.imul(V,yA)|0,m=m+Math.imul(_,Ie)|0,N=N+Math.imul(_,yA)|0,l=l+Math.imul(Y,ne)|0,m=m+Math.imul(Y,pA)|0,m=m+Math.imul(W,ne)|0,N=N+Math.imul(W,pA)|0,l=l+Math.imul(O,uA)|0,m=m+Math.imul(O,AA)|0,m=m+Math.imul(H,uA)|0,N=N+Math.imul(H,AA)|0;var De=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(De>>>26)|0,De&=67108863,l=Math.imul(xA,PA),m=Math.imul(xA,cA),m=m+Math.imul(gA,PA)|0,N=Math.imul(gA,cA),l=l+Math.imul(lA,YA)|0,m=m+Math.imul(lA,wA)|0,m=m+Math.imul(nA,YA)|0,N=N+Math.imul(nA,wA)|0,l=l+Math.imul(sA,Ie)|0,m=m+Math.imul(sA,yA)|0,m=m+Math.imul(iA,Ie)|0,N=N+Math.imul(iA,yA)|0,l=l+Math.imul(V,ne)|0,m=m+Math.imul(V,pA)|0,m=m+Math.imul(_,ne)|0,N=N+Math.imul(_,pA)|0,l=l+Math.imul(Y,uA)|0,m=m+Math.imul(Y,AA)|0,m=m+Math.imul(W,uA)|0,N=N+Math.imul(W,AA)|0,l=l+Math.imul(O,qA)|0,m=m+Math.imul(O,BA)|0,m=m+Math.imul(H,qA)|0,N=N+Math.imul(H,BA)|0;var me=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(me>>>26)|0,me&=67108863,l=Math.imul(UA,PA),m=Math.imul(UA,cA),m=m+Math.imul(rA,PA)|0,N=Math.imul(rA,cA),l=l+Math.imul(xA,YA)|0,m=m+Math.imul(xA,wA)|0,m=m+Math.imul(gA,YA)|0,N=N+Math.imul(gA,wA)|0,l=l+Math.imul(lA,Ie)|0,m=m+Math.imul(lA,yA)|0,m=m+Math.imul(nA,Ie)|0,N=N+Math.imul(nA,yA)|0,l=l+Math.imul(sA,ne)|0,m=m+Math.imul(sA,pA)|0,m=m+Math.imul(iA,ne)|0,N=N+Math.imul(iA,pA)|0,l=l+Math.imul(V,uA)|0,m=m+Math.imul(V,AA)|0,m=m+Math.imul(_,uA)|0,N=N+Math.imul(_,AA)|0,l=l+Math.imul(Y,qA)|0,m=m+Math.imul(Y,BA)|0,m=m+Math.imul(W,qA)|0,N=N+Math.imul(W,BA)|0,l=l+Math.imul(O,oe)|0,m=m+Math.imul(O,mA)|0,m=m+Math.imul(H,oe)|0,N=N+Math.imul(H,mA)|0;var EA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(EA>>>26)|0,EA&=67108863,l=Math.imul(OA,PA),m=Math.imul(OA,cA),m=m+Math.imul(x,PA)|0,N=Math.imul(x,cA),l=l+Math.imul(UA,YA)|0,m=m+Math.imul(UA,wA)|0,m=m+Math.imul(rA,YA)|0,N=N+Math.imul(rA,wA)|0,l=l+Math.imul(xA,Ie)|0,m=m+Math.imul(xA,yA)|0,m=m+Math.imul(gA,Ie)|0,N=N+Math.imul(gA,yA)|0,l=l+Math.imul(lA,ne)|0,m=m+Math.imul(lA,pA)|0,m=m+Math.imul(nA,ne)|0,N=N+Math.imul(nA,pA)|0,l=l+Math.imul(sA,uA)|0,m=m+Math.imul(sA,AA)|0,m=m+Math.imul(iA,uA)|0,N=N+Math.imul(iA,AA)|0,l=l+Math.imul(V,qA)|0,m=m+Math.imul(V,BA)|0,m=m+Math.imul(_,qA)|0,N=N+Math.imul(_,BA)|0,l=l+Math.imul(Y,oe)|0,m=m+Math.imul(Y,mA)|0,m=m+Math.imul(W,oe)|0,N=N+Math.imul(W,mA)|0,l=l+Math.imul(O,fe)|0,m=m+Math.imul(O,vA)|0,m=m+Math.imul(H,fe)|0,N=N+Math.imul(H,vA)|0;var GA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(GA>>>26)|0,GA&=67108863,l=Math.imul(F,PA),m=Math.imul(F,cA),m=m+Math.imul(T,PA)|0,N=Math.imul(T,cA),l=l+Math.imul(OA,YA)|0,m=m+Math.imul(OA,wA)|0,m=m+Math.imul(x,YA)|0,N=N+Math.imul(x,wA)|0,l=l+Math.imul(UA,Ie)|0,m=m+Math.imul(UA,yA)|0,m=m+Math.imul(rA,Ie)|0,N=N+Math.imul(rA,yA)|0,l=l+Math.imul(xA,ne)|0,m=m+Math.imul(xA,pA)|0,m=m+Math.imul(gA,ne)|0,N=N+Math.imul(gA,pA)|0,l=l+Math.imul(lA,uA)|0,m=m+Math.imul(lA,AA)|0,m=m+Math.imul(nA,uA)|0,N=N+Math.imul(nA,AA)|0,l=l+Math.imul(sA,qA)|0,m=m+Math.imul(sA,BA)|0,m=m+Math.imul(iA,qA)|0,N=N+Math.imul(iA,BA)|0,l=l+Math.imul(V,oe)|0,m=m+Math.imul(V,mA)|0,m=m+Math.imul(_,oe)|0,N=N+Math.imul(_,mA)|0,l=l+Math.imul(Y,fe)|0,m=m+Math.imul(Y,vA)|0,m=m+Math.imul(W,fe)|0,N=N+Math.imul(W,vA)|0,l=l+Math.imul(O,ge)|0,m=m+Math.imul(O,DA)|0,m=m+Math.imul(H,ge)|0,N=N+Math.imul(H,DA)|0;var LA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(LA>>>26)|0,LA&=67108863,l=Math.imul(fA,PA),m=Math.imul(fA,cA),m=m+Math.imul(eA,PA)|0,N=Math.imul(eA,cA),l=l+Math.imul(F,YA)|0,m=m+Math.imul(F,wA)|0,m=m+Math.imul(T,YA)|0,N=N+Math.imul(T,wA)|0,l=l+Math.imul(OA,Ie)|0,m=m+Math.imul(OA,yA)|0,m=m+Math.imul(x,Ie)|0,N=N+Math.imul(x,yA)|0,l=l+Math.imul(UA,ne)|0,m=m+Math.imul(UA,pA)|0,m=m+Math.imul(rA,ne)|0,N=N+Math.imul(rA,pA)|0,l=l+Math.imul(xA,uA)|0,m=m+Math.imul(xA,AA)|0,m=m+Math.imul(gA,uA)|0,N=N+Math.imul(gA,AA)|0,l=l+Math.imul(lA,qA)|0,m=m+Math.imul(lA,BA)|0,m=m+Math.imul(nA,qA)|0,N=N+Math.imul(nA,BA)|0,l=l+Math.imul(sA,oe)|0,m=m+Math.imul(sA,mA)|0,m=m+Math.imul(iA,oe)|0,N=N+Math.imul(iA,mA)|0,l=l+Math.imul(V,fe)|0,m=m+Math.imul(V,vA)|0,m=m+Math.imul(_,fe)|0,N=N+Math.imul(_,vA)|0,l=l+Math.imul(Y,ge)|0,m=m+Math.imul(Y,DA)|0,m=m+Math.imul(W,ge)|0,N=N+Math.imul(W,DA)|0,l=l+Math.imul(O,ee)|0,m=m+Math.imul(O,XA)|0,m=m+Math.imul(H,ee)|0,N=N+Math.imul(H,XA)|0;var HA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(HA>>>26)|0,HA&=67108863,l=Math.imul(fA,YA),m=Math.imul(fA,wA),m=m+Math.imul(eA,YA)|0,N=Math.imul(eA,wA),l=l+Math.imul(F,Ie)|0,m=m+Math.imul(F,yA)|0,m=m+Math.imul(T,Ie)|0,N=N+Math.imul(T,yA)|0,l=l+Math.imul(OA,ne)|0,m=m+Math.imul(OA,pA)|0,m=m+Math.imul(x,ne)|0,N=N+Math.imul(x,pA)|0,l=l+Math.imul(UA,uA)|0,m=m+Math.imul(UA,AA)|0,m=m+Math.imul(rA,uA)|0,N=N+Math.imul(rA,AA)|0,l=l+Math.imul(xA,qA)|0,m=m+Math.imul(xA,BA)|0,m=m+Math.imul(gA,qA)|0,N=N+Math.imul(gA,BA)|0,l=l+Math.imul(lA,oe)|0,m=m+Math.imul(lA,mA)|0,m=m+Math.imul(nA,oe)|0,N=N+Math.imul(nA,mA)|0,l=l+Math.imul(sA,fe)|0,m=m+Math.imul(sA,vA)|0,m=m+Math.imul(iA,fe)|0,N=N+Math.imul(iA,vA)|0,l=l+Math.imul(V,ge)|0,m=m+Math.imul(V,DA)|0,m=m+Math.imul(_,ge)|0,N=N+Math.imul(_,DA)|0,l=l+Math.imul(Y,ee)|0,m=m+Math.imul(Y,XA)|0,m=m+Math.imul(W,ee)|0,N=N+Math.imul(W,XA)|0;var JA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(JA>>>26)|0,JA&=67108863,l=Math.imul(fA,Ie),m=Math.imul(fA,yA),m=m+Math.imul(eA,Ie)|0,N=Math.imul(eA,yA),l=l+Math.imul(F,ne)|0,m=m+Math.imul(F,pA)|0,m=m+Math.imul(T,ne)|0,N=N+Math.imul(T,pA)|0,l=l+Math.imul(OA,uA)|0,m=m+Math.imul(OA,AA)|0,m=m+Math.imul(x,uA)|0,N=N+Math.imul(x,AA)|0,l=l+Math.imul(UA,qA)|0,m=m+Math.imul(UA,BA)|0,m=m+Math.imul(rA,qA)|0,N=N+Math.imul(rA,BA)|0,l=l+Math.imul(xA,oe)|0,m=m+Math.imul(xA,mA)|0,m=m+Math.imul(gA,oe)|0,N=N+Math.imul(gA,mA)|0,l=l+Math.imul(lA,fe)|0,m=m+Math.imul(lA,vA)|0,m=m+Math.imul(nA,fe)|0,N=N+Math.imul(nA,vA)|0,l=l+Math.imul(sA,ge)|0,m=m+Math.imul(sA,DA)|0,m=m+Math.imul(iA,ge)|0,N=N+Math.imul(iA,DA)|0,l=l+Math.imul(V,ee)|0,m=m+Math.imul(V,XA)|0,m=m+Math.imul(_,ee)|0,N=N+Math.imul(_,XA)|0;var VA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(VA>>>26)|0,VA&=67108863,l=Math.imul(fA,ne),m=Math.imul(fA,pA),m=m+Math.imul(eA,ne)|0,N=Math.imul(eA,pA),l=l+Math.imul(F,uA)|0,m=m+Math.imul(F,AA)|0,m=m+Math.imul(T,uA)|0,N=N+Math.imul(T,AA)|0,l=l+Math.imul(OA,qA)|0,m=m+Math.imul(OA,BA)|0,m=m+Math.imul(x,qA)|0,N=N+Math.imul(x,BA)|0,l=l+Math.imul(UA,oe)|0,m=m+Math.imul(UA,mA)|0,m=m+Math.imul(rA,oe)|0,N=N+Math.imul(rA,mA)|0,l=l+Math.imul(xA,fe)|0,m=m+Math.imul(xA,vA)|0,m=m+Math.imul(gA,fe)|0,N=N+Math.imul(gA,vA)|0,l=l+Math.imul(lA,ge)|0,m=m+Math.imul(lA,DA)|0,m=m+Math.imul(nA,ge)|0,N=N+Math.imul(nA,DA)|0,l=l+Math.imul(sA,ee)|0,m=m+Math.imul(sA,XA)|0,m=m+Math.imul(iA,ee)|0,N=N+Math.imul(iA,XA)|0;var zA=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(zA>>>26)|0,zA&=67108863,l=Math.imul(fA,uA),m=Math.imul(fA,AA),m=m+Math.imul(eA,uA)|0,N=Math.imul(eA,AA),l=l+Math.imul(F,qA)|0,m=m+Math.imul(F,BA)|0,m=m+Math.imul(T,qA)|0,N=N+Math.imul(T,BA)|0,l=l+Math.imul(OA,oe)|0,m=m+Math.imul(OA,mA)|0,m=m+Math.imul(x,oe)|0,N=N+Math.imul(x,mA)|0,l=l+Math.imul(UA,fe)|0,m=m+Math.imul(UA,vA)|0,m=m+Math.imul(rA,fe)|0,N=N+Math.imul(rA,vA)|0,l=l+Math.imul(xA,ge)|0,m=m+Math.imul(xA,DA)|0,m=m+Math.imul(gA,ge)|0,N=N+Math.imul(gA,DA)|0,l=l+Math.imul(lA,ee)|0,m=m+Math.imul(lA,XA)|0,m=m+Math.imul(nA,ee)|0,N=N+Math.imul(nA,XA)|0;var ae=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(ae>>>26)|0,ae&=67108863,l=Math.imul(fA,qA),m=Math.imul(fA,BA),m=m+Math.imul(eA,qA)|0,N=Math.imul(eA,BA),l=l+Math.imul(F,oe)|0,m=m+Math.imul(F,mA)|0,m=m+Math.imul(T,oe)|0,N=N+Math.imul(T,mA)|0,l=l+Math.imul(OA,fe)|0,m=m+Math.imul(OA,vA)|0,m=m+Math.imul(x,fe)|0,N=N+Math.imul(x,vA)|0,l=l+Math.imul(UA,ge)|0,m=m+Math.imul(UA,DA)|0,m=m+Math.imul(rA,ge)|0,N=N+Math.imul(rA,DA)|0,l=l+Math.imul(xA,ee)|0,m=m+Math.imul(xA,XA)|0,m=m+Math.imul(gA,ee)|0,N=N+Math.imul(gA,XA)|0;var se=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(se>>>26)|0,se&=67108863,l=Math.imul(fA,oe),m=Math.imul(fA,mA),m=m+Math.imul(eA,oe)|0,N=Math.imul(eA,mA),l=l+Math.imul(F,fe)|0,m=m+Math.imul(F,vA)|0,m=m+Math.imul(T,fe)|0,N=N+Math.imul(T,vA)|0,l=l+Math.imul(OA,ge)|0,m=m+Math.imul(OA,DA)|0,m=m+Math.imul(x,ge)|0,N=N+Math.imul(x,DA)|0,l=l+Math.imul(UA,ee)|0,m=m+Math.imul(UA,XA)|0,m=m+Math.imul(rA,ee)|0,N=N+Math.imul(rA,XA)|0;var Be=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(Be>>>26)|0,Be&=67108863,l=Math.imul(fA,fe),m=Math.imul(fA,vA),m=m+Math.imul(eA,fe)|0,N=Math.imul(eA,vA),l=l+Math.imul(F,ge)|0,m=m+Math.imul(F,DA)|0,m=m+Math.imul(T,ge)|0,N=N+Math.imul(T,DA)|0,l=l+Math.imul(OA,ee)|0,m=m+Math.imul(OA,XA)|0,m=m+Math.imul(x,ee)|0,N=N+Math.imul(x,XA)|0;var de=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(de>>>26)|0,de&=67108863,l=Math.imul(fA,ge),m=Math.imul(fA,DA),m=m+Math.imul(eA,ge)|0,N=Math.imul(eA,DA),l=l+Math.imul(F,ee)|0,m=m+Math.imul(F,XA)|0,m=m+Math.imul(T,ee)|0,N=N+Math.imul(T,XA)|0;var si=(s+l|0)+((m&8191)<<13)|0;s=(N+(m>>>13)|0)+(si>>>26)|0,si&=67108863,l=Math.imul(fA,ee),m=Math.imul(fA,XA),m=m+Math.imul(eA,ee)|0,N=Math.imul(eA,XA);var Ai=(s+l|0)+((m&8191)<<13)|0;return s=(N+(m>>>13)|0)+(Ai>>>26)|0,Ai&=67108863,u[0]=Qe,u[1]=Ce,u[2]=ye,u[3]=we,u[4]=De,u[5]=me,u[6]=EA,u[7]=GA,u[8]=LA,u[9]=HA,u[10]=JA,u[11]=VA,u[12]=zA,u[13]=ae,u[14]=se,u[15]=Be,u[16]=de,u[17]=si,u[18]=Ai,s!==0&&(u[19]=s,c.length++),c};Math.imul||(S=b);function G(a,g,I){I.negative=g.negative^a.negative,I.length=a.length+g.length;for(var c=0,B=0,E=0;E>>26)|0,B+=u>>>26,u&=67108863}I.words[E]=s,c=u,u=B}return c!==0?I.words[E]=c:I.length--,I._strip()}function U(a,g,I){return G(a,g,I)}r.prototype.mulTo=function(g,I){var c,B=this.length+g.length;return this.length===10&&g.length===10?c=S(this,g,I):B<63?c=b(this,g,I):B<1024?c=G(this,g,I):c=U(this,g,I),c},r.prototype.mul=function(g){var I=new r(null);return I.words=new Array(this.length+g.length),this.mulTo(g,I)},r.prototype.mulf=function(g){var I=new r(null);return I.words=new Array(this.length+g.length),U(this,g,I)},r.prototype.imul=function(g){return this.clone().mulTo(g,this)},r.prototype.imuln=function(g){var I=g<0;I&&(g=-g),i(typeof g=="number"),i(g<67108864);for(var c=0,B=0;B>=26,c+=E/67108864|0,c+=u>>>26,this.words[B]=u&67108863}return c!==0&&(this.words[B]=c,this.length++),I?this.ineg():this},r.prototype.muln=function(g){return this.clone().imuln(g)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(g){var I=R(g);if(I.length===0)return new r(1);for(var c=this,B=0;B=0);var I=g%26,c=(g-I)/26,B=67108863>>>26-I<<26-I,E;if(I!==0){var u=0;for(E=0;E>>26-I}u&&(this.words[E]=u,this.length++)}if(c!==0){for(E=this.length-1;E>=0;E--)this.words[E+c]=this.words[E];for(E=0;E=0);var B;I?B=(I-I%26)/26:B=0;var E=g%26,u=Math.min((g-E)/26,this.length),s=67108863^67108863>>>E<u)for(this.length-=u,m=0;m=0&&(N!==0||m>=B);m--){var L=this.words[m]|0;this.words[m]=N<<26-E|L>>>E,N=L&s}return l&&N!==0&&(l.words[l.length++]=N),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},r.prototype.ishrn=function(g,I,c){return i(this.negative===0),this.iushrn(g,I,c)},r.prototype.shln=function(g){return this.clone().ishln(g)},r.prototype.ushln=function(g){return this.clone().iushln(g)},r.prototype.shrn=function(g){return this.clone().ishrn(g)},r.prototype.ushrn=function(g){return this.clone().iushrn(g)},r.prototype.testn=function(g){i(typeof g=="number"&&g>=0);var I=g%26,c=(g-I)/26,B=1<=0);var I=g%26,c=(g-I)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=c)return this;if(I!==0&&c++,this.length=Math.min(c,this.length),I!==0){var B=67108863^67108863>>>I<=67108864;I++)this.words[I]-=67108864,I===this.length-1?this.words[I+1]=1:this.words[I+1]++;return this.length=Math.max(this.length,I+1),this},r.prototype.isubn=function(g){if(i(typeof g=="number"),i(g<67108864),g<0)return this.iaddn(-g);if(this.negative!==0)return this.negative=0,this.iaddn(g),this.negative=1,this;if(this.words[0]-=g,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var I=0;I>26)-(l/67108864|0),this.words[E+c]=u&67108863}for(;E>26,this.words[E+c]=u&67108863;if(s===0)return this._strip();for(i(s===-1),s=0,E=0;E>26,this.words[E]=u&67108863;return this.negative=1,this._strip()},r.prototype._wordDiv=function(g,I){var c=this.length-g.length,B=this.clone(),E=g,u=E.words[E.length-1]|0,s=this._countBits(u);c=26-s,c!==0&&(E=E.ushln(c),B.iushln(c),u=E.words[E.length-1]|0);var l=B.length-E.length,m;if(I!=="mod"){m=new r(null),m.length=l+1,m.words=new Array(m.length);for(var N=0;N=0;O--){var H=(B.words[E.length+O]|0)*67108864+(B.words[E.length+O-1]|0);for(H=Math.min(H/u|0,67108863),B._ishlnsubmul(E,H,O);B.negative!==0;)H--,B.negative=0,B._ishlnsubmul(E,1,O),B.isZero()||(B.negative^=1);m&&(m.words[O]=H)}return m&&m._strip(),B._strip(),I!=="div"&&c!==0&&B.iushrn(c),{div:m||null,mod:B}},r.prototype.divmod=function(g,I,c){if(i(!g.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var B,E,u;return this.negative!==0&&g.negative===0?(u=this.neg().divmod(g,I),I!=="mod"&&(B=u.div.neg()),I!=="div"&&(E=u.mod.neg(),c&&E.negative!==0&&E.iadd(g)),{div:B,mod:E}):this.negative===0&&g.negative!==0?(u=this.divmod(g.neg(),I),I!=="mod"&&(B=u.div.neg()),{div:B,mod:u.mod}):this.negative&g.negative?(u=this.neg().divmod(g.neg(),I),I!=="div"&&(E=u.mod.neg(),c&&E.negative!==0&&E.isub(g)),{div:u.div,mod:E}):g.length>this.length||this.cmp(g)<0?{div:new r(0),mod:this}:g.length===1?I==="div"?{div:this.divn(g.words[0]),mod:null}:I==="mod"?{div:null,mod:new r(this.modrn(g.words[0]))}:{div:this.divn(g.words[0]),mod:new r(this.modrn(g.words[0]))}:this._wordDiv(g,I)},r.prototype.div=function(g){return this.divmod(g,"div",!1).div},r.prototype.mod=function(g){return this.divmod(g,"mod",!1).mod},r.prototype.umod=function(g){return this.divmod(g,"mod",!0).mod},r.prototype.divRound=function(g){var I=this.divmod(g);if(I.mod.isZero())return I.div;var c=I.div.negative!==0?I.mod.isub(g):I.mod,B=g.ushrn(1),E=g.andln(1),u=c.cmp(B);return u<0||E===1&&u===0?I.div:I.div.negative!==0?I.div.isubn(1):I.div.iaddn(1)},r.prototype.modrn=function(g){var I=g<0;I&&(g=-g),i(g<=67108863);for(var c=(1<<26)%g,B=0,E=this.length-1;E>=0;E--)B=(c*B+(this.words[E]|0))%g;return I?-B:B},r.prototype.modn=function(g){return this.modrn(g)},r.prototype.idivn=function(g){var I=g<0;I&&(g=-g),i(g<=67108863);for(var c=0,B=this.length-1;B>=0;B--){var E=(this.words[B]|0)+c*67108864;this.words[B]=E/g|0,c=E%g}return this._strip(),I?this.ineg():this},r.prototype.divn=function(g){return this.clone().idivn(g)},r.prototype.egcd=function(g){i(g.negative===0),i(!g.isZero());var I=this,c=g.clone();I.negative!==0?I=I.umod(g):I=I.clone();for(var B=new r(1),E=new r(0),u=new r(0),s=new r(1),l=0;I.isEven()&&c.isEven();)I.iushrn(1),c.iushrn(1),++l;for(var m=c.clone(),N=I.clone();!I.isZero();){for(var L=0,O=1;!(I.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(I.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(m),E.isub(N)),B.iushrn(1),E.iushrn(1);for(var H=0,K=1;!(c.words[0]&K)&&H<26;++H,K<<=1);if(H>0)for(c.iushrn(H);H-- >0;)(u.isOdd()||s.isOdd())&&(u.iadd(m),s.isub(N)),u.iushrn(1),s.iushrn(1);I.cmp(c)>=0?(I.isub(c),B.isub(u),E.isub(s)):(c.isub(I),u.isub(B),s.isub(E))}return{a:u,b:s,gcd:c.iushln(l)}},r.prototype._invmp=function(g){i(g.negative===0),i(!g.isZero());var I=this,c=g.clone();I.negative!==0?I=I.umod(g):I=I.clone();for(var B=new r(1),E=new r(0),u=c.clone();I.cmpn(1)>0&&c.cmpn(1)>0;){for(var s=0,l=1;!(I.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(I.iushrn(s);s-- >0;)B.isOdd()&&B.iadd(u),B.iushrn(1);for(var m=0,N=1;!(c.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(c.iushrn(m);m-- >0;)E.isOdd()&&E.iadd(u),E.iushrn(1);I.cmp(c)>=0?(I.isub(c),B.isub(E)):(c.isub(I),E.isub(B))}var L;return I.cmpn(1)===0?L=B:L=E,L.cmpn(0)<0&&L.iadd(g),L},r.prototype.gcd=function(g){if(this.isZero())return g.abs();if(g.isZero())return this.abs();var I=this.clone(),c=g.clone();I.negative=0,c.negative=0;for(var B=0;I.isEven()&&c.isEven();B++)I.iushrn(1),c.iushrn(1);do{for(;I.isEven();)I.iushrn(1);for(;c.isEven();)c.iushrn(1);var E=I.cmp(c);if(E<0){var u=I;I=c,c=u}else if(E===0||c.cmpn(1)===0)break;I.isub(c)}while(!0);return c.iushln(B)},r.prototype.invm=function(g){return this.egcd(g).a.umod(g)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(g){return this.words[0]&g},r.prototype.bincn=function(g){i(typeof g=="number");var I=g%26,c=(g-I)/26,B=1<>>26,s&=67108863,this.words[u]=s}return E!==0&&(this.words[u]=E,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(g){var I=g<0;if(this.negative!==0&&!I)return-1;if(this.negative===0&&I)return 1;this._strip();var c;if(this.length>1)c=1;else{I&&(g=-g),i(g<=67108863,"Number is too big");var B=this.words[0]|0;c=B===g?0:Bg.length)return 1;if(this.length=0;c--){var B=this.words[c]|0,E=g.words[c]|0;if(B!==E){BE&&(I=1);break}}return I},r.prototype.gtn=function(g){return this.cmpn(g)===1},r.prototype.gt=function(g){return this.cmp(g)===1},r.prototype.gten=function(g){return this.cmpn(g)>=0},r.prototype.gte=function(g){return this.cmp(g)>=0},r.prototype.ltn=function(g){return this.cmpn(g)===-1},r.prototype.lt=function(g){return this.cmp(g)===-1},r.prototype.lten=function(g){return this.cmpn(g)<=0},r.prototype.lte=function(g){return this.cmp(g)<=0},r.prototype.eqn=function(g){return this.cmpn(g)===0},r.prototype.eq=function(g){return this.cmp(g)===0},r.red=function(g){return new Q(g)},r.prototype.toRed=function(g){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),g.convertTo(this)._forceRed(g)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(g){return this.red=g,this},r.prototype.forceRed=function(g){return i(!this.red,"Already a number in reduction context"),this._forceRed(g)},r.prototype.redAdd=function(g){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,g)},r.prototype.redIAdd=function(g){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,g)},r.prototype.redSub=function(g){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,g)},r.prototype.redISub=function(g){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,g)},r.prototype.redShl=function(g){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,g)},r.prototype.redMul=function(g){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.mul(this,g)},r.prototype.redIMul=function(g){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,g),this.red.imul(this,g)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(g){return i(this.red&&!g.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,g)};var P={k256:null,p224:null,p192:null,p25519:null};function z(a,g){this.name=a,this.p=new r(g,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}z.prototype._tmp=function(){var g=new r(null);return g.words=new Array(Math.ceil(this.n/13)),g},z.prototype.ireduce=function(g){var I=g,c;do this.split(I,this.tmp),I=this.imulK(I),I=I.iadd(this.tmp),c=I.bitLength();while(c>this.n);var B=c0?I.isub(this.p):I.strip!==void 0?I.strip():I._strip(),I},z.prototype.split=function(g,I){g.iushrn(this.n,0,I)},z.prototype.imulK=function(g){return g.imul(this.k)};function oA(){z.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(oA,z),oA.prototype.split=function(g,I){for(var c=4194303,B=Math.min(g.length,9),E=0;E>>22,u=s}u>>>=22,g.words[E-10]=u,u===0&&g.length>10?g.length-=10:g.length-=9},oA.prototype.imulK=function(g){g.words[g.length]=0,g.words[g.length+1]=0,g.length+=2;for(var I=0,c=0;c>>=26,g.words[c]=E,I=B}return I!==0&&(g.words[g.length++]=I),g},r._prime=function(g){if(P[g])return P[g];var I;if(g==="k256")I=new oA;else if(g==="p224")I=new J;else if(g==="p192")I=new q;else if(g==="p25519")I=new X;else throw new Error("Unknown prime "+g);return P[g]=I,I};function Q(a){if(typeof a=="string"){var g=r._prime(a);this.m=g.p,this.prime=g}else i(a.gtn(1),"modulus must be greater than 1"),this.m=a,this.prime=null}Q.prototype._verify1=function(g){i(g.negative===0,"red works only with positives"),i(g.red,"red works only with red numbers")},Q.prototype._verify2=function(g,I){i((g.negative|I.negative)===0,"red works only with positives"),i(g.red&&g.red===I.red,"red works only with red numbers")},Q.prototype.imod=function(g){return this.prime?this.prime.ireduce(g)._forceRed(this):(C(g,g.umod(this.m)._forceRed(this)),g)},Q.prototype.neg=function(g){return g.isZero()?g.clone():this.m.sub(g)._forceRed(this)},Q.prototype.add=function(g,I){this._verify2(g,I);var c=g.add(I);return c.cmp(this.m)>=0&&c.isub(this.m),c._forceRed(this)},Q.prototype.iadd=function(g,I){this._verify2(g,I);var c=g.iadd(I);return c.cmp(this.m)>=0&&c.isub(this.m),c},Q.prototype.sub=function(g,I){this._verify2(g,I);var c=g.sub(I);return c.cmpn(0)<0&&c.iadd(this.m),c._forceRed(this)},Q.prototype.isub=function(g,I){this._verify2(g,I);var c=g.isub(I);return c.cmpn(0)<0&&c.iadd(this.m),c},Q.prototype.shl=function(g,I){return this._verify1(g),this.imod(g.ushln(I))},Q.prototype.imul=function(g,I){return this._verify2(g,I),this.imod(g.imul(I))},Q.prototype.mul=function(g,I){return this._verify2(g,I),this.imod(g.mul(I))},Q.prototype.isqr=function(g){return this.imul(g,g.clone())},Q.prototype.sqr=function(g){return this.mul(g,g)},Q.prototype.sqrt=function(g){if(g.isZero())return g.clone();var I=this.m.andln(3);if(i(I%2===1),I===3){var c=this.m.add(new r(1)).iushrn(2);return this.pow(g,c)}for(var B=this.m.subn(1),E=0;!B.isZero()&&B.andln(1)===0;)E++,B.iushrn(1);i(!B.isZero());var u=new r(1).toRed(this),s=u.redNeg(),l=this.m.subn(1).iushrn(1),m=this.m.bitLength();for(m=new r(2*m*m).toRed(this);this.pow(m,l).cmp(s)!==0;)m.redIAdd(s);for(var N=this.pow(m,B),L=this.pow(g,B.addn(1).iushrn(1)),O=this.pow(g,B),H=E;O.cmp(u)!==0;){for(var K=O,Y=0;K.cmp(u)!==0;Y++)K=K.redSqr();i(Y=0;E--){for(var N=I.words[E],L=m-1;L>=0;L--){var O=N>>L&1;if(u!==B[0]&&(u=this.sqr(u)),O===0&&s===0){l=0;continue}s<<=1,s|=O,l++,!(l!==c&&(E!==0||L!==0))&&(u=this.mul(u,B[s]),l=0,s=0)}m=26}return u},Q.prototype.convertTo=function(g){var I=g.umod(this.m);return I===g?I.clone():I},Q.prototype.convertFrom=function(g){var I=g.clone();return I.red=null,I},r.mont=function(g){return new n(g)};function n(a){Q.call(this,a),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(n,Q),n.prototype.convertTo=function(g){return this.imod(g.ushln(this.shift))},n.prototype.convertFrom=function(g){var I=this.imod(g.mul(this.rinv));return I.red=null,I},n.prototype.imul=function(g,I){if(g.isZero()||I.isZero())return g.words[0]=0,g.length=1,g;var c=g.imul(I),B=c.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),E=c.isub(B).iushrn(this.shift),u=E;return E.cmp(this.m)>=0?u=E.isub(this.m):E.cmpn(0)<0&&(u=E.iadd(this.m)),u._forceRed(this)},n.prototype.mul=function(g,I){if(g.isZero()||I.isZero())return new r(0)._forceRed(this);var c=g.mul(I),B=c.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),E=c.isub(B).iushrn(this.shift),u=E;return E.cmp(this.m)>=0?u=E.isub(this.m):E.cmpn(0)<0&&(u=E.iadd(this.m)),u._forceRed(this)},n.prototype.invm=function(g){var I=this.imod(g._invmp(this.m).mul(this.r2));return I._forceRed(this)}})(e,Qr)})(SR);var yB=SR.exports;const RS=$i(yB);var nM,u8;function NR(){if(u8)return nM;u8=1;var e=yB,A=$u(),t=Ve().Buffer;function i(f){var h=f.modulus.byteLength(),d;do d=new e(A(h));while(d.cmp(f.modulus)>=0||!d.umod(f.prime1)||!d.umod(f.prime2));return d}function o(f){var h=i(f),d=h.toRed(e.mont(f.modulus)).redPow(new e(f.publicExponent)).fromRed();return{blinder:d,unblinder:h.invm(f.modulus)}}function r(f,h){var d=o(h),p=h.modulus.byteLength(),C=new e(f).mul(d.blinder).umod(h.modulus),y=C.toRed(e.mont(h.prime1)),w=C.toRed(e.mont(h.prime2)),D=h.coefficient,v=h.prime1,M=h.prime2,R=y.redPow(h.exponent1).fromRed(),b=w.redPow(h.exponent2).fromRed(),S=R.isub(b).imul(D).umod(v).imul(M);return b.iadd(S).imul(d.unblinder).umod(h.modulus).toArrayLike(t,"be",p)}return r.getr=i,nM=r,nM}var Ln={},oM={},VE={exports:{}};VE.exports;var l8;function qCA(){return l8||(l8=1,function(e){(function(A,t){function i(Q,n){if(!Q)throw new Error(n||"Assertion failed")}function o(Q,n){Q.super_=n;var a=function(){};a.prototype=n.prototype,Q.prototype=new a,Q.prototype.constructor=Q}function r(Q,n,a){if(r.isBN(Q))return Q;this.negative=0,this.words=null,this.length=0,this.red=null,Q!==null&&((n==="le"||n==="be")&&(a=n,n=10),this._init(Q||0,n||10,a||"be"))}typeof A=="object"?A.exports=r:t.BN=r,r.BN=r,r.wordSize=26;var f;try{typeof window<"u"&&typeof window.Buffer<"u"?f=window.Buffer:f=Ht.Buffer}catch{}r.isBN=function(n){return n instanceof r?!0:n!==null&&typeof n=="object"&&n.constructor.wordSize===r.wordSize&&Array.isArray(n.words)},r.max=function(n,a){return n.cmp(a)>0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,I+=2,I>=26&&(I-=26,B--),c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)}(VE)),VE.exports}var sM={},C8;function HCA(){return C8||(C8=1,function(e){var A=wB(),t=Ue,i=e;i.define=function(f,h){return new o(f,h)};function o(r,f){this.name=r,this.body=f,this.decoders={},this.encoders={}}o.prototype._createNamed=function(f){var h;try{h=Ht.runInThisContext("(function "+this.name+`(entity) { + this._initNamed(entity); +})`)}catch{h=function(p){this._initNamed(p)}}return t(h,f),h.prototype._initNamed=function(p){f.call(this,p)},new h(this)},o.prototype._getDecoder=function(f){return f=f||"der",this.decoders.hasOwnProperty(f)||(this.decoders[f]=this._createNamed(A.decoders[f])),this.decoders[f]},o.prototype.decode=function(f,h,d){return this._getDecoder(h).decode(f,d)},o.prototype._getEncoder=function(f){return f=f||"der",this.encoders.hasOwnProperty(f)||(this.encoders[f]=this._createNamed(A.encoders[f])),this.encoders[f]},o.prototype.encode=function(f,h,d){return this._getEncoder(h).encode(f,d)}}(sM)),sM}var aM={},gM={},B8;function YCA(){if(B8)return gM;B8=1;var e=Ue;function A(i){this._reporterState={obj:null,path:[],options:i||{},errors:[]}}gM.Reporter=A,A.prototype.isError=function(o){return o instanceof t},A.prototype.save=function(){var o=this._reporterState;return{obj:o.obj,pathLen:o.path.length}},A.prototype.restore=function(o){var r=this._reporterState;r.obj=o.obj,r.path=r.path.slice(0,o.pathLen)},A.prototype.enterKey=function(o){return this._reporterState.path.push(o)},A.prototype.exitKey=function(o){var r=this._reporterState;r.path=r.path.slice(0,o-1)},A.prototype.leaveKey=function(o,r,f){var h=this._reporterState;this.exitKey(o),h.obj!==null&&(h.obj[r]=f)},A.prototype.path=function(){return this._reporterState.path.join("/")},A.prototype.enterObject=function(){var o=this._reporterState,r=o.obj;return o.obj={},r},A.prototype.leaveObject=function(o){var r=this._reporterState,f=r.obj;return r.obj=o,f},A.prototype.error=function(o){var r,f=this._reporterState,h=o instanceof t;if(h?r=o:r=new t(f.path.map(function(d){return"["+JSON.stringify(d)+"]"}).join(""),o.message||o,o.stack),!f.options.partial)throw r;return h||f.errors.push(r),r},A.prototype.wrapResult=function(o){var r=this._reporterState;return r.options.partial?{result:this.isError(o)?null:o,errors:r.errors}:o};function t(i,o){this.path=i,this.rethrow(o)}return e(t,Error),t.prototype.rethrow=function(o){if(this.message=o+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,t),!this.stack)try{throw new Error(this.message)}catch(r){this.stack=r.stack}return this},gM}var Ud={},d8;function E8(){if(d8)return Ud;d8=1;var e=Ue,A=K0().Reporter,t=Co.Buffer;function i(r,f){if(A.call(this,f),!t.isBuffer(r)){this.error("Input not Buffer");return}this.base=r,this.offset=0,this.length=r.length}e(i,A),Ud.DecoderBuffer=i,i.prototype.save=function(){return{offset:this.offset,reporter:A.prototype.save.call(this)}},i.prototype.restore=function(f){var h=new i(this.base);return h.offset=f.offset,h.length=this.offset,this.offset=f.offset,A.prototype.restore.call(this,f.reporter),h},i.prototype.isEmpty=function(){return this.offset===this.length},i.prototype.readUInt8=function(f){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(f||"DecoderBuffer overrun")},i.prototype.skip=function(f,h){if(!(this.offset+f<=this.length))return this.error(h||"DecoderBuffer overrun");var d=new i(this.base);return d._reporterState=this._reporterState,d.offset=this.offset,d.length=this.offset+f,this.offset+=f,d},i.prototype.raw=function(f){return this.base.slice(f?f.offset:this.offset,this.length)};function o(r,f){if(Array.isArray(r))this.length=0,this.value=r.map(function(h){return h instanceof o||(h=new o(h,f)),this.length+=h.length,h},this);else if(typeof r=="number"){if(!(0<=r&&r<=255))return f.error("non-byte EncoderBuffer value");this.value=r,this.length=1}else if(typeof r=="string")this.value=r,this.length=t.byteLength(r);else if(t.isBuffer(r))this.value=r,this.length=r.length;else return f.error("Unsupported type: "+typeof r)}return Ud.EncoderBuffer=o,o.prototype.join=function(f,h){return f||(f=new t(this.length)),h||(h=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(d){d.join(f,h),h+=d.length}):(typeof this.value=="number"?f[h]=this.value:typeof this.value=="string"?f.write(this.value,h):t.isBuffer(this.value)&&this.value.copy(f,h),h+=this.length)),f},Ud}var IM,Q8;function JCA(){if(Q8)return IM;Q8=1;var e=K0().Reporter,A=K0().EncoderBuffer,t=K0().DecoderBuffer,i=lo,o=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],r=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(o),f=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function h(p,C){var y={};this._baseState=y,y.enc=p,y.parent=C||null,y.children=null,y.tag=null,y.args=null,y.reverseArgs=null,y.choice=null,y.optional=!1,y.any=!1,y.obj=!1,y.use=null,y.useDecoder=null,y.key=null,y.default=null,y.explicit=null,y.implicit=null,y.contains=null,y.parent||(y.children=[],this._wrap())}IM=h;var d=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];return h.prototype.clone=function(){var C=this._baseState,y={};d.forEach(function(D){y[D]=C[D]});var w=new this.constructor(y.parent);return w._baseState=y,w},h.prototype._wrap=function(){var C=this._baseState;r.forEach(function(y){this[y]=function(){var D=new this.constructor(this);return C.children.push(D),D[y].apply(D,arguments)}},this)},h.prototype._init=function(C){var y=this._baseState;i(y.parent===null),C.call(this),y.children=y.children.filter(function(w){return w._baseState.parent===this},this),i.equal(y.children.length,1,"Root node can have only one child")},h.prototype._useArgs=function(C){var y=this._baseState,w=C.filter(function(D){return D instanceof this.constructor},this);C=C.filter(function(D){return!(D instanceof this.constructor)},this),w.length!==0&&(i(y.children===null),y.children=w,w.forEach(function(D){D._baseState.parent=this},this)),C.length!==0&&(i(y.args===null),y.args=C,y.reverseArgs=C.map(function(D){if(typeof D!="object"||D.constructor!==Object)return D;var v={};return Object.keys(D).forEach(function(M){M==(M|0)&&(M|=0);var R=D[M];v[R]=M}),v}))},f.forEach(function(p){h.prototype[p]=function(){var y=this._baseState;throw new Error(p+" not implemented for encoding: "+y.enc)}}),o.forEach(function(p){h.prototype[p]=function(){var y=this._baseState,w=Array.prototype.slice.call(arguments);return i(y.tag===null),y.tag=p,this._useArgs(w),this}}),h.prototype.use=function(C){i(C);var y=this._baseState;return i(y.use===null),y.use=C,this},h.prototype.optional=function(){var C=this._baseState;return C.optional=!0,this},h.prototype.def=function(C){var y=this._baseState;return i(y.default===null),y.default=C,y.optional=!0,this},h.prototype.explicit=function(C){var y=this._baseState;return i(y.explicit===null&&y.implicit===null),y.explicit=C,this},h.prototype.implicit=function(C){var y=this._baseState;return i(y.explicit===null&&y.implicit===null),y.implicit=C,this},h.prototype.obj=function(){var C=this._baseState,y=Array.prototype.slice.call(arguments);return C.obj=!0,y.length!==0&&this._useArgs(y),this},h.prototype.key=function(C){var y=this._baseState;return i(y.key===null),y.key=C,this},h.prototype.any=function(){var C=this._baseState;return C.any=!0,this},h.prototype.choice=function(C){var y=this._baseState;return i(y.choice===null),y.choice=C,this._useArgs(Object.keys(C).map(function(w){return C[w]})),this},h.prototype.contains=function(C){var y=this._baseState;return i(y.use===null),y.contains=C,this},h.prototype._decode=function(C,y){var w=this._baseState;if(w.parent===null)return C.wrapResult(w.children[0]._decode(C,y));var D=w.default,v=!0,M=null;if(w.key!==null&&(M=C.enterKey(w.key)),w.optional){var R=null;if(w.explicit!==null?R=w.explicit:w.implicit!==null?R=w.implicit:w.tag!==null&&(R=w.tag),R===null&&!w.any){var b=C.save();try{w.choice===null?this._decodeGeneric(w.tag,C,y):this._decodeChoice(C,y),v=!0}catch{v=!1}C.restore(b)}else if(v=this._peekTag(C,R,w.any),C.isError(v))return v}var S;if(w.obj&&v&&(S=C.enterObject()),v){if(w.explicit!==null){var G=this._decodeTag(C,w.explicit);if(C.isError(G))return G;C=G}var U=C.offset;if(w.use===null&&w.choice===null){if(w.any)var b=C.save();var P=this._decodeTag(C,w.implicit!==null?w.implicit:w.tag,w.any);if(C.isError(P))return P;w.any?D=C.raw(b):C=P}if(y&&y.track&&w.tag!==null&&y.track(C.path(),U,C.length,"tagged"),y&&y.track&&w.tag!==null&&y.track(C.path(),C.offset,C.length,"content"),w.any?D=D:w.choice===null?D=this._decodeGeneric(w.tag,C,y):D=this._decodeChoice(C,y),C.isError(D))return D;if(!w.any&&w.choice===null&&w.children!==null&&w.children.forEach(function(J){J._decode(C,y)}),w.contains&&(w.tag==="octstr"||w.tag==="bitstr")){var z=new t(D);D=this._getUse(w.contains,C._reporterState.obj)._decode(z,y)}}return w.obj&&v&&(D=C.leaveObject(S)),w.key!==null&&(D!==null||v===!0)?C.leaveKey(M,w.key,D):M!==null&&C.exitKey(M),D},h.prototype._decodeGeneric=function(C,y,w){var D=this._baseState;return C==="seq"||C==="set"?null:C==="seqof"||C==="setof"?this._decodeList(y,C,D.args[0],w):/str$/.test(C)?this._decodeStr(y,C,w):C==="objid"&&D.args?this._decodeObjid(y,D.args[0],D.args[1],w):C==="objid"?this._decodeObjid(y,null,null,w):C==="gentime"||C==="utctime"?this._decodeTime(y,C,w):C==="null_"?this._decodeNull(y,w):C==="bool"?this._decodeBool(y,w):C==="objDesc"?this._decodeStr(y,C,w):C==="int"||C==="enum"?this._decodeInt(y,D.args&&D.args[0],w):D.use!==null?this._getUse(D.use,y._reporterState.obj)._decode(y,w):y.error("unknown tag: "+C)},h.prototype._getUse=function(C,y){var w=this._baseState;return w.useDecoder=this._use(C,y),i(w.useDecoder._baseState.parent===null),w.useDecoder=w.useDecoder._baseState.children[0],w.implicit!==w.useDecoder._baseState.implicit&&(w.useDecoder=w.useDecoder.clone(),w.useDecoder._baseState.implicit=w.implicit),w.useDecoder},h.prototype._decodeChoice=function(C,y){var w=this._baseState,D=null,v=!1;return Object.keys(w.choice).some(function(M){var R=C.save(),b=w.choice[M];try{var S=b._decode(C,y);if(C.isError(S))return!1;D={type:M,value:S},v=!0}catch{return C.restore(R),!1}return!0},this),v?D:C.error("Choice not matched")},h.prototype._createEncoderBuffer=function(C){return new A(C,this.reporter)},h.prototype._encode=function(C,y,w){var D=this._baseState;if(!(D.default!==null&&D.default===C)){var v=this._encodeValue(C,y,w);if(v!==void 0&&!this._skipDefault(v,y,w))return v}},h.prototype._encodeValue=function(C,y,w){var D=this._baseState;if(D.parent===null)return D.children[0]._encode(C,y||new e);var b=null;if(this.reporter=y,D.optional&&C===void 0)if(D.default!==null)C=D.default;else return;var v=null,M=!1;if(D.any)b=this._createEncoderBuffer(C);else if(D.choice)b=this._encodeChoice(C,y);else if(D.contains)v=this._getUse(D.contains,w)._encode(C,y),M=!0;else if(D.children)v=D.children.map(function(U){if(U._baseState.tag==="null_")return U._encode(null,y,C);if(U._baseState.key===null)return y.error("Child should have a key");var P=y.enterKey(U._baseState.key);if(typeof C!="object")return y.error("Child expected, but input is not object");var z=U._encode(C[U._baseState.key],y,C);return y.leaveKey(P),z},this).filter(function(U){return U}),v=this._createEncoderBuffer(v);else if(D.tag==="seqof"||D.tag==="setof"){if(!(D.args&&D.args.length===1))return y.error("Too many args for : "+D.tag);if(!Array.isArray(C))return y.error("seqof/setof, but data is not Array");var R=this.clone();R._baseState.implicit=null,v=this._createEncoderBuffer(C.map(function(U){var P=this._baseState;return this._getUse(P.args[0],C)._encode(U,y)},R))}else D.use!==null?b=this._getUse(D.use,w)._encode(C,y):(v=this._encodePrimitive(D.tag,C),M=!0);var b;if(!D.any&&D.choice===null){var S=D.implicit!==null?D.implicit:D.tag,G=D.implicit===null?"universal":"context";S===null?D.use===null&&y.error("Tag could be omitted only for .use()"):D.use===null&&(b=this._encodeComposite(S,M,G,v))}return D.explicit!==null&&(b=this._encodeComposite(D.explicit,!1,"context",b)),b},h.prototype._encodeChoice=function(C,y){var w=this._baseState,D=w.choice[C.type];return D||i(!1,C.type+" not found in "+JSON.stringify(Object.keys(w.choice))),D._encode(C.value,y)},h.prototype._encodePrimitive=function(C,y){var w=this._baseState;if(/str$/.test(C))return this._encodeStr(y,C);if(C==="objid"&&w.args)return this._encodeObjid(y,w.reverseArgs[0],w.args[1]);if(C==="objid")return this._encodeObjid(y,null,null);if(C==="gentime"||C==="utctime")return this._encodeTime(y,C);if(C==="null_")return this._encodeNull();if(C==="int"||C==="enum")return this._encodeInt(y,w.args&&w.reverseArgs[0]);if(C==="bool")return this._encodeBool(y);if(C==="objDesc")return this._encodeStr(y,C);throw new Error("Unsupported tag: "+C)},h.prototype._isNumstr=function(C){return/^[0-9 ]*$/.test(C)},h.prototype._isPrintstr=function(C){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(C)},IM}var p8;function K0(){return p8||(p8=1,function(e){var A=e;A.Reporter=YCA().Reporter,A.DecoderBuffer=E8().DecoderBuffer,A.EncoderBuffer=E8().EncoderBuffer,A.Node=JCA()}(aM)),aM}var fM={},hM={},y8;function TCA(){return y8||(y8=1,function(e){var A=AO();e.tagClass={0:"universal",1:"application",2:"context",3:"private"},e.tagClassByName=A._reverse(e.tagClass),e.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},e.tagByName=A._reverse(e.tag)}(hM)),hM}var w8;function AO(){return w8||(w8=1,function(e){var A=e;A._reverse=function(i){var o={};return Object.keys(i).forEach(function(r){(r|0)==r&&(r=r|0);var f=i[r];o[f]=r}),o},A.der=TCA()}(fM)),fM}var cM={},uM,D8;function eO(){if(D8)return uM;D8=1;var e=Ue,A=wB(),t=A.base,i=A.bignum,o=A.constants.der;function r(p){this.enc="der",this.name=p.name,this.entity=p,this.tree=new f,this.tree._init(p.body)}uM=r,r.prototype.decode=function(C,y){return C instanceof t.DecoderBuffer||(C=new t.DecoderBuffer(C,y)),this.tree._decode(C,y)};function f(p){t.Node.call(this,"der",p)}e(f,t.Node),f.prototype._peekTag=function(C,y,w){if(C.isEmpty())return!1;var D=C.save(),v=h(C,'Failed to peek tag: "'+y+'"');return C.isError(v)?v:(C.restore(D),v.tag===y||v.tagStr===y||v.tagStr+"of"===y||w)},f.prototype._decodeTag=function(C,y,w){var D=h(C,'Failed to decode tag of "'+y+'"');if(C.isError(D))return D;var v=d(C,D.primitive,'Failed to get length of "'+y+'"');if(C.isError(v))return v;if(!w&&D.tag!==y&&D.tagStr!==y&&D.tagStr+"of"!==y)return C.error('Failed to match tag: "'+y+'"');if(D.primitive||v!==null)return C.skip(v,'Failed to match body of: "'+y+'"');var M=C.save(),R=this._skipUntilEnd(C,'Failed to skip indefinite length body: "'+this.tag+'"');return C.isError(R)?R:(v=C.offset-M.offset,C.restore(M),C.skip(v,'Failed to match body of: "'+y+'"'))},f.prototype._skipUntilEnd=function(C,y){for(;;){var w=h(C,y);if(C.isError(w))return w;var D=d(C,w.primitive,y);if(C.isError(D))return D;var v;if(w.primitive||D!==null?v=C.skip(D):v=this._skipUntilEnd(C,y),C.isError(v))return v;if(w.tagStr==="end")break}},f.prototype._decodeList=function(C,y,w,D){for(var v=[];!C.isEmpty();){var M=this._peekTag(C,"end");if(C.isError(M))return M;var R=w.decode(C,"der",D);if(C.isError(R)&&M)break;v.push(R)}return v},f.prototype._decodeStr=function(C,y){if(y==="bitstr"){var w=C.readUInt8();return C.isError(w)?w:{unused:w,data:C.raw()}}else if(y==="bmpstr"){var D=C.raw();if(D.length%2===1)return C.error("Decoding of string type: bmpstr length mismatch");for(var v="",M=0;M>6],D=(y&32)===0;if((y&31)===31){var v=y;for(y=0;(v&128)===128;){if(v=p.readUInt8(C),p.isError(v))return v;y<<=7,y|=v&127}}else y&=31;var M=o.tag[y];return{cls:w,primitive:D,tag:y,tagStr:M}}function d(p,C,y){var w=p.readUInt8(y);if(p.isError(w))return w;if(!C&&w===128)return null;if(!(w&128))return w;var D=w&127;if(D>4)return p.error("length octect is too long");w=0;for(var v=0;v=256;R>>=8)M++;var b=new A(2+M);b[0]=v,b[1]=128|M;for(var R=1+M,S=D.length;S>0;R--,S>>=8)b[R]=S&255;return this._createEncoderBuffer([b,D])},f.prototype._encodeStr=function(C,y){if(y==="bitstr")return this._createEncoderBuffer([C.unused|0,C.data]);if(y==="bmpstr"){for(var w=new A(C.length*2),D=0;D=40)return this.reporter.error("Second objid identifier OOB");C.splice(0,2,C[0]*40+C[1])}for(var v=0,D=0;D=128;M>>=7)v++}for(var R=new A(v),b=R.length-1,D=C.length-1;D>=0;D--){var M=C[D];for(R[b--]=M&127;(M>>=7)>0;)R[b--]=128|M&127}return this._createEncoderBuffer(R)};function h(p){return p<10?"0"+p:p}f.prototype._encodeTime=function(C,y){var w,D=new Date(C);return y==="gentime"?w=[h(D.getFullYear()),h(D.getUTCMonth()+1),h(D.getUTCDate()),h(D.getUTCHours()),h(D.getUTCMinutes()),h(D.getUTCSeconds()),"Z"].join(""):y==="utctime"?w=[h(D.getFullYear()%100),h(D.getUTCMonth()+1),h(D.getUTCDate()),h(D.getUTCHours()),h(D.getUTCMinutes()),h(D.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+y+" time is not supported yet"),this._encodeStr(w,"octstr")},f.prototype._encodeNull=function(){return this._createEncoderBuffer("")},f.prototype._encodeInt=function(C,y){if(typeof C=="string"){if(!y)return this.reporter.error("String int or enum given, but no values map");if(!y.hasOwnProperty(C))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(C));C=y[C]}if(typeof C!="number"&&!A.isBuffer(C)){var w=C.toArray();!C.sign&&w[0]&128&&w.unshift(0),C=new A(w)}if(A.isBuffer(C)){var D=C.length;C.length===0&&D++;var M=new A(D);return C.copy(M),C.length===0&&(M[0]=0),this._createEncoderBuffer(M)}if(C<128)return this._createEncoderBuffer(C);if(C<256)return this._createEncoderBuffer([0,C]);for(var D=1,v=C;v>=256;v>>=8)D++;for(var M=new Array(D),v=M.length-1;v>=0;v--)M[v]=C&255,C>>=8;return M[0]&128&&M.unshift(0),this._createEncoderBuffer(new A(M))},f.prototype._encodeBool=function(C){return this._createEncoderBuffer(C?255:0)},f.prototype._use=function(C,y){return typeof C=="function"&&(C=C(y)),C._getEncoder("der").tree},f.prototype._skipDefault=function(C,y,w){var D=this._baseState,v;if(D.default===null)return!1;var M=C.join();if(D.defaultBuffer===void 0&&(D.defaultBuffer=this._encodeValue(D.default,y,w).join()),M.length!==D.defaultBuffer.length)return!1;for(v=0;v=31?w.error("Multi-octet tag encoding unsupported"):(C||(D|=32),D|=o.tagClassByName[y||"universal"]<<6,D)}return BM}var dM,b8;function jCA(){if(b8)return dM;b8=1;var e=Ue,A=tO();function t(i){A.call(this,i),this.enc="pem"}return e(t,A),dM=t,t.prototype.encode=function(o,r){for(var f=A.prototype.encode.call(this,o),h=f.toString("base64"),d=["-----BEGIN "+r.label+"-----"],p=0;p0&&G.ishrn(U),G}function v(b,S){b=D(b,S),b=b.mod(S);var G=e.from(b.toArray());if(G.length=0)throw new Error("invalid sig")}return yM=r,yM}var wM,L8;function eBA(){if(L8)return wM;L8=1;var e=Ve().Buffer,A=EB(),t=_CA(),i=Ue,o=XCA(),r=ABA(),f=G7;Object.keys(f).forEach(function(y){f[y].id=e.from(f[y].id,"hex"),f[y.toLowerCase()]=f[y]});function h(y){t.Writable.call(this);var w=f[y];if(!w)throw new Error("Unknown message digest");this._hashType=w.hash,this._hash=A(w.hash),this._tag=w.id,this._signType=w.sign}i(h,t.Writable),h.prototype._write=function(w,D,v){this._hash.update(w),v()},h.prototype.update=function(w,D){return this._hash.update(typeof w=="string"?e.from(w,D):w),this},h.prototype.sign=function(w,D){this.end();var v=this._hash.digest(),M=o(v,w,this._hashType,this._signType,this._tag);return D?M.toString(D):M};function d(y){t.Writable.call(this);var w=f[y];if(!w)throw new Error("Unknown message digest");this._hash=A(w.hash),this._tag=w.id,this._signType=w.sign}i(d,t.Writable),d.prototype._write=function(w,D,v){this._hash.update(w),v()},d.prototype.update=function(w,D){return this._hash.update(typeof w=="string"?e.from(w,D):w),this},d.prototype.verify=function(w,D,v){var M=typeof D=="string"?e.from(D,v):D;this.end();var R=this._hash.digest();return r(M,R,w,this._signType,this._tag)};function p(y){return new h(y)}function C(y){return new d(y)}return wM={Sign:p,Verify:C,createSign:p,createVerify:C},wM}var ZE={exports:{}};ZE.exports;var U8;function tBA(){return U8||(U8=1,function(e){(function(A,t){function i(Q,n){if(!Q)throw new Error(n||"Assertion failed")}function o(Q,n){Q.super_=n;var a=function(){};a.prototype=n.prototype,Q.prototype=new a,Q.prototype.constructor=Q}function r(Q,n,a){if(r.isBN(Q))return Q;this.negative=0,this.words=null,this.length=0,this.red=null,Q!==null&&((n==="le"||n==="be")&&(a=n,n=10),this._init(Q||0,n||10,a||"be"))}typeof A=="object"?A.exports=r:t.BN=r,r.BN=r,r.wordSize=26;var f;try{typeof window<"u"&&typeof window.Buffer<"u"?f=window.Buffer:f=Ht.Buffer}catch{}r.isBN=function(n){return n instanceof r?!0:n!==null&&typeof n=="object"&&n.constructor.wordSize===r.wordSize&&Array.isArray(n.words)},r.max=function(n,a){return n.cmp(a)>0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,I+=2,I>=26&&(I-=26,B--),c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)}(ZE)),ZE.exports}var DM,_8;function iBA(){if(_8)return DM;_8=1;var e=qw(),A=tBA();DM=function(f){return new i(f)};var t={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};t.p224=t.secp224r1,t.p256=t.secp256r1=t.prime256v1,t.p192=t.secp192r1=t.prime192v1,t.p384=t.secp384r1,t.p521=t.secp521r1;function i(r){this.curveType=t[r],this.curveType||(this.curveType={name:r}),this.curve=new e.ec(this.curveType.name),this.keys=void 0}i.prototype.generateKeys=function(r,f){return this.keys=this.curve.genKeyPair(),this.getPublicKey(r,f)},i.prototype.computeSecret=function(r,f,h){f=f||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,f));var d=this.curve.keyFromPublic(r).getPublic(),p=d.mul(this.keys.getPrivate()).getX();return o(p,h,this.curveType.byteLength)},i.prototype.getPublicKey=function(r,f){var h=this.keys.getPublic(f==="compressed",!0);return f==="hybrid"&&(h[h.length-1]%2?h[0]=7:h[0]=6),o(h,r)},i.prototype.getPrivateKey=function(r){return o(this.keys.getPrivate(),r)},i.prototype.setPublicKey=function(r,f){return f=f||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,f)),this.keys._importPublic(r),this},i.prototype.setPrivateKey=function(r,f){f=f||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,f));var h=new A(r);return h=h.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(h),this};function o(r,f,h){Array.isArray(r)||(r=r.toArray());var d=new Buffer(r);if(h&&d.length0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,g){if(typeof n=="number")return this._initNumber(n,a,g);if(typeof n=="object")return this._initArray(n,a,g);a==="hex"&&(a=16),i(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var I=0;n[0]==="-"&&(I++,this.negative=1),I=0;I-=3)B=n[I]|n[I-1]<<8|n[I-2]<<16,this.words[c]|=B<>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);else if(g==="le")for(I=0,c=0;I>>26-E&67108863,E+=24,E>=26&&(E-=26,c++);return this.strip()};function h(Q,n){var a=Q.charCodeAt(n);return a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:a-48&15}function d(Q,n,a){var g=h(Q,a);return a-1>=n&&(g|=h(Q,a-1)<<4),g}r.prototype._parseHex=function(n,a,g){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var I=0;I=a;I-=2)E=d(n,a,I)<=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8;else{var u=n.length-a;for(I=u%2===0?a+1:a;I=18?(c-=18,B+=1,this.words[B]|=E>>>26):c+=8}this.strip()};function p(Q,n,a,g){for(var I=0,c=Math.min(Q.length,a),B=n;B=49?I+=E-49+10:E>=17?I+=E-17+10:I+=E}return I}r.prototype._parseBase=function(n,a,g){this.words=[0],this.length=1;for(var I=0,c=1;c<=67108863;c*=a)I++;I--,c=c/a|0;for(var B=n.length-g,E=B%I,u=Math.min(B,B-E)+g,s=0,l=g;l1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var C=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var g;if(n===16||n==="hex"){g="";for(var I=0,c=0,B=0;B>>24-I&16777215,I+=2,I>=26&&(I-=26,B--),c!==0||B!==this.length-1?g=C[6-u.length]+u+g:g=u+g}for(c!==0&&(g=c.toString(16)+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}if(n===(n|0)&&n>=2&&n<=36){var s=y[n],l=w[n];g="";var m=this.clone();for(m.negative=0;!m.isZero();){var N=m.modn(l).toString(n);m=m.idivn(l),m.isZero()?g=N+g:g=C[s-N.length]+N+g}for(this.isZero()&&(g="0"+g);g.length%a!==0;)g="0"+g;return this.negative!==0&&(g="-"+g),g}i(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(n,a){return i(typeof f<"u"),this.toArrayLike(f,n,a)},r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)},r.prototype.toArrayLike=function(n,a,g){var I=this.byteLength(),c=g||Math.max(1,I);i(I<=c,"byte array longer than desired length"),i(c>0,"Requested array length <= 0"),this.strip();var B=a==="le",E=new n(c),u,s,l=this.clone();if(B){for(s=0;!l.isZero();s++)u=l.andln(255),l.iushrn(8),E[s]=u;for(;s=4096&&(g+=13,a>>>=13),a>=64&&(g+=7,a>>>=7),a>=8&&(g+=4,a>>>=4),a>=2&&(g+=2,a>>>=2),g+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,g=0;return a&8191||(g+=13,a>>>=13),a&127||(g+=7,a>>>=7),a&15||(g+=4,a>>>=4),a&3||(g+=2,a>>>=2),a&1||g++,g},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function D(Q){for(var n=new Array(Q.bitLength()),a=0;a>>I}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var g=0;gn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,g;this.length>n.length?(a=this,g=n):(a=n,g=this);for(var I=0;In.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){i(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,g=n%26;this._expand(a),g>0&&a--;for(var I=0;I0&&(this.words[I]=~this.words[I]&67108863>>26-g),this.strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){i(typeof n=="number"&&n>=0);var g=n/26|0,I=n%26;return this._expand(g+1),a?this.words[g]=this.words[g]|1<n.length?(g=this,I=n):(g=n,I=this);for(var c=0,B=0;B>>26;for(;c!==0&&B>>26;if(this.length=g.length,c!==0)this.words[this.length]=c,this.length++;else if(g!==this)for(;Bn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var g=this.cmp(n);if(g===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,c;g>0?(I=this,c=n):(I=n,c=this);for(var B=0,E=0;E>26,this.words[E]=a&67108863;for(;B!==0&&E>26,this.words[E]=a&67108863;if(B===0&&E>>26,m=u&67108863,N=Math.min(s,n.length-1),L=Math.max(0,s-Q.length+1);L<=N;L++){var O=s-L|0;I=Q.words[O]|0,c=n.words[L]|0,B=I*c+m,l+=B/67108864|0,m=B&67108863}a.words[s]=m|0,u=l|0}return u!==0?a.words[s]=u|0:a.length--,a.strip()}var M=function(n,a,g){var I=n.words,c=a.words,B=g.words,E=0,u,s,l,m=I[0]|0,N=m&8191,L=m>>>13,O=I[1]|0,H=O&8191,K=O>>>13,Y=I[2]|0,W=Y&8191,$=Y>>>13,V=I[3]|0,_=V&8191,j=V>>>13,sA=I[4]|0,iA=sA&8191,aA=sA>>>13,lA=I[5]|0,nA=lA&8191,tA=lA>>>13,xA=I[6]|0,gA=xA&8191,IA=xA>>>13,UA=I[7]|0,rA=UA&8191,hA=UA>>>13,OA=I[8]|0,x=OA&8191,k=OA>>>13,F=I[9]|0,T=F&8191,Z=F>>>13,fA=c[0]|0,eA=fA&8191,dA=fA>>>13,PA=c[1]|0,cA=PA&8191,QA=PA>>>13,YA=c[2]|0,wA=YA&8191,RA=YA>>>13,Ie=c[3]|0,yA=Ie&8191,NA=Ie>>>13,ne=c[4]|0,pA=ne&8191,MA=ne>>>13,uA=c[5]|0,AA=uA&8191,CA=uA>>>13,qA=c[6]|0,BA=qA&8191,bA=qA>>>13,oe=c[7]|0,mA=oe&8191,SA=oe>>>13,fe=c[8]|0,vA=fe&8191,KA=fe>>>13,ge=c[9]|0,DA=ge&8191,kA=ge>>>13;g.negative=n.negative^a.negative,g.length=19,u=Math.imul(N,eA),s=Math.imul(N,dA),s=s+Math.imul(L,eA)|0,l=Math.imul(L,dA);var ee=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ee>>>26)|0,ee&=67108863,u=Math.imul(H,eA),s=Math.imul(H,dA),s=s+Math.imul(K,eA)|0,l=Math.imul(K,dA),u=u+Math.imul(N,cA)|0,s=s+Math.imul(N,QA)|0,s=s+Math.imul(L,cA)|0,l=l+Math.imul(L,QA)|0;var XA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(XA>>>26)|0,XA&=67108863,u=Math.imul(W,eA),s=Math.imul(W,dA),s=s+Math.imul($,eA)|0,l=Math.imul($,dA),u=u+Math.imul(H,cA)|0,s=s+Math.imul(H,QA)|0,s=s+Math.imul(K,cA)|0,l=l+Math.imul(K,QA)|0,u=u+Math.imul(N,wA)|0,s=s+Math.imul(N,RA)|0,s=s+Math.imul(L,wA)|0,l=l+Math.imul(L,RA)|0;var Qe=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,u=Math.imul(_,eA),s=Math.imul(_,dA),s=s+Math.imul(j,eA)|0,l=Math.imul(j,dA),u=u+Math.imul(W,cA)|0,s=s+Math.imul(W,QA)|0,s=s+Math.imul($,cA)|0,l=l+Math.imul($,QA)|0,u=u+Math.imul(H,wA)|0,s=s+Math.imul(H,RA)|0,s=s+Math.imul(K,wA)|0,l=l+Math.imul(K,RA)|0,u=u+Math.imul(N,yA)|0,s=s+Math.imul(N,NA)|0,s=s+Math.imul(L,yA)|0,l=l+Math.imul(L,NA)|0;var Ce=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u=Math.imul(iA,eA),s=Math.imul(iA,dA),s=s+Math.imul(aA,eA)|0,l=Math.imul(aA,dA),u=u+Math.imul(_,cA)|0,s=s+Math.imul(_,QA)|0,s=s+Math.imul(j,cA)|0,l=l+Math.imul(j,QA)|0,u=u+Math.imul(W,wA)|0,s=s+Math.imul(W,RA)|0,s=s+Math.imul($,wA)|0,l=l+Math.imul($,RA)|0,u=u+Math.imul(H,yA)|0,s=s+Math.imul(H,NA)|0,s=s+Math.imul(K,yA)|0,l=l+Math.imul(K,NA)|0,u=u+Math.imul(N,pA)|0,s=s+Math.imul(N,MA)|0,s=s+Math.imul(L,pA)|0,l=l+Math.imul(L,MA)|0;var ye=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ye>>>26)|0,ye&=67108863,u=Math.imul(nA,eA),s=Math.imul(nA,dA),s=s+Math.imul(tA,eA)|0,l=Math.imul(tA,dA),u=u+Math.imul(iA,cA)|0,s=s+Math.imul(iA,QA)|0,s=s+Math.imul(aA,cA)|0,l=l+Math.imul(aA,QA)|0,u=u+Math.imul(_,wA)|0,s=s+Math.imul(_,RA)|0,s=s+Math.imul(j,wA)|0,l=l+Math.imul(j,RA)|0,u=u+Math.imul(W,yA)|0,s=s+Math.imul(W,NA)|0,s=s+Math.imul($,yA)|0,l=l+Math.imul($,NA)|0,u=u+Math.imul(H,pA)|0,s=s+Math.imul(H,MA)|0,s=s+Math.imul(K,pA)|0,l=l+Math.imul(K,MA)|0,u=u+Math.imul(N,AA)|0,s=s+Math.imul(N,CA)|0,s=s+Math.imul(L,AA)|0,l=l+Math.imul(L,CA)|0;var we=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(we>>>26)|0,we&=67108863,u=Math.imul(gA,eA),s=Math.imul(gA,dA),s=s+Math.imul(IA,eA)|0,l=Math.imul(IA,dA),u=u+Math.imul(nA,cA)|0,s=s+Math.imul(nA,QA)|0,s=s+Math.imul(tA,cA)|0,l=l+Math.imul(tA,QA)|0,u=u+Math.imul(iA,wA)|0,s=s+Math.imul(iA,RA)|0,s=s+Math.imul(aA,wA)|0,l=l+Math.imul(aA,RA)|0,u=u+Math.imul(_,yA)|0,s=s+Math.imul(_,NA)|0,s=s+Math.imul(j,yA)|0,l=l+Math.imul(j,NA)|0,u=u+Math.imul(W,pA)|0,s=s+Math.imul(W,MA)|0,s=s+Math.imul($,pA)|0,l=l+Math.imul($,MA)|0,u=u+Math.imul(H,AA)|0,s=s+Math.imul(H,CA)|0,s=s+Math.imul(K,AA)|0,l=l+Math.imul(K,CA)|0,u=u+Math.imul(N,BA)|0,s=s+Math.imul(N,bA)|0,s=s+Math.imul(L,BA)|0,l=l+Math.imul(L,bA)|0;var De=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(De>>>26)|0,De&=67108863,u=Math.imul(rA,eA),s=Math.imul(rA,dA),s=s+Math.imul(hA,eA)|0,l=Math.imul(hA,dA),u=u+Math.imul(gA,cA)|0,s=s+Math.imul(gA,QA)|0,s=s+Math.imul(IA,cA)|0,l=l+Math.imul(IA,QA)|0,u=u+Math.imul(nA,wA)|0,s=s+Math.imul(nA,RA)|0,s=s+Math.imul(tA,wA)|0,l=l+Math.imul(tA,RA)|0,u=u+Math.imul(iA,yA)|0,s=s+Math.imul(iA,NA)|0,s=s+Math.imul(aA,yA)|0,l=l+Math.imul(aA,NA)|0,u=u+Math.imul(_,pA)|0,s=s+Math.imul(_,MA)|0,s=s+Math.imul(j,pA)|0,l=l+Math.imul(j,MA)|0,u=u+Math.imul(W,AA)|0,s=s+Math.imul(W,CA)|0,s=s+Math.imul($,AA)|0,l=l+Math.imul($,CA)|0,u=u+Math.imul(H,BA)|0,s=s+Math.imul(H,bA)|0,s=s+Math.imul(K,BA)|0,l=l+Math.imul(K,bA)|0,u=u+Math.imul(N,mA)|0,s=s+Math.imul(N,SA)|0,s=s+Math.imul(L,mA)|0,l=l+Math.imul(L,SA)|0;var me=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(me>>>26)|0,me&=67108863,u=Math.imul(x,eA),s=Math.imul(x,dA),s=s+Math.imul(k,eA)|0,l=Math.imul(k,dA),u=u+Math.imul(rA,cA)|0,s=s+Math.imul(rA,QA)|0,s=s+Math.imul(hA,cA)|0,l=l+Math.imul(hA,QA)|0,u=u+Math.imul(gA,wA)|0,s=s+Math.imul(gA,RA)|0,s=s+Math.imul(IA,wA)|0,l=l+Math.imul(IA,RA)|0,u=u+Math.imul(nA,yA)|0,s=s+Math.imul(nA,NA)|0,s=s+Math.imul(tA,yA)|0,l=l+Math.imul(tA,NA)|0,u=u+Math.imul(iA,pA)|0,s=s+Math.imul(iA,MA)|0,s=s+Math.imul(aA,pA)|0,l=l+Math.imul(aA,MA)|0,u=u+Math.imul(_,AA)|0,s=s+Math.imul(_,CA)|0,s=s+Math.imul(j,AA)|0,l=l+Math.imul(j,CA)|0,u=u+Math.imul(W,BA)|0,s=s+Math.imul(W,bA)|0,s=s+Math.imul($,BA)|0,l=l+Math.imul($,bA)|0,u=u+Math.imul(H,mA)|0,s=s+Math.imul(H,SA)|0,s=s+Math.imul(K,mA)|0,l=l+Math.imul(K,SA)|0,u=u+Math.imul(N,vA)|0,s=s+Math.imul(N,KA)|0,s=s+Math.imul(L,vA)|0,l=l+Math.imul(L,KA)|0;var EA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(T,eA),s=Math.imul(T,dA),s=s+Math.imul(Z,eA)|0,l=Math.imul(Z,dA),u=u+Math.imul(x,cA)|0,s=s+Math.imul(x,QA)|0,s=s+Math.imul(k,cA)|0,l=l+Math.imul(k,QA)|0,u=u+Math.imul(rA,wA)|0,s=s+Math.imul(rA,RA)|0,s=s+Math.imul(hA,wA)|0,l=l+Math.imul(hA,RA)|0,u=u+Math.imul(gA,yA)|0,s=s+Math.imul(gA,NA)|0,s=s+Math.imul(IA,yA)|0,l=l+Math.imul(IA,NA)|0,u=u+Math.imul(nA,pA)|0,s=s+Math.imul(nA,MA)|0,s=s+Math.imul(tA,pA)|0,l=l+Math.imul(tA,MA)|0,u=u+Math.imul(iA,AA)|0,s=s+Math.imul(iA,CA)|0,s=s+Math.imul(aA,AA)|0,l=l+Math.imul(aA,CA)|0,u=u+Math.imul(_,BA)|0,s=s+Math.imul(_,bA)|0,s=s+Math.imul(j,BA)|0,l=l+Math.imul(j,bA)|0,u=u+Math.imul(W,mA)|0,s=s+Math.imul(W,SA)|0,s=s+Math.imul($,mA)|0,l=l+Math.imul($,SA)|0,u=u+Math.imul(H,vA)|0,s=s+Math.imul(H,KA)|0,s=s+Math.imul(K,vA)|0,l=l+Math.imul(K,KA)|0,u=u+Math.imul(N,DA)|0,s=s+Math.imul(N,kA)|0,s=s+Math.imul(L,DA)|0,l=l+Math.imul(L,kA)|0;var GA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(GA>>>26)|0,GA&=67108863,u=Math.imul(T,cA),s=Math.imul(T,QA),s=s+Math.imul(Z,cA)|0,l=Math.imul(Z,QA),u=u+Math.imul(x,wA)|0,s=s+Math.imul(x,RA)|0,s=s+Math.imul(k,wA)|0,l=l+Math.imul(k,RA)|0,u=u+Math.imul(rA,yA)|0,s=s+Math.imul(rA,NA)|0,s=s+Math.imul(hA,yA)|0,l=l+Math.imul(hA,NA)|0,u=u+Math.imul(gA,pA)|0,s=s+Math.imul(gA,MA)|0,s=s+Math.imul(IA,pA)|0,l=l+Math.imul(IA,MA)|0,u=u+Math.imul(nA,AA)|0,s=s+Math.imul(nA,CA)|0,s=s+Math.imul(tA,AA)|0,l=l+Math.imul(tA,CA)|0,u=u+Math.imul(iA,BA)|0,s=s+Math.imul(iA,bA)|0,s=s+Math.imul(aA,BA)|0,l=l+Math.imul(aA,bA)|0,u=u+Math.imul(_,mA)|0,s=s+Math.imul(_,SA)|0,s=s+Math.imul(j,mA)|0,l=l+Math.imul(j,SA)|0,u=u+Math.imul(W,vA)|0,s=s+Math.imul(W,KA)|0,s=s+Math.imul($,vA)|0,l=l+Math.imul($,KA)|0,u=u+Math.imul(H,DA)|0,s=s+Math.imul(H,kA)|0,s=s+Math.imul(K,DA)|0,l=l+Math.imul(K,kA)|0;var LA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(LA>>>26)|0,LA&=67108863,u=Math.imul(T,wA),s=Math.imul(T,RA),s=s+Math.imul(Z,wA)|0,l=Math.imul(Z,RA),u=u+Math.imul(x,yA)|0,s=s+Math.imul(x,NA)|0,s=s+Math.imul(k,yA)|0,l=l+Math.imul(k,NA)|0,u=u+Math.imul(rA,pA)|0,s=s+Math.imul(rA,MA)|0,s=s+Math.imul(hA,pA)|0,l=l+Math.imul(hA,MA)|0,u=u+Math.imul(gA,AA)|0,s=s+Math.imul(gA,CA)|0,s=s+Math.imul(IA,AA)|0,l=l+Math.imul(IA,CA)|0,u=u+Math.imul(nA,BA)|0,s=s+Math.imul(nA,bA)|0,s=s+Math.imul(tA,BA)|0,l=l+Math.imul(tA,bA)|0,u=u+Math.imul(iA,mA)|0,s=s+Math.imul(iA,SA)|0,s=s+Math.imul(aA,mA)|0,l=l+Math.imul(aA,SA)|0,u=u+Math.imul(_,vA)|0,s=s+Math.imul(_,KA)|0,s=s+Math.imul(j,vA)|0,l=l+Math.imul(j,KA)|0,u=u+Math.imul(W,DA)|0,s=s+Math.imul(W,kA)|0,s=s+Math.imul($,DA)|0,l=l+Math.imul($,kA)|0;var HA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(HA>>>26)|0,HA&=67108863,u=Math.imul(T,yA),s=Math.imul(T,NA),s=s+Math.imul(Z,yA)|0,l=Math.imul(Z,NA),u=u+Math.imul(x,pA)|0,s=s+Math.imul(x,MA)|0,s=s+Math.imul(k,pA)|0,l=l+Math.imul(k,MA)|0,u=u+Math.imul(rA,AA)|0,s=s+Math.imul(rA,CA)|0,s=s+Math.imul(hA,AA)|0,l=l+Math.imul(hA,CA)|0,u=u+Math.imul(gA,BA)|0,s=s+Math.imul(gA,bA)|0,s=s+Math.imul(IA,BA)|0,l=l+Math.imul(IA,bA)|0,u=u+Math.imul(nA,mA)|0,s=s+Math.imul(nA,SA)|0,s=s+Math.imul(tA,mA)|0,l=l+Math.imul(tA,SA)|0,u=u+Math.imul(iA,vA)|0,s=s+Math.imul(iA,KA)|0,s=s+Math.imul(aA,vA)|0,l=l+Math.imul(aA,KA)|0,u=u+Math.imul(_,DA)|0,s=s+Math.imul(_,kA)|0,s=s+Math.imul(j,DA)|0,l=l+Math.imul(j,kA)|0;var JA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(JA>>>26)|0,JA&=67108863,u=Math.imul(T,pA),s=Math.imul(T,MA),s=s+Math.imul(Z,pA)|0,l=Math.imul(Z,MA),u=u+Math.imul(x,AA)|0,s=s+Math.imul(x,CA)|0,s=s+Math.imul(k,AA)|0,l=l+Math.imul(k,CA)|0,u=u+Math.imul(rA,BA)|0,s=s+Math.imul(rA,bA)|0,s=s+Math.imul(hA,BA)|0,l=l+Math.imul(hA,bA)|0,u=u+Math.imul(gA,mA)|0,s=s+Math.imul(gA,SA)|0,s=s+Math.imul(IA,mA)|0,l=l+Math.imul(IA,SA)|0,u=u+Math.imul(nA,vA)|0,s=s+Math.imul(nA,KA)|0,s=s+Math.imul(tA,vA)|0,l=l+Math.imul(tA,KA)|0,u=u+Math.imul(iA,DA)|0,s=s+Math.imul(iA,kA)|0,s=s+Math.imul(aA,DA)|0,l=l+Math.imul(aA,kA)|0;var VA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(VA>>>26)|0,VA&=67108863,u=Math.imul(T,AA),s=Math.imul(T,CA),s=s+Math.imul(Z,AA)|0,l=Math.imul(Z,CA),u=u+Math.imul(x,BA)|0,s=s+Math.imul(x,bA)|0,s=s+Math.imul(k,BA)|0,l=l+Math.imul(k,bA)|0,u=u+Math.imul(rA,mA)|0,s=s+Math.imul(rA,SA)|0,s=s+Math.imul(hA,mA)|0,l=l+Math.imul(hA,SA)|0,u=u+Math.imul(gA,vA)|0,s=s+Math.imul(gA,KA)|0,s=s+Math.imul(IA,vA)|0,l=l+Math.imul(IA,KA)|0,u=u+Math.imul(nA,DA)|0,s=s+Math.imul(nA,kA)|0,s=s+Math.imul(tA,DA)|0,l=l+Math.imul(tA,kA)|0;var zA=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(zA>>>26)|0,zA&=67108863,u=Math.imul(T,BA),s=Math.imul(T,bA),s=s+Math.imul(Z,BA)|0,l=Math.imul(Z,bA),u=u+Math.imul(x,mA)|0,s=s+Math.imul(x,SA)|0,s=s+Math.imul(k,mA)|0,l=l+Math.imul(k,SA)|0,u=u+Math.imul(rA,vA)|0,s=s+Math.imul(rA,KA)|0,s=s+Math.imul(hA,vA)|0,l=l+Math.imul(hA,KA)|0,u=u+Math.imul(gA,DA)|0,s=s+Math.imul(gA,kA)|0,s=s+Math.imul(IA,DA)|0,l=l+Math.imul(IA,kA)|0;var ae=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(ae>>>26)|0,ae&=67108863,u=Math.imul(T,mA),s=Math.imul(T,SA),s=s+Math.imul(Z,mA)|0,l=Math.imul(Z,SA),u=u+Math.imul(x,vA)|0,s=s+Math.imul(x,KA)|0,s=s+Math.imul(k,vA)|0,l=l+Math.imul(k,KA)|0,u=u+Math.imul(rA,DA)|0,s=s+Math.imul(rA,kA)|0,s=s+Math.imul(hA,DA)|0,l=l+Math.imul(hA,kA)|0;var se=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(se>>>26)|0,se&=67108863,u=Math.imul(T,vA),s=Math.imul(T,KA),s=s+Math.imul(Z,vA)|0,l=Math.imul(Z,KA),u=u+Math.imul(x,DA)|0,s=s+Math.imul(x,kA)|0,s=s+Math.imul(k,DA)|0,l=l+Math.imul(k,kA)|0;var Be=(E+u|0)+((s&8191)<<13)|0;E=(l+(s>>>13)|0)+(Be>>>26)|0,Be&=67108863,u=Math.imul(T,DA),s=Math.imul(T,kA),s=s+Math.imul(Z,DA)|0,l=Math.imul(Z,kA);var de=(E+u|0)+((s&8191)<<13)|0;return E=(l+(s>>>13)|0)+(de>>>26)|0,de&=67108863,B[0]=ee,B[1]=XA,B[2]=Qe,B[3]=Ce,B[4]=ye,B[5]=we,B[6]=De,B[7]=me,B[8]=EA,B[9]=GA,B[10]=LA,B[11]=HA,B[12]=JA,B[13]=VA,B[14]=zA,B[15]=ae,B[16]=se,B[17]=Be,B[18]=de,E!==0&&(B[19]=E,g.length++),g};Math.imul||(M=v);function R(Q,n,a){a.negative=n.negative^Q.negative,a.length=Q.length+n.length;for(var g=0,I=0,c=0;c>>26)|0,I+=B>>>26,B&=67108863}a.words[c]=E,g=B,B=I}return g!==0?a.words[c]=g:a.length--,a.strip()}function b(Q,n,a){var g=new S;return g.mulp(Q,n,a)}r.prototype.mulTo=function(n,a){var g,I=this.length+n.length;return this.length===10&&n.length===10?g=M(this,n,a):I<63?g=v(this,n,a):I<1024?g=R(this,n,a):g=b(this,n,a),g};function S(Q,n){this.x=Q,this.y=n}S.prototype.makeRBT=function(n){for(var a=new Array(n),g=r.prototype._countBits(n)-1,I=0;I>=1;return I},S.prototype.permute=function(n,a,g,I,c,B){for(var E=0;E>>1)c++;return 1<>>13,g[2*B+1]=c&8191,c=c>>>13;for(B=2*a;B>=26,a+=I/67108864|0,a+=c>>>26,this.words[g]=c&67108863}return a!==0&&(this.words[g]=a,this.length++),this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=D(n);if(a.length===0)return new r(1);for(var g=this,I=0;I=0);var a=n%26,g=(n-a)/26,I=67108863>>>26-a<<26-a,c;if(a!==0){var B=0;for(c=0;c>>26-a}B&&(this.words[c]=B,this.length++)}if(g!==0){for(c=this.length-1;c>=0;c--)this.words[c+g]=this.words[c];for(c=0;c=0);var I;a?I=(a-a%26)/26:I=0;var c=n%26,B=Math.min((n-c)/26,this.length),E=67108863^67108863>>>c<B)for(this.length-=B,s=0;s=0&&(l!==0||s>=I);s--){var m=this.words[s]|0;this.words[s]=l<<26-c|m>>>c,l=m&E}return u&&l!==0&&(u.words[u.length++]=l),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(n,a,g){return i(this.negative===0),this.iushrn(n,a,g)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){i(typeof n=="number"&&n>=0);var a=n%26,g=(n-a)/26,I=1<=0);var a=n%26,g=(n-a)/26;if(i(this.negative===0,"imaskn works only with positive numbers"),this.length<=g)return this;if(a!==0&&g++,this.length=Math.min(g,this.length),a!==0){var I=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(i(typeof n=="number"),i(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[c+g]=B&67108863}for(;c>26,this.words[c+g]=B&67108863;if(E===0)return this.strip();for(i(E===-1),E=0,c=0;c>26,this.words[c]=B&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(n,a){var g=this.length-n.length,I=this.clone(),c=n,B=c.words[c.length-1]|0,E=this._countBits(B);g=26-E,g!==0&&(c=c.ushln(g),I.iushln(g),B=c.words[c.length-1]|0);var u=I.length-c.length,s;if(a!=="mod"){s=new r(null),s.length=u+1,s.words=new Array(s.length);for(var l=0;l=0;N--){var L=(I.words[c.length+N]|0)*67108864+(I.words[c.length+N-1]|0);for(L=Math.min(L/B|0,67108863),I._ishlnsubmul(c,L,N);I.negative!==0;)L--,I.negative=0,I._ishlnsubmul(c,1,N),I.isZero()||(I.negative^=1);s&&(s.words[N]=L)}return s&&s.strip(),I.strip(),a!=="div"&&g!==0&&I.iushrn(g),{div:s||null,mod:I}},r.prototype.divmod=function(n,a,g){if(i(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var I,c,B;return this.negative!==0&&n.negative===0?(B=this.neg().divmod(n,a),a!=="mod"&&(I=B.div.neg()),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.iadd(n)),{div:I,mod:c}):this.negative===0&&n.negative!==0?(B=this.divmod(n.neg(),a),a!=="mod"&&(I=B.div.neg()),{div:I,mod:B.mod}):this.negative&n.negative?(B=this.neg().divmod(n.neg(),a),a!=="div"&&(c=B.mod.neg(),g&&c.negative!==0&&c.isub(n)),{div:B.div,mod:c}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var g=a.div.negative!==0?a.mod.isub(n):a.mod,I=n.ushrn(1),c=n.andln(1),B=g.cmp(I);return B<0||c===1&&B===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modn=function(n){i(n<=67108863);for(var a=(1<<26)%n,g=0,I=this.length-1;I>=0;I--)g=(a*g+(this.words[I]|0))%n;return g},r.prototype.idivn=function(n){i(n<=67108863);for(var a=0,g=this.length-1;g>=0;g--){var I=(this.words[g]|0)+a*67108864;this.words[g]=I/n|0,a=I%n}return this.strip()},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=new r(0),E=new r(1),u=0;a.isEven()&&g.isEven();)a.iushrn(1),g.iushrn(1),++u;for(var s=g.clone(),l=a.clone();!a.isZero();){for(var m=0,N=1;!(a.words[0]&N)&&m<26;++m,N<<=1);if(m>0)for(a.iushrn(m);m-- >0;)(I.isOdd()||c.isOdd())&&(I.iadd(s),c.isub(l)),I.iushrn(1),c.iushrn(1);for(var L=0,O=1;!(g.words[0]&O)&&L<26;++L,O<<=1);if(L>0)for(g.iushrn(L);L-- >0;)(B.isOdd()||E.isOdd())&&(B.iadd(s),E.isub(l)),B.iushrn(1),E.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(B),c.isub(E)):(g.isub(a),B.isub(I),E.isub(c))}return{a:B,b:E,gcd:g.iushln(u)}},r.prototype._invmp=function(n){i(n.negative===0),i(!n.isZero());var a=this,g=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var I=new r(1),c=new r(0),B=g.clone();a.cmpn(1)>0&&g.cmpn(1)>0;){for(var E=0,u=1;!(a.words[0]&u)&&E<26;++E,u<<=1);if(E>0)for(a.iushrn(E);E-- >0;)I.isOdd()&&I.iadd(B),I.iushrn(1);for(var s=0,l=1;!(g.words[0]&l)&&s<26;++s,l<<=1);if(s>0)for(g.iushrn(s);s-- >0;)c.isOdd()&&c.iadd(B),c.iushrn(1);a.cmp(g)>=0?(a.isub(g),I.isub(c)):(g.isub(a),c.isub(I))}var m;return a.cmpn(1)===0?m=I:m=c,m.cmpn(0)<0&&m.iadd(n),m},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),g=n.clone();a.negative=0,g.negative=0;for(var I=0;a.isEven()&&g.isEven();I++)a.iushrn(1),g.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;g.isEven();)g.iushrn(1);var c=a.cmp(g);if(c<0){var B=a;a=g,g=B}else if(c===0||g.cmpn(1)===0)break;a.isub(g)}while(!0);return g.iushln(I)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){i(typeof n=="number");var a=n%26,g=(n-a)/26,I=1<>>26,E&=67108863,this.words[B]=E}return c!==0&&(this.words[B]=c,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this.strip();var g;if(this.length>1)g=1;else{a&&(n=-n),i(n<=67108863,"Number is too big");var I=this.words[0]|0;g=I===n?0:In.length)return 1;if(this.length=0;g--){var I=this.words[g]|0,c=n.words[g]|0;if(I!==c){Ic&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new q(n)},r.prototype.toRed=function(n){return i(!this.red,"Already a number in reduction context"),i(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return i(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return i(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var G={k256:null,p224:null,p192:null,p25519:null};function U(Q,n){this.name=Q,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}U.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},U.prototype.ireduce=function(n){var a=n,g;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),g=a.bitLength();while(g>this.n);var I=g0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},U.prototype.split=function(n,a){n.iushrn(this.n,0,a)},U.prototype.imulK=function(n){return n.imul(this.k)};function P(){U.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}o(P,U),P.prototype.split=function(n,a){for(var g=4194303,I=Math.min(n.length,9),c=0;c>>22,B=E}B>>>=22,n.words[c-10]=B,B===0&&n.length>10?n.length-=10:n.length-=9},P.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,g=0;g>>=26,n.words[g]=c,a=I}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(G[n])return G[n];var a;if(n==="k256")a=new P;else if(n==="p224")a=new z;else if(n==="p192")a=new oA;else if(n==="p25519")a=new J;else throw new Error("Unknown prime "+n);return G[n]=a,a};function q(Q){if(typeof Q=="string"){var n=r._prime(Q);this.m=n.p,this.prime=n}else i(Q.gtn(1),"modulus must be greater than 1"),this.m=Q,this.prime=null}q.prototype._verify1=function(n){i(n.negative===0,"red works only with positives"),i(n.red,"red works only with red numbers")},q.prototype._verify2=function(n,a){i((n.negative|a.negative)===0,"red works only with positives"),i(n.red&&n.red===a.red,"red works only with red numbers")},q.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):n.umod(this.m)._forceRed(this)},q.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},q.prototype.add=function(n,a){this._verify2(n,a);var g=n.add(a);return g.cmp(this.m)>=0&&g.isub(this.m),g._forceRed(this)},q.prototype.iadd=function(n,a){this._verify2(n,a);var g=n.iadd(a);return g.cmp(this.m)>=0&&g.isub(this.m),g},q.prototype.sub=function(n,a){this._verify2(n,a);var g=n.sub(a);return g.cmpn(0)<0&&g.iadd(this.m),g._forceRed(this)},q.prototype.isub=function(n,a){this._verify2(n,a);var g=n.isub(a);return g.cmpn(0)<0&&g.iadd(this.m),g},q.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},q.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},q.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},q.prototype.isqr=function(n){return this.imul(n,n.clone())},q.prototype.sqr=function(n){return this.mul(n,n)},q.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(i(a%2===1),a===3){var g=this.m.add(new r(1)).iushrn(2);return this.pow(n,g)}for(var I=this.m.subn(1),c=0;!I.isZero()&&I.andln(1)===0;)c++,I.iushrn(1);i(!I.isZero());var B=new r(1).toRed(this),E=B.redNeg(),u=this.m.subn(1).iushrn(1),s=this.m.bitLength();for(s=new r(2*s*s).toRed(this);this.pow(s,u).cmp(E)!==0;)s.redIAdd(E);for(var l=this.pow(s,I),m=this.pow(n,I.addn(1).iushrn(1)),N=this.pow(n,I),L=c;N.cmp(B)!==0;){for(var O=N,H=0;O.cmp(B)!==0;H++)O=O.redSqr();i(H=0;c--){for(var l=a.words[c],m=s-1;m>=0;m--){var N=l>>m&1;if(B!==I[0]&&(B=this.sqr(B)),N===0&&E===0){u=0;continue}E<<=1,E|=N,u++,!(u!==g&&(c!==0||m!==0))&&(B=this.mul(B,I[E]),u=0,E=0)}s=26}return B},q.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},q.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new X(n)};function X(Q){q.call(this,Q),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}o(X,q),X.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},X.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},X.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var g=n.imul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var g=n.mul(a),I=g.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),c=g.isub(I).iushrn(this.shift),B=c;return c.cmp(this.m)>=0?B=c.isub(this.m):c.cmpn(0)<0&&(B=c.iadd(this.m)),B._forceRed(this)},X.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(e,Qr)}(zE)),zE.exports}var bM,J8;function oO(){if(J8)return bM;J8=1;var e=kR(),A=Ve().Buffer;function t(i,o){return A.from(i.toRed(e.mont(o.modulus)).redPow(new e(o.publicExponent)).fromRed().toArray())}return bM=t,bM}var SM,T8;function rBA(){if(T8)return SM;T8=1;var e=Nw(),A=$u(),t=EB(),i=rO(),o=nO(),r=kR(),f=oO(),h=NR(),d=Ve().Buffer;SM=function(D,v,M){var R;D.padding?R=D.padding:M?R=1:R=4;var b=e(D),S;if(R===4)S=p(b,v);else if(R===1)S=C(b,v,M);else if(R===3){if(S=new r(v),S.cmp(b.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return M?h(S,b):f(S,b)};function p(w,D){var v=w.modulus.byteLength(),M=D.length,R=t("sha1").update(d.alloc(0)).digest(),b=R.length,S=2*b;if(M>v-S-2)throw new Error("message too long");var G=d.alloc(v-M-S-2),U=v-b-1,P=A(b),z=o(d.concat([R,G,d.alloc(1,1),D],U),i(P,U)),oA=o(P,i(z,b));return new r(d.concat([d.alloc(1),oA,z],v))}function C(w,D,v){var M=D.length,R=w.modulus.byteLength();if(M>R-11)throw new Error("message too long");var b;return v?b=d.alloc(R-M-3,255):b=y(R-M-3),new r(d.concat([d.from([0,v?1:2]),b,d.alloc(1),D],R))}function y(w){for(var D=d.allocUnsafe(w),v=0,M=A(w*2),R=0,b;vb||new i(D).cmp(R.modulus)>=0)throw new Error("decryption error");var S;v?S=f(new i(D),R):S=o(D,R);var G=h.alloc(b-S.length);if(S=h.concat([G,S],b),M===4)return d(R,S);if(M===1)return p(R,S,v);if(M===3)return S;throw new Error("unknown padding")};function d(y,w){var D=y.modulus.byteLength(),v=r("sha1").update(h.alloc(0)).digest(),M=v.length;if(w[0]!==0)throw new Error("decryption error");var R=w.slice(1,M+1),b=w.slice(M+1),S=t(R,A(b,M)),G=t(b,A(S,D-M-1));if(C(v,G.slice(0,M)))throw new Error("decryption error");for(var U=M;G[U]===0;)U++;if(G[U++]!==1)throw new Error("decryption error");return G.slice(U)}function p(y,w,D){for(var v=w.slice(0,2),M=2,R=0;w[M++]!==0;)if(M>=w.length){R++;break}var b=w.slice(2,M-1);if((v.toString("hex")!=="0002"&&!D||v.toString("hex")!=="0001"&&D)&&R++,b.length<8&&R++,R)throw new Error("decryption error");return w.slice(M)}function C(y,w){y=h.from(y),w=h.from(w);var D=0,v=y.length;y.length!==w.length&&(D++,v=Math.min(y.length,w.length));for(var M=-1;++Mf||w<0)throw new TypeError("offset must be a uint32");if(w>o||w>D)throw new RangeError("offset out of range")}function d(w,D,v){if(typeof w!="number"||w!==w)throw new TypeError("size must be a number");if(w>f||w<0)throw new TypeError("size must be a uint32");if(w+D>v||w>o)throw new RangeError("buffer too small")}r&&r.getRandomValues||!process.browser?(Ch.randomFill=p,Ch.randomFillSync=y):(Ch.randomFill=e,Ch.randomFillSync=e);function p(w,D,v,M){if(!i.isBuffer(w)&&!(w instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof D=="function")M=D,D=0,v=w.length;else if(typeof v=="function")M=v,v=w.length-D;else if(typeof M!="function")throw new TypeError('"cb" argument must be a function');return h(D,w.length),d(v,D,w.length),C(w,D,v,M)}function C(w,D,v,M){if(process.browser){var R=w.buffer,b=new Uint8Array(R,D,v);if(r.getRandomValues(b),M){process.nextTick(function(){M(null,w)});return}return w}if(M){t(v,function(G,U){if(G)return M(G);U.copy(w,D),M(null,w)});return}var S=t(v);return S.copy(w,D),w}function y(w,D,v){if(typeof D>"u"&&(D=0),!i.isBuffer(w)&&!(w instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return h(D,w.length),v===void 0&&(v=w.length-D),d(v,D,w.length),C(w,D,v)}return Ch}var W8;function aBA(){if(W8)return Te;W8=1,Te.randomBytes=Te.rng=Te.pseudoRandomBytes=Te.prng=$u(),Te.createHash=Te.Hash=EB(),Te.createHmac=Te.Hmac=K7();var e=rCA(),A=Object.keys(e),t=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(A);Te.getHashes=function(){return t};var i=_7();Te.pbkdf2=i.pbkdf2,Te.pbkdf2Sync=i.pbkdf2Sync;var o=wCA();Te.Cipher=o.Cipher,Te.createCipher=o.createCipher,Te.Cipheriv=o.Cipheriv,Te.createCipheriv=o.createCipheriv,Te.Decipher=o.Decipher,Te.createDecipher=o.createDecipher,Te.Decipheriv=o.Decipheriv,Te.createDecipheriv=o.createDecipheriv,Te.getCiphers=o.getCiphers,Te.listCiphers=o.listCiphers;var r=FCA();Te.DiffieHellmanGroup=r.DiffieHellmanGroup,Te.createDiffieHellmanGroup=r.createDiffieHellmanGroup,Te.getDiffieHellman=r.getDiffieHellman,Te.createDiffieHellman=r.createDiffieHellman,Te.DiffieHellman=r.DiffieHellman;var f=eBA();Te.createSign=f.createSign,Te.Sign=f.Sign,Te.createVerify=f.createVerify,Te.Verify=f.Verify,Te.createECDH=iBA();var h=oBA();Te.publicEncrypt=h.publicEncrypt,Te.privateEncrypt=h.privateEncrypt,Te.publicDecrypt=h.publicDecrypt,Te.privateDecrypt=h.privateDecrypt;var d=sBA();return Te.randomFill=d.randomFill,Te.randomFillSync=d.randomFillSync,Te.createCredentials=function(){throw new Error(`sorry, createCredentials is not implemented yet +we accept pull requests +https://github.com/browserify/crypto-browserify`)},Te.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},Te}var V8;function RR(){if(V8)return vd.exports;V8=1;var e;vd.exports=function(o){return e||(e=new A(null)),e.generate(o)};function A(i){this.rand=i}if(vd.exports.Rand=A,A.prototype.generate=function(o){return this._rand(o)},A.prototype._rand=function(o){if(this.rand.getBytes)return this.rand.getBytes(o);for(var r=new Uint8Array(o),f=0;f0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var kw=cI;cI.prototype.point=function(){throw new Error("Not implemented")};cI.prototype.validate=function(){throw new Error("Not implemented")};cI.prototype._fixedNafMul=function(A,t){np(A.precomputed);var i=A._getDoubles(),o=rp(t,1,this._bitLength),r=(1<=h;p--)d=(d<<1)+o[p];f.push(d)}for(var C=this.jpoint(null,null,null),y=this.jpoint(null,null,null),w=r;w>0;w--){for(h=0;h=0;d--){for(var p=0;d>=0&&f[d]===0;d--)p++;if(d>=0&&p++,h=h.dblp(p),d<0)break;var C=f[d];np(C!==0),A.type==="affine"?C>0?h=h.mixedAdd(r[C-1>>1]):h=h.mixedAdd(r[-C-1>>1].neg()):C>0?h=h.add(r[C-1>>1]):h=h.add(r[-C-1>>1].neg())}return A.type==="affine"?h.toP():h};cI.prototype._wnafMulAdd=function(A,t,i,o,r){var f=this._wnafT1,h=this._wnafT2,d=this._wnafT3,p=0,C,y,w;for(C=0;C=1;C-=2){var v=C-1,M=C;if(f[v]!==1||f[M]!==1){d[v]=rp(i[v],f[v],this._bitLength),d[M]=rp(i[M],f[M],this._bitLength),p=Math.max(d[v].length,p),p=Math.max(d[M].length,p);continue}var R=[t[v],null,null,t[M]];t[v].y.cmp(t[M].y)===0?(R[1]=t[v].add(t[M]),R[2]=t[v].toJ().mixedAdd(t[M].neg())):t[v].y.cmp(t[M].y.redNeg())===0?(R[1]=t[v].toJ().mixedAdd(t[M]),R[2]=t[v].add(t[M].neg())):(R[1]=t[v].toJ().mixedAdd(t[M]),R[2]=t[v].toJ().mixedAdd(t[M].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],S=gBA(i[v],i[M]);for(p=Math.max(S[0].length,p),d[v]=new Array(p),d[M]=new Array(p),y=0;y=0;C--){for(var oA=0;C>=0;){var J=!0;for(y=0;y=0&&oA++,P=P.dblp(oA),C<0)break;for(y=0;y0?w=h[y][q-1>>1]:q<0&&(w=h[y][-q-1>>1].neg()),w.type==="affine"?P=P.mixedAdd(w):P=P.add(w))}}for(C=0;C=Math.ceil((A.bitLength()+1)/t.step):!1};Bo.prototype._getDoubles=function(A,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var i=[this],o=this,r=0;r=0&&(D=p,v=C),y.negative&&(y=y.neg(),w=w.neg()),D.negative&&(D=D.neg(),v=v.neg()),[{a:y,b:w},{a:D,b:v}]};Eo.prototype._endoSplit=function(A){var t=this.endo.basis,i=t[0],o=t[1],r=o.b.mul(A).divRound(this.n),f=i.b.neg().mul(A).divRound(this.n),h=r.mul(i.a),d=f.mul(o.a),p=r.mul(i.b),C=f.mul(o.b),y=A.sub(h).sub(d),w=p.add(C).neg();return{k1:y,k2:w}};Eo.prototype.pointFromX=function(A,t){A=new $t(A,16),A.red||(A=A.toRed(this.red));var i=A.redSqr().redMul(A).redIAdd(A.redMul(this.a)).redIAdd(this.b),o=i.redSqrt();if(o.redSqr().redSub(i).cmp(this.zero)!==0)throw new Error("invalid point");var r=o.fromRed().isOdd();return(t&&!r||!t&&r)&&(o=o.redNeg()),this.point(A,o)};Eo.prototype.validate=function(A){if(A.inf)return!0;var t=A.x,i=A.y,o=this.a.redMul(t),r=t.redSqr().redMul(t).redIAdd(o).redIAdd(this.b);return i.redSqr().redISub(r).cmpn(0)===0};Eo.prototype._endoWnafMulAdd=function(A,t,i){for(var o=this._endoWnafT1,r=this._endoWnafT2,f=0;f":""};Yi.prototype.isInfinity=function(){return this.inf};Yi.prototype.add=function(A){if(this.inf)return A;if(A.inf)return this;if(this.eq(A))return this.dbl();if(this.neg().eq(A))return this.curve.point(null,null);if(this.x.cmp(A.x)===0)return this.curve.point(null,null);var t=this.y.redSub(A.y);t.cmpn(0)!==0&&(t=t.redMul(this.x.redSub(A.x).redInvm()));var i=t.redSqr().redISub(this.x).redISub(A.x),o=t.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,o)};Yi.prototype.dbl=function(){if(this.inf)return this;var A=this.y.redAdd(this.y);if(A.cmpn(0)===0)return this.curve.point(null,null);var t=this.curve.a,i=this.x.redSqr(),o=A.redInvm(),r=i.redAdd(i).redIAdd(i).redIAdd(t).redMul(o),f=r.redSqr().redISub(this.x.redAdd(this.x)),h=r.redMul(this.x.redSub(f)).redISub(this.y);return this.curve.point(f,h)};Yi.prototype.getX=function(){return this.x.fromRed()};Yi.prototype.getY=function(){return this.y.fromRed()};Yi.prototype.mul=function(A){return A=new $t(A,16),this.isInfinity()?this:this._hasDoubles(A)?this.curve._fixedNafMul(this,A):this.curve.endo?this.curve._endoWnafMulAdd([this],[A]):this.curve._wnafMul(this,A)};Yi.prototype.mulAdd=function(A,t,i){var o=[this,t],r=[A,i];return this.curve.endo?this.curve._endoWnafMulAdd(o,r):this.curve._wnafMulAdd(1,o,r,2)};Yi.prototype.jmulAdd=function(A,t,i){var o=[this,t],r=[A,i];return this.curve.endo?this.curve._endoWnafMulAdd(o,r,!0):this.curve._wnafMulAdd(1,o,r,2,!0)};Yi.prototype.eq=function(A){return this===A||this.inf===A.inf&&(this.inf||this.x.cmp(A.x)===0&&this.y.cmp(A.y)===0)};Yi.prototype.neg=function(A){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(A&&this.precomputed){var i=this.precomputed,o=function(r){return r.neg()};t.precomputed={naf:i.naf&&{wnd:i.naf.wnd,points:i.naf.points.map(o)},doubles:i.doubles&&{step:i.doubles.step,points:i.doubles.points.map(o)}}}return t};Yi.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var A=this.curve.jpoint(this.x,this.y,this.curve.one);return A};function Ar(e,A,t,i){el.BasePoint.call(this,e,"jacobian"),A===null&&t===null&&i===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new $t(0)):(this.x=new $t(A,16),this.y=new $t(t,16),this.z=new $t(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}GR(Ar,el.BasePoint);Eo.prototype.jpoint=function(A,t,i){return new Ar(this,A,t,i)};Ar.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var A=this.z.redInvm(),t=A.redSqr(),i=this.x.redMul(t),o=this.y.redMul(t).redMul(A);return this.curve.point(i,o)};Ar.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};Ar.prototype.add=function(A){if(this.isInfinity())return A;if(A.isInfinity())return this;var t=A.z.redSqr(),i=this.z.redSqr(),o=this.x.redMul(t),r=A.x.redMul(i),f=this.y.redMul(t.redMul(A.z)),h=A.y.redMul(i.redMul(this.z)),d=o.redSub(r),p=f.redSub(h);if(d.cmpn(0)===0)return p.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var C=d.redSqr(),y=C.redMul(d),w=o.redMul(C),D=p.redSqr().redIAdd(y).redISub(w).redISub(w),v=p.redMul(w.redISub(D)).redISub(f.redMul(y)),M=this.z.redMul(A.z).redMul(d);return this.curve.jpoint(D,v,M)};Ar.prototype.mixedAdd=function(A){if(this.isInfinity())return A.toJ();if(A.isInfinity())return this;var t=this.z.redSqr(),i=this.x,o=A.x.redMul(t),r=this.y,f=A.y.redMul(t).redMul(this.z),h=i.redSub(o),d=r.redSub(f);if(h.cmpn(0)===0)return d.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var p=h.redSqr(),C=p.redMul(h),y=i.redMul(p),w=d.redSqr().redIAdd(C).redISub(y).redISub(y),D=d.redMul(y.redISub(w)).redISub(r.redMul(C)),v=this.z.redMul(h);return this.curve.jpoint(w,D,v)};Ar.prototype.dblp=function(A){if(A===0)return this;if(this.isInfinity())return this;if(!A)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var i=this;for(t=0;t=0)return!1;if(i.redIAdd(r),this.x.cmp(i)===0)return!0}};Ar.prototype.inspect=function(){return this.isInfinity()?"":""};Ar.prototype.isInfinity=function(){return this.z.cmpn(0)===0};var Ac=$a,sO=Ue,Rw=kw,cBA=Kn;function tl(e){Rw.call(this,"mont",e),this.a=new Ac(e.a,16).toRed(this.red),this.b=new Ac(e.b,16).toRed(this.red),this.i4=new Ac(4).toRed(this.red).redInvm(),this.two=new Ac(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}sO(tl,Rw);var uBA=tl;tl.prototype.validate=function(A){var t=A.normalize().x,i=t.redSqr(),o=i.redMul(t).redAdd(i.redMul(this.a)).redAdd(t),r=o.redSqrt();return r.redSqr().cmp(o)===0};function _i(e,A,t){Rw.BasePoint.call(this,e,"projective"),A===null&&t===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new Ac(A,16),this.z=new Ac(t,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}sO(_i,Rw.BasePoint);tl.prototype.decodePoint=function(A,t){return this.point(cBA.toArray(A,t),1)};tl.prototype.point=function(A,t){return new _i(this,A,t)};tl.prototype.pointFromJSON=function(A){return _i.fromJSON(this,A)};_i.prototype.precompute=function(){};_i.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())};_i.fromJSON=function(A,t){return new _i(A,t[0],t[1]||A.one)};_i.prototype.inspect=function(){return this.isInfinity()?"":""};_i.prototype.isInfinity=function(){return this.z.cmpn(0)===0};_i.prototype.dbl=function(){var A=this.x.redAdd(this.z),t=A.redSqr(),i=this.x.redSub(this.z),o=i.redSqr(),r=t.redSub(o),f=t.redMul(o),h=r.redMul(o.redAdd(this.curve.a24.redMul(r)));return this.curve.point(f,h)};_i.prototype.add=function(){throw new Error("Not supported on Montgomery curve")};_i.prototype.diffAdd=function(A,t){var i=this.x.redAdd(this.z),o=this.x.redSub(this.z),r=A.x.redAdd(A.z),f=A.x.redSub(A.z),h=f.redMul(i),d=r.redMul(o),p=t.z.redMul(h.redAdd(d).redSqr()),C=t.x.redMul(h.redISub(d).redSqr());return this.curve.point(p,C)};_i.prototype.mul=function(A){for(var t=A.clone(),i=this,o=this.curve.point(null,null),r=this,f=[];t.cmpn(0)!==0;t.iushrn(1))f.push(t.andln(1));for(var h=f.length-1;h>=0;h--)f[h]===0?(i=i.diffAdd(o,r),o=o.dbl()):(o=i.diffAdd(o,r),i=i.dbl());return o};_i.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")};_i.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")};_i.prototype.eq=function(A){return this.getX().cmp(A.getX())===0};_i.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};_i.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var lBA=Kn,wa=$a,aO=Ue,Kw=kw,CBA=lBA.assert;function Ws(e){this.twisted=(e.a|0)!==1,this.mOneA=this.twisted&&(e.a|0)===-1,this.extended=this.mOneA,Kw.call(this,"edwards",e),this.a=new wa(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new wa(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new wa(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),CBA(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(e.c|0)===1}aO(Ws,Kw);var BBA=Ws;Ws.prototype._mulA=function(A){return this.mOneA?A.redNeg():this.a.redMul(A)};Ws.prototype._mulC=function(A){return this.oneC?A:this.c.redMul(A)};Ws.prototype.jpoint=function(A,t,i,o){return this.point(A,t,i,o)};Ws.prototype.pointFromX=function(A,t){A=new wa(A,16),A.red||(A=A.toRed(this.red));var i=A.redSqr(),o=this.c2.redSub(this.a.redMul(i)),r=this.one.redSub(this.c2.redMul(this.d).redMul(i)),f=o.redMul(r.redInvm()),h=f.redSqrt();if(h.redSqr().redSub(f).cmp(this.zero)!==0)throw new Error("invalid point");var d=h.fromRed().isOdd();return(t&&!d||!t&&d)&&(h=h.redNeg()),this.point(A,h)};Ws.prototype.pointFromY=function(A,t){A=new wa(A,16),A.red||(A=A.toRed(this.red));var i=A.redSqr(),o=i.redSub(this.c2),r=i.redMul(this.d).redMul(this.c2).redSub(this.a),f=o.redMul(r.redInvm());if(f.cmp(this.zero)===0){if(t)throw new Error("invalid point");return this.point(this.zero,A)}var h=f.redSqrt();if(h.redSqr().redSub(f).cmp(this.zero)!==0)throw new Error("invalid point");return h.fromRed().isOdd()!==t&&(h=h.redNeg()),this.point(h,A)};Ws.prototype.validate=function(A){if(A.isInfinity())return!0;A.normalize();var t=A.x.redSqr(),i=A.y.redSqr(),o=t.redMul(this.a).redAdd(i),r=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(i)));return o.cmp(r)===0};function Kt(e,A,t,i,o){Kw.BasePoint.call(this,e,"projective"),A===null&&t===null&&i===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new wa(A,16),this.y=new wa(t,16),this.z=i?new wa(i,16):this.curve.one,this.t=o&&new wa(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}aO(Kt,Kw.BasePoint);Ws.prototype.pointFromJSON=function(A){return Kt.fromJSON(this,A)};Ws.prototype.point=function(A,t,i,o){return new Kt(this,A,t,i,o)};Kt.fromJSON=function(A,t){return new Kt(A,t[0],t[1],t[2])};Kt.prototype.inspect=function(){return this.isInfinity()?"":""};Kt.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Kt.prototype._extDbl=function(){var A=this.x.redSqr(),t=this.y.redSqr(),i=this.z.redSqr();i=i.redIAdd(i);var o=this.curve._mulA(A),r=this.x.redAdd(this.y).redSqr().redISub(A).redISub(t),f=o.redAdd(t),h=f.redSub(i),d=o.redSub(t),p=r.redMul(h),C=f.redMul(d),y=r.redMul(d),w=h.redMul(f);return this.curve.point(p,C,w,y)};Kt.prototype._projDbl=function(){var A=this.x.redAdd(this.y).redSqr(),t=this.x.redSqr(),i=this.y.redSqr(),o,r,f,h,d,p;if(this.curve.twisted){h=this.curve._mulA(t);var C=h.redAdd(i);this.zOne?(o=A.redSub(t).redSub(i).redMul(C.redSub(this.curve.two)),r=C.redMul(h.redSub(i)),f=C.redSqr().redSub(C).redSub(C)):(d=this.z.redSqr(),p=C.redSub(d).redISub(d),o=A.redSub(t).redISub(i).redMul(p),r=C.redMul(h.redSub(i)),f=C.redMul(p))}else h=t.redAdd(i),d=this.curve._mulC(this.z).redSqr(),p=h.redSub(d).redSub(d),o=this.curve._mulC(A.redISub(h)).redMul(p),r=this.curve._mulC(h).redMul(t.redISub(i)),f=h.redMul(p);return this.curve.point(o,r,f)};Kt.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()};Kt.prototype._extAdd=function(A){var t=this.y.redSub(this.x).redMul(A.y.redSub(A.x)),i=this.y.redAdd(this.x).redMul(A.y.redAdd(A.x)),o=this.t.redMul(this.curve.dd).redMul(A.t),r=this.z.redMul(A.z.redAdd(A.z)),f=i.redSub(t),h=r.redSub(o),d=r.redAdd(o),p=i.redAdd(t),C=f.redMul(h),y=d.redMul(p),w=f.redMul(p),D=h.redMul(d);return this.curve.point(C,y,D,w)};Kt.prototype._projAdd=function(A){var t=this.z.redMul(A.z),i=t.redSqr(),o=this.x.redMul(A.x),r=this.y.redMul(A.y),f=this.curve.d.redMul(o).redMul(r),h=i.redSub(f),d=i.redAdd(f),p=this.x.redAdd(this.y).redMul(A.x.redAdd(A.y)).redISub(o).redISub(r),C=t.redMul(h).redMul(p),y,w;return this.curve.twisted?(y=t.redMul(d).redMul(r.redSub(this.curve._mulA(o))),w=h.redMul(d)):(y=t.redMul(d).redMul(r.redSub(o)),w=this.curve._mulC(h).redMul(d)),this.curve.point(C,y,w)};Kt.prototype.add=function(A){return this.isInfinity()?A:A.isInfinity()?this:this.curve.extended?this._extAdd(A):this._projAdd(A)};Kt.prototype.mul=function(A){return this._hasDoubles(A)?this.curve._fixedNafMul(this,A):this.curve._wnafMul(this,A)};Kt.prototype.mulAdd=function(A,t,i){return this.curve._wnafMulAdd(1,[this,t],[A,i],2,!1)};Kt.prototype.jmulAdd=function(A,t,i){return this.curve._wnafMulAdd(1,[this,t],[A,i],2,!0)};Kt.prototype.normalize=function(){if(this.zOne)return this;var A=this.z.redInvm();return this.x=this.x.redMul(A),this.y=this.y.redMul(A),this.t&&(this.t=this.t.redMul(A)),this.z=this.curve.one,this.zOne=!0,this};Kt.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Kt.prototype.getX=function(){return this.normalize(),this.x.fromRed()};Kt.prototype.getY=function(){return this.normalize(),this.y.fromRed()};Kt.prototype.eq=function(A){return this===A||this.getX().cmp(A.getX())===0&&this.getY().cmp(A.getY())===0};Kt.prototype.eqXToP=function(A){var t=A.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(t)===0)return!0;for(var i=A.clone(),o=this.curve.redN.redMul(this.z);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(o),this.x.cmp(t)===0)return!0}};Kt.prototype.toP=Kt.prototype.normalize;Kt.prototype.mixedAdd=Kt.prototype.add;(function(e){var A=e;A.base=kw,A.short=hBA,A.mont=uBA,A.edwards=BBA})(KR);var Gw={},Fw={},ot={},dBA=lo,EBA=Ue;ot.inherits=EBA;function QBA(e,A){return(e.charCodeAt(A)&64512)!==55296||A<0||A+1>=e.length?!1:(e.charCodeAt(A+1)&64512)===56320}function pBA(e,A){if(Array.isArray(e))return e.slice();if(!e)return[];var t=[];if(typeof e=="string")if(A){if(A==="hex")for(e=e.replace(/[^a-z0-9]+/ig,""),e.length%2!==0&&(e="0"+e),o=0;o>6|192,t[i++]=r&63|128):QBA(e,o)?(r=65536+((r&1023)<<10)+(e.charCodeAt(++o)&1023),t[i++]=r>>18|240,t[i++]=r>>12&63|128,t[i++]=r>>6&63|128,t[i++]=r&63|128):(t[i++]=r>>12|224,t[i++]=r>>6&63|128,t[i++]=r&63|128)}else for(o=0;o>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24;return A>>>0}ot.htonl=gO;function wBA(e,A){for(var t="",i=0;i>>0}return r}ot.join32=DBA;function mBA(e,A){for(var t=new Array(e.length*4),i=0,o=0;i>>24,t[o+1]=r>>>16&255,t[o+2]=r>>>8&255,t[o+3]=r&255):(t[o+3]=r>>>24,t[o+2]=r>>>16&255,t[o+1]=r>>>8&255,t[o]=r&255)}return t}ot.split32=mBA;function vBA(e,A){return e>>>A|e<<32-A}ot.rotr32=vBA;function MBA(e,A){return e<>>32-A}ot.rotl32=MBA;function bBA(e,A){return e+A>>>0}ot.sum32=bBA;function SBA(e,A,t){return e+A+t>>>0}ot.sum32_3=SBA;function NBA(e,A,t,i){return e+A+t+i>>>0}ot.sum32_4=NBA;function kBA(e,A,t,i,o){return e+A+t+i+o>>>0}ot.sum32_5=kBA;function RBA(e,A,t,i){var o=e[A],r=e[A+1],f=i+r>>>0,h=(f>>0,e[A+1]=f}ot.sum64=RBA;function KBA(e,A,t,i){var o=A+i>>>0,r=(o>>0}ot.sum64_hi=KBA;function GBA(e,A,t,i){var o=A+i;return o>>>0}ot.sum64_lo=GBA;function FBA(e,A,t,i,o,r,f,h){var d=0,p=A;p=p+i>>>0,d+=p>>0,d+=p>>0,d+=p>>0}ot.sum64_4_hi=FBA;function xBA(e,A,t,i,o,r,f,h){var d=A+i+r+h;return d>>>0}ot.sum64_4_lo=xBA;function LBA(e,A,t,i,o,r,f,h,d,p){var C=0,y=A;y=y+i>>>0,C+=y>>0,C+=y>>0,C+=y>>0,C+=y>>0}ot.sum64_5_hi=LBA;function UBA(e,A,t,i,o,r,f,h,d,p){var C=A+i+r+h+p;return C>>>0}ot.sum64_5_lo=UBA;function _BA(e,A,t){var i=A<<32-t|e>>>t;return i>>>0}ot.rotr64_hi=_BA;function qBA(e,A,t){var i=e<<32-t|A>>>t;return i>>>0}ot.rotr64_lo=qBA;function HBA(e,A,t){return e>>>t}ot.shr64_hi=HBA;function YBA(e,A,t){var i=e<<32-t|A>>>t;return i>>>0}ot.shr64_lo=YBA;var il={},Z8=ot,JBA=lo;function xw(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}il.BlockHash=xw;xw.prototype.update=function(A,t){if(A=Z8.toArray(A,t),this.pending?this.pending=this.pending.concat(A):this.pending=A,this.pendingTotal+=A.length,this.pending.length>=this._delta8){A=this.pending;var i=A.length%this._delta8;this.pending=A.slice(A.length-i,A.length),this.pending.length===0&&(this.pending=null),A=Z8.join32(A,0,A.length-i,this.endian);for(var o=0;o>>24&255,o[r++]=A>>>16&255,o[r++]=A>>>8&255,o[r++]=A&255}else for(o[r++]=A&255,o[r++]=A>>>8&255,o[r++]=A>>>16&255,o[r++]=A>>>24&255,o[r++]=0,o[r++]=0,o[r++]=0,o[r++]=0,f=8;f>>3}Vs.g0_256=WBA;function VBA(e){return vs(e,17)^vs(e,19)^e>>>10}Vs.g1_256=VBA;var ou=ot,ZBA=il,zBA=Vs,kM=ou.rotl32,Hl=ou.sum32,$BA=ou.sum32_5,XBA=zBA.ft_1,lO=ZBA.BlockHash,AdA=[1518500249,1859775393,2400959708,3395469782];function Ls(){if(!(this instanceof Ls))return new Ls;lO.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}ou.inherits(Ls,lO);var edA=Ls;Ls.blockSize=512;Ls.outSize=160;Ls.hmacStrength=80;Ls.padLength=64;Ls.prototype._update=function(A,t){for(var i=this.W,o=0;o<16;o++)i[o]=A[t+o];for(;othis.blockSize&&(A=new this.Hash().update(A).digest()),YdA(A.length<=this.blockSize);for(var t=A.length;t=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(A,t,i)}var OdA=$g;$g.prototype._init=function(A,t,i){var o=A.concat(t).concat(i);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var r=0;r=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(A.concat(i||[])),this._reseed=1};$g.prototype.generate=function(A,t,i,o){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof t!="string"&&(o=i,i=t,t=null),i&&(i=ff.toArray(i,o||"hex"),this._update(i));for(var r=[];r.length"};var op=$a,FR=Kn,ZdA=FR.assert;function Lw(e,A){if(e instanceof Lw)return e;this._importDER(e,A)||(ZdA(e.r&&e.s,"Signature without r or s"),this.r=new op(e.r,16),this.s=new op(e.s,16),e.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var zdA=Lw;function $dA(){this.place=0}function FM(e,A){var t=e[A.place++];if(!(t&128))return t;var i=t&15;if(i===0||i>4||e[A.place]===0)return!1;for(var o=0,r=0,f=A.place;r>>=0;return o<=127?!1:(A.place=f,o)}function eU(e){for(var A=0,t=e.length-1;!e[A]&&!(e[A+1]&128)&&A>>3);for(e.push(t|128);--t;)e.push(A>>>(t<<3)&255);e.push(A)}Lw.prototype.toDER=function(A){var t=this.r.toArray(),i=this.s.toArray();for(t[0]&128&&(t=[0].concat(t)),i[0]&128&&(i=[0].concat(i)),t=eU(t),i=eU(i);!i[0]&&!(i[1]&128);)i=i.slice(1);var o=[2];xM(o,t.length),o=o.concat(t),o.push(2),xM(o,i.length);var r=o.concat(i),f=[48];return xM(f,r.length),f=f.concat(r),FR.encode(f,A)};var LM,tU;function XdA(){if(tU)return LM;tU=1;var e=$a,A=OdA,t=Kn,i=Gw,o=RR(),r=t.assert,f=VdA,h=zdA;function d(p){if(!(this instanceof d))return new d(p);typeof p=="string"&&(r(Object.prototype.hasOwnProperty.call(i,p),"Unknown curve "+p),p=i[p]),p instanceof i.PresetCurve&&(p={curve:p}),this.curve=p.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=p.curve.g,this.g.precompute(p.curve.n.bitLength()+1),this.hash=p.hash||p.curve.hash}return LM=d,d.prototype.keyPair=function(C){return new f(this,C)},d.prototype.keyFromPrivate=function(C,y){return f.fromPrivate(this,C,y)},d.prototype.keyFromPublic=function(C,y){return f.fromPublic(this,C,y)},d.prototype.genKeyPair=function(C){C||(C={});for(var y=new A({hash:this.hash,pers:C.pers,persEnc:C.persEnc||"utf8",entropy:C.entropy||o(this.hash.hmacStrength),entropyEnc:C.entropy&&C.entropyEnc||"utf8",nonce:this.n.toArray()}),w=this.n.byteLength(),D=this.n.sub(new e(2));;){var v=new e(y.generate(w));if(!(v.cmp(D)>0))return v.iaddn(1),this.keyFromPrivate(v)}},d.prototype._truncateToN=function(C,y,w){var D;if(e.isBN(C)||typeof C=="number")C=new e(C,16),D=C.byteLength();else if(typeof C=="object")D=C.length,C=new e(C,16);else{var v=C.toString();D=v.length+1>>>1,C=new e(v,16)}typeof w!="number"&&(w=D*8);var M=w-this.n.bitLength();return M>0&&(C=C.ushrn(M)),!y&&C.cmp(this.n)>=0?C.sub(this.n):C},d.prototype.sign=function(C,y,w,D){if(typeof w=="object"&&(D=w,w=null),D||(D={}),typeof C!="string"&&typeof C!="number"&&!e.isBN(C)){r(typeof C=="object"&&C&&typeof C.length=="number","Expected message to be an array-like, a hex string, or a BN instance"),r(C.length>>>0===C.length);for(var v=0;v=0)){var z=this.g.mul(P);if(!z.isInfinity()){var oA=z.getX(),J=oA.umod(this.n);if(J.cmpn(0)!==0){var q=P.invm(this.n).mul(J.mul(y.getPrivate()).iadd(C));if(q=q.umod(this.n),q.cmpn(0)!==0){var X=(z.getY().isOdd()?1:0)|(oA.cmp(J)!==0?2:0);return D.canonical&&q.cmp(this.nh)>0&&(q=this.n.sub(q),X^=1),new h({r:J,s:q,recoveryParam:X})}}}}}},d.prototype.verify=function(C,y,w,D,v){v||(v={}),C=this._truncateToN(C,!1,v.msgBitLength),w=this.keyFromPublic(w,D),y=new h(y,"hex");var M=y.r,R=y.s;if(M.cmpn(1)<0||M.cmp(this.n)>=0||R.cmpn(1)<0||R.cmp(this.n)>=0)return!1;var b=R.invm(this.n),S=b.mul(C).umod(this.n),G=b.mul(M).umod(this.n),U;return this.curve._maxwellTrick?(U=this.g.jmulAdd(S,w.getPublic(),G),U.isInfinity()?!1:U.eqXToP(M)):(U=this.g.mulAdd(S,w.getPublic(),G),U.isInfinity()?!1:U.getX().umod(this.n).cmp(M)===0)},d.prototype.recoverPubKey=function(p,C,y,w){r((3&y)===y,"The recovery param is more than two bits"),C=new h(C,w);var D=this.n,v=new e(p),M=C.r,R=C.s,b=y&1,S=y>>1;if(M.cmp(this.curve.p.umod(this.curve.n))>=0&&S)throw new Error("Unable to find sencond key candinate");S?M=this.curve.pointFromX(M.add(this.curve.n),b):M=this.curve.pointFromX(M,b);var G=C.r.invm(D),U=D.sub(v).mul(G).umod(D),P=R.mul(G).umod(D);return this.g.mulAdd(U,M,P)},d.prototype.getKeyRecoveryParam=function(p,C,y,w){if(C=new h(C,w),C.recoveryParam!==null)return C.recoveryParam;for(var D=0;D<4;D++){var v;try{v=this.recoverPubKey(p,C,D)}catch{continue}if(v.eq(y))return D}throw new Error("Unable to find valid recovery factor")},LM}var mB=Kn,MO=mB.assert,iU=mB.parseBytes,ol=mB.cachedProperty;function Li(e,A){this.eddsa=e,this._secret=iU(A.secret),e.isPoint(A.pub)?this._pub=A.pub:this._pubBytes=iU(A.pub)}Li.fromPublic=function(A,t){return t instanceof Li?t:new Li(A,{pub:t})};Li.fromSecret=function(A,t){return t instanceof Li?t:new Li(A,{secret:t})};Li.prototype.secret=function(){return this._secret};ol(Li,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())});ol(Li,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())});ol(Li,"privBytes",function(){var A=this.eddsa,t=this.hash(),i=A.encodingLength-1,o=t.slice(0,A.encodingLength);return o[0]&=248,o[i]&=127,o[i]|=64,o});ol(Li,"priv",function(){return this.eddsa.decodeInt(this.privBytes())});ol(Li,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()});ol(Li,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)});Li.prototype.sign=function(A){return MO(this._secret,"KeyPair can only verify"),this.eddsa.sign(A,this)};Li.prototype.verify=function(A,t){return this.eddsa.verify(A,t,this)};Li.prototype.getSecret=function(A){return MO(this._secret,"KeyPair is public only"),mB.encode(this.secret(),A)};Li.prototype.getPublic=function(A){return mB.encode(this.pubBytes(),A)};var AEA=Li,eEA=$a,Uw=Kn,rU=Uw.assert,_w=Uw.cachedProperty,tEA=Uw.parseBytes;function $f(e,A){this.eddsa=e,typeof A!="object"&&(A=tEA(A)),Array.isArray(A)&&(rU(A.length===e.encodingLength*2,"Signature has invalid size"),A={R:A.slice(0,e.encodingLength),S:A.slice(e.encodingLength)}),rU(A.R&&A.S,"Signature without R or S"),e.isPoint(A.R)&&(this._R=A.R),A.S instanceof eEA&&(this._S=A.S),this._Rencoded=Array.isArray(A.R)?A.R:A.Rencoded,this._Sencoded=Array.isArray(A.S)?A.S:A.Sencoded}_w($f,"S",function(){return this.eddsa.decodeInt(this.Sencoded())});_w($f,"R",function(){return this.eddsa.decodePoint(this.Rencoded())});_w($f,"Rencoded",function(){return this.eddsa.encodePoint(this.R())});_w($f,"Sencoded",function(){return this.eddsa.encodeInt(this.S())});$f.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};$f.prototype.toHex=function(){return Uw.encode(this.toBytes(),"hex").toUpperCase()};var iEA=$f,rEA=Fw,nEA=Gw,gu=Kn,oEA=gu.assert,bO=gu.parseBytes,SO=AEA,nU=iEA;function sn(e){if(oEA(e==="ed25519","only tested with ed25519 so far"),!(this instanceof sn))return new sn(e);e=nEA[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=rEA.sha512}var sEA=sn;sn.prototype.sign=function(A,t){A=bO(A);var i=this.keyFromSecret(t),o=this.hashInt(i.messagePrefix(),A),r=this.g.mul(o),f=this.encodePoint(r),h=this.hashInt(f,i.pubBytes(),A).mul(i.priv()),d=o.add(h).umod(this.curve.n);return this.makeSignature({R:r,S:d,Rencoded:f})};sn.prototype.verify=function(A,t,i){if(A=bO(A),t=this.makeSignature(t),t.S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var o=this.keyFromPublic(i),r=this.hashInt(t.Rencoded(),o.pubBytes(),A),f=this.g.mul(t.S()),h=t.R().add(o.pub().mul(r));return h.eq(f)};sn.prototype.hashInt=function(){for(var A=this.hash(),t=0;t0&&e.compare(aEA)<0:!1}function fEA(e,A){if(e.length!==A.length)return!1;let t=0;for(let i=0;i"u")return Buffer.from(Qn.randomBytes(e));const A=new Uint8Array(e);return Qn.getRandomValues(A),Buffer.from(A)}async function kO(e){if(!Qn.createHash){const i=await vg.digest("SHA-512",e);return new Uint8Array(i)}const t=Qn.createHash("sha512").update(e).digest();return new Uint8Array(t)}function RO(e){return async function(A,t,i){if(vg&&vg[e]&&vg.importKey){const o={name:"AES-CBC"},r=await vg.importKey("raw",t,o,!1,[e]),f={name:"AES-CBC",iv:A},h=await vg[e](f,r,i);return Buffer.from(new Uint8Array(h))}else if(e==="encrypt"&&Qn.createCipheriv){const o=Qn.createCipheriv("aes-256-cbc",t,A),r=o.update(i),f=o.final();return Buffer.concat([r,f])}else if(e==="decrypt"&&Qn.createDecipheriv){const o=Qn.createDecipheriv("aes-256-cbc",t,A),r=o.update(i),f=o.final();return Buffer.concat([r,f])}throw new Error(`Unsupported operation: ${e}`)}}const hEA=RO("encrypt"),cEA=RO("decrypt");async function KO(e,A){if(!Qn.createHmac){const o={name:"HMAC",hash:{name:"SHA-256"}},r=await vg.importKey("raw",new Uint8Array(e),o,!1,["sign","verify"]),f=await vg.sign("HMAC",r,A);return Buffer.from(new Uint8Array(f))}const t=Qn.createHmac("sha256",Buffer.from(e));return t.update(A),t.digest()}async function uEA(e,A,t){const i=await KO(e,A);return fEA(i,t)}const GO=function(e){return fr(e.length===32,"Bad private key"),fr(Yw(e),"Bad private key"),Buffer.from(cC.keyFromPrivate(e).getPublic("array"))},lEA=async function(e,A){fr(Buffer.isBuffer(e),"Bad private key"),fr(Buffer.isBuffer(A),"Bad public key"),fr(e.length===32,"Bad private key"),fr(Yw(e),"Bad private key"),fr(A.length===65||A.length===33,"Bad public key"),A.length===65&&fr(A[0]===4,"Bad public key"),A.length===33&&fr(A[0]===2||A[0]===3,"Bad public key");const t=cC.keyFromPrivate(e),i=cC.keyFromPublic(A),o=t.derive(i.getPublic());return Buffer.from(o.toArray())},FO=lEA,CEA=async function(e,A){fr(Buffer.isBuffer(e),"Bad private key"),fr(Buffer.isBuffer(A),"Bad public key"),fr(e.length===32,"Bad private key"),fr(Yw(e),"Bad private key"),fr(A.length===65||A.length===33,"Bad public key"),A.length===65&&fr(A[0]===4,"Bad public key"),A.length===33&&fr(A[0]===2||A[0]===3,"Bad public key");const t=cC.keyFromPrivate(e),i=cC.keyFromPublic(A),o=t.derive(i.getPublic());return Buffer.from(o.toString(16,64),"hex")},BEA=async function(e,A,t){t=t||{};let i=t.ephemPrivateKey||UM(32);for(;!Yw(i);)i=t.ephemPrivateKey||UM(32);const o=GO(i),r=await FO(i,e),f=await kO(r),h=t.iv||UM(16),d=f.slice(0,32),p=f.slice(32),y=await hEA(h,Buffer.from(d),A),w=Buffer.concat([h,o,y]),D=await KO(Buffer.from(p),w);return{iv:h,ephemPublicKey:o,ciphertext:y,mac:D}},xO=async function(e,A,t){const i=t??!1,r=await(i?CEA:FO)(e,A.ephemPublicKey),f=await kO(r),h=f.slice(0,32),d=f.slice(32),p=Buffer.concat([A.iv,A.ephemPublicKey,A.ciphertext]),C=await uEA(Buffer.from(d),p,A.mac);if(!C&&i===!1)return xO(e,A,!0);if(!C&&i===!0)throw new Error("bad MAC after trying padded");const y=await cEA(A.iv,Buffer.from(h),A.ciphertext);return Buffer.from(new Uint8Array(y))};function sU(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);A&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),t.push.apply(t,i)}return t}function qs(e){for(var A=1;A{const t=xR[e];if(!t||t.length===0)throw new Error(`Unsupported network: ${e}`);const i=Jw[A];return t.map(o=>i&&i.networkIdentifier?`${o}/sss/${i.networkIdentifier}/jrpc`:`${o}/sss/jrpc`)},pEA=(e,A)=>{const t=xR[e];if(!t||t.length===0)throw new Error(`Unsupported network: ${e}`);const i=Jw[A];return t.map(o=>i&&i.networkIdentifier?`${o}/rss/${i.networkIdentifier}`:`${o}/rss`)},yEA=(e,A,t=sp.SECP256K1)=>{const i=xR[e];if(!i||i.length===0)throw new Error(`Unsupported network: ${e}`);const o=t===sp.ED25519?"tss-frost":"tss",r=Jw[A];return i.map(f=>r&&r.networkIdentifier?`${f}/${o}/${r.networkIdentifier}`:`${f}/${o}`)},wEA={[Vi.SAPPHIRE_MAINNET]:[{X:"e0925898fee0e9e941fdca7ee88deec99939ae9407e923535c4d4a3a3ff8b052",Y:"54b9fea924e3f3e40791f9987f4234ae4222412d65b74068032fa5d8b63375c1"},{X:"9124cf1e280aab32ba50dffd2de81cecabc13d82d2c1fe9de82f3b3523f9b637",Y:"fca939a1ceb42ce745c55b21ef094f543b457630cb63a94ef4f1afeee2b1f107"},{X:"555f681a63d469cc6c3a58a97e29ebd277425f0e6159708e7c7bf05f18f89476",Y:"606f2bcc0884fa5b64366fc3e8362e4939841b56acd60d5f4553cf36b891ac4e"},{X:"2b5f58d8e340f1ab922e89b3a69a68930edfe51364644a456335e179bc130128",Y:"4b4daa05939426e3cbe7d08f0e773d2bf36f64c00d04620ee6df2a7af4d2247"},{X:"3ecbb6a68afe72cf34ec6c0a12b5cb78a0d2e83ba402983b6adbc5f36219861a",Y:"dc1031c5cc8f0472bd521a62a64ebca9e163902c247bf05937daf4ae835091e4"}],[Vi.SAPPHIRE_DEVNET]:[{X:"f74389b0a4c8d10d2a687ae575f69b20f412d41ab7f1fe6b358aa14871327247",Y:"54e3a73098ed9bced3ef8821736e9794f9264a1420c0c7ad15d2fa617ba35ef7"},{X:"bc38813a6873e526087918507c78fc3a61624670ee851ecfb4f3bef55d027b5a",Y:"ac4b21229f662a0aefdfdac21cf17c3261a392c74a8790db218b34e3e4c1d56a"},{X:"b56541684ea5fa40c8337b7688d502f0e9e092098962ad344c34e94f06d293fb",Y:"759a998cef79d389082f9a75061a29190eec0cac99b8c25ddcf6b58569dad55c"},{X:"7bcb058d4c6ffc6ba4bfdfd93d141af35a66338a62c7c27cdad2ae3f8289b767",Y:"336ab1935e41ed4719e162587f0ab55518db4207a1eb36cc72303f1b86689d2b"},{X:"bf12a136ef94399ea098f926f04e26a4ec4ac70f69cce274e8893704c4951773",Y:"bdd44828020f52ce510e026338216ada184a6867eb4e19fb4c2d495d4a7e15e4"}]},gU=(e,A,t)=>({currentEpoch:"1",torusNodeEndpoints:aU(e,A),torusNodeSSSEndpoints:aU(e,A),torusNodeRSSEndpoints:pEA(e,A),torusNodeTSSEndpoints:yEA(e,A,t),torusIndexes:[1,2,3,4,5],torusNodePub:wEA[e]});function DEA(e,A){if(Object.values(Vi).includes(e))return gU(e,void 0,A);if(Object.values(Et).includes(e)){const t=Jw[e];if(t.migrationCompleted)return gU(t.networkMigratedTo,e,A)}}var mEA=function(A){return vEA(A)&&!MEA(A)};function vEA(e){return!!e&&typeof e=="object"}function MEA(e){var A=Object.prototype.toString.call(e);return A==="[object RegExp]"||A==="[object Date]"||NEA(e)}var bEA=typeof Symbol=="function"&&Symbol.for,SEA=bEA?Symbol.for("react.element"):60103;function NEA(e){return e.$$typeof===SEA}function kEA(e){return Array.isArray(e)?[]:{}}function uC(e,A){return A.clone!==!1&&A.isMergeableObject(e)?Iu(kEA(e),e,A):e}function REA(e,A,t){return e.concat(A).map(function(i){return uC(i,t)})}function KEA(e,A){if(!A.customMerge)return Iu;var t=A.customMerge(e);return typeof t=="function"?t:Iu}function GEA(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(A){return Object.propertyIsEnumerable.call(e,A)}):[]}function IU(e){return Object.keys(e).concat(GEA(e))}function LO(e,A){try{return A in e}catch{return!1}}function FEA(e,A){return LO(e,A)&&!(Object.hasOwnProperty.call(e,A)&&Object.propertyIsEnumerable.call(e,A))}function xEA(e,A,t){var i={};return t.isMergeableObject(e)&&IU(e).forEach(function(o){i[o]=uC(e[o],t)}),IU(A).forEach(function(o){FEA(e,o)||(LO(e,o)&&t.isMergeableObject(A[o])?i[o]=KEA(o,t)(e[o],A[o],t):i[o]=uC(A[o],t))}),i}function Iu(e,A,t){t=t||{},t.arrayMerge=t.arrayMerge||REA,t.isMergeableObject=t.isMergeableObject||mEA,t.cloneUnlessOtherwiseSpecified=uC;var i=Array.isArray(A),o=Array.isArray(e),r=i===o;return r?i?t.arrayMerge(e,A,t):xEA(e,A,t):uC(A,t)}Iu.all=function(A,t){if(!Array.isArray(A))throw new Error("first argument should be an array");return A.reduce(function(i,o){return Iu(i,o,t)},{})};var LEA=Iu,UEA=LEA;const UO=$i(UEA);var _O={exports:{}};(function(e){(function(A,t){e.exports?e.exports=t():A.log=t()})(Qr,function(){var A=function(){},t="undefined",i=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),o=["trace","debug","info","warn","error"],r={},f=null;function h(M,R){var b=M[R];if(typeof b.bind=="function")return b.bind(M);try{return Function.prototype.bind.call(b,M)}catch{return function(){return Function.prototype.apply.apply(b,[M,arguments])}}}function d(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function p(M){return M==="debug"&&(M="log"),typeof console===t?!1:M==="trace"&&i?d:console[M]!==void 0?h(console,M):console.log!==void 0?h(console,"log"):A}function C(){for(var M=this.getLevel(),R=0;R=0&&n<=b.levels.SILENT)return n;throw new TypeError("log.setLevel() called with invalid level: "+Q)}b.name=M,b.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},b.methodFactory=R||w,b.getLevel=function(){return U??G??S},b.setLevel=function(Q,n){return U=q(Q),n!==!1&&z(U),C.call(b)},b.setDefaultLevel=function(Q){G=q(Q),oA()||b.setLevel(Q,!1)},b.resetLevel=function(){U=null,J(),C.call(b)},b.enableAll=function(Q){b.setLevel(b.levels.TRACE,Q)},b.disableAll=function(Q){b.setLevel(b.levels.SILENT,Q)},b.rebuild=function(){if(f!==b&&(S=q(f.getLevel())),C.call(b),f===b)for(var Q in r)r[Q].rebuild()},S=q(f?f.getLevel():"WARN");var X=oA();X!=null&&(U=q(X)),C.call(b)}f=new D,f.getLogger=function(R){if(typeof R!="symbol"&&typeof R!="string"||R==="")throw new TypeError("You must supply a name when creating a logger.");var b=r[R];return b||(b=r[R]=new D(R,f.methodFactory)),b};var v=typeof window!==t?window.log:void 0;return f.noConflict=function(){return typeof window!==t&&window.log===f&&(window.log=v),f},f.getLoggers=function(){return r},f.default=f,f})})(_O);var qO=_O.exports;const qr=$i(qO),ap=qr.getLogger("http-helpers");ap.setLevel(qO.levels.INFO);let _EA="torus-default";const qEA="x-api-key";async function HO(e,A){let t=null;try{t=new URL(e)}catch{}return fetch(e,A)}function YO(){const e={};return e[qEA]=_EA,e}function JO(e){ap.info(`Response: ${e.status} ${e.statusText}`),ap.info(`Url: ${e.url}`)}function HEA(e){const A=e.headers.get("x-web3-correlation-id");A&&ap.info(`Request tracing with traceID = ${A}`)}const YEA=async(e,A)=>{let t=null;try{const i=new Promise((r,f)=>{t=setTimeout(()=>{f(new Error(`Timed out in ${e}ms`))},e)}),o=await Promise.race([A,i]);return t!=null&&clearTimeout(t),o}catch(i){throw t!=null&&clearTimeout(t),i}},JEA=async(e,A={},t={})=>{const i={mode:"cors",headers:{}};t.useAPIKey&&(i.headers=qs(qs({},i.headers),YO())),A.method="GET";const o=UO(i,A),r=await HO(e,o);if(r.ok){const f=r.headers.get("content-type");return f!=null&&f.includes("application/json")?r.json():r.text()}throw JO(r),r},Ca=(e,A={},t={},i={})=>{const o={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};i.useAPIKey&&(o.headers=qs(qs({},o.headers),YO())),t.method="POST";const r=UO(o,t);return i.isUrlEncodedData?(r.body=A,r.headers["Content-Type"]==="application/json; charset=utf-8"&&delete r.headers["Content-Type"]):r.body=JSON.stringify(A),YEA(i.timeout||6e4,HO(e,r).then(f=>{if(i.logTracingHeader&&HEA(f),f.ok){const h=f.headers.get("content-type");return h!=null&&h.includes("application/json")?f.json():f.text()}throw JO(f),f}))},Tw=(e,A)=>({jsonrpc:"2.0",method:e,id:10,params:A}),qd=qr.getLogger("fnd");class TEA{constructor({network:A=Vi.SAPPHIRE_MAINNET,keyType:t=sp.SECP256K1,fndServerEndpoint:i,enableLogging:o=!1}={}){if(Le(this,"fndServerEndpoint",`${QEA}/node-details`),Le(this,"_currentEpoch","1"),Le(this,"_keyType",void 0),Le(this,"_torusNodeEndpoints",[]),Le(this,"_torusNodeRSSEndpoints",[]),Le(this,"_torusNodeSSSEndpoints",[]),Le(this,"_torusNodeTSSEndpoints",[]),Le(this,"_torusNodePub",[]),Le(this,"_torusIndexes",[]),Le(this,"updated",void 0),Le(this,"network",void 0),A&&!Object.values(qs(qs({},Et),Vi)).includes(A))throw new Error("Invalid network");this.network=A,this._keyType=t,this.updated=!1,i&&(this.fndServerEndpoint=i),o?qd.enableAll():qd.disableAll()}get _nodeDetails(){return{currentEpoch:this._currentEpoch,torusNodeEndpoints:this._torusNodeEndpoints,torusNodeSSSEndpoints:this._torusNodeSSSEndpoints,torusNodeRSSEndpoints:this._torusNodeRSSEndpoints,torusNodeTSSEndpoints:this._torusNodeTSSEndpoints,torusNodePub:this._torusNodePub,torusIndexes:this._torusIndexes,updated:this.updated}}async getNodeDetails({verifier:A,verifierId:t}){try{if(this.updated&&!dEA.includes(this.network))return this._nodeDetails;try{const{nodeDetails:o}=await JEA(`${this.fndServerEndpoint}?network=${this.network}&verifier=${A}&verifierId=${t}&keyType=${this._keyType}`);return this.setNodeDetails(o),this._nodeDetails}catch(o){qd.error("Failed to fetch node details from server, using local.",o)}const i=DEA(this.network,this._keyType);if(!i)throw new Error("Failed to fetch node details");return this.setNodeDetails(i),this._nodeDetails}catch(i){throw qd.error("Failed to fetch node details",i),i}}async getMetadataUrl(){return Object.values(Et).includes(this.network)?EEA[this.network]:(await this.getNodeDetails({verifier:"test-verifier",verifierId:"test-verifier-id"})).torusNodeEndpoints[0].replace("/sss/jrpc","/metadata")}setNodeDetails(A){const{currentEpoch:t,torusNodeEndpoints:i,torusNodeSSSEndpoints:o,torusNodeRSSEndpoints:r,torusNodeTSSEndpoints:f,torusNodePub:h,torusIndexes:d}=A;this._torusNodeEndpoints=i,this._torusNodeSSSEndpoints=o||[],this._torusNodeRSSEndpoints=r||[],this._torusNodeTSSEndpoints=f||[],this._torusNodePub=h,this._torusIndexes=d,this._currentEpoch=t,this.updated=!0}}Vi.SAPPHIRE_MAINNET,Vi.SAPPHIRE_DEVNET;function PEA(e,A){const{setPrototypeOf:t}=Object;t?t(e,A):e.__proto__=A}function OEA(e,A=e.constructor){const{captureStackTrace:t}=Error;t&&t(e,A)}class jEA extends Error{constructor(A,t){super(A,t),Le(this,"name",void 0),Object.defineProperty(this,"name",{value:new.target.name,enumerable:!1,configurable:!0}),PEA(this,new.target.prototype),OEA(this)}}class WEA extends jEA{constructor(A,t){super(t),Le(this,"code",void 0),Le(this,"message",void 0),this.code=A,this.message=t||"",Object.defineProperty(this,"name",{value:"TkeyError"})}toJSON(){return{name:this.name,code:this.code,message:this.message}}toString(){return JSON.stringify(this.toJSON())}}class xe extends WEA{constructor(A,t){super(A,t),Object.defineProperty(this,"name",{value:"CoreKitError"})}static fromCode(A,t=""){return new xe(A,`${xe.messages[A]} ${t}`)}static default(A=""){return new xe(1e3,`${xe.messages[1e3]} ${A}`)}static chainConfigInvalid(A=""){return xe.fromCode(1001,A)}static clientIdInvalid(A=""){return xe.fromCode(1002,A)}static storageTypeUnsupported(A=""){return xe.fromCode(1003,A)}static oauthLoginUnsupported(A=""){return xe.fromCode(1004,A)}static noValidStorageOptionFound(A=""){return xe.fromCode(1005,A)}static noDataFoundInStorage(A=""){return xe.fromCode(1006,A)}static invalidConfig(A=""){return xe.fromCode(1007,A)}static tssLibRequired(A=""){return xe.fromCode(1101,A)}static tkeyInstanceUninitialized(A=""){return xe.fromCode(1102,A)}static duplicateTssIndex(A=""){return xe.fromCode(1103,A)}static nodeDetailsRetrievalFailed(A=""){return xe.fromCode(1104,A)}static prefetchValueExceeded(A=""){return xe.fromCode(1105,A)}static invalidTorusLoginResponse(A=""){return xe.fromCode(1106,A)}static invalidTorusAggregateLoginResponse(A=""){return xe.fromCode(1107,A)}static unsupportedRedirectMethod(A=""){return xe.fromCode(1108,A)}static postBoxKeyMissing(A=""){return xe.fromCode(1109,A)}static tssShareTypeIndexMissing(A=""){return xe.fromCode(1110,A)}static tssPublicKeyOrEndpointsMissing(A=""){return xe.fromCode(1111,A)}static activeSessionNotFound(A=""){return xe.fromCode(1112,A)}static tssNoncesMissing(A=""){return xe.fromCode(1113,A)}static tssKeyImportNotAllowed(A=""){return xe.fromCode(1114,A)}static factorKeyNotPresent(A=""){return xe.fromCode(1201,A)}static factorKeyAlreadyExists(A=""){return xe.fromCode(1202,A)}static mfaAlreadyEnabled(A=""){return xe.fromCode(1203,A)}static cannotDeleteLastFactor(A=""){return xe.fromCode(1204,A)}static factorInUseCannotBeDeleted(A=""){return xe.fromCode(1205,A)}static userNotLoggedIn(A=""){return xe.fromCode(1206,A)}static providedFactorKeyInvalid(A=""){return xe.fromCode(1207,A)}static factorEncsMissing(A=""){return xe.fromCode(1208,A)}static noMetadataFound(A=""){return xe.fromCode(1209,A)}static newShareIndexInvalid(A=""){return xe.fromCode(1210,A)}static maximumFactorsReached(A=""){return xe.fromCode(1211,A)}static noMetadataShareFound(A=""){return xe.fromCode(1212,A)}static signaturesNotPresent(A=""){return xe.fromCode(1213,A)}static factorPubsMissing(A=""){return xe.fromCode(1214,A)}static commitChangesBeforeMFA(A=""){return xe.fromCode(1301,A)}static mpcCoreKitNotInitialized(A=""){return xe.fromCode(1302,A)}}Le(xe,"messages",{1001:"You must specify a valid eip155 chain configuration in the options.",1002:"You must specify a web3auth clientId.",1003:"Unsupported storage type in this UX mode.",1004:"OAuth login is NOT supported in this UX mode.",1005:"No valid storage option found.",1006:"No data found in storage.",1007:"Invalid config.",1101:"'tssLib' is required when running in this UX mode.",1102:"'tkey' instance has not been initialized.",1103:"Duplicate TSS index found. Ensure that each TSS index is unique.",1104:"Failed to retrieve node details. Please check your network connection and try again.",1105:"The prefetch TSS public keys exceeds the maximum allowed limit of 3.",1106:"Invalid 'TorusLoginResponse' data provided.",1107:"Invalid 'TorusAggregateLoginResponse' data provided.",1108:"Unsupported method type encountered in redirect result.",1109:"OAuthKey not present in state.",1110:"TSS Share Type (Index) not present in state when getting current factor key.",1111:"'tssPubKey' or 'torusNodeTSSEndpoints' are missing.",1112:"No active session found.",1113:"tssNonces not present in metadata when getting tss nonce.",1114:"A TSS key cannot be imported for an existing user who already has a key configured.",1201:"factorKey not present in state when required.",1202:"A factor with the same key already exists.",1203:"MFA is already enabled.",1204:"Cannot delete the last remaining factor as at least one factor is required.",1205:"The factor currently in use cannot be deleted.",1206:"User is not logged in.",1207:"Provided factor key is invalid.",1208:"'factorEncs' mpt [resemt].",1209:"No metadata found for the provided factor key. Consider resetting your account if this error persists.",1210:"The new share index is not valid. It must be one of the valid share indices.",1211:"The maximum number of allowable factors (10) has been reached.",1212:"No metadata share found in the current polynomial.",1213:"No signatures found.",1214:"Factor public keys not present",1301:"The 'CommitChanges' method must be called before enabling MFA.",1302:"The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations."});class VEA{constructor(A,t){Le(this,"storage",void 0),Le(this,"_storeKey",void 0),this.storage=t,this._storeKey=A}async toJSON(){const A=await this.storage.getItem(this._storeKey);if(!A)throw xe.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`);return A}async resetStore(){const A=await this.getStore();return await this.storage.setItem(this._storeKey,JSON.stringify({})),A}async getStore(){return JSON.parse(await this.storage.getItem(this._storeKey)||"{}")}async get(A){return JSON.parse(await this.storage.getItem(this._storeKey)||"{}")[A]}async set(A,t){const i=JSON.parse(await this.storage.getItem(this._storeKey)||"{}");i[A]=t,await this.storage.setItem(this._storeKey,JSON.stringify(i))}async remove(A){const t=JSON.parse(await this.storage.getItem(this._storeKey)||"{}");delete t[A],await this.storage.setItem(this._storeKey,JSON.stringify(t))}}var TO={exports:{}},LR={},UR={};Object.defineProperty(UR,"__esModule",{value:!0});function ZEA(e){var A=4,t=e.length,i=t%A;if(!i)return e;var o=t,r=A-i,f=t+r,h=Buffer.alloc(f);for(h.write(e);r--;)h.write("=",o++);return h.toString()}UR.default=ZEA;Object.defineProperty(LR,"__esModule",{value:!0});var zEA=UR;function PO(e,A){return A===void 0&&(A="utf8"),Buffer.isBuffer(e)?xS(e.toString("base64")):xS(Buffer.from(e,A).toString("base64"))}function $EA(e,A){return A===void 0&&(A="utf8"),Buffer.from(_R(e),"base64").toString(A)}function _R(e){return e=e.toString(),zEA.default(e).replace(/\-/g,"+").replace(/_/g,"/")}function xS(e){return e.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function XEA(e){return Buffer.from(_R(e),"base64")}var sl=PO;sl.encode=PO;sl.decode=$EA;sl.toBase64=_R;sl.fromBase64=xS;sl.toBuffer=XEA;LR.default=sl;(function(e){e.exports=LR.default,e.exports.default=e.exports})(TO);var AQA=TO.exports;const eQA=$i(AQA);var Hd={},_M,fU;function tQA(){if(fU)return _M;fU=1;var e,A,t={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` +`,r:"\r",t:" "},i;function o(D){throw{name:"SyntaxError",message:D,at:e,text:i}}function r(D){return D&&D!==A&&o("Expected '"+D+"' instead of '"+A+"'"),A=i.charAt(e),e+=1,A}function f(){var D,v="";for(A==="-"&&(v="-",r("-"));A>="0"&&A<="9";)v+=A,r();if(A===".")for(v+=".";r()&&A>="0"&&A<="9";)v+=A;if(A==="e"||A==="E")for(v+=A,r(),(A==="-"||A==="+")&&(v+=A,r());A>="0"&&A<="9";)v+=A,r();return D=Number(v),isFinite(D)||o("Bad number"),D}function h(){var D,v,M="",R;if(A==='"')for(;r();){if(A==='"')return r(),M;if(A==="\\")if(r(),A==="u"){for(R=0,v=0;v<4&&(D=parseInt(r(),16),!!isFinite(D));v+=1)R=R*16+D;M+=String.fromCharCode(R)}else if(typeof t[A]=="string")M+=t[A];else break;else M+=A}o("Bad string")}function d(){for(;A&&A<=" ";)r()}function p(){switch(A){case"t":return r("t"),r("r"),r("u"),r("e"),!0;case"f":return r("f"),r("a"),r("l"),r("s"),r("e"),!1;case"n":return r("n"),r("u"),r("l"),r("l"),null;default:o("Unexpected '"+A+"'")}}function C(){var D=[];if(A==="["){if(r("["),d(),A==="]")return r("]"),D;for(;A;){if(D.push(w()),d(),A==="]")return r("]"),D;r(","),d()}}o("Bad array")}function y(){var D,v={};if(A==="{"){if(r("{"),d(),A==="}")return r("}"),v;for(;A;){if(D=h(),d(),r(":"),Object.prototype.hasOwnProperty.call(v,D)&&o('Duplicate key "'+D+'"'),v[D]=w(),d(),A==="}")return r("}"),v;r(","),d()}}o("Bad object")}function w(){switch(d(),A){case"{":return y();case"[":return C();case'"':return h();case"-":return f();default:return A>="0"&&A<="9"?f():p()}}return _M=function(D,v){var M;return i=D,e=0,A=" ",M=w(),d(),A&&o("Syntax error"),typeof v=="function"?function R(b,S){var G,U,P=b[S];if(P&&typeof P=="object")for(G in w)Object.prototype.hasOwnProperty.call(P,G)&&(U=R(P,G),typeof U>"u"?delete P[G]:P[G]=U);return v.call(b,S,P)}({"":M},""):M},_M}var qM,hU;function iQA(){if(hU)return qM;hU=1;var e=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,A,t,i={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},o;function r(h){return e.lastIndex=0,e.test(h)?'"'+h.replace(e,function(d){var p=i[d];return typeof p=="string"?p:"\\u"+("0000"+d.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+h+'"'}function f(h,d){var p,C,y,w,D=A,v,M=d[h];switch(M&&typeof M=="object"&&typeof M.toJSON=="function"&&(M=M.toJSON(h)),typeof o=="function"&&(M=o.call(d,h,M)),typeof M){case"string":return r(M);case"number":return isFinite(M)?String(M):"null";case"boolean":case"null":return String(M);case"object":if(!M)return"null";if(A+=t,v=[],Object.prototype.toString.apply(M)==="[object Array]"){for(w=M.length,p=0;p=0&&uU.call(A.callee)==="[object Function]"),i},HM,lU;function nQA(){if(lU)return HM;lU=1;var e;if(!Object.keys){var A=Object.prototype.hasOwnProperty,t=Object.prototype.toString,i=OO,o=Object.prototype.propertyIsEnumerable,r=!o.call({toString:null},"toString"),f=o.call(function(){},"prototype"),h=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],d=function(w){var D=w.constructor;return D&&D.prototype===w},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},C=function(){if(typeof window>"u")return!1;for(var w in window)try{if(!p["$"+w]&&A.call(window,w)&&window[w]!==null&&typeof window[w]=="object")try{d(window[w])}catch{return!0}}catch{return!0}return!1}(),y=function(w){if(typeof window>"u"||!C)return d(w);try{return d(w)}catch{return!1}};e=function(D){var v=D!==null&&typeof D=="object",M=t.call(D)==="[object Function]",R=i(D),b=v&&t.call(D)==="[object String]",S=[];if(!v&&!M&&!R)throw new TypeError("Object.keys called on a non-object");var G=f&&M;if(b&&D.length>0&&!A.call(D,0))for(var U=0;U0)for(var P=0;P"u"||!ki?tt:ki(Uint8Array),cf={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?tt:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?tt:ArrayBuffer,"%ArrayIteratorPrototype%":Bh&&ki?ki([][Symbol.iterator]()):tt,"%AsyncFromSyncIteratorPrototype%":tt,"%AsyncFunction%":Nh,"%AsyncGenerator%":Nh,"%AsyncGeneratorFunction%":Nh,"%AsyncIteratorPrototype%":Nh,"%Atomics%":typeof Atomics>"u"?tt:Atomics,"%BigInt%":typeof BigInt>"u"?tt:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?tt:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?tt:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?tt:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":NQA,"%eval%":eval,"%EvalError%":kQA,"%Float32Array%":typeof Float32Array>"u"?tt:Float32Array,"%Float64Array%":typeof Float64Array>"u"?tt:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?tt:FinalizationRegistry,"%Function%":VO,"%GeneratorFunction%":Nh,"%Int8Array%":typeof Int8Array>"u"?tt:Int8Array,"%Int16Array%":typeof Int16Array>"u"?tt:Int16Array,"%Int32Array%":typeof Int32Array>"u"?tt:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Bh&&ki?ki(ki([][Symbol.iterator]())):tt,"%JSON%":typeof JSON=="object"?JSON:tt,"%Map%":typeof Map>"u"?tt:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Bh||!ki?tt:ki(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?tt:Promise,"%Proxy%":typeof Proxy>"u"?tt:Proxy,"%RangeError%":RQA,"%ReferenceError%":KQA,"%Reflect%":typeof Reflect>"u"?tt:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?tt:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Bh||!ki?tt:ki(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?tt:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Bh&&ki?ki(""[Symbol.iterator]()):tt,"%Symbol%":Bh?Symbol:tt,"%SyntaxError%":fu,"%ThrowTypeError%":FQA,"%TypedArray%":LQA,"%TypeError%":yc,"%Uint8Array%":typeof Uint8Array>"u"?tt:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?tt:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?tt:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?tt:Uint32Array,"%URIError%":GQA,"%WeakMap%":typeof WeakMap>"u"?tt:WeakMap,"%WeakRef%":typeof WeakRef>"u"?tt:WeakRef,"%WeakSet%":typeof WeakSet>"u"?tt:WeakSet};if(ki)try{null.error}catch(e){var UQA=ki(ki(e));cf["%Error.prototype%"]=UQA}var _QA=function e(A){var t;if(A==="%AsyncFunction%")t=TM("async function () {}");else if(A==="%GeneratorFunction%")t=TM("function* () {}");else if(A==="%AsyncGeneratorFunction%")t=TM("async function* () {}");else if(A==="%AsyncGenerator%"){var i=e("%AsyncGeneratorFunction%");i&&(t=i.prototype)}else if(A==="%AsyncIteratorPrototype%"){var o=e("%AsyncGenerator%");o&&ki&&(t=ki(o.prototype))}return cf[A]=t,t},QU={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},vB=qR,gp=SQA,qQA=vB.call(Function.call,Array.prototype.concat),HQA=vB.call(Function.apply,Array.prototype.splice),pU=vB.call(Function.call,String.prototype.replace),Ip=vB.call(Function.call,String.prototype.slice),YQA=vB.call(Function.call,RegExp.prototype.exec),JQA=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,TQA=/\\(\\)?/g,PQA=function(A){var t=Ip(A,0,1),i=Ip(A,-1);if(t==="%"&&i!=="%")throw new fu("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&t!=="%")throw new fu("invalid intrinsic syntax, expected opening `%`");var o=[];return pU(A,JQA,function(r,f,h,d){o[o.length]=h?pU(d,TQA,"$1"):f||r}),o},OQA=function(A,t){var i=A,o;if(gp(QU,i)&&(o=QU[i],i="%"+o[0]+"%"),gp(cf,i)){var r=cf[i];if(r===Nh&&(r=_QA(i)),typeof r>"u"&&!t)throw new yc("intrinsic "+A+" exists, but is not available. Please file an issue!");return{alias:o,name:i,value:r}}throw new fu("intrinsic "+A+" does not exist!")},MB=function(A,t){if(typeof A!="string"||A.length===0)throw new yc("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof t!="boolean")throw new yc('"allowMissing" argument must be a boolean');if(YQA(/^%?[^%]*%?$/,A)===null)throw new fu("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=PQA(A),o=i.length>0?i[0]:"",r=OQA("%"+o+"%",t),f=r.name,h=r.value,d=!1,p=r.alias;p&&(o=p[0],HQA(i,qQA([0,1],p)));for(var C=1,y=!0;C=i.length){var M=hf(h,w);y=!!M,y&&"get"in M&&!("originalValue"in M.get)?h=M.get:h=h[w]}else y=gp(h,w),h=h[w];y&&!d&&(cf[f]=h)}}return h},OM,yU;function HR(){if(yU)return OM;yU=1;var e=MB,A=e("%Object.defineProperty%",!0)||!1;if(A)try{A({},"a",{value:1})}catch{A=!1}return OM=A,OM}var jQA=MB,$E=jQA("%Object.getOwnPropertyDescriptor%",!0);if($E)try{$E([],"length")}catch{$E=null}var ZO=$E,wU=HR(),WQA=WO,dh=Pw,DU=ZO,VQA=function(A,t,i){if(!A||typeof A!="object"&&typeof A!="function")throw new dh("`obj` must be an object or a function`");if(typeof t!="string"&&typeof t!="symbol")throw new dh("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new dh("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new dh("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new dh("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new dh("`loose`, if provided, must be a boolean");var o=arguments.length>3?arguments[3]:null,r=arguments.length>4?arguments[4]:null,f=arguments.length>5?arguments[5]:null,h=arguments.length>6?arguments[6]:!1,d=!!DU&&DU(A,t);if(wU)wU(A,t,{configurable:f===null&&d?d.configurable:!f,enumerable:o===null&&d?d.enumerable:!o,value:i,writable:r===null&&d?d.writable:!r});else if(h||!o&&!r&&!f)A[t]=i;else throw new WQA("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},LS=HR(),zO=function(){return!!LS};zO.hasArrayLengthDefineBug=function(){if(!LS)return null;try{return LS([],"length",{value:1}).length!==1}catch{return!0}};var ZQA=zO,zQA=MB,mU=VQA,$QA=ZQA(),vU=ZO,MU=Pw,XQA=zQA("%Math.floor%"),ApA=function(A,t){if(typeof A!="function")throw new MU("`fn` is not a function");if(typeof t!="number"||t<0||t>4294967295||XQA(t)!==t)throw new MU("`length` must be a positive 32-bit integer");var i=arguments.length>2&&!!arguments[2],o=!0,r=!0;if("length"in A&&vU){var f=vU(A,"length");f&&!f.configurable&&(o=!1),f&&!f.writable&&(r=!1)}return(o||r||!i)&&($QA?mU(A,"length",t,!0,!0):mU(A,"length",t)),A};(function(e){var A=qR,t=MB,i=ApA,o=Pw,r=t("%Function.prototype.apply%"),f=t("%Function.prototype.call%"),h=t("%Reflect.apply%",!0)||A.call(f,r),d=HR(),p=t("%Math.max%");e.exports=function(w){if(typeof w!="function")throw new o("a function is required");var D=h(A,f,arguments);return i(D,1+p(0,w.length-(arguments.length-1)),!0)};var C=function(){return h(A,r,arguments)};d?d(e.exports,"apply",{value:C}):e.exports.apply=C})(jO);var epA=jO.exports,$O=MB,XO=epA,tpA=XO($O("String.prototype.indexOf")),ipA=function(A,t){var i=$O(A,!!t);return typeof i=="function"&&tpA(A,".prototype.")>-1?XO(i):i};(typeof JSON<"u"?JSON:rQA()).stringify;var Aj=ipA;Aj("Array.prototype.join");Aj("Array.prototype.push");function lC(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function rpA(e){if(typeof e!="boolean")throw new Error(`boolean expected, not ${e}`)}function npA(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function Ow(e,...A){if(!npA(e))throw new Error("Uint8Array expected");if(A.length>0&&!A.includes(e.length))throw new Error(`Uint8Array expected of length ${A}, not of length=${e.length}`)}function opA(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");lC(e.outputLen),lC(e.blockLen)}function US(e,A=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(A&&e.finished)throw new Error("Hash#digest() has already been called")}function ej(e,A){Ow(e);const t=A.outputLen;if(e.length>bU&Yd)}:{h:Number(e>>bU&Yd)|0,l:Number(e&Yd)|0}}function gpA(e,A=!1){let t=new Uint32Array(e.length),i=new Uint32Array(e.length);for(let o=0;oe<>>32-t,fpA=(e,A,t)=>A<>>32-t,hpA=(e,A,t)=>A<>>64-t,cpA=(e,A,t)=>e<>>64-t;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const upA=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),SU=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,lpA=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;function NU(e){for(let A=0;Ae().update(tj(i)).digest(),t=e();return A.outputLen=t.outputLen,A.blockLen=t.blockLen,A.create=()=>e(),A}const ij=[],rj=[],nj=[],EpA=BigInt(0),Jl=BigInt(1),QpA=BigInt(2),ppA=BigInt(7),ypA=BigInt(256),wpA=BigInt(113);for(let e=0,A=Jl,t=1,i=0;e<24;e++){[t,i]=[i,(2*t+3*i)%5],ij.push(2*(5*i+t)),rj.push((e+1)*(e+2)/2%64);let o=EpA;for(let r=0;r<7;r++)A=(A<>ppA)*wpA)%ypA,A&QpA&&(o^=Jl<<(Jl<t>32?hpA(e,A,t):IpA(e,A,t),RU=(e,A,t)=>t>32?cpA(e,A,t):fpA(e,A,t);function vpA(e,A=24){const t=new Uint32Array(10);for(let i=24-A;i<24;i++){for(let f=0;f<10;f++)t[f]=e[f]^e[f+10]^e[f+20]^e[f+30]^e[f+40];for(let f=0;f<10;f+=2){const h=(f+8)%10,d=(f+2)%10,p=t[d],C=t[d+1],y=kU(p,C,1)^t[h],w=RU(p,C,1)^t[h+1];for(let D=0;D<50;D+=10)e[f+D]^=y,e[f+D+1]^=w}let o=e[2],r=e[3];for(let f=0;f<24;f++){const h=rj[f],d=kU(o,r,h),p=RU(o,r,h),C=ij[f];o=e[C],r=e[C+1],e[C]=d,e[C+1]=p}for(let f=0;f<50;f+=10){for(let h=0;h<10;h++)t[h]=e[f+h];for(let h=0;h<10;h++)e[f+h]^=~t[(h+2)%10]&t[(h+4)%10]}e[0]^=DpA[i],e[1]^=mpA[i]}t.fill(0)}let MpA=class oj extends BpA{constructor(A,t,i,o=!1,r=24){if(super(),this.blockLen=A,this.suffix=t,this.outputLen=i,this.enableXOF=o,this.rounds=r,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,lC(i),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=upA(this.state)}keccak(){SU||NU(this.state32),vpA(this.state32,this.rounds),SU||NU(this.state32),this.posOut=0,this.pos=0}update(A){US(this);const{blockLen:t,state:i}=this;A=tj(A);const o=A.length;for(let r=0;r=i&&this.keccak();const f=Math.min(i-this.posOut,r-o);A.set(t.subarray(this.posOut,this.posOut+f),o),this.posOut+=f,o+=f}return A}xofInto(A){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(A)}xof(A){return lC(A),this.xofInto(new Uint8Array(A))}digestInto(A){if(ej(A,this),this.finished)throw new Error("digest() was already called");return this.writeInto(A),this.destroy(),A}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(A){const{blockLen:t,suffix:i,outputLen:o,rounds:r,enableXOF:f}=this;return A||(A=new oj(t,i,o,f,r)),A.state32.set(this.state32),A.pos=this.pos,A.posOut=this.posOut,A.finished=this.finished,A.rounds=r,A.suffix=i,A.outputLen=o,A.enableXOF=f,A.destroyed=this.destroyed,A}};const bpA=(e,A,t)=>dpA(()=>new MpA(A,e,t)),KU=bpA(1,136,256/8);function SpA(e){return A=>(spA.bytes(A),e(A))}(()=>{const e=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0,A=typeof module<"u"&&typeof module.require=="function"&&module.require.bind(module);return{node:A&&!e?A("crypto"):void 0,web:e}})();const sj=(()=>{const e=SpA(KU);return e.create=KU.create,e})();function NpA(e){return Buffer.from(sj(e))}const kpA=new Hw.ec("secp256k1");function RpA(e){return{iv:Buffer.from(e.iv,"hex"),ephemPublicKey:Buffer.from(e.ephemPublicKey,"hex"),ciphertext:Buffer.from(e.ciphertext,"hex"),mac:Buffer.from(e.mac,"hex")}}function KpA(e){return{iv:Buffer.from(e.iv).toString("hex"),ephemPublicKey:Buffer.from(e.ephemPublicKey).toString("hex"),ciphertext:Buffer.from(e.ciphertext).toString("hex"),mac:Buffer.from(e.mac).toString("hex")}}async function GpA(e,A){const t=JSON.parse(A),i=RpA(t),o=kpA.keyFromPrivate(e),f=(await xO(Buffer.from(o.getPrivate().toString("hex",64),"hex"),i)).toString("utf-8");return JSON.parse(f)}const jw={GET_OR_SET_KEY:"GetPubKeyOrKeyAssign",VERIFIER_LOOKUP:"VerifierLookupRequest",COMMITMENT_REQUEST:"CommitmentRequest",IMPORT_SHARES:"ImportShares",GET_SHARE_OR_KEY_ASSIGN:"GetShareOrKeyAssign",RETRIEVE_SHARES_WITH_LINKED_PASSKEY:"RetrieveSharesWithLinkedPasskey",GENERATE_AUTH_MESSAGE:"GenerateAuthMessage",LINK_PASSKEY:"LinkPasskey",UNLINK_PASSKEY:"UnlinkPasskey",GET_LINKED_PASSKEYS:"GetLinkedPasskeys"},Ww={logRequestTracing:!1};function FpA(e){return e.charAt(0).toUpperCase()+e.slice(1)}class xpA extends Error{constructor({errors:A,responses:t,predicate:i}){const o=`Unable to resolve enough promises. + errors: ${A.map(r=>(r==null?void 0:r.message)||r).join(", ")}, + predicate error: ${i}, + ${t.length} responses, + responses: ${JSON.stringify(t)}`;super(o),Le(this,"errors",void 0),Le(this,"responses",void 0),Le(this,"predicate",void 0),this.errors=A,this.responses=t,this.predicate=i}get message(){return`${super.message}. errors: ${this.errors.map(A=>(A==null?void 0:A.message)||A).join(", ")} and ${this.responses.length} responses: ${JSON.stringify(this.responses)}, + predicate error: ${this.predicate}`}toString(){return this.message}}const Vw=(e,A)=>new Promise((t,i)=>{let o=0;const r={resolved:!1},f=new Array(e.length).fill(void 0),h=new Array(e.length).fill(void 0);let d;e.forEach((p,C)=>{p.then(y=>{h[C]=y}).catch(y=>{f[C]=y}).finally(()=>{if(!r.resolved)return A(h.slice(0),r).then(y=>{r.resolved=!0,t(y)}).catch(y=>{d=y}).finally(()=>{if(o+=1,o===e.length){const w=Object.values(h.reduce((D,v)=>{if(v){var M;const{id:R,error:b}=v;(b==null||(M=b.data)===null||M===void 0?void 0:M.length)>0&&(b.data.startsWith("Error occurred while verifying params")?D[R]=FpA(b.data):D[R]=b.data)}return D},{}));if(w.length>0){const D=w.length>1?` +${w.map(v=>`• ${v}`).join(` +`)}`:w[0];i(new Error(D))}else{var y;i(new xpA({errors:f,responses:h,predicate:((y=d)===null||y===void 0?void 0:y.message)||d}))}}})})})});function Jd(e){return`0x${Buffer.from(sj(e)).toString("hex")}`}const jM=e=>new Hw.ec(sp.SECP256K1),LpA=e=>{const{verifier:A,verifierId:t,passkeyPubKey:i,endpoints:o,requiredNodeIndexes:r}=e,f=~~(o.length*3/4)+1;if(!t&&!i)throw new Error("Verifier ID or passkey pub key is required");const h=[];for(let d=0;d{Vw(h,C=>{const y=C.filter(w=>!(!w||typeof w!="object"||w.error));if(y.length>=f)if(r.length>0){const w={};if(y.forEach(v=>{w[v.result.node_index]=!0}),r.filter(v=>w[v]?!1:v).length===0)return Promise.resolve(y)}else return Promise.resolve(y);return Promise.reject(new Error("Failed to get auth message from threshold number of nodes"))}).then(C=>{const y=C.map(w=>({message:w.result.message,nodeIndex:w.result.node_index}));return d(y)}).catch(p)})},UpA=async e=>{const{endpoints:A,messages:t,label:i,passkeyPubKey:o,oAuthKeySignatures:r,keyType:f,sessionData:h,passkeyAuthData:d}=e,p=~~(A.length/2)+1;if(!A||A.length{Vw(C,D=>{const v=D.filter(M=>!(!M||typeof M!="object"||M.error));return v.length>=p?Promise.resolve(v):Promise.reject(new Error("Failed to get auth message from threshold number of nodes"))}).then(D=>y(D)).catch(w)})},_pA=async e=>{const{endpoints:A,messages:t,passkeyPubKey:i,oAuthKeySignatures:o,sessionData:r,keyType:f}=e,h=~~(A.length/2)+1;if(!A||A.length{Vw(d,y=>{const w=y.filter(D=>!(!D||typeof D!="object"||D.error));return w.length>=h?Promise.resolve(w):Promise.reject(new Error("Failed to get auth message from threshold number of nodes"))}).then(y=>p(y)).catch(C)})},qpA=async e=>{const{endpoints:A,messages:t,oAuthKeySignatures:i,keyType:o}=e,r=~~(A.length/2)+1;if(!A||A.length{Vw(f,p=>{const C=p.filter(y=>!(!y||typeof y!="object"||y.error));if(C.length>=r){const y=new Map;C.forEach(D=>{(D.result.passkeys||[]).forEach(M=>{const R=y.get(M.passkey_pub_key);R?R.count++:y.set(M.passkey_pub_key,{count:1,passkey:M})})});const w=Array.from(y.values()).filter(D=>D.count>=r).map(D=>D.passkey);return Promise.resolve(w)}}).then(p=>h(p)).catch(d)})};let GU=function(e){return e.NOT_INITIALIZED="NOT_INITIALIZED",e.INITIALIZED="INITIALIZED",e.REQUIRED_SHARE="REQUIRED_SHARE",e.LOGGED_IN="LOGGED_IN",e}({});class KUA extends NO.ec{constructor(){super("ed25519")}bufferToScalar(A){return new RS(A,"le")}generateScalar(){return this.genKeyPair().getPrivate()}scalarToBuffer(A,t){return A.toArrayLike(t,"le",32)}pointToBuffer(A,t){const i=A.getX(),r=A.getY().toArrayLike(t,"le",32);return r[r.length-1]|=i.and(new RS(1)).eqn(1)?128:0,r}}class GUA extends NO.ec{constructor(){super("secp256k1")}bufferToScalar(A){return new RS(A,"be")}generateScalar(){return this.genKeyPair().getPrivate()}scalarToBuffer(A,t){return A.toArrayLike(t,"be",32)}pointToBuffer(A,t){return t.from(A.encodeCompressed())}}const HpA="x-web3-session-id",YpA={Delimiter1:"",Delimiter2:"",Delimiter3:"",Delimiter4:""},Hs=Object.create(null);Hs.open="0";Hs.close="1";Hs.ping="2";Hs.pong="3";Hs.message="4";Hs.upgrade="5";Hs.noop="6";const XE=Object.create(null);Object.keys(Hs).forEach(e=>{XE[Hs[e]]=e});const _S={type:"error",data:"parser error"},aj=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",gj=typeof ArrayBuffer=="function",Ij=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,YR=({type:e,data:A},t,i)=>aj&&A instanceof Blob?t?i(A):FU(A,i):gj&&(A instanceof ArrayBuffer||Ij(A))?t?i(A):FU(new Blob([A]),i):i(Hs[e]+(A||"")),FU=(e,A)=>{const t=new FileReader;return t.onload=function(){const i=t.result.split(",")[1];A("b"+(i||""))},t.readAsDataURL(e)};function xU(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let WM;function JpA(e,A){if(aj&&e.data instanceof Blob)return e.data.arrayBuffer().then(xU).then(A);if(gj&&(e.data instanceof ArrayBuffer||Ij(e.data)))return A(xU(e.data));YR(e,!1,t=>{WM||(WM=new TextEncoder),A(WM.encode(t))})}const LU="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g0=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e{let A=e.length*.75,t=e.length,i,o=0,r,f,h,d;e[e.length-1]==="="&&(A--,e[e.length-2]==="="&&A--);const p=new ArrayBuffer(A),C=new Uint8Array(p);for(i=0;i>4,C[o++]=(f&15)<<4|h>>2,C[o++]=(h&3)<<6|d&63;return p},PpA=typeof ArrayBuffer=="function",JR=(e,A)=>{if(typeof e!="string")return{type:"message",data:fj(e,A)};const t=e.charAt(0);return t==="b"?{type:"message",data:OpA(e.substring(1),A)}:XE[t]?e.length>1?{type:XE[t],data:e.substring(1)}:{type:XE[t]}:_S},OpA=(e,A)=>{if(PpA){const t=TpA(e);return fj(t,A)}else return{base64:!0,data:e}},fj=(e,A)=>{switch(A){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},hj="",jpA=(e,A)=>{const t=e.length,i=new Array(t);let o=0;e.forEach((r,f)=>{YR(r,!1,h=>{i[f]=h,++o===t&&A(i.join(hj))})})},WpA=(e,A)=>{const t=e.split(hj),i=[];for(let o=0;o{const i=t.length;let o;if(i<126)o=new Uint8Array(1),new DataView(o.buffer).setUint8(0,i);else if(i<65536){o=new Uint8Array(3);const r=new DataView(o.buffer);r.setUint8(0,126),r.setUint16(1,i)}else{o=new Uint8Array(9);const r=new DataView(o.buffer);r.setUint8(0,127),r.setBigUint64(1,BigInt(i))}e.data&&typeof e.data!="string"&&(o[0]|=128),A.enqueue(o),A.enqueue(t)})}})}let VM;function Td(e){return e.reduce((A,t)=>A+t.length,0)}function Pd(e,A){if(e[0].length===A)return e.shift();const t=new Uint8Array(A);let i=0;for(let o=0;oMath.pow(2,21)-1){h.enqueue(_S);break}o=C*Math.pow(2,32)+p.getUint32(4),i=3}else{if(Td(t)e){h.enqueue(_S);break}}}})}const cj=4;function li(e){if(e)return zpA(e)}function zpA(e){for(var A in li.prototype)e[A]=li.prototype[A];return e}li.prototype.on=li.prototype.addEventListener=function(e,A){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(A),this};li.prototype.once=function(e,A){function t(){this.off(e,t),A.apply(this,arguments)}return t.fn=A,this.on(e,t),this};li.prototype.off=li.prototype.removeListener=li.prototype.removeAllListeners=li.prototype.removeEventListener=function(e,A){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+e];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var i,o=0;oPromise.resolve().then(A):(A,t)=>t(A,0),$n=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),$pA="arraybuffer";function uj(e,...A){return A.reduce((t,i)=>(e.hasOwnProperty(i)&&(t[i]=e[i]),t),{})}const XpA=$n.setTimeout,AyA=$n.clearTimeout;function zw(e,A){A.useNativeTimers?(e.setTimeoutFn=XpA.bind($n),e.clearTimeoutFn=AyA.bind($n)):(e.setTimeoutFn=$n.setTimeout.bind($n),e.clearTimeoutFn=$n.clearTimeout.bind($n))}const eyA=1.33;function tyA(e){return typeof e=="string"?iyA(e):Math.ceil((e.byteLength||e.size)*eyA)}function iyA(e){let A=0,t=0;for(let i=0,o=e.length;i=57344?t+=3:(i++,t+=4);return t}function lj(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function ryA(e){let A="";for(let t in e)e.hasOwnProperty(t)&&(A.length&&(A+="&"),A+=encodeURIComponent(t)+"="+encodeURIComponent(e[t]));return A}function nyA(e){let A={},t=e.split("&");for(let i=0,o=t.length;i{this.readyState="paused",A()};if(this._polling||!this.writable){let i=0;this._polling&&(i++,this.once("pollComplete",function(){--i||t()})),this.writable||(i++,this.once("drain",function(){--i||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(A){const t=i=>{if(this.readyState==="opening"&&i.type==="open"&&this.onOpen(),i.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(i)};WpA(A,this.socket.binaryType).forEach(t),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const A=()=>{this.write([{type:"close"}])};this.readyState==="open"?A():this.once("open",A)}write(A){this.writable=!1,jpA(A,t=>{this.doWrite(t,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const A=this.opts.secure?"https":"http",t=this.query||{};return this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=lj()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(A,t)}}let Cj=!1;try{Cj=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const ayA=Cj;function gyA(){}class IyA extends syA{constructor(A){if(super(A),typeof location<"u"){const t=location.protocol==="https:";let i=location.port;i||(i=t?"443":"80"),this.xd=typeof location<"u"&&A.hostname!==location.hostname||i!==A.port}}doWrite(A,t){const i=this.request({method:"POST",data:A});i.on("success",t),i.on("error",(o,r)=>{this.onError("xhr post error",o,r)})}doPoll(){const A=this.request();A.on("data",this.onData.bind(this)),A.on("error",(t,i)=>{this.onError("xhr poll error",t,i)}),this.pollXhr=A}}let wc=class AQ extends li{constructor(A,t,i){super(),this.createRequest=A,zw(this,i),this._opts=i,this._method=i.method||"GET",this._uri=t,this._data=i.data!==void 0?i.data:null,this._create()}_create(){var A;const t=uj(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this._opts.xd;const i=this._xhr=this.createRequest(t);try{i.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){i.setDisableHeaderCheck&&i.setDisableHeaderCheck(!0);for(let o in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(o)&&i.setRequestHeader(o,this._opts.extraHeaders[o])}}catch{}if(this._method==="POST")try{i.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{i.setRequestHeader("Accept","*/*")}catch{}(A=this._opts.cookieJar)===null||A===void 0||A.addCookies(i),"withCredentials"in i&&(i.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(i.timeout=this._opts.requestTimeout),i.onreadystatechange=()=>{var o;i.readyState===3&&((o=this._opts.cookieJar)===null||o===void 0||o.parseCookies(i.getResponseHeader("set-cookie"))),i.readyState===4&&(i.status===200||i.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof i.status=="number"?i.status:0)},0))},i.send(this._data)}catch(o){this.setTimeoutFn(()=>{this._onError(o)},0);return}typeof document<"u"&&(this._index=AQ.requestsCount++,AQ.requests[this._index]=this)}_onError(A){this.emitReserved("error",A,this._xhr),this._cleanup(!0)}_cleanup(A){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=gyA,A)try{this._xhr.abort()}catch{}typeof document<"u"&&delete AQ.requests[this._index],this._xhr=null}}_onLoad(){const A=this._xhr.responseText;A!==null&&(this.emitReserved("data",A),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};wc.requestsCount=0;wc.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",UU);else if(typeof addEventListener=="function"){const e="onpagehide"in $n?"pagehide":"unload";addEventListener(e,UU,!1)}}function UU(){for(let e in wc.requests)wc.requests.hasOwnProperty(e)&&wc.requests[e].abort()}const fyA=function(){const e=Bj({xdomain:!1});return e&&e.responseType!==null}();class hyA extends IyA{constructor(A){super(A);const t=A&&A.forceBase64;this.supportsBinary=fyA&&!t}request(A={}){return Object.assign(A,{xd:this.xd},this.opts),new wc(Bj,this.uri(),A)}}function Bj(e){const A=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!A||ayA))return new XMLHttpRequest}catch{}if(!A)try{return new $n[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const dj=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class cyA extends TR{get name(){return"websocket"}doOpen(){const A=this.uri(),t=this.opts.protocols,i=dj?{}:uj(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(i.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(A,t,i)}catch(o){return this.emitReserved("error",o)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=A=>this.onClose({description:"websocket connection closed",context:A}),this.ws.onmessage=A=>this.onData(A.data),this.ws.onerror=A=>this.onError("websocket error",A)}write(A){this.writable=!1;for(let t=0;t{try{this.doWrite(i,r)}catch{}o&&Zw(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const A=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=lj()),this.supportsBinary||(t.b64=1),this.createUri(A,t)}}const ZM=$n.WebSocket||$n.MozWebSocket;class uyA extends cyA{createSocket(A,t,i){return dj?new ZM(A,t,i):t?new ZM(A,t):new ZM(A)}doWrite(A,t){this.ws.send(t)}}class lyA extends TR{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(A){return this.emitReserved("error",A)}this._transport.closed.then(()=>{this.onClose()}).catch(A=>{this.onError("webtransport error",A)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(A=>{const t=ZpA(Number.MAX_SAFE_INTEGER,this.socket.binaryType),i=A.readable.pipeThrough(t).getReader(),o=VpA();o.readable.pipeTo(A.writable),this._writer=o.writable.getWriter();const r=()=>{i.read().then(({done:h,value:d})=>{h||(this.onPacket(d),r())}).catch(h=>{})};r();const f={type:"open"};this.query.sid&&(f.data=`{"sid":"${this.query.sid}"}`),this._writer.write(f).then(()=>this.onOpen())})})}write(A){this.writable=!1;for(let t=0;t{o&&Zw(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var A;(A=this._transport)===null||A===void 0||A.close()}}const CyA={websocket:uyA,webtransport:lyA,polling:hyA},ByA=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,dyA=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function qS(e){if(e.length>8e3)throw"URI too long";const A=e,t=e.indexOf("["),i=e.indexOf("]");t!=-1&&i!=-1&&(e=e.substring(0,t)+e.substring(t,i).replace(/:/g,";")+e.substring(i,e.length));let o=ByA.exec(e||""),r={},f=14;for(;f--;)r[dyA[f]]=o[f]||"";return t!=-1&&i!=-1&&(r.source=A,r.host=r.host.substring(1,r.host.length-1).replace(/;/g,":"),r.authority=r.authority.replace("[","").replace("]","").replace(/;/g,":"),r.ipv6uri=!0),r.pathNames=EyA(r,r.path),r.queryKey=QyA(r,r.query),r}function EyA(e,A){const t=/\/{2,9}/g,i=A.replace(t,"/").split("/");return(A.slice(0,1)=="/"||A.length===0)&&i.splice(0,1),A.slice(-1)=="/"&&i.splice(i.length-1,1),i}function QyA(e,A){const t={};return A.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(i,o,r){o&&(t[o]=r)}),t}const HS=typeof addEventListener=="function"&&typeof removeEventListener=="function",eQ=[];HS&&addEventListener("offline",()=>{eQ.forEach(e=>e())},!1);class Pg extends li{constructor(A,t){if(super(),this.binaryType=$pA,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,A&&typeof A=="object"&&(t=A,A=null),A){const i=qS(A);t.hostname=i.host,t.secure=i.protocol==="https"||i.protocol==="wss",t.port=i.port,i.query&&(t.query=i.query)}else t.host&&(t.hostname=qS(t.host).host);zw(this,t),this.secure=t.secure!=null?t.secure:typeof location<"u"&&location.protocol==="https:",t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=t.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},t.transports.forEach(i=>{const o=i.prototype.name;this.transports.push(o),this._transportsByName[o]=i}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=nyA(this.opts.query)),HS&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},eQ.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(A){const t=Object.assign({},this.opts.query);t.EIO=cj,t.transport=A,this.id&&(t.sid=this.id);const i=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[A]);return new this._transportsByName[A](i)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const A=this.opts.rememberUpgrade&&Pg.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const t=this.createTransport(A);t.open(),this.setTransport(t)}setTransport(A){this.transport&&this.transport.removeAllListeners(),this.transport=A,A.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",t=>this._onClose("transport close",t))}onOpen(){this.readyState="open",Pg.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(A){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",A),this.emitReserved("heartbeat"),A.type){case"open":this.onHandshake(JSON.parse(A.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const t=new Error("server error");t.code=A.data,this._onError(t);break;case"message":this.emitReserved("data",A.data),this.emitReserved("message",A.data);break}}onHandshake(A){this.emitReserved("handshake",A),this.id=A.sid,this.transport.query.sid=A.sid,this._pingInterval=A.pingInterval,this._pingTimeout=A.pingTimeout,this._maxPayload=A.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const A=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+A,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},A),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const A=this._getWritablePackets();this.transport.send(A),this._prevBufferLen=A.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let i=0;i0&&t>this._maxPayload)return this.writeBuffer.slice(0,i);t+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const A=Date.now()>this._pingTimeoutTime;return A&&(this._pingTimeoutTime=0,Zw(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),A}write(A,t,i){return this._sendPacket("message",A,t,i),this}send(A,t,i){return this._sendPacket("message",A,t,i),this}_sendPacket(A,t,i,o){if(typeof t=="function"&&(o=t,t=void 0),typeof i=="function"&&(o=i,i=null),this.readyState==="closing"||this.readyState==="closed")return;i=i||{},i.compress=i.compress!==!1;const r={type:A,data:t,options:i};this.emitReserved("packetCreate",r),this.writeBuffer.push(r),o&&this.once("flush",o),this.flush()}close(){const A=()=>{this._onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),A()},i=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?i():A()}):this.upgrading?i():A()),this}_onError(A){if(Pg.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",A),this._onClose("transport error",A)}_onClose(A,t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),HS&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const i=eQ.indexOf(this._offlineEventListener);i!==-1&&eQ.splice(i,1)}this.readyState="closed",this.id=null,this.emitReserved("close",A,t),this.writeBuffer=[],this._prevBufferLen=0}}}Pg.protocol=cj;class pyA extends Pg{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let A=0;A{i||(t.send([{type:"ping",data:"probe"}]),t.once("packet",y=>{if(!i)if(y.type==="pong"&&y.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;Pg.priorWebsocketSuccess=t.name==="websocket",this.transport.pause(()=>{i||this.readyState!=="closed"&&(C(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{const w=new Error("probe error");w.transport=t.name,this.emitReserved("upgradeError",w)}}))};function r(){i||(i=!0,C(),t.close(),t=null)}const f=y=>{const w=new Error("probe error: "+y);w.transport=t.name,r(),this.emitReserved("upgradeError",w)};function h(){f("transport closed")}function d(){f("socket closed")}function p(y){t&&y.name!==t.name&&r()}const C=()=>{t.removeListener("open",o),t.removeListener("error",f),t.removeListener("close",h),this.off("close",d),this.off("upgrading",p)};t.once("open",o),t.once("error",f),t.once("close",h),this.once("close",d),this.once("upgrading",p),this._upgrades.indexOf("webtransport")!==-1&&A!=="webtransport"?this.setTimeoutFn(()=>{i||t.open()},200):t.open()}onHandshake(A){this._upgrades=this._filterUpgrades(A.upgrades),super.onHandshake(A)}_filterUpgrades(A){const t=[];for(let i=0;iCyA[o]).filter(o=>!!o)),super(A,i)}};function wyA(e,A="",t){let i=e;t=t||typeof location<"u"&&location,e==null&&(e=t.protocol+"//"+t.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=t.protocol+e:e=t.host+e),/^(https?|wss?):\/\//.test(e)||(typeof t<"u"?e=t.protocol+"//"+e:e="https://"+e),i=qS(e)),i.port||(/^(http|ws)$/.test(i.protocol)?i.port="80":/^(http|ws)s$/.test(i.protocol)&&(i.port="443")),i.path=i.path||"/";const r=i.host.indexOf(":")!==-1?"["+i.host+"]":i.host;return i.id=i.protocol+"://"+r+":"+i.port+A,i.href=i.protocol+"://"+r+(t&&t.port===i.port?"":":"+i.port),i}const DyA=typeof ArrayBuffer=="function",myA=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,Ej=Object.prototype.toString,vyA=typeof Blob=="function"||typeof Blob<"u"&&Ej.call(Blob)==="[object BlobConstructor]",MyA=typeof File=="function"||typeof File<"u"&&Ej.call(File)==="[object FileConstructor]";function PR(e){return DyA&&(e instanceof ArrayBuffer||myA(e))||vyA&&e instanceof Blob||MyA&&e instanceof File}function tQ(e,A){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let t=0,i=e.length;t=0&&e.num{delete this.acks[A];for(let h=0;h{this.io.clearTimeoutFn(r),t.apply(this,h)};f.withError=!0,this.acks[A]=f}emitWithAck(A,...t){return new Promise((i,o)=>{const r=(f,h)=>f?o(f):i(h);r.withError=!0,t.push(r),this.emit(A,...t)})}_addToQueue(A){let t;typeof A[A.length-1]=="function"&&(t=A.pop());const i={id:this._queueSeq++,tryCount:0,pending:!1,args:A,flags:Object.assign({fromQueue:!0},this.flags)};A.push((o,...r)=>i!==this._queue[0]?void 0:(o!==null?i.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(o)):(this._queue.shift(),t&&t(null,...r)),i.pending=!1,this._drainQueue())),this._queue.push(i),this._drainQueue()}_drainQueue(A=!1){if(!this.connected||this._queue.length===0)return;const t=this._queue[0];t.pending&&!A||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(A){A.nsp=this.nsp,this.io._packet(A)}onopen(){typeof this.auth=="function"?this.auth(A=>{this._sendConnectPacket(A)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(A){this.packet({type:gt.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},A):A})}onerror(A){this.connected||this.emitReserved("connect_error",A)}onclose(A,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",A,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(A=>{if(!this.sendBuffer.some(i=>String(i.id)===A)){const i=this.acks[A];delete this.acks[A],i.withError&&i.call(this,new Error("socket has been disconnected"))}})}onpacket(A){if(A.nsp===this.nsp)switch(A.type){case gt.CONNECT:A.data&&A.data.sid?this.onconnect(A.data.sid,A.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case gt.EVENT:case gt.BINARY_EVENT:this.onevent(A);break;case gt.ACK:case gt.BINARY_ACK:this.onack(A);break;case gt.DISCONNECT:this.ondisconnect();break;case gt.CONNECT_ERROR:this.destroy();const i=new Error(A.data.message);i.data=A.data.data,this.emitReserved("connect_error",i);break}}onevent(A){const t=A.data||[];A.id!=null&&t.push(this.ack(A.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(A){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const i of t)i.apply(this,A)}super.emit.apply(this,A),this._pid&&A.length&&typeof A[A.length-1]=="string"&&(this._lastOffset=A[A.length-1])}ack(A){const t=this;let i=!1;return function(...o){i||(i=!0,t.packet({type:gt.ACK,id:A,data:o}))}}onack(A){const t=this.acks[A.id];typeof t=="function"&&(delete this.acks[A.id],t.withError&&A.data.unshift(null),t.apply(this,A.data))}onconnect(A,t){this.id=A,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(A=>this.emitEvent(A)),this.receiveBuffer=[],this.sendBuffer.forEach(A=>{this.notifyOutgoingListeners(A),this.packet(A)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(A=>A()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:gt.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(A){return this.flags.compress=A,this}get volatile(){return this.flags.volatile=!0,this}timeout(A){return this.flags.timeout=A,this}onAny(A){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(A),this}prependAny(A){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(A),this}offAny(A){if(!this._anyListeners)return this;if(A){const t=this._anyListeners;for(let i=0;i0&&e.jitter<=1?e.jitter:0,this.attempts=0}al.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var A=Math.random(),t=Math.floor(A*this.jitter*e);e=Math.floor(A*10)&1?e+t:e-t}return Math.min(e,this.max)|0};al.prototype.reset=function(){this.attempts=0};al.prototype.setMin=function(e){this.ms=e};al.prototype.setMax=function(e){this.max=e};al.prototype.setJitter=function(e){this.jitter=e};class TS extends li{constructor(A,t){var i;super(),this.nsps={},this.subs=[],A&&typeof A=="object"&&(t=A,A=void 0),t=t||{},t.path=t.path||"/socket.io",this.opts=t,zw(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor((i=t.randomizationFactor)!==null&&i!==void 0?i:.5),this.backoff=new al({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState="closed",this.uri=A;const o=t.parser||FyA;this.encoder=new o.Encoder,this.decoder=new o.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(A){return arguments.length?(this._reconnection=!!A,A||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(A){return A===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=A,this)}reconnectionDelay(A){var t;return A===void 0?this._reconnectionDelay:(this._reconnectionDelay=A,(t=this.backoff)===null||t===void 0||t.setMin(A),this)}randomizationFactor(A){var t;return A===void 0?this._randomizationFactor:(this._randomizationFactor=A,(t=this.backoff)===null||t===void 0||t.setJitter(A),this)}reconnectionDelayMax(A){var t;return A===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=A,(t=this.backoff)===null||t===void 0||t.setMax(A),this)}timeout(A){return arguments.length?(this._timeout=A,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(A){if(~this._readyState.indexOf("open"))return this;this.engine=new yyA(this.uri,this.opts);const t=this.engine,i=this;this._readyState="opening",this.skipReconnect=!1;const o=ko(t,"open",function(){i.onopen(),A&&A()}),r=h=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",h),A?A(h):this.maybeReconnectOnOpen()},f=ko(t,"error",r);if(this._timeout!==!1){const h=this._timeout,d=this.setTimeoutFn(()=>{o(),r(new Error("timeout")),t.close()},h);this.opts.autoUnref&&d.unref(),this.subs.push(()=>{this.clearTimeoutFn(d)})}return this.subs.push(o),this.subs.push(f),this}connect(A){return this.open(A)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const A=this.engine;this.subs.push(ko(A,"ping",this.onping.bind(this)),ko(A,"data",this.ondata.bind(this)),ko(A,"error",this.onerror.bind(this)),ko(A,"close",this.onclose.bind(this)),ko(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(A){try{this.decoder.add(A)}catch(t){this.onclose("parse error",t)}}ondecoded(A){Zw(()=>{this.emitReserved("packet",A)},this.setTimeoutFn)}onerror(A){this.emitReserved("error",A)}socket(A,t){let i=this.nsps[A];return i?this._autoConnect&&!i.active&&i.connect():(i=new pj(this,A,t),this.nsps[A]=i),i}_destroy(A){const t=Object.keys(this.nsps);for(const i of t)if(this.nsps[i].active)return;this._close()}_packet(A){const t=this.encoder.encode(A);for(let i=0;iA()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(A,t){var i;this.cleanup(),(i=this.engine)===null||i===void 0||i.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",A,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const A=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const i=this.setTimeoutFn(()=>{A.skipReconnect||(this.emitReserved("reconnect_attempt",A.backoff.attempts),!A.skipReconnect&&A.open(o=>{o?(A._reconnecting=!1,A.reconnect(),this.emitReserved("reconnect_error",o)):A.onreconnect()}))},t);this.opts.autoUnref&&i.unref(),this.subs.push(()=>{this.clearTimeoutFn(i)})}}onreconnect(){const A=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",A)}}const Tl={};function zM(e,A){typeof e=="object"&&(A=e,e=void 0),A=A||{};const t=wyA(e,A.path||"/socket.io"),i=t.source,o=t.id,r=t.path,f=Tl[o]&&r in Tl[o].nsps,h=A.forceNew||A["force new connection"]||A.multiplex===!1||f;let d;return h?d=new TS(i,A):(Tl[o]||(Tl[o]=new TS(i,A)),d=Tl[o]),t.query&&!A.query&&(A.query=t.queryKey),d.socket(t.path,A)}Object.assign(zM,{Manager:TS,Socket:pj,io:zM,connect:zM});globalThis.tss_clients===void 0&&(globalThis.tss_clients=new Map);globalThis.js_read_msg===void 0&&(globalThis.js_read_msg=async function(e,A,t,i){const o=globalThis.tss_clients.get(e);if(o.log(`reading msg, ${i}`),i==="ga1_worker_support")return"unsupported";const r=o.msgQueue.find(f=>f.sender===t&&f.recipient===A&&f.msg_type===i);return r?r.msg_data:new Promise((f,h)=>{let d=0;const p=setInterval(()=>{const C=o.msgQueue.find(y=>y.sender===t&&y.recipient===A&&y.msg_type===i);C!==void 0&&(clearInterval(p),f(C.msg_data)),d>=1e3&&(clearInterval(p),h("Message not received in a reasonable time")),d++},10)})});globalThis.js_send_msg===void 0&&(globalThis.js_send_msg=async function(e,A,t,i,o){const r=globalThis.tss_clients.get(e);if(r.log(`sending msg, ${i}`),i.indexOf("ga1_data_unprocessed")>-1)throw new Error("ga1_data_unprocessed should not be sent directly");if(r.websocketOnly)r.sockets[t].emit("send_msg",{session:e,sender:A,recipient:t,msg_type:i,msg_data:o});else{const f=e.split(YpA.Delimiter4)[1],h=r.lookupEndpoint(e,t);fetch(`${h}/send`,{method:"POST",headers:{[HpA]:f,"Content-Type":"application/json"},body:JSON.stringify({session:e,sender:A,recipient:t,msg_type:i,msg_data:o})})}return!0});var LyA={exports:{}};const UyA=Ik(o0A);(function(e){(()=>{var A={};A.n=D=>{var v=D&&D.__esModule?()=>D.default:()=>D;return A.d(v,{a:v}),v},A.d=(D,v)=>{for(var M in v)A.o(v,M)&&!A.o(D,M)&&Object.defineProperty(D,M,{enumerable:!0,get:v[M]})},A.o=(D,v)=>Object.prototype.hasOwnProperty.call(D,v),A.r=D=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(D,"__esModule",{value:!0})};var t={};A.r(t),A.d(t,{AwaitableMap:()=>r,MapQueue:()=>f,deriveShareCoefficients:()=>w,fraction:()=>p,lagrangeCoefficient:()=>C,lagrangeCoefficients:()=>y});const i=UyA;var o=A.n(i);class r{constructor(){o()(this,"map",new Map),o()(this,"queue",new Map)}get size(){return this.map.size}getSync(v){return this.map.get(v)}async get(v,M=0){const R=this.map.get(v);return R||new Promise(b=>{const S={resolve:b,timeout:setTimeout(()=>{const U=this.queue.get(v);if(U){const P=U.indexOf(S);P>=0&&U.splice(P,1)}b(void 0)},M)};let G=this.queue.get(v);G||(G=[],this.queue.set(v,G)),G.push(S)})}set(v,M){this.map.set(v,M);const R=this.queue.get(v);if(R){for(const b of R)clearTimeout(b.timeout),b.resolve(M);this.queue.delete(v)}}delete(v){this.map.delete(v),this.queue.delete(v)}forEach(v){this.map.forEach(v)}clear(){this.map.clear(),this.queue.clear()}}class f{constructor(){o()(this,"buffer",new Map),o()(this,"queue",new Map)}async pop(v,M=0){const R=this.buffer.get(v);return R&&R.length>0?R.splice(0,1)[0]:new Promise(b=>{const S={resolve:b,timeout:setTimeout(()=>{const U=this.queue.get(v);if(U){const P=U.indexOf(S);P>=0&&U.splice(P,1)}b(void 0)},M)};let G=this.queue.get(v);G||(G=[],this.queue.set(v,G)),G.push(S)})}push(v,M){const R=this.queue.get(v);if(R&&R.length>0){const S=R.splice(0,1)[0];clearTimeout(S.timeout),S.resolve(M);return}let b=this.buffer.get(v);b||(b=[],this.buffer.set(v,b)),b.push(M)}delete(v){this.buffer.delete(v),this.queue.delete(v)}forEach(v){this.buffer.forEach((M,R)=>{M.forEach(b=>{v(b,R)})})}clear(){this.buffer.clear(),this.queue.clear()}}const h=yB;var d=A.n(h);function p(D,v,M){return D.mul(v.invm(M)).umod(M)}function C(D,v,M,R){return D.filter((b,S)=>S!==v).reduce((b,S)=>{const G=p(M.sub(S),D[v].sub(S),R);return b.mul(G).umod(R)},new(d())(1))}function y(D,v,M){const R=D.map(S=>new(d())(S)),b=new(d())(v);return R.map((S,G)=>C(R,G,b,M))}function w(D,v,M,R=1,b=2){const S=y([R,b],0,M),G=y(D,0,M);if(D.includes(v))throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${D} ${v}`);const U=y([v,...D],0,M),P=G.map((oA,J)=>p(S[0].mul(oA),U[J+1],M)),z=p(S[1],U[0],M);return{serverCoefficients:P,clientCoefficient:z}}e.exports=t})()})(LyA);const kt={MAINNET:"mainnet",TESTNET:"testnet",CYAN:"cyan",AQUA:"aqua",CELESTE:"celeste"},Mg={SAPPHIRE_DEVNET:"sapphire_devnet",SAPPHIRE_MAINNET:"sapphire_mainnet"};kt.MAINNET+"",kt.TESTNET+"",kt.CYAN+"",kt.AQUA+"",kt.CELESTE+"";kt.AQUA+"",Mg.SAPPHIRE_MAINNET,kt.CELESTE+"",Mg.SAPPHIRE_MAINNET,kt.CYAN+"",Mg.SAPPHIRE_MAINNET,kt.MAINNET+"",Mg.SAPPHIRE_MAINNET,kt.TESTNET+"",Mg.SAPPHIRE_DEVNET;kt.MAINNET+"",kt.TESTNET+"",kt.CYAN+"",kt.AQUA+"",kt.CELESTE+"";Mg.SAPPHIRE_MAINNET+"",Mg.SAPPHIRE_DEVNET+"",kt.MAINNET+"",kt.TESTNET+"",kt.CYAN+"",kt.AQUA+"",kt.CELESTE+"";kt.MAINNET+"",kt.TESTNET+"",kt.CYAN+"",kt.AQUA+"",kt.CELESTE+"";function qU(e){let A=!1,t=0,i;try{i=window[e],A=!0,t=i.length;const o="__storage_test__";return i.setItem(o,o),i.removeItem(o),!0}catch(o){const r=o;return r&&(r.code===22||r.code===1014||r.name==="QuotaExceededError"||r.name==="NS_ERROR_DOM_QUOTA_REACHED")&&A&&t!==0}}class _yA{constructor(){Le(this,"store",new Map)}getItem(A){return this.store.get(A)||null}setItem(A,t){this.store.set(A,t)}removeItem(A){this.store.delete(A)}}class qyA{constructor(A,t){Le(this,"storage",void 0),Le(this,"_storeKey",void 0),this.storage=t,this._storeKey=A;try{t.getItem(A)||this.resetStore()}catch{}}static getInstance(A){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"local";if(!this.instanceMap.has(A)){let i;t==="local"&&qU("localStorage")?i=window.localStorage:t==="session"&&qU("sessionStorage")?i=window.sessionStorage:i=new _yA,this.instanceMap.set(A,new this(A,i))}return this.instanceMap.get(A)}toJSON(){return this.storage.getItem(this._storeKey)}resetStore(){const A=this.getStore();return this.storage.removeItem(this._storeKey),A}getStore(){return JSON.parse(this.storage.getItem(this._storeKey)||"{}")}get(A){return JSON.parse(this.storage.getItem(this._storeKey)||"{}")[A]}set(A,t){const i=JSON.parse(this.storage.getItem(this._storeKey)||"{}");i[A]=t,this.storage.setItem(this._storeKey,JSON.stringify(i))}}Le(qyA,"instanceMap",new Map);qs(qs({},Mg),kt);const HyA=qr.getLogger("mpc-core-kit");HyA.disableAll();function ls(e){const A=new Uint8Array(e);let t="";for(const o of A)t+=String.fromCharCode(o);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function CC(e){const A=e.replace(/-/g,"+").replace(/_/g,"/"),t=(4-A.length%4)%4,i=A.padEnd(A.length+t,"="),o=atob(i),r=new ArrayBuffer(o.length),f=new Uint8Array(r);for(let h=0;hh.type==="public-key").length===0?new Oi({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new Oi({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){const f=window.location.hostname;if(wj(f)){if(t.rp.id!==f)return new Oi({message:`The RP ID "${t.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new Oi({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(t.user.id.byteLength<1||t.user.id.byteLength>64)return new Oi({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new Oi({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}class JyA{createNewAbortSignal(){if(this.controller){const t=new Error("Cancelling existing WebAuthn API call for new one");t.name="AbortError",this.controller.abort(t)}const A=new AbortController;return this.controller=A,A.signal}cancelCeremony(){if(this.controller){const A=new Error("Manually cancelling existing WebAuthn API call");A.name="AbortError",this.controller.abort(A),this.controller=void 0}}}const Dj=new JyA,TyA=["cross-platform","platform"];function mj(e){if(e&&!(TyA.indexOf(e)<0))return e}async function PyA(e){var v;const{optionsJSON:A,useAutoRegister:t=!1}=e;if(!OR())throw new Error("WebAuthn is not supported in this browser");const i={...A,challenge:CC(A.challenge),user:{...A.user,id:CC(A.user.id)},excludeCredentials:(v=A.excludeCredentials)==null?void 0:v.map(yj)},o={};t&&(o.mediation="conditional"),o.publicKey=i,o.signal=Dj.createNewAbortSignal();let r;try{r=await navigator.credentials.create(o)}catch(M){throw YyA({error:M,options:o})}if(!r)throw new Error("Registration was not completed");const{id:f,rawId:h,response:d,type:p}=r;let C;typeof d.getTransports=="function"&&(C=d.getTransports());let y;if(typeof d.getPublicKeyAlgorithm=="function")try{y=d.getPublicKeyAlgorithm()}catch(M){$M("getPublicKeyAlgorithm()",M)}let w;if(typeof d.getPublicKey=="function")try{const M=d.getPublicKey();M!==null&&(w=ls(M))}catch(M){$M("getPublicKey()",M)}let D;if(typeof d.getAuthenticatorData=="function")try{D=ls(d.getAuthenticatorData())}catch(M){$M("getAuthenticatorData()",M)}return{id:f,rawId:ls(h),response:{attestationObject:ls(d.attestationObject),clientDataJSON:ls(d.clientDataJSON),transports:C,publicKeyAlgorithm:y,publicKey:w,authenticatorData:D},type:p,clientExtensionResults:r.getClientExtensionResults(),authenticatorAttachment:mj(r.authenticatorAttachment)}}function $M(e,A){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them. +`,A)}function OyA(){if(!OR())return new Promise(A=>A(!1));const e=window.PublicKeyCredential;return e.isConditionalMediationAvailable===void 0?new Promise(A=>A(!1)):e.isConditionalMediationAvailable()}function jyA({error:e,options:A}){const{publicKey:t}=A;if(!t)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(A.signal instanceof AbortSignal)return new Oi({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else{if(e.name==="NotAllowedError")return new Oi({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){const i=window.location.hostname;if(wj(i)){if(t.rpId!==i)return new Oi({message:`The RP ID "${t.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new Oi({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new Oi({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function WyA(e){var D,v;const{optionsJSON:A,useBrowserAutofill:t=!1,verifyBrowserAutofillInput:i=!0}=e;if(!OR())throw new Error("WebAuthn is not supported in this browser");let o;((D=A.allowCredentials)==null?void 0:D.length)!==0&&(o=(v=A.allowCredentials)==null?void 0:v.map(yj));const r={...A,challenge:CC(A.challenge),allowCredentials:o},f={};if(t){if(!await OyA())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&i)throw Error('No with "webauthn" as the only or last value in its `autocomplete` attribute was detected');f.mediation="conditional",r.allowCredentials=[]}f.publicKey=r,f.signal=Dj.createNewAbortSignal();let h;try{h=await navigator.credentials.get(f)}catch(M){throw jyA({error:M,options:f})}if(!h)throw new Error("Authentication was not completed");const{id:d,rawId:p,response:C,type:y}=h;let w;return C.userHandle&&(w=ls(C.userHandle)),{id:d,rawId:ls(p),response:{authenticatorData:ls(C.authenticatorData),clientDataJSON:ls(C.clientDataJSON),signature:ls(C.signature),userHandle:w},type:y,clientExtensionResults:h.getClientExtensionResults(),authenticatorAttachment:mj(h.authenticatorAttachment)}}const vj=eQA,VyA=Et,ZyA=Vi;qs(qs({},ZyA),VyA);const zyA={PRODUCTION:"production",DEVELOPMENT:"development",STAGING:"staging",TESTING:"testing"};let PS;try{PS=new TextDecoder}catch{}let pe,uf,WA=0;const $yA=105,XyA=57342,AwA=57343,HU=57337,YU=6,Eh={};let Pl=11281e4,ea=1681e4,it={},Vt,fp,hp=0,BC=0,Di,Xn,Ci=[],OS=[],Pr,Dr,I0,JU={useRecords:!1,mapsAsObjects:!0},dC=!1,Mj=2;try{new Function("")}catch{Mj=1/0}class cp{constructor(A){if(A&&((A.keyMap||A._keyMap)&&!A.useRecords&&(A.useRecords=!1,A.mapsAsObjects=!0),A.useRecords===!1&&A.mapsAsObjects===void 0&&(A.mapsAsObjects=!0),A.getStructures&&(A.getShared=A.getStructures),A.getShared&&!A.structures&&((A.structures=[]).uninitialized=!0),A.keyMap)){this.mapKey=new Map;for(let[t,i]of Object.entries(A.keyMap))this.mapKey.set(i,t)}Object.assign(this,A)}decodeKey(A){return this.keyMap&&this.mapKey.get(A)||A}encodeKey(A){return this.keyMap&&this.keyMap.hasOwnProperty(A)?this.keyMap[A]:A}encodeKeys(A){if(!this._keyMap)return A;let t=new Map;for(let[i,o]of Object.entries(A))t.set(this._keyMap.hasOwnProperty(i)?this._keyMap[i]:i,o);return t}decodeKeys(A){if(!this._keyMap||A.constructor.name!="Map")return A;if(!this._mapKey){this._mapKey=new Map;for(let[i,o]of Object.entries(this._keyMap))this._mapKey.set(o,i)}let t={};return A.forEach((i,o)=>t[Ao(this._mapKey.has(o)?this._mapKey.get(o):o)]=i),t}mapDecode(A,t){let i=this.decode(A);if(this._keyMap)switch(i.constructor.name){case"Array":return i.map(o=>this.decodeKeys(o))}return i}decode(A,t){if(pe)return kj(()=>(ZS(),this?this.decode(A,t):cp.prototype.decode.call(JU,A,t)));uf=t>-1?t:A.length,WA=0,BC=0,fp=null,Di=null,pe=A;try{Dr=A.dataView||(A.dataView=new DataView(A.buffer,A.byteOffset,A.byteLength))}catch(i){throw pe=null,A instanceof Uint8Array?i:new Error("Source must be a Uint8Array or Buffer but was a "+(A&&typeof A=="object"?A.constructor.name:typeof A))}if(this instanceof cp){if(it=this,Pr=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return Vt=this.structures,Od();(!Vt||Vt.length>0)&&(Vt=[])}else it=JU,(!Vt||Vt.length>0)&&(Vt=[]),Pr=null;return Od()}decodeMultiple(A,t){let i,o=0;try{let r=A.length;dC=!0;let f=this?this.decode(A,r):WR.decode(A,r);if(t){if(t(f)===!1)return;for(;WA=Di.postBundlePosition){let A=new Error("Unexpected bundle position");throw A.incomplete=!0,A}WA=Di.postBundlePosition,Di=null}if(WA==uf)Vt=null,pe=null,Xn&&(Xn=null);else if(WA>uf){let A=new Error("Unexpected end of CBOR data");throw A.incomplete=!0,A}else if(!dC)throw new Error("Data read, but end of buffer not reached");return e}catch(e){throw ZS(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer"))&&(e.incomplete=!0),e}}function st(){let e=pe[WA++],A=e>>5;if(e=e&31,e>23)switch(e){case 24:e=pe[WA++];break;case 25:if(A==7)return rwA();e=Dr.getUint16(WA),WA+=2;break;case 26:if(A==7){let t=Dr.getFloat32(WA);if(it.useFloat32>2){let i=Rj[(pe[WA]&127)<<1|pe[WA+1]>>7];return WA+=4,(i*t+(t>0?.5:-.5)>>0)/i}return WA+=4,t}e=Dr.getUint32(WA),WA+=4;break;case 27:if(A==7){let t=Dr.getFloat64(WA);return WA+=8,t}if(A>1){if(Dr.getUint32(WA)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");e=Dr.getUint32(WA+4)}else it.int64AsNumber?(e=Dr.getUint32(WA)*4294967296,e+=Dr.getUint32(WA+4)):e=Dr.getBigUint64(WA);WA+=8;break;case 31:switch(A){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let t=[],i,o=0;for(;(i=st())!=Eh;){if(o>=Pl)throw new Error(`Array length exceeds ${Pl}`);t[o++]=i}return A==4?t:A==3?t.join(""):Buffer.concat(t);case 5:let r;if(it.mapsAsObjects){let f={},h=0;if(it.keyMap)for(;(r=st())!=Eh;){if(h++>=ea)throw new Error(`Property count exceeds ${ea}`);f[Ao(it.decodeKey(r))]=st()}else for(;(r=st())!=Eh;){if(h++>=ea)throw new Error(`Property count exceeds ${ea}`);f[Ao(r)]=st()}return f}else{I0&&(it.mapsAsObjects=!0,I0=!1);let f=new Map;if(it.keyMap){let h=0;for(;(r=st())!=Eh;){if(h++>=ea)throw new Error(`Map size exceeds ${ea}`);f.set(it.decodeKey(r),st())}}else{let h=0;for(;(r=st())!=Eh;){if(h++>=ea)throw new Error(`Map size exceeds ${ea}`);f.set(r,st())}}return f}case 7:return Eh;default:throw new Error("Invalid major type for indefinite length "+A)}default:throw new Error("Unknown token "+e)}switch(A){case 0:return e;case 1:return~e;case 2:return iwA(e);case 3:if(BC>=WA)return fp.slice(WA-hp,(WA+=e)-hp);if(BC==0&&uf<140&&e<32){let o=e<16?bj(e):twA(e);if(o!=null)return o}return ewA(e);case 4:if(e>=Pl)throw new Error(`Array length exceeds ${Pl}`);let t=new Array(e);for(let o=0;o=ea)throw new Error(`Map size exceeds ${Pl}`);if(it.mapsAsObjects){let o={};if(it.keyMap)for(let r=0;r=HU){let o=Vt[e&8191];if(o)return o.read||(o.read=jS(o)),o.read();if(e<65536){if(e==AwA){let r=ec(),f=st(),h=st();VS(f,h);let d={};if(it.keyMap)for(let p=2;p23)switch(t){case 24:t=pe[WA++];break;case 25:t=Dr.getUint16(WA),WA+=2;break;case 26:t=Dr.getUint32(WA),WA+=4;break;default:throw new Error("Expected array header, but got "+pe[WA-1])}let i=this.compiledReader;for(;i;){if(i.propertyCount===t)return i(st);i=i.next}if(this.slowReads++>=Mj){let r=this.length==t?this:this.slice(0,t);return i=it.keyMap?new Function("r","return {"+r.map(f=>it.decodeKey(f)).map(f=>TU.test(f)?Ao(f)+":r()":"["+JSON.stringify(f)+"]:r()").join(",")+"}"):new Function("r","return {"+r.map(f=>TU.test(f)?Ao(f)+":r()":"["+JSON.stringify(f)+"]:r()").join(",")+"}"),this.compiledReader&&(i.next=this.compiledReader),i.propertyCount=t,this.compiledReader=i,i(st)}let o={};if(it.keyMap)for(let r=0;r64&&PS)return PS.decode(pe.subarray(WA,WA+=e));const t=WA+e,i=[];for(A="";WA65535&&(d-=65536,i.push(d>>>10&1023|55296),d=56320|d&1023),i.push(d)}else i.push(o);i.length>=4096&&(A+=Si.apply(String,i),i.length=0)}return i.length>0&&(A+=Si.apply(String,i)),A}let Si=String.fromCharCode;function twA(e){let A=WA,t=new Array(e);for(let i=0;i0){WA=A;return}t[i]=o}return Si.apply(String,t)}function bj(e){if(e<4)if(e<2){if(e===0)return"";{let A=pe[WA++];if((A&128)>1){WA-=1;return}return Si(A)}}else{let A=pe[WA++],t=pe[WA++];if((A&128)>0||(t&128)>0){WA-=2;return}if(e<3)return Si(A,t);let i=pe[WA++];if((i&128)>0){WA-=3;return}return Si(A,t,i)}else{let A=pe[WA++],t=pe[WA++],i=pe[WA++],o=pe[WA++];if((A&128)>0||(t&128)>0||(i&128)>0||(o&128)>0){WA-=4;return}if(e<6){if(e===4)return Si(A,t,i,o);{let r=pe[WA++];if((r&128)>0){WA-=5;return}return Si(A,t,i,o,r)}}else if(e<8){let r=pe[WA++],f=pe[WA++];if((r&128)>0||(f&128)>0){WA-=6;return}if(e<7)return Si(A,t,i,o,r,f);let h=pe[WA++];if((h&128)>0){WA-=7;return}return Si(A,t,i,o,r,f,h)}else{let r=pe[WA++],f=pe[WA++],h=pe[WA++],d=pe[WA++];if((r&128)>0||(f&128)>0||(h&128)>0||(d&128)>0){WA-=8;return}if(e<10){if(e===8)return Si(A,t,i,o,r,f,h,d);{let p=pe[WA++];if((p&128)>0){WA-=9;return}return Si(A,t,i,o,r,f,h,d,p)}}else if(e<12){let p=pe[WA++],C=pe[WA++];if((p&128)>0||(C&128)>0){WA-=10;return}if(e<11)return Si(A,t,i,o,r,f,h,d,p,C);let y=pe[WA++];if((y&128)>0){WA-=11;return}return Si(A,t,i,o,r,f,h,d,p,C,y)}else{let p=pe[WA++],C=pe[WA++],y=pe[WA++],w=pe[WA++];if((p&128)>0||(C&128)>0||(y&128)>0||(w&128)>0){WA-=12;return}if(e<14){if(e===12)return Si(A,t,i,o,r,f,h,d,p,C,y,w);{let D=pe[WA++];if((D&128)>0){WA-=13;return}return Si(A,t,i,o,r,f,h,d,p,C,y,w,D)}}else{let D=pe[WA++],v=pe[WA++];if((D&128)>0||(v&128)>0){WA-=14;return}if(e<15)return Si(A,t,i,o,r,f,h,d,p,C,y,w,D,v);let M=pe[WA++];if((M&128)>0){WA-=15;return}return Si(A,t,i,o,r,f,h,d,p,C,y,w,D,v,M)}}}}}function iwA(e){return it.copyBuffers?Uint8Array.prototype.slice.call(pe,WA,WA+=e):pe.subarray(WA,WA+=e)}let Sj=new Float32Array(1),jd=new Uint8Array(Sj.buffer,0,4);function rwA(){let e=pe[WA++],A=pe[WA++],t=(e&127)>>2;if(t===31)return A||e&3?NaN:e&128?-1/0:1/0;if(t===0){let i=((e&3)<<8|A)/16777216;return e&128?-i:i}return jd[3]=e&128|(t>>1)+56,jd[2]=(e&7)<<5|A>>3,jd[1]=A<<5,jd[0]=0,Sj[0]}new Array(4096);class $w{constructor(A,t){this.value=A,this.tag=t}}Ci[0]=e=>new Date(e);Ci[1]=e=>new Date(Math.round(e*1e3));Ci[2]=e=>{let A=BigInt(0);for(let t=0,i=e.byteLength;tBigInt(-1)-Ci[2](e);Ci[4]=e=>+(e[1]+"e"+e[0]);Ci[5]=e=>e[1]*Math.exp(e[0]*Math.log(2));const VS=(e,A)=>{e=e-57344;let t=Vt[e];t&&t.isShared&&((Vt.restoreStructures||(Vt.restoreStructures=[]))[e]=t),Vt[e]=A,A.read=jS(A)};Ci[$yA]=e=>{let A=e.length,t=e[1];VS(e[0],t);let i={};for(let o=2;oDi?Di[0].slice(Di.position0,Di.position0+=e):new $w(e,14);Ci[15]=e=>Di?Di[1].slice(Di.position1,Di.position1+=e):new $w(e,15);let nwA={Error,RegExp};Ci[27]=e=>(nwA[e[0]]||Error)(e[1],e[2]);const Nj=e=>{if(pe[WA++]!=132){let t=new Error("Packed values structure must be followed by a 4 element array");throw pe.length{if(!Pr)if(it.getShared)jR();else return new $w(e,YU);if(typeof e=="number")return Pr[16+(e>=0?2*e:-2*e-1)];let A=new Error("No support for non-integer packed references yet");throw e===void 0&&(A.incomplete=!0),A};Ci[28]=e=>{Xn||(Xn=new Map,Xn.id=0);let A=Xn.id++,t=WA,i=pe[WA],o;i>>5==4?o=[]:o={};let r={target:o};Xn.set(A,r);let f=e();return r.used?(Object.getPrototypeOf(o)!==Object.getPrototypeOf(f)&&(WA=t,o=f,Xn.set(A,{target:o}),f=e()),Object.assign(o,f)):(r.target=f,f)};Ci[28].handlesRead=!0;Ci[29]=e=>{let A=Xn.get(e);return A.used=!0,A.target};Ci[258]=e=>new Set(e);(Ci[259]=e=>(it.mapsAsObjects&&(it.mapsAsObjects=!1,I0=!0),e())).handlesRead=!0;function Qh(e,A){return typeof e=="string"?e+A:e instanceof Array?e.concat(A):Object.assign({},e,A)}function GI(){if(!Pr)if(it.getShared)jR();else throw new Error("No packed values available");return Pr}const owA=1399353956;OS.push((e,A)=>{if(e>=225&&e<=255)return Qh(GI().prefixes[e-224],A);if(e>=28704&&e<=32767)return Qh(GI().prefixes[e-28672],A);if(e>=1879052288&&e<=2147483647)return Qh(GI().prefixes[e-1879048192],A);if(e>=216&&e<=223)return Qh(A,GI().suffixes[e-216]);if(e>=27647&&e<=28671)return Qh(A,GI().suffixes[e-27639]);if(e>=1811940352&&e<=1879048191)return Qh(A,GI().suffixes[e-1811939328]);if(e==owA)return{packedValues:Pr,structures:Vt.slice(0),version:A};if(e==55799)return A});const swA=new Uint8Array(new Uint16Array([1]).buffer)[0]==1,PU=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array],awA=[64,68,69,70,71,72,77,78,79,85,86];for(let e=0;e{if(!e)throw new Error("Could not find typed array for code "+A);return!it.copyBuffers&&(i===1||i===2&&!(f.byteOffset&1)||i===4&&!(f.byteOffset&3)||i===8&&!(f.byteOffset&7))?new e(f.buffer,f.byteOffset,f.byteLength>>r):new e(Uint8Array.prototype.slice.call(f,0).buffer)}:f=>{if(!e)throw new Error("Could not find typed array for code "+A);let h=new DataView(f.buffer,f.byteOffset,f.byteLength),d=f.length>>r,p=new e(d),C=h[t];for(let y=0;y23)switch(e){case 24:e=pe[WA++];break;case 25:e=Dr.getUint16(WA),WA+=2;break;case 26:e=Dr.getUint32(WA),WA+=4;break}return e}function jR(){if(it.getShared){let e=kj(()=>(pe=null,it.getShared()))||{},A=e.structures||[];it.sharedVersion=e.version,Pr=it.sharedValues=e.packedValues,Vt===!0?it.structures=Vt=A:Vt.splice.apply(Vt,[0,A.length].concat(A))}}function kj(e){let A=uf,t=WA,i=hp,o=BC,r=fp,f=Xn,h=Di,d=new Uint8Array(pe.slice(0,uf)),p=Vt,C=it,y=dC,w=e();return uf=A,WA=t,hp=i,BC=o,fp=r,Xn=f,Di=h,pe=d,dC=y,Vt=p,it=C,Dr=new DataView(pe.buffer,pe.byteOffset,pe.byteLength),w}function ZS(){pe=null,Xn=null,Vt=null}const Rj=new Array(147);for(let e=0;e<256;e++)Rj[e]=+("1e"+Math.floor(45.15-e*.30103));let WR=new cp({useRecords:!1});const fwA=WR.decode;WR.decodeMultiple;const hwA=e=>({register:{options:`${e}/passkey/register/options`,verify:`${e}/passkey/register/verify`},authenticate:{options:`${e}/passkey/authenticate/options`,getCredential:`${e}/passkey/authenticate/getCredential`,verify:`${e}/passkey/authenticate/verify`}}),cwA=e=>{const{document:A}=e,t=A.querySelector('head > meta[property="og:site_name"]');if(t)return t.content;const i=A.querySelector('head > meta[name="title"]');return i?i.content:A.title&&A.title.length>0?A.title:e.location.hostname},uwA=e=>{const i=new URL(e).hostname.split("."),o=i.length-1,r=i[o-1],f=i[o],h=o>=3&&(r+f).length<=5;return r?`${(h?`${i[o-2]}.`:"")+r}.${f}`:f};async function lwA(e,A){const t=JSON.stringify(A),i=Buffer.from(t,"utf-8"),o=await BEA(Buffer.from(e,"hex"),i),r=KpA(o);return JSON.stringify(r)}const CwA=async e=>{const A=d=>{let p=d;const C=p.slice(0,32);p=p.slice(32);const y=p.slice(0,1);p=p.slice(1);const w=y[0],D={up:!!(w&1),uv:!!(w&4),at:!!(w&64),ed:!!(w&128),flagsInt:w},v=p.slice(0,4);p=p.slice(4);const M=v.readUInt32BE(0);if(!D.at)throw new Error("Unable to parse auth data");const R=p.slice(0,16);p=p.slice(16);const b=p.slice(0,2);p=p.slice(2);const S=b.readUInt16BE(0),G=p.slice(0,S);return p=p.slice(S),{rpIdHash:C,flagsBuf:y,flags:D,counter:M,counterBuf:v,aaguid:R,credID:G,COSEPublicKey:p}},t=d=>{if(typeof d=="string")throw new Error("only accepts buffer-like input");return vj.fromBase64(Buffer.from(d).toString("base64"))},{response:i}=e,o=fwA(Buffer.from(CC(i.attestationObject))),r=A(o.authData),f=t(r.COSEPublicKey);return t(NpA(Buffer.from(f,"base64")))},BwA=e=>{const{email:A,name:t,typeOfLogin:i,verifierId:o}=e;return i&&i!=="jwt"?`${i}|${A||t||o}`:A||t||o};class dwA{constructor(A){Le(this,"trackingId",""),Le(this,"web3AuthClientId",void 0),Le(this,"web3authNetwork",void 0),Le(this,"buildEnv",zyA.PRODUCTION),Le(this,"endpoints",void 0),Le(this,"rpID",void 0),Le(this,"rpName",void 0),Le(this,"web3authLoginSvc",void 0),this.web3AuthClientId=A.web3AuthClientId,this.endpoints=hwA(A.baseURL),this.web3authNetwork=A.web3authNetwork,this.rpID=A.rpID,this.rpName=A.rpName,this.web3authLoginSvc=A.web3authLoginService}async initiateRegistration(A){const t=await this.getRegistrationOptions(A),{options:i,trackingId:o}=t;return this.trackingId=o,await PyA({optionsJSON:i})}async registerPasskey(A){const{username:t,verifier:i,verifierID:o,verificationResponse:r,sessionSignatures:f,userEncryptedMetadata:h,postboxKey:d}=A,p=await CwA(r);await this.web3authLoginSvc.registerPasskey({verifierId:o,verifier:i,credentialPubKey:p,postboxKey:d,username:t,sessionSignatures:f});const C=await this.verifyRegistration(r,f,h);return{response:r,data:C}}async unRegisterPasskey(A){return this.web3authLoginSvc.unRegisterPasskey(A)}async listPasskeys(A){return this.web3authLoginSvc.listPasskeys(A)}async loginUser(A){const t=await this.getAuthenticationOptions(A),{options:i,trackingId:o}=t;this.trackingId=o;const r=await WyA({optionsJSON:i}),f=await this.getCredentialByID(r.id);try{const{response:{signature:h,clientDataJSON:d,authenticatorData:p},id:C}=r,{credential_public_key:y,metadata:w}=f.data,D={verifier:y,credentialPublicKey:y,signature:h,extraVerifierParams:{signature:h,clientDataJSON:d,authenticatorData:p,publicKey:y,challenge:"",rpOrigin:window.location.origin,rpId:this.rpID,credId:C}},v=await this.web3authLoginSvc.getPasskeyPostboxKey(D),M=await GpA(v.finalKeyData.privKey.padStart(64,"0"),w);if(!M)throw new Error("Unable to decrypt metadata.");const R=await this.verifyAuthentication(r);if(R&&R.verified&&R.data)return qr.info("authentication response",r),{torusKey:v,decryptedMetadata:M,authenticationResponse:r,data:{transports:R.data.transports,publicKey:R.data.credential_public_key,metadata:R.data.metadata,strict_passkey_enabled:R.data.strict_passkey_enabled}}}catch(h){throw qr.error("error login with passkey",h),h}}async getRegistrationOptions({authenticatorAttachment:A,oAuthVerifier:t,oAuthVerifierId:i,signatures:o,username:r,passkeyToken:f}){try{const h=await Ca(this.endpoints.register.options,{web3auth_client_id:this.web3AuthClientId,verifier_id:i,verifier:t,authenticator_attachment:A,rp:{name:this.rpName,id:this.rpID},username:r,network:this.web3authNetwork,signatures:o},{headers:{Authorization:`Bearer ${f||""}`}});if(h.success)return h.data;throw new Error("Error getting registration options")}catch(h){if(h instanceof Response){const d=await h.json();throw new Error(`Error getting registration options, reason: ${d.error||"unknown"}`)}throw qr.error("error getting registration options",h),h}}async verifyRegistration(A,t,i){if(!this.trackingId)throw new Error("trackingId is required, please restart the process again.");try{const o=await Ca(this.endpoints.register.verify,{web3auth_client_id:this.web3AuthClientId,tracking_id:this.trackingId,verification_data:A,network:this.web3authNetwork,signatures:t,metadata:i});if(o.verified)return o.data;throw new Error(`Error verifying registration, error: ${o.error}`)}catch(o){if(o instanceof Response){const r=await o.json();throw new Error(`Error verifying registration, reason: ${r.error||"unknown"}`)}throw qr.error("error verifying registration",o),o}}async getAuthenticationOptions(A){try{const t=await Ca(this.endpoints.authenticate.options,{web3auth_client_id:this.web3AuthClientId,rp_id:this.rpID,authenticator_id:A,network:this.web3authNetwork});if(t.success)return t.data;throw new Error("Error getting authentication options")}catch(t){if(t instanceof Response){const i=await t.json();throw new Error(`Error getting authentication options, reason: ${i.error||"unknown"}`)}throw qr.error("error getting authentication options",t),t}}async verifyAuthentication(A){if(!A)throw new Error("verificationResponse is required.");try{const t=await Ca(this.endpoints.authenticate.verify,{web3auth_client_id:this.web3AuthClientId,tracking_id:this.trackingId,verification_data:A,network:this.web3authNetwork});if(t.verified)return{data:t.data,verified:t.verified};throw new Error(`Error verifying authentication, error: ${t.error}`)}catch(t){if(t instanceof Response){const i=await t.json();throw new Error(`Error verifying authentication, reason: ${i.error||"unknown"}`)}throw qr.error("error verifying authentication",t),t}}async getCredentialByID(A){if(!A)throw new Error("credentialID is required.");try{const t=await Ca(this.endpoints.authenticate.getCredential,{web3auth_client_id:this.web3AuthClientId,tracking_id:this.trackingId,credential_id:A,network:this.web3authNetwork});if(!t.error)return{data:t.data};throw new Error(`Error getting credential by ID, error: ${t.error}`)}catch(t){if(t instanceof Response){const i=await t.json();throw new Error(`Error getting credential by ID, reason: ${i.error||"unknown"}`)}throw qr.error("error getting credential by ID",t),t}}}class EwA{constructor(A,t,i){Le(this,"authInstance",null),Le(this,"nodeDetailManagerInstance",void 0),Le(this,"KeyType",void 0),Le(this,"web3auth",void 0),this.authInstance=A,this.nodeDetailManagerInstance=t,this.KeyType="secp256k1",this.web3auth=i}async getPasskeyPostboxKey(A){const{verifier:t,credentialPublicKey:i,signature:o}=A,r=this.getVerifierIdFromCredentialPubKey(i),f={verifier:t,verifierId:r},{torusNodeEndpoints:h,torusNodePub:d,torusIndexes:p}=await this.nodeDetailManagerInstance.getNodeDetails(f),C={verifier_id:r},y=await this.authInstance.retrieveShares({endpoints:h,nodePubkeys:d,indexes:p,verifier:t,verifierParams:C,idToken:o,useLinkedPasskey:!0,checkCommitment:!1,extraParams:A.extraVerifierParams||{}});if(!y.finalKeyData.privKey)throw new Error("Unable to get passkey privkey.");return y}async registerPasskey(A){try{const{username:t,credentialPubKey:i,postboxKey:o,verifier:r,verifierId:f,sessionSignatures:h}=A,d={verifier:r,verifierId:f},{torusNodeEndpoints:p}=await this.nodeDetailManagerInstance.getNodeDetails(d),C=await this.getAuthMessages({verifier:r,verifierId:f,endpoints:p}),y=C.map(({nodeIndex:v})=>p[v-1]),w=jM("secp256k1").keyFromPrivate(o.padStart(64,"0"),"hex"),D=C.map(v=>{const M=w.sign(Jd(Buffer.from(v.message,"utf8")).slice(2));return Buffer.from(`${M.r.toString(16,64)+M.s.toString(16,64)}00`,"hex").toString("hex")});await UpA({endpoints:y,passkeyPubKey:i,messages:C.map(({message:v})=>v),label:t,oAuthKeySignatures:D,keyType:this.KeyType,sessionData:h})}catch(t){throw qr.error("Error registering passkey in nodes",t),t}}async unRegisterPasskey(A){try{const{credentialPubKey:t,postboxKey:i,verifier:o,sessionSignatures:r}=A,f={verifier:o,verifierId:"randomVID"},{torusNodeEndpoints:h}=await this.nodeDetailManagerInstance.getNodeDetails(f),d=await this.getAuthMessages({verifier:o,credentialPubKey:t,endpoints:h}),p=d.map(({nodeIndex:w})=>h[w-1]),C=jM("secp256k1").keyFromPrivate(i.padStart(64,"0"),"hex"),y=d.map(w=>{const D=C.sign(Jd(Buffer.from(w.message,"utf8")).slice(2));return Buffer.from(`${D.r.toString(16,64)+D.s.toString(16,64)}00`,"hex").toString("hex")});await _pA({endpoints:p,passkeyPubKey:t,messages:d.map(({message:w})=>w),oAuthKeySignatures:y,keyType:this.KeyType,sessionData:r})}catch(t){throw qr.error("Error registering passkey in nodes",t),t}}async listPasskeys(A){try{const{credentialPubKey:t,postboxKey:i,verifier:o,verifierId:r}=A,f={verifier:o,verifierId:r||"randomVID"},{torusNodeEndpoints:h}=await this.nodeDetailManagerInstance.getNodeDetails(f);if(!r&&!t)throw new Error("Either verifierId or credentialPubKey is required.");const d=await this.getAuthMessages({verifier:o,verifierId:r,credentialPubKey:t,endpoints:h}),p=d.map(({nodeIndex:D})=>h[D-1]),C=jM("secp256k1").keyFromPrivate(i.padStart(64,"0"),"hex"),y=d.map(D=>{const v=C.sign(Jd(Buffer.from(D.message,"utf8")).slice(2));return Buffer.from(`${v.r.toString(16,64)+v.s.toString(16,64)}00`,"hex").toString("hex")});return await qpA({endpoints:p,messages:d.map(({message:D})=>D),oAuthKeySignatures:y,keyType:this.KeyType})}catch(t){throw qr.error("Error registering passkey in nodes",t),t}}async getAuthMessages(A){const{verifier:t,verifierId:i,endpoints:o,credentialPubKey:r}=A;if(!i&&!r)throw new Error("Either verifierId or credentialPubKey is required.");return await LpA({verifier:t,verifierId:i,endpoints:o,passkeyPubKey:r,requiredNodeIndexes:this.web3auth.state.postboxKeyNodeIndexes||[]})}getVerifierIdFromCredentialPubKey(A){return vj.fromBase64(Buffer.from(Jd(Buffer.from(A,"base64"))).toString("base64"))}}class QwA{constructor(A={}){Le(this,"options",void 0),Le(this,"web3auth",null),Le(this,"initialized",!1),Le(this,"passkeysSvc",null),Le(this,"currentStorage",void 0),Le(this,"_storageBaseKey","passkey_plugin_corekit_store"),A.baseURL||(A.baseURL="http://localhost:3041/api/v1"),A.rpID||typeof window<"u"&&(A.rpID=uwA(window.location.href)),A.rpName||typeof window<"u"&&(A.rpName=cwA(window)||""),this.options=A}async initWithMpcCoreKit(A){var t;if(this.initialized)return;if(!A)throw new Error("Web3AuthMPCCoreKit instance is required");A.status===GU.NOT_INITIALIZED&&await A.init(),this.web3auth=A;const i=(t=A.torusSp)===null||t===void 0||(t=t.customAuthInstance)===null||t===void 0?void 0:t.torus,{web3AuthNetwork:o,web3AuthClientId:r,storage:f}=A.config,h=new TEA({network:o}),d=new EwA(i,h,this.web3auth);this.passkeysSvc=new dwA({web3AuthClientId:r,web3authNetwork:o,baseURL:this.options.baseURL,rpID:this.options.rpID,rpName:this.options.rpName,web3authLoginService:d}),this.currentStorage=new VEA(this._storageBaseKey,f),this.initialized=!0,this.web3auth.setSessionSigGenerator(this.fetchAuthSignatures.bind(this))}async registerPasskey({authenticatorAttachment:A,username:t}={}){if(!this.initialized)throw new Error("Sdk not initialized, please call init first.");if(!this.passkeysSvc)throw new Error("Passkey service not initialized");if(this.web3auth.status!==GU.LOGGED_IN)throw new Error("Web3Auth not connected");if(!this.web3auth.state.postBoxKey)throw new Error("Unable to get social login key, please login first.");if(!this.web3auth.state.signatures)throw new Error("Unable to get session signatures, please login first.");t||(t=BwA(this.web3auth.getUserInfo()));try{const{verifier:i,verifierId:o,aggregateVerifier:r}=this.web3auth.getUserInfo();if(!o||!i)throw new Error("Unable to get verifier or verifierId, please login first.");const f=r||i,h=await this.fetchAuthSignatures(),d=await this.passkeysSvc.initiateRegistration({oAuthVerifier:f,oAuthVerifierId:o,authenticatorAttachment:A,signatures:h,username:t});if(!d)throw new Error("passkey registration failed.");const C=GO(Buffer.from(this.web3auth.state.postBoxKey.padStart(64,"0"),"hex")).toString("hex"),y=await this.getUserEncryptedMetadata(C);if(!await this.passkeysSvc.registerPasskey({verificationResponse:d,postboxKey:this.web3auth.state.postBoxKey,sessionSignatures:this.web3auth.state.signatures,userEncryptedMetadata:y,verifier:f,verifierID:o,username:t}))throw new Error("passkey registration failed.");return!0}catch(i){throw qr.error("error registering user",i),i}}async authenticateWithPasskey(A=!1,t){if(!this.initialized)throw new Error("Sdk not initialized, please call init first.");if(!this.passkeysSvc)throw new Error("Passkey service not initialized");const i=await this.passkeysSvc.loginUser(t),{userInfo:o}=i.decryptedMetadata;return await this.web3auth._finalizeOauthLogin(i.torusKey,o,!A),await this.setAuthenticatorData(i.authenticationResponse.id,i.data.publicKey,!!i.data.strict_passkey_enabled),i}async listPasskeys(){if(!this.initialized)throw new Error("Sdk not initialized, please call init first.");if(!this.passkeysSvc)throw new Error("Passkey service not initialized");const{verifier:A,aggregateVerifier:t,verifierId:i}=this.web3auth.getUserInfo();if(!A||!i)throw new Error("Unable to get verifier or verifierId, please login first.");const o=t||A;return this.passkeysSvc.listPasskeys({verifierId:i,postboxKey:this.web3auth.state.postBoxKey,verifier:o})}async unRegisterPasskey({credentialPubKey:A}){if(!this.initialized)throw new Error("Sdk not initialized, please call init first.");if(!this.passkeysSvc)throw new Error("Passkey service not initialized");if(!A)throw new Error("credentialPubKey is required.");const{verifier:t,aggregateVerifier:i,verifierId:o}=this.web3auth.getUserInfo();if(!t||!o)throw new Error("Unable to get verifier or verifierId, please login first.");const r=i||t,f=await this.fetchAuthSignatures();await this.passkeysSvc.unRegisterPasskey({sessionSignatures:f,credentialPubKey:A,postboxKey:this.web3auth.state.postBoxKey,verifier:r});const{credentialPubKey:h}=await this.getAuthenticatorData();h.toLowerCase()===A.toLowerCase()&&await this.logout()}async enableStrictPasskeyAuth(){const{authenticatorId:A}=await this.getAuthenticatorData();await this.authenticateWithPasskey(!0,A)}async disableStrictPasskeyAuth(){const{authenticatorId:A}=await this.getAuthenticatorData();await this.authenticateWithPasskey(!1,A)}async isStrictPasskeyEnabled(){const{strictPasskeyEnabled:A}=await this.getAuthenticatorData();return A}async logout(){this.web3auth.logout(),await this.currentStorage.resetStore()}async fetchAuthSignatures(){if(this.web3auth.signatures.length>0)return this.web3auth.signatures;const{authenticatorId:A}=await this.getAuthenticatorData(),t=await this.authenticateWithPasskey(!0,A);return this._getSignatures(t.torusKey.sessionData.sessionTokenData)}async getUserEncryptedMetadata(A){const t={userInfo:this.web3auth.getUserInfo()};return lwA(A,t)}async getAuthenticatorData(){return this.currentStorage.get("authenticator_data")||{authenticatorId:"",credentialPubKey:"",strictPasskeyEnabled:!1}}async setAuthenticatorData(A,t,i){await this.currentStorage.set("authenticator_data",{authenticatorId:A,credentialPubKey:t,strictPasskeyEnabled:i})}_getSignatures(A){return A.filter(t=>!!t).map(t=>JSON.stringify({data:t.token,sig:t.signature}))}}var ro;(function(e){e.NUMBER="NUMBER_NUMBER",e.HEX="NUMBER_HEX",e.STR="NUMBER_STR",e.BIGINT="NUMBER_BIGINT"})(ro||(ro={}));var Ha;(function(e){e.HEX="BYTES_HEX",e.UINT8ARRAY="BYTES_UINT8ARRAY"})(Ha||(Ha={}));const en={number:ro.BIGINT,bytes:Ha.HEX},Ke={number:ro.HEX,bytes:Ha.HEX};var Ba;(function(e){e.EARLIEST="earliest",e.LATEST="latest",e.PENDING="pending",e.SAFE="safe",e.FINALIZED="finalized",e.COMMITTED="committed"})(Ba||(Ba={}));var G0;(function(e){e.chainstart="chainstart",e.frontier="frontier",e.homestead="homestead",e.dao="dao",e.tangerineWhistle="tangerineWhistle",e.spuriousDragon="spuriousDragon",e.byzantium="byzantium",e.constantinople="constantinople",e.petersburg="petersburg",e.istanbul="istanbul",e.muirGlacier="muirGlacier",e.berlin="berlin",e.london="london",e.altair="altair",e.arrowGlacier="arrowGlacier",e.grayGlacier="grayGlacier",e.bellatrix="bellatrix",e.merge="merge",e.capella="capella",e.shanghai="shanghai"})(G0||(G0={}));const VR=Object.getPrototypeOf(Uint8Array);var OU=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const jU=Symbol.for("web3/base-provider");class bB{static isWeb3Provider(A){return A instanceof bB||!!(A&&A[jU])}get[jU](){return!0}send(A,t){this.request(A).then(i=>{t(null,i)}).catch(i=>{t(i)})}sendAsync(A){return OU(this,void 0,void 0,function*(){return this.request(A)})}asEIP1193Provider(){const A=Object.create(this),t=A.request;return A.request=function(o){return OU(this,void 0,void 0,function*(){return(yield t(o)).result})},A.asEIP1193Provider=void 0,A}}class pwA extends Array{constructor(A){super(),this._accountProvider=A}}const ywA=100,wwA=101,DwA=201,mwA=202,vwA=203,MwA=204,bwA=205,SwA=206,NwA=207,kwA=208,RwA=300,KwA=301,GwA=310,FwA=311,xwA=400,LwA=402,UwA=405,_wA=407,qwA=408,HwA=410,YwA=411,JwA=412,TwA=413,PwA=414,OwA=415,jwA=416,WwA=417,VwA=418,ZwA=419,zwA=420,$wA=421,XwA=422,ADA=423,eDA=424,tDA=425,iDA=426,rDA=427,nDA=428,oDA=429,sDA=430,aDA=431,gDA=432,IDA=433,fDA=434,hDA=435,cDA=436,uDA=437,lDA=438,CDA=439,BDA=440,dDA=441,EDA=500,QDA=503,pDA=505,yDA=506,wDA=507,DDA=600,mDA=602,vDA=603,MDA=604,bDA=701,SDA=702,NDA=703,kDA=704,RDA=705,KDA=706,GDA=707,FDA=709,xDA=801,LDA=802,UDA=4001,_DA=4100,qDA=4200,HDA=4900,YDA=4901,JDA=902,TDA=903,PDA=1001,ODA=1002,jDA=1003,WDA=1004,VDA=1005,ZDA=1006,zDA=1008,$DA=1009,XDA=1010,AmA=1011,emA=1012,tmA=1014,imA=1015,rmA=1100,Kj=1101,nmA=1200,up=-32700,lp=-32600,Cp=-32601,Bp=-32602,dp=-32603,Ep=-32e3,Qp=-32001,pp=-32002,yp=-32003,wp=-32004,Dp=-32005,mp=-32006;class ke extends Error{constructor(A,t){super(A),Array.isArray(t)?this.cause=new F0(t):this.cause=t,this.name=this.constructor.name,typeof Error.captureStackTrace=="function"?Error.captureStackTrace(new.target.constructor):this.stack=new Error().stack}get innerError(){return this.cause instanceof F0?this.cause.errors:this.cause}set innerError(A){Array.isArray(A)?this.cause=new F0(A):this.cause=A}static convertToString(A,t=!1){if(A==null)return"undefined";const i=JSON.stringify(A,(o,r)=>typeof r=="bigint"?r.toString():r);return t&&["bigint","string"].includes(typeof A)?i.replace(/['\\"]+/g,""):i}toJSON(){return{name:this.name,code:this.code,message:this.message,cause:this.cause,innerError:this.cause}}}class F0 extends ke{constructor(A){super(`Multiple errors occurred: [${A.map(t=>t.message).join("], [")}]`),this.code=kwA,this.errors=A}}class Ze extends ke{constructor(A,t){super(`Invalid value given "${ke.convertToString(A,!0)}". Error: ${t}.`),this.name=this.constructor.name}}class WU extends ke{constructor(){super("Private key must be 32 bytes."),this.code=bDA}}class omA extends ke{constructor(){super("Invalid Private Key, Not a valid string or uint8Array"),this.code=SDA}}class smA extends ke{constructor(A){super(`"${A}"`),this.code=LDA}}class Gj extends ke{constructor(){super("Invalid key derivation function"),this.code=NDA}}class amA extends ke{constructor(){super("Key derivation failed - possibly wrong password"),this.code=kDA}}class gmA extends ke{constructor(){super("Unsupported key store version"),this.code=RDA}}class ImA extends ke{constructor(){super("Password cannot be empty"),this.code=KDA}}class fmA extends ke{constructor(){super("Initialization vector must be 16 bytes"),this.code=GDA}}class hmA extends ke{constructor(){super("c > 1000, pbkdf2 is less secure with less iterations"),this.code=FDA}}class SB extends ke{constructor(A,t){super(A),this.code=EDA,t&&(this.errorCode=t.code,this.errorReason=t.reason)}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{errorCode:this.errorCode,errorReason:this.errorReason})}}class zS extends SB{constructor(A){super("Connection not open",A),this.code=QDA}}class cmA extends SB{constructor(A){super(`Maximum number of reconnect attempts reached! (${A})`),this.code=pDA}}class umA extends SB{constructor(){super("CONNECTION ERROR: Provider started to reconnect before the response got received!"),this.code=yDA}}class lmA extends SB{constructor(A){super(`Request already sent with following id: ${A}`),this.code=wDA}}class Mr extends ke{constructor(A,t){super(A),this.code=RwA,this.receipt=t}}class VU extends ke{constructor(A,t){super(`The resolver at ${A} does not implement requested method: "${t}".`),this.address=A,this.name=t,this.code=KwA}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{address:this.address,name:this.name})}}class Xw extends Mr{constructor(A){if(super(A.message||"Error"),this.name="name"in A&&A.name||this.constructor.name,this.stack="stack"in A&&A.stack||void 0,this.code=A.code,typeof A.data=="object"){let t;A.data&&"originalError"in A.data?t=A.data.originalError:t=A.data,this.data=t.data,this.cause=new Xw(t)}else this.data=A.data}setDecodedProperties(A,t,i){this.errorName=A,this.errorSignature=t,this.errorArgs=i}toJSON(){let A=Object.assign(Object.assign({},super.toJSON()),{data:this.data});return this.errorName&&(A=Object.assign(Object.assign({},A),{errorName:this.errorName,errorSignature:this.errorSignature,errorArgs:this.errorArgs})),A}}class lf extends Mr{constructor(A){super("Error happened while trying to execute a function inside a smart contract"),this.code=GwA,this.cause=new Xw(A)}}class CmA extends Ze{constructor(A){var t,i;super(`data: ${(t=A.data)!==null&&t!==void 0?t:"undefined"}, input: ${(i=A.input)!==null&&i!==void 0?i:"undefined"}`,`You can't have "data" and "input" as properties of a contract at the same time, please use either "data" or "input" instead.`),this.code=FwA}}class BmA extends ke{constructor(A){super(`ENS is not supported on network ${A}`),this.code=JDA}}class dmA extends ke{constructor(){super("Network not synced"),this.code=TDA}}class ZU extends ke{constructor(A){super(`Invalid parameters passed. "${typeof A<"u"?A:""}"`),this.hint=A,this.code=NwA}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{hint:this.hint})}}class $S extends ke{constructor(){super(...arguments),this.code=DwA}}class ta extends ke{constructor(){super("The method you're trying to call is not implemented."),this.code=mwA}}class Fj extends ke{constructor(){super(...arguments),this.code=vwA}}class EmA extends ke{constructor(){super(...arguments),this.code=MwA}}class rt extends ke{constructor(A,t){super(A),this.code=bwA,this.props=t??{}}}class QmA extends ke{constructor(A){super(`A plugin with the namespace: ${A} has already been registered.`),this.code=SwA}}class iQ extends ke{constructor(){super(...arguments),this.code=DDA}}class XS extends ke{constructor(A){super(`Client URL "${A}" is invalid.`),this.code=mDA}}class fa extends ke{constructor(){super(...arguments),this.code=vDA}}class pmA extends ke{constructor(){super(...arguments),this.code=MDA}}class ymA extends Ze{constructor(){super(...arguments),this.code=xDA}}class ZR extends ke{constructor(A,t){super(A),this.receipt=t,this.code=xwA}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{receipt:this.receipt})}}class vp extends ke{constructor(A,t,i,o){super(`Transaction has been reverted by the EVM${i===void 0?"":`: + ${ke.convertToString(i)}`}`),this.reason=A,this.signature=t,this.receipt=i,this.data=o,this.code=LwA}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reason:this.reason,signature:this.signature,receipt:this.receipt,data:this.data})}}class xj extends vp{constructor(A,t,i,o,r,f,h){super(A),this.reason=A,this.customErrorName=t,this.customErrorDecodedSignature=i,this.customErrorArguments=o,this.signature=r,this.receipt=f,this.data=h,this.code=lDA}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reason:this.reason,customErrorName:this.customErrorName,customErrorDecodedSignature:this.customErrorDecodedSignature,customErrorArguments:this.customErrorArguments,signature:this.signature,receipt:this.receipt,data:this.data})}}class Lj extends ZR{constructor(A){super(`Transaction has been reverted by the EVM${A===void 0?"":`: + ${ke.convertToString(A)}`}`,A),this.code=UwA}}class wmA extends ZR{constructor(){super("Raw transaction undefined"),this.code=_wA}}class zU extends ZR{constructor(){super("Transaction not found"),this.code=sDA}}class DmA extends Ze{constructor(A){super(A,"invalid transaction with invalid sender"),this.code=qwA}}class mmA extends Ze{constructor(A){super(A,"invalid transaction with invalid receiver"),this.code=uDA}}class vmA extends Ze{constructor(){super("MissingCustomChainError","If tx.common is provided it must have tx.common.customChain"),this.code=HwA}}class MmA extends Ze{constructor(){super("MissingCustomChainIdError","If tx.common is provided it must have tx.common.customChain and tx.common.customChain.chainId"),this.code=YwA}}class bmA extends Ze{constructor(A){super(JSON.stringify(A),"Chain Id doesnt match in tx.chainId tx.common.customChain.chainId"),this.code=JwA}}class SmA extends Ze{constructor(A){super(JSON.stringify(A),"Chain doesnt match in tx.chain tx.common.basechain"),this.code=hDA}}class NmA extends Ze{constructor(A){super(JSON.stringify(A),"hardfork doesnt match in tx.hardfork tx.common.hardfork"),this.code=cDA}}class kmA extends Ze{constructor(){super("CommonOrChainAndHardforkError","Please provide the common object or the chain and hardfork property but not all together."),this.code=TwA}}class RmA extends Ze{constructor(A){var t,i;super("MissingChainOrHardforkError",`When specifying chain and hardfork, both values must be defined. Received "chain": ${(t=A.chain)!==null&&t!==void 0?t:"undefined"}, "hardfork": ${(i=A.hardfork)!==null&&i!==void 0?i:"undefined"}`),this.code=PwA}}class KmA extends ke{constructor(){super('Missing properties in transaction, either define "gas" and "gasPrice" for type 0 transactions or "gas", "maxPriorityFeePerGas" and "maxFeePerGas" for type 2 transactions'),this.code=BDA}}class GmA extends Ze{constructor(A){var t,i,o,r;super(`gas: ${(t=A.gas)!==null&&t!==void 0?t:"undefined"}, gasPrice: ${(i=A.gasPrice)!==null&&i!==void 0?i:"undefined"}, maxPriorityFeePerGas: ${(o=A.maxPriorityFeePerGas)!==null&&o!==void 0?o:"undefined"}, maxFeePerGas: ${(r=A.maxFeePerGas)!==null&&r!==void 0?r:"undefined"}`,'"gas" is missing'),this.code=OwA,this.cause=new KmA}}class FmA extends ke{constructor(){super('Missing properties in transaction, either define "gas" and "gasPrice" for type 0 transactions or "gas", "maxPriorityFeePerGas" and "maxFeePerGas" for type 2 transactions, not both'),this.code=dDA}}class xmA extends Ze{constructor(A){var t,i,o,r;super(`gas: ${(t=A.gas)!==null&&t!==void 0?t:"undefined"}, gasPrice: ${(i=A.gasPrice)!==null&&i!==void 0?i:"undefined"}, maxPriorityFeePerGas: ${(o=A.maxPriorityFeePerGas)!==null&&o!==void 0?o:"undefined"}, maxFeePerGas: ${(r=A.maxFeePerGas)!==null&&r!==void 0?r:"undefined"}`,"transaction must specify legacy or fee market gas properties, not both"),this.code=fDA,this.cause=new FmA}}class LmA extends Ze{constructor(A){var t,i;super(`gas: ${(t=A.gas)!==null&&t!==void 0?t:"undefined"}, gasPrice: ${(i=A.gasPrice)!==null&&i!==void 0?i:"undefined"}`,"Gas or gasPrice is lower than 0"),this.code=jwA}}class UmA extends Ze{constructor(A){var t,i;super(`maxPriorityFeePerGas: ${(t=A.maxPriorityFeePerGas)!==null&&t!==void 0?t:"undefined"}, maxFeePerGas: ${(i=A.maxFeePerGas)!==null&&i!==void 0?i:"undefined"}`,"maxPriorityFeePerGas or maxFeePerGas is lower than 0"),this.code=WwA}}class _mA extends Ze{constructor(A){super(A,"eip-1559 transactions don't support gasPrice"),this.code=VwA}}class Uj extends Ze{constructor(A){var t,i;super(`maxPriorityFeePerGas: ${(t=A.maxPriorityFeePerGas)!==null&&t!==void 0?t:"undefined"}, maxFeePerGas: ${(i=A.maxFeePerGas)!==null&&i!==void 0?i:"undefined"}`,"pre-eip-1559 transaction don't support maxFeePerGas/maxPriorityFeePerGas"),this.code=ZwA}}class qmA extends Ze{constructor(A){super(A,"invalid transaction object"),this.code=zwA}}class HmA extends Ze{constructor(A){var t,i;super(`nonce: ${(t=A.nonce)!==null&&t!==void 0?t:"undefined"}, chainId: ${(i=A.chainId)!==null&&i!==void 0?i:"undefined"}`,"Nonce or chainId is lower than 0"),this.code=$wA}}class YmA extends Ze{constructor(){super("UnableToPopulateNonceError","unable to populate nonce, no from address available"),this.code=XwA}}class JmA extends Ze{constructor(){super("Eip1559NotSupportedError","Network doesn't support eip-1559"),this.code=ADA}}class $U extends Ze{constructor(A){super(A,"unsupported transaction type"),this.code=eDA}}class _j extends Ze{constructor(A){var t,i;super(`data: ${(t=A.data)!==null&&t!==void 0?t:"undefined"}, input: ${(i=A.input)!==null&&i!==void 0?i:"undefined"}`,`You can't have "data" and "input" as properties of transactions at the same time, please use either "data" or "input" instead.`),this.code=tDA}}class TmA extends ke{constructor(A){super(`The connected Ethereum Node did not respond within ${A.numberOfSeconds} seconds, please make sure your transaction was properly sent and you are connected to a healthy Node. Be aware that transaction might still be pending or mined! + Transaction Hash: ${A.transactionHash?A.transactionHash.toString():"not available"}`),this.code=aDA}}function qj(e){return`Please make sure your transaction was properly sent and there are no previous pending transaction for the same account. However, be aware that it might still be mined! + Transaction Hash: ${e?e.toString():"not available"}`}class Hj extends ke{constructor(A){super(`Transaction was not mined within ${A.numberOfSeconds} seconds. ${qj(A.transactionHash)}`),this.code=iDA}}class Yj extends ke{constructor(A){super(`Transaction started at ${A.starterBlockNumber} but was not mined within ${A.numberOfBlocks} blocks. ${qj(A.transactionHash)}`),this.code=gDA}}class PmA extends Ze{constructor(A){var t,i;super(`receipt: ${JSON.stringify(A.receipt)}, blockHash: ${(t=A.blockHash)===null||t===void 0?void 0:t.toString()}, transactionHash: ${(i=A.transactionHash)===null||i===void 0?void 0:i.toString()}`,"Receipt missing or blockHash null"),this.code=rDA}}class OmA extends Ze{constructor(A){super(`receipt: ${JSON.stringify(A.receipt)}`,"Receipt missing block number"),this.code=nDA}}class AN extends ke{constructor(A){super(`Invalid signature. "${A}"`),this.code=IDA}}class XU extends Ze{constructor(){super("LocalWalletNotAvailableError","Attempted to index account in local wallet, but no wallet is available"),this.code=oDA}}class jmA extends ke{constructor(A,t){const i=[];A.forEach(o=>i.push(o.keyword)),super(`The following properties are invalid for the transaction type ${t}: ${i.join(", ")}`),this.code=CDA}}class Dc extends Ze{constructor(A){super(A,"can not parse as byte data"),this.code=ODA}}class zR extends Ze{constructor(A){super(A,"can not parse as number data"),this.code=jDA}}class $R extends Ze{constructor(A){super(A,"invalid ethereum address"),this.code=VDA}}class WmA extends Ze{constructor(A){super(A,"not a valid string"),this.code=PDA}}class Jj extends Ze{constructor(A){super(A,"invalid unit"),this.code=WDA}}class Tj extends Ze{constructor(A){super(A,"not a valid unit. Must be a positive integer"),this.code=imA}}class VmA extends Ze{constructor(A){super(A,"can not be converted to hex"),this.code=ZDA}}class Pj extends Ze{constructor(A){super(A,"value greater than the nibble width"),this.code=tmA}}class XR extends Ze{constructor(A){super(A,"not a valid boolean."),this.code=zDA}}class ZmA extends Ze{constructor(A){super(A,"not a valid unsigned integer."),this.code=$DA}}class A_ extends Ze{constructor(A){super(A,"invalid size given."),this.code=XDA}}class e_ extends Ze{constructor(A){super(A,"value is larger than size."),this.code=AmA}}class zmA extends Ze{constructor(A){super(A,"invalid string given"),this.code=emA}}const $mA=e=>!Array.isArray(e)&&e.jsonrpc==="2.0"&&!!e&&(e.result===void 0||e.result===null)&&"error"in e&&(typeof e.id=="number"||typeof e.id=="string"),t_=e=>$mA(e)?e.error.message:"";class Cs extends ke{constructor(A,t,i,o){var r;super(t??`Returned error: ${Array.isArray(A)?A.map(h=>t_(h)).join(","):t_(A)}`),this.code=ywA,t||(this.data=Array.isArray(A)?A.map(h=>{var d;return(d=h.error)===null||d===void 0?void 0:d.data}):(r=A==null?void 0:A.error)===null||r===void 0?void 0:r.data),this.statusCode=o,this.request=i;let f;"error"in A?f=A.error:A instanceof Array&&(f=A.filter(h=>h.error).map(h=>h.error)),Array.isArray(f)&&f.length>0?this.cause=new F0(f):this.cause=f}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{data:this.data,request:this.request,statusCode:this.statusCode})}}class AD extends Cs{constructor(A,t){super(A,void 0,t),this.code=wwA;let i;"error"in A?i=A.error:A instanceof Array&&(i=A.map(o=>o.error)),Array.isArray(i)?this.cause=new F0(i):this.cause=i}}class i_ extends ke{constructor(A,t){super(`Web3Config hardfork doesnt match in defaultHardfork ${A} and common.hardfork ${t}`),this.code=Kj}}class r_ extends ke{constructor(A,t){super(`Web3Config chain doesnt match in defaultHardfork ${A} and common.hardfork ${t}`),this.code=Kj}}const Oj="An Rpc error has occured with a code of *code*",lr={[up]:{message:"Parse error",description:"Invalid JSON"},[lp]:{message:"Invalid request",description:"JSON is not a valid request object "},[Cp]:{message:"Method not found",description:"Method does not exist "},[Bp]:{message:"Invalid params",description:"Invalid method parameters"},[dp]:{message:"Internal error",description:"Internal JSON-RPC error"},[Ep]:{message:"Invalid input",description:"Missing or invalid parameters"},[Qp]:{message:"Resource not found",description:"Requested resource not found"},[pp]:{message:"Resource unavailable",description:"Requested resource not available"},[yp]:{message:"Transaction rejected",description:"Transaction creation failed"},[wp]:{message:"Method not supported",description:"Method is not implemented"},[Dp]:{message:"Limit exceeded",description:"Request exceeds defined limit"},[mp]:{message:"JSON-RPC version not supported",description:"Version of JSON-RPC protocol is not supported"},[UDA]:{name:"User Rejected Request",message:"The user rejected the request."},[_DA]:{name:"Unauthorized",message:"The requested method and/or account has not been authorized by the user."},[qDA]:{name:"Unsupported Method",message:"The Provider does not support the requested method."},[HDA]:{name:"Disconnected",message:"The Provider is disconnected from all chains."},[YDA]:{name:"Chain Disconnected",message:"The Provider is not connected to the requested chain."},"0-999":{name:"",message:"Not used."},1e3:{name:"Normal Closure",message:"The connection successfully completed the purpose for which it was created."},1001:{name:"Going Away",message:"The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection."},1002:{name:"Protocol error",message:"The endpoint is terminating the connection due to a protocol error."},1003:{name:"Unsupported Data",message:"The connection is being terminated because the endpoint received data of a type it cannot accept. (For example, a text-only endpoint received binary data.)"},1004:{name:"Reserved",message:"Reserved. A meaning might be defined in the future."},1005:{name:"No Status Rcvd",message:"Reserved. Indicates that no status code was provided even though one was expected."},1006:{name:"Abnormal Closure",message:"Reserved. Indicates that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected."},1007:{name:"Invalid frame payload data",message:"The endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., non-UTF-8 data within a text message)."},1008:{name:"Policy Violation",message:"The endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable."},1009:{name:"Message Too Big",message:"The endpoint is terminating the connection because a data frame was received that is too large."},1010:{name:"Mandatory Ext.",message:"The client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't."},1011:{name:"Internal Error",message:"The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request."},1012:{name:"Service Restart",message:"The server is terminating the connection because it is restarting."},1013:{name:"Try Again Later",message:"The server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients."},1014:{name:"Bad Gateway",message:"The server was acting as a gateway or proxy and received an invalid response from the upstream server. This is similar to 502 HTTP Status Code."},1015:{name:"TLS handshake",message:"Reserved. Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified)."},"1016-2999":{name:"",message:"For definition by future revisions of the WebSocket Protocol specification, and for definition by extension specifications."},"3000-3999":{name:"",message:"For use by libraries, frameworks, and applications. These status codes are registered directly with IANA. The interpretation of these codes is undefined by the WebSocket protocol."},"4000-4999":{name:"",message:"For private use, and thus can't be registered. Such codes can be used by prior agreements between WebSocket applications. The interpretation of these codes is undefined by the WebSocket protocol."}};class Gn extends ke{constructor(A,t){super(t??Oj.replace("*code*",A.error.code.toString())),this.code=A.error.code,this.id=A.id,this.jsonrpc=A.jsonrpc,this.jsonRpcError=A.error}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{error:this.jsonRpcError,id:this.id,jsonRpc:this.jsonrpc})}}class XmA extends ke{constructor(A,t){var i,o,r,f;if(!A)super();else if(!((i=lr[A])===null||i===void 0)&&i.message)super(lr[A].message);else{const h=Object.keys(lr).find(d=>typeof d=="string"&&A>=parseInt(d.split("-")[0],10)&&A<=parseInt(d.split("-")[1],10));super((r=(o=lr[h??""])===null||o===void 0?void 0:o.message)!==null&&r!==void 0?r:Oj.replace("*code*",(f=A==null?void 0:A.toString())!==null&&f!==void 0?f:'""'))}this.code=A,this.data=t}}class AvA extends Gn{constructor(A){super(A,lr[up].message),this.code=up}}class evA extends Gn{constructor(A){super(A,lr[lp].message),this.code=lp}}class tvA extends Gn{constructor(A){super(A,lr[Cp].message),this.code=Cp}}class ivA extends Gn{constructor(A){super(A,lr[Bp].message),this.code=Bp}}class rvA extends Gn{constructor(A){super(A,lr[dp].message),this.code=dp}}class nvA extends Gn{constructor(A){super(A,lr[Ep].message),this.code=Ep}}class ovA extends Gn{constructor(A){super(A,lr[wp].message),this.code=wp}}class svA extends Gn{constructor(A){super(A,lr[pp].message),this.code=pp}}class avA extends Gn{constructor(A){super(A,lr[Qp].message),this.code=Qp}}class gvA extends Gn{constructor(A){super(A,lr[mp].message),this.code=mp}}class IvA extends Gn{constructor(A){super(A,lr[yp].message),this.code=yp}}class fvA extends Gn{constructor(A){super(A,lr[Dp].message),this.code=Dp}}const Sr=new Map;Sr.set(up,{error:AvA});Sr.set(lp,{error:evA});Sr.set(Cp,{error:tvA});Sr.set(Bp,{error:ivA});Sr.set(dp,{error:rvA});Sr.set(Ep,{error:nvA});Sr.set(wp,{error:ovA});Sr.set(pp,{error:svA});Sr.set(yp,{error:IvA});Sr.set(Qp,{error:avA});Sr.set(mp,{error:gvA});Sr.set(Dp,{error:fvA});class hvA extends ke{constructor(A){super(`Format for the type ${A} is unsupported`),this.type=A,this.code=nmA}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{type:this.type})}}var ft;(function(e){e.assertEqual=o=>o;function A(o){}e.assertIs=A;function t(o){throw new Error}e.assertNever=t,e.arrayToEnum=o=>{const r={};for(const f of o)r[f]=f;return r},e.getValidEnumValues=o=>{const r=e.objectKeys(o).filter(h=>typeof o[o[h]]!="number"),f={};for(const h of r)f[h]=o[h];return e.objectValues(f)},e.objectValues=o=>e.objectKeys(o).map(function(r){return o[r]}),e.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{const r=[];for(const f in o)Object.prototype.hasOwnProperty.call(o,f)&&r.push(f);return r},e.find=(o,r)=>{for(const f of o)if(r(f))return f},e.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&isFinite(o)&&Math.floor(o)===o;function i(o,r=" | "){return o.map(f=>typeof f=="string"?`'${f}'`:f).join(r)}e.joinValues=i,e.jsonStringifyReplacer=(o,r)=>typeof r=="bigint"?r.toString():r})(ft||(ft={}));var eN;(function(e){e.mergeShapes=(A,t)=>({...A,...t})})(eN||(eN={}));const le=ft.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),bg=e=>{switch(typeof e){case"undefined":return le.undefined;case"string":return le.string;case"number":return isNaN(e)?le.nan:le.number;case"boolean":return le.boolean;case"function":return le.function;case"bigint":return le.bigint;case"symbol":return le.symbol;case"object":return Array.isArray(e)?le.array:e===null?le.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?le.promise:typeof Map<"u"&&e instanceof Map?le.map:typeof Set<"u"&&e instanceof Set?le.set:typeof Date<"u"&&e instanceof Date?le.date:le.object;default:return le.unknown}},te=ft.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),cvA=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:");class yn extends Error{constructor(A){super(),this.issues=[],this.addIssue=i=>{this.issues=[...this.issues,i]},this.addIssues=(i=[])=>{this.issues=[...this.issues,...i]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=A}get errors(){return this.issues}format(A){const t=A||function(r){return r.message},i={_errors:[]},o=r=>{for(const f of r.issues)if(f.code==="invalid_union")f.unionErrors.map(o);else if(f.code==="invalid_return_type")o(f.returnTypeError);else if(f.code==="invalid_arguments")o(f.argumentsError);else if(f.path.length===0)i._errors.push(t(f));else{let h=i,d=0;for(;dt.message){const t={},i=[];for(const o of this.issues)o.path.length>0?(t[o.path[0]]=t[o.path[0]]||[],t[o.path[0]].push(A(o))):i.push(A(o));return{formErrors:i,fieldErrors:t}}get formErrors(){return this.flatten()}}yn.create=e=>new yn(e);const hu=(e,A)=>{let t;switch(e.code){case te.invalid_type:e.received===le.undefined?t="Required":t=`Expected ${e.expected}, received ${e.received}`;break;case te.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(e.expected,ft.jsonStringifyReplacer)}`;break;case te.unrecognized_keys:t=`Unrecognized key(s) in object: ${ft.joinValues(e.keys,", ")}`;break;case te.invalid_union:t="Invalid input";break;case te.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${ft.joinValues(e.options)}`;break;case te.invalid_enum_value:t=`Invalid enum value. Expected ${ft.joinValues(e.options)}, received '${e.received}'`;break;case te.invalid_arguments:t="Invalid function arguments";break;case te.invalid_return_type:t="Invalid function return type";break;case te.invalid_date:t="Invalid date";break;case te.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(t=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?t=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?t=`Invalid input: must end with "${e.validation.endsWith}"`:ft.assertNever(e.validation):e.validation!=="regex"?t=`Invalid ${e.validation}`:t="Invalid";break;case te.too_small:e.type==="array"?t=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?t=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?t=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?t=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:t="Invalid input";break;case te.too_big:e.type==="array"?t=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?t=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?t=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?t=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?t=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:t="Invalid input";break;case te.custom:t="Invalid input";break;case te.invalid_intersection_types:t="Intersection results could not be merged";break;case te.not_multiple_of:t=`Number must be a multiple of ${e.multipleOf}`;break;case te.not_finite:t="Number must be finite";break;default:t=A.defaultError,ft.assertNever(e)}return{message:t}};let jj=hu;function uvA(e){jj=e}function Mp(){return jj}const bp=e=>{const{data:A,path:t,errorMaps:i,issueData:o}=e,r=[...t,...o.path||[]],f={...o,path:r};if(o.message!==void 0)return{...o,path:r,message:o.message};let h="";const d=i.filter(p=>!!p).slice().reverse();for(const p of d)h=p(f,{data:A,defaultError:h}).message;return{...o,path:r,message:h}},lvA=[];function ce(e,A){const t=Mp(),i=bp({issueData:A,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,t,t===hu?void 0:hu].filter(o=>!!o)});e.common.issues.push(i)}class Er{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(A,t){const i=[];for(const o of t){if(o.status==="aborted")return Ne;o.status==="dirty"&&A.dirty(),i.push(o.value)}return{status:A.value,value:i}}static async mergeObjectAsync(A,t){const i=[];for(const o of t){const r=await o.key,f=await o.value;i.push({key:r,value:f})}return Er.mergeObjectSync(A,i)}static mergeObjectSync(A,t){const i={};for(const o of t){const{key:r,value:f}=o;if(r.status==="aborted"||f.status==="aborted")return Ne;r.status==="dirty"&&A.dirty(),f.status==="dirty"&&A.dirty(),r.value!=="__proto__"&&(typeof f.value<"u"||o.alwaysSet)&&(i[r.value]=f.value)}return{status:A.value,value:i}}}const Ne=Object.freeze({status:"aborted"}),tc=e=>({status:"dirty",value:e}),Nr=e=>({status:"valid",value:e}),tN=e=>e.status==="aborted",iN=e=>e.status==="dirty",EC=e=>e.status==="valid",QC=e=>typeof Promise<"u"&&e instanceof Promise;function Sp(e,A,t,i){if(typeof A=="function"?e!==A||!i:!A.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return A.get(e)}function Wj(e,A,t,i,o){if(typeof A=="function"?e!==A||!o:!A.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return A.set(e,t),t}var ve;(function(e){e.errToObj=A=>typeof A=="string"?{message:A}:A||{},e.toString=A=>typeof A=="string"?A:A==null?void 0:A.message})(ve||(ve={}));var f0,h0;class Ys{constructor(A,t,i,o){this._cachedPath=[],this.parent=A,this.data=t,this._path=i,this._key=o}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const n_=(e,A)=>{if(EC(A))return{success:!0,data:A.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new yn(e.common.issues);return this._error=t,this._error}}};function He(e){if(!e)return{};const{errorMap:A,invalid_type_error:t,required_error:i,description:o}=e;if(A&&(t||i))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return A?{errorMap:A,description:o}:{errorMap:(f,h)=>{var d,p;const{message:C}=e;return f.code==="invalid_enum_value"?{message:C??h.defaultError}:typeof h.data>"u"?{message:(d=C??i)!==null&&d!==void 0?d:h.defaultError}:f.code!=="invalid_type"?{message:h.defaultError}:{message:(p=C??t)!==null&&p!==void 0?p:h.defaultError}},description:o}}class We{constructor(A){this.spa=this.safeParseAsync,this._def=A,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(A){return bg(A.data)}_getOrReturnCtx(A,t){return t||{common:A.parent.common,data:A.data,parsedType:bg(A.data),schemaErrorMap:this._def.errorMap,path:A.path,parent:A.parent}}_processInputParams(A){return{status:new Er,ctx:{common:A.parent.common,data:A.data,parsedType:bg(A.data),schemaErrorMap:this._def.errorMap,path:A.path,parent:A.parent}}}_parseSync(A){const t=this._parse(A);if(QC(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(A){const t=this._parse(A);return Promise.resolve(t)}parse(A,t){const i=this.safeParse(A,t);if(i.success)return i.data;throw i.error}safeParse(A,t){var i;const o={common:{issues:[],async:(i=t==null?void 0:t.async)!==null&&i!==void 0?i:!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:A,parsedType:bg(A)},r=this._parseSync({data:A,path:o.path,parent:o});return n_(o,r)}async parseAsync(A,t){const i=await this.safeParseAsync(A,t);if(i.success)return i.data;throw i.error}async safeParseAsync(A,t){const i={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:A,parsedType:bg(A)},o=this._parse({data:A,path:i.path,parent:i}),r=await(QC(o)?o:Promise.resolve(o));return n_(i,r)}refine(A,t){const i=o=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(o):t;return this._refinement((o,r)=>{const f=A(o),h=()=>r.addIssue({code:te.custom,...i(o)});return typeof Promise<"u"&&f instanceof Promise?f.then(d=>d?!0:(h(),!1)):f?!0:(h(),!1)})}refinement(A,t){return this._refinement((i,o)=>A(i)?!0:(o.addIssue(typeof t=="function"?t(i,o):t),!1))}_refinement(A){return new Wo({schema:this,typeName:be.ZodEffects,effect:{type:"refinement",refinement:A}})}superRefine(A){return this._refinement(A)}optional(){return Ss.create(this,this._def)}nullable(){return tI.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Jo.create(this,this._def)}promise(){return uu.create(this,this._def)}or(A){return DC.create([this,A],this._def)}and(A){return mC.create(this,A,this._def)}transform(A){return new Wo({...He(this._def),schema:this,typeName:be.ZodEffects,effect:{type:"transform",transform:A}})}default(A){const t=typeof A=="function"?A:()=>A;return new NC({...He(this._def),innerType:this,defaultValue:t,typeName:be.ZodDefault})}brand(){return new AK({typeName:be.ZodBranded,type:this,...He(this._def)})}catch(A){const t=typeof A=="function"?A:()=>A;return new kC({...He(this._def),innerType:this,catchValue:t,typeName:be.ZodCatch})}describe(A){const t=this.constructor;return new t({...this._def,description:A})}pipe(A){return NB.create(this,A)}readonly(){return RC.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const CvA=/^c[^\s-]{8,}$/i,BvA=/^[0-9a-z]+$/,dvA=/^[0-9A-HJKMNP-TV-Z]{26}$/,EvA=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,QvA=/^[a-z0-9_-]{21}$/i,pvA=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,yvA=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,wvA="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let XM;const DvA=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,mvA=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,vvA=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vj="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",MvA=new RegExp(`^${Vj}$`);function Zj(e){let A="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?A=`${A}\\.\\d{${e.precision}}`:e.precision==null&&(A=`${A}(\\.\\d+)?`),A}function bvA(e){return new RegExp(`^${Zj(e)}$`)}function zj(e){let A=`${Vj}T${Zj(e)}`;const t=[];return t.push(e.local?"Z?":"Z"),e.offset&&t.push("([+-]\\d{2}:?\\d{2})"),A=`${A}(${t.join("|")})`,new RegExp(`^${A}$`)}function SvA(e,A){return!!((A==="v4"||!A)&&DvA.test(e)||(A==="v6"||!A)&&mvA.test(e))}class _o extends We{_parse(A){if(this._def.coerce&&(A.data=String(A.data)),this._getType(A)!==le.string){const r=this._getOrReturnCtx(A);return ce(r,{code:te.invalid_type,expected:le.string,received:r.parsedType}),Ne}const i=new Er;let o;for(const r of this._def.checks)if(r.kind==="min")A.data.lengthr.value&&(o=this._getOrReturnCtx(A,o),ce(o,{code:te.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),i.dirty());else if(r.kind==="length"){const f=A.data.length>r.value,h=A.data.lengthA.test(o),{validation:t,code:te.invalid_string,...ve.errToObj(i)})}_addCheck(A){return new _o({...this._def,checks:[...this._def.checks,A]})}email(A){return this._addCheck({kind:"email",...ve.errToObj(A)})}url(A){return this._addCheck({kind:"url",...ve.errToObj(A)})}emoji(A){return this._addCheck({kind:"emoji",...ve.errToObj(A)})}uuid(A){return this._addCheck({kind:"uuid",...ve.errToObj(A)})}nanoid(A){return this._addCheck({kind:"nanoid",...ve.errToObj(A)})}cuid(A){return this._addCheck({kind:"cuid",...ve.errToObj(A)})}cuid2(A){return this._addCheck({kind:"cuid2",...ve.errToObj(A)})}ulid(A){return this._addCheck({kind:"ulid",...ve.errToObj(A)})}base64(A){return this._addCheck({kind:"base64",...ve.errToObj(A)})}ip(A){return this._addCheck({kind:"ip",...ve.errToObj(A)})}datetime(A){var t,i;return typeof A=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:A}):this._addCheck({kind:"datetime",precision:typeof(A==null?void 0:A.precision)>"u"?null:A==null?void 0:A.precision,offset:(t=A==null?void 0:A.offset)!==null&&t!==void 0?t:!1,local:(i=A==null?void 0:A.local)!==null&&i!==void 0?i:!1,...ve.errToObj(A==null?void 0:A.message)})}date(A){return this._addCheck({kind:"date",message:A})}time(A){return typeof A=="string"?this._addCheck({kind:"time",precision:null,message:A}):this._addCheck({kind:"time",precision:typeof(A==null?void 0:A.precision)>"u"?null:A==null?void 0:A.precision,...ve.errToObj(A==null?void 0:A.message)})}duration(A){return this._addCheck({kind:"duration",...ve.errToObj(A)})}regex(A,t){return this._addCheck({kind:"regex",regex:A,...ve.errToObj(t)})}includes(A,t){return this._addCheck({kind:"includes",value:A,position:t==null?void 0:t.position,...ve.errToObj(t==null?void 0:t.message)})}startsWith(A,t){return this._addCheck({kind:"startsWith",value:A,...ve.errToObj(t)})}endsWith(A,t){return this._addCheck({kind:"endsWith",value:A,...ve.errToObj(t)})}min(A,t){return this._addCheck({kind:"min",value:A,...ve.errToObj(t)})}max(A,t){return this._addCheck({kind:"max",value:A,...ve.errToObj(t)})}length(A,t){return this._addCheck({kind:"length",value:A,...ve.errToObj(t)})}nonempty(A){return this.min(1,ve.errToObj(A))}trim(){return new _o({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new _o({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new _o({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(A=>A.kind==="datetime")}get isDate(){return!!this._def.checks.find(A=>A.kind==="date")}get isTime(){return!!this._def.checks.find(A=>A.kind==="time")}get isDuration(){return!!this._def.checks.find(A=>A.kind==="duration")}get isEmail(){return!!this._def.checks.find(A=>A.kind==="email")}get isURL(){return!!this._def.checks.find(A=>A.kind==="url")}get isEmoji(){return!!this._def.checks.find(A=>A.kind==="emoji")}get isUUID(){return!!this._def.checks.find(A=>A.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(A=>A.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(A=>A.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(A=>A.kind==="cuid2")}get isULID(){return!!this._def.checks.find(A=>A.kind==="ulid")}get isIP(){return!!this._def.checks.find(A=>A.kind==="ip")}get isBase64(){return!!this._def.checks.find(A=>A.kind==="base64")}get minLength(){let A=null;for(const t of this._def.checks)t.kind==="min"&&(A===null||t.value>A)&&(A=t.value);return A}get maxLength(){let A=null;for(const t of this._def.checks)t.kind==="max"&&(A===null||t.value{var A;return new _o({checks:[],typeName:be.ZodString,coerce:(A=e==null?void 0:e.coerce)!==null&&A!==void 0?A:!1,...He(e)})};function NvA(e,A){const t=(e.toString().split(".")[1]||"").length,i=(A.toString().split(".")[1]||"").length,o=t>i?t:i,r=parseInt(e.toFixed(o).replace(".","")),f=parseInt(A.toFixed(o).replace(".",""));return r%f/Math.pow(10,o)}class Xg extends We{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(A){if(this._def.coerce&&(A.data=Number(A.data)),this._getType(A)!==le.number){const r=this._getOrReturnCtx(A);return ce(r,{code:te.invalid_type,expected:le.number,received:r.parsedType}),Ne}let i;const o=new Er;for(const r of this._def.checks)r.kind==="int"?ft.isInteger(A.data)||(i=this._getOrReturnCtx(A,i),ce(i,{code:te.invalid_type,expected:"integer",received:"float",message:r.message}),o.dirty()):r.kind==="min"?(r.inclusive?A.datar.value:A.data>=r.value)&&(i=this._getOrReturnCtx(A,i),ce(i,{code:te.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),o.dirty()):r.kind==="multipleOf"?NvA(A.data,r.value)!==0&&(i=this._getOrReturnCtx(A,i),ce(i,{code:te.not_multiple_of,multipleOf:r.value,message:r.message}),o.dirty()):r.kind==="finite"?Number.isFinite(A.data)||(i=this._getOrReturnCtx(A,i),ce(i,{code:te.not_finite,message:r.message}),o.dirty()):ft.assertNever(r);return{status:o.value,value:A.data}}gte(A,t){return this.setLimit("min",A,!0,ve.toString(t))}gt(A,t){return this.setLimit("min",A,!1,ve.toString(t))}lte(A,t){return this.setLimit("max",A,!0,ve.toString(t))}lt(A,t){return this.setLimit("max",A,!1,ve.toString(t))}setLimit(A,t,i,o){return new Xg({...this._def,checks:[...this._def.checks,{kind:A,value:t,inclusive:i,message:ve.toString(o)}]})}_addCheck(A){return new Xg({...this._def,checks:[...this._def.checks,A]})}int(A){return this._addCheck({kind:"int",message:ve.toString(A)})}positive(A){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ve.toString(A)})}negative(A){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ve.toString(A)})}nonpositive(A){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ve.toString(A)})}nonnegative(A){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ve.toString(A)})}multipleOf(A,t){return this._addCheck({kind:"multipleOf",value:A,message:ve.toString(t)})}finite(A){return this._addCheck({kind:"finite",message:ve.toString(A)})}safe(A){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ve.toString(A)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ve.toString(A)})}get minValue(){let A=null;for(const t of this._def.checks)t.kind==="min"&&(A===null||t.value>A)&&(A=t.value);return A}get maxValue(){let A=null;for(const t of this._def.checks)t.kind==="max"&&(A===null||t.valueA.kind==="int"||A.kind==="multipleOf"&&ft.isInteger(A.value))}get isFinite(){let A=null,t=null;for(const i of this._def.checks){if(i.kind==="finite"||i.kind==="int"||i.kind==="multipleOf")return!0;i.kind==="min"?(t===null||i.value>t)&&(t=i.value):i.kind==="max"&&(A===null||i.valuenew Xg({checks:[],typeName:be.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...He(e)});class AI extends We{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(A){if(this._def.coerce&&(A.data=BigInt(A.data)),this._getType(A)!==le.bigint){const r=this._getOrReturnCtx(A);return ce(r,{code:te.invalid_type,expected:le.bigint,received:r.parsedType}),Ne}let i;const o=new Er;for(const r of this._def.checks)r.kind==="min"?(r.inclusive?A.datar.value:A.data>=r.value)&&(i=this._getOrReturnCtx(A,i),ce(i,{code:te.too_big,type:"bigint",maximum:r.value,inclusive:r.inclusive,message:r.message}),o.dirty()):r.kind==="multipleOf"?A.data%r.value!==BigInt(0)&&(i=this._getOrReturnCtx(A,i),ce(i,{code:te.not_multiple_of,multipleOf:r.value,message:r.message}),o.dirty()):ft.assertNever(r);return{status:o.value,value:A.data}}gte(A,t){return this.setLimit("min",A,!0,ve.toString(t))}gt(A,t){return this.setLimit("min",A,!1,ve.toString(t))}lte(A,t){return this.setLimit("max",A,!0,ve.toString(t))}lt(A,t){return this.setLimit("max",A,!1,ve.toString(t))}setLimit(A,t,i,o){return new AI({...this._def,checks:[...this._def.checks,{kind:A,value:t,inclusive:i,message:ve.toString(o)}]})}_addCheck(A){return new AI({...this._def,checks:[...this._def.checks,A]})}positive(A){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ve.toString(A)})}negative(A){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ve.toString(A)})}nonpositive(A){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ve.toString(A)})}nonnegative(A){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ve.toString(A)})}multipleOf(A,t){return this._addCheck({kind:"multipleOf",value:A,message:ve.toString(t)})}get minValue(){let A=null;for(const t of this._def.checks)t.kind==="min"&&(A===null||t.value>A)&&(A=t.value);return A}get maxValue(){let A=null;for(const t of this._def.checks)t.kind==="max"&&(A===null||t.value{var A;return new AI({checks:[],typeName:be.ZodBigInt,coerce:(A=e==null?void 0:e.coerce)!==null&&A!==void 0?A:!1,...He(e)})};class pC extends We{_parse(A){if(this._def.coerce&&(A.data=!!A.data),this._getType(A)!==le.boolean){const i=this._getOrReturnCtx(A);return ce(i,{code:te.invalid_type,expected:le.boolean,received:i.parsedType}),Ne}return Nr(A.data)}}pC.create=e=>new pC({typeName:be.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...He(e)});class Ff extends We{_parse(A){if(this._def.coerce&&(A.data=new Date(A.data)),this._getType(A)!==le.date){const r=this._getOrReturnCtx(A);return ce(r,{code:te.invalid_type,expected:le.date,received:r.parsedType}),Ne}if(isNaN(A.data.getTime())){const r=this._getOrReturnCtx(A);return ce(r,{code:te.invalid_date}),Ne}const i=new Er;let o;for(const r of this._def.checks)r.kind==="min"?A.data.getTime()r.value&&(o=this._getOrReturnCtx(A,o),ce(o,{code:te.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),i.dirty()):ft.assertNever(r);return{status:i.value,value:new Date(A.data.getTime())}}_addCheck(A){return new Ff({...this._def,checks:[...this._def.checks,A]})}min(A,t){return this._addCheck({kind:"min",value:A.getTime(),message:ve.toString(t)})}max(A,t){return this._addCheck({kind:"max",value:A.getTime(),message:ve.toString(t)})}get minDate(){let A=null;for(const t of this._def.checks)t.kind==="min"&&(A===null||t.value>A)&&(A=t.value);return A!=null?new Date(A):null}get maxDate(){let A=null;for(const t of this._def.checks)t.kind==="max"&&(A===null||t.valuenew Ff({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:be.ZodDate,...He(e)});class Np extends We{_parse(A){if(this._getType(A)!==le.symbol){const i=this._getOrReturnCtx(A);return ce(i,{code:te.invalid_type,expected:le.symbol,received:i.parsedType}),Ne}return Nr(A.data)}}Np.create=e=>new Np({typeName:be.ZodSymbol,...He(e)});class yC extends We{_parse(A){if(this._getType(A)!==le.undefined){const i=this._getOrReturnCtx(A);return ce(i,{code:te.invalid_type,expected:le.undefined,received:i.parsedType}),Ne}return Nr(A.data)}}yC.create=e=>new yC({typeName:be.ZodUndefined,...He(e)});class wC extends We{_parse(A){if(this._getType(A)!==le.null){const i=this._getOrReturnCtx(A);return ce(i,{code:te.invalid_type,expected:le.null,received:i.parsedType}),Ne}return Nr(A.data)}}wC.create=e=>new wC({typeName:be.ZodNull,...He(e)});class cu extends We{constructor(){super(...arguments),this._any=!0}_parse(A){return Nr(A.data)}}cu.create=e=>new cu({typeName:be.ZodAny,...He(e)});class Cf extends We{constructor(){super(...arguments),this._unknown=!0}_parse(A){return Nr(A.data)}}Cf.create=e=>new Cf({typeName:be.ZodUnknown,...He(e)});class Ya extends We{_parse(A){const t=this._getOrReturnCtx(A);return ce(t,{code:te.invalid_type,expected:le.never,received:t.parsedType}),Ne}}Ya.create=e=>new Ya({typeName:be.ZodNever,...He(e)});class kp extends We{_parse(A){if(this._getType(A)!==le.undefined){const i=this._getOrReturnCtx(A);return ce(i,{code:te.invalid_type,expected:le.void,received:i.parsedType}),Ne}return Nr(A.data)}}kp.create=e=>new kp({typeName:be.ZodVoid,...He(e)});class Jo extends We{_parse(A){const{ctx:t,status:i}=this._processInputParams(A),o=this._def;if(t.parsedType!==le.array)return ce(t,{code:te.invalid_type,expected:le.array,received:t.parsedType}),Ne;if(o.exactLength!==null){const f=t.data.length>o.exactLength.value,h=t.data.lengtho.maxLength.value&&(ce(t,{code:te.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),i.dirty()),t.common.async)return Promise.all([...t.data].map((f,h)=>o.type._parseAsync(new Ys(t,f,t.path,h)))).then(f=>Er.mergeArray(i,f));const r=[...t.data].map((f,h)=>o.type._parseSync(new Ys(t,f,t.path,h)));return Er.mergeArray(i,r)}get element(){return this._def.type}min(A,t){return new Jo({...this._def,minLength:{value:A,message:ve.toString(t)}})}max(A,t){return new Jo({...this._def,maxLength:{value:A,message:ve.toString(t)}})}length(A,t){return new Jo({...this._def,exactLength:{value:A,message:ve.toString(t)}})}nonempty(A){return this.min(1,A)}}Jo.create=(e,A)=>new Jo({type:e,minLength:null,maxLength:null,exactLength:null,typeName:be.ZodArray,...He(A)});function kh(e){if(e instanceof Jt){const A={};for(const t in e.shape){const i=e.shape[t];A[t]=Ss.create(kh(i))}return new Jt({...e._def,shape:()=>A})}else return e instanceof Jo?new Jo({...e._def,type:kh(e.element)}):e instanceof Ss?Ss.create(kh(e.unwrap())):e instanceof tI?tI.create(kh(e.unwrap())):e instanceof Js?Js.create(e.items.map(A=>kh(A))):e}class Jt extends We{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const A=this._def.shape(),t=ft.objectKeys(A);return this._cached={shape:A,keys:t}}_parse(A){if(this._getType(A)!==le.object){const p=this._getOrReturnCtx(A);return ce(p,{code:te.invalid_type,expected:le.object,received:p.parsedType}),Ne}const{status:i,ctx:o}=this._processInputParams(A),{shape:r,keys:f}=this._getCached(),h=[];if(!(this._def.catchall instanceof Ya&&this._def.unknownKeys==="strip"))for(const p in o.data)f.includes(p)||h.push(p);const d=[];for(const p of f){const C=r[p],y=o.data[p];d.push({key:{status:"valid",value:p},value:C._parse(new Ys(o,y,o.path,p)),alwaysSet:p in o.data})}if(this._def.catchall instanceof Ya){const p=this._def.unknownKeys;if(p==="passthrough")for(const C of h)d.push({key:{status:"valid",value:C},value:{status:"valid",value:o.data[C]}});else if(p==="strict")h.length>0&&(ce(o,{code:te.unrecognized_keys,keys:h}),i.dirty());else if(p!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const p=this._def.catchall;for(const C of h){const y=o.data[C];d.push({key:{status:"valid",value:C},value:p._parse(new Ys(o,y,o.path,C)),alwaysSet:C in o.data})}}return o.common.async?Promise.resolve().then(async()=>{const p=[];for(const C of d){const y=await C.key,w=await C.value;p.push({key:y,value:w,alwaysSet:C.alwaysSet})}return p}).then(p=>Er.mergeObjectSync(i,p)):Er.mergeObjectSync(i,d)}get shape(){return this._def.shape()}strict(A){return ve.errToObj,new Jt({...this._def,unknownKeys:"strict",...A!==void 0?{errorMap:(t,i)=>{var o,r,f,h;const d=(f=(r=(o=this._def).errorMap)===null||r===void 0?void 0:r.call(o,t,i).message)!==null&&f!==void 0?f:i.defaultError;return t.code==="unrecognized_keys"?{message:(h=ve.errToObj(A).message)!==null&&h!==void 0?h:d}:{message:d}}}:{}})}strip(){return new Jt({...this._def,unknownKeys:"strip"})}passthrough(){return new Jt({...this._def,unknownKeys:"passthrough"})}extend(A){return new Jt({...this._def,shape:()=>({...this._def.shape(),...A})})}merge(A){return new Jt({unknownKeys:A._def.unknownKeys,catchall:A._def.catchall,shape:()=>({...this._def.shape(),...A._def.shape()}),typeName:be.ZodObject})}setKey(A,t){return this.augment({[A]:t})}catchall(A){return new Jt({...this._def,catchall:A})}pick(A){const t={};return ft.objectKeys(A).forEach(i=>{A[i]&&this.shape[i]&&(t[i]=this.shape[i])}),new Jt({...this._def,shape:()=>t})}omit(A){const t={};return ft.objectKeys(this.shape).forEach(i=>{A[i]||(t[i]=this.shape[i])}),new Jt({...this._def,shape:()=>t})}deepPartial(){return kh(this)}partial(A){const t={};return ft.objectKeys(this.shape).forEach(i=>{const o=this.shape[i];A&&!A[i]?t[i]=o:t[i]=o.optional()}),new Jt({...this._def,shape:()=>t})}required(A){const t={};return ft.objectKeys(this.shape).forEach(i=>{if(A&&!A[i])t[i]=this.shape[i];else{let r=this.shape[i];for(;r instanceof Ss;)r=r._def.innerType;t[i]=r}}),new Jt({...this._def,shape:()=>t})}keyof(){return $j(ft.objectKeys(this.shape))}}Jt.create=(e,A)=>new Jt({shape:()=>e,unknownKeys:"strip",catchall:Ya.create(),typeName:be.ZodObject,...He(A)});Jt.strictCreate=(e,A)=>new Jt({shape:()=>e,unknownKeys:"strict",catchall:Ya.create(),typeName:be.ZodObject,...He(A)});Jt.lazycreate=(e,A)=>new Jt({shape:e,unknownKeys:"strip",catchall:Ya.create(),typeName:be.ZodObject,...He(A)});class DC extends We{_parse(A){const{ctx:t}=this._processInputParams(A),i=this._def.options;function o(r){for(const h of r)if(h.result.status==="valid")return h.result;for(const h of r)if(h.result.status==="dirty")return t.common.issues.push(...h.ctx.common.issues),h.result;const f=r.map(h=>new yn(h.ctx.common.issues));return ce(t,{code:te.invalid_union,unionErrors:f}),Ne}if(t.common.async)return Promise.all(i.map(async r=>{const f={...t,common:{...t.common,issues:[]},parent:null};return{result:await r._parseAsync({data:t.data,path:t.path,parent:f}),ctx:f}})).then(o);{let r;const f=[];for(const d of i){const p={...t,common:{...t.common,issues:[]},parent:null},C=d._parseSync({data:t.data,path:t.path,parent:p});if(C.status==="valid")return C;C.status==="dirty"&&!r&&(r={result:C,ctx:p}),p.common.issues.length&&f.push(p.common.issues)}if(r)return t.common.issues.push(...r.ctx.common.issues),r.result;const h=f.map(d=>new yn(d));return ce(t,{code:te.invalid_union,unionErrors:h}),Ne}}get options(){return this._def.options}}DC.create=(e,A)=>new DC({options:e,typeName:be.ZodUnion,...He(A)});const aa=e=>e instanceof MC?aa(e.schema):e instanceof Wo?aa(e.innerType()):e instanceof bC?[e.value]:e instanceof eI?e.options:e instanceof SC?ft.objectValues(e.enum):e instanceof NC?aa(e._def.innerType):e instanceof yC?[void 0]:e instanceof wC?[null]:e instanceof Ss?[void 0,...aa(e.unwrap())]:e instanceof tI?[null,...aa(e.unwrap())]:e instanceof AK||e instanceof RC?aa(e.unwrap()):e instanceof kC?aa(e._def.innerType):[];class eD extends We{_parse(A){const{ctx:t}=this._processInputParams(A);if(t.parsedType!==le.object)return ce(t,{code:te.invalid_type,expected:le.object,received:t.parsedType}),Ne;const i=this.discriminator,o=t.data[i],r=this.optionsMap.get(o);return r?t.common.async?r._parseAsync({data:t.data,path:t.path,parent:t}):r._parseSync({data:t.data,path:t.path,parent:t}):(ce(t,{code:te.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[i]}),Ne)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(A,t,i){const o=new Map;for(const r of t){const f=aa(r.shape[A]);if(!f.length)throw new Error(`A discriminator value for key \`${A}\` could not be extracted from all schema options`);for(const h of f){if(o.has(h))throw new Error(`Discriminator property ${String(A)} has duplicate value ${String(h)}`);o.set(h,r)}}return new eD({typeName:be.ZodDiscriminatedUnion,discriminator:A,options:t,optionsMap:o,...He(i)})}}function rN(e,A){const t=bg(e),i=bg(A);if(e===A)return{valid:!0,data:e};if(t===le.object&&i===le.object){const o=ft.objectKeys(A),r=ft.objectKeys(e).filter(h=>o.indexOf(h)!==-1),f={...e,...A};for(const h of r){const d=rN(e[h],A[h]);if(!d.valid)return{valid:!1};f[h]=d.data}return{valid:!0,data:f}}else if(t===le.array&&i===le.array){if(e.length!==A.length)return{valid:!1};const o=[];for(let r=0;r{if(tN(r)||tN(f))return Ne;const h=rN(r.value,f.value);return h.valid?((iN(r)||iN(f))&&t.dirty(),{status:t.value,value:h.data}):(ce(i,{code:te.invalid_intersection_types}),Ne)};return i.common.async?Promise.all([this._def.left._parseAsync({data:i.data,path:i.path,parent:i}),this._def.right._parseAsync({data:i.data,path:i.path,parent:i})]).then(([r,f])=>o(r,f)):o(this._def.left._parseSync({data:i.data,path:i.path,parent:i}),this._def.right._parseSync({data:i.data,path:i.path,parent:i}))}}mC.create=(e,A,t)=>new mC({left:e,right:A,typeName:be.ZodIntersection,...He(t)});class Js extends We{_parse(A){const{status:t,ctx:i}=this._processInputParams(A);if(i.parsedType!==le.array)return ce(i,{code:te.invalid_type,expected:le.array,received:i.parsedType}),Ne;if(i.data.lengththis._def.items.length&&(ce(i,{code:te.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const r=[...i.data].map((f,h)=>{const d=this._def.items[h]||this._def.rest;return d?d._parse(new Ys(i,f,i.path,h)):null}).filter(f=>!!f);return i.common.async?Promise.all(r).then(f=>Er.mergeArray(t,f)):Er.mergeArray(t,r)}get items(){return this._def.items}rest(A){return new Js({...this._def,rest:A})}}Js.create=(e,A)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Js({items:e,typeName:be.ZodTuple,rest:null,...He(A)})};class vC extends We{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(A){const{status:t,ctx:i}=this._processInputParams(A);if(i.parsedType!==le.object)return ce(i,{code:te.invalid_type,expected:le.object,received:i.parsedType}),Ne;const o=[],r=this._def.keyType,f=this._def.valueType;for(const h in i.data)o.push({key:r._parse(new Ys(i,h,i.path,h)),value:f._parse(new Ys(i,i.data[h],i.path,h)),alwaysSet:h in i.data});return i.common.async?Er.mergeObjectAsync(t,o):Er.mergeObjectSync(t,o)}get element(){return this._def.valueType}static create(A,t,i){return t instanceof We?new vC({keyType:A,valueType:t,typeName:be.ZodRecord,...He(i)}):new vC({keyType:_o.create(),valueType:A,typeName:be.ZodRecord,...He(t)})}}class Rp extends We{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(A){const{status:t,ctx:i}=this._processInputParams(A);if(i.parsedType!==le.map)return ce(i,{code:te.invalid_type,expected:le.map,received:i.parsedType}),Ne;const o=this._def.keyType,r=this._def.valueType,f=[...i.data.entries()].map(([h,d],p)=>({key:o._parse(new Ys(i,h,i.path,[p,"key"])),value:r._parse(new Ys(i,d,i.path,[p,"value"]))}));if(i.common.async){const h=new Map;return Promise.resolve().then(async()=>{for(const d of f){const p=await d.key,C=await d.value;if(p.status==="aborted"||C.status==="aborted")return Ne;(p.status==="dirty"||C.status==="dirty")&&t.dirty(),h.set(p.value,C.value)}return{status:t.value,value:h}})}else{const h=new Map;for(const d of f){const p=d.key,C=d.value;if(p.status==="aborted"||C.status==="aborted")return Ne;(p.status==="dirty"||C.status==="dirty")&&t.dirty(),h.set(p.value,C.value)}return{status:t.value,value:h}}}}Rp.create=(e,A,t)=>new Rp({valueType:A,keyType:e,typeName:be.ZodMap,...He(t)});class xf extends We{_parse(A){const{status:t,ctx:i}=this._processInputParams(A);if(i.parsedType!==le.set)return ce(i,{code:te.invalid_type,expected:le.set,received:i.parsedType}),Ne;const o=this._def;o.minSize!==null&&i.data.sizeo.maxSize.value&&(ce(i,{code:te.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),t.dirty());const r=this._def.valueType;function f(d){const p=new Set;for(const C of d){if(C.status==="aborted")return Ne;C.status==="dirty"&&t.dirty(),p.add(C.value)}return{status:t.value,value:p}}const h=[...i.data.values()].map((d,p)=>r._parse(new Ys(i,d,i.path,p)));return i.common.async?Promise.all(h).then(d=>f(d)):f(h)}min(A,t){return new xf({...this._def,minSize:{value:A,message:ve.toString(t)}})}max(A,t){return new xf({...this._def,maxSize:{value:A,message:ve.toString(t)}})}size(A,t){return this.min(A,t).max(A,t)}nonempty(A){return this.min(1,A)}}xf.create=(e,A)=>new xf({valueType:e,minSize:null,maxSize:null,typeName:be.ZodSet,...He(A)});class mc extends We{constructor(){super(...arguments),this.validate=this.implement}_parse(A){const{ctx:t}=this._processInputParams(A);if(t.parsedType!==le.function)return ce(t,{code:te.invalid_type,expected:le.function,received:t.parsedType}),Ne;function i(h,d){return bp({data:h,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Mp(),hu].filter(p=>!!p),issueData:{code:te.invalid_arguments,argumentsError:d}})}function o(h,d){return bp({data:h,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Mp(),hu].filter(p=>!!p),issueData:{code:te.invalid_return_type,returnTypeError:d}})}const r={errorMap:t.common.contextualErrorMap},f=t.data;if(this._def.returns instanceof uu){const h=this;return Nr(async function(...d){const p=new yn([]),C=await h._def.args.parseAsync(d,r).catch(D=>{throw p.addIssue(i(d,D)),p}),y=await Reflect.apply(f,this,C);return await h._def.returns._def.type.parseAsync(y,r).catch(D=>{throw p.addIssue(o(y,D)),p})})}else{const h=this;return Nr(function(...d){const p=h._def.args.safeParse(d,r);if(!p.success)throw new yn([i(d,p.error)]);const C=Reflect.apply(f,this,p.data),y=h._def.returns.safeParse(C,r);if(!y.success)throw new yn([o(C,y.error)]);return y.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...A){return new mc({...this._def,args:Js.create(A).rest(Cf.create())})}returns(A){return new mc({...this._def,returns:A})}implement(A){return this.parse(A)}strictImplement(A){return this.parse(A)}static create(A,t,i){return new mc({args:A||Js.create([]).rest(Cf.create()),returns:t||Cf.create(),typeName:be.ZodFunction,...He(i)})}}class MC extends We{get schema(){return this._def.getter()}_parse(A){const{ctx:t}=this._processInputParams(A);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}MC.create=(e,A)=>new MC({getter:e,typeName:be.ZodLazy,...He(A)});class bC extends We{_parse(A){if(A.data!==this._def.value){const t=this._getOrReturnCtx(A);return ce(t,{received:t.data,code:te.invalid_literal,expected:this._def.value}),Ne}return{status:"valid",value:A.data}}get value(){return this._def.value}}bC.create=(e,A)=>new bC({value:e,typeName:be.ZodLiteral,...He(A)});function $j(e,A){return new eI({values:e,typeName:be.ZodEnum,...He(A)})}class eI extends We{constructor(){super(...arguments),f0.set(this,void 0)}_parse(A){if(typeof A.data!="string"){const t=this._getOrReturnCtx(A),i=this._def.values;return ce(t,{expected:ft.joinValues(i),received:t.parsedType,code:te.invalid_type}),Ne}if(Sp(this,f0)||Wj(this,f0,new Set(this._def.values)),!Sp(this,f0).has(A.data)){const t=this._getOrReturnCtx(A),i=this._def.values;return ce(t,{received:t.data,code:te.invalid_enum_value,options:i}),Ne}return Nr(A.data)}get options(){return this._def.values}get enum(){const A={};for(const t of this._def.values)A[t]=t;return A}get Values(){const A={};for(const t of this._def.values)A[t]=t;return A}get Enum(){const A={};for(const t of this._def.values)A[t]=t;return A}extract(A,t=this._def){return eI.create(A,{...this._def,...t})}exclude(A,t=this._def){return eI.create(this.options.filter(i=>!A.includes(i)),{...this._def,...t})}}f0=new WeakMap;eI.create=$j;class SC extends We{constructor(){super(...arguments),h0.set(this,void 0)}_parse(A){const t=ft.getValidEnumValues(this._def.values),i=this._getOrReturnCtx(A);if(i.parsedType!==le.string&&i.parsedType!==le.number){const o=ft.objectValues(t);return ce(i,{expected:ft.joinValues(o),received:i.parsedType,code:te.invalid_type}),Ne}if(Sp(this,h0)||Wj(this,h0,new Set(ft.getValidEnumValues(this._def.values))),!Sp(this,h0).has(A.data)){const o=ft.objectValues(t);return ce(i,{received:i.data,code:te.invalid_enum_value,options:o}),Ne}return Nr(A.data)}get enum(){return this._def.values}}h0=new WeakMap;SC.create=(e,A)=>new SC({values:e,typeName:be.ZodNativeEnum,...He(A)});class uu extends We{unwrap(){return this._def.type}_parse(A){const{ctx:t}=this._processInputParams(A);if(t.parsedType!==le.promise&&t.common.async===!1)return ce(t,{code:te.invalid_type,expected:le.promise,received:t.parsedType}),Ne;const i=t.parsedType===le.promise?t.data:Promise.resolve(t.data);return Nr(i.then(o=>this._def.type.parseAsync(o,{path:t.path,errorMap:t.common.contextualErrorMap})))}}uu.create=(e,A)=>new uu({type:e,typeName:be.ZodPromise,...He(A)});class Wo extends We{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===be.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(A){const{status:t,ctx:i}=this._processInputParams(A),o=this._def.effect||null,r={addIssue:f=>{ce(i,f),f.fatal?t.abort():t.dirty()},get path(){return i.path}};if(r.addIssue=r.addIssue.bind(r),o.type==="preprocess"){const f=o.transform(i.data,r);if(i.common.async)return Promise.resolve(f).then(async h=>{if(t.value==="aborted")return Ne;const d=await this._def.schema._parseAsync({data:h,path:i.path,parent:i});return d.status==="aborted"?Ne:d.status==="dirty"||t.value==="dirty"?tc(d.value):d});{if(t.value==="aborted")return Ne;const h=this._def.schema._parseSync({data:f,path:i.path,parent:i});return h.status==="aborted"?Ne:h.status==="dirty"||t.value==="dirty"?tc(h.value):h}}if(o.type==="refinement"){const f=h=>{const d=o.refinement(h,r);if(i.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return h};if(i.common.async===!1){const h=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});return h.status==="aborted"?Ne:(h.status==="dirty"&&t.dirty(),f(h.value),{status:t.value,value:h.value})}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then(h=>h.status==="aborted"?Ne:(h.status==="dirty"&&t.dirty(),f(h.value).then(()=>({status:t.value,value:h.value}))))}if(o.type==="transform")if(i.common.async===!1){const f=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});if(!EC(f))return f;const h=o.transform(f.value,r);if(h instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:h}}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then(f=>EC(f)?Promise.resolve(o.transform(f.value,r)).then(h=>({status:t.value,value:h})):f);ft.assertNever(o)}}Wo.create=(e,A,t)=>new Wo({schema:e,typeName:be.ZodEffects,effect:A,...He(t)});Wo.createWithPreprocess=(e,A,t)=>new Wo({schema:A,effect:{type:"preprocess",transform:e},typeName:be.ZodEffects,...He(t)});class Ss extends We{_parse(A){return this._getType(A)===le.undefined?Nr(void 0):this._def.innerType._parse(A)}unwrap(){return this._def.innerType}}Ss.create=(e,A)=>new Ss({innerType:e,typeName:be.ZodOptional,...He(A)});class tI extends We{_parse(A){return this._getType(A)===le.null?Nr(null):this._def.innerType._parse(A)}unwrap(){return this._def.innerType}}tI.create=(e,A)=>new tI({innerType:e,typeName:be.ZodNullable,...He(A)});class NC extends We{_parse(A){const{ctx:t}=this._processInputParams(A);let i=t.data;return t.parsedType===le.undefined&&(i=this._def.defaultValue()),this._def.innerType._parse({data:i,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}NC.create=(e,A)=>new NC({innerType:e,typeName:be.ZodDefault,defaultValue:typeof A.default=="function"?A.default:()=>A.default,...He(A)});class kC extends We{_parse(A){const{ctx:t}=this._processInputParams(A),i={...t,common:{...t.common,issues:[]}},o=this._def.innerType._parse({data:i.data,path:i.path,parent:{...i}});return QC(o)?o.then(r=>({status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new yn(i.common.issues)},input:i.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new yn(i.common.issues)},input:i.data})}}removeCatch(){return this._def.innerType}}kC.create=(e,A)=>new kC({innerType:e,typeName:be.ZodCatch,catchValue:typeof A.catch=="function"?A.catch:()=>A.catch,...He(A)});class Kp extends We{_parse(A){if(this._getType(A)!==le.nan){const i=this._getOrReturnCtx(A);return ce(i,{code:te.invalid_type,expected:le.nan,received:i.parsedType}),Ne}return{status:"valid",value:A.data}}}Kp.create=e=>new Kp({typeName:be.ZodNaN,...He(e)});const kvA=Symbol("zod_brand");class AK extends We{_parse(A){const{ctx:t}=this._processInputParams(A),i=t.data;return this._def.type._parse({data:i,path:t.path,parent:t})}unwrap(){return this._def.type}}class NB extends We{_parse(A){const{status:t,ctx:i}=this._processInputParams(A);if(i.common.async)return(async()=>{const r=await this._def.in._parseAsync({data:i.data,path:i.path,parent:i});return r.status==="aborted"?Ne:r.status==="dirty"?(t.dirty(),tc(r.value)):this._def.out._parseAsync({data:r.value,path:i.path,parent:i})})();{const o=this._def.in._parseSync({data:i.data,path:i.path,parent:i});return o.status==="aborted"?Ne:o.status==="dirty"?(t.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:i.path,parent:i})}}static create(A,t){return new NB({in:A,out:t,typeName:be.ZodPipeline})}}class RC extends We{_parse(A){const t=this._def.innerType._parse(A),i=o=>(EC(o)&&(o.value=Object.freeze(o.value)),o);return QC(t)?t.then(o=>i(o)):i(t)}unwrap(){return this._def.innerType}}RC.create=(e,A)=>new RC({innerType:e,typeName:be.ZodReadonly,...He(A)});function Xj(e,A={},t){return e?cu.create().superRefine((i,o)=>{var r,f;if(!e(i)){const h=typeof A=="function"?A(i):typeof A=="string"?{message:A}:A,d=(f=(r=h.fatal)!==null&&r!==void 0?r:t)!==null&&f!==void 0?f:!0,p=typeof h=="string"?{message:h}:h;o.addIssue({code:"custom",...p,fatal:d})}}):cu.create()}const RvA={object:Jt.lazycreate};var be;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(be||(be={}));const KvA=(e,A={message:`Input not instance of ${e.name}`})=>Xj(t=>t instanceof e,A),AW=_o.create,eW=Xg.create,GvA=Kp.create,FvA=AI.create,tW=pC.create,xvA=Ff.create,LvA=Np.create,UvA=yC.create,_vA=wC.create,qvA=cu.create,HvA=Cf.create,YvA=Ya.create,JvA=kp.create,TvA=Jo.create,PvA=Jt.create,OvA=Jt.strictCreate,jvA=DC.create,WvA=eD.create,VvA=mC.create,ZvA=Js.create,zvA=vC.create,$vA=Rp.create,XvA=xf.create,A1A=mc.create,e1A=MC.create,t1A=bC.create,i1A=eI.create,r1A=SC.create,n1A=uu.create,o_=Wo.create,o1A=Ss.create,s1A=tI.create,a1A=Wo.createWithPreprocess,g1A=NB.create,I1A=()=>AW().optional(),f1A=()=>eW().optional(),h1A=()=>tW().optional(),c1A={string:e=>_o.create({...e,coerce:!0}),number:e=>Xg.create({...e,coerce:!0}),boolean:e=>pC.create({...e,coerce:!0}),bigint:e=>AI.create({...e,coerce:!0}),date:e=>Ff.create({...e,coerce:!0})},u1A=Ne;var is=Object.freeze({__proto__:null,defaultErrorMap:hu,setErrorMap:uvA,getErrorMap:Mp,makeIssue:bp,EMPTY_PATH:lvA,addIssueToContext:ce,ParseStatus:Er,INVALID:Ne,DIRTY:tc,OK:Nr,isAborted:tN,isDirty:iN,isValid:EC,isAsync:QC,get util(){return ft},get objectUtil(){return eN},ZodParsedType:le,getParsedType:bg,ZodType:We,datetimeRegex:zj,ZodString:_o,ZodNumber:Xg,ZodBigInt:AI,ZodBoolean:pC,ZodDate:Ff,ZodSymbol:Np,ZodUndefined:yC,ZodNull:wC,ZodAny:cu,ZodUnknown:Cf,ZodNever:Ya,ZodVoid:kp,ZodArray:Jo,ZodObject:Jt,ZodUnion:DC,ZodDiscriminatedUnion:eD,ZodIntersection:mC,ZodTuple:Js,ZodRecord:vC,ZodMap:Rp,ZodSet:xf,ZodFunction:mc,ZodLazy:MC,ZodLiteral:bC,ZodEnum:eI,ZodNativeEnum:SC,ZodPromise:uu,ZodEffects:Wo,ZodTransformer:Wo,ZodOptional:Ss,ZodNullable:tI,ZodDefault:NC,ZodCatch:kC,ZodNaN:Kp,BRAND:kvA,ZodBranded:AK,ZodPipeline:NB,ZodReadonly:RC,custom:Xj,Schema:We,ZodSchema:We,late:RvA,get ZodFirstPartyTypeKind(){return be},coerce:c1A,any:qvA,array:TvA,bigint:FvA,boolean:tW,date:xvA,discriminatedUnion:WvA,effect:o_,enum:i1A,function:A1A,instanceof:KvA,intersection:VvA,lazy:e1A,literal:t1A,map:$vA,nan:GvA,nativeEnum:r1A,never:YvA,null:_vA,nullable:s1A,number:eW,object:PvA,oboolean:h1A,onumber:f1A,optional:o1A,ostring:I1A,pipeline:g1A,preprocess:a1A,promise:n1A,record:zvA,set:XvA,strictObject:OvA,string:AW,symbol:LvA,transformer:o_,tuple:ZvA,undefined:UvA,union:jvA,unknown:HvA,void:JvA,NEVER:u1A,ZodIssueCode:te,quotelessJson:cvA,ZodError:yn});const l1A=e=>e.message?e.message:"unspecified error";class lu extends ke{constructor(A){super(),this.code=rmA,this.errors=A,super.message=`Web3 validator found ${A.length} error[s]: +${this._compileErrors().join(` +`)}`}_compileErrors(){return this.errors.map(l1A)}}const C1A=["bool","int","uint","bytes","string","address","tuple"],iW=e=>typeof e=="object"&&"type"in e&&"name"in e,eK=e=>typeof e=="string",Ct=e=>typeof e=="string"&&/^((-)?0x[0-9a-f]+|(0x))$/i.test(e);function rW(e,A){return!(typeof e!="string"||!e.match(/^0x[0-9A-Fa-f]*$/))}const Gp=e=>typeof e=="number"||typeof e=="bigint"||typeof e=="string"&&/^((-0x|0x|-)?[0-9a-f]+|(0x))$/i.test(e);function tK(e){if(typeof e!="string")throw new Error(`[isHexPrefixed] input must be type 'string', received type ${typeof e}`);return e.startsWith("0x")}const iK=function(e){for(const[A,t]of Object.entries(e))if(t!==void 0&&t.length>0&&t[0]===0)throw new Error(`${A} cannot have leading zeroes, received: ${t.toString()}`)},B1A=["hex","number","blockNumber","blockNumberOrTag","filter","bloom"],Xf=e=>{let A=e.replace(/ /,""),t,i=!1,o=[];if(e.includes("[")&&(A=A.slice(0,A.indexOf("[")),o=[...e.matchAll(/(?:\[(\d*)\])/g)].map(r=>parseInt(r[1],10)).map(r=>Number.isNaN(r)?-1:r),i=o.length>0),C1A.includes(A))return{baseType:A,isArray:i,baseTypeSize:t,arraySizes:o};if(A.startsWith("int"))t=parseInt(A.substring(3),10),A="int";else if(A.startsWith("uint"))t=parseInt(e.substring(4),10),A="uint";else if(A.startsWith("bytes"))t=parseInt(A.substring(5),10),A="bytes";else return{baseType:void 0,isArray:!1,baseTypeSize:void 0,arraySizes:o};return{baseType:A,isArray:i,baseTypeSize:t,arraySizes:o}},A2=(e,A={})=>{if(Object.keys(A).includes("type"))throw new lu([{keyword:"eth",message:'Either "eth" or "type" can be presented in schema',params:{eth:e},instancePath:"",schemaPath:""}]);const{baseType:i,baseTypeSize:o}=Xf(e);if(!i&&!B1A.includes(e))throw new lu([{keyword:"eth",message:`Eth data type "${e}" is not valid`,params:{eth:e},instancePath:"",schemaPath:""}]);if(i){if(i==="tuple")throw new Error('"tuple" type is not implemented directly.');return{format:`${i}${o??""}`,required:!0}}return e?{format:e,required:!0}:{}},Fp=(e,A="/0")=>{const t={type:"array",items:[],maxItems:e.length,minItems:e.length};for(const[i,o]of e.entries()){let r,f,h=[];iW(o)?(r=o.type,f=o.name||`${A}/${i}`,h=o.components):typeof o=="string"?(r=o,f=`${A}/${i}`):Array.isArray(o)&&(o[0]&&typeof o[0]=="string"&&o[0].startsWith("tuple")&&!Array.isArray(o[0])&&o[1]&&Array.isArray(o[1])?(r=o[0],f=`${A}/${i}`,h=o[1]):(r="tuple",f=`${A}/${i}`,h=o));const{baseType:d,isArray:p,arraySizes:C}=Xf(r);let y,w=t;for(let D=C.length-1;D>0;D-=1)y={type:"array",$id:f,items:[],maxItems:C[D],minItems:C[D]},C[D]<0&&(delete y.maxItems,delete y.minItems),Array.isArray(w.items)?w.items.length===0?w.items=[y]:w.items.push(y):w.items=[w.items,y],w=y;if(d==="tuple"&&!p){const D=Fp(h,f);D.$id=f,w.items.push(D)}else if(d==="tuple"&&p){const D=C[0],v=Object.assign({type:"array",$id:f,items:Fp(h,f)},D>=0&&{minItems:D,maxItems:D});w.items.push(v)}else if(p){const D=C[0],v=Object.assign({type:"array",$id:f,items:A2(r)},D>=0&&{minItems:D,maxItems:D});w.items.push(v)}else Array.isArray(w.items)?w.items.push(Object.assign({$id:f},A2(r))):w.items.push(Object.assign({$id:f},A2(r)));w=t}return t},rK=e=>Fp(e),nK=(e,A)=>A===1?e:nK(e[0],A-1),x0=(e,A,t)=>{const i=[];for(const[o,r]of e.entries()){let f,h,d=[];iW(r)?(f=r.type,h=r.name,d=r.components):typeof r=="string"?f=r:Array.isArray(r)&&(r[1]&&Array.isArray(r[1])?(f=r[0],d=r[1]):(f="tuple",d=r));const{baseType:p,isArray:C,arraySizes:y}=Xf(f),w=Array.isArray(A)?A[o]:A[h];if(p==="tuple"&&!C)i.push(x0(d,w,t));else if(p==="tuple"&&C){const D=[];for(const v of w)if(y.length>1){const M=nK(v,y.length-1),R=[];for(const b of M)R.push(x0(d,b,t));D.push(R)}else D.push(x0(d,v,t));i.push(D)}else i.push(w)}return t=t??[],t.push(...i),t},nW=e=>{if(e>=48&&e<=57)return e-48;if(e>=65&&e<=70)return e-55;if(e>=97&&e<=102)return e-87;throw new Error(`Invalid code point: ${e}`)},tD=e=>{if(!Ct(e))throw new Error("Invalid hex string");const[A,t]=e.startsWith("-")?[!0,e.slice(1)]:[!1,e],i=BigInt(t);return i>Number.MAX_SAFE_INTEGER?A?-i:i:i{if((typeof e=="number"||typeof e=="bigint")&&e<0)return`-0x${e.toString(16).slice(1)}`;if((typeof e=="number"||typeof e=="bigint")&&e>=0)return`0x${e.toString(16)}`;if(typeof e=="string"&&Ct(e)){const[A,t]=e.startsWith("-")?[!0,e.slice(1)]:[!1,e],i=t.split(/^(-)?0(x|X)/).slice(-1)[0];return`${A?"-":""}0x${i.replace(/^0+/,"").toLowerCase()}`}if(typeof e=="string"&&!Ct(e))return iD(BigInt(e));throw new zR(e)},xp=(e,A,t="0")=>{if(typeof e=="string"&&!Ct(e))return e.padStart(A,t);const i=typeof e=="string"&&Ct(e)?e:iD(e),[o,r]=i.startsWith("-")?["-0x",i.slice(3)]:["0x",i.slice(2)];return`${o}${r.padStart(A,t)}`};function Xa(e){let A="0x";for(const t of e){const i=t.toString(16);A+=i.length===1?`0${i}`:i}return A}const ia={zero:48,nine:57,A:65,F:70,a:97,f:102};function s_(e){if(e>=ia.zero&&e<=ia.nine)return e-ia.zero;if(e>=ia.A&&e<=ia.F)return e-(ia.A-10);if(e>=ia.a&&e<=ia.f)return e-(ia.a-10)}function Ah(e){let A=0;if(e.startsWith("0")&&(e[1]==="x"||e[1]==="X")&&(A=2),e.length%2!==0)throw new Dc(`hex string has odd length: ${e}`);const t=(e.length-A)/2,i=new Uint8Array(t);for(let o=0,r=A;o{var A,t;return e instanceof Uint8Array||((A=e==null?void 0:e.constructor)===null||A===void 0?void 0:A.name)==="Uint8Array"||((t=e==null?void 0:e.constructor)===null||t===void 0?void 0:t.name)==="Buffer"},uI=(e,A={abiType:"bytes"})=>{if(typeof e!="string"&&!Array.isArray(e)&&!nN(e)||typeof e=="string"&&Ct(e)&&e.startsWith("-")||typeof e=="string"&&!Ct(e))return!1;let t;if(typeof e=="string"){if(e.length%2!==0)return!1;t=Ah(e)}else if(Array.isArray(e)){if(e.some(i=>i<0||i>255||!Number.isInteger(i)))return!1;t=new Uint8Array(e)}else t=e;if(A!=null&&A.abiType){const{baseTypeSize:i}=Xf(A.abiType);return i?t.length===i:!0}return A!=null&&A.size?t.length===(A==null?void 0:A.size):!0},sW=e=>{if(!/^(0x)?[0-9a-f]{40}$/i.test(e))return!1;const A=e.slice(2),t=Au(A.toLowerCase()),i=Xa(xt(rD(t))).slice(2);for(let o=0;o<40;o+=1)if(parseInt(i[o],16)>7&&A[o].toUpperCase()!==A[o]||parseInt(i[o],16)<=7&&A[o].toLowerCase()!==A[o])return!1;return!0},mn=(e,A=!0)=>{if(typeof e!="string"&&!nN(e))return!1;let t;return nN(e)?t=Xa(e):typeof e=="string"&&!Ct(e)?t=e.toLowerCase().startsWith("0x")?e:`0x${e}`:t=e,/^(0x)?[0-9a-f]{40}$/i.test(t)?/^(0x|0X)?[0-9a-f]{40}$/.test(t)||/^(0x|0X)?[0-9A-F]{40}$/.test(t)?!0:A?sW(t):!0:!1},Lf=(e,A)=>{if(A===BigInt(0))return BigInt(1);let t=e;for(let i=1;i{if(!["number","string","bigint"].includes(typeof e)||typeof e=="string"&&e.length===0)return!1;let t;if(A!=null&&A.abiType){const{baseTypeSize:o}=Xf(A.abiType);o&&(t=o)}else A.bitSize&&(t=A.bitSize);const i=Lf(BigInt(2),BigInt(t??256))-BigInt(1);try{const o=typeof e=="string"&&Ct(e)?BigInt(tD(e)):BigInt(e);return o>=0&&o<=i}catch{return!1}},KC=(e,A={abiType:"int"})=>{if(!["number","string","bigint"].includes(typeof e)||typeof e=="number"&&e>Number.MAX_SAFE_INTEGER)return!1;let t;if(A!=null&&A.abiType){const{baseTypeSize:r,baseType:f}=Xf(A.abiType);if(f!=="int")return!1;r&&(t=r)}else A.bitSize&&(t=A.bitSize);const i=Lf(BigInt(2),BigInt((t??256)-1)),o=BigInt(-1)*Lf(BigInt(2),BigInt((t??256)-1));try{const r=typeof e=="string"&&Ct(e)?BigInt(tD(e)):BigInt(e);return r>=o&&r<=i}catch{return!1}},aW=e=>!!(KC(e)||typeof e=="string"&&/[0-9.]/.test(e)&&e.indexOf(".")===e.lastIndexOf(".")||typeof e=="number"),gW=e=>Ja(e),qi=e=>Object.values(Ba).includes(e),oN=e=>qi(e)||gW(e),gl=e=>typeof e!="string"||!/^(0x)?[0-9a-f]{512}$/i.test(e)?!1:!!(/^(0x)?[0-9a-f]{512}$/.test(e)||/^(0x)?[0-9A-F]{512}$/.test(e)),nD=(e,A)=>{if(typeof A=="string"&&!Ct(A)||!gl(e))return!1;const t=typeof A=="string"?Ah(A):A,i=Xa(xt(t)).slice(2);for(let o=0;o<12;o+=4){const r=(parseInt(i.slice(o,o+2),16)<<8)+parseInt(i.slice(o+2,o+4),16)&2047,f=nW(e.charCodeAt(e.length-1-Math.floor(r/4))),h=1<{if(!gl(e)||!mn(A))return!1;const t=xp(A,64);return nD(e,t)},E1A=(e,A)=>!gl(e)||!mn(A)?!1:nD(e,A),Q1A=e=>["number","string","boolean"].includes(typeof e)?typeof e=="boolean"?!0:typeof e=="string"&&!Ct(e)?e==="1"||e==="0":typeof e=="string"&&Ct(e)?e==="0x1"||e==="0x0":e===1||e===0:!1,TA=e=>e==null,Cu=e=>typeof e=="object"&&!TA(e)&&!Array.isArray(e)&&!(e instanceof VR),Lp=e=>typeof e!="string"||!/^(0x)?[0-9a-f]{64}$/i.test(e)?!1:!!(/^(0x)?[0-9a-f]{64}$/.test(e)||/^(0x)?[0-9A-F]{64}$/.test(e)),p1A=(e,A)=>!gl(e)||!Lp(A)?!1:nD(e,A),y1A=e=>{const A=["fromBlock","toBlock","address","topics","blockHash"];if(TA(e)||typeof e!="object"||!Object.keys(e).every(t=>A.includes(t))||!TA(e.fromBlock)&&!oN(e.fromBlock)||!TA(e.toBlock)&&!oN(e.toBlock))return!1;if(!TA(e.address)){if(Array.isArray(e.address)){if(!e.address.every(t=>mn(t)))return!1}else if(!mn(e.address))return!1}return!(!TA(e.topics)&&!e.topics.every(t=>TA(t)?!0:Array.isArray(t)?t.every(i=>Lp(i)):!!Lp(t)))},Uf={address:e=>mn(e),bloom:e=>gl(e),blockNumber:e=>gW(e),blockTag:e=>qi(e),blockNumberOrTag:e=>oN(e),bool:e=>Q1A(e),bytes:e=>uI(e),filter:e=>y1A(e),hex:e=>Ct(e),uint:e=>Ja(e),int:e=>KC(e),number:e=>aW(e),string:e=>eK(e)};for(let e=8;e<=256;e+=8)Uf[`int${e}`]=A=>KC(A,{bitSize:e}),Uf[`uint${e}`]=A=>Ja(A,{bitSize:e});for(let e=1;e<=32;e+=1)Uf[`bytes${e}`]=A=>uI(A,{size:e});Uf.bytes256=Uf.bytes;const c0=e=>{if((!(e!=null&&e.type)||(e==null?void 0:e.type)==="object")&&(e!=null&&e.properties)){const A={};for(const t of Object.keys(e.properties)){const i=c0(e.properties[t]);i&&(A[t]=i)}return Array.isArray(e.required)?is.object(A).partial().required(e.required.reduce((t,i)=>Object.assign(Object.assign({},t),{[i]:!0}),{})):is.object(A).partial()}if((e==null?void 0:e.type)==="array"&&(e!=null&&e.items)){if(Array.isArray(e.items)&&e.items.length>1&&e.maxItems!==void 0&&new Set(e.items.map(i=>i.$id)).size===e.items.length){const i=[];for(const o of e.items){const r=c0(o);r&&i.push(r)}return is.tuple(i)}const A=Array.isArray(e.items)?e.items[0]:e.items;let t=is.array(c0(A));return t=e.minItems!==void 0?t.min(e.minItems):t,t=e.maxItems!==void 0?t.max(e.maxItems):t,t}if(e.oneOf&&Array.isArray(e.oneOf))return is.union(e.oneOf.map(A=>c0(A)));if(e!=null&&e.format){if(!Uf[e.format])throw new hvA(e.format);return is.any().refine(Uf[e.format],A=>({params:{value:A,format:e.format}}))}return e!=null&&e.type&&(e==null?void 0:e.type)!=="object"&&typeof is[String(e.type)]=="function"?is[String(e.type)]():is.object({data:is.any()}).partial()};class ic{static factory(){return ic.validatorInstance||(ic.validatorInstance=new ic),ic.validatorInstance}validate(A,t,i){var o,r;const h=c0(A).safeParse(t);if(!h.success){const d=this.convertErrors((r=(o=h.error)===null||o===void 0?void 0:o.issues)!==null&&r!==void 0?r:[]);if(d){if(i!=null&&i.silent)return d;throw new lu(d)}}}convertErrors(A){if(A&&Array.isArray(A)&&A.length>0)return A.map(t=>{var i;let o,r,f,h;h=t.path.join("/");const d=String(t.path[t.path.length-1]),p=t.path.join("/");if(t.code===te.too_big)r="maxItems",h=`${p}/maxItems`,f={limit:t.maximum},o=`must NOT have more than ${t.maximum} items`;else if(t.code===te.too_small)r="minItems",h=`${p}/minItems`,f={limit:t.minimum},o=`must NOT have fewer than ${t.minimum} items`;else if(t.code===te.custom){const{value:C,format:y}=(i=t.params)!==null&&i!==void 0?i:{};typeof C>"u"?o=`value at "/${h}" is required`:o=`value "${typeof C=="object"?JSON.stringify(C):C}" at "/${h}" must pass "${y}" validation`,f={value:C}}return{keyword:r??d,instancePath:p?`/${p}`:"",schemaPath:h?`#${h}`:"#",params:f??{value:t.message},message:o??t.message}})}}class w1A{constructor(){this._validator=ic.factory()}validateJSONSchema(A,t,i){return this._validator.validate(A,t,i)}validate(A,t,i={silent:!1}){var o,r;const f=rK(A);if(!(Array.isArray(f.items)&&((o=f.items)===null||o===void 0?void 0:o.length)===0&&t.length===0)){if(Array.isArray(f.items)&&((r=f.items)===null||r===void 0?void 0:r.length)===0&&t.length!==0)throw new lu([{instancePath:"/0",schemaPath:"/",keyword:"required",message:"empty schema against data can not be validated",params:t}]);return this._validator.validate(f,t,i)}}}const Se=new w1A;function lI(e){var A,t;return e instanceof Uint8Array||((A=e==null?void 0:e.constructor)===null||A===void 0?void 0:A.name)==="Uint8Array"||((t=e==null?void 0:e.constructor)===null||t===void 0?void 0:t.name)==="Buffer"}function kr(...e){const A=e.reduce((o,r)=>o+r.length,0),t=new Uint8Array(A);let i=0;for(const o of e)t.set(o,i),i+=o.length;return t}function oD(e,A){if(e===A)return!0;if(e.byteLength!==A.byteLength)return!1;for(let t=0;t{if(Se.validate(["bytes"],[e]),lI(e))return e;if(Array.isArray(e))return new Uint8Array(e);if(typeof e=="string")return Ah(e);throw new Dc(e)},{uint8ArrayToHexString:D1A}=oW,Xe=e=>D1A(Ts(e)),bt=e=>typeof e=="string"&&e.slice(0,2).toLowerCase()!=="0x"?Ts(`0x${e}`):Ts(e),kB=e=>(Se.validate(["hex"],[e]),tD(e)),m1A=kB,Vr=(e,A)=>{typeof e!="bigint"&&Se.validate(["int"],[e]);let t=iD(e);return A&&(!t.startsWith("-")&&t.length%2===1?t="0x0".concat(t.slice(2)):t.length%2===0&&t.startsWith("-")&&(t="-0x0".concat(t.slice(3)))),t},v1A=Vr,M1A=e=>kB(e).toString(),Vo=e=>{Se.validate(["string"],[e]);let A=e.replace(/^(?:\u0000)/,"");return A=A.replace(/(?:\u0000)$/,""),Xe(new TextEncoder().encode(A))},IW=Vo,b1A=Vo,aD=e=>cP(bt(e)),S1A=e=>typeof e=="string"?aD(e):(Se.validate(["bytes"],[e]),cP(e)),oK=Au,N1A=aD,fW=e=>{Se.validate(["string"],[e]);let A="";for(let t=0;tnew TextDecoder("ascii").decode(bt(e)),R1A=hW,Ta=(e,A)=>{if(typeof e=="string"&&mn(e))return A?"address":`0x${e.toLowerCase().replace(/^0x/i,"")}`;if(typeof e=="boolean")return A?"bool":e?"0x01":"0x00";if(typeof e=="number")return A?e<0?"int256":"uint256":Vr(e);if(typeof e=="bigint")return A?"bigint":Vr(e);if(lI(e))return A?"bytes":Xe(e);if(typeof e=="object"&&e)return A?"string":Vo(JSON.stringify(e));if(typeof e=="string"){if(e.startsWith("-0x")||e.startsWith("-0X"))return A?"int256":Vr(e);if(Ct(e))return A?"bytes":e;if(Gp(e)&&!KC(e)&&!Ja(e))return A?"bytes":`0x${e}`;if(Gp(e)&&!KC(e)&&Ja(e))return A?"uint":Vr(e);if(!Number.isFinite(e))return A?"string":Vo(e)}throw new VmA(e)},Zr=e=>{if(typeof e=="number")return e>1e20?(console.warn(sN),BigInt(e)):e;if(typeof e=="bigint")return e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER?Number(e):e;if(typeof e=="string"&&Ct(e))return kB(e);try{return Zr(BigInt(e))}catch{throw new zR(e)}},jI=e=>{if(typeof e=="number")return BigInt(e);if(typeof e=="bigint")return e;if(typeof e=="string"&&Gp(e))return e.startsWith("-")?-BigInt(e.substring(1)):BigInt(e);throw new zR(e)},K1A=(e,A)=>{let t;if(typeof A=="string"){if(t=sD[A],!t)throw new Jj(A)}else{if(A<0||!Number.isInteger(A))throw new Tj(A);t=Lf(BigInt(10),BigInt(A))}const i=String(Zr(e)),o=t.toString().length-1;if(o<=0)return i.toString();const r=i.padStart(o,"0"),f=r.slice(0,-o),h=r.slice(-o).replace(/\.?0+$/,"");return f===""?`0.${h}`:h===""?f:`${f}.${h}`.slice(0,f.length+o+1)},G1A=(e,A)=>{Se.validate(["number"],[e]);let t;if(typeof A=="string"){if(t=sD[A],!t)throw new Jj(A)}else{if(A<0||!Number.isInteger(A))throw new Tj(A);t=Lf(BigInt(10),BigInt(A))}let i=e;typeof i=="number"&&(i<1e-15&&console.warn(sN),i>1e20?(console.warn(sN),i=BigInt(i)):i=i.toLocaleString("fullwide",{useGrouping:!1,maximumFractionDigits:20}));const[o,r]=String(typeof i=="string"&&!Ct(i)?i:Zr(i)).split(".").concat(""),h=BigInt(`${o}${r}`)*t,d=r.length;return d===0?h.toString():h.toString().slice(0,-d)},Zs=e=>{if(!mn(e,!1))throw new $R(e);const A=e.toLowerCase().replace(/^0x/i,""),t=Xa(xt(rD(oK(A))));if(TA(t)||t==="0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470")return"";let i="0x";const o=t.replace(/^0x/i,"");for(let r=0;r7?i+=A[r].toUpperCase():i+=A[r];return i},cW=e=>{if(typeof e=="boolean")return e;if(typeof e=="number"&&(e===0||e===1)||typeof e=="bigint"&&(e===BigInt(0)||e===BigInt(1)))return!!e;if(typeof e=="string"&&!Ct(e)&&(e==="1"||e==="0"||e==="false"||e==="true"))return e==="true"?!0:e==="false"?!1:!!Number(e);if(typeof e=="string"&&Ct(e)&&(e==="0x1"||e==="0x0"))return!!Zr(e);throw new XR(e)};var uW={exports:{}};(function(e){var A=Object.prototype.hasOwnProperty,t="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(t=!1));function o(d,p,C){this.fn=d,this.context=p,this.once=C||!1}function r(d,p,C,y,w){if(typeof C!="function")throw new TypeError("The listener must be a function");var D=new o(C,y||d,w),v=t?t+p:p;return d._events[v]?d._events[v].fn?d._events[v]=[d._events[v],D]:d._events[v].push(D):(d._events[v]=D,d._eventsCount++),d}function f(d,p){--d._eventsCount===0?d._events=new i:delete d._events[p]}function h(){this._events=new i,this._eventsCount=0}h.prototype.eventNames=function(){var p=[],C,y;if(this._eventsCount===0)return p;for(y in C=this._events)A.call(C,y)&&p.push(t?y.slice(1):y);return Object.getOwnPropertySymbols?p.concat(Object.getOwnPropertySymbols(C)):p},h.prototype.listeners=function(p){var C=t?t+p:p,y=this._events[C];if(!y)return[];if(y.fn)return[y.fn];for(var w=0,D=y.length,v=new Array(D);w{const t=typeof e=="string"&&qi(e),i=typeof A=="string"&&qi(A);if(e===A||(e==="earliest"||e===0)&&(A==="earliest"||A===0))return 0;if(e==="earliest"&&A>0)return-1;if(A==="earliest"&&e>0)return 1;if(t&&i){const f={[Ba.EARLIEST]:1,[Ba.FINALIZED]:2,[Ba.SAFE]:3,[Ba.LATEST]:4,[Ba.PENDING]:5};return f[e]typeof e=="object"&&!TA(e)&&Object.keys(e).length!==0&&["input","data","from","gas","gasPrice","gasLimit","address","jsonInterface","syncWithContext","dataInputFill"].some(A=>A in e),Me=TA,a_=e=>typeof e=="object"&&!TA(e)&&!Array.isArray(e)&&!(e instanceof VR),CI=(e,...A)=>{if(!a_(e))return e;const t=Object.assign({},e);for(const i of A)for(const o in i)a_(i[o])?(t[o]||(t[o]={}),t[o]=CI(t[o],i[o])):!TA(i[o])&&Object.hasOwnProperty.call(i,o)&&(Array.isArray(i[o])||i[o]instanceof VR?t[o]=i[o].slice(0):t[o]=i[o]);return t},Bu=(e,A,t="0")=>typeof e=="string"?Ct(e)?xp(e,A,t):e.padStart(A,t):(Se.validate(["int"],[e]),xp(e,A,t)),CW=(e,A,t="0")=>{if(typeof e=="string"&&!Ct(e))return e.padEnd(A,t);Se.validate(["int"],[e]);const i=typeof e=="string"&&Ct(e)?e:Vr(e),o=i.startsWith("-")?3:2;return i.padEnd(A+o,t)},BW=CW,GC=Bu,dW=(e,A=64)=>{Se.validate(["int"],[e]);const t=Zr(e);if(t>=0)return Bu(Ta(t),A);const i=Lf(BigInt(2),BigInt(A*4));if(-t>=i)throw new Pj(`value: ${e}, nibbleWidth: ${A}`);const r=BigInt(t)+i;return Bu(Vr(r),A)},j1A=(e,A=64)=>{Se.validate(["int"],[e]);const t=Zr(e);if(t<0)return t;const i=Math.ceil(Math.log(Number(t))/Math.log(2));if(i>A*4)throw new Pj(`value: "${e}", nibbleWidth: "${A}"`);if(A*4!==i)return t;const o=Lf(BigInt(2),BigInt(A)*BigInt(4));return Zr(BigInt(t)-o)},{parseBaseType:W1A}=oW,ca=e=>typeof e=="object"&&!TA(e)&&"number"in e&&"bytes"in e,V1A=(e,A,t=[])=>{let i=Object.assign({},e),o;for(const r of A){if(i.oneOf&&o){const f=o,h=t.find(([d])=>d===f);h&&h[0]===o&&(i=i.oneOf[h[1]])}if(!i.properties&&!i.items)return;i.properties?i=i.properties[r]:i.items&&i.items.properties?i=i.items.properties[r]:i.items&&Cu(i.items)?i=i.items:i.items&&Array.isArray(i.items)&&(i=i.items[parseInt(r,10)]),i&&r&&(o=r)}return i},FC=(e,A,t)=>{try{const{baseType:i,baseTypeSize:o}=W1A(A);if(i==="int"||i==="uint")switch(t.number){case ro.NUMBER:return Number(jI(e));case ro.HEX:return Vr(jI(e));case ro.STR:return jI(e).toString();case ro.BIGINT:return jI(e);default:throw new $S(`Invalid format: ${String(t.number)}`)}if(i==="bytes"){let r;switch(o?typeof e=="string"?r=Bu(e,o*2):lI(e)&&(r=kr(new Uint8Array(o-e.length),e)):r=e,t.bytes){case Ha.HEX:return Xe(Ts(r));case Ha.UINT8ARRAY:return Ts(r);default:throw new $S(`Invalid format: ${String(t.bytes)}`)}}}catch{return e}return e},g_=({value:e,schemaProp:A,schema:t,object:i,key:o,dataPath:r,format:f,oneOfPath:h=[]})=>{var d,p;if(Array.isArray(e)){let C=A;if((A==null?void 0:A.oneOf)!==void 0&&A.oneOf.forEach((y,w)=>{var D,v;!Array.isArray(A==null?void 0:A.items)&&(typeof e[0]=="object"&&((D=y==null?void 0:y.items)===null||D===void 0?void 0:D.type)==="object"||typeof e[0]=="string"&&((v=y==null?void 0:y.items)===null||v===void 0?void 0:v.type)!=="object")&&(C=y,h.push([o,w]))}),TA(C==null?void 0:C.items))return delete i[o],r.pop(),!0;if(Cu(C.items)&&!TA(C.items.format)){for(let y=0;y{var r;if(!Cu(e)&&!Array.isArray(e))return FC(e,A==null?void 0:A.format,i);const f=e;if(Array.isArray(f)&&(A==null?void 0:A.type)==="array"&&((r=A==null?void 0:A.items)===null||r===void 0?void 0:r.type)==="object")g_({value:f,schemaProp:A,schema:A,object:f,key:"",dataPath:t,format:i,oneOfPath:o});else for(const[h,d]of Object.entries(f)){t.push(h);const p=V1A(A,t,o);if(TA(p)){delete f[h],t.pop();continue}if(Cu(d)){gD(d,A,t,i,o),t.pop();continue}g_({value:d,schemaProp:p,schema:A,object:f,key:h,dataPath:t,format:i,oneOfPath:o})||(f[h]=FC(d,p.format,i),t.pop())}return f},ie=(e,A,t=en)=>{let i;Cu(A)?i=CI({},A):Array.isArray(A)?i=[...A]:i=A;const o=Cu(e)?e:rK(e);if(!o.properties&&!o.items&&!o.format)throw new $S("Invalid json schema for formatting");return gD(i,o,[],t)},EW="0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",du=e=>{let A;return typeof e=="bigint"||typeof e=="number"?A=Au(e.toString()):Array.isArray(e)?A=new Uint8Array(e):typeof e=="string"&&!Ct(e)?A=Au(e):A=Ts(e),Xe(xt(rD(A)))},RB=e=>{let A;typeof e=="string"?e.startsWith("0x")&&Ct(e)?A=bt(e):A=Au(e):A=e;const t=du(A);return t===EW?void 0:t},vn=e=>{const A=RB(e);return TA(A)?EW:A},Z1A=e=>{if(Array.isArray(e))throw new Error("Autodetection of array types is not supported.");let A,t;if(typeof e=="object"&&("t"in e||"type"in e)&&("v"in e||"value"in e))A="t"in e?e.t:e.type,t="v"in e?e.v:e.value,A=A.toLowerCase()==="bigint"?"int":A;else{if(typeof e=="bigint")return["int",e];A=Ta(e,!0),t=Ta(e),!A.startsWith("int")&&!A.startsWith("uint")&&(A="bytes")}return(A.startsWith("int")||A.startsWith("uint"))&&typeof t=="string"&&!/^(-)?0x/i.test(t)&&(t=jI(t)),[A,t]},z1A=e=>e.startsWith("int[")?`int256${e.slice(3)}`:e==="int"?"int256":e.startsWith("uint[")?`uint256'${e.slice(4)}`:e==="uint"?"uint256":e,e2=(e,A)=>{const t=/^(\d+).*$/.exec(e.slice(A));return t?parseInt(t[1],10):0},I_=e=>e.toString(2).length,f_=(e,A)=>{const t=A.toString();if(e==="string"){if(typeof A=="string")return Vo(A);throw new WmA(A)}if(e==="bool"||e==="boolean"){if(typeof A=="boolean")return A?"01":"00";throw new XR(A)}if(e==="address"){if(!mn(t))throw new $R(t);return t}const i=z1A(e);if(e.startsWith("uint")){const o=e2(i,4);if(o%8||o<8||o>256)throw new A_(t);const r=Zr(t);if(I_(r)>o)throw new e_(t);if(r256)throw new A_(e);const r=Zr(t);if(I_(r)>o)throw new e_(t);return r64||o{const[A,t]=Z1A(e);return Array.isArray(t)?t.map(r=>f_(A,r).replace("0x","")).join(""):f_(A,t).replace("0x","")},aK=(...e)=>`0x${e.map(QW).join("").toLowerCase()}`,$1A=(...e)=>RB(aK(...e)),X1A=(...e)=>vn(aK(...e)),AMA=e=>RB(`0x${(typeof e=="number"?e.toString():e).padStart(64,"0")}`),xC=e=>JhA(e),eMA=e=>Xe(xC(e));var ID=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};function pW(e){return(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}function yW(e,A,t){return ID(this,void 0,void 0,function*(){let i;const o=yield Promise.race([e instanceof Promise?e:e(),new Promise((r,f)=>{i=setTimeout(()=>t?f(t):r(void 0),A)})]);if(i&&clearTimeout(i),o instanceof Error)throw o;return o})}function gK(e,A){let t;return[new Promise((o,r)=>{t=setInterval(function f(){return ID(this,void 0,void 0,function*(){try{const h=yield yW(e,A);TA(h)||(clearInterval(t),o(h))}catch(h){clearInterval(t),r(h)}}),f}(),A)}),t]}function tMA(e,A){return ID(this,void 0,void 0,function*(){return gK(e,A)[0]})}function IK(e,A){let t;const i=new Promise((o,r)=>{t=setTimeout(()=>{r(A)},e)});return[t,i]}function wW(e,A){let t;const i=new Promise((o,r)=>{t=setInterval(()=>{ID(this,void 0,void 0,function*(){const f=yield e();f&&(clearInterval(t),r(f))})},A)});return[t,i]}const fK=()=>{const e=xC(16);e[6]=e[6]&15|64,e[8]=e[8]&63|128;const A=Xe(e);return[A.substring(2,10),A.substring(10,14),A.substring(14,18),A.substring(18,22),A.substring(22,34)].join("-")},hK=e=>{const A=e.error.code;return Sr.has(A)||A>=-32099&&A<=-32e3},Og=e=>!Array.isArray(e)&&!!e&&e.jsonrpc==="2.0"&&"result"in e&&TA(e.error)&&(typeof e.id=="number"||typeof e.id=="string"),jg=e=>!Array.isArray(e)&&e.jsonrpc==="2.0"&&!!e&&TA(e.result)&&"error"in e&&(typeof e.id=="number"||typeof e.id=="string"),fD=e=>!Array.isArray(e)&&!!e&&e.jsonrpc==="2.0"&&!TA(e.params)&&!TA(e.method),DW=e=>!Array.isArray(e)&&!!e&&e.jsonrpc==="2.0"&&"id"in e&&"result"in e,Up=e=>Og(e)||jg(e),cK=e=>Array.isArray(e)?e.every(Up):Up(e),LC=e=>Array.isArray(e)&&e.length>0&&cK(e);let rQ;const mW=e=>{rQ=e},_f=e=>{var A,t,i,o;return typeof rQ<"u"&&(rQ+=1),{jsonrpc:(A=e.jsonrpc)!==null&&A!==void 0?A:"2.0",id:(i=(t=e.id)!==null&&t!==void 0?t:rQ)!==null&&i!==void 0?i:fK(),method:e.method,params:(o=e.params)!==null&&o!==void 0?o:void 0}},uK=e=>e.map(A=>_f(A)),as=e=>Array.isArray(e)&&e.length>0,iMA=Object.freeze(Object.defineProperty({__proto__:null,isBatchRequest:as,isBatchResponse:LC,isResponseRpcError:hK,isResponseWithError:jg,isResponseWithNotification:fD,isResponseWithResult:Og,isSubscriptionResult:DW,isValidResponse:cK,setRequestIdStart:mW,toBatchPayload:uK,toPayload:_f,validateResponse:Up},Symbol.toStringTag,{value:"Module"}));var t2=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})},vW;class _p{constructor({timeout:A,eagerStart:t,timeoutMessage:i}={timeout:0,eagerStart:!1,timeoutMessage:"DeferredPromise timed out"}){this[vW]="Promise",this._state="pending",this._promise=new Promise((o,r)=>{this._resolve=o,this._reject=r}),this._timeoutMessage=i,this._timeoutInterval=A,t&&this.startTimer()}get state(){return this._state}then(A,t){return t2(this,void 0,void 0,function*(){return this._promise.then(A,t)})}catch(A){return t2(this,void 0,void 0,function*(){return this._promise.catch(A)})}finally(A){return t2(this,void 0,void 0,function*(){return this._promise.finally(A)})}resolve(A){this._resolve(A),this._state="fulfilled",this._clearTimeout()}reject(A){this._reject(A),this._state="rejected",this._clearTimeout()}startTimer(){this._timeoutInterval&&this._timeoutInterval>0&&(this._timeoutId=setTimeout(this._checkTimeout.bind(this),this._timeoutInterval))}_checkTimeout(){this._state==="pending"&&this._timeoutId&&this.reject(new Fj(this._timeoutMessage))}_clearTimeout(){this._timeoutId&&clearTimeout(this._timeoutId)}}vW=Symbol.toStringTag;class MW{constructor(A,t){this.eventEmitter=A,this.autoReconnect=t,this.chunkTimeout=1e3*15}clearQueues(){typeof this._clearQueues=="function"&&this._clearQueues()}onError(A){this._clearQueues=A}parseResponse(A){const t=[];return A.replace(/\}[\n\r]?\{/g,"}|--|{").replace(/\}\][\n\r]?\[\{/g,"}]|--|[{").replace(/\}[\n\r]?\[\{/g,"}|--|[{").replace(/\}\][\n\r]?\{/g,"}]|--|{").split("|--|").forEach(o=>{let r=o;this.lastChunk&&(r=this.lastChunk+r);let f;try{f=JSON.parse(r)}catch{this.lastChunk=r,this.lastChunkTimeout&&clearTimeout(this.lastChunkTimeout),this.lastChunkTimeout=setTimeout(()=>{this.autoReconnect||(this.clearQueues(),this.eventEmitter.emit("error",new AD({id:1,jsonrpc:"2.0",error:{code:2,message:"Chunk timeout"}})))},this.chunkTimeout);return}clearTimeout(this.lastChunkTimeout),this.lastChunk=void 0,f&&t.push(f)}),t}}var h_=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class lK extends bB{constructor(){super(...arguments),this._eventEmitter=new lW,this._chainId="",this._accounts=[]}_getChainId(){var A;return h_(this,void 0,void 0,function*(){const t=yield this.request(_f({method:"eth_chainId",params:[]}));return(A=t==null?void 0:t.result)!==null&&A!==void 0?A:""})}_getAccounts(){var A;return h_(this,void 0,void 0,function*(){const t=yield this.request(_f({method:"eth_accounts",params:[]}));return(A=t==null?void 0:t.result)!==null&&A!==void 0?A:[]})}_onConnect(){Promise.all([this._getChainId().then(A=>{A!==this._chainId&&(this._chainId=A,this._eventEmitter.emit("chainChanged",this._chainId))}).catch(A=>{console.error(A)}),this._getAccounts().then(A=>{this._accounts.length===A.length&&A.every(t=>A.includes(t))||(this._accounts=A,this._onAccountsChanged())}).catch(A=>{console.error(A)})]).then(()=>this._eventEmitter.emit("connect",{chainId:this._chainId})).catch(A=>{console.error(A)})}_onDisconnect(A,t){this._eventEmitter.emit("disconnect",new XmA(A,t))}_onAccountsChanged(){this._eventEmitter.emit("accountsChanged",this._accounts)}}var i2=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const rMA={autoReconnect:!0,delay:5e3,maxAttempts:5},nMA=1e3;class bW extends lK{constructor(A,t,i){if(super(),this._connectionStatus="connecting",this._onMessageHandler=this._onMessage.bind(this),this._onOpenHandler=this._onConnect.bind(this),this._onCloseHandler=this._onCloseEvent.bind(this),this._onErrorHandler=this._onError.bind(this),!this._validateProviderPath(A))throw new XS(A);this._socketPath=A,this._socketOptions=t,this._reconnectOptions=Object.assign(Object.assign({},rMA),i??{}),this._pendingRequestsQueue=new Map,this._sentRequestsQueue=new Map,this._init(),this.connect(),this.chunkResponseParser=new MW(this._eventEmitter,this._reconnectOptions.autoReconnect),this.chunkResponseParser.onError(()=>{this._clearQueues()}),this.isReconnecting=!1}get SocketConnection(){return this._socketConnection}_init(){this._reconnectAttempts=0}connect(){try{this._openSocketConnection(),this._connectionStatus="connecting",this._addSocketListeners()}catch(A){if(this.isReconnecting)setImmediate(()=>{this._reconnect()});else throw this._connectionStatus="disconnected",A&&A.message?new SB(`Error while connecting to ${this._socketPath}. Reason: ${A.message}`):new XS(this._socketPath)}}_validateProviderPath(A){return!!A}getPendingRequestQueueSize(){return this._pendingRequestsQueue.size}getSentRequestsQueueSize(){return this._sentRequestsQueue.size}supportsSubscriptions(){return!0}on(A,t){this._eventEmitter.on(A,t)}once(A,t){this._eventEmitter.once(A,t)}removeListener(A,t){this._eventEmitter.removeListener(A,t)}_onDisconnect(A,t){this._connectionStatus="disconnected",super._onDisconnect(A,t)}disconnect(A,t){const i=A??nMA;this._removeSocketListeners(),this.getStatus()!=="disconnected"&&this._closeSocketConnection(i,t),this._onDisconnect(i,t)}safeDisconnect(A,t,i=!1,o=1e3){return i2(this,void 0,void 0,function*(){let r=0;yield i2(this,void 0,void 0,function*(){return new Promise(h=>{const d=setInterval(()=>{i&&r>=5&&this.clearQueues(),this.getPendingRequestQueueSize()===0&&this.getSentRequestsQueueSize()===0&&(clearInterval(d),h(!0)),r+=1},o)})}),this.disconnect(A,t)})}removeAllListeners(A){this._eventEmitter.removeAllListeners(A)}_onError(A){this.isReconnecting?this._reconnect():this._eventEmitter.emit("error",A)}reset(){this._sentRequestsQueue.clear(),this._pendingRequestsQueue.clear(),this._init(),this._removeSocketListeners(),this._addSocketListeners()}_reconnect(){this.isReconnecting||(this.isReconnecting=!0,this._sentRequestsQueue.size>0&&this._sentRequestsQueue.forEach((A,t)=>{A.deferredPromise.reject(new umA),this._sentRequestsQueue.delete(t)}),this._reconnectAttempts{this._removeSocketListeners(),this.connect(),this.isReconnecting=!1},this._reconnectOptions.delay)):(this.isReconnecting=!1,this._clearQueues(),this._removeSocketListeners(),this._eventEmitter.emit("error",new cmA(this._reconnectOptions.maxAttempts))))}request(A){return i2(this,void 0,void 0,function*(){if(Me(this._socketConnection))throw new Error("Connection is undefined");this.getStatus()==="disconnected"&&this.connect();const t=as(A)?A[0].id:A.id;if(!t)throw new pmA("Request Id not defined");if(this._sentRequestsQueue.has(t))throw new lmA(t);const i=new _p;i.catch(r=>{this._eventEmitter.emit("error",r)});const o={payload:A,deferredPromise:i};if(this.getStatus()==="connecting")return this._pendingRequestsQueue.set(t,o),o.deferredPromise;this._sentRequestsQueue.set(t,o);try{this._sendToSocket(o.payload)}catch(r){this._sentRequestsQueue.delete(t),this._eventEmitter.emit("error",r)}return i})}_onConnect(){this._connectionStatus="connected",this._reconnectAttempts=0,super._onConnect(),this._sendPendingRequests()}_sendPendingRequests(){for(const[A,t]of this._pendingRequestsQueue.entries())try{this._sendToSocket(t.payload),this._pendingRequestsQueue.delete(A),this._sentRequestsQueue.set(A,t)}catch(i){this._pendingRequestsQueue.delete(A),this._eventEmitter.emit("error",i)}}_onMessage(A){const t=this._parseResponses(A);if(!(Me(t)||t.length===0))for(const i of t){if(fD(i)&&i.method.endsWith("_subscription")){this._eventEmitter.emit("message",i);return}const o=LC(i)?i[0].id:i.id,r=this._sentRequestsQueue.get(o);if(!r)return;(LC(i)||Og(i)||jg(i))&&(this._eventEmitter.emit("message",i),r.deferredPromise.resolve(i)),this._sentRequestsQueue.delete(o)}}clearQueues(A){this._clearQueues(A)}_clearQueues(A){this._pendingRequestsQueue.size>0&&this._pendingRequestsQueue.forEach((t,i)=>{t.deferredPromise.reject(new zS(A)),this._pendingRequestsQueue.delete(i)}),this._sentRequestsQueue.size>0&&this._sentRequestsQueue.forEach((t,i)=>{t.deferredPromise.reject(new zS(A)),this._sentRequestsQueue.delete(i)}),this._removeSocketListeners()}}const SW=Object.freeze(Object.defineProperty({__proto__:null,ChunkResponseParser:MW,Eip1193Provider:lK,EventEmitter:sK,SocketProvider:bW,Web3DeferredPromise:_p,asciiToHex:fW,bytesToHex:Xe,bytesToUint8Array:Ts,checkAddressCheckSum:U1A,compareBlockNumbers:O1A,convert:gD,convertScalarValue:FC,encodePacked:aK,ethUnitMap:sD,format:ie,fromAscii:k1A,fromDecimal:v1A,fromTwosComplement:j1A,fromUtf8:IW,fromWei:K1A,getStorageSlotNumForLongString:AMA,hexToAscii:hW,hexToBytes:bt,hexToNumber:kB,hexToNumberString:M1A,hexToString:N1A,hexToUtf8:aD,isAddress:_1A,isBatchRequest:as,isBatchResponse:LC,isBloom:q1A,isContractAddressInBloom:J1A,isContractInitOptions:Kg,isDataFormat:ca,isHex:L1A,isHexStrict:x1A,isInBloom:H1A,isNullish:Me,isPromise:pW,isResponseRpcError:hK,isResponseWithError:jg,isResponseWithNotification:fD,isResponseWithResult:Og,isSubscriptionResult:DW,isTopic:T1A,isTopicInBloom:P1A,isUint8Array:lI,isUserEthereumAddressInBloom:Y1A,isValidResponse:cK,jsonRpc:iMA,keccak256:du,keccak256Wrapper:du,leftPad:GC,mergeDeep:CI,numberToHex:Vr,padLeft:Bu,padRight:CW,pollTillDefined:tMA,pollTillDefinedAndReturnIntervalId:gK,processSolidityEncodePackedArgs:QW,randomBytes:xC,randomHex:eMA,rejectIfConditionAtInterval:wW,rejectIfTimeout:IK,rightPad:BW,setRequestIdStart:mW,sha3:RB,sha3Raw:vn,soliditySha3:$1A,soliditySha3Raw:X1A,stringToHex:b1A,toAscii:R1A,toBatchPayload:uK,toBigInt:jI,toBool:cW,toChecksumAddress:Zs,toDecimal:m1A,toHex:Ta,toNumber:Zr,toPayload:_f,toTwosComplement:dW,toUtf8:S1A,toWei:G1A,uint8ArrayConcat:kr,uint8ArrayEquals:oD,utf8ToBytes:oK,utf8ToHex:Vo,uuidV4:fK,validateResponse:Up,waitWithTimeout:yW},Symbol.toStringTag,{value:"Module"}));class hD{constructor(){this._emitter=new sK}on(A,t){this._emitter.on(A,t)}once(A,t){this._emitter.once(A,t)}off(A,t){this._emitter.off(A,t)}emit(A,t){this._emitter.emit(A,t)}listenerCount(A){return this._emitter.listenerCount(A)}listeners(A){return this._emitter.listeners(A)}eventNames(){return this._emitter.eventNames()}removeAllListeners(){return this._emitter.removeAllListeners()}setMaxListenerWarningThreshold(A){this._emitter.setMaxListeners(A)}getMaxListeners(){return this._emitter.getMaxListeners()}}var qf;(function(e){e.CONFIG_CHANGE="CONFIG_CHANGE"})(qf||(qf={}));class oMA extends hD{constructor(A){super(),this.config={handleRevert:!1,defaultAccount:void 0,defaultBlock:"latest",transactionBlockTimeout:50,transactionConfirmationBlocks:24,transactionPollingInterval:1e3,transactionPollingTimeout:750*1e3,transactionReceiptPollingInterval:void 0,transactionSendTimeout:750*1e3,transactionConfirmationPollingInterval:void 0,blockHeaderTimeout:10,maxListenersWarningThreshold:100,contractDataInputFill:"data",defaultNetworkId:void 0,defaultChain:"mainnet",defaultHardfork:"london",defaultCommon:void 0,defaultTransactionType:"0x2",defaultMaxPriorityFeePerGas:Ta(25e8),enableExperimentalFeatures:{useSubscriptionWhenCheckingBlockTimeout:!1,useRpcCallSpecification:!1},transactionBuilder:void 0,transactionTypeParser:void 0,customTransactionSchema:void 0,defaultReturnFormat:en},this.setConfig(A??{})}setConfig(A){const t=Object.keys(A);for(const i of t)this._triggerConfigChange(i,A[i]),!Me(A[i])&&typeof A[i]=="number"&&i==="maxListenersWarningThreshold"&&this.setMaxListenerWarningThreshold(Number(A[i]));Object.assign(this.config,A)}get handleRevert(){return this.config.handleRevert}set handleRevert(A){this._triggerConfigChange("handleRevert",A),this.config.handleRevert=A}get contractDataInputFill(){return this.config.contractDataInputFill}set contractDataInputFill(A){this._triggerConfigChange("contractDataInputFill",A),this.config.contractDataInputFill=A}get defaultAccount(){return this.config.defaultAccount}set defaultAccount(A){this._triggerConfigChange("defaultAccount",A),this.config.defaultAccount=A}get defaultBlock(){return this.config.defaultBlock}set defaultBlock(A){this._triggerConfigChange("defaultBlock",A),this.config.defaultBlock=A}get transactionSendTimeout(){return this.config.transactionSendTimeout}set transactionSendTimeout(A){this._triggerConfigChange("transactionSendTimeout",A),this.config.transactionSendTimeout=A}get transactionBlockTimeout(){return this.config.transactionBlockTimeout}set transactionBlockTimeout(A){this._triggerConfigChange("transactionBlockTimeout",A),this.config.transactionBlockTimeout=A}get transactionConfirmationBlocks(){return this.config.transactionConfirmationBlocks}set transactionConfirmationBlocks(A){this._triggerConfigChange("transactionConfirmationBlocks",A),this.config.transactionConfirmationBlocks=A}get transactionPollingInterval(){return this.config.transactionPollingInterval}set transactionPollingInterval(A){this._triggerConfigChange("transactionPollingInterval",A),this.config.transactionPollingInterval=A,this.transactionReceiptPollingInterval=A,this.transactionConfirmationPollingInterval=A}get transactionPollingTimeout(){return this.config.transactionPollingTimeout}set transactionPollingTimeout(A){this._triggerConfigChange("transactionPollingTimeout",A),this.config.transactionPollingTimeout=A}get transactionReceiptPollingInterval(){return this.config.transactionReceiptPollingInterval}set transactionReceiptPollingInterval(A){this._triggerConfigChange("transactionReceiptPollingInterval",A),this.config.transactionReceiptPollingInterval=A}get transactionConfirmationPollingInterval(){return this.config.transactionConfirmationPollingInterval}set transactionConfirmationPollingInterval(A){this._triggerConfigChange("transactionConfirmationPollingInterval",A),this.config.transactionConfirmationPollingInterval=A}get blockHeaderTimeout(){return this.config.blockHeaderTimeout}set blockHeaderTimeout(A){this._triggerConfigChange("blockHeaderTimeout",A),this.config.blockHeaderTimeout=A}get enableExperimentalFeatures(){return this.config.enableExperimentalFeatures}set enableExperimentalFeatures(A){this._triggerConfigChange("enableExperimentalFeatures",A),this.config.enableExperimentalFeatures=A}get maxListenersWarningThreshold(){return this.config.maxListenersWarningThreshold}set maxListenersWarningThreshold(A){this._triggerConfigChange("maxListenersWarningThreshold",A),this.setMaxListenerWarningThreshold(A),this.config.maxListenersWarningThreshold=A}get defaultReturnFormat(){return this.config.defaultReturnFormat}set defaultReturnFormat(A){this._triggerConfigChange("defaultReturnFormat",A),this.config.defaultReturnFormat=A}get defaultNetworkId(){return this.config.defaultNetworkId}set defaultNetworkId(A){this._triggerConfigChange("defaultNetworkId",A),this.config.defaultNetworkId=A}get defaultChain(){return this.config.defaultChain}set defaultChain(A){if(!Me(this.config.defaultCommon)&&!Me(this.config.defaultCommon.baseChain)&&A!==this.config.defaultCommon.baseChain)throw new r_(this.config.defaultChain,A);this._triggerConfigChange("defaultChain",A),this.config.defaultChain=A}get defaultHardfork(){return this.config.defaultHardfork}set defaultHardfork(A){if(!Me(this.config.defaultCommon)&&!Me(this.config.defaultCommon.hardfork)&&A!==this.config.defaultCommon.hardfork)throw new i_(this.config.defaultCommon.hardfork,A);this._triggerConfigChange("defaultHardfork",A),this.config.defaultHardfork=A}get defaultCommon(){return this.config.defaultCommon}set defaultCommon(A){if(!Me(this.config.defaultHardfork)&&!Me(A)&&!Me(A.hardfork)&&this.config.defaultHardfork!==A.hardfork)throw new i_(this.config.defaultHardfork,A.hardfork);if(!Me(this.config.defaultChain)&&!Me(A)&&!Me(A.baseChain)&&this.config.defaultChain!==A.baseChain)throw new r_(this.config.defaultChain,A.baseChain);this._triggerConfigChange("defaultCommon",A),this.config.defaultCommon=A}get defaultTransactionType(){return this.config.defaultTransactionType}set defaultTransactionType(A){this._triggerConfigChange("defaultTransactionType",A),this.config.defaultTransactionType=A}get defaultMaxPriorityFeePerGas(){return this.config.defaultMaxPriorityFeePerGas}set defaultMaxPriorityFeePerGas(A){this._triggerConfigChange("defaultMaxPriorityFeePerGas",A),this.config.defaultMaxPriorityFeePerGas=A}get transactionBuilder(){return this.config.transactionBuilder}set transactionBuilder(A){this._triggerConfigChange("transactionBuilder",A),this.config.transactionBuilder=A}get transactionTypeParser(){return this.config.transactionTypeParser}set transactionTypeParser(A){this._triggerConfigChange("transactionTypeParser",A),this.config.transactionTypeParser=A}get customTransactionSchema(){return this.config.customTransactionSchema}set customTransactionSchema(A){this._triggerConfigChange("customTransactionSchema",A),this.config.customTransactionSchema=A}_triggerConfigChange(A,t){this.emit(qf.CONFIG_CHANGE,{name:A,oldValue:this.config[A],newValue:t})}}var aN={exports:{}};(function(e,A){var t=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof globalThis<"u"&&globalThis,i=function(){function r(){this.fetch=!1,this.DOMException=t.DOMException}return r.prototype=t,new r}();(function(r){(function(f){var h=typeof r<"u"&&r||typeof self<"u"&&self||typeof h<"u"&&h,d={searchParams:"URLSearchParams"in h,iterable:"Symbol"in h&&"iterator"in Symbol,blob:"FileReader"in h&&"Blob"in h&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in h,arrayBuffer:"ArrayBuffer"in h};function p(I){return I&&DataView.prototype.isPrototypeOf(I)}if(d.arrayBuffer)var C=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],y=ArrayBuffer.isView||function(I){return I&&C.indexOf(Object.prototype.toString.call(I))>-1};function w(I){if(typeof I!="string"&&(I=String(I)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(I)||I==="")throw new TypeError('Invalid character in header field name: "'+I+'"');return I.toLowerCase()}function D(I){return typeof I!="string"&&(I=String(I)),I}function v(I){var c={next:function(){var B=I.shift();return{done:B===void 0,value:B}}};return d.iterable&&(c[Symbol.iterator]=function(){return c}),c}function M(I){this.map={},I instanceof M?I.forEach(function(c,B){this.append(B,c)},this):Array.isArray(I)?I.forEach(function(c){this.append(c[0],c[1])},this):I&&Object.getOwnPropertyNames(I).forEach(function(c){this.append(c,I[c])},this)}M.prototype.append=function(I,c){I=w(I),c=D(c);var B=this.map[I];this.map[I]=B?B+", "+c:c},M.prototype.delete=function(I){delete this.map[w(I)]},M.prototype.get=function(I){return I=w(I),this.has(I)?this.map[I]:null},M.prototype.has=function(I){return this.map.hasOwnProperty(w(I))},M.prototype.set=function(I,c){this.map[w(I)]=D(c)},M.prototype.forEach=function(I,c){for(var B in this.map)this.map.hasOwnProperty(B)&&I.call(c,this.map[B],B,this)},M.prototype.keys=function(){var I=[];return this.forEach(function(c,B){I.push(B)}),v(I)},M.prototype.values=function(){var I=[];return this.forEach(function(c){I.push(c)}),v(I)},M.prototype.entries=function(){var I=[];return this.forEach(function(c,B){I.push([B,c])}),v(I)},d.iterable&&(M.prototype[Symbol.iterator]=M.prototype.entries);function R(I){if(I.bodyUsed)return Promise.reject(new TypeError("Already read"));I.bodyUsed=!0}function b(I){return new Promise(function(c,B){I.onload=function(){c(I.result)},I.onerror=function(){B(I.error)}})}function S(I){var c=new FileReader,B=b(c);return c.readAsArrayBuffer(I),B}function G(I){var c=new FileReader,B=b(c);return c.readAsText(I),B}function U(I){for(var c=new Uint8Array(I),B=new Array(c.length),E=0;E-1?c:I}function q(I,c){if(!(this instanceof q))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');c=c||{};var B=c.body;if(I instanceof q){if(I.bodyUsed)throw new TypeError("Already read");this.url=I.url,this.credentials=I.credentials,c.headers||(this.headers=new M(I.headers)),this.method=I.method,this.mode=I.mode,this.signal=I.signal,!B&&I._bodyInit!=null&&(B=I._bodyInit,I.bodyUsed=!0)}else this.url=String(I);if(this.credentials=c.credentials||this.credentials||"same-origin",(c.headers||!this.headers)&&(this.headers=new M(c.headers)),this.method=J(c.method||this.method||"GET"),this.mode=c.mode||this.mode||null,this.signal=c.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&B)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(B),(this.method==="GET"||this.method==="HEAD")&&(c.cache==="no-store"||c.cache==="no-cache")){var E=/([?&])_=[^&]*/;if(E.test(this.url))this.url=this.url.replace(E,"$1_="+new Date().getTime());else{var u=/\?/;this.url+=(u.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}q.prototype.clone=function(){return new q(this,{body:this._bodyInit})};function X(I){var c=new FormData;return I.trim().split("&").forEach(function(B){if(B){var E=B.split("="),u=E.shift().replace(/\+/g," "),s=E.join("=").replace(/\+/g," ");c.append(decodeURIComponent(u),decodeURIComponent(s))}}),c}function Q(I){var c=new M,B=I.replace(/\r?\n[\t ]+/g," ");return B.split("\r").map(function(E){return E.indexOf(` +`)===0?E.substr(1,E.length):E}).forEach(function(E){var u=E.split(":"),s=u.shift().trim();if(s){var l=u.join(":").trim();c.append(s,l)}}),c}z.call(q.prototype);function n(I,c){if(!(this instanceof n))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');c||(c={}),this.type="default",this.status=c.status===void 0?200:c.status,this.ok=this.status>=200&&this.status<300,this.statusText=c.statusText===void 0?"":""+c.statusText,this.headers=new M(c.headers),this.url=c.url||"",this._initBody(I)}z.call(n.prototype),n.prototype.clone=function(){return new n(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new M(this.headers),url:this.url})},n.error=function(){var I=new n(null,{status:0,statusText:""});return I.type="error",I};var a=[301,302,303,307,308];n.redirect=function(I,c){if(a.indexOf(c)===-1)throw new RangeError("Invalid status code");return new n(null,{status:c,headers:{location:I}})},f.DOMException=h.DOMException;try{new f.DOMException}catch{f.DOMException=function(c,B){this.message=c,this.name=B;var E=Error(c);this.stack=E.stack},f.DOMException.prototype=Object.create(Error.prototype),f.DOMException.prototype.constructor=f.DOMException}function g(I,c){return new Promise(function(B,E){var u=new q(I,c);if(u.signal&&u.signal.aborted)return E(new f.DOMException("Aborted","AbortError"));var s=new XMLHttpRequest;function l(){s.abort()}s.onload=function(){var N={status:s.status,statusText:s.statusText,headers:Q(s.getAllResponseHeaders()||"")};N.url="responseURL"in s?s.responseURL:N.headers.get("X-Request-URL");var L="response"in s?s.response:s.responseText;setTimeout(function(){B(new n(L,N))},0)},s.onerror=function(){setTimeout(function(){E(new TypeError("Network request failed"))},0)},s.ontimeout=function(){setTimeout(function(){E(new TypeError("Network request failed"))},0)},s.onabort=function(){setTimeout(function(){E(new f.DOMException("Aborted","AbortError"))},0)};function m(N){try{return N===""&&h.location.href?h.location.href:N}catch{return N}}s.open(u.method,m(u.url),!0),u.credentials==="include"?s.withCredentials=!0:u.credentials==="omit"&&(s.withCredentials=!1),"responseType"in s&&(d.blob?s.responseType="blob":d.arrayBuffer&&u.headers.get("Content-Type")&&u.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(s.responseType="arraybuffer")),c&&typeof c.headers=="object"&&!(c.headers instanceof M)?Object.getOwnPropertyNames(c.headers).forEach(function(N){s.setRequestHeader(N,D(c.headers[N]))}):u.headers.forEach(function(N,L){s.setRequestHeader(L,N)}),u.signal&&(u.signal.addEventListener("abort",l),s.onreadystatechange=function(){s.readyState===4&&u.signal.removeEventListener("abort",l)}),s.send(typeof u._bodyInit>"u"?null:u._bodyInit)})}return g.polyfill=!0,h.fetch||(h.fetch=g,h.Headers=M,h.Request=q,h.Response=n),f.Headers=M,f.Request=q,f.Response=n,f.fetch=g,f})({})})(i),i.fetch.ponyfill=!0,delete i.fetch.polyfill;var o=t.fetch?t:i;A=o.fetch,A.default=o.fetch,A.fetch=o.fetch,A.Headers=o.Headers,A.Request=o.Request,A.Response=o.Response,e.exports=A})(aN,aN.exports);var sMA=aN.exports;const aMA=$i(sMA);var gMA=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class cD extends bB{constructor(A,t){if(super(),!cD.validateClientUrl(A))throw new XS(A);this.clientUrl=A,this.httpProviderOptions=t}static validateClientUrl(A){return typeof A=="string"?/^http(s)?:\/\//i.test(A):!1}getStatus(){throw new ta}supportsSubscriptions(){return!1}request(A,t){var i;return gMA(this,void 0,void 0,function*(){const o=Object.assign(Object.assign({},(i=this.httpProviderOptions)===null||i===void 0?void 0:i.providerOptions),t),r=yield aMA(this.clientUrl,Object.assign(Object.assign({},o),{method:"POST",headers:Object.assign(Object.assign({},o.headers),{"Content-Type":"application/json"}),body:JSON.stringify(A)}));if(!r.ok)throw new Cs(yield r.json(),void 0,void 0,r.status);return yield r.json()})}on(){throw new ta}removeListener(){throw new ta}once(){throw new ta}removeAllListeners(){throw new ta}connect(){throw new ta}disconnect(){throw new ta}reset(){throw new ta}reconnect(){throw new ta}}var Rh=null;typeof WebSocket<"u"?Rh=WebSocket:typeof MozWebSocket<"u"?Rh=MozWebSocket:typeof globalThis<"u"?Rh=globalThis.WebSocket||globalThis.MozWebSocket:typeof window<"u"?Rh=window.WebSocket||window.MozWebSocket:typeof self<"u"&&(Rh=self.WebSocket||self.MozWebSocket);const IMA=Rh;class NW extends bW{constructor(A,t,i){super(A,t,i)}_validateProviderPath(A){return typeof A=="string"?/^ws(s)?:\/\//i.test(A):!1}getStatus(){if(this._socketConnection&&!Me(this._socketConnection))switch(this._socketConnection.readyState){case this._socketConnection.CONNECTING:return"connecting";case this._socketConnection.OPEN:return"connected";default:return"disconnected"}return"disconnected"}_openSocketConnection(){this._socketConnection=new IMA(this._socketPath,void 0,this._socketOptions&&Object.keys(this._socketOptions).length===0?void 0:this._socketOptions)}_closeSocketConnection(A,t){var i;(i=this._socketConnection)===null||i===void 0||i.close(A,t)}_sendToSocket(A){var t;if(this.getStatus()==="disconnected")throw new zS;(t=this._socketConnection)===null||t===void 0||t.send(JSON.stringify(A))}_parseResponses(A){return this.chunkResponseParser.parseResponse(A.data)}_addSocketListeners(){var A,t,i,o;(A=this._socketConnection)===null||A===void 0||A.addEventListener("open",this._onOpenHandler),(t=this._socketConnection)===null||t===void 0||t.addEventListener("message",this._onMessageHandler),(i=this._socketConnection)===null||i===void 0||i.addEventListener("close",r=>this._onCloseHandler(r)),(o=this._socketConnection)===null||o===void 0||o.addEventListener("error",this._onErrorHandler)}_removeSocketListeners(){var A,t,i;(A=this._socketConnection)===null||A===void 0||A.removeEventListener("message",this._onMessageHandler),(t=this._socketConnection)===null||t===void 0||t.removeEventListener("open",this._onOpenHandler),(i=this._socketConnection)===null||i===void 0||i.removeEventListener("close",this._onCloseHandler)}_onCloseEvent(A){var t;if(this._reconnectOptions.autoReconnect&&(![1e3,1001].includes(A.code)||!A.wasClean)){this._reconnect();return}this._clearQueues(A),this._removeSocketListeners(),this._onDisconnect(A.code,A.reason),(t=this._socketConnection)===null||t===void 0||t.removeEventListener("error",this._onErrorHandler)}}const kW=e=>bB.isWeb3Provider(e),RW=e=>typeof e!="string"&&"request"in e&&e.request.constructor.name==="Function",KW=e=>typeof e!="string"&&"request"in e&&e.request.constructor.name==="AsyncFunction",GW=e=>typeof e!="string"&&"send"in e,FW=e=>typeof e!="string"&&"sendAsync"in e,qp=e=>e&&(kW(e)||KW(e)||RW(e)||FW(e)||GW(e)),fMA=e=>e&&"supportsSubscriptions"in e?e.supportsSubscriptions():!!(e&&typeof e!="string"&&"on"in e);var r2=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})},Eu;(function(e){e.PROVIDER_CHANGED="PROVIDER_CHANGED",e.BEFORE_PROVIDER_CHANGE="BEFORE_PROVIDER_CHANGE"})(Eu||(Eu={}));const c_={HttpProvider:cD,WebsocketProvider:NW};class Bf extends hD{constructor(A,t,i){super(),Me(A)||this.setProvider(A),this.useRpcCallSpecification=t,Me(i)||(this.middleware=i)}static get providers(){return c_}get provider(){return this._provider}get providers(){return c_}setProvider(A){let t;if(A&&typeof A=="string"&&this.providers)if(/^http(s)?:\/\//i.test(A))t=new this.providers.HttpProvider(A);else if(/^ws(s)?:\/\//i.test(A))t=new this.providers.WebsocketProvider(A);else throw new iQ(`Can't autodetect provider for "${A}"`);else Me(A)?t=void 0:t=A;return this.emit(Eu.BEFORE_PROVIDER_CHANGE,this._provider),this._provider=t,this.emit(Eu.PROVIDER_CHANGED,this._provider),!0}setMiddleware(A){this.middleware=A}send(A){return r2(this,void 0,void 0,function*(){const t=Object.assign({},A);let i=yield this._sendRequest(t);if(Me(this.middleware)||(i=yield this.middleware.processResponse(i)),Og(i))return i.result;throw new Cs(i)})}sendBatch(A){return r2(this,void 0,void 0,function*(){return yield this._sendRequest(A)})}_sendRequest(A){return r2(this,void 0,void 0,function*(){const{provider:t}=this;if(Me(t))throw new iQ("Provider not available. Use `.setProvider` or `.provider=` to initialize the provider.");let i=as(A)?uK(A):_f(A);if(Me(this.middleware)||(i=yield this.middleware.processRequest(i)),kW(t)){let o;try{o=yield t.request(i)}catch(r){o=r}return this._processJsonRpcResponse(i,o,{legacy:!1,error:!1})}if(KW(t))return t.request(i).then(o=>this._processJsonRpcResponse(i,o,{legacy:!0,error:!1})).catch(o=>this._processJsonRpcResponse(i,o,{legacy:!0,error:!0}));if(RW(t))return new Promise((o,r)=>{const f=p=>{r(this._processJsonRpcResponse(i,p,{legacy:!0,error:!0}))},h=p=>o(this._processJsonRpcResponse(i,p,{legacy:!0,error:!1})),d=t.request(i,(p,C)=>p?f(p):h(C));pW(d)&&d.then(h).catch(C=>{try{const y=this._processJsonRpcResponse(i,C,{legacy:!0,error:!0});r(y)}catch(y){r(y)}})});if(GW(t))return new Promise((o,r)=>{t.send(i,(f,h)=>{if(f)return r(this._processJsonRpcResponse(i,f,{legacy:!0,error:!0}));if(Me(h))throw new Cs({},'Got a "nullish" response from provider.');return o(this._processJsonRpcResponse(i,h,{legacy:!0,error:!1}))})});if(FW(t))return t.sendAsync(i).then(o=>this._processJsonRpcResponse(i,o,{legacy:!0,error:!1})).catch(o=>this._processJsonRpcResponse(i,o,{legacy:!0,error:!0}));throw new iQ("Provider does not have a request or send method to use.")})}_processJsonRpcResponse(A,t,{legacy:i,error:o}){if(Me(t))return this._buildResponse(A,null,o);if(jg(t)){if(this.useRpcCallSpecification&&hK(t)){const r=t;if(Sr.get(r.error.code)){const f=Sr.get(r.error.code).error;throw new f(r)}else throw new Gn(r)}else if(!Bf._isReverted(t))throw new AD(t,A)}if(Og(t))return t;if(t instanceof Error)throw Bf._isReverted(t),t;if(!i&&as(A)&&LC(t)||i&&!o&&as(A))return t;if(i&&o&&as(A))throw t;if(i&&!jg(t)&&!Og(t))return this._buildResponse(A,t,o);throw as(A)&&!Array.isArray(t)?new Cs(t,"Got normal response for a batch request."):!as(A)&&Array.isArray(t)?new Cs(t,"Got batch response for a normal request."):new Cs(t,"Invalid response")}static _isReverted(A){let t;if(jg(A)?t=A.error:A instanceof Error&&(t=A),t!=null&&t.message.includes("revert"))throw new lf(t);return!1}_buildResponse(A,t,i){const o={jsonrpc:"2.0",id:as(A)?A[0].id:"id"in A?A.id:null};return i?Object.assign(Object.assign({},o),{error:t}):Object.assign(Object.assign({},o),{result:t})}}var Ol=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class gN{constructor(A,t,i=!1){this.requestManager=A,this.registeredSubscriptions=t,this.tolerateUnlinkedSubscription=i,this._subscriptions=new Map,this.requestManager.on(Eu.BEFORE_PROVIDER_CHANGE,()=>Ol(this,void 0,void 0,function*(){yield this.unsubscribe()})),this.requestManager.on(Eu.PROVIDER_CHANGED,()=>{this.clear(),this.listenToProviderEvents()}),this.listenToProviderEvents()}listenToProviderEvents(){const A=this.requestManager.provider;!this.requestManager.provider||typeof(A==null?void 0:A.supportsSubscriptions)=="function"&&!(A!=null&&A.supportsSubscriptions())||typeof this.requestManager.provider.on=="function"&&(typeof this.requestManager.provider.request=="function"?this.requestManager.provider.on("message",t=>this.messageListener(t)):A.on("data",t=>this.messageListener(t)))}messageListener(A){var t,i,o;if(!A)throw new fa("Should not call messageListener with no data. Type was");const r=((t=A.params)===null||t===void 0?void 0:t.subscription)||((i=A.data)===null||i===void 0?void 0:i.subscription)||((o=A.id)===null||o===void 0?void 0:o.toString(16));if(r){const f=this._subscriptions.get(r);f==null||f.processSubscriptionData(A)}}subscribe(A,t,i=en){return Ol(this,void 0,void 0,function*(){const o=this.registeredSubscriptions[A];if(!o)throw new fa("Invalid subscription type");const r=new o(t??void 0,{subscriptionManager:this,returnFormat:i});return yield this.addSubscription(r),r})}get subscriptions(){return this._subscriptions}addSubscription(A){return Ol(this,void 0,void 0,function*(){if(!this.requestManager.provider)throw new iQ("Provider not available");if(!this.supportsSubscriptions())throw new fa("The current provider does not support subscriptions");if(A.id&&this._subscriptions.has(A.id))throw new fa(`Subscription with id "${A.id}" already exists`);if(yield A.sendSubscriptionRequest(),Me(A.id))throw new fa("Subscription is not subscribed yet.");return this._subscriptions.set(A.id,A),A.id})}removeSubscription(A){return Ol(this,void 0,void 0,function*(){const{id:t}=A;if(Me(t))throw new fa("Subscription is not subscribed yet. Or, had already been unsubscribed but not through the Subscription Manager.");if(!this._subscriptions.has(t)&&!this.tolerateUnlinkedSubscription)throw new fa(`Subscription with id "${t.toString()}" does not exists`);return yield A.sendUnsubscribeRequest(),this._subscriptions.delete(t),t})}unsubscribe(A){return Ol(this,void 0,void 0,function*(){const t=[];for(const[i,o]of this.subscriptions.entries())(!A||typeof A=="function"&&A({id:i,sub:o}))&&t.push(this.removeSubscription(o));return Promise.all(t)})}clear(){this._subscriptions.clear()}supportsSubscriptions(){return Me(this.requestManager.provider)?!1:fMA(this.requestManager.provider)}}var jl=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class KB extends hD{constructor(A,t){var i;super(),this.args=A;const{requestManager:o}=t,{subscriptionManager:r}=t;o?this._subscriptionManager=new gN(o,{},!0):this._subscriptionManager=r,this._returnFormat=(i=t==null?void 0:t.returnFormat)!==null&&i!==void 0?i:en}get id(){return this._id}get lastBlock(){return this._lastBlock}subscribe(){return jl(this,void 0,void 0,function*(){return this._subscriptionManager.addSubscription(this)})}processSubscriptionData(A){var t,i;A!=null&&A.data?this._processSubscriptionResult((i=(t=A==null?void 0:A.data)===null||t===void 0?void 0:t.result)!==null&&i!==void 0?i:A==null?void 0:A.data):A&&fD(A)&&this._processSubscriptionResult(A==null?void 0:A.params.result)}sendSubscriptionRequest(){return jl(this,void 0,void 0,function*(){return this._id=yield this._subscriptionManager.requestManager.send({method:"eth_subscribe",params:this._buildSubscriptionParams()}),this.emit("connected",this._id),this._id})}get returnFormat(){return this._returnFormat}get subscriptionManager(){return this._subscriptionManager}resubscribe(){return jl(this,void 0,void 0,function*(){yield this.unsubscribe(),yield this.subscribe()})}unsubscribe(){return jl(this,void 0,void 0,function*(){this.id&&(yield this._subscriptionManager.removeSubscription(this))})}sendUnsubscribeRequest(){return jl(this,void 0,void 0,function*(){yield this._subscriptionManager.requestManager.send({method:"eth_unsubscribe",params:[this.id]}),this._id=void 0})}formatSubscriptionResult(A){return A}_processSubscriptionResult(A){this.emit("data",this.formatSubscriptionResult(A))}_processSubscriptionError(A){this.emit("error",A)}_buildSubscriptionParams(){throw new Error("Implement in the child class")}}var ph=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class Hp extends pwA{constructor(){super(...arguments),this._addressMap=new Map,this._defaultKeyName="web3js_wallet"}static getStorage(){let A;try{A=window.localStorage;const t="__storage_test__";return A.setItem(t,t),A.removeItem(t),A}catch(t){return t&&(t.code===22||t.code===1014||t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED")&&!TA(A)&&A.length!==0?A:void 0}}create(A){for(let t=0;tph(this,void 0,void 0,function*(){return i.encrypt(A,t)})))})}decrypt(A,t,i){return ph(this,void 0,void 0,function*(){const o=yield Promise.all(A.map(r=>ph(this,void 0,void 0,function*(){return this._accountProvider.decrypt(r,t,i)})));for(const r of o)this.add(r);return this})}save(A,t){return ph(this,void 0,void 0,function*(){const i=Hp.getStorage();if(!i)throw new Error("Local storage not available.");return i.setItem(t??this._defaultKeyName,JSON.stringify(yield this.encrypt(A))),!0})}load(A,t){return ph(this,void 0,void 0,function*(){const i=Hp.getStorage();if(!i)throw new Error("Local storage not available.");const o=i.getItem(t??this._defaultKeyName);return o&&(yield this.decrypt(JSON.parse(o)||[],A)),this})}}const Qs={web:NE};function xW(e,A,t){if(!t.startsWith("aes-"))throw new Error(`AES submodule doesn't support mode ${t}`);if(A.length!==16)throw new Error("AES: wrong IV length");if(t.startsWith("aes-128")&&e.length!==16||t.startsWith("aes-256")&&e.length!==32)throw new Error("AES: wrong key length")}async function LW(e,A,t){if(!Qs.web)throw new Error("Browser crypto not available.");let i;if(["aes-128-cbc","aes-256-cbc"].includes(e)&&(i="cbc"),["aes-128-ctr","aes-256-ctr"].includes(e)&&(i="ctr"),!i)throw new Error("AES: unsupported mode");return[await Qs.web.subtle.importKey("raw",A,{name:`AES-${i.toUpperCase()}`,length:A.length*8},!0,["encrypt","decrypt"]),{name:`aes-${i}`,iv:t,counter:t,length:128}]}async function CK(e,A,t,i="aes-128-ctr",o=!0){if(xW(A,t,i),Qs.web){const[r,f]=await LW(i,A,t),h=await Qs.web.subtle.encrypt(f,r,e);let d=new Uint8Array(h);return!o&&f.name==="aes-cbc"&&!(e.length%16)&&(d=d.slice(0,-16)),d}else if(Qs.node){const r=Qs.node.createCipheriv(i,A,t);return r.setAutoPadding(o),CS(r.update(e),r.final())}else throw new Error("The environment doesn't have AES module")}async function hMA(e,A,t,i){const o=e.slice(-16);for(let f=0;f<16;f++)o[f]^=t[f]^16;return(await CK(o,A,t,i)).slice(0,16)}async function cMA(e,A,t,i="aes-128-ctr",o=!0){if(xW(A,t,i),Qs.web){const[r,f]=await LW(i,A,t);if(!o&&f.name==="aes-cbc"){const p=await hMA(e,A,t,i);e=CS(e,p)}const h=await Qs.web.subtle.decrypt(f,r,e),d=new Uint8Array(h);if(f.name==="aes-cbc"){const p=await CK(d,A,t,i);if(!phA(p,e))throw new Error("AES: wrong padding")}return d}else if(Qs.node){const r=Qs.node.createDecipheriv(i,A,t);return r.setAutoPadding(o),CS(r.update(e),r.final())}else throw new Error("The environment doesn't have AES module")}let UW=class extends Z3{constructor(A,t){super(),this.finished=!1,this.destroyed=!1,W3(A);const i=eu(t);if(this.iHash=A.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const o=this.blockLen,r=new Uint8Array(o);r.set(i.length>o?A.create().update(i).digest():i);for(let f=0;fnew UW(e,A).update(t).digest();_W.create=(e,A)=>new UW(e,A);function uMA(e,A,t,i){W3(e);const o=sP({dkLen:32,asyncTick:10},i),{c:r,dkLen:f,asyncTick:h}=o;if(Jr(r),Jr(f),Jr(h),r<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const d=eu(A),p=eu(t),C=new Uint8Array(f),y=_W.create(e,d),w=y._cloneInto().update(p);return{c:r,dkLen:f,asyncTick:h,DK:C,PRF:y,PRFSalt:w}}function lMA(e,A,t,i,o){return e.destroy(),A.destroy(),i&&i.destroy(),o.fill(0),t}function BK(e,A,t,i){const{c:o,dkLen:r,DK:f,PRF:h,PRFSalt:d}=uMA(e,A,t,i);let p;const C=new Uint8Array(4),y=RE(C),w=new Uint8Array(h.outputLen);for(let D=1,v=0;v0&&(f+=16),u_(t,r,e,A+=16,t,f)}function CMA(e,A,t){const i=sP({dkLen:32,asyncTick:10,maxmem:1073742848},t),{N:o,r,p:f,dkLen:h,asyncTick:d,maxmem:p,onProgress:C}=i;if(Jr(o),Jr(r),Jr(f),Jr(h),Jr(d),Jr(p),C!==void 0&&typeof C!="function")throw new Error("progressCb should be function");const y=128*r,w=y/4;if(o<=1||o&o-1||o>=2**(y/8)||o>2**32)throw new Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(f<0||f>(2**32-1)*32/y)throw new Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(h<0||h>(2**32-1)*32)throw new Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");const D=y*(o+f);if(D>p)throw new Error(`Scrypt: parameters too large, ${D} (128 * r * (N + p)) > ${p} (maxmem)`);const v=BK(pw,e,A,{c:1,dkLen:y*f}),M=kE(v),R=kE(new Uint8Array(y*o)),b=kE(new Uint8Array(y));let S=()=>{};if(C){const G=2*o*f,U=Math.max(Math.floor(G/1e4),1);let P=0;S=()=>{P++,C&&(!(P%U)||P===G)&&C(P/G)}}return{N:o,r,p:f,dkLen:h,blockSize32:w,V:R,B32:M,B:v,tmp:b,blockMixCb:S,asyncTick:d}}function BMA(e,A,t,i,o){const r=BK(pw,e,t,{c:1,dkLen:A});return t.fill(0),i.fill(0),o.fill(0),r}function dMA(e,A,t){const{N:i,r:o,p:r,dkLen:f,blockSize32:h,V:d,B32:p,B:C,tmp:y,blockMixCb:w}=CMA(e,A,t);WQ||VQ(p);for(let D=0;D0&&!A.includes(e.length))throw new Error(`Uint8Array expected of length ${A}, not of length=${e.length}`)}function QMA(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");l_(e.outputLen),l_(e.blockLen)}function Yp(e,A=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(A&&e.finished)throw new Error("Hash#digest() has already been called")}function pMA(e,A){uD(e);const t=A.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),rs=(e,A)=>e<<32-A|e>>>A;new Uint8Array(new Uint32Array([287454020]).buffer)[0];function yMA(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function dK(e){return typeof e=="string"&&(e=yMA(e)),uD(e),e}function wMA(...e){let A=0;for(let i=0;ie().update(dK(i)).digest(),t=e();return A.outputLen=t.outputLen,A.blockLen=t.blockLen,A.create=()=>e(),A}function mMA(e=32){if(o2&&typeof o2.getRandomValues=="function")return o2.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function vMA(e,A,t,i){if(typeof e.setBigUint64=="function")return e.setBigUint64(A,t,i);const o=BigInt(32),r=BigInt(4294967295),f=Number(t>>o&r),h=Number(t&r),d=i?4:0,p=i?0:4;e.setUint32(A+d,f,i),e.setUint32(A+p,h,i)}const MMA=(e,A,t)=>e&A^~e&t,bMA=(e,A,t)=>e&A^e&t^A&t;class SMA extends YW{constructor(A,t,i,o){super(),this.blockLen=A,this.outputLen=t,this.padOffset=i,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(A),this.view=s2(this.buffer)}update(A){Yp(this);const{view:t,buffer:i,blockLen:o}=this;A=dK(A);const r=A.length;for(let f=0;fo-f&&(this.process(i,0),f=0);for(let y=f;yC.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;y>>3,M=rs(D,17)^rs(D,19)^D>>>10;cg[y]=M+cg[y-7]+v+cg[y-16]|0}let{A:i,B:o,C:r,D:f,E:h,F:d,G:p,H:C}=this;for(let y=0;y<64;y++){const w=rs(h,6)^rs(h,11)^rs(h,25),D=C+w+MMA(h,d,p)+NMA[y]+cg[y]|0,M=(rs(i,2)^rs(i,13)^rs(i,22))+bMA(i,o,r)|0;C=p,p=d,d=h,h=f+D|0,f=r,r=o,o=i,i=D+M|0}i=i+this.A|0,o=o+this.B|0,r=r+this.C|0,f=f+this.D|0,h=h+this.E|0,d=d+this.F|0,p=p+this.G|0,C=C+this.H|0,this.set(i,o,r,f,h,d,p,C)}roundClean(){cg.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const RMA=DMA(()=>new kMA);class JW extends YW{constructor(A,t){super(),this.finished=!1,this.destroyed=!1,QMA(A);const i=dK(t);if(this.iHash=A.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const o=this.blockLen,r=new Uint8Array(o);r.set(i.length>o?A.create().update(i).digest():i);for(let f=0;fnew JW(e,A).update(t).digest();TW.create=(e,A)=>new JW(e,A);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const PW=BigInt(0),lD=BigInt(1),KMA=BigInt(2);function Hf(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function GB(e){if(!Hf(e))throw new Error("Uint8Array expected")}const GMA=Array.from({length:256},(e,A)=>A.toString(16).padStart(2,"0"));function Qu(e){GB(e);let A="";for(let t=0;t=ra._0&&e<=ra._9)return e-ra._0;if(e>=ra._A&&e<=ra._F)return e-(ra._A-10);if(e>=ra._a&&e<=ra._f)return e-(ra._a-10)}function pu(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);const A=e.length,t=A/2;if(A%2)throw new Error("padded hex string expected, got unpadded hex of length "+A);const i=new Uint8Array(t);for(let o=0,r=0;oPW;e>>=lD,A+=1);return A}function _MA(e,A){return e>>BigInt(A)&lD}function qMA(e,A,t){return e|(t?lD:PW)<(KMA<new Uint8Array(e),B_=e=>Uint8Array.from(e);function jW(e,A,t){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof A!="number"||A<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let i=a2(e),o=a2(e),r=0;const f=()=>{i.fill(1),o.fill(0),r=0},h=(...y)=>t(o,i,...y),d=(y=a2())=>{o=h(B_([0]),y),i=h(),y.length!==0&&(o=h(B_([1]),y),i=h())},p=()=>{if(r++>=1e3)throw new Error("drbg: tried 1000 values");let y=0;const w=[];for(;y{f(),d(y);let D;for(;!(D=w(p()));)d();return f(),D}}const HMA={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||Hf(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,A)=>A.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function FB(e,A,t={}){const i=(o,r,f)=>{const h=HMA[r];if(typeof h!="function")throw new Error(`Invalid validator "${r}", expected function`);const d=e[o];if(!(f&&d===void 0)&&!h(d,e))throw new Error(`Invalid param ${String(o)}=${d} (${typeof d}), expected ${r}`)};for(const[o,r]of Object.entries(A))i(o,r,!1);for(const[o,r]of Object.entries(t))i(o,r,!0);return e}const YMA=Object.freeze(Object.defineProperty({__proto__:null,abytes:GB,bitGet:_MA,bitLen:UMA,bitMask:yK,bitSet:qMA,bytesToHex:Qu,bytesToNumberBE:df,bytesToNumberLE:QK,concatBytes:UC,createHmacDrbg:jW,ensureBytes:bo,equalBytes:xMA,hexToBytes:pu,hexToNumber:EK,isBytes:Hf,numberToBytesBE:yu,numberToBytesLE:pK,numberToHexUnpadded:OW,numberToVarBytesBE:FMA,utf8ToBytes:LMA,validateObject:FB},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Gi=BigInt(0),ni=BigInt(1),_I=BigInt(2),JMA=BigInt(3),IN=BigInt(4),d_=BigInt(5),E_=BigInt(8);BigInt(9);BigInt(16);function Hr(e,A){const t=e%A;return t>=Gi?t:A+t}function TMA(e,A,t){if(t<=Gi||A 0");if(t===ni)return Gi;let i=ni;for(;A>Gi;)A&ni&&(i=i*e%t),e=e*e%t,A>>=ni;return i}function Un(e,A,t){let i=e;for(;A-- >Gi;)i*=i,i%=t;return i}function fN(e,A){if(e===Gi||A<=Gi)throw new Error(`invert: expected positive integers, got n=${e} mod=${A}`);let t=Hr(e,A),i=A,o=Gi,r=ni;for(;t!==Gi;){const h=i/t,d=i%t,p=o-r*h;i=t,t=d,o=r,r=p}if(i!==ni)throw new Error("invert: does not exist");return Hr(o,A)}function PMA(e){const A=(e-ni)/_I;let t,i,o;for(t=e-ni,i=0;t%_I===Gi;t/=_I,i++);for(o=_I;o(i[o]="function",i),A);return FB(e,t)}function VMA(e,A,t){if(t 0");if(t===Gi)return e.ONE;if(t===ni)return A;let i=e.ONE,o=A;for(;t>Gi;)t&ni&&(i=e.mul(i,o)),o=e.sqr(o),t>>=ni;return i}function ZMA(e,A){const t=new Array(A.length),i=A.reduce((r,f,h)=>e.is0(f)?r:(t[h]=r,e.mul(r,f)),e.ONE),o=e.inv(i);return A.reduceRight((r,f,h)=>e.is0(f)?r:(t[h]=e.mul(r,t[h]),e.mul(r,f)),o),t}function WW(e,A){const t=A!==void 0?A:e.toString(2).length,i=Math.ceil(t/8);return{nBitLength:t,nByteLength:i}}function zMA(e,A,t=!1,i={}){if(e<=Gi)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:o,nByteLength:r}=WW(e,A);if(r>2048)throw new Error("Field lengths over 2048 bytes are not supported");const f=OMA(e),h=Object.freeze({ORDER:e,BITS:o,BYTES:r,MASK:yK(o),ZERO:Gi,ONE:ni,create:d=>Hr(d,e),isValid:d=>{if(typeof d!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof d}`);return Gi<=d&&dd===Gi,isOdd:d=>(d&ni)===ni,neg:d=>Hr(-d,e),eql:(d,p)=>d===p,sqr:d=>Hr(d*d,e),add:(d,p)=>Hr(d+p,e),sub:(d,p)=>Hr(d-p,e),mul:(d,p)=>Hr(d*p,e),pow:(d,p)=>VMA(h,d,p),div:(d,p)=>Hr(d*fN(p,e),e),sqrN:d=>d*d,addN:(d,p)=>d+p,subN:(d,p)=>d-p,mulN:(d,p)=>d*p,inv:d=>fN(d,e),sqrt:i.sqrt||(d=>f(h,d)),invertBatch:d=>ZMA(h,d),cmov:(d,p,C)=>C?p:d,toBytes:d=>t?pK(d,r):yu(d,r),fromBytes:d=>{if(d.length!==r)throw new Error(`Fp.fromBytes: expected ${r}, got ${d.length}`);return t?QK(d):df(d)}});return Object.freeze(h)}function VW(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const A=e.toString(2).length;return Math.ceil(A/8)}function ZW(e){const A=VW(e);return A+Math.ceil(A/2)}function $MA(e,A,t=!1){const i=e.length,o=VW(A),r=ZW(A);if(i<16||i1024)throw new Error(`expected ${r}-1024 bytes of input, got ${i}`);const f=t?df(e):QK(e),h=Hr(f,A-ni)+ni;return t?pK(h,o):yu(h,o)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const XMA=BigInt(0),g2=BigInt(1);function A2A(e,A){const t=(o,r)=>{const f=r.negate();return o?f:r},i=o=>{const r=Math.ceil(A/o)+1,f=2**(o-1);return{windows:r,windowSize:f}};return{constTimeNegate:t,unsafeLadder(o,r){let f=e.ZERO,h=o;for(;r>XMA;)r&g2&&(f=f.add(h)),h=h.double(),r>>=g2;return f},precomputeWindow(o,r){const{windows:f,windowSize:h}=i(r),d=[];let p=o,C=p;for(let y=0;y>=D,R>d&&(R-=w,f+=g2);const b=M,S=M+Math.abs(R)-1,G=v%2!==0,U=R<0;R===0?C=C.add(t(G,r[b])):p=p.add(t(U,r[S]))}return{p,f:C}},wNAFCached(o,r,f,h){const d=o._WINDOW_SIZE||1;let p=r.get(o);return p||(p=this.precomputeWindow(o,d),d!==1&&r.set(o,h(p))),this.wNAF(d,p,f)}}}function zW(e){return WMA(e.Fp),FB(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...WW(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function e2A(e){const A=zW(e);FB(A,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:t,Fp:i,a:o}=A;if(t){if(!i.eql(o,i.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...A})}const{bytesToNumberBE:t2A,hexToBytes:i2A}=YMA,WI={Err:class extends Error{constructor(A=""){super(A)}},_parseInt(e){const{Err:A}=WI;if(e.length<2||e[0]!==2)throw new A("Invalid signature integer tag");const t=e[1],i=e.subarray(2,t+2);if(!t||i.length!==t)throw new A("Invalid signature integer: wrong length");if(i[0]&128)throw new A("Invalid signature integer: negative");if(i[0]===0&&!(i[1]&128))throw new A("Invalid signature integer: unnecessary leading zero");return{d:t2A(i),l:e.subarray(t+2)}},toSig(e){const{Err:A}=WI,t=typeof e=="string"?i2A(e):e;GB(t);let i=t.length;if(i<2||t[0]!=48)throw new A("Invalid signature tag");if(t[1]!==i-2)throw new A("Invalid signature: incorrect length");const{d:o,l:r}=WI._parseInt(t.subarray(2)),{d:f,l:h}=WI._parseInt(r);if(h.length)throw new A("Invalid signature: left bytes after parsing");return{r:o,s:f}},hexFromSig(e){const A=p=>Number.parseInt(p[0],16)&8?"00"+p:p,t=p=>{const C=p.toString(16);return C.length&1?`0${C}`:C},i=A(t(e.s)),o=A(t(e.r)),r=i.length/2,f=o.length/2,h=t(r),d=t(f);return`30${t(f+r+4)}02${d}${o}02${h}${i}`}},da=BigInt(0),Wn=BigInt(1);BigInt(2);const Q_=BigInt(3);BigInt(4);function r2A(e){const A=e2A(e),{Fp:t}=A,i=A.toBytes||((v,M,R)=>{const b=M.toAffine();return UC(Uint8Array.from([4]),t.toBytes(b.x),t.toBytes(b.y))}),o=A.fromBytes||(v=>{const M=v.subarray(1),R=t.fromBytes(M.subarray(0,t.BYTES)),b=t.fromBytes(M.subarray(t.BYTES,2*t.BYTES));return{x:R,y:b}});function r(v){const{a:M,b:R}=A,b=t.sqr(v),S=t.mul(b,v);return t.add(t.add(S,t.mul(v,M)),R)}if(!t.eql(t.sqr(A.Gy),r(A.Gx)))throw new Error("bad generator point: equation left != right");function f(v){return typeof v=="bigint"&&dat.eql(G,t.ZERO);return S(R)&&S(b)?y.ZERO:new y(R,b,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(M){const R=t.invertBatch(M.map(b=>b.pz));return M.map((b,S)=>b.toAffine(R[S])).map(y.fromAffine)}static fromHex(M){const R=y.fromAffine(o(bo("pointHex",M)));return R.assertValidity(),R}static fromPrivateKey(M){return y.BASE.multiply(d(M))}_setWindowSize(M){this._WINDOW_SIZE=M,p.delete(this)}assertValidity(){if(this.is0()){if(A.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:M,y:R}=this.toAffine();if(!t.isValid(M)||!t.isValid(R))throw new Error("bad point: x or y not FE");const b=t.sqr(R),S=r(M);if(!t.eql(b,S))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:M}=this.toAffine();if(t.isOdd)return!t.isOdd(M);throw new Error("Field doesn't support isOdd")}equals(M){C(M);const{px:R,py:b,pz:S}=this,{px:G,py:U,pz:P}=M,z=t.eql(t.mul(R,P),t.mul(G,S)),oA=t.eql(t.mul(b,P),t.mul(U,S));return z&&oA}negate(){return new y(this.px,t.neg(this.py),this.pz)}double(){const{a:M,b:R}=A,b=t.mul(R,Q_),{px:S,py:G,pz:U}=this;let P=t.ZERO,z=t.ZERO,oA=t.ZERO,J=t.mul(S,S),q=t.mul(G,G),X=t.mul(U,U),Q=t.mul(S,G);return Q=t.add(Q,Q),oA=t.mul(S,U),oA=t.add(oA,oA),P=t.mul(M,oA),z=t.mul(b,X),z=t.add(P,z),P=t.sub(q,z),z=t.add(q,z),z=t.mul(P,z),P=t.mul(Q,P),oA=t.mul(b,oA),X=t.mul(M,X),Q=t.sub(J,X),Q=t.mul(M,Q),Q=t.add(Q,oA),oA=t.add(J,J),J=t.add(oA,J),J=t.add(J,X),J=t.mul(J,Q),z=t.add(z,J),X=t.mul(G,U),X=t.add(X,X),J=t.mul(X,Q),P=t.sub(P,J),oA=t.mul(X,q),oA=t.add(oA,oA),oA=t.add(oA,oA),new y(P,z,oA)}add(M){C(M);const{px:R,py:b,pz:S}=this,{px:G,py:U,pz:P}=M;let z=t.ZERO,oA=t.ZERO,J=t.ZERO;const q=A.a,X=t.mul(A.b,Q_);let Q=t.mul(R,G),n=t.mul(b,U),a=t.mul(S,P),g=t.add(R,b),I=t.add(G,U);g=t.mul(g,I),I=t.add(Q,n),g=t.sub(g,I),I=t.add(R,S);let c=t.add(G,P);return I=t.mul(I,c),c=t.add(Q,a),I=t.sub(I,c),c=t.add(b,S),z=t.add(U,P),c=t.mul(c,z),z=t.add(n,a),c=t.sub(c,z),J=t.mul(q,I),z=t.mul(X,a),J=t.add(z,J),z=t.sub(n,J),J=t.add(n,J),oA=t.mul(z,J),n=t.add(Q,Q),n=t.add(n,Q),a=t.mul(q,a),I=t.mul(X,I),n=t.add(n,a),a=t.sub(Q,a),a=t.mul(q,a),I=t.add(I,a),Q=t.mul(n,I),oA=t.add(oA,Q),Q=t.mul(c,I),z=t.mul(g,z),z=t.sub(z,Q),Q=t.mul(g,n),J=t.mul(c,J),J=t.add(J,Q),new y(z,oA,J)}subtract(M){return this.add(M.negate())}is0(){return this.equals(y.ZERO)}wNAF(M){return D.wNAFCached(this,p,M,R=>{const b=t.invertBatch(R.map(S=>S.pz));return R.map((S,G)=>S.toAffine(b[G])).map(y.fromAffine)})}multiplyUnsafe(M){const R=y.ZERO;if(M===da)return R;if(h(M),M===Wn)return this;const{endo:b}=A;if(!b)return D.unsafeLadder(this,M);let{k1neg:S,k1:G,k2neg:U,k2:P}=b.splitScalar(M),z=R,oA=R,J=this;for(;G>da||P>da;)G&Wn&&(z=z.add(J)),P&Wn&&(oA=oA.add(J)),J=J.double(),G>>=Wn,P>>=Wn;return S&&(z=z.negate()),U&&(oA=oA.negate()),oA=new y(t.mul(oA.px,b.beta),oA.py,oA.pz),z.add(oA)}multiply(M){h(M);let R=M,b,S;const{endo:G}=A;if(G){const{k1neg:U,k1:P,k2neg:z,k2:oA}=G.splitScalar(R);let{p:J,f:q}=this.wNAF(P),{p:X,f:Q}=this.wNAF(oA);J=D.constTimeNegate(U,J),X=D.constTimeNegate(z,X),X=new y(t.mul(X.px,G.beta),X.py,X.pz),b=J.add(X),S=q.add(Q)}else{const{p:U,f:P}=this.wNAF(R);b=U,S=P}return y.normalizeZ([b,S])[0]}multiplyAndAddUnsafe(M,R,b){const S=y.BASE,G=(P,z)=>z===da||z===Wn||!P.equals(S)?P.multiplyUnsafe(z):P.multiply(z),U=G(this,R).add(G(M,b));return U.is0()?void 0:U}toAffine(M){const{px:R,py:b,pz:S}=this,G=this.is0();M==null&&(M=G?t.ONE:t.inv(S));const U=t.mul(R,M),P=t.mul(b,M),z=t.mul(S,M);if(G)return{x:t.ZERO,y:t.ZERO};if(!t.eql(z,t.ONE))throw new Error("invZ was invalid");return{x:U,y:P}}isTorsionFree(){const{h:M,isTorsionFree:R}=A;if(M===Wn)return!0;if(R)return R(y,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:M,clearCofactor:R}=A;return M===Wn?this:R?R(y,this):this.multiplyUnsafe(A.h)}toRawBytes(M=!0){return this.assertValidity(),i(y,this,M)}toHex(M=!0){return Qu(this.toRawBytes(M))}}y.BASE=new y(A.Gx,A.Gy,t.ONE),y.ZERO=new y(t.ZERO,t.ONE,t.ZERO);const w=A.nBitLength,D=A2A(y,A.endo?Math.ceil(w/2):w);return{CURVE:A,ProjectivePoint:y,normPrivateKeyToScalar:d,weierstrassEquation:r,isWithinCurveOrder:f}}function n2A(e){const A=zW(e);return FB(A,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...A})}function o2A(e){const A=n2A(e),{Fp:t,n:i}=A,o=t.BYTES+1,r=2*t.BYTES+1;function f(I){return daQu(yu(I,A.nByteLength));function v(I){const c=i>>Wn;return I>c}function M(I){return v(I)?h(-I):I}const R=(I,c,B)=>df(I.slice(c,B));class b{constructor(c,B,E){this.r=c,this.s=B,this.recovery=E,this.assertValidity()}static fromCompact(c){const B=A.nByteLength;return c=bo("compactSignature",c,B*2),new b(R(c,0,B),R(c,B,2*B))}static fromDER(c){const{r:B,s:E}=WI.toSig(bo("DER",c));return new b(B,E)}assertValidity(){if(!w(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!w(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(c){return new b(this.r,this.s,c)}recoverPublicKey(c){const{r:B,s:E,recovery:u}=this,s=oA(bo("msgHash",c));if(u==null||![0,1,2,3].includes(u))throw new Error("recovery id invalid");const l=u===2||u===3?B+A.n:B;if(l>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");const m=u&1?"03":"02",N=p.fromHex(m+D(l)),L=d(l),O=h(-s*L),H=h(E*L),K=p.BASE.multiplyAndAddUnsafe(N,O,H);if(!K)throw new Error("point at infinify");return K.assertValidity(),K}hasHighS(){return v(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,h(-this.s),this.recovery):this}toDERRawBytes(){return pu(this.toDERHex())}toDERHex(){return WI.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return pu(this.toCompactHex())}toCompactHex(){return D(this.r)+D(this.s)}}const S={isValidPrivateKey(I){try{return C(I),!0}catch{return!1}},normPrivateKeyToScalar:C,randomPrivateKey:()=>{const I=ZW(A.n);return $MA(A.randomBytes(I),A.n)},precompute(I=8,c=p.BASE){return c._setWindowSize(I),c.multiply(BigInt(3)),c}};function G(I,c=!0){return p.fromPrivateKey(I).toRawBytes(c)}function U(I){const c=Hf(I),B=typeof I=="string",E=(c||B)&&I.length;return c?E===o||E===r:B?E===2*o||E===2*r:I instanceof p}function P(I,c,B=!0){if(U(I))throw new Error("first arg must be private key");if(!U(c))throw new Error("second arg must be public key");return p.fromHex(c).multiply(C(I)).toRawBytes(B)}const z=A.bits2int||function(I){const c=df(I),B=I.length*8-A.nBitLength;return B>0?c>>BigInt(B):c},oA=A.bits2int_modN||function(I){return h(z(I))},J=yK(A.nBitLength);function q(I){if(typeof I!="bigint")throw new Error("bigint expected");if(!(da<=I&&IW in B))throw new Error("sign() legacy options not supported");const{hash:E,randomBytes:u}=A;let{lowS:s,prehash:l,extraEntropy:m}=B;s==null&&(s=!0),I=bo("msgHash",I),l&&(I=bo("prehashed msgHash",E(I)));const N=oA(I),L=C(c),O=[q(L),q(N)];if(m!=null&&m!==!1){const W=m===!0?u(t.BYTES):m;O.push(bo("extraEntropy",W))}const H=UC(...O),K=N;function Y(W){const $=z(W);if(!w($))return;const V=d($),_=p.BASE.multiply($).toAffine(),j=h(_.x);if(j===da)return;const sA=h(V*h(K+j*L));if(sA===da)return;let iA=(_.x===j?0:2)|Number(_.y&Wn),aA=sA;return s&&v(sA)&&(aA=M(sA),iA^=1),new b(j,aA,iA)}return{seed:H,k2sig:Y}}const Q={lowS:A.lowS,prehash:!1},n={lowS:A.lowS,prehash:!1};function a(I,c,B=Q){const{seed:E,k2sig:u}=X(I,c,B),s=A;return jW(s.hash.outputLen,s.nByteLength,s.hmac)(E,u)}p.BASE._setWindowSize(8);function g(I,c,B,E=n){var _;const u=I;if(c=bo("msgHash",c),B=bo("publicKey",B),"strict"in E)throw new Error("options.strict was renamed to lowS");const{lowS:s,prehash:l}=E;let m,N;try{if(typeof u=="string"||Hf(u))try{m=b.fromDER(u)}catch(j){if(!(j instanceof WI.Err))throw j;m=b.fromCompact(u)}else if(typeof u=="object"&&typeof u.r=="bigint"&&typeof u.s=="bigint"){const{r:j,s:sA}=u;m=new b(j,sA)}else throw new Error("PARSE");N=p.fromHex(B)}catch(j){if(j.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(s&&m.hasHighS())return!1;l&&(c=A.hash(c));const{r:L,s:O}=m,H=oA(c),K=d(O),Y=h(H*K),W=h(L*K),$=(_=p.BASE.multiplyAndAddUnsafe(N,Y,W))==null?void 0:_.toAffine();return $?h($.x)===L:!1}return{CURVE:A,getPublicKey:G,getSharedSecret:P,sign:a,verify:g,ProjectivePoint:p,Signature:b,utils:S}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function s2A(e){return{hash:e,hmac:(A,...t)=>TW(e,A,wMA(...t)),randomBytes:mMA}}function a2A(e,A){const t=i=>o2A({...e,...s2A(i)});return Object.freeze({...t(A),create:t})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const $W=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),p_=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),g2A=BigInt(1),hN=BigInt(2),y_=(e,A)=>(e+A/hN)/A;function I2A(e){const A=$W,t=BigInt(3),i=BigInt(6),o=BigInt(11),r=BigInt(22),f=BigInt(23),h=BigInt(44),d=BigInt(88),p=e*e*e%A,C=p*p*e%A,y=Un(C,t,A)*C%A,w=Un(y,t,A)*C%A,D=Un(w,hN,A)*p%A,v=Un(D,o,A)*D%A,M=Un(v,r,A)*v%A,R=Un(M,h,A)*M%A,b=Un(R,d,A)*R%A,S=Un(b,h,A)*M%A,G=Un(S,t,A)*C%A,U=Un(G,f,A)*v%A,P=Un(U,i,A)*p%A,z=Un(P,hN,A);if(!cN.eql(cN.sqr(z),e))throw new Error("Cannot find square root");return z}const cN=zMA($W,void 0,void 0,{sqrt:I2A}),Il=a2A({a:BigInt(0),b:BigInt(7),Fp:cN,n:p_,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const A=p_,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),i=-g2A*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),r=t,f=BigInt("0x100000000000000000000000000000000"),h=y_(r*e,A),d=y_(-i*e,A);let p=Hr(e-h*t-d*o,A),C=Hr(-h*i-d*r,A);const y=p>f,w=C>f;if(y&&(p=A-p),w&&(C=A-C),p>f||C>f)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:y,k1:p,k2neg:w,k2:C}}}},RMA);BigInt(0);Il.ProjectivePoint;const f2A=Object.freeze(Object.defineProperty({__proto__:null,secp256k1:Il},Symbol.toStringTag,{value:"Module"}));var I2;const Ag=(I2=Il)!==null&&I2!==void 0?I2:f2A,w_=BigInt("0xffffffffffffffff"),_C=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),h2A=Ag.CURVE.n,c2A=h2A/BigInt(2),u2A={type:"object",required:["crypto","id","version","address"],properties:{crypto:{type:"object",required:["cipher","ciphertext","cipherparams","kdf","kdfparams","mac"],properties:{cipher:{type:"string"},ciphertext:{type:"string"},cipherparams:{type:"object"},kdf:{type:"string"},kdfparams:{type:"object"},salt:{type:"string"},mac:{type:"string"}}},id:{type:"string"},version:{type:"number"},address:{type:"string"}}};var Jp;(function(e){e[e.Mainnet=1]="Mainnet",e[e.Goerli=5]="Goerli",e[e.Sepolia=11155111]="Sepolia"})(Jp||(Jp={}));var vt;(function(e){e.Chainstart="chainstart",e.Homestead="homestead",e.Dao="dao",e.TangerineWhistle="tangerineWhistle",e.SpuriousDragon="spuriousDragon",e.Byzantium="byzantium",e.Constantinople="constantinople",e.Petersburg="petersburg",e.Istanbul="istanbul",e.MuirGlacier="muirGlacier",e.Berlin="berlin",e.London="london",e.ArrowGlacier="arrowGlacier",e.GrayGlacier="grayGlacier",e.MergeForkIdTransition="mergeForkIdTransition",e.Merge="merge",e.Shanghai="shanghai",e.ShardingForkDev="shardingFork"})(vt||(vt={}));var D_;(function(e){e.ProofOfStake="pos",e.ProofOfWork="pow",e.ProofOfAuthority="poa"})(D_||(D_={}));var m_;(function(e){e.Ethash="ethash",e.Clique="clique",e.Casper="casper"})(m_||(m_={}));var gr;(function(e){e.PolygonMainnet="polygon-mainnet",e.PolygonMumbai="polygon-mumbai",e.ArbitrumRinkebyTestnet="arbitrum-rinkeby-testnet",e.ArbitrumOne="arbitrum-one",e.xDaiChain="x-dai-chain",e.OptimisticKovan="optimistic-kovan",e.OptimisticEthereum="optimistic-ethereum"})(gr||(gr={}));var eo;(function(e){e[e.Number=0]="Number",e[e.BigInt=1]="BigInt",e[e.Uint8Array=2]="Uint8Array",e[e.PrefixedHexString=3]="PrefixedHexString"})(eo||(eo={}));const XW=e=>{if(typeof e!="string")throw new Error(`[stripHexPrefix] input must be type 'string', received ${typeof e}`);return tK(e)?e.slice(2):e};function l2A(e){return!e||e==="0x0"?"0x0000000000000000":tK(e)?`0x${XW(e).padStart(16,"0")}`:`0x${e.padStart(16,"0")}`}const AV=function(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Received an invalid integer type: ${e}`);return`0x${e.toString(16)}`};function C2A(e,A=!0){var t,i;const{name:o,config:r,difficulty:f,mixHash:h,gasLimit:d,coinbase:p,baseFeePerGas:C}=e;let{extraData:y,timestamp:w,nonce:D}=e;const v=Number(w),{chainId:M}=r;if(y===""&&(y="0x"),tK(w)||(w=AV(parseInt(w))),D.length!==18&&(D=l2A(D)),r.eip155Block!==r.eip158Block)throw new Error("EIP155 block number must equal EIP 158 block number since both are part of SpuriousDragon hardfork and the client only supports activating the full hardfork");const R={name:o,chainId:M,networkId:M,genesis:{timestamp:w,gasLimit:parseInt(d),difficulty:parseInt(f),nonce:D,extraData:y,mixHash:h,coinbase:p,baseFeePerGas:C},hardfork:void 0,hardforks:[],bootstrapNodes:[],consensus:r.clique!==void 0?{type:"poa",algorithm:"clique",clique:{period:(t=r.clique.period)!==null&&t!==void 0?t:r.clique.blockperiodseconds,epoch:(i=r.clique.epoch)!==null&&i!==void 0?i:r.clique.epochlength}}:{type:"pow",algorithm:"ethash",ethash:{}}},b={[vt.Homestead]:{name:"homesteadBlock"},[vt.Dao]:{name:"daoForkBlock"},[vt.TangerineWhistle]:{name:"eip150Block"},[vt.SpuriousDragon]:{name:"eip155Block"},[vt.Byzantium]:{name:"byzantiumBlock"},[vt.Constantinople]:{name:"constantinopleBlock"},[vt.Petersburg]:{name:"petersburgBlock"},[vt.Istanbul]:{name:"istanbulBlock"},[vt.MuirGlacier]:{name:"muirGlacierBlock"},[vt.Berlin]:{name:"berlinBlock"},[vt.London]:{name:"londonBlock"},[vt.MergeForkIdTransition]:{name:"mergeForkBlock",postMerge:A},[vt.Shanghai]:{name:"shanghaiTime",postMerge:!0,isTimestamp:!0},[vt.ShardingForkDev]:{name:"shardingForkTime",postMerge:!0,isTimestamp:!0}},S=Object.keys(b).reduce((P,z)=>(P[b[z].name]=z,P),{}),G=Object.keys(r).filter(P=>S[P]!==void 0&&r[P]!==void 0&&r[P]!==null);if(R.hardforks=G.map(P=>({name:S[P],block:b[S[P]].isTimestamp===!0||typeof r[P]!="number"?null:r[P],timestamp:b[S[P]].isTimestamp===!0&&typeof r[P]=="number"?r[P]:void 0})).filter(P=>P.block!==null||P.timestamp!==void 0),R.hardforks.sort((P,z)=>{var oA,J;return((oA=P.block)!==null&&oA!==void 0?oA:1/0)-((J=z.block)!==null&&J!==void 0?J:1/0)}),R.hardforks.sort((P,z)=>{var oA,J;return((oA=P.timestamp)!==null&&oA!==void 0?oA:v)-((J=z.timestamp)!==null&&J!==void 0?J:v)}),r.terminalTotalDifficulty!==void 0){const P={name:vt.Merge,ttd:r.terminalTotalDifficulty,block:null},z=R.hardforks.findIndex(oA=>{var J;return((J=b[oA.name])===null||J===void 0?void 0:J.postMerge)===!0});z!==-1?R.hardforks.splice(z,0,P):R.hardforks.push(P)}const U=R.hardforks.length>0?R.hardforks.slice(-1)[0]:void 0;return R.hardfork=U==null?void 0:U.name,R.hardforks.unshift({name:vt.Chainstart,block:0}),R}function B2A(e,A,t){try{if(["config","difficulty","gasLimit","alloc"].some(i=>!(i in e)))throw new Error("Invalid format, expected geth genesis fields missing");return A!==void 0&&(e.name=A),C2A(e,t)}catch(i){throw new Error(`Error parsing parameters file: ${i.message}`)}}function eV(e){let A=e;if(typeof A!="string")throw new Error(`[padToEven] value must be type 'string', received ${typeof A}`);return A.length%2&&(A=`0${A}`),A}const d2A=function(e){const A=AV(e);return bt(`0x${eV(A.slice(2))}`)},Ut=function(e){var A;if(e==null)return new Uint8Array;if(e instanceof Uint8Array)return e;if(((A=e==null?void 0:e.constructor)===null||A===void 0?void 0:A.name)==="Uint8Array"||Array.isArray(e))return Uint8Array.from(e);if(typeof e=="string"){if(!rW(e))throw new Error(`Cannot convert string to Uint8Array. only supports 0x-prefixed hex strings and this string was given: ${e}`);return bt(eV(XW(e)))}if(typeof e=="number")return Ut(Vr(e));if(typeof e=="bigint"){if(e0&&A.toString()==="0";)e=e.slice(1),A=e[0];return e}const Tp=function(e){return wK(e),p2A(e)},_t=e=>`0x${e.toString(16)}`;function It(e){return Tp(E2A(e))}function y2A(e,A){return e===BigInt(0)||e===BigInt(1)?e:A===void 0?e-BigInt(27):e-(A*BigInt(2)+BigInt(35))}function w2A(e){return e===BigInt(0)||e===BigInt(1)}const DK=function(e,A,t,i,o){const r=y2A(A,o);if(!w2A(r))throw new Error("Invalid signature v value");return new Ag.Signature(Dt(t),Dt(i)).addRecoveryBit(Number(r)).recoverPublicKey(e).toRawBytes(!1).slice(1)};function yh(e,A){if(e===null)return null;if(e===void 0)return;if(typeof e=="string"&&!rW(e))throw new Error(`A string must be provided with a 0x-prefix, given: ${e}`);if(typeof e=="number"&&!Number.isSafeInteger(e))throw new Error("The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)");const t=Ut(e);switch(A){case eo.Uint8Array:return t;case eo.BigInt:return Dt(t);case eo.Number:{const i=Dt(t);if(i>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)");return Number(i)}case eo.PrefixedHexString:return Xe(t);default:throw new Error("unknown outputType")}}var Da={};Object.defineProperty(Da,"__esModule",{value:!0});var Cn=Da.RLP=Da.utils=Da.decode=Da.encode=void 0;function mK(e){if(Array.isArray(e)){const t=[];let i=0;for(let o=0;oe.length)throw new Error("invalid RLP (safeSlice): end slice of Uint8Array out-of-bounds");return e.slice(A,t)}function M_(e){if(e[0]===0)throw new Error("invalid RLP: extra zeros");return nV(rV(e))}function b_(e,A){if(e<56)return Uint8Array.from([e+A]);const t=CN(e),i=t.length/2,o=CN(A+55+i);return Uint8Array.from(Pp(o+t))}function iV(e,A=!1){if(typeof e>"u"||e===null||e.length===0)return Uint8Array.from([]);const t=aV(e),i=uN(t);if(A)return i;if(i.remainder.length!==0)throw new Error("invalid RLP: remainder must be zero");return i.data}Da.decode=iV;function uN(e){let A,t,i,o,r;const f=[],h=e[0];if(h<=127)return{data:e.slice(0,1),remainder:e.slice(1)};if(h<=183){if(A=h-127,h===128?i=Uint8Array.from([]):i=wh(e,1,A),A===2&&i[0]<128)throw new Error("invalid RLP encoding: invalid prefix, single byte < 0x80 are not prefixed");return{data:i,remainder:e.slice(A)}}else if(h<=191){if(t=h-182,e.length-1e.length)throw new Error("invalid RLP: total length is larger than the data");for(o=wh(e,t,d);o.length;)r=uN(o),f.push(r.data),o=r.remainder;return{data:f,remainder:e.slice(d)}}}const D2A=Array.from({length:256},(e,A)=>A.toString(16).padStart(2,"0"));function rV(e){let A="";for(let t=0;ti+o.length,0),t=new Uint8Array(A);for(let i=0,o=0;i=2&&e[0]==="0"&&e[1]==="x"}function v2A(e){return typeof e!="string"?e:sV(e)?e.slice(2):e}function aV(e){if(e instanceof Uint8Array)return e;if(typeof e=="string")return sV(e)?Pp(m2A(v2A(e))):oV(e);if(typeof e=="number"||typeof e=="bigint")return e?Pp(CN(e)):Uint8Array.from([]);if(e==null)return Uint8Array.from([]);throw new Error("toBytes: received unsupported type "+typeof e)}Da.utils={bytesToHex:rV,concatBytes:lN,hexToBytes:Pp,utf8ToBytes:oV};Cn=Da.RLP={encode:mK,decode:iV};var gV={};/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */(function(e){(function(A){A(typeof DO_NOT_EXPORT_CRC>"u"?e:{})})(function(A){A.version="1.2.2";function t(){for(var J=0,q=new Array(256),X=0;X!=256;++X)J=X,J=J&1?-306674912^J>>>1:J>>>1,J=J&1?-306674912^J>>>1:J>>>1,J=J&1?-306674912^J>>>1:J>>>1,J=J&1?-306674912^J>>>1:J>>>1,J=J&1?-306674912^J>>>1:J>>>1,J=J&1?-306674912^J>>>1:J>>>1,J=J&1?-306674912^J>>>1:J>>>1,J=J&1?-306674912^J>>>1:J>>>1,q[X]=J;return typeof Int32Array<"u"?new Int32Array(q):q}var i=t();function o(J){var q=0,X=0,Q=0,n=typeof Int32Array<"u"?new Int32Array(4096):new Array(4096);for(Q=0;Q!=256;++Q)n[Q]=J[Q];for(Q=0;Q!=256;++Q)for(X=J[Q],q=256+Q;q<4096;q+=256)X=n[q]=X>>>8^J[X&255];var a=[];for(Q=1;Q!=16;++Q)a[Q-1]=typeof Int32Array<"u"?n.subarray(Q*256,Q*256+256):n.slice(Q*256,Q*256+256);return a}var r=o(i),f=r[0],h=r[1],d=r[2],p=r[3],C=r[4],y=r[5],w=r[6],D=r[7],v=r[8],M=r[9],R=r[10],b=r[11],S=r[12],G=r[13],U=r[14];function P(J,q){for(var X=q^-1,Q=0,n=J.length;Q>>8^i[(X^J.charCodeAt(Q++))&255];return~X}function z(J,q){for(var X=q^-1,Q=J.length-15,n=0;n>8&255]^S[J[n++]^X>>16&255]^b[J[n++]^X>>>24]^R[J[n++]]^M[J[n++]]^v[J[n++]]^D[J[n++]]^w[J[n++]]^y[J[n++]]^C[J[n++]]^p[J[n++]]^d[J[n++]]^h[J[n++]]^f[J[n++]]^i[J[n++]];for(Q+=15;n>>8^i[(X^J[n++])&255];return~X}function oA(J,q){for(var X=q^-1,Q=0,n=J.length,a=0,g=0;Q>>8^i[(X^a)&255]:a<2048?(X=X>>>8^i[(X^(192|a>>6&31))&255],X=X>>>8^i[(X^(128|a&63))&255]):a>=55296&&a<57344?(a=(a&1023)+64,g=J.charCodeAt(Q++)&1023,X=X>>>8^i[(X^(240|a>>8&7))&255],X=X>>>8^i[(X^(128|a>>2&63))&255],X=X>>>8^i[(X^(128|g>>6&15|(a&3)<<4))&255],X=X>>>8^i[(X^(128|g&63))&255]):(X=X>>>8^i[(X^(224|a>>12&15))&255],X=X>>>8^i[(X^(128|a>>6&63))&255],X=X>>>8^i[(X^(128|a&63))&255]);return~X}A.table=i,A.bstr=P,A.buf=z,A.str=oA})})(gV);const M2A=$i(gV),b2A={name:"goerli",chainId:5,networkId:5,defaultHardfork:"merge",consensus:{type:"poa",algorithm:"clique",clique:{period:15,epoch:3e4}},comment:"Cross-client PoA test network",url:"https://github.com/goerli/testnet",genesis:{timestamp:"0x5c51a607",gasLimit:10485760,difficulty:1,nonce:"0x0000000000000000",extraData:"0x22466c6578692069732061207468696e6722202d204166726900000000000000e0a2bd4258d2768837baa26a28fe71dc079f84c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},hardforks:[{name:"chainstart",block:0,forkHash:"0xa3f5ab08"},{name:"homestead",block:0,forkHash:"0xa3f5ab08"},{name:"tangerineWhistle",block:0,forkHash:"0xa3f5ab08"},{name:"spuriousDragon",block:0,forkHash:"0xa3f5ab08"},{name:"byzantium",block:0,forkHash:"0xa3f5ab08"},{name:"constantinople",block:0,forkHash:"0xa3f5ab08"},{name:"petersburg",block:0,forkHash:"0xa3f5ab08"},{name:"istanbul",block:1561651,forkHash:"0xc25efa5c"},{name:"berlin",block:4460644,forkHash:"0x757a1c47"},{name:"london",block:5062605,forkHash:"0xb8c6299d"},{"//_comment":"The forkHash will remain same as mergeForkIdTransition is post merge, terminal block: https://goerli.etherscan.io/block/7382818",name:"merge",ttd:"10790000",block:7382819,forkHash:"0xb8c6299d"},{name:"mergeForkIdTransition",block:null,forkHash:null},{name:"shanghai",block:null,forkHash:null}],bootstrapNodes:[],dnsNetworks:["enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.goerli.ethdisco.net"]},S2A={name:"mainnet",chainId:1,networkId:1,defaultHardfork:"merge",consensus:{type:"pow",algorithm:"ethash",ethash:{}},comment:"The Ethereum main chain",url:"https://ethstats.net/",genesis:{gasLimit:5e3,difficulty:17179869184,nonce:"0x0000000000000042",extraData:"0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa"},hardforks:[{name:"chainstart",block:0,forkHash:"0xfc64ec04"},{name:"homestead",block:115e4,forkHash:"0x97c2c34c"},{name:"dao",block:192e4,forkHash:"0x91d1f948"},{name:"tangerineWhistle",block:2463e3,forkHash:"0x7a64da13"},{name:"spuriousDragon",block:2675e3,forkHash:"0x3edd5b10"},{name:"byzantium",block:437e4,forkHash:"0xa00bc324"},{name:"constantinople",block:728e4,forkHash:"0x668db0af"},{name:"petersburg",block:728e4,forkHash:"0x668db0af"},{name:"istanbul",block:9069e3,forkHash:"0x879d6e30"},{name:"muirGlacier",block:92e5,forkHash:"0xe029e991"},{name:"berlin",block:12244e3,forkHash:"0x0eb440f6"},{name:"london",block:12965e3,forkHash:"0xb715077d"},{name:"arrowGlacier",block:13773e3,forkHash:"0x20c327fc"},{name:"grayGlacier",block:1505e4,forkHash:"0xf0afd0e3"},{"//_comment":"The forkHash will remain same as mergeForkIdTransition is post merge, terminal block: https://etherscan.io/block/15537393",name:"merge",ttd:"58750000000000000000000",block:15537394,forkHash:"0xf0afd0e3"},{name:"mergeForkIdTransition",block:null,forkHash:null},{name:"shanghai",block:null,forkHash:null}],bootstrapNodes:[],dnsNetworks:["enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net"]},N2A={name:"sepolia",chainId:11155111,networkId:11155111,defaultHardfork:"merge",consensus:{type:"pow",algorithm:"ethash",ethash:{}},comment:"PoW test network to replace Ropsten",url:"https://github.com/ethereum/go-ethereum/pull/23730",genesis:{timestamp:"0x6159af19",gasLimit:3e7,difficulty:131072,nonce:"0x0000000000000000",extraData:"0x5365706f6c69612c20417468656e732c204174746963612c2047726565636521"},hardforks:[{name:"chainstart",block:0,forkHash:"0xfe3366e7"},{name:"homestead",block:0,forkHash:"0xfe3366e7"},{name:"tangerineWhistle",block:0,forkHash:"0xfe3366e7"},{name:"spuriousDragon",block:0,forkHash:"0xfe3366e7"},{name:"byzantium",block:0,forkHash:"0xfe3366e7"},{name:"constantinople",block:0,forkHash:"0xfe3366e7"},{name:"petersburg",block:0,forkHash:"0xfe3366e7"},{name:"istanbul",block:0,forkHash:"0xfe3366e7"},{name:"muirGlacier",block:0,forkHash:"0xfe3366e7"},{name:"berlin",block:0,forkHash:"0xfe3366e7"},{name:"london",block:0,forkHash:"0xfe3366e7"},{"//_comment":"The forkHash will remain same as mergeForkIdTransition is post merge, terminal block: https://sepolia.etherscan.io/block/1450408",name:"merge",ttd:"17000000000000000",block:1450409,forkHash:"0xfe3366e7"},{name:"mergeForkIdTransition",block:1735371,forkHash:"0xb96cbd13"},{name:"shanghai",block:null,timestamp:"1677557088",forkHash:"0xf7f9bc08"}],bootstrapNodes:[],dnsNetworks:["enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.sepolia.ethdisco.net"]},k2A={name:"EIP-1153",number:1153,comment:"Transient Storage",url:"https://eips.ethereum.org/EIPS/eip-1153",status:"Review",minimumHardfork:"chainstart",requiredEIPs:[],gasConfig:{},gasPrices:{tstore:{v:100,d:"Base fee of the TSTORE opcode"},tload:{v:100,d:"Base fee of the TLOAD opcode"}},vm:{},pow:{}},R2A={name:"EIP-1559",number:1559,comment:"Fee market change for ETH 1.0 chain",url:"https://eips.ethereum.org/EIPS/eip-1559",status:"Final",minimumHardfork:"berlin",requiredEIPs:[2930],gasConfig:{baseFeeMaxChangeDenominator:{v:8,d:"Maximum base fee change denominator"},elasticityMultiplier:{v:2,d:"Maximum block gas target elasticity"},initialBaseFee:{v:1e9,d:"Initial base fee on first EIP1559 block"}},gasPrices:{},vm:{},pow:{}},K2A={name:"EIP-2315",number:2315,comment:"Simple subroutines for the EVM",url:"https://eips.ethereum.org/EIPS/eip-2315",status:"Draft",minimumHardfork:"istanbul",gasConfig:{},gasPrices:{beginsub:{v:2,d:"Base fee of the BEGINSUB opcode"},returnsub:{v:5,d:"Base fee of the RETURNSUB opcode"},jumpsub:{v:10,d:"Base fee of the JUMPSUB opcode"}},vm:{},pow:{}},G2A={name:"EIP-2537",number:2537,comment:"BLS12-381 precompiles",url:"https://eips.ethereum.org/EIPS/eip-2537",status:"Draft",minimumHardfork:"chainstart",gasConfig:{},gasPrices:{Bls12381G1AddGas:{v:600,d:"Gas cost of a single BLS12-381 G1 addition precompile-call"},Bls12381G1MulGas:{v:12e3,d:"Gas cost of a single BLS12-381 G1 multiplication precompile-call"},Bls12381G2AddGas:{v:4500,d:"Gas cost of a single BLS12-381 G2 addition precompile-call"},Bls12381G2MulGas:{v:55e3,d:"Gas cost of a single BLS12-381 G2 multiplication precompile-call"},Bls12381PairingBaseGas:{v:115e3,d:"Base gas cost of BLS12-381 pairing check"},Bls12381PairingPerPairGas:{v:23e3,d:"Per-pair gas cost of BLS12-381 pairing check"},Bls12381MapG1Gas:{v:5500,d:"Gas cost of BLS12-381 map field element to G1"},Bls12381MapG2Gas:{v:11e4,d:"Gas cost of BLS12-381 map field element to G2"},Bls12381MultiExpGasDiscount:{v:[[1,1200],[2,888],[3,764],[4,641],[5,594],[6,547],[7,500],[8,453],[9,438],[10,423],[11,408],[12,394],[13,379],[14,364],[15,349],[16,334],[17,330],[18,326],[19,322],[20,318],[21,314],[22,310],[23,306],[24,302],[25,298],[26,294],[27,289],[28,285],[29,281],[30,277],[31,273],[32,269],[33,268],[34,266],[35,265],[36,263],[37,262],[38,260],[39,259],[40,257],[41,256],[42,254],[43,253],[44,251],[45,250],[46,248],[47,247],[48,245],[49,244],[50,242],[51,241],[52,239],[53,238],[54,236],[55,235],[56,233],[57,232],[58,231],[59,229],[60,228],[61,226],[62,225],[63,223],[64,222],[65,221],[66,220],[67,219],[68,219],[69,218],[70,217],[71,216],[72,216],[73,215],[74,214],[75,213],[76,213],[77,212],[78,211],[79,211],[80,210],[81,209],[82,208],[83,208],[84,207],[85,206],[86,205],[87,205],[88,204],[89,203],[90,202],[91,202],[92,201],[93,200],[94,199],[95,199],[96,198],[97,197],[98,196],[99,196],[100,195],[101,194],[102,193],[103,193],[104,192],[105,191],[106,191],[107,190],[108,189],[109,188],[110,188],[111,187],[112,186],[113,185],[114,185],[115,184],[116,183],[117,182],[118,182],[119,181],[120,180],[121,179],[122,179],[123,178],[124,177],[125,176],[126,176],[127,175],[128,174]],d:"Discount gas costs of calls to the MultiExp precompiles with `k` (point, scalar) pair"}},vm:{},pow:{}},F2A={name:"EIP-2565",number:2565,comment:"ModExp gas cost",url:"https://eips.ethereum.org/EIPS/eip-2565",status:"Final",minimumHardfork:"byzantium",gasConfig:{},gasPrices:{modexpGquaddivisor:{v:3,d:"Gquaddivisor from modexp precompile for gas calculation"}},vm:{},pow:{}},x2A={name:"EIP-2718",comment:"Typed Transaction Envelope",url:"https://eips.ethereum.org/EIPS/eip-2718",status:"Final",minimumHardfork:"chainstart",gasConfig:{},gasPrices:{},vm:{},pow:{}},L2A={name:"EIP-2929",comment:"Gas cost increases for state access opcodes",url:"https://eips.ethereum.org/EIPS/eip-2929",status:"Final",minimumHardfork:"chainstart",gasConfig:{},gasPrices:{coldsload:{v:2100,d:"Gas cost of the first read of storage from a given location (per transaction)"},coldaccountaccess:{v:2600,d:"Gas cost of the first read of a given address (per transaction)"},warmstorageread:{v:100,d:"Gas cost of reading storage locations which have already loaded 'cold'"},sstoreCleanGasEIP2200:{v:2900,d:"Once per SSTORE operation from clean non-zero to something else"},sstoreNoopGasEIP2200:{v:100,d:"Once per SSTORE operation if the value doesn't change"},sstoreDirtyGasEIP2200:{v:100,d:"Once per SSTORE operation if a dirty value is changed"},sstoreInitRefundEIP2200:{v:19900,d:"Once per SSTORE operation for resetting to the original zero value"},sstoreCleanRefundEIP2200:{v:4900,d:"Once per SSTORE operation for resetting to the original non-zero value"},call:{v:0,d:"Base fee of the CALL opcode"},callcode:{v:0,d:"Base fee of the CALLCODE opcode"},delegatecall:{v:0,d:"Base fee of the DELEGATECALL opcode"},staticcall:{v:0,d:"Base fee of the STATICCALL opcode"},balance:{v:0,d:"Base fee of the BALANCE opcode"},extcodesize:{v:0,d:"Base fee of the EXTCODESIZE opcode"},extcodecopy:{v:0,d:"Base fee of the EXTCODECOPY opcode"},extcodehash:{v:0,d:"Base fee of the EXTCODEHASH opcode"},sload:{v:0,d:"Base fee of the SLOAD opcode"},sstore:{v:0,d:"Base fee of the SSTORE opcode"}},vm:{},pow:{}},U2A={name:"EIP-2930",comment:"Optional access lists",url:"https://eips.ethereum.org/EIPS/eip-2930",status:"Final",minimumHardfork:"istanbul",requiredEIPs:[2718,2929],gasConfig:{},gasPrices:{accessListStorageKeyCost:{v:1900,d:"Gas cost per storage key in an Access List transaction"},accessListAddressCost:{v:2400,d:"Gas cost per storage key in an Access List transaction"}},vm:{},pow:{}},_2A={name:"EIP-3198",number:3198,comment:"BASEFEE opcode",url:"https://eips.ethereum.org/EIPS/eip-3198",status:"Final",minimumHardfork:"london",gasConfig:{},gasPrices:{basefee:{v:2,d:"Gas cost of the BASEFEE opcode"}},vm:{},pow:{}},q2A={name:"EIP-3529",comment:"Reduction in refunds",url:"https://eips.ethereum.org/EIPS/eip-3529",status:"Final",minimumHardfork:"berlin",requiredEIPs:[2929],gasConfig:{maxRefundQuotient:{v:5,d:"Maximum refund quotient; max tx refund is min(tx.gasUsed/maxRefundQuotient, tx.gasRefund)"}},gasPrices:{selfdestructRefund:{v:0,d:"Refunded following a selfdestruct operation"},sstoreClearRefundEIP2200:{v:4800,d:"Once per SSTORE operation for clearing an originally existing storage slot"}},vm:{},pow:{}},H2A={name:"EIP-3540",number:3540,comment:"EVM Object Format (EOF) v1",url:"https://eips.ethereum.org/EIPS/eip-3540",status:"Review",minimumHardfork:"london",requiredEIPs:[3541],gasConfig:{},gasPrices:{},vm:{},pow:{}},Y2A={name:"EIP-3541",comment:"Reject new contracts starting with the 0xEF byte",url:"https://eips.ethereum.org/EIPS/eip-3541",status:"Final",minimumHardfork:"berlin",requiredEIPs:[],gasConfig:{},gasPrices:{},vm:{},pow:{}},J2A={name:"EIP-3554",comment:"Reduction in refunds",url:"Difficulty Bomb Delay to December 1st 2021",status:"Final",minimumHardfork:"muirGlacier",requiredEIPs:[],gasConfig:{},gasPrices:{},vm:{},pow:{difficultyBombDelay:{v:95e5,d:"the amount of blocks to delay the difficulty bomb with"}}},T2A={name:"EIP-3607",number:3607,comment:"Reject transactions from senders with deployed code",url:"https://eips.ethereum.org/EIPS/eip-3607",status:"Final",minimumHardfork:"chainstart",requiredEIPs:[],gasConfig:{},gasPrices:{},vm:{},pow:{}},P2A={name:"EIP-3651",number:3198,comment:"Warm COINBASE",url:"https://eips.ethereum.org/EIPS/eip-3651",status:"Review",minimumHardfork:"london",requiredEIPs:[2929],gasConfig:{},gasPrices:{},vm:{},pow:{}},O2A={name:"EIP-3670",number:3670,comment:"EOF - Code Validation",url:"https://eips.ethereum.org/EIPS/eip-3670",status:"Review",minimumHardfork:"london",requiredEIPs:[3540],gasConfig:{},gasPrices:{},vm:{},pow:{}},j2A={name:"EIP-3675",number:3675,comment:"Upgrade consensus to Proof-of-Stake",url:"https://eips.ethereum.org/EIPS/eip-3675",status:"Final",minimumHardfork:"london",requiredEIPs:[],gasConfig:{},gasPrices:{},vm:{},pow:{}},W2A={name:"EIP-3855",number:3855,comment:"PUSH0 instruction",url:"https://eips.ethereum.org/EIPS/eip-3855",status:"Review",minimumHardfork:"chainstart",requiredEIPs:[],gasConfig:{},gasPrices:{push0:{v:2,d:"Base fee of the PUSH0 opcode"}},vm:{},pow:{}},V2A={name:"EIP-3860",number:3860,comment:"Limit and meter initcode",url:"https://eips.ethereum.org/EIPS/eip-3860",status:"Review",minimumHardfork:"spuriousDragon",requiredEIPs:[],gasConfig:{},gasPrices:{initCodeWordCost:{v:2,d:"Gas to pay for each word (32 bytes) of initcode when creating a contract"}},vm:{maxInitCodeSize:{v:49152,d:"Maximum length of initialization code when creating a contract"}},pow:{}},Z2A={name:"EIP-4345",number:4345,comment:"Difficulty Bomb Delay to June 2022",url:"https://eips.ethereum.org/EIPS/eip-4345",status:"Final",minimumHardfork:"london",gasConfig:{},gasPrices:{},vm:{},pow:{difficultyBombDelay:{v:107e5,d:"the amount of blocks to delay the difficulty bomb with"}}},z2A={name:"EIP-4399",number:4399,comment:"Supplant DIFFICULTY opcode with PREVRANDAO",url:"https://eips.ethereum.org/EIPS/eip-4399",status:"Review",minimumHardfork:"london",requiredEIPs:[],gasConfig:{},gasPrices:{},vm:{},pow:{}},$2A={name:"EIP-5133",number:5133,comment:"Delaying Difficulty Bomb to mid-September 2022",url:"https://eips.ethereum.org/EIPS/eip-5133",status:"Draft",minimumHardfork:"grayGlacier",gasConfig:{},gasPrices:{},vm:{},pow:{difficultyBombDelay:{v:114e5,d:"the amount of blocks to delay the difficulty bomb with"}}},Dh={1153:k2A,1559:R2A,2315:K2A,2537:G2A,2565:F2A,2718:x2A,2929:L2A,2930:U2A,3198:_2A,3529:q2A,3540:H2A,3541:Y2A,3554:J2A,3607:T2A,3651:P2A,3670:O2A,3675:j2A,3855:W2A,3860:V2A,4345:Z2A,4399:z2A,5133:$2A},X2A={name:"chainstart",comment:"Start of the Ethereum main chain",url:"",status:"",gasConfig:{minGasLimit:{v:5e3,d:"Minimum the gas limit may ever be"},gasLimitBoundDivisor:{v:1024,d:"The bound divisor of the gas limit, used in update calculations"},maxRefundQuotient:{v:2,d:"Maximum refund quotient; max tx refund is min(tx.gasUsed/maxRefundQuotient, tx.gasRefund)"}},gasPrices:{base:{v:2,d:"Gas base cost, used e.g. for ChainID opcode (Istanbul)"},tierStep:{v:[0,2,3,5,8,10,20],d:"Once per operation, for a selection of them"},exp:{v:10,d:"Base fee of the EXP opcode"},expByte:{v:10,d:"Times ceil(log256(exponent)) for the EXP instruction"},sha3:{v:30,d:"Base fee of the SHA3 opcode"},sha3Word:{v:6,d:"Once per word of the SHA3 operation's data"},sload:{v:50,d:"Base fee of the SLOAD opcode"},sstoreSet:{v:2e4,d:"Once per SSTORE operation if the zeroness changes from zero"},sstoreReset:{v:5e3,d:"Once per SSTORE operation if the zeroness does not change from zero"},sstoreRefund:{v:15e3,d:"Once per SSTORE operation if the zeroness changes to zero"},jumpdest:{v:1,d:"Base fee of the JUMPDEST opcode"},log:{v:375,d:"Base fee of the LOG opcode"},logData:{v:8,d:"Per byte in a LOG* operation's data"},logTopic:{v:375,d:"Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas"},create:{v:32e3,d:"Base fee of the CREATE opcode"},call:{v:40,d:"Base fee of the CALL opcode"},callStipend:{v:2300,d:"Free gas given at beginning of call"},callValueTransfer:{v:9e3,d:"Paid for CALL when the value transfor is non-zero"},callNewAccount:{v:25e3,d:"Paid for CALL when the destination address didn't exist prior"},selfdestructRefund:{v:24e3,d:"Refunded following a selfdestruct operation"},memory:{v:3,d:"Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL"},quadCoeffDiv:{v:512,d:"Divisor for the quadratic particle of the memory cost equation"},createData:{v:200,d:""},tx:{v:21e3,d:"Per transaction. NOTE: Not payable on data of calls between transactions"},txCreation:{v:32e3,d:"The cost of creating a contract via tx"},txDataZero:{v:4,d:"Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions"},txDataNonZero:{v:68,d:"Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions"},copy:{v:3,d:"Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added"},ecRecover:{v:3e3,d:""},sha256:{v:60,d:""},sha256Word:{v:12,d:""},ripemd160:{v:600,d:""},ripemd160Word:{v:120,d:""},identity:{v:15,d:""},identityWord:{v:3,d:""},stop:{v:0,d:"Base fee of the STOP opcode"},add:{v:3,d:"Base fee of the ADD opcode"},mul:{v:5,d:"Base fee of the MUL opcode"},sub:{v:3,d:"Base fee of the SUB opcode"},div:{v:5,d:"Base fee of the DIV opcode"},sdiv:{v:5,d:"Base fee of the SDIV opcode"},mod:{v:5,d:"Base fee of the MOD opcode"},smod:{v:5,d:"Base fee of the SMOD opcode"},addmod:{v:8,d:"Base fee of the ADDMOD opcode"},mulmod:{v:8,d:"Base fee of the MULMOD opcode"},signextend:{v:5,d:"Base fee of the SIGNEXTEND opcode"},lt:{v:3,d:"Base fee of the LT opcode"},gt:{v:3,d:"Base fee of the GT opcode"},slt:{v:3,d:"Base fee of the SLT opcode"},sgt:{v:3,d:"Base fee of the SGT opcode"},eq:{v:3,d:"Base fee of the EQ opcode"},iszero:{v:3,d:"Base fee of the ISZERO opcode"},and:{v:3,d:"Base fee of the AND opcode"},or:{v:3,d:"Base fee of the OR opcode"},xor:{v:3,d:"Base fee of the XOR opcode"},not:{v:3,d:"Base fee of the NOT opcode"},byte:{v:3,d:"Base fee of the BYTE opcode"},address:{v:2,d:"Base fee of the ADDRESS opcode"},balance:{v:20,d:"Base fee of the BALANCE opcode"},origin:{v:2,d:"Base fee of the ORIGIN opcode"},caller:{v:2,d:"Base fee of the CALLER opcode"},callvalue:{v:2,d:"Base fee of the CALLVALUE opcode"},calldataload:{v:3,d:"Base fee of the CALLDATALOAD opcode"},calldatasize:{v:2,d:"Base fee of the CALLDATASIZE opcode"},calldatacopy:{v:3,d:"Base fee of the CALLDATACOPY opcode"},codesize:{v:2,d:"Base fee of the CODESIZE opcode"},codecopy:{v:3,d:"Base fee of the CODECOPY opcode"},gasprice:{v:2,d:"Base fee of the GASPRICE opcode"},extcodesize:{v:20,d:"Base fee of the EXTCODESIZE opcode"},extcodecopy:{v:20,d:"Base fee of the EXTCODECOPY opcode"},blockhash:{v:20,d:"Base fee of the BLOCKHASH opcode"},coinbase:{v:2,d:"Base fee of the COINBASE opcode"},timestamp:{v:2,d:"Base fee of the TIMESTAMP opcode"},number:{v:2,d:"Base fee of the NUMBER opcode"},difficulty:{v:2,d:"Base fee of the DIFFICULTY opcode"},gaslimit:{v:2,d:"Base fee of the GASLIMIT opcode"},pop:{v:2,d:"Base fee of the POP opcode"},mload:{v:3,d:"Base fee of the MLOAD opcode"},mstore:{v:3,d:"Base fee of the MSTORE opcode"},mstore8:{v:3,d:"Base fee of the MSTORE8 opcode"},sstore:{v:0,d:"Base fee of the SSTORE opcode"},jump:{v:8,d:"Base fee of the JUMP opcode"},jumpi:{v:10,d:"Base fee of the JUMPI opcode"},pc:{v:2,d:"Base fee of the PC opcode"},msize:{v:2,d:"Base fee of the MSIZE opcode"},gas:{v:2,d:"Base fee of the GAS opcode"},push:{v:3,d:"Base fee of the PUSH opcode"},dup:{v:3,d:"Base fee of the DUP opcode"},swap:{v:3,d:"Base fee of the SWAP opcode"},callcode:{v:40,d:"Base fee of the CALLCODE opcode"},return:{v:0,d:"Base fee of the RETURN opcode"},invalid:{v:0,d:"Base fee of the INVALID opcode"},selfdestruct:{v:0,d:"Base fee of the SELFDESTRUCT opcode"}},vm:{stackLimit:{v:1024,d:"Maximum size of VM stack allowed"},callCreateDepth:{v:1024,d:"Maximum depth of call/create stack"},maxExtraDataSize:{v:32,d:"Maximum size extra data may be after Genesis"}},pow:{minimumDifficulty:{v:131072,d:"The minimum that the difficulty may ever be"},difficultyBoundDivisor:{v:2048,d:"The bound divisor of the difficulty, used in the update calculations"},durationLimit:{v:13,d:"The decision boundary on the blocktime duration used to determine whether difficulty should go up or not"},epochDuration:{v:3e4,d:"Duration between proof-of-work epochs"},timebombPeriod:{v:1e5,d:"Exponential difficulty timebomb period"},minerReward:{v:"5000000000000000000",d:"the amount a miner get rewarded for mining a block"},difficultyBombDelay:{v:0,d:"the amount of blocks to delay the difficulty bomb with"}}},AbA={name:"dao",comment:"DAO rescue hardfork",url:"https://eips.ethereum.org/EIPS/eip-779",status:"Final",gasConfig:{},gasPrices:{},vm:{},pow:{}},ebA={name:"homestead",comment:"Homestead hardfork with protocol and network changes",url:"https://eips.ethereum.org/EIPS/eip-606",status:"Final",gasConfig:{},gasPrices:{delegatecall:{v:40,d:"Base fee of the DELEGATECALL opcode"}},vm:{},pow:{}},tbA={name:"tangerineWhistle",comment:"Hardfork with gas cost changes for IO-heavy operations",url:"https://eips.ethereum.org/EIPS/eip-608",status:"Final",gasConfig:{},gasPrices:{sload:{v:200,d:"Once per SLOAD operation"},call:{v:700,d:"Once per CALL operation & message call transaction"},extcodesize:{v:700,d:"Base fee of the EXTCODESIZE opcode"},extcodecopy:{v:700,d:"Base fee of the EXTCODECOPY opcode"},balance:{v:400,d:"Base fee of the BALANCE opcode"},delegatecall:{v:700,d:"Base fee of the DELEGATECALL opcode"},callcode:{v:700,d:"Base fee of the CALLCODE opcode"},selfdestruct:{v:5e3,d:"Base fee of the SELFDESTRUCT opcode"}},vm:{},pow:{}},ibA={name:"spuriousDragon",comment:"HF with EIPs for simple replay attack protection, EXP cost increase, state trie clearing, contract code size limit",url:"https://eips.ethereum.org/EIPS/eip-607",status:"Final",gasConfig:{},gasPrices:{expByte:{v:50,d:"Times ceil(log256(exponent)) for the EXP instruction"}},vm:{maxCodeSize:{v:24576,d:"Maximum length of contract code"}},pow:{}},rbA={name:"byzantium",comment:"Hardfork with new precompiles, instructions and other protocol changes",url:"https://eips.ethereum.org/EIPS/eip-609",status:"Final",gasConfig:{},gasPrices:{modexpGquaddivisor:{v:20,d:"Gquaddivisor from modexp precompile for gas calculation"},ecAdd:{v:500,d:"Gas costs for curve addition precompile"},ecMul:{v:4e4,d:"Gas costs for curve multiplication precompile"},ecPairing:{v:1e5,d:"Base gas costs for curve pairing precompile"},ecPairingWord:{v:8e4,d:"Gas costs regarding curve pairing precompile input length"},revert:{v:0,d:"Base fee of the REVERT opcode"},staticcall:{v:700,d:"Base fee of the STATICCALL opcode"},returndatasize:{v:2,d:"Base fee of the RETURNDATASIZE opcode"},returndatacopy:{v:3,d:"Base fee of the RETURNDATACOPY opcode"}},vm:{},pow:{minerReward:{v:"3000000000000000000",d:"the amount a miner get rewarded for mining a block"},difficultyBombDelay:{v:3e6,d:"the amount of blocks to delay the difficulty bomb with"}}},nbA={name:"constantinople",comment:"Postponed hardfork including EIP-1283 (SSTORE gas metering changes)",url:"https://eips.ethereum.org/EIPS/eip-1013",status:"Final",gasConfig:{},gasPrices:{netSstoreNoopGas:{v:200,d:"Once per SSTORE operation if the value doesn't change"},netSstoreInitGas:{v:2e4,d:"Once per SSTORE operation from clean zero"},netSstoreCleanGas:{v:5e3,d:"Once per SSTORE operation from clean non-zero"},netSstoreDirtyGas:{v:200,d:"Once per SSTORE operation from dirty"},netSstoreClearRefund:{v:15e3,d:"Once per SSTORE operation for clearing an originally existing storage slot"},netSstoreResetRefund:{v:4800,d:"Once per SSTORE operation for resetting to the original non-zero value"},netSstoreResetClearRefund:{v:19800,d:"Once per SSTORE operation for resetting to the original zero value"},shl:{v:3,d:"Base fee of the SHL opcode"},shr:{v:3,d:"Base fee of the SHR opcode"},sar:{v:3,d:"Base fee of the SAR opcode"},extcodehash:{v:400,d:"Base fee of the EXTCODEHASH opcode"},create2:{v:32e3,d:"Base fee of the CREATE2 opcode"}},vm:{},pow:{minerReward:{v:"2000000000000000000",d:"The amount a miner gets rewarded for mining a block"},difficultyBombDelay:{v:5e6,d:"the amount of blocks to delay the difficulty bomb with"}}},obA={name:"petersburg",comment:"Aka constantinopleFix, removes EIP-1283, activate together with or after constantinople",url:"https://eips.ethereum.org/EIPS/eip-1716",status:"Final",gasConfig:{},gasPrices:{netSstoreNoopGas:{v:null,d:"Removed along EIP-1283"},netSstoreInitGas:{v:null,d:"Removed along EIP-1283"},netSstoreCleanGas:{v:null,d:"Removed along EIP-1283"},netSstoreDirtyGas:{v:null,d:"Removed along EIP-1283"},netSstoreClearRefund:{v:null,d:"Removed along EIP-1283"},netSstoreResetRefund:{v:null,d:"Removed along EIP-1283"},netSstoreResetClearRefund:{v:null,d:"Removed along EIP-1283"}},vm:{},pow:{}},sbA={name:"istanbul",comment:"HF targeted for December 2019 following the Constantinople/Petersburg HF",url:"https://eips.ethereum.org/EIPS/eip-1679",status:"Final",gasConfig:{},gasPrices:{blake2Round:{v:1,d:"Gas cost per round for the Blake2 F precompile"},ecAdd:{v:150,d:"Gas costs for curve addition precompile"},ecMul:{v:6e3,d:"Gas costs for curve multiplication precompile"},ecPairing:{v:45e3,d:"Base gas costs for curve pairing precompile"},ecPairingWord:{v:34e3,d:"Gas costs regarding curve pairing precompile input length"},txDataNonZero:{v:16,d:"Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions"},sstoreSentryGasEIP2200:{v:2300,d:"Minimum gas required to be present for an SSTORE call, not consumed"},sstoreNoopGasEIP2200:{v:800,d:"Once per SSTORE operation if the value doesn't change"},sstoreDirtyGasEIP2200:{v:800,d:"Once per SSTORE operation if a dirty value is changed"},sstoreInitGasEIP2200:{v:2e4,d:"Once per SSTORE operation from clean zero to non-zero"},sstoreInitRefundEIP2200:{v:19200,d:"Once per SSTORE operation for resetting to the original zero value"},sstoreCleanGasEIP2200:{v:5e3,d:"Once per SSTORE operation from clean non-zero to something else"},sstoreCleanRefundEIP2200:{v:4200,d:"Once per SSTORE operation for resetting to the original non-zero value"},sstoreClearRefundEIP2200:{v:15e3,d:"Once per SSTORE operation for clearing an originally existing storage slot"},balance:{v:700,d:"Base fee of the BALANCE opcode"},extcodehash:{v:700,d:"Base fee of the EXTCODEHASH opcode"},chainid:{v:2,d:"Base fee of the CHAINID opcode"},selfbalance:{v:5,d:"Base fee of the SELFBALANCE opcode"},sload:{v:800,d:"Base fee of the SLOAD opcode"}},vm:{},pow:{}},abA={name:"muirGlacier",comment:"HF to delay the difficulty bomb",url:"https://eips.ethereum.org/EIPS/eip-2384",status:"Final",gasConfig:{},gasPrices:{},vm:{},pow:{difficultyBombDelay:{v:9e6,d:"the amount of blocks to delay the difficulty bomb with"}}},gbA={name:"berlin",comment:"HF targeted for July 2020 following the Muir Glacier HF",url:"https://eips.ethereum.org/EIPS/eip-2070",status:"Final",eips:[2565,2929,2718,2930]},IbA={name:"london",comment:"HF targeted for July 2021 following the Berlin fork",url:"https://github.com/ethereum/eth1.0-specs/blob/master/network-upgrades/mainnet-upgrades/london.md",status:"Final",eips:[1559,3198,3529,3541]},fbA={name:"shanghai",comment:"Next feature hardfork after the merge hardfork having withdrawals, warm coinbase, push0, limit/meter initcode",url:"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md",status:"Final",eips:[3651,3855,3860,4895]},hbA={name:"arrowGlacier",comment:"HF to delay the difficulty bomb",url:"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/arrow-glacier.md",status:"Final",eips:[4345],gasConfig:{},gasPrices:{},vm:{},pow:{}},cbA={name:"grayGlacier",comment:"Delaying the difficulty bomb to Mid September 2022",url:"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/gray-glacier.md",status:"Draft",eips:[5133],gasConfig:{},gasPrices:{},vm:{},pow:{}},ubA={name:"mergeForkIdTransition",comment:"Pre-merge hardfork to fork off non-upgraded clients",url:"https://eips.ethereum.org/EIPS/eip-3675",status:"Draft",eips:[]},lbA={name:"merge",comment:"Hardfork to upgrade the consensus mechanism to Proof-of-Stake",url:"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/merge.md",status:"Final",consensus:{type:"pos",algorithm:"casper",casper:{}},eips:[3675,4399]},CbA={chainstart:X2A,homestead:ebA,dao:AbA,tangerineWhistle:tbA,spuriousDragon:ibA,byzantium:rbA,constantinople:nbA,petersburg:obA,istanbul:sbA,muirGlacier:abA,berlin:gbA,london:IbA,shanghai:fbA,arrowGlacier:hbA,grayGlacier:cbA,mergeForkIdTransition:ubA,merge:lbA},{buf:BbA}=M2A;class Ei extends sK{constructor(A){var t,i;super(),this._eips=[],this._customChains=(t=A.customChains)!==null&&t!==void 0?t:[],this._chainParams=this.setChain(A.chain),this.DEFAULT_HARDFORK=(i=this._chainParams.defaultHardfork)!==null&&i!==void 0?i:vt.Merge,this.HARDFORK_CHANGES=this.hardforks().map(o=>[o.name,CbA[o.name]]),this._hardfork=this.DEFAULT_HARDFORK,A.hardfork!==void 0&&this.setHardfork(A.hardfork),A.eips&&this.setEIPs(A.eips)}static custom(A,t={}){var i;const o=(i=t.baseChain)!==null&&i!==void 0?i:"mainnet",r=Object.assign({},Ei._getChainParams(o));if(r.name="custom-chain",typeof A!="string")return new Ei(Object.assign({chain:Object.assign(Object.assign({},r),A)},t));if(A===gr.PolygonMainnet)return Ei.custom({name:gr.PolygonMainnet,chainId:137,networkId:137},t);if(A===gr.PolygonMumbai)return Ei.custom({name:gr.PolygonMumbai,chainId:80001,networkId:80001},t);if(A===gr.ArbitrumRinkebyTestnet)return Ei.custom({name:gr.ArbitrumRinkebyTestnet,chainId:421611,networkId:421611},t);if(A===gr.ArbitrumOne)return Ei.custom({name:gr.ArbitrumOne,chainId:42161,networkId:42161},t);if(A===gr.xDaiChain)return Ei.custom({name:gr.xDaiChain,chainId:100,networkId:100},t);if(A===gr.OptimisticKovan)return Ei.custom({name:gr.OptimisticKovan,chainId:69,networkId:69},Object.assign({hardfork:vt.Berlin},t));if(A===gr.OptimisticEthereum)return Ei.custom({name:gr.OptimisticEthereum,chainId:10,networkId:10},Object.assign({hardfork:vt.Berlin},t));throw new Error(`Custom chain ${A} not supported`)}static fromGethGenesis(A,{chain:t,eips:i,genesisHash:o,hardfork:r,mergeForkIdPostMerge:f}){var h;const d=B2A(A,t,f),p=new Ei({chain:(h=d.name)!==null&&h!==void 0?h:"custom",customChains:[d],eips:i,hardfork:r??d.hardfork});return o!==void 0&&p.setForkHashes(o),p}static isSupportedChainId(A){return!!this._getInitializedChains().names[A.toString()]}static _getChainParams(A,t){let i=A;const o=this._getInitializedChains(t);if(typeof i=="number"||typeof i=="bigint"){if(i=i.toString(),o.names[i]){const r=o.names[i];return o[r]}throw new Error(`Chain with ID ${i} not supported`)}if(o[i]!==void 0)return o[i];throw new Error(`Chain with name ${i} not supported`)}setChain(A){if(typeof A=="number"||typeof A=="bigint"||typeof A=="string")this._chainParams=Ei._getChainParams(A,this._customChains);else if(typeof A=="object"){if(this._customChains.length>0)throw new Error("Chain must be a string, number, or bigint when initialized with customChains passed in");const t=["networkId","genesis","hardforks","bootstrapNodes"];for(const i of t)if(!(i in A))throw new Error(`Missing required chain parameter: ${i}`);this._chainParams=A}else throw new Error("Wrong input format");for(const t of this.hardforks())if(t.block===void 0)throw new Error("Hardfork cannot have undefined block number");return this._chainParams}setHardfork(A){let t=!1;for(const i of this.HARDFORK_CHANGES)i[0]===A&&(this._hardfork!==A&&(this._hardfork=A,this.emit("hardforkChanged",A)),t=!0);if(!t)throw new Error(`Hardfork with name ${A} not supported`)}getHardforkByBlockNumber(A,t,i){const o=yh(A,eo.BigInt),r=yh(t,eo.BigInt),f=yh(i,eo.Number),h=this.hardforks().filter(D=>D.block!==null||D.ttd!==null&&D.ttd!==void 0||D.timestamp!==void 0),d=h.findIndex(D=>D.ttd!==null&&D.ttd!==void 0);if(h.slice(d+1).findIndex(D=>D.ttd!==null&&D.ttd!==void 0)>=0)throw Error("More than one merge hardforks found with ttd specified");let C=h.findIndex(D=>D.block!==null&&D.block>o||f!==void 0&&Number(D.timestamp)>f);if(C===-1)C=h.length;else if(C===0)throw Error("Must have at least one hardfork at block 0");if(f===void 0){const D=h.slice(0,C).reverse().findIndex(v=>v.block!==null||v.ttd!==void 0);C-=D}if(C-=1,h[C].block===null&&h[C].timestamp===void 0)(r==null||BigInt(h[C].ttd)>r)&&(C-=1);else if(d>=0&&r!==void 0&&r!==null){if(C>=d&&BigInt(h[d].ttd)>r)throw Error("Maximum HF determined by total difficulty is lower than the block number HF");if(C{var b;return Math.max(Number((b=R.timestamp)!==null&&b!==void 0?b:"0"),M)},0)>f)throw Error("Maximum HF determined by timestamp is lower than the block number/ttd HF");if(h.slice(C+1).reduce((M,R)=>{var b;return Math.min(Number((b=R.timestamp)!==null&&b!==void 0?b:f),M)},f)=r}activeOnBlock(A){return this.hardforkIsActiveOnBlock(null,A)}hardforkGteHardfork(A,t){const i=A??this._hardfork,o=this.hardforks();let r=-1,f=-1,h=0;for(const d of o)d.name===i&&(r=h),d.name===t&&(f=h),h+=1;return r>=f&&f!==-1}gteHardfork(A){return this.hardforkGteHardfork(null,A)}hardforkBlock(A){var t;const i=A??this._hardfork,o=(t=this._getHardfork(i))===null||t===void 0?void 0:t.block;return o==null?null:BigInt(o)}hardforkTimestamp(A){var t;const i=A??this._hardfork,o=(t=this._getHardfork(i))===null||t===void 0?void 0:t.timestamp;return o==null?null:BigInt(o)}eipBlock(A){for(const t of this.HARDFORK_CHANGES){const i=t[1];if("eips"in i&&i.eips.includes(A))return this.hardforkBlock(typeof t[0]=="number"?String(t[0]):t[0])}return null}hardforkTTD(A){var t;const i=A??this._hardfork,o=(t=this._getHardfork(i))===null||t===void 0?void 0:t.ttd;return o==null?null:BigInt(o)}isHardforkBlock(A,t){const i=yh(A,eo.BigInt),o=t??this._hardfork,r=this.hardforkBlock(o);return typeof r=="bigint"&&r!==BigInt(0)?r===i:!1}nextHardforkBlockOrTimestamp(A){var t,i;const o=A??this._hardfork,r=this.hardforks();let f=r.findIndex(C=>C.name===o);if(o===vt.Merge&&(f-=1),f<0)return null;let h=(t=r[f].timestamp)!==null&&t!==void 0?t:r[f].block;h=h!=null?Number(h):null;const d=r.slice(f+1).find(C=>{var y;let w=(y=C.timestamp)!==null&&y!==void 0?y:C.block;return w=w!=null?Number(w):null,C.name!==vt.Merge&&w!==null&&w!==void 0&&w!==h});if(d===void 0)return null;const p=(i=d.timestamp)!==null&&i!==void 0?i:d.block;return p==null?null:BigInt(p)}nextHardforkBlock(A){const t=A??this._hardfork;let i=this.hardforkBlock(t);if(i===null&&t===vt.Merge){const r=this.hardforks(),f=r.findIndex(h=>h.ttd!==null&&h.ttd!==void 0);if(f<0)throw Error("Merge hardfork should have been found");i=this.hardforkBlock(r[f-1].name)}return i===null?null:this.hardforks().reduce((r,f)=>{const h=BigInt(f.block===null||f.ttd!==void 0&&f.ttd!==null?0:f.block);return h>i&&r===null?h:r},null)}isNextHardforkBlock(A,t){const i=yh(A,eo.BigInt),o=t??this._hardfork,r=this.nextHardforkBlock(o);return r===null?!1:r===i}_calcForkHash(A,t){let i=new Uint8Array,o=0;for(const h of this.hardforks()){const{block:d,timestamp:p,name:C}=h;let y=p??d;if(y=y!==null?Number(y):null,typeof y=="number"&&y!==0&&y!==o&&C!==vt.Merge){const w=bt(y.toString(16).padStart(16,"0"));i=kr(i,w),o=y}if(h.name===A)break}const r=kr(t,i);return Xe(d2A(BbA(r)>>>0))}forkHash(A,t){const i=A??this._hardfork,o=this._getHardfork(i);if(o===null||(o==null?void 0:o.block)===null&&(o==null?void 0:o.timestamp)===void 0&&(o==null?void 0:o.ttd)===void 0){const r="No fork hash calculation possible for future hardfork";throw new Error(r)}if((o==null?void 0:o.forkHash)!==null&&(o==null?void 0:o.forkHash)!==void 0)return o.forkHash;if(!t)throw new Error("genesisHash required for forkHash calculation");return this._calcForkHash(i,t)}hardforkForForkHash(A){const t=this.hardforks().filter(i=>i.forkHash===A);return t.length>=1?t[t.length-1]:null}setForkHashes(A){var t;for(const i of this.hardforks()){const o=(t=i.timestamp)!==null&&t!==void 0?t:i.block;(i.forkHash===null||i.forkHash===void 0)&&(o!=null||typeof i.ttd<"u")&&(i.forkHash=this.forkHash(i.name,A))}}genesis(){return this._chainParams.genesis}hardforks(){return this._chainParams.hardforks}bootstrapNodes(){return this._chainParams.bootstrapNodes}dnsNetworks(){return this._chainParams.dnsNetworks}hardfork(){return this._hardfork}chainId(){return BigInt(this._chainParams.chainId)}chainName(){return this._chainParams.name}networkId(){return BigInt(this._chainParams.networkId)}eips(){return this._eips}consensusType(){const A=this.hardfork();let t;for(const i of this.HARDFORK_CHANGES)if("consensus"in i[1]&&(t=i[1].consensus.type),i[0]===A)break;return t??this._chainParams.consensus.type}consensusAlgorithm(){const A=this.hardfork();let t;for(const i of this.HARDFORK_CHANGES)if("consensus"in i[1]&&(t=i[1].consensus.algorithm),i[0]===A)break;return t??this._chainParams.consensus.algorithm}consensusConfig(){var A;const t=this.hardfork();let i;for(const o of this.HARDFORK_CHANGES)if("consensus"in o[1]&&(i=o[1].consensus[o[1].consensus.algorithm]),o[0]===t)break;return(A=i??this._chainParams.consensus[this.consensusAlgorithm()])!==null&&A!==void 0?A:{}}copy(){const A=Object.assign(Object.create(Object.getPrototypeOf(this)),this);return A.removeAllListeners(),A}static _getInitializedChains(A){const t={};for(const[o,r]of Object.entries(Jp))t[r]=o.toLowerCase();const i={mainnet:S2A,goerli:b2A,sepolia:N2A};if(A)for(const o of A){const{name:r}=o;t[o.chainId.toString()]=r,i[r]=o}return i.names=t,i}}var Bs;(function(e){e[e.EIP155ReplayProtection=155]="EIP155ReplayProtection",e[e.EIP1559FeeMarket=1559]="EIP1559FeeMarket",e[e.EIP2718TypedTransaction=2718]="EIP2718TypedTransaction",e[e.EIP2930AccessLists=2930]="EIP2930AccessLists"})(Bs||(Bs={}));function dbA(e){if(e.length===0)return!0;const A=e[0];return!!Array.isArray(A)}function EbA(e){return!dbA(e)}class vc{constructor(A){if(A.length!==20)throw new Error("Invalid address length");this.buf=A}static zero(){return new vc(tV(20))}equals(A){return oD(this.buf,A.buf)}isZero(){return this.equals(vc.zero())}toString(){return Xe(this.buf)}toArray(){return this.buf}static publicToAddress(A,t=!1){let i=A;if(wK(i),t&&i.length!==64&&(i=Ag.ProjectivePoint.fromHex(i).toRawBytes(!1).slice(1)),i.length!==64)throw new Error("Expected pubKey to be of length 64");return xt(i).slice(-20)}}const QbA=(e,A)=>{const t=e.param("vm","maxInitCodeSize");if(t&&BigInt(A)>t)throw new Error(`the initcode size of this transaction is too large: it is ${A} while the max is ${e.param("vm","maxInitCodeSize")}`)},IV=e=>{let A,t;if(EbA(e)){A=e;const i=[];for(let o=0;o{for(let A=0;A{const A=[];for(let t=0;t{const t=A.param("gasPrices","accessListStorageKeyCost"),i=A.param("gasPrices","accessListAddressCost");let o=0;for(let f=0;f0?new vc(v):void 0,this.value=Dt(Ut(d===""?"0x":d)),this.data=Ut(p===""?"0x":p),this.v=M.length>0?Dt(M):void 0,this.r=R.length>0?Dt(R):void 0,this.s=b.length>0?Dt(b):void 0,this._validateCannotExceedMaxInteger({value:this.value,r:this.r,s:this.s}),this._validateCannotExceedMaxInteger({gasLimit:this.gasLimit},64),this._validateCannotExceedMaxInteger({nonce:this.nonce},64,!0);const S=this.to===void 0||this.to===null,G=(i=t.allowUnlimitedInitCodeSize)!==null&&i!==void 0?i:!1,U=(o=t.common)!==null&&o!==void 0?o:this._getCommon();S&&U.isActivatedEIP(3860)&&!G&&QbA(U,this.data.length)}get type(){return this._type}supports(A){return this.activeCapabilities.includes(A)}validate(A=!1){const t=[];return this.getBaseFee()>this.gasLimit&&t.push(`gasLimit is too low. given ${this.gasLimit}, need at least ${this.getBaseFee()}`),this.isSigned()&&!this.verifySignature()&&t.push("Invalid Signature"),A?t:t.length===0}_validateYParity(){const{v:A}=this;if(A!==void 0&&A!==BigInt(0)&&A!==BigInt(1)){const t=this._errorMsg("The y-parity of the transaction should either be 0 or 1");throw new Error(t)}}_validateHighS(){const{s:A}=this;if(this.common.gteHardfork("homestead")&&A!==void 0&&A>c2A){const t=this._errorMsg("Invalid Signature: s-values greater than secp256k1n/2 are considered invalid");throw new Error(t)}}getBaseFee(){const A=this.common.param("gasPrices","tx");let t=this.getDataFee();if(A&&(t+=A),this.common.gteHardfork("homestead")&&this.toCreationAddress()){const i=this.common.param("gasPrices","txCreation");i&&(t+=i)}return t}getDataFee(){const A=this.common.param("gasPrices","txDataZero"),t=this.common.param("gasPrices","txDataNonZero");let i=BigInt(0);for(let o=0;o-1&&this.activeCapabilities.splice(d,1)}return h}_getCommon(A,t){var i,o,r,f;if(t!==void 0){const h=Dt(Ut(t));if(A){if(A.chainId()!==h){const d=this._errorMsg("The chain ID does not match the chain ID of Common");throw new Error(d)}return A.copy()}return Ei.isSupportedChainId(h)?new Ei({chain:h,hardfork:this.DEFAULT_HARDFORK}):Ei.custom({name:"custom-chain",networkId:h,chainId:h},{baseChain:this.DEFAULT_CHAIN,hardfork:this.DEFAULT_HARDFORK})}if(A!=null&&A.copy&&typeof(A==null?void 0:A.copy)=="function")return A.copy();if(A){const h=typeof A.hardfork=="function"?A.hardfork():A.hardfork;return Ei.custom({name:"custom-chain",networkId:A.networkId?A.networkId():(o=BigInt((i=A.customChain)===null||i===void 0?void 0:i.networkId))!==null&&o!==void 0?o:void 0,chainId:A.chainId?A.chainId():(f=BigInt((r=A.customChain)===null||r===void 0?void 0:r.chainId))!==null&&f!==void 0?f:void 0},{baseChain:this.DEFAULT_CHAIN,hardfork:h||this.DEFAULT_HARDFORK})}return new Ei({chain:this.DEFAULT_CHAIN,hardfork:this.DEFAULT_HARDFORK})}_validateCannotExceedMaxInteger(A,t=256,i=!1){for(const[o,r]of Object.entries(A))switch(t){case 64:if(i){if(r!==void 0&&r>=w_){const f=this._errorMsg(`${o} cannot equal or exceed MAX_UINT64 (2^64-1), given ${r}`);throw new Error(f)}}else if(r!==void 0&&r>w_){const f=this._errorMsg(`${o} cannot exceed MAX_UINT64 (2^64-1), given ${r}`);throw new Error(f)}break;case 256:if(i){if(r!==void 0&&r>=_C){const f=this._errorMsg(`${o} cannot equal or exceed MAX_INTEGER (2^256-1), given ${r}`);throw new Error(f)}}else if(r!==void 0&&r>_C){const f=this._errorMsg(`${o} cannot exceed MAX_INTEGER (2^256-1), given ${r}`);throw new Error(f)}break;default:{const f=this._errorMsg("unimplemented bits value");throw new Error(f)}}}static _validateNotArray(A){const t=["nonce","gasPrice","gasLimit","to","value","data","v","r","s","type","baseFee","maxFeePerGas","chainId"];for(const[i,o]of Object.entries(A))if(t.includes(i)&&Array.isArray(o))throw new Error(`${i} cannot be an array`)}_getSharedErrorPostfix(){let A="";try{A=this.isSigned()?Xe(this.hash()):"not available (unsigned)"}catch{A="error"}let t="";try{t=this.isSigned().toString()}catch{A="error"}let i="";try{i=this.common.hardfork()}catch{i="error"}let o=`tx type=${this.type} hash=${A} nonce=${this.nonce} value=${this.value} `;return o+=`signed=${t} hf=${i}`,o}_ecsign(A,t,i){const o=Ag.sign(A,t),r=o.toCompactRawBytes(),f=r.subarray(0,32),h=r.subarray(32,64),d=i===void 0?BigInt(o.recovery+27):BigInt(o.recovery+35)+BigInt(i)*BigInt(2);return{r:f,s:h,v:d}}static fromSerializedTx(A,t={}){}static fromTxData(A,t={}){}}const BN=2,f2=bt(BN.toString(16).padStart(2,"0"));class VI extends wu{constructor(A,t={}){var i;super(Object.assign(Object.assign({},A),{type:BN}),t),this.DEFAULT_HARDFORK="london";const{chainId:o,accessList:r,maxFeePerGas:f,maxPriorityFeePerGas:h}=A;if(this.common=this._getCommon(t.common,o),this.chainId=this.common.chainId(),!this.common.isActivatedEIP(1559))throw new Error("EIP-1559 not enabled on Common");this.activeCapabilities=this.activeCapabilities.concat([1559,2718,2930]);const d=IV(r??[]);if(this.accessList=d.accessList,this.AccessListJSON=d.AccessListJSON,fV(this.accessList),this.maxFeePerGas=Dt(Ut(f===""?"0x":f)),this.maxPriorityFeePerGas=Dt(Ut(h===""?"0x":h)),this._validateCannotExceedMaxInteger({maxFeePerGas:this.maxFeePerGas,maxPriorityFeePerGas:this.maxPriorityFeePerGas}),wu._validateNotArray(A),this.gasLimit*this.maxFeePerGas>_C){const C=this._errorMsg("gasLimit * maxFeePerGas cannot exceed MAX_INTEGER (2^256-1)");throw new Error(C)}if(this.maxFeePerGas_C){const p=this._errorMsg("gasLimit * gasPrice cannot exceed MAX_INTEGER");throw new Error(p)}this._validateYParity(),this._validateHighS(),((i=t==null?void 0:t.freeze)!==null&&i!==void 0?i:!0)&&Object.freeze(this)}static fromTxData(A,t={}){return new ZI(A,t)}static fromSerializedTx(A,t={}){if(!oD(A.subarray(0,1),h2))throw new Error(`Invalid serialized tx input: not an EIP-2930 transaction (wrong tx type, expected: ${dN}, received: ${Xe(A.subarray(0,1))}`);const i=Cn.decode(Uint8Array.from(A.subarray(1)));if(!Array.isArray(i))throw new Error("Invalid serialized tx input: must be array");return ZI.fromValuesArray(i,t)}static fromValuesArray(A,t={}){if(A.length!==8&&A.length!==11)throw new Error("Invalid EIP-2930 transaction. Only expecting 8 values (for unsigned tx) or 11 values (for signed tx).");const[i,o,r,f,h,d,p,C,y,w,D]=A;this._validateNotArray({chainId:i,v:y}),iK({nonce:o,gasPrice:r,gasLimit:f,value:d,v:y,r:w,s:D});const v=[];return new ZI({chainId:Dt(i),nonce:o,gasPrice:r,gasLimit:f,to:h,value:d,data:p,accessList:C??v,v:y!==void 0?Dt(y):void 0,r:w,s:D},t)}getDataFee(){if(this.cache.dataFee&&this.cache.dataFee.hardfork===this.common.hardfork())return this.cache.dataFee.value;let A=super.getDataFee();return A+=BigInt(cV(this.accessList,this.common)),Object.isFrozen(this)&&(this.cache.dataFee={value:A,hardfork:this.common.hardfork()}),A}getUpfrontCost(){return this.gasLimit*this.gasPrice+this.value}raw(){return[It(this.chainId),It(this.nonce),It(this.gasPrice),It(this.gasLimit),this.to!==void 0?this.to.buf:Uint8Array.from([]),It(this.value),this.data,this.accessList,this.v!==void 0?It(this.v):Uint8Array.from([]),this.r!==void 0?It(this.r):Uint8Array.from([]),this.s!==void 0?It(this.s):Uint8Array.from([])]}serialize(){const A=this.raw();return kr(h2,Cn.encode(A))}getMessageToSign(A=!0){const t=this.raw().slice(0,8),i=kr(h2,Cn.encode(t));return A?xt(i):i}hash(){if(!this.isSigned()){const A=this._errorMsg("Cannot call hash method if transaction is not signed");throw new Error(A)}return Object.isFrozen(this)?(this.cache.hash||(this.cache.hash=xt(this.serialize())),this.cache.hash):xt(this.serialize())}getMessageToVerifySignature(){return this.getMessageToSign()}getSenderPublicKey(){if(!this.isSigned()){const r=this._errorMsg("Cannot call this method if transaction is not signed");throw new Error(r)}const A=this.getMessageToVerifySignature(),{v:t,r:i,s:o}=this;this._validateHighS();try{return DK(A,t+BigInt(27),It(i),It(o))}catch{const f=this._errorMsg("Invalid Signature");throw new Error(f)}}_processSignature(A,t,i){const o=Object.assign(Object.assign({},this.txOptions),{common:this.common});return ZI.fromTxData({chainId:this.chainId,nonce:this.nonce,gasPrice:this.gasPrice,gasLimit:this.gasLimit,to:this.to,value:this.value,data:this.data,accessList:this.accessList,v:A-BigInt(27),r:Dt(t),s:Dt(i)},o)}toJSON(){const A=hV(this.accessList);return{chainId:_t(this.chainId),nonce:_t(this.nonce),gasPrice:_t(this.gasPrice),gasLimit:_t(this.gasLimit),to:this.to!==void 0?this.to.toString():void 0,value:_t(this.value),data:Xe(this.data),accessList:A,v:this.v!==void 0?_t(this.v):void 0,r:this.r!==void 0?_t(this.r):void 0,s:this.s!==void 0?_t(this.s):void 0}}errorStr(){var A,t;let i=this._getSharedErrorPostfix();return i+=` gasPrice=${this.gasPrice} accessListCount=${(t=(A=this.accessList)===null||A===void 0?void 0:A.length)!==null&&t!==void 0?t:0}`,i}_errorMsg(A){return`${A} (${this.errorStr()})`}}const pbA=0;function S_(e,A){const t=Number(e),i=Number(A)*2;return t===i+35||t===i+36}class Gg extends wu{constructor(A,t={}){var i;if(super(Object.assign(Object.assign({},A),{type:pbA}),t),this.common=this._validateTxV(this.v,t.common),this.gasPrice=Dt(Ut(A.gasPrice===""?"0x":A.gasPrice)),this.gasPrice*this.gasLimit>_C){const r=this._errorMsg("gas limit * gasPrice cannot exceed MAX_INTEGER (2^256-1)");throw new Error(r)}this._validateCannotExceedMaxInteger({gasPrice:this.gasPrice}),wu._validateNotArray(A),this.common.gteHardfork("spuriousDragon")&&(this.isSigned()?S_(this.v,this.common.chainId())&&this.activeCapabilities.push(Bs.EIP155ReplayProtection):this.activeCapabilities.push(Bs.EIP155ReplayProtection)),((i=t==null?void 0:t.freeze)!==null&&i!==void 0?i:!0)&&Object.freeze(this)}static fromTxData(A,t={}){return new Gg(A,t)}static fromSerializedTx(A,t={}){const i=Cn.decode(A);if(!Array.isArray(i))throw new Error("Invalid serialized tx input. Must be array");return this.fromValuesArray(i,t)}static fromValuesArray(A,t={}){if(A.length!==6&&A.length!==9)throw new Error("Invalid transaction. Only expecting 6 values (for unsigned tx) or 9 values (for signed tx).");const[i,o,r,f,h,d,p,C,y]=A;return iK({nonce:i,gasPrice:o,gasLimit:r,value:h,v:p,r:C,s:y}),new Gg({nonce:i,gasPrice:o,gasLimit:r,to:f,value:h,data:d,v:p,r:C,s:y},t)}raw(){return[It(this.nonce),It(this.gasPrice),It(this.gasLimit),this.to!==void 0?this.to.buf:Uint8Array.from([]),It(this.value),this.data,this.v!==void 0?It(this.v):Uint8Array.from([]),this.r!==void 0?It(this.r):Uint8Array.from([]),this.s!==void 0?It(this.s):Uint8Array.from([])]}serialize(){return Cn.encode(this.raw())}_getMessageToSign(){const A=[It(this.nonce),It(this.gasPrice),It(this.gasLimit),this.to!==void 0?this.to.buf:Uint8Array.from([]),It(this.value),this.data];return this.supports(Bs.EIP155ReplayProtection)&&(A.push(Ut(this.common.chainId())),A.push(Tp(Ut(0))),A.push(Tp(Ut(0)))),A}getMessageToSign(A=!0){const t=this._getMessageToSign();return A?xt(Cn.encode(t)):t}getDataFee(){return this.cache.dataFee&&this.cache.dataFee.hardfork===this.common.hardfork()?this.cache.dataFee.value:(Object.isFrozen(this)&&(this.cache.dataFee={value:super.getDataFee(),hardfork:this.common.hardfork()}),super.getDataFee())}getUpfrontCost(){return this.gasLimit*this.gasPrice+this.value}hash(){if(!this.isSigned()){const A=this._errorMsg("Cannot call hash method if transaction is not signed");throw new Error(A)}return Object.isFrozen(this)?(this.cache.hash||(this.cache.hash=xt(Cn.encode(this.raw()))),this.cache.hash):xt(Cn.encode(this.raw()))}getMessageToVerifySignature(){if(!this.isSigned()){const t=this._errorMsg("This transaction is not signed");throw new Error(t)}const A=this._getMessageToSign();return xt(Cn.encode(A))}getSenderPublicKey(){const A=this.getMessageToVerifySignature(),{v:t,r:i,s:o}=this;this._validateHighS();try{return DK(A,t,It(i),It(o),this.supports(Bs.EIP155ReplayProtection)?this.common.chainId():void 0)}catch{const f=this._errorMsg("Invalid Signature");throw new Error(f)}}_processSignature(A,t,i){let o=A;this.supports(Bs.EIP155ReplayProtection)&&(o+=this.common.chainId()*BigInt(2)+BigInt(8));const r=Object.assign(Object.assign({},this.txOptions),{common:this.common});return Gg.fromTxData({nonce:this.nonce,gasPrice:this.gasPrice,gasLimit:this.gasLimit,to:this.to,value:this.value,data:this.data,v:o,r:Dt(t),s:Dt(i)},r)}toJSON(){return{nonce:_t(this.nonce),gasPrice:_t(this.gasPrice),gasLimit:_t(this.gasLimit),to:this.to!==void 0?this.to.toString():void 0,value:_t(this.value),data:Xe(this.data),v:this.v!==void 0?_t(this.v):void 0,r:this.r!==void 0?_t(this.r):void 0,s:this.s!==void 0?_t(this.s):void 0}}_validateTxV(A,t){let i;const o=A!==void 0?Number(A):void 0;if(o!==void 0&&o<37&&o!==27&&o!==28)throw new Error(`Legacy txs need either v = 27/28 or v >= 37 (EIP-155 replay protection), got v = ${o}`);if(o!==void 0&&o!==0&&(!t||t.gteHardfork("spuriousDragon"))&&o!==27&&o!==28)if(t){if(!S_(BigInt(o),t.chainId()))throw new Error(`Incompatible EIP155-based V ${o} and chain id ${t.chainId()}. See the Common parameter of the Transaction constructor to set the chain id.`)}else{let r;(o-35)%2===0?r=35:r=36,i=BigInt(o-r)/BigInt(2)}return this._getCommon(t,i)}errorStr(){let A=this._getSharedErrorPostfix();return A+=` gasPrice=${this.gasPrice}`,A}_errorMsg(A){return`${A} (${this.errorStr()})`}}const c2=new Map;class Yf{constructor(){}static typeToInt(A){return Number(Dt(Ut(A)))}static registerTransactionType(A,t){const i=Yf.typeToInt(A);c2.set(i,t)}static fromTxData(A,t={}){if(!("type"in A)||A.type===void 0)return Gg.fromTxData(A,t);const i=Yf.typeToInt(A.type);if(i===0)return Gg.fromTxData(A,t);if(i===1)return ZI.fromTxData(A,t);if(i===2)return VI.fromTxData(A,t);const o=c2.get(i);if(o!=null&&o.fromTxData)return o.fromTxData(A,t);throw new Error(`Tx instantiation with type ${i} not supported`)}static fromSerializedData(A,t={}){if(A[0]<=127)switch(A[0]){case 1:return ZI.fromSerializedTx(A,t);case 2:return VI.fromSerializedTx(A,t);default:{const i=c2.get(Number(A[0]));if(i!=null&&i.fromSerializedTx)return i.fromSerializedTx(A,t);throw new Error(`TypedTransaction with ID ${A[0]} unknown`)}}else return Gg.fromSerializedTx(A,t)}static fromBlockBodyData(A,t={}){if(lI(A))return this.fromSerializedData(A,t);if(Array.isArray(A))return Gg.fromValuesArray(A,t);throw new Error("Cannot decode transaction: unknown type input")}}var CD=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const fl=(e,A)=>{let t;if(!A&&typeof e=="string"&&Ct(e)&&e.length!==66)throw new WU;try{t=lI(e)?e:Ts(e)}catch{throw new omA}if(!A&&t.byteLength!==32)throw new WU;return t},vK=e=>{const A=Ct(e)?e:Vo(e),t=bt(A),i=bt(IW(`Ethereum Signed Message: +${t.byteLength}`)),o=kr(i,t);return vn(o)},ybA=(e,A)=>{const t=fl(A),i=Ag.sign(e.substring(2),t),o=i.toCompactRawBytes(),r=i.r.toString(16).padStart(64,"0"),f=i.s.toString(16).padStart(64,"0"),h=i.recovery+27;return{messageHash:e,v:Vr(h),r:`0x${r}`,s:`0x${f}`,signature:`${Xe(o)}${h.toString(16)}`}},uV=(e,A)=>{const t=vK(e),{messageHash:i,v:o,r,s:f,signature:h}=ybA(t,A);return{message:e,messageHash:i,v:o,r,s:f,signature:h}},wbA=(e,A)=>CD(void 0,void 0,void 0,function*(){const t=e.sign(bt(A));if(TA(t.v)||TA(t.r)||TA(t.s))throw new AN("Signer Error");const i=t.validate(!0);if(i.length>0){let f="Signer Error ";for(const h of i)f+=`${f} ${h}.`;throw new AN(f)}const o=Xe(t.serialize()),r=vn(o);return{messageHash:Xe(t.getMessageToSign(!0)),v:`0x${t.v.toString(16)}`,r:`0x${t.r.toString(16).padStart(64,"0")}`,s:`0x${t.s.toString(16).padStart(64,"0")}`,rawTransaction:o,transactionHash:Xe(r)}}),DbA=e=>{if(TA(e))throw new wmA;const A=Yf.fromSerializedData(bt(e));return Zs(A.getSenderAddress().toString())},EN=(e,A,t,i,o)=>{if(typeof e=="object"){const y=`${e.r}${e.s.slice(2)}${e.v.slice(2)}`;return EN(e.messageHash,y,t)}if(typeof A=="string"&&typeof t=="string"&&!TA(i)){const y=`${t}${i.slice(2)}${A.slice(2)}`;return EN(e,y,o)}if(TA(A))throw new smA("signature string undefined");const r=130,f=t?e:vK(e);let h=parseInt(A.substring(r),16);h>26&&(h-=27);const d=Ag.Signature.fromCompact(A.slice(2,r)).addRecoveryBit(h).recoverPublicKey(f.replace("0x","")).toRawBytes(!1),p=vn(d.subarray(1));return Zs(`0x${p.slice(-40)}`)},BD=e=>{const A=fl(e),t=Ag.getPublicKey(A,!1),o=vn(t.slice(1)).slice(-40);return Zs(`0x${o}`)},mbA=(e,A)=>{const t=fl(e);return`0x${Xe(Ag.getPublicKey(t,A)).slice(4)}`},lV=(e,A,t)=>CD(void 0,void 0,void 0,function*(){var i,o,r,f,h,d,p;const C=fl(e);let y;if(t!=null&&t.salt?y=typeof t.salt=="string"?bt(t.salt):t.salt:y=xC(32),!(eK(A)||lI(A)))throw new ImA;const w=typeof A=="string"?bt(Vo(A)):A;let D;if(t!=null&&t.iv){if(D=typeof t.iv=="string"?bt(t.iv):t.iv,D.length!==16)throw new fmA}else D=xC(16);const v=(i=t==null?void 0:t.kdf)!==null&&i!==void 0?i:"scrypt";let M,R;if(v==="pbkdf2"){if(R={dklen:(o=t==null?void 0:t.dklen)!==null&&o!==void 0?o:32,salt:Xe(y).replace("0x",""),c:(r=t==null?void 0:t.c)!==null&&r!==void 0?r:262144,prf:"hmac-sha256"},R.c<1e3)throw new hmA;M=qW(w,y,R.c,R.dklen,"sha256")}else if(v==="scrypt")R={n:(f=t==null?void 0:t.n)!==null&&f!==void 0?f:8192,r:(h=t==null?void 0:t.r)!==null&&h!==void 0?h:8,p:(d=t==null?void 0:t.p)!==null&&d!==void 0?d:1,dklen:(p=t==null?void 0:t.dklen)!==null&&p!==void 0?p:32,salt:Xe(y).replace("0x","")},M=HW(w,y,R.n,R.p,R.r,R.dklen);else throw new Gj;const b=yield CK(C,M.slice(0,16),D,"aes-128-ctr"),S=Xe(b).slice(2),G=vn(kr(M.slice(16,32),b)).replace("0x","");return{version:3,id:fK(),address:BD(C).toLowerCase().replace("0x",""),crypto:{ciphertext:S,cipherparams:{iv:Xe(D).replace("0x","")},cipher:"aes-128-ctr",kdf:v,kdfparams:R,mac:G}}}),MK=(e,A)=>{const t=fl(e,A);return{address:BD(t),privateKey:Xe(t),signTransaction:i=>{throw new AN("Do not have network access to sign the transaction")},sign:i=>uV(typeof i=="string"?i:JSON.stringify(i),t),encrypt:(i,o)=>CD(void 0,void 0,void 0,function*(){return lV(t,i,o)})}},vbA=()=>{const e=Ag.utils.randomPrivateKey();return MK(`${Xe(e)}`)},MbA=(e,A,t)=>CD(void 0,void 0,void 0,function*(){const i=typeof e=="object"?e:JSON.parse(t?e.toLowerCase():e);if(Se.validateJSONSchema(u2A,i),i.version!==3)throw new gmA;const o=typeof A=="string"?bt(Vo(A)):A;Se.validate(["bytes"],[o]);let r;if(i.crypto.kdf==="scrypt"){const p=i.crypto.kdfparams,C=typeof p.salt=="string"?bt(p.salt):p.salt;r=HW(o,C,p.n,p.p,p.r,p.dklen)}else if(i.crypto.kdf==="pbkdf2"){const p=i.crypto.kdfparams,C=typeof p.salt=="string"?bt(p.salt):p.salt;r=qW(o,C,p.c,p.dklen,"sha256")}else throw new Gj;const f=bt(i.crypto.ciphertext);if(vn(kr(r.slice(16,32),f)).replace("0x","")!==i.crypto.mac)throw new amA;const d=yield cMA(bt(i.crypto.ciphertext),r.slice(0,16),bt(i.crypto.cipherparams.iv));return MK(d)});var N_=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const bbA=1e3;class SbA{constructor(A){this._requestManager=A,this._requests=new Map}get requests(){return[...this._requests.values()].map(A=>A.payload)}add(A){const t=_f(A),i=new _p;return this._requests.set(t.id,{payload:t,promise:i}),i}execute(A){var t;return N_(this,void 0,void 0,function*(){if(this.requests.length===0)return Promise.resolve([]);const i=new _p({timeout:(t=A==null?void 0:A.timeout)!==null&&t!==void 0?t:bbA,eagerStart:!0,timeoutMessage:"Batch request timeout"});return this._processBatchRequest(i).catch(o=>i.reject(o)),i.catch(o=>{o instanceof Fj&&this._abortAllRequests("Batch request timeout"),i.reject(o)}),i})}_processBatchRequest(A){var t,i;return N_(this,void 0,void 0,function*(){const o=yield this._requestManager.sendBatch([...this._requests.values()].map(h=>h.payload));if(o.length!==this._requests.size)throw this._abortAllRequests("Invalid batch response"),new Cs(o,`Batch request size mismatch the results size. Requests: ${this._requests.size}, Responses: ${o.length}`);const r=this.requests.map(h=>h.id).map(Number).sort((h,d)=>h-d),f=o.map(h=>h.id).map(Number).sort((h,d)=>h-d);if(JSON.stringify(r)!==JSON.stringify(f))throw this._abortAllRequests("Invalid batch response"),new Cs(o,`Batch request mismatch the results. Requests: [${r.join()}], Responses: [${f.join()}]`);for(const h of o)Og(h)?(t=this._requests.get(h.id))===null||t===void 0||t.promise.resolve(h.result):jg(h)&&((i=this._requests.get(h.id))===null||i===void 0||i.promise.reject(h.error));A.resolve(o)})}_abortAllRequests(A){for(const{promise:t}of this._requests.values())t.reject(new EmA(A))}}var NbA=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,[])).next())})};class zr extends oMA{constructor(A){var t;if(super(),this.providers=Bf.providers,Me(A)||typeof A=="string"&&A.trim()!==""||qp(A)){this._requestManager=new Bf(A),this._subscriptionManager=new gN(this._requestManager,{});return}const{config:i,provider:o,requestManager:r,subscriptionManager:f,registeredSubscriptions:h,accountProvider:d,wallet:p,requestManagerMiddleware:C}=A;this.setConfig(i??{}),this._requestManager=r??new Bf(o,(t=i==null?void 0:i.enableExperimentalFeatures)===null||t===void 0?void 0:t.useSubscriptionWhenCheckingBlockTimeout,C),f?this._subscriptionManager=f:this._subscriptionManager=new gN(this.requestManager,h??{}),d&&(this._accountProvider=d),p&&(this._wallet=p)}get requestManager(){return this._requestManager}get subscriptionManager(){return this._subscriptionManager}get wallet(){return this._wallet}get accountProvider(){return this._accountProvider}static fromContextObject(...A){return new this(...A.reverse())}getContextObject(){var A;return{config:this.config,provider:this.provider,requestManager:this.requestManager,subscriptionManager:this.subscriptionManager,registeredSubscriptions:(A=this.subscriptionManager)===null||A===void 0?void 0:A.registeredSubscriptions,providers:this.providers,wallet:this.wallet,accountProvider:this.accountProvider}}use(A,...t){const i=new A(...t,this.getContextObject());return this.on(qf.CONFIG_CHANGE,o=>{i.setConfig({[o.name]:o.newValue})}),this[A.name]=i,i}link(A){this.setConfig(A.config),this._requestManager=A.requestManager,this.provider=A.provider,this._subscriptionManager=A.subscriptionManager,this._wallet=A.wallet,this._accountProvider=A._accountProvider,A.on(qf.CONFIG_CHANGE,t=>{this.setConfig({[t.name]:t.newValue})})}registerPlugin(A){if(this[A.pluginNamespace]!==void 0)throw new QmA(A.pluginNamespace);const t={[A.pluginNamespace]:A};t[A.pluginNamespace].link(this),Object.assign(this,t)}get provider(){return this.currentProvider}set provider(A){this.requestManager.setProvider(A)}get currentProvider(){return this.requestManager.provider}set currentProvider(A){this.requestManager.setProvider(A)}get givenProvider(){return zr.givenProvider}setProvider(A){return this.provider=A,!0}setRequestManagerMiddleware(A){this.requestManager.setMiddleware(A)}get BatchRequest(){return SbA.bind(void 0,this._requestManager)}extend(A){var t;return A.property&&!this[A.property]&&(this[A.property]={}),(t=A.methods)===null||t===void 0||t.forEach(i=>{const o=(...r)=>NbA(this,void 0,void 0,function*(){return this.requestManager.send({method:i.call,params:r})});A.property?this[A.property][i.name]=o:this[i.name]=o}),this}}zr.providers=Bf.providers;class Ii{constructor(A){if(this.toAddress=()=>{if(this.isDirect()){const t=this._iban.slice(4),i=Ii._parseInt(t,36),o=GC(i,40);return Zs(o)}throw new Error("Iban is indirect and cannot be converted. Must be length of 34 or 35")},Ii.isIndirect(A)||Ii.isDirect(A))this._iban=A;else throw new Error("Invalid IBAN was provided")}static isDirect(A){return A.length===34||A.length===35}isDirect(){return Ii.isDirect(this._iban)}static isIndirect(A){return A.length===20}isIndirect(){return Ii.isIndirect(this._iban)}static isValid(A){return/^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(A)&&Ii._mod9710(Ii._iso13616Prepare(A))===1}isValid(){return Ii.isValid(this._iban)}static fromBban(A){const t="XE",o=`0${(98-this._mod9710(this._iso13616Prepare(`${t}00${A}`))).toString()}`.slice(-2);return new Ii(`${t}${o}${A}`)}static createIndirect(A){return Ii.fromBban(`ETH${A.institution}${A.identifier}`)}static fromAddress(A){if(!mn(A))throw new $R(A);const i=BigInt(kB(A)).toString(36),o=GC(i,15);return Ii.fromBban(o.toUpperCase())}static toIban(A){return Ii.fromAddress(A).toString()}client(){return this.isIndirect()?this._iban.slice(11):""}checksum(){return this._iban.slice(2,4)}institution(){return this.isIndirect()?this._iban.slice(7,11):""}toString(){return this._iban}}Ii._iso13616Prepare=e=>{const i=e.toUpperCase();return`${i.slice(4)}${i.slice(0,4)}`.split("").map(r=>{const f=r.charCodeAt(0);return f>=65&&f<=90?f-65+10:r}).join("")};Ii._parseInt=(e,A)=>[...e].reduce((t,i)=>BigInt(parseInt(i,A))+BigInt(A)*t,BigInt(0));Ii._mod9710=e=>{let A=e,t;for(;A.length>2;)t=A.slice(0,9),A=`${(parseInt(t,10)%97).toString()}${A.slice(t.length)}`;return parseInt(A,10)%97};Ii.toAddress=e=>new Ii(e).toAddress();var u2=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})},CV;class BV extends hD{constructor(A){super(),this[CV]="Promise",this._promise=new Promise(A)}then(A,t){return u2(this,void 0,void 0,function*(){return this._promise.then(A,t)})}catch(A){return u2(this,void 0,void 0,function*(){return this._promise.catch(A)})}finally(A){return u2(this,void 0,void 0,function*(){return this._promise.finally(A)})}on(A,t){return super.on(A,t),this}once(A,t){return super.once(A,t),this}}CV=Symbol.toStringTag;(function(e,A){if(e.setImmediate)return;var t=1,i={},o=!1,r=e.document,f;function h(S){typeof S!="function"&&(S=new Function(""+S));for(var G=new Array(arguments.length-1),U=0;U"u"?typeof globalThis>"u"?void 0:globalThis:self);var Ye=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};function kbA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_protocolVersion",params:[]})})}function dV(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_syncing",params:[]})})}function RbA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_coinbase",params:[]})})}function KbA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_mining",params:[]})})}function GbA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_hashrate",params:[]})})}function FbA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_gasPrice",params:[]})})}function xbA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_maxPriorityFeePerGas",params:[]})})}function LbA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_accounts",params:[]})})}function UbA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_blockNumber",params:[]})})}function _bA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["address","blockNumberOrTag"],[A,t]),e.send({method:"eth_getBalance",params:[A,t]})})}function qbA(e,A,t,i){return Ye(this,void 0,void 0,function*(){return Se.validate(["address","hex","blockNumberOrTag"],[A,t,i]),e.send({method:"eth_getStorageAt",params:[A,t,i]})})}function HbA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["address","blockNumberOrTag"],[A,t]),e.send({method:"eth_getTransactionCount",params:[A,t]})})}function YbA(e,A){return Ye(this,void 0,void 0,function*(){return Se.validate(["bytes32"],[A]),e.send({method:"eth_getBlockTransactionCountByHash",params:[A]})})}function JbA(e,A){return Ye(this,void 0,void 0,function*(){return Se.validate(["blockNumberOrTag"],[A]),e.send({method:"eth_getBlockTransactionCountByNumber",params:[A]})})}function TbA(e,A){return Ye(this,void 0,void 0,function*(){return Se.validate(["bytes32"],[A]),e.send({method:"eth_getUncleCountByBlockHash",params:[A]})})}function PbA(e,A){return Ye(this,void 0,void 0,function*(){return Se.validate(["blockNumberOrTag"],[A]),e.send({method:"eth_getUncleCountByBlockNumber",params:[A]})})}function ObA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["address","blockNumberOrTag"],[A,t]),e.send({method:"eth_getCode",params:[A,t]})})}function jbA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["address","hex"],[A,t]),e.send({method:"eth_sign",params:[A,t]})})}function WbA(e,A){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_signTransaction",params:[A]})})}function VbA(e,A){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_sendTransaction",params:[A]})})}function EV(e,A){return Ye(this,void 0,void 0,function*(){return Se.validate(["hex"],[A]),e.send({method:"eth_sendRawTransaction",params:[A]})})}function ZbA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["blockNumberOrTag"],[t]),e.send({method:"eth_call",params:[A,t]})})}function zbA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["blockNumberOrTag"],[t]),e.send({method:"eth_estimateGas",params:[A,t]})})}function $bA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["bytes32","bool"],[A,t]),e.send({method:"eth_getBlockByHash",params:[A,t]})})}function QV(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["blockNumberOrTag","bool"],[A,t]),e.send({method:"eth_getBlockByNumber",params:[A,t]})})}function XbA(e,A){return Ye(this,void 0,void 0,function*(){return Se.validate(["bytes32"],[A]),e.send({method:"eth_getTransactionByHash",params:[A]})})}function ASA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["bytes32","hex"],[A,t]),e.send({method:"eth_getTransactionByBlockHashAndIndex",params:[A,t]})})}function eSA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["blockNumberOrTag","hex"],[A,t]),e.send({method:"eth_getTransactionByBlockNumberAndIndex",params:[A,t]})})}function tSA(e,A){return Ye(this,void 0,void 0,function*(){return Se.validate(["bytes32"],[A]),e.send({method:"eth_getTransactionReceipt",params:[A]})})}function iSA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["bytes32","hex"],[A,t]),e.send({method:"eth_getUncleByBlockHashAndIndex",params:[A,t]})})}function rSA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["blockNumberOrTag","hex"],[A,t]),e.send({method:"eth_getUncleByBlockNumberAndIndex",params:[A,t]})})}function nSA(e,A){return Ye(this,void 0,void 0,function*(){return Se.validate(["filter"],[A]),e.send({method:"eth_getLogs",params:[A]})})}function oSA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_getWork",params:[]})})}function sSA(e,A,t,i){return Ye(this,void 0,void 0,function*(){return Se.validate(["bytes8","bytes32","bytes32"],[A,t,i]),e.send({method:"eth_submitWork",params:[A,t,i]})})}function aSA(e,A,t,i){return Ye(this,void 0,void 0,function*(){Se.validate(["hex","blockNumberOrTag"],[A,t]);for(const o of i)Se.validate(["number"],[o]);return e.send({method:"eth_feeHistory",params:[A,t,i]})})}function gSA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_pendingTransactions",params:[]})})}function ISA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_requestAccounts",params:[]})})}function fSA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"eth_chainId",params:[]})})}function hSA(e,A,t,i){return Ye(this,void 0,void 0,function*(){return Se.validate(["address","bytes32[]","blockNumberOrTag"],[A,t,i]),e.send({method:"eth_getProof",params:[A,t,i]})})}function cSA(e){return Ye(this,void 0,void 0,function*(){return e.send({method:"web3_clientVersion",params:[]})})}function uSA(e,A,t){return Ye(this,void 0,void 0,function*(){return Se.validate(["blockNumberOrTag"],[t]),e.send({method:"eth_createAccessList",params:[A,t]})})}function lSA(e,A,t,i=!1){return Ye(this,void 0,void 0,function*(){return Se.validate(["address"],[A]),e.send({method:`eth_signTypedData${i?"":"_v4"}`,params:[A,t]})})}var bK=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};function CSA(e){return bK(this,void 0,void 0,function*(){return e.send({method:"net_version",params:[]})})}function BSA(e){return bK(this,void 0,void 0,function*(){return e.send({method:"net_peerCount",params:[]})})}function dSA(e){return bK(this,void 0,void 0,function*(){return e.send({method:"net_listening",params:[]})})}var eg=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const ESA=e=>eg(void 0,void 0,void 0,function*(){return e.send({method:"personal_listAccounts",params:[]})}),QSA=(e,A)=>eg(void 0,void 0,void 0,function*(){return e.send({method:"personal_newAccount",params:[A]})}),pSA=(e,A,t,i)=>eg(void 0,void 0,void 0,function*(){return e.send({method:"personal_unlockAccount",params:[A,t,i]})}),ySA=(e,A)=>eg(void 0,void 0,void 0,function*(){return e.send({method:"personal_lockAccount",params:[A]})}),wSA=(e,A,t)=>eg(void 0,void 0,void 0,function*(){return e.send({method:"personal_importRawKey",params:[A,t]})}),DSA=(e,A,t)=>eg(void 0,void 0,void 0,function*(){return e.send({method:"personal_sendTransaction",params:[A,t]})}),mSA=(e,A,t)=>eg(void 0,void 0,void 0,function*(){return e.send({method:"personal_signTransaction",params:[A,t]})}),vSA=(e,A,t,i)=>eg(void 0,void 0,void 0,function*(){return e.send({method:"personal_sign",params:[A,t,i]})}),MSA=(e,A,t)=>eg(void 0,void 0,void 0,function*(){return e.send({method:"personal_ecRecover",params:[A,t]})}),k_={type:"object",properties:{accessList:{type:"null"},maxFeePerGas:{type:"null"},maxPriorityFeePerGas:{type:"null"}}},R_={type:"object",properties:{maxFeePerGas:{type:"null"},maxPriorityFeePerGas:{type:"null"}}},K_={type:"object",properties:{gasPrice:{type:"null"}}},Wd=(e,A,t)=>{try{Se.validateJSONSchema(e,A)}catch(i){throw i instanceof lu?new jmA(i.errors,t):i}},bSA=e=>{var A,t;const i=e;if(!TA(i.type)){let r;switch(i.type){case"0x0":r=k_;break;case"0x1":r=R_;break;case"0x2":r=K_;break;default:return ie({format:"uint"},i.type,Ke)}return Wd(r,i,i.type),ie({format:"uint"},i.type,Ke)}if(!TA(i.maxFeePerGas)||!TA(i.maxPriorityFeePerGas))return Wd(K_,i,"0x2"),"0x2";if(!TA(i.accessList))return Wd(R_,i,"0x1"),"0x1";const o=(A=i.hardfork)!==null&&A!==void 0?A:(t=i.common)===null||t===void 0?void 0:t.hardfork;if(!TA(o)){const r=Object.keys(G0).indexOf(o);if(r>=Object.keys(G0).indexOf("london"))return TA(i.gasPrice)?"0x2":"0x0";if(r===Object.keys(G0).indexOf("berlin"))return"0x0"}if(!TA(i.gasPrice))return Wd(k_,i,"0x0"),"0x0"},SSA=(e,A)=>{var t;return((t=A==null?void 0:A.transactionTypeParser)!==null&&t!==void 0?t:bSA)(e)},NSA=e=>e[0]>127?"0x0":Ta(e[0]),kSA={type:"object",properties:{address:{format:"address"},storageKeys:{type:"array",items:{format:"bytes32"}}}},SK={type:"array",items:Object.assign({},kSA)},RSA={type:"object",properties:{accessList:Object.assign({},SK),gasUsed:{type:"string"}}},G_={type:"string",enum:["goerli","kovan","mainnet","rinkeby","ropsten","sepolia"]},F_={type:"string",enum:["arrowGlacier","berlin","byzantium","chainstart","constantinople","dao","homestead","istanbul","london","merge","muirGlacier","petersburg","shanghai","spuriousDragon","tangerineWhistle"]},KSA={type:"object",properties:{name:{format:"string"},networkId:{format:"uint"},chainId:{format:"uint"}}},pV={type:"object",properties:{from:{format:"address"},to:{oneOf:[{format:"address"},{type:"null"}]},value:{format:"uint"},gas:{format:"uint"},gasPrice:{format:"uint"},effectiveGasPrice:{format:"uint"},type:{format:"uint"},maxFeePerGas:{format:"uint"},maxPriorityFeePerGas:{format:"uint"},accessList:Object.assign({},SK),data:{format:"bytes"},input:{format:"bytes"},nonce:{format:"uint"},chain:Object.assign({},G_),hardfork:Object.assign({},F_),chainId:{format:"uint"},networkId:{format:"uint"},common:{type:"object",properties:{customChain:Object.assign({},KSA),baseChain:Object.assign({},G_),hardfork:Object.assign({},F_)}},gasLimit:{format:"uint"},v:{format:"uint"},r:{format:"bytes32"},s:{format:"bytes32"}}},QN={type:"object",properties:Object.assign(Object.assign({},pV.properties),{blockHash:{format:"bytes32"},blockNumber:{format:"uint"},hash:{format:"bytes32"},transactionIndex:{format:"uint"},from:{format:"address"},to:{oneOf:[{format:"address"},{type:"null"}]},value:{format:"uint"},gas:{format:"uint"},gasPrice:{format:"uint"},effectiveGasPrice:{format:"uint"},type:{format:"uint"},maxFeePerGas:{format:"uint"},maxPriorityFeePerGas:{format:"uint"},accessList:Object.assign({},SK),data:{format:"bytes"},input:{format:"bytes"},nonce:{format:"uint"},gasLimit:{format:"uint"},v:{format:"uint"},r:{format:"bytes32"},s:{format:"bytes32"}})},yV={type:"object",properties:{index:{format:"uint"},validatorIndex:{format:"uint"},address:{format:"address"},amount:{format:"uint"}}},Op={type:"object",properties:{baseFeePerGas:{format:"uint"},blobGasUsed:{format:"uint"},difficulty:{format:"uint"},excessBlobGas:{format:"uint"},extraData:{format:"bytes"},gasLimit:{format:"uint"},gasUsed:{format:"uint"},hash:{format:"bytes32"},logsBloom:{format:"bytes256"},miner:{format:"bytes"},mixHash:{format:"bytes32"},nonce:{format:"uint"},number:{format:"uint"},parentBeaconBlockRoot:{format:"bytes32"},parentHash:{format:"bytes32"},receiptsRoot:{format:"bytes32"},sha3Uncles:{format:"bytes32"},size:{format:"uint"},stateRoot:{format:"bytes32"},timestamp:{format:"uint"},totalDifficulty:{format:"uint"},transactions:{oneOf:[{type:"array",items:Object.assign({},QN)},{type:"array",items:{format:"bytes32"}}]},transactionsRoot:{format:"bytes32"},uncles:{type:"array",items:{format:"bytes32"}},withdrawals:{type:"array",items:Object.assign({},yV)},withdrawalsRoot:{format:"bytes32"}}},GSA={type:"object",properties:{author:{format:"bytes32"},excessDataGas:{format:"uint"},baseFeePerGas:{format:"uint"},blobGasUsed:{format:"uint"},difficulty:{format:"uint"},excessBlobGas:{format:"uint"},extraData:{format:"bytes"},gasLimit:{format:"uint"},gasUsed:{format:"uint"},hash:{format:"bytes32"},logsBloom:{format:"bytes256"},miner:{format:"bytes"},mixHash:{format:"bytes32"},nonce:{format:"uint"},number:{format:"uint"},parentBeaconBlockRoot:{format:"bytes32"},parentHash:{format:"bytes32"},receiptsRoot:{format:"bytes32"},sha3Uncles:{format:"bytes32"},size:{format:"uint"},stateRoot:{format:"bytes32"},timestamp:{format:"uint"},totalDifficulty:{format:"uint"},transactions:{type:"array",items:{format:"bytes32"}},transactionsRoot:{format:"bytes32"},uncles:{type:"array",items:{format:"bytes32"}},withdrawals:{type:"array",items:Object.assign({},yV)},withdrawalsRoot:{format:"bytes32"}}},dD={type:"object",properties:{removed:{format:"bool"},logIndex:{format:"uint"},transactionIndex:{format:"uint"},transactionHash:{format:"bytes32"},blockHash:{format:"bytes32"},blockNumber:{format:"uint"},address:{format:"address"},data:{format:"bytes"},topics:{type:"array",items:{format:"bytes32"}}}},FSA={type:"object",properties:{startingBlock:{format:"string"},currentBlock:{format:"string"},highestBlock:{format:"string"},knownStates:{format:"string"},pulledStates:{format:"string"}}},hl={type:"object",properties:{transactionHash:{format:"bytes32"},transactionIndex:{format:"uint"},blockHash:{format:"bytes32"},blockNumber:{format:"uint"},from:{format:"address"},to:{format:"address"},cumulativeGasUsed:{format:"uint"},gasUsed:{format:"uint"},effectiveGasPrice:{format:"uint"},contractAddress:{format:"address"},logs:{type:"array",items:Object.assign({},dD)},logsBloom:{format:"bytes"},root:{format:"bytes"},status:{format:"uint"},type:{format:"uint"}}},xSA={type:"object",properties:{messageHash:{format:"bytes"},r:{format:"bytes32"},s:{format:"bytes32"},v:{format:"bytes"},message:{format:"bytes"},signature:{format:"bytes"}}},LSA={type:"object",properties:{oldestBlock:{format:"uint"},baseFeePerGas:{type:"array",items:{format:"uint"}},reward:{type:"array",items:{type:"array",items:{format:"uint"}}},gasUsedRatio:{type:"array",items:{type:"number"}}}},USA={type:"object",properties:{key:{format:"bytes32"},value:{format:"uint"},proof:{type:"array",items:{format:"bytes32"}}}},_SA={type:"object",properties:{balance:{format:"uint"},codeHash:{format:"bytes32"},nonce:{format:"uint"},storageHash:{format:"bytes32"},accountProof:{type:"array",items:{format:"bytes32"}},storageProof:{type:"array",items:Object.assign({},USA)}}};function an(e,A=en,t={transactionSchema:QN,fillInputAndData:!1}){var i,o;let r=CI({},e);if(TA(e==null?void 0:e.common)||(r.common=Object.assign({},e.common),TA((i=e.common)===null||i===void 0?void 0:i.customChain)||(r.common.customChain=Object.assign({},e.common.customChain))),r=ie((o=t.transactionSchema)!==null&&o!==void 0?o:QN,r,A),!TA(r.data)&&!TA(r.input)&&Ta(r.data)!==Ta(r.input))throw new _j({data:Xe(r.data),input:Xe(r.input)});return t.fillInputAndData&&(TA(r.data)?TA(r.input)||(r.data=r.input):r.input=r.data),TA(r.gasLimit)||(r.gas=r.gasLimit,delete r.gasLimit),r}function qSA(e,A,t={fillInputAndData:!1}){return{raw:ie({format:"bytes"},e,A),tx:an(Object.assign(Object.assign({},Yf.fromSerializedData(bt(e)).toJSON()),{hash:Xe(du(bt(e))),type:NSA(bt(e))}),A,{fillInputAndData:t.fillInputAndData,transactionSchema:t.transactionSchema})}}var NK=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};function kK(e,A){return NK(this,void 0,void 0,function*(){const t=yield CSA(e.requestManager);return ie({format:"uint"},t,A)})}function HSA(e,A){return NK(this,void 0,void 0,function*(){const t=yield BSA(e.requestManager);return ie({format:"uint"},t,A)})}const YSA=e=>NK(void 0,void 0,void 0,function*(){return dSA(e.requestManager)});var l2=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class wV extends zr{getId(A=this.defaultReturnFormat){return l2(this,void 0,void 0,function*(){return kK(this,A)})}getPeerCount(A=this.defaultReturnFormat){return l2(this,void 0,void 0,function*(){return HSA(this,A)})}isListening(){return l2(this,void 0,void 0,function*(){return YSA(this)})}}const Du="ALLEVENTS",pN={name:Du,signature:"",type:"event",inputs:[]},ED={bytes:Ha.HEX,number:ro.NUMBER};var DV=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};function JSA(e,A,t){var i,o,r,f;return DV(this,void 0,void 0,function*(){const h=yield XV(A,A.defaultBlock,!1,Ke);if(TA(h.baseFeePerGas))throw new JmA;let d;if(TA(e.gasPrice)&&BigInt(h.baseFeePerGas)===BigInt(0)&&(d=yield qK(A,t)),!TA(e.gasPrice)||!TA(d)){const p=ie({format:"uint"},(i=e.gasPrice)!==null&&i!==void 0?i:d,t);return{maxPriorityFeePerGas:p,maxFeePerGas:p}}return{maxPriorityFeePerGas:ie({format:"uint"},(o=e.maxPriorityFeePerGas)!==null&&o!==void 0?o:A.defaultMaxPriorityFeePerGas,t),maxFeePerGas:ie({format:"uint"},(r=e.maxFeePerGas)!==null&&r!==void 0?r:BigInt(h.baseFeePerGas)*BigInt(2)+BigInt((f=e.maxPriorityFeePerGas)!==null&&f!==void 0?f:A.defaultMaxPriorityFeePerGas),t)}})}function mV(e,A,t){return DV(this,void 0,void 0,function*(){const i=vV(e,A);if(!TA(i)){if(i.startsWith("-"))throw new $U(i);if(Number(i)<0||Number(i)>127)throw new $U(i);if(TA(e.gasPrice)&&(i==="0x0"||i==="0x1"))return{gasPrice:yield qK(A,t),maxPriorityFeePerGas:void 0,maxFeePerGas:void 0};if(i==="0x2")return Object.assign({gasPrice:void 0},yield JSA(e,A,t))}})}var RK=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const yN=(e,A,t,i)=>{if(t!==void 0&&e in t&&t[e]!==void 0){if(typeof t[e]=="string"&&mn(t[e]))return t[e];if(!Ct(t[e])&&aW(t[e])){if(A.wallet){const o=A.wallet.get(ie({format:"uint"},t[e],ED));if(!TA(o))return o.address;throw new XU}throw new XU}else throw e==="from"?new DmA(t.from):new mmA(t.to)}if(e==="from"){if(!TA(i))return BD(i);if(!TA(A.defaultAccount))return A.defaultAccount}},TSA=(e,A,t=e.defaultReturnFormat)=>RK(void 0,void 0,void 0,function*(){if(TA(A))throw new YmA;return eZ(e,A,e.defaultBlock,t)}),vV=(e,A)=>{const t=SSA(e,A);if(!TA(t))return t;if(!TA(A.defaultTransactionType))return ie({format:"uint"},A.defaultTransactionType,Ke)};function PSA(e){var A,t;return RK(this,void 0,void 0,function*(){let i=ie(pV,e.transaction,e.web3Context.defaultReturnFormat);if(TA(i.from)&&(i.from=yN("from",e.web3Context,void 0,e.privateKey)),TA(i.nonce)&&(i.nonce=yield TSA(e.web3Context,i.from,Ke)),TA(i.value)&&(i.value="0x0"),TA(i.data))TA(i.input)?i.input="0x":i.input.startsWith("0x")||(i.input=`0x${i.input}`);else{if(!TA(i.input)&&i.data!==i.input)throw new _j({data:Xe(i.data),input:Xe(i.input)});i.data.startsWith("0x")||(i.data=`0x${i.data}`)}if(TA(i.common)){if(e.web3Context.defaultCommon){const o=e.web3Context.defaultCommon,r=o.customChain.chainId,f=o.customChain.networkId,h=o.customChain.name;i.common=Object.assign(Object.assign({},o),{customChain:{chainId:r,networkId:f,name:h}})}TA(i.chain)&&(i.chain=e.web3Context.defaultChain),TA(i.hardfork)&&(i.hardfork=e.web3Context.defaultHardfork)}if(TA(i.chainId)&&TA((A=i.common)===null||A===void 0?void 0:A.customChain.chainId)&&(i.chainId=yield iZ(e.web3Context,Ke)),TA(i.networkId)&&(i.networkId=(t=e.web3Context.defaultNetworkId)!==null&&t!==void 0?t:yield kK(e.web3Context,Ke)),TA(i.gasLimit)&&!TA(i.gas)&&(i.gasLimit=i.gas),i.type=vV(i,e.web3Context),TA(i.accessList)&&(i.type==="0x1"||i.type==="0x2")&&(i.accessList=[]),e.fillGasPrice&&(i=Object.assign(Object.assign({},i),yield mV(i,e.web3Context,Ke))),TA(i.gas)&&TA(i.gasLimit)&&e.fillGasLimit){const o=yield JK(e.web3Context,i,"latest",Ke);i=Object.assign(Object.assign({},i),{gas:ie({format:"uint"},o,Ke)})}return i})}const OSA=e=>RK(void 0,void 0,void 0,function*(){var A;return((A=e.web3Context.transactionBuilder)!==null&&A!==void 0?A:PSA)(Object.assign(Object.assign({},e),{transaction:e.transaction}))});var KK=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};function wN(e,A,t){const i=e.transactionPollingInterval,[o,r]=wW(()=>KK(this,void 0,void 0,function*(){let h;try{h=yield HK(e,ED)}catch(p){console.warn("An error happen while trying to get the block number",p);return}const d=h-A;if(d>=e.transactionBlockTimeout)return new Yj({starterBlockNumber:A,numberOfBlocks:d,transactionHash:t})}),i);return[r,{clean:()=>{clearInterval(o)}}]}function jSA(e,A,t){var i;return KK(this,void 0,void 0,function*(){let o=!0,r,f;function h(p,C){C&&console.warn("error happened at subscription. So revert to polling...",C),f.clean(),o=!1;const[y,w]=wN(e,A,t);f.clean=w.clean,y.catch(D=>p(D))}try{r=yield(i=e.subscriptionManager)===null||i===void 0?void 0:i.subscribe("newHeads"),f={clean:()=>{var p;r.id&&((p=e.subscriptionManager)===null||p===void 0||p.removeSubscription(r).then(()=>{}).catch(()=>{}))}}}catch{return wN(e,A,t)}return[new Promise((p,C)=>{try{r.on("data",y=>{if(o=!1,!(y!=null&&y.number))return;const w=Number(BigInt(y.number)-BigInt(A));w>=e.transactionBlockTimeout&&C(new Yj({starterBlockNumber:A,numberOfBlocks:w,transactionHash:t}))}),r.on("error",y=>{h(C,y)})}catch(y){h(C,y)}setTimeout(()=>{o&&h(C)},e.blockHeaderTimeout*1e3)}),f]})}function MV(e,A){var t,i;return KK(this,void 0,void 0,function*(){const{provider:o}=e.requestManager;let r;const f=yield HK(e,ED);return!((i=(t=o).supportsSubscriptions)===null||i===void 0)&&i.call(t)&&e.enableExperimentalFeatures.useSubscriptionWhenCheckingBlockTimeout?r=yield jSA(e,f,A):r=wN(e,f,A),r})}var WSA=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};function DN(e,A,t){return WSA(this,void 0,void 0,function*(){const[i,o]=IK(e.transactionSendTimeout,new TmA({numberOfSeconds:e.transactionSendTimeout/1e3,transactionHash:t})),[r,f]=yield MV(e,t);try{return yield Promise.race([A(),o,r])}finally{clearTimeout(i),f.clean()}})}var x_=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};function bV(e,A,t,i){var o;return x_(this,void 0,void 0,function*(){const r=(o=e.transactionReceiptPollingInterval)!==null&&o!==void 0?o:e.transactionPollingInterval,[f,h]=gK(()=>x_(this,void 0,void 0,function*(){try{return(i??AZ)(e,A,t)}catch(w){console.warn("An error happen while trying to get the transaction receipt",w);return}}),r),[d,p]=IK(e.transactionPollingTimeout,new Hj({numberOfSeconds:e.transactionPollingTimeout/1e3,transactionHash:A})),[C,y]=yield MV(e,A);try{return yield Promise.race([f,p,C])}finally{d&&clearTimeout(d),h&&clearInterval(h),y.clean()}})}var VSA=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const nQ=({web3Context:e,transactionReceipt:A,transactionPromiEvent:t,customTransactionReceiptSchema:i,returnFormat:o})=>{var r;let f=1;const h=setInterval(()=>{VSA(void 0,void 0,void 0,function*(){if(f>=e.transactionConfirmationBlocks){clearInterval(h);return}const d=yield QV(e.requestManager,Vr(BigInt(A.blockNumber)+BigInt(f)),!1);d!=null&&d.hash&&(f+=1,t.emit("confirmation",{confirmations:ie({format:"uint"},f,o),receipt:ie(i??hl,A,o),latestBlockHash:ie({format:"bytes32"},d.hash,o)}))})},(r=e.transactionReceiptPollingInterval)!==null&&r!==void 0?r:e.transactionPollingInterval)};var L_=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const ZSA=({web3Context:e,transactionReceipt:A,transactionPromiEvent:t,customTransactionReceiptSchema:i,returnFormat:o})=>{let r=!0,f;setImmediate(()=>{var h;(h=e.subscriptionManager)===null||h===void 0||h.subscribe("newHeads").then(d=>{d.on("data",p=>L_(void 0,void 0,void 0,function*(){var C;if(r=!1,!(p!=null&&p.number)||f===(p==null?void 0:p.parentHash))return;f=p==null?void 0:p.parentHash;const y=BigInt(p.number)-BigInt(A.blockNumber)+BigInt(1);t.emit("confirmation",{confirmations:ie({format:"uint"},y,o),receipt:ie(i??hl,A,o),latestBlockHash:ie({format:"bytes32"},p.parentHash,o)}),y>=e.transactionConfirmationBlocks&&(yield(C=e.subscriptionManager)===null||C===void 0?void 0:C.removeSubscription(d))})),d.on("error",()=>L_(void 0,void 0,void 0,function*(){var p;yield(p=e.subscriptionManager)===null||p===void 0?void 0:p.removeSubscription(d),r=!1,nQ({web3Context:e,transactionReceipt:A,transactionPromiEvent:t,customTransactionReceiptSchema:i,returnFormat:o})}))}).catch(()=>{r=!1,nQ({web3Context:e,transactionReceipt:A,customTransactionReceiptSchema:i,transactionPromiEvent:t,returnFormat:o})})}),setTimeout(()=>{r&&nQ({web3Context:e,transactionReceipt:A,transactionPromiEvent:t,returnFormat:o})},e.blockHeaderTimeout*1e3)};function zSA(e,A,t,i,o,r){if(TA(t)||TA(t.blockHash))throw new PmA({receipt:t,blockHash:ie({format:"bytes32"},t==null?void 0:t.blockHash,o),transactionHash:ie({format:"bytes32"},i,o)});if(!t.blockNumber)throw new OmA({receipt:t});A.emit("confirmation",{confirmations:ie({format:"uint"},1,o),receipt:ie(r??hl,t,o),latestBlockHash:ie({format:"bytes32"},t.blockHash,o)});const f=e.requestManager.provider;f&&"supportsSubscriptions"in f&&f.supportsSubscriptions()?ZSA({web3Context:e,transactionReceipt:t,transactionPromiEvent:A,customTransactionReceiptSchema:r,returnFormat:o}):nQ({web3Context:e,transactionReceipt:t,transactionPromiEvent:A,customTransactionReceiptSchema:r,returnFormat:o})}const QD=e=>!Me(e)&&typeof e=="object"&&!Me(e.type)&&e.type==="error",GK=e=>!Me(e)&&typeof e=="object"&&!Me(e.type)&&e.type==="event",pD=e=>!Me(e)&&typeof e=="object"&&!Me(e.type)&&e.type==="function",$SA=e=>!Me(e)&&typeof e=="object"&&!Me(e.type)&&e.type==="constructor",XSA=e=>typeof e=="object"&&typeof e.components>"u"&&typeof e.name>"u",SV=e=>e.includes("[]")?{type:"tuple[]",name:e.slice(0,-2)}:{type:"tuple",name:e},NV=e=>{const A=[];for(const t of Object.keys(e)){const i=e[t];typeof i=="object"?A.push(Object.assign(Object.assign({},SV(t)),{components:NV(i)})):A.push({name:t,type:e[t]})}return A},mN=(e,A)=>{const t=[];return A.forEach(i=>{if(typeof i.components=="object"){if(!i.type.startsWith("tuple"))throw new rt(`Invalid value given "${i.type}". Error: components found but type is not tuple.`);const o=i.type.indexOf("["),r=o>=0?i.type.substring(o):"",f=mN(e,i.components);Array.isArray(f)&&e?t.push(`tuple(${f.join(",")})${r}`):t.push(`(${f.join(",")})${r}`)}else t.push(i.type)}),t},ma=e=>{var A,t,i,o;return QD(e)||GK(e)||pD(e)?!((A=e.name)===null||A===void 0)&&A.includes("(")?e.name:`${(t=e.name)!==null&&t!==void 0?t:""}(${mN(!1,(i=e.inputs)!==null&&i!==void 0?i:[]).join(",")})`:`(${mN(!1,(o=e.inputs)!==null&&o!==void 0?o:[]).join(",")})`},ANA=e=>{if(typeof e!="string"&&!QD(e))throw new rt("Invalid parameter value in encodeErrorSignature");let A;return e&&(typeof e=="function"||typeof e=="object")?A=ma(e):A=e,vn(A)},FK=e=>{if(typeof e!="string"&&!GK(e))throw new rt("Invalid parameter value in encodeEventSignature");let A;return e&&(typeof e=="function"||typeof e=="object")?A=ma(e):A=e,vn(A)};function xK(e,A){const t=e.exec(A);return t==null?void 0:t.groups}var kV=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,RV=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,KV=/^\(.+?\).*?$/,eNA=Object.defineProperty,tNA=(e,A,t)=>A in e?eNA(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t,Wl=(e,A,t)=>(tNA(e,typeof A!="symbol"?A+"":A,t),t),iNA="abitype",rNA="0.7.1",Or=class extends Error{constructor(e,A={}){var r;const t=A.cause instanceof Or?A.cause.details:(r=A.cause)!=null&&r.message?A.cause.message:A.details,i=A.cause instanceof Or&&A.cause.docsPath||A.docsPath,o=[e||"An error occurred.","",...A.metaMessages?[...A.metaMessages,""]:[],...i?[`Docs: https://abitype.dev${i}`]:[],...t?[`Details: ${t}`]:[],`Version: ${iNA}@${rNA}`].join(` +`);super(o),Wl(this,"details"),Wl(this,"docsPath"),Wl(this,"metaMessages"),Wl(this,"shortMessage"),Wl(this,"name","AbiTypeError"),A.cause&&(this.cause=A.cause),this.details=t,this.docsPath=i,this.metaMessages=A.metaMessages,this.shortMessage=e}},GV=/^struct (?[a-zA-Z0-9_]+) \{(?.*?)\}$/;function FV(e){return GV.test(e)}function nNA(e){return xK(GV,e)}var U_=new Set(["memory","indexed","storage","calldata"]),oNA=new Set(["calldata","memory","storage"]);function sNA(e,A){return A?`${A}:${e}`:e}var C2=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]),aNA=/^(?[a-zA-Z0-9_]+?)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z0-9_]+))?$/,gNA=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z0-9_]+))?$/,INA=/^u?int$/;function jp(e,A){var y,w;const t=sNA(e,A==null?void 0:A.type);if(C2.has(t))return C2.get(t);const i=KV.test(e),o=xK(i?gNA:aNA,e);if(!o)throw new Or("Invalid ABI parameter.",{details:e});if(o.name&&hNA(o.name))throw new Or("Invalid ABI parameter.",{details:e,metaMessages:[`"${o.name}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]});const r=o.name?{name:o.name}:{},f=o.modifier==="indexed"?{indexed:!0}:{},h=(A==null?void 0:A.structs)??{};let d,p={};if(i){d="tuple";const D=Kh(o.type),v=[],M=D.length;for(let R=0;R0?"opening":"closing"} parentheses.`],details:`Depth "${i}"`});return[...A,t.trim()]}const o=e.length;for(let r=0;r[a-zA-Z0-9_]+?)(?(?:\[\d*?\])+?)?$/;function LV(e,A,t=new Set){const i=[],o=e.length;for(let r=0;rUV(i))})}function BNA(e){return!Me(e)&&typeof e=="object"&&!Me(e.type)&&typeof e.type=="string"}function _V(e){return e.map(A=>{var t;if(BNA(A))return A;if(typeof A=="string")return UV(CNA(A.replace(/tuple/,"")));if(XSA(A)){const i=Object.keys(A)[0],o=SV(i);return o.name=(t=o.name)!==null&&t!==void 0?t:"",Object.assign(Object.assign({},o),{components:NV(A[i])})}throw new rt("Invalid abi")})}function LK(e){const A=e.type.lastIndexOf("["),t=e.type.substring(0,A),i=e.type.substring(A);let o=-1;if(i!=="[]"&&(o=Number(i.slice(1,-1)),isNaN(o)))throw new rt("Invalid fixed array size",{size:i});return{param:{type:t,name:"",components:e.components},size:o}}function Wp(e){var A,t;return e.type==="string"||e.type==="bytes"||e.type.endsWith("[]")?!0:e.type==="tuple"?(t=(A=e.components)===null||A===void 0?void 0:A.some(Wp))!==null&&t!==void 0?t:!1:e.type.endsWith("]")?Wp(LK(e).param):!1}const qV=20,HV=Zt-qV;function dNA(e,A){if(typeof A!="string")throw new rt("address type expects string as input type",{value:A,name:e.name,type:e.type});let t=A.toLowerCase();if(t.startsWith("0x")||(t=`0x${t}`),!mn(t))throw new rt("provided input is not valid address",{value:A,name:e.name,type:e.type});const i=Ah(t),o=vN(Zt);return o.set(i,HV),{dynamic:!1,encoded:o}}function ENA(e,A){const t=A.subarray(HV,Zt);if(t.length!==qV)throw new rt("Invalid decoding input, not enough bytes to decode address",{bytes:A});const i=Xa(t);return{result:Zs(i),encoded:A.subarray(Zt),consumed:Zt}}const iI=new Map;let Vd=BigInt(256);for(let e=8;e<=256;e+=8)iI.set(`uint${e}`,{min:BigInt(0),max:Vd-BigInt(1)}),iI.set(`int${e}`,{min:-Vd/BigInt(2),max:Vd/BigInt(2)-BigInt(1)}),Vd*=BigInt(256);iI.set("int",iI.get("int256"));iI.set("uint",iI.get("uint256"));const YV=BigInt(1)<i.max)throw new rt("provided input is greater then maximum for given type",{type:e.type,value:A,name:e.name,maximum:i.max.toString()});return{dynamic:!1,encoded:QNA(t)}}function mu(e,A){if(A.lengthi.max)throw new rt("decoded value is greater then maximum for given type",{type:e.type,value:o,name:e.name,maximum:i.max.toString()});return{result:o,encoded:A.subarray(Zt),consumed:Zt}}function yNA(e,A){let t;try{t=cW(A)}catch(i){if(i instanceof XR)throw new rt("provided input is not valid boolean value",{type:e.type,value:A,name:e.name})}return xB({type:"uint8",name:""},Number(t))}function wNA(e,A){const t=mu({type:"uint8",name:""},A);if(t.result>1||t.result<0)throw new rt("Invalid boolean value encoded",{boolBytes:A.subarray(0,Zt),numberResult:t});return{result:t.result===BigInt(1),encoded:t.encoded,consumed:Zt}}const DNA=32;function JV(e,A){if(typeof A=="string"&&A.length%2!==0&&(A+="0"),!uI(A))throw new rt("provided input is not valid bytes value",{type:e.type,value:A,name:e.name});const t=Ts(A),[,i]=e.type.split("bytes");if(i){if(Number(i)>DNA||Number(i)<1)throw new rt("invalid bytes type. Static byte type can have between 1 and 32 bytes",{type:e.type});if(Number(i)A.length)throw new rt("there is not enough data to decode",{type:e.type,encoded:A,size:i});return{result:Xe(o.subarray(0,i)),encoded:o.subarray(r*Zt),consumed:f+r*Zt}}function mNA(e,A){if(typeof A!="string")throw new rt("invalid input, should be string",{input:A});const t=oK(A);return JV({type:"bytes",name:""},t)}function vNA(e,A){const t=TV({type:"bytes",name:""},A);return{result:aD(t.result),encoded:t.encoded,consumed:t.consumed}}function PV(e){let A=0,t=0;const i=[],o=[];for(const r of e)r.dynamic?A+=Zt:A+=r.encoded.length;for(const r of e)r.dynamic?(i.push(xB({type:"uint256",name:""},A+t)),o.push(r),t+=r.encoded.length):i.push(r);return kr(...i.map(r=>r.encoded),...o.map(r=>r.encoded))}function MNA(e,A){if(!Array.isArray(A))throw new rt("Expected value to be array",{abi:e,values:A});const{size:t,param:i}=LK(e),o=A.map(h=>MN(i,h)),r=t===-1,f=o.length>0&&o[0].dynamic;if(!r&&A.length!==t)throw new rt("Given arguments count doesn't match array length",{arrayLength:t,argumentsLength:A.length});if(r||f){const h=PV(o);if(r){const d=xB({type:"uint256",name:""},o.length).encoded;return{dynamic:!0,encoded:o.length>0?kr(d,h):d}}return{dynamic:!0,encoded:h}}return{dynamic:!1,encoded:kr(...o.map(h=>h.encoded))}}function bNA(e,A){let{size:t,param:i}=LK(e);const o=t===-1;let r=0;const f=[];let h=A;if(o){const p=mu({type:"uint32",name:""},A);t=Number(p.result),r=p.consumed,h=p.encoded}if(Wp(i)){for(let p=0;p=f.length)throw new rt("input param length missmatch",{param:e,input:A});C=MN(p,f[d])}else{const y=f[(o=p.name)!==null&&o!==void 0?o:""];if(y==null)throw new rt("missing input defined in abi",{param:e,input:A,paramName:p.name});C=MN(p,y)}C.dynamic&&(r=!0),h.push(C)}return r?{dynamic:!0,encoded:PV(h)}:{dynamic:!1,encoded:kr(...h.map(d=>d.encoded))}}function OV(e,A){const t={__length__:0};let i=0;if(!e.components)return{result:t,encoded:A,consumed:i};let o=0;for(const[r,f]of e.components.entries()){let h;if(Wp(f)){const d=mu({type:"uint32",name:""},A.subarray(i));h=Vp(f,A.subarray(Number(d.result))),i+=d.consumed,o+=h.consumed}else h=Vp(f,A.subarray(i)),i+=h.consumed;t.__length__+=1,t[r]=h.result,f.name&&f.name!==""&&(t[f.name]=h.result)}return{encoded:A.subarray(i+o),result:t,consumed:i+o}}function SNA(e,A,t){const i=_V(e),o=Ah(A);return OV({type:"tuple",name:"",components:i},o).result}function jV(e){const A=[];return e.forEach(t=>{if(Array.isArray(t)){const i=jV(t);A.push({type:"tuple",components:i,name:""})}else A.push({type:Ta(t,!0)})}),A}function yD(e,A){if((e==null?void 0:e.length)!==A.length)throw new rt("Invalid number of values received for given ABI",{expected:e==null?void 0:e.length,received:A.length});const t=_V(e);return Xa(UK({type:"tuple",name:"",components:t},A).encoded)}function NNA(e){try{const A=jV(e);return Xa(UK({type:"tuple",name:"",components:A},e).encoded)}catch{throw new rt("Could not infer types from given params",{params:e})}}const bN=(e,A)=>yD([e],[A]),WV=(e,A,t)=>{try{if(e.length>0&&(!A||A==="0x"||A==="0X"))throw new rt("Returned values aren't valid, did it run Out of Gas? You might also see this error if you are not using the correct ABI for the contract you are retrieving data from, requesting data from a block number that does not exist, or querying a node which is not fully synced.");return SNA(e,`0x${A.replace(/0x/i,"")}`,t)}catch(i){throw new rt(`Parameter decoding error: ${i.message}`,{internalErr:i})}},Ef=(e,A)=>WV(e,A,!1),VV=(e,A)=>Ef([e],A)[0],qC=e=>{if(typeof e!="string"&&!pD(e))throw new rt("Invalid parameter value in encodeFunctionSignature");let A;return e&&(typeof e=="function"||typeof e=="object")?A=ma(e):A=e,vn(A).slice(0,10)},kNA=(e,A)=>{var t;if(!pD(e))throw new rt("Invalid parameter value in encodeFunctionCall");return`${qC(e)}${yD((t=e.inputs)!==null&&t!==void 0?t:[],A??[]).replace("0x","")}`},RNA=["bool","string","int","uint","address","fixed","ufixed"],KNA=(e,A)=>e==="string"?A:VV(e,A),ZV=(e,A,t)=>{const i=Array.isArray(t)?t:[t],o={},r={};for(const[w,D]of e.entries())D.indexed?o[w]=D:r[w]=D;const f=A?WV(Object.values(r),A,!0):{__length__:0},h=i.length-Object.keys(o).length,d=Object.values(o).map((w,D)=>RNA.some(v=>w.type.startsWith(v))?KNA(w.type,i[D+h]):i[D+h]),p={__length__:0};let C=0,y=0;for(const[w,D]of e.entries())p[w]=D.type==="string"?"":void 0,o[w]&&(p[w]=d[C],C+=1),r[w]&&(p[w]=f[String(y)],y+=1),D.name&&(p[D.name]=p[w]),p.__length__+=1;return p},oQ=(e,A)=>{if(A!=null&&A.data){let t,i,o;try{const r=A.data.slice(0,10),f=e.find(h=>ANA(h).startsWith(r));f!=null&&f.inputs?(t=f.name,i=ma(f),o=Ef([...f.inputs],A.data.substring(10))):A.data.startsWith("0x08c379a0")?(t="Error",i="Error(string)",o=Ef([{name:"message",type:"string"}],A.data.substring(10))):A.data.startsWith("0x4e487b71")?(t="Panic",i="Panic(uint256)",o=Ef([{name:"code",type:"uint256"}],A.data.substring(10))):console.error("No matching error abi found for error data",A.data)}catch(r){console.error(r)}t&&A.setDecodedProperties(t,i,o)}};var GNA=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const FNA=(e,A)=>{var t,i,o,r,f;if(e instanceof lf&&e.cause instanceof Xw){if(A!==void 0){const h=A.filter(d=>QD(d));return oQ(h,e.cause),{reason:e.cause.message,signature:(t=e.cause.data)===null||t===void 0?void 0:t.slice(0,10),data:(i=e.cause.data)===null||i===void 0?void 0:i.substring(10),customErrorName:e.cause.errorName,customErrorDecodedSignature:e.cause.errorSignature,customErrorArguments:e.cause.errorArgs}}return{reason:e.cause.message,signature:(o=e.cause.data)===null||o===void 0?void 0:o.slice(0,10),data:(r=e.cause.data)===null||r===void 0?void 0:r.substring(10)}}if(e instanceof AD&&!Array.isArray((f=e.cause)===null||f===void 0?void 0:f.errors)&&e.cause!==void 0)return e.cause.message;throw e};function zV(e,A,t,i=e.defaultReturnFormat){return GNA(this,void 0,void 0,function*(){try{yield YK(e,A,e.defaultBlock,i);return}catch(o){return FNA(o,t)}})}var xNA=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};function B2(e,A,t,i,o,r){return xNA(this,void 0,void 0,function*(){let f=r;f===void 0&&e.handleRevert&&A!==void 0&&(f=yield zV(e,A,o));let h;if(f===void 0)h=new Lj(t);else if(typeof f=="string")h=new vp(f,void 0,t);else if(f.customErrorName!==void 0&&f.customErrorDecodedSignature!==void 0&&f.customErrorArguments!==void 0){const d=f;h=new xj(d.reason,d.customErrorName,d.customErrorDecodedSignature,d.customErrorArguments,d.signature,t,d.data)}else h=new vp(f.reason,f.signature,t,f.data);return h})}const _K=(e,A,t,i=en)=>{var o,r,f,h,d;let p=Object.assign({},e);const C=ie(dD,A,i);if([Du,"allEvents"].includes(p.name)){const w=t.find(D=>D.signature===A.topics[0]);w?p=w:p={anonymous:!0}}if(p.inputs=(r=(o=p.inputs)!==null&&o!==void 0?o:e.inputs)!==null&&r!==void 0?r:[],!p.anonymous){let w=0;((f=p.inputs)!==null&&f!==void 0?f:[]).forEach(D=>{D.indexed&&(w+=1)}),w>0&&(A!=null&&A.topics)&&(A==null?void 0:A.topics.length)!==w+1&&(p=Object.assign(Object.assign({},p),{anonymous:!0,inputs:[]}))}const y=p.anonymous?A.topics:((h=A.topics)!==null&&h!==void 0?h:[]).slice(1);return Object.assign(Object.assign({},C),{returnValues:ZV([...(d=p.inputs)!==null&&d!==void 0?d:[]],A.data,y),event:p.name,signature:p.anonymous||!A.topics||A.topics.length===0||!A.topics[0]?void 0:A.topics[0],raw:{data:A.data,topics:A.topics}})};var vI=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class $V{constructor({options:A,web3Context:t,promiEvent:i,returnFormat:o}){this.options={checkRevertBeforeSending:!0},this.options=A,this.web3Context=t,this.promiEvent=i,this.returnFormat=o}getReceiptWithEvents(A){var t,i;const o=Object.assign({},A??{});if(!((t=this.options)===null||t===void 0)&&t.contractAbi&&o.logs&&o.logs.length>0){o.events={};for(const r of o.logs){const f=_K(pN,r,(i=this.options)===null||i===void 0?void 0:i.contractAbi,this.returnFormat);f.event&&(o.events[f.event]=f)}}return o}checkRevertBeforeSending(A){return vI(this,void 0,void 0,function*(){if(this.options.checkRevertBeforeSending!==!1){let t=A;TA(A.data)&&TA(A.input)&&TA(A.gas)&&(t=Object.assign(Object.assign({},A),{gas:21e3}));const i=yield zV(this.web3Context,t,this.options.contractAbi);if(i!==void 0)throw yield B2(this.web3Context,A,void 0,void 0,this.options.contractAbi,i)}})}emitSending(A){this.promiEvent.listenerCount("sending")>0&&this.promiEvent.emit("sending",A)}populateGasPrice({transactionFormatted:A,transaction:t}){var i;return vI(this,void 0,void 0,function*(){let o=A;return!(!((i=this.options)===null||i===void 0)&&i.ignoreGasPricing)&&TA(A.gasPrice)&&(TA(t.maxPriorityFeePerGas)||TA(t.maxFeePerGas))&&(o=Object.assign(Object.assign({},A),yield mV(A,this.web3Context,Ke))),o})}signAndSend({wallet:A,tx:t}){return vI(this,void 0,void 0,function*(){if(A){const i=yield A.signTransaction(t);return DN(this.web3Context,()=>vI(this,void 0,void 0,function*(){return EV(this.web3Context.requestManager,i.rawTransaction)}),i.transactionHash)}return DN(this.web3Context,()=>vI(this,void 0,void 0,function*(){return VbA(this.web3Context.requestManager,t)}))})}emitSent(A){this.promiEvent.listenerCount("sent")>0&&this.promiEvent.emit("sent",A)}emitTransactionHash(A){this.promiEvent.listenerCount("transactionHash")>0&&this.promiEvent.emit("transactionHash",A)}emitReceipt(A){this.promiEvent.listenerCount("receipt")>0&&this.promiEvent.emit("receipt",A)}handleError({error:A,tx:t}){var i;return vI(this,void 0,void 0,function*(){let o=A;return o instanceof lf&&this.web3Context.handleRevert&&(o=yield B2(this.web3Context,t,void 0,void 0,(i=this.options)===null||i===void 0?void 0:i.contractAbi)),(o instanceof AD||o instanceof lf||o instanceof xj||o instanceof Lj||o instanceof vp||o instanceof Hj)&&this.promiEvent.listenerCount("error")>0&&this.promiEvent.emit("error",o),o})}emitConfirmation({receipt:A,transactionHash:t,customTransactionReceiptSchema:i}){this.promiEvent.listenerCount("confirmation")>0&&zSA(this.web3Context,this.promiEvent,A,t,this.returnFormat,i)}handleResolve({receipt:A,tx:t}){var i,o,r;return vI(this,void 0,void 0,function*(){if(!((i=this.options)===null||i===void 0)&&i.transactionResolver)return(o=this.options)===null||o===void 0?void 0:o.transactionResolver(A);if(A.status===BigInt(0)){const f=yield B2(this.web3Context,t,A,void 0,(r=this.options)===null||r===void 0?void 0:r.contractAbi);throw this.promiEvent.listenerCount("error")>0&&this.promiEvent.emit("error",f),f}else return A})}}var dt=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})},LNA=function(e,A){var t={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&A.indexOf(i)<0&&(t[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,i=Object.getOwnPropertySymbols(e);odt(void 0,void 0,void 0,function*(){return dV(e.requestManager)});function _NA(e,A){return dt(this,void 0,void 0,function*(){const t=yield GbA(e.requestManager);return ie({format:"uint"},t,A??e.defaultReturnFormat)})}function qK(e,A){return dt(this,void 0,void 0,function*(){const t=yield FbA(e.requestManager);return ie({format:"uint"},t,A??e.defaultReturnFormat)})}function qNA(e,A){return dt(this,void 0,void 0,function*(){const t=yield xbA(e.requestManager);return ie({format:"uint"},t,A??e.defaultReturnFormat)})}function HK(e,A){return dt(this,void 0,void 0,function*(){const t=yield UbA(e.requestManager);return ie({format:"uint"},t,A??e.defaultReturnFormat)})}function HNA(e,A,t=e.defaultBlock,i){return dt(this,void 0,void 0,function*(){const o=qi(t)?t:ie({format:"uint"},t,Ke),r=yield _bA(e.requestManager,A,o);return ie({format:"uint"},r,i??e.defaultReturnFormat)})}function YNA(e,A,t,i=e.defaultBlock,o){return dt(this,void 0,void 0,function*(){const r=ie({format:"uint"},t,Ke),f=qi(i)?i:ie({format:"uint"},i,Ke),h=yield qbA(e.requestManager,A,r,f);return ie({format:"bytes"},h,o??e.defaultReturnFormat)})}function JNA(e,A,t=e.defaultBlock,i){return dt(this,void 0,void 0,function*(){const o=qi(t)?t:ie({format:"uint"},t,Ke),r=yield ObA(e.requestManager,A,o);return ie({format:"bytes"},r,i??e.defaultReturnFormat)})}function XV(e,A=e.defaultBlock,t=!1,i){var o;return dt(this,void 0,void 0,function*(){let r;if(uI(A)){const h=ie({format:"bytes32"},A,Ke);r=yield $bA(e.requestManager,h,t)}else{const h=qi(A)?A:ie({format:"uint"},A,Ke);r=yield QV(e.requestManager,h,t)}const f=ie(Op,r,i??e.defaultReturnFormat);return TA(f)?f:Object.assign(Object.assign({},f),{transactions:(o=f.transactions)!==null&&o!==void 0?o:[]})})}function TNA(e,A=e.defaultBlock,t){return dt(this,void 0,void 0,function*(){let i;if(uI(A)){const o=ie({format:"bytes32"},A,Ke);i=yield YbA(e.requestManager,o)}else{const o=qi(A)?A:ie({format:"uint"},A,Ke);i=yield JbA(e.requestManager,o)}return ie({format:"uint"},i,t??e.defaultReturnFormat)})}function PNA(e,A=e.defaultBlock,t){return dt(this,void 0,void 0,function*(){let i;if(uI(A)){const o=ie({format:"bytes32"},A,Ke);i=yield TbA(e.requestManager,o)}else{const o=qi(A)?A:ie({format:"uint"},A,Ke);i=yield PbA(e.requestManager,o)}return ie({format:"uint"},i,t??e.defaultReturnFormat)})}function ONA(e,A=e.defaultBlock,t,i){return dt(this,void 0,void 0,function*(){const o=ie({format:"uint"},t,Ke);let r;if(uI(A)){const f=ie({format:"bytes32"},A,Ke);r=yield iSA(e.requestManager,f,o)}else{const f=qi(A)?A:ie({format:"uint"},A,Ke);r=yield rSA(e.requestManager,f,o)}return ie(Op,r,i??e.defaultReturnFormat)})}function jNA(e,A,t=e.defaultReturnFormat){return dt(this,void 0,void 0,function*(){const i=ie({format:"bytes32"},A,en),o=yield XbA(e.requestManager,i);return TA(o)?o:an(o,t,{transactionSchema:e.config.customTransactionSchema,fillInputAndData:!0})})}function WNA(e,A){return dt(this,void 0,void 0,function*(){return(yield gSA(e.requestManager)).map(i=>an(i,A??e.defaultReturnFormat,{transactionSchema:e.config.customTransactionSchema,fillInputAndData:!0}))})}function VNA(e,A=e.defaultBlock,t,i){return dt(this,void 0,void 0,function*(){const o=ie({format:"uint"},t,Ke);let r;if(uI(A)){const f=ie({format:"bytes32"},A,Ke);r=yield ASA(e.requestManager,f,o)}else{const f=qi(A)?A:ie({format:"uint"},A,Ke);r=yield eSA(e.requestManager,f,o)}return TA(r)?r:an(r,i??e.defaultReturnFormat,{transactionSchema:e.config.customTransactionSchema,fillInputAndData:!0})})}function AZ(e,A,t){return dt(this,void 0,void 0,function*(){const i=ie({format:"bytes32"},A,en);let o;try{o=yield tSA(e.requestManager,i)}catch(r){if(typeof r=="object"&&!TA(r)&&"message"in r&&r.message==="transaction indexing is in progress")console.warn("Transaction indexing is in progress.");else throw r}return TA(o)?o:ie(hl,o,t??e.defaultReturnFormat)})}function eZ(e,A,t=e.defaultBlock,i){return dt(this,void 0,void 0,function*(){const o=qi(t)?t:ie({format:"uint"},t,Ke),r=yield HbA(e.requestManager,A,o);return ie({format:"uint"},r,i??e.defaultReturnFormat)})}function HC(e,A,t,i={checkRevertBeforeSending:!0},o){const r=new BV((f,h)=>{setImmediate(()=>{dt(this,void 0,void 0,function*(){const d=new $V({web3Context:e,promiEvent:r,options:i,returnFormat:t});let p=Object.assign({},A);TA(o)||(p=yield o.processTransaction(p));let C=an(Object.assign(Object.assign({},p),{from:yN("from",e,p),to:yN("to",e,p)}),Ke,{transactionSchema:e.config.customTransactionSchema});try{C=yield d.populateGasPrice({transaction:p,transactionFormatted:C}),yield d.checkRevertBeforeSending(C),d.emitSending(C);let y;e.wallet&&!TA(C.from)&&(y=e.wallet.get(C.from));const w=yield d.signAndSend({wallet:y,tx:C}),D=ie({format:"bytes32"},w,t??e.defaultReturnFormat);d.emitSent(C),d.emitTransactionHash(D);const v=yield bV(e,w,t??e.defaultReturnFormat),M=d.getReceiptWithEvents(ie(hl,v,t??e.defaultReturnFormat));d.emitReceipt(M),f(yield d.handleResolve({receipt:M,tx:C})),d.emitConfirmation({receipt:M,transactionHash:w})}catch(y){h(yield d.handleError({error:y,tx:C}))}})})});return r}function ZNA(e,A,t,i={checkRevertBeforeSending:!0}){const o=new BV((r,f)=>{setImmediate(()=>{dt(this,void 0,void 0,function*(){const h=new $V({web3Context:e,promiEvent:o,options:i,returnFormat:t}),d=ie({format:"bytes"},A,Ke),p=Yf.fromSerializedData(Ts(bt(d))),C=Object.assign(Object.assign({},p.toJSON()),{from:p.getSenderAddress().toString()});try{const{v:y,r:w,s:D}=C,v=LNA(C,["v","r","s"]);yield h.checkRevertBeforeSending(v),h.emitSending(d);const M=yield DN(e,()=>dt(this,void 0,void 0,function*(){return EV(e.requestManager,d)}));h.emitSent(d);const R=ie({format:"bytes32"},M,t??e.defaultReturnFormat);h.emitTransactionHash(R);const b=yield bV(e,M,t??e.defaultReturnFormat),S=h.getReceiptWithEvents(ie(hl,b,t??e.defaultReturnFormat));h.emitReceipt(S),r(yield h.handleResolve({receipt:S,tx:C})),h.emitConfirmation({receipt:S,transactionHash:M})}catch(y){f(yield h.handleError({error:y,tx:C}))}})})});return o}function zNA(e,A,t,i=e.defaultReturnFormat){var o;return dt(this,void 0,void 0,function*(){const r=ie({format:"bytes"},A,en);if(!((o=e.wallet)===null||o===void 0)&&o.get(t)){const d=e.wallet.get(t).sign(r);return ie(xSA,d,i)}if(typeof t=="number")throw new ymA(A,'RPC method "eth_sign" does not support index signatures');const f=yield jbA(e.requestManager,t,r);return ie({format:"bytes"},f,i)})}function $NA(e,A,t=e.defaultReturnFormat){return dt(this,void 0,void 0,function*(){const i=yield WbA(e.requestManager,an(A,Ke,{transactionSchema:e.config.customTransactionSchema}));return eK(i)?qSA(i,t,{fillInputAndData:!0}):{raw:ie({format:"bytes"},i.raw,t),tx:an(i.tx,t,{transactionSchema:e.config.customTransactionSchema,fillInputAndData:!0})}})}function YK(e,A,t=e.defaultBlock,i=e.defaultReturnFormat){return dt(this,void 0,void 0,function*(){const o=qi(t)?t:ie({format:"uint"},t,Ke),r=yield ZbA(e.requestManager,an(A,Ke,{transactionSchema:e.config.customTransactionSchema}),o);return ie({format:"bytes"},r,i)})}function JK(e,A,t=e.defaultBlock,i){return dt(this,void 0,void 0,function*(){const o=an(A,Ke,{transactionSchema:e.config.customTransactionSchema}),r=qi(t)?t:ie({format:"uint"},t,Ke),f=yield zbA(e.requestManager,o,r);return ie({format:"uint"},f,i??e.defaultReturnFormat)})}function tZ(e,A,t){return dt(this,void 0,void 0,function*(){let{toBlock:i,fromBlock:o}=A;TA(i)||(typeof i=="number"||typeof i=="bigint")&&(i=Vr(i)),TA(o)||(typeof o=="number"||typeof o=="bigint")&&(o=Vr(o));const r=Object.assign(Object.assign({},A),{fromBlock:o,toBlock:i});return(yield nSA(e.requestManager,r)).map(d=>typeof d=="string"?d:ie(dD,d,t??e.defaultReturnFormat))})}function iZ(e,A){return dt(this,void 0,void 0,function*(){const t=yield fSA(e.requestManager);return ie({format:"uint"},t,A??e.defaultReturnFormat)})}function XNA(e,A,t,i=e.defaultBlock,o){return dt(this,void 0,void 0,function*(){const r=t.map(d=>ie({format:"bytes"},d,Ke)),f=qi(i)?i:ie({format:"uint"},i,Ke),h=yield hSA(e.requestManager,A,r,f);return ie(_SA,h,o??e.defaultReturnFormat)})}function AkA(e,A,t=e.defaultBlock,i,o){return dt(this,void 0,void 0,function*(){const r=ie({format:"uint"},A,Ke),f=qi(t)?t:ie({format:"uint"},t,Ke),h=ie({type:"array",items:{format:"uint"}},i,ED),d=yield aSA(e.requestManager,r,f,h);return ie(LSA,d,o??e.defaultReturnFormat)})}function rZ(e,A,t=e.defaultBlock,i){return dt(this,void 0,void 0,function*(){const o=qi(t)?t:ie({format:"uint"},t,Ke),r=yield uSA(e.requestManager,an(A,Ke,{transactionSchema:e.config.customTransactionSchema}),o);return ie(RSA,r,i??e.defaultReturnFormat)})}function ekA(e,A,t,i,o){return dt(this,void 0,void 0,function*(){const r=yield lSA(e.requestManager,A,t,i);return ie({format:"bytes"},r,o??e.defaultReturnFormat)})}let nZ=class extends KB{_buildSubscriptionParams(){return["logs",this.args]}formatSubscriptionResult(A){return ie(dD,A,super.returnFormat)}};class __ extends KB{_buildSubscriptionParams(){return["newPendingTransactions"]}formatSubscriptionResult(A){return ie({format:"string"},A,super.returnFormat)}}class Zp extends KB{_buildSubscriptionParams(){return["newHeads"]}formatSubscriptionResult(A){return ie(GSA,A,super.returnFormat)}}class oZ extends KB{_buildSubscriptionParams(){return["syncing"]}_processSubscriptionResult(A){if(typeof A=="boolean")this.emit("changed",A);else{const t=Object.fromEntries(Object.entries(A.status).map(([i,o])=>[i.charAt(0).toLowerCase()+i.substring(1),o]));this.emit("changed",A.syncing),this.emit("data",ie(FSA,t,super.returnFormat))}}}var ze=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const SN={logs:nZ,newPendingTransactions:__,newHeads:Zp,syncing:oZ,pendingTransactions:__,newBlockHeaders:Zp};class wD extends zr{constructor(A){if(typeof A=="string"||qp(A)){super({provider:A,registeredSubscriptions:SN});return}if(A.registeredSubscriptions){super(A);return}super(Object.assign(Object.assign({},A),{registeredSubscriptions:SN})),this.getFeeData=this.calculateFeeData}setTransactionMiddleware(A){this.transactionMiddleware=A}getTransactionMiddleware(){return this.transactionMiddleware}getProtocolVersion(){return ze(this,void 0,void 0,function*(){return kbA(this.requestManager)})}isSyncing(){return ze(this,void 0,void 0,function*(){return dV(this.requestManager)})}getCoinbase(){return ze(this,void 0,void 0,function*(){return RbA(this.requestManager)})}isMining(){return ze(this,void 0,void 0,function*(){return KbA(this.requestManager)})}getHashrate(A){var t;return A===void 0&&(A=(t=this.defaultReturnFormat)!==null&&t!==void 0?t:en),ze(this,void 0,void 0,function*(){return this.getHashRate(A)})}getHashRate(A=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return _NA(this,A)})}getGasPrice(A=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return qK(this,A)})}getMaxPriorityFeePerGas(A=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return qNA(this,A)})}calculateFeeData(A=BigInt(2),t=sD.Gwei){var i;return ze(this,void 0,void 0,function*(){const o=yield this.getBlock(void 0,!1),r=(i=o==null?void 0:o.baseFeePerGas)!==null&&i!==void 0?i:void 0;let f;try{f=yield this.getGasPrice()}catch{}let h;try{h=yield this.getMaxPriorityFeePerGas()}catch{}let d;return r&&(h=h??t,d=r*A+h),{gasPrice:f,maxFeePerGas:d,maxPriorityFeePerGas:h,baseFeePerGas:r}})}getAccounts(){var A;return ze(this,void 0,void 0,function*(){return((A=yield LbA(this.requestManager))!==null&&A!==void 0?A:[]).map(i=>Zs(i))})}getBlockNumber(A=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return HK(this,A)})}getBalance(A,t=this.defaultBlock,i=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return HNA(this,A,t,i)})}getStorageAt(A,t,i=this.defaultBlock,o=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return YNA(this,A,t,i,o)})}getCode(A,t=this.defaultBlock,i=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return JNA(this,A,t,i)})}getBlock(A=this.defaultBlock,t=!1,i=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return XV(this,A,t,i)})}getBlockTransactionCount(A=this.defaultBlock,t=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return TNA(this,A,t)})}getBlockUncleCount(A=this.defaultBlock,t=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return PNA(this,A,t)})}getUncle(A=this.defaultBlock,t,i=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return ONA(this,A,t,i)})}getTransaction(A,t=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){const i=yield jNA(this,A,t);if(!i)throw new zU;return i})}getPendingTransactions(A=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return WNA(this,A)})}getTransactionFromBlock(A=this.defaultBlock,t,i=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return VNA(this,A,t,i)})}getTransactionReceipt(A,t=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){const i=yield AZ(this,A,t);if(!i)throw new zU;return i})}getTransactionCount(A,t=this.defaultBlock,i=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return eZ(this,A,t,i)})}sendTransaction(A,t=this.defaultReturnFormat,i){return HC(this,A,t,i,this.transactionMiddleware)}sendSignedTransaction(A,t=this.defaultReturnFormat,i){return ZNA(this,A,t,i)}sign(A,t,i=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return zNA(this,A,t,i)})}signTransaction(A,t=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return $NA(this,A,t)})}call(A,t=this.defaultBlock,i=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return YK(this,A,t,i)})}estimateGas(A,t=this.defaultBlock,i=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return JK(this,A,t,i)})}getPastLogs(A,t=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return tZ(this,A,t)})}getWork(){return ze(this,void 0,void 0,function*(){return oSA(this.requestManager)})}submitWork(A,t,i){return ze(this,void 0,void 0,function*(){return sSA(this.requestManager,A,t,i)})}requestAccounts(){return ze(this,void 0,void 0,function*(){return ISA(this.requestManager)})}getChainId(A=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return iZ(this,A)})}getNodeInfo(){return ze(this,void 0,void 0,function*(){return cSA(this.requestManager)})}getProof(A,t,i=this.defaultBlock,o=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return XNA(this,A,t,i,o)})}getFeeHistory(A,t=this.defaultBlock,i,o=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return AkA(this,A,t,i,o)})}createAccessList(A,t=this.defaultBlock,i=this.defaultReturnFormat){return ze(this,void 0,void 0,function*(){return rZ(this,A,t,i)})}signTypedData(A,t,i,o){var r;return i===void 0&&(i=!1),o===void 0&&(o=(r=this.defaultReturnFormat)!==null&&r!==void 0?r:en),ze(this,void 0,void 0,function*(){return ekA(this,A,t,i,o)})}subscribe(A,t,i){var o,r;return i===void 0&&(i=(o=this.defaultReturnFormat)!==null&&o!==void 0?o:en),ze(this,void 0,void 0,function*(){const f=yield(r=this.subscriptionManager)===null||r===void 0?void 0:r.subscribe(A,t,i);return f instanceof nZ&&A==="logs"&&typeof t=="object"&&!Me(t.fromBlock)&&Number.isFinite(Number(t.fromBlock))&&setImmediate(()=>{this.getPastLogs(t).then(h=>{for(const d of h)f._processSubscriptionResult(d)}).catch(h=>{f._processSubscriptionError(h)})}),f})}static shouldClearSubscription({sub:A}){return!(A instanceof oZ)}clearSubscriptions(A=!1){var t;return(t=this.subscriptionManager)===null||t===void 0?void 0:t.unsubscribe(A?wD.shouldClearSubscription:void 0)}}const tkA=e=>{if(!TA(e.common)){if(TA(e.common.customChain))throw new vmA;if(TA(e.common.customChain.chainId))throw new MmA;if(!TA(e.chainId)&&e.chainId!==e.common.customChain.chainId)throw new bmA({txChainId:e.chainId,customChainId:e.common.customChain.chainId})}},ikA=e=>{if(!TA(e.common)&&!TA(e.chain)&&!TA(e.hardfork))throw new kmA;if(!TA(e.chain)&&TA(e.hardfork)||!TA(e.hardfork)&&TA(e.chain))throw new RmA({chain:e.chain,hardfork:e.hardfork})},rkA=e=>{if(!TA(e.common)&&!TA(e.common.baseChain)&&!TA(e.chain)&&e.chain!==e.common.baseChain)throw new SmA({txChain:e.chain,baseChain:e.common.baseChain})},nkA=e=>{if(!TA(e.common)&&!TA(e.common.hardfork)&&!TA(e.hardfork)&&e.hardfork!==e.common.hardfork)throw new NmA({txHardfork:e.hardfork,commonHardfork:e.common.hardfork})},q_=e=>{if(TA(e.gas)||!Ja(e.gas)||TA(e.gasPrice)||!Ja(e.gasPrice))throw new LmA({gas:e.gas,gasPrice:e.gasPrice});if(!TA(e.maxFeePerGas)||!TA(e.maxPriorityFeePerGas))throw new Uj({maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas})},H_=e=>{if(!TA(e.gasPrice)&&e.type==="0x2")throw new _mA(e.gasPrice);if(e.type==="0x0"||e.type==="0x1")throw new Uj({maxFeePerGas:e.maxFeePerGas,maxPriorityFeePerGas:e.maxPriorityFeePerGas});if(TA(e.maxFeePerGas)||!Ja(e.maxFeePerGas)||TA(e.maxPriorityFeePerGas)||!Ja(e.maxPriorityFeePerGas))throw new UmA({maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas})},okA=e=>{const A=!TA(e.gas)||!TA(e.gasLimit),t=A&&!TA(e.gasPrice),i=A&&!TA(e.maxPriorityFeePerGas)&&!TA(e.maxFeePerGas);if(!t&&!i)throw new GmA({gas:e.gas,gasPrice:e.gasPrice,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas});if(t&&i)throw new xmA({gas:e.gas,gasPrice:e.gasPrice,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas});(t?q_:H_)(e),(!TA(e.type)&&e.type>"0x1"?H_:q_)(e)},skA=(e,A,t={transactionSchema:void 0})=>{if(!TA(A)){A(e);return}if(typeof e!="object"||TA(e))throw new qmA(e);tkA(e),ikA(e),rkA(e),nkA(e);const i=an(e,Ke,{transactionSchema:t.transactionSchema});if(okA(i),TA(i.nonce)||TA(i.chainId)||i.nonce.startsWith("-")||i.chainId.startsWith("-"))throw new HmA({nonce:e.nonce,chainId:e.chainId})};var akA=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const gkA=e=>{var A,t;return{nonce:e.nonce,gasPrice:e.gasPrice,gasLimit:(A=e.gasLimit)!==null&&A!==void 0?A:e.gas,to:e.to,value:e.value,data:(t=e.data)!==null&&t!==void 0?t:e.input,type:e.type,chainId:e.chainId,accessList:e.accessList,maxPriorityFeePerGas:e.maxPriorityFeePerGas,maxFeePerGas:e.maxFeePerGas}},IkA=(e,A)=>{var t,i,o,r,f,h,d,p,C,y,w,D,v,M,R,b,S,G;const U=!TA(e.chain)&&!TA(e.hardfork)||!TA(e.common);let P;if(!U)A.defaultCommon?(P=Object.assign({},A.defaultCommon),TA(P.hardfork)&&(P.hardfork=(t=e.hardfork)!==null&&t!==void 0?t:A.defaultHardfork),TA(P.baseChain)&&(P.baseChain=A.defaultChain)):P=Ei.custom({name:"custom-network",chainId:Zr(e.chainId),networkId:TA(e.networkId)?void 0:Zr(e.networkId),defaultHardfork:(i=e.hardfork)!==null&&i!==void 0?i:A.defaultHardfork},{baseChain:A.defaultChain});else{const z=(h=(f=(r=(o=e==null?void 0:e.common)===null||o===void 0?void 0:o.customChain)===null||r===void 0?void 0:r.name)!==null&&f!==void 0?f:e.chain)!==null&&h!==void 0?h:"custom-network",oA=Zr((C=(p=(d=e==null?void 0:e.common)===null||d===void 0?void 0:d.customChain)===null||p===void 0?void 0:p.chainId)!==null&&C!==void 0?C:e==null?void 0:e.chainId),J=Zr((D=(w=(y=e==null?void 0:e.common)===null||y===void 0?void 0:y.customChain)===null||w===void 0?void 0:w.networkId)!==null&&D!==void 0?D:e==null?void 0:e.networkId),q=(R=(M=(v=e==null?void 0:e.common)===null||v===void 0?void 0:v.hardfork)!==null&&M!==void 0?M:e==null?void 0:e.hardfork)!==null&&R!==void 0?R:A.defaultHardfork,X=(G=(S=(b=e.common)===null||b===void 0?void 0:b.baseChain)!==null&&S!==void 0?S:e.chain)!==null&&G!==void 0?G:A.defaultChain;oA&&J&&z&&(P=Ei.custom({name:z,chainId:oA,networkId:J,defaultHardfork:q},{baseChain:X}))}return{common:P}},fkA=(e,A,t,i=!1,o=!0)=>akA(void 0,void 0,void 0,function*(){const r=yield OSA({transaction:e,web3Context:A,privateKey:t,fillGasPrice:i,fillGasLimit:o}),f=an(r,Ke,{transactionSchema:A.config.customTransactionSchema});return skA(f,void 0,{transactionSchema:A.config.customTransactionSchema}),Yf.fromTxData(gkA(f),IkA(f,A))}),Y_=({address:e},A,t)=>{var i,o;const r=t==null?void 0:t.topics,f=(i=t==null?void 0:t.filter)!==null&&i!==void 0?i:{},h={};if(Me(t==null?void 0:t.fromBlock)||(h.fromBlock=ie(Op.properties.number,t==null?void 0:t.fromBlock,{number:ro.HEX,bytes:Ha.HEX})),Me(t==null?void 0:t.toBlock)||(h.toBlock=ie(Op.properties.number,t==null?void 0:t.toBlock,{number:ro.HEX,bytes:Ha.HEX})),r&&Array.isArray(r))h.topics=[...r];else if(h.topics=[],A&&!A.anonymous&&![Du,"allEvents"].includes(A.name)&&h.topics.push((o=A.signature)!==null&&o!==void 0?o:FK(ma(A))),![Du,"allEvents"].includes(A.name)&&A.inputs)for(const d of A.inputs){if(!d.indexed)continue;const p=f[d.name];if(!p){h.topics.push(null);continue}Array.isArray(p)?h.topics.push(p.map(C=>bN(d.type,C))):d.type==="string"?h.topics.push(du(p)):h.topics.push(bN(d.type,p))}return h.topics.length||delete h.topics,e&&(h.address=e.toLowerCase()),h},L0=(e,A,t)=>{const i=Array.isArray(e.inputs)?e.inputs.length:0;if(e.inputs&&i!==A.length)throw new Mr(`The number of arguments is not matching the methods required number. You need to pass ${i} arguments.`);let o;if(e.inputs?o=yD(Array.isArray(e.inputs)?e.inputs:[],A).replace("0x",""):o=NNA(A).replace("0x",""),$SA(e)){if(!t)throw new Mr("The contract has no contract data option set. This is necessary to append the constructor parameters.");return t.startsWith("0x")?`${t}${o}`:`0x${t}${o}`}return`${qC(e)}${o}`},NN=(e,A,t=!0)=>{const i=t&&A&&A.length>=10&&A.startsWith("0x")?A.slice(10):A;if(!e.inputs)throw new Mr("No inputs found in the ABI");return Ef([...e.inputs],i)},hkA=(e,A)=>{if(e.type==="constructor")return A;if(!A)return null;const t=A.length>=2?A.slice(2):A;if(!e.outputs)return null;const i=Ef([...e.outputs],t);return i.__length__===1?i[0]:i};class sZ extends KB{constructor(A,t){super(A,t),this.address=A.address,this.topics=A.topics,this.abi=A.abi,this.jsonInterface=A.jsonInterface}_buildSubscriptionParams(){return["logs",{address:this.address,topics:this.topics}]}formatSubscriptionResult(A){return _K(this.abi,A,this.jsonInterface,super.returnFormat)}}Array.from({length:256},(e,A)=>A.toString(16).padStart(2,"0"));const DD=(e,A,t,i)=>{var o,r;const f={};return(!Me(e.data)||i==="both")&&(f.data=L0(A,t,(o=e.data)!==null&&o!==void 0?o:e.input)),(!Me(e.input)||i==="both")&&(f.input=L0(A,t,(r=e.input)!==null&&r!==void 0?r:e.data)),Me(f.input)&&Me(f.data)&&(f[i]=L0(A,t)),{data:f.data,input:f.input}},kN=({abi:e,params:A,options:t,contractOptions:i})=>{var o,r,f;if(!((f=(r=(o=t==null?void 0:t.input)!==null&&o!==void 0?o:t==null?void 0:t.data)!==null&&r!==void 0?r:i.input)!==null&&f!==void 0?f:i.data)&&!(t!=null&&t.to)&&!i.address)throw new Mr("Contract address not specified");if(!(t!=null&&t.from)&&!i.from)throw new Mr('Contract "from" address not specified');let d=CI({to:i.address,gas:i.gas,gasPrice:i.gasPrice,from:i.from,input:i.input,maxPriorityFeePerGas:i.maxPriorityFeePerGas,maxFeePerGas:i.maxFeePerGas,data:i.data},t);const p=DD(d,e,A,t==null?void 0:t.dataInputFill);return d=Object.assign(Object.assign({},d),{data:p.data,input:p.input}),d},ckA=({abi:e,params:A,options:t,contractOptions:i})=>{if(!(t!=null&&t.to)&&!i.address)throw new Mr("Contract address not specified");let o=CI({to:i.address,gas:i.gas,gasPrice:i.gasPrice,from:i.from,input:i.input,maxPriorityFeePerGas:i.maxPriorityFeePerGas,maxFeePerGas:i.maxFeePerGas,data:i.data},t);const r=DD(o,e,A,t==null?void 0:t.dataInputFill);return o=Object.assign(Object.assign({},o),{data:r.data,input:r.input}),o},ukA=({abi:e,params:A,options:t,contractOptions:i})=>{let o=CI({to:i.address,gas:i.gas,gasPrice:i.gasPrice,from:i.from,input:i.input,data:i.data},t);const r=DD(o,e,A,t==null?void 0:t.dataInputFill);return o=Object.assign(Object.assign({},o),{data:r.data,input:r.input}),o},J_=e=>typeof e=="object"&&!Me(e)&&Object.keys(e).length!==0&&!Kg(e),lkA=({abi:e,params:A,options:t,contractOptions:i})=>{if(!(t!=null&&t.to)&&!i.address)throw new Mr("Contract address not specified");if(!(t!=null&&t.from)&&!i.from)throw new Mr('Contract "from" address not specified');let o=CI({to:i.address,gas:i.gas,gasPrice:i.gasPrice,from:i.from,input:i.input,maxPriorityFeePerGas:i.maxPriorityFeePerGas,maxFeePerGas:i.maxFeePerGas,data:i.data},t);const r=DD(o,e,A,t==null?void 0:t.dataInputFill);return o=Object.assign(Object.assign({},o),{data:r.data,input:r.input}),o};var CkA=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class BkA{constructor(A,t){this.parent=A,this.deployOptions=t;const{args:i,abi:o,contractOptions:r,deployData:f}=this.calculateDeployParams();this.args=i,this.constructorAbi=o,this.contractOptions=r,this.deployData=f}_contractMethodDeploySend(A){const t={transactionResolver:i=>{if(i.status===BigInt(0))throw new Mr("code couldn't be stored",i);const o=this.parent.clone();return o.options.address=i.contractAddress,o},contractAbi:this.parent.options.jsonInterface,checkRevertBeforeSending:!1};return TA(this.parent.getTransactionMiddleware())?HC(this.parent,A,this.parent.defaultReturnFormat,t):HC(this.parent,A,this.parent.defaultReturnFormat,t,this.parent.getTransactionMiddleware())}send(A){const t=Object.assign({},A),i=this.populateTransaction(t);return this._contractMethodDeploySend(i)}populateTransaction(A){var t,i;const o=Object.assign(Object.assign({},this.contractOptions),{from:(i=(t=this.contractOptions.from)!==null&&t!==void 0?t:this.parent.defaultAccount)!==null&&i!==void 0?i:void 0}),r=kN({abi:this.constructorAbi,params:this.args,options:Object.assign(Object.assign({},A),{dataInputFill:this.parent.contractDataInputFill}),contractOptions:o});return r.dataInputFill&&delete r.dataInputFill,r}calculateDeployParams(){var A,t,i,o,r,f;let h=this.parent.options.jsonInterface.find(D=>D.type==="constructor");h||(h={type:"constructor",stateMutability:""});const d=ie({format:"bytes"},(t=(A=this.deployOptions)===null||A===void 0?void 0:A.input)!==null&&t!==void 0?t:this.parent.options.input,en),p=ie({format:"bytes"},(o=(i=this.deployOptions)===null||i===void 0?void 0:i.data)!==null&&o!==void 0?o:this.parent.options.data,en);if((!d||d.trim()==="0x")&&(!p||p.trim()==="0x"))throw new Mr("contract creation without any data provided.");const C=(f=(r=this.deployOptions)===null||r===void 0?void 0:r.arguments)!==null&&f!==void 0?f:[],y=Object.assign(Object.assign({},this.parent.options),{input:d,data:p});return{args:C,abi:h,contractOptions:y,deployData:d??p}}estimateGas(A,t=this.parent.defaultReturnFormat){return CkA(this,void 0,void 0,function*(){const i=Object.assign({},A);return this.parent.contractMethodEstimateGas({abi:this.constructorAbi,params:this.args,returnFormat:t,options:i,contractOptions:this.contractOptions})})}encodeABI(){return L0(this.constructorAbi,this.args,ie({format:"bytes"},this.deployData,this.parent.defaultReturnFormat))}decodeData(A){return Object.assign(Object.assign({},NN(this.constructorAbi,A.replace(this.deployData,""),!1)),{__method__:this.constructorAbi.type})}}var MI=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,[])).next())})};const dkA={logs:sZ,newHeads:Zp,newBlockHeaders:Zp};class Qf extends zr{constructor(A,t,i,o,r){var f,h,d;const p=Kg(t)?t:Kg(i)?i:void 0;let C;J_(t)?C=t:J_(i)?C=i:C=o;let y;if(typeof t=="object"&&"provider"in t?y=t.provider:typeof i=="object"&&"provider"in i?y=i.provider:typeof o=="object"&&"provider"in o?y=o.provider:y=Qf.givenProvider,super(Object.assign(Object.assign({},C),{provider:y,registeredSubscriptions:dkA})),this.syncWithContext=!1,this._functions={},C!=null&&C.wallet&&(this._wallet=C.wallet),C!=null&&C.accountProvider&&(this._accountProvider=C.accountProvider),!TA(p)&&!TA(p.data)&&!TA(p.input)&&this.config.contractDataInputFill!=="both")throw new CmA({data:p.data,input:p.input});this._overloadedMethodAbis=new Map;const w=ca(o)?o:ca(i)?i:r??this.defaultReturnFormat,D=typeof t=="string"?t:void 0;this.config.contractDataInputFill=(f=p==null?void 0:p.dataInputFill)!==null&&f!==void 0?f:this.config.contractDataInputFill,this._parseAndSetJsonInterface(A,w),this.defaultReturnFormat!==w&&(this.defaultReturnFormat=w),TA(D)||this._parseAndSetAddress(D,w),this.options={address:D,jsonInterface:this._jsonInterface,gas:(h=p==null?void 0:p.gas)!==null&&h!==void 0?h:p==null?void 0:p.gasLimit,gasPrice:p==null?void 0:p.gasPrice,from:p==null?void 0:p.from,input:p==null?void 0:p.input,data:p==null?void 0:p.data},this.syncWithContext=(d=p==null?void 0:p.syncWithContext)!==null&&d!==void 0?d:!1,C instanceof zr&&this.subscribeToContextEvents(C),Object.defineProperty(this.options,"address",{set:v=>this._parseAndSetAddress(v,w),get:()=>this._address}),Object.defineProperty(this.options,"jsonInterface",{set:v=>this._parseAndSetJsonInterface(v,w),get:()=>this._jsonInterface}),C instanceof zr&&C.on(qf.CONFIG_CHANGE,v=>{this.setConfig({[v.name]:v.newValue})})}setTransactionMiddleware(A){this.transactionMiddleware=A}getTransactionMiddleware(){return this.transactionMiddleware}get events(){return this._events}get methods(){return this._methods}clone(){let A;return this.options.address?A=new Qf([...this._jsonInterface,...this._errorsInterface],this.options.address,{gas:this.options.gas,gasPrice:this.options.gasPrice,from:this.options.from,input:this.options.input,data:this.options.data,provider:this.currentProvider,syncWithContext:this.syncWithContext,dataInputFill:this.config.contractDataInputFill},this.getContextObject()):A=new Qf([...this._jsonInterface,...this._errorsInterface],{gas:this.options.gas,gasPrice:this.options.gasPrice,from:this.options.from,input:this.options.input,data:this.options.data,provider:this.currentProvider,syncWithContext:this.syncWithContext,dataInputFill:this.config.contractDataInputFill},this.getContextObject()),this.context&&A.subscribeToContextEvents(this.context),A}deploy(A){return new BkA(this,A)}getPastEvents(A,t,i){var o;return MI(this,void 0,void 0,function*(){const r=typeof A=="string"?A:Du,f=typeof A!="string"&&!ca(A)?A:ca(t)?{}:t,h=ca(A)?A:ca(t)?t:i??this.defaultReturnFormat,d=r==="allEvents"||r===Du?pN:this._jsonInterface.find(b=>"name"in b&&b.name===r);if(!d)throw new Mr(`Event ${r} not found.`);const{fromBlock:p,toBlock:C,topics:y,address:w}=Y_(this.options,d,f??{}),D=yield tZ(this,{fromBlock:p,toBlock:C,topics:y,address:w},h),v=D?D.map(b=>typeof b=="string"?b:_K(d,b,this._jsonInterface,h)):[],M=(o=f==null?void 0:f.filter)!==null&&o!==void 0?o:{},R=Object.keys(M);return R.length>0?v.filter(b=>typeof b=="string"?!0:R.every(S=>{var G;if(Array.isArray(M[S]))return M[S].some(P=>String(b.returnValues[S]).toUpperCase()===String(P).toUpperCase());const U=(G=d.inputs)===null||G===void 0?void 0:G.filter(P=>P.name===S)[0];return U!=null&&U.indexed&&U.type==="string"&&du(M[S])===String(b.returnValues[S])?!0:String(b.returnValues[S]).toUpperCase()===String(M[S]).toUpperCase()})):v})}_parseAndSetAddress(A,t=this.defaultReturnFormat){this._address=A&&Zs(ie({format:"address"},A,t))}decodeMethodData(A){const t=A.slice(0,10),o=this._jsonInterface.filter(r=>r.type!=="error").find(r=>t===qC(ma(r)));if(!o)throw new Mr(`The ABI for the provided method signature ${t} was not found.`);return Object.assign(Object.assign({},NN(o,A)),{__method__:ma(o)})}_parseAndSetJsonInterface(A,t=this.defaultReturnFormat){var i,o,r,f,h;this._functions={},this._methods={},this._events={};let d=[];const p=A.filter(y=>y.type!=="error"),C=A.filter(y=>QD(y));for(const y of p){const w=Object.assign(Object.assign({},y),{signature:""});if(pD(w)){const D=ma(w),v=qC(D);w.methodNameWithInputs=D,w.signature=v,w.constant=(o=(i=w.stateMutability==="view")!==null&&i!==void 0?i:w.stateMutability==="pure")!==null&&o!==void 0?o:w.constant,w.payable=(r=w.stateMutability==="payable")!==null&&r!==void 0?r:w.payable,this._overloadedMethodAbis.set(w.name,[...(f=this._overloadedMethodAbis.get(w.name))!==null&&f!==void 0?f:[],w]);const M=(h=this._overloadedMethodAbis.get(w.name))!==null&&h!==void 0?h:[],R=this._createContractMethod(M,C),b=this._createContractMethod(M,C,!0);this._functions[D]={signature:v,method:b},this._methods[w.name]=R,this._methods[D]=b,this._methods[v]=b}else if(GK(w)){const D=ma(w),v=FK(D),M=this._createContractEvent(w,t);w.signature=v,(!(D in this._events)||w.name==="bound")&&(this._events[D]=M),this._events[w.name]=M,this._events[v]=M}d=[...d,w]}this._events.allEvents=this._createContractEvent(pN,t),this._jsonInterface=[...d],this._errorsInterface=C}_getAbiParams(A,t){var i;try{return x0((i=A.inputs)!==null&&i!==void 0?i:[],t)}catch(o){throw new Mr(`Invalid parameters for method ${A.name}: ${o.message}`)}}_createContractMethod(A,t,i=!1){const o=A[A.length-1];return(...r)=>{var f,h,d;let p;const C=(h=i?(f=this._overloadedMethodAbis.get(o.name))===null||f===void 0?void 0:f.filter(M=>M.signature===o.signature):this._overloadedMethodAbis.get(o.name))!==null&&h!==void 0?h:[];let y=C[0];const w=t,D=C.filter(M=>{var R;return((R=M.inputs)!==null&&R!==void 0?R:[]).length===r.length});if(C.length===1||D.length===0)p=this._getAbiParams(y,r),Se.validate((d=o.inputs)!==null&&d!==void 0?d:[],p);else{const M=[],R=[];for(const b of D)try{p=this._getAbiParams(b,r),Se.validate(b.inputs,p),R.push(b)}catch(S){M.push(S)}if(R.length===1?[y]=R:R.length>1&&([y]=R,console.warn(`Multiple methods found that is compatible with the given inputs. + Found ${R.length} compatible methods: ${JSON.stringify(R.map(b=>`${b.methodNameWithInputs} (signature: ${b.signature})`))} + The first one will be used: ${y.methodNameWithInputs}`)),M.length===D.length)throw new lu(M)}const v={arguments:p,call:(M,R)=>MI(this,void 0,void 0,function*(){return this._contractMethodCall(y,p,w,M,R)}),send:M=>this._contractMethodSend(y,p,w,M),populateTransaction:(M,R)=>{var b,S;let G=R??this.options;G=Object.assign(Object.assign({},G),{input:void 0,from:(S=(b=G==null?void 0:G.from)!==null&&b!==void 0?b:this.defaultAccount)!==null&&S!==void 0?S:void 0});const U=kN({abi:o,params:r,options:Object.assign(Object.assign({},M),{dataInputFill:this.config.contractDataInputFill}),contractOptions:G});return U.dataInputFill&&delete U.dataInputFill,U},estimateGas:(M,R=this.defaultReturnFormat)=>MI(this,void 0,void 0,function*(){return this.contractMethodEstimateGas({abi:y,params:p,returnFormat:R,options:M})}),encodeABI:()=>L0(y,p),decodeData:M=>NN(y,M),createAccessList:(M,R)=>MI(this,void 0,void 0,function*(){return this._contractMethodCreateAccessList(y,p,w,M,R)})};return y.stateMutability==="payable",v}}_contractMethodCall(A,t,i,o,r){var f;return MI(this,void 0,void 0,function*(){const h=ckA({abi:A,params:t,options:Object.assign(Object.assign({},o),{dataInputFill:this.config.contractDataInputFill}),contractOptions:Object.assign(Object.assign({},this.options),{from:(f=this.options.from)!==null&&f!==void 0?f:this.config.defaultAccount})});try{const d=yield YK(this,h,r,this.defaultReturnFormat);return hkA(A,d)}catch(d){throw d instanceof lf&&oQ(i,d.cause),d}})}_contractMethodCreateAccessList(A,t,i,o,r){var f;return MI(this,void 0,void 0,function*(){const h=lkA({abi:A,params:t,options:Object.assign(Object.assign({},o),{dataInputFill:this.config.contractDataInputFill}),contractOptions:Object.assign(Object.assign({},this.options),{from:(f=this.options.from)!==null&&f!==void 0?f:this.config.defaultAccount})});try{return rZ(this,h,r,this.defaultReturnFormat)}catch(d){throw d instanceof lf&&oQ(i,d.cause),d}})}_contractMethodSend(A,t,i,o,r){var f,h;let d=r??this.options;d=Object.assign(Object.assign({},d),{input:void 0,from:(h=(f=d.from)!==null&&f!==void 0?f:this.defaultAccount)!==null&&h!==void 0?h:void 0});const p=kN({abi:A,params:t,options:Object.assign(Object.assign({},o),{dataInputFill:this.config.contractDataInputFill}),contractOptions:d}),C=TA(this.transactionMiddleware)?HC(this,p,this.defaultReturnFormat,{checkRevertBeforeSending:!1,contractAbi:this._jsonInterface}):HC(this,p,this.defaultReturnFormat,{checkRevertBeforeSending:!1,contractAbi:this._jsonInterface},this.transactionMiddleware);return C.on("error",y=>{y instanceof lf&&oQ(i,y.cause)}),C}contractMethodEstimateGas({abi:A,params:t,returnFormat:i,options:o,contractOptions:r}){return MI(this,void 0,void 0,function*(){const f=ukA({abi:A,params:t,options:Object.assign(Object.assign({},o),{dataInputFill:this.config.contractDataInputFill}),contractOptions:r??this.options});return JK(this,f,Ba.LATEST,i??this.defaultReturnFormat)})}_createContractEvent(A,t=this.defaultReturnFormat){return(...i)=>{var o;const{topics:r,fromBlock:f}=Y_(this.options,A,i[0]),h=new sZ({address:this.options.address,topics:r,abi:A,jsonInterface:this._jsonInterface},{subscriptionManager:this.subscriptionManager,returnFormat:t});return TA(f)||this.getPastEvents(A.name,{fromBlock:f,topics:r},t).then(d=>{d&&d.forEach(p=>h.emit("data",p))}).catch(d=>{h.emit("error",new fa("Failed to get past events.",d))}),(o=this.subscriptionManager)===null||o===void 0||o.addSubscription(h).catch(d=>{h.emit("error",new fa("Failed to subscribe.",d))}),h}}subscribeToContextEvents(A){const t=this;this.context=A,t.syncWithContext&&A.on(qf.CONFIG_CHANGE,i=>{t.setConfig({[i.name]:i.newValue})})}}const T_={addr:"0x3b3b57de",name:"0x691f3431",abi:"0x2203ab56",pubkey:"0xc8690233",text:"0x59d1d43c",contenthash:"0xbc1c58d1"},mh={setAddr:"addr",addr:"addr",setPubkey:"pubkey",pubkey:"pubkey",setContenthash:"contenthash",contenthash:"contenthash",text:"text",name:"name"},zp={main:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",goerli:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},EkA={"0x1":"main","0x5":"goerli"},QkA=[{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"label",type:"bytes32"},{indexed:!1,internalType:"address",name:"owner",type:"address"}],name:"NewOwner",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"address",name:"resolver",type:"address"}],name:"NewResolver",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"address",name:"owner",type:"address"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"recordExists",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"resolver",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"ttl",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"}],pkA=[{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"address",name:"a",type:"address"}],name:"AddrChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"coinType",type:"uint256"},{indexed:!1,internalType:"bytes",name:"newAddress",type:"bytes"}],name:"AddressChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"hash",type:"bytes"}],name:"ContenthashChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"name",type:"bytes"},{indexed:!1,internalType:"uint16",name:"resource",type:"uint16"},{indexed:!1,internalType:"bytes",name:"record",type:"bytes"}],name:"DNSRecordChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"name",type:"bytes"},{indexed:!1,internalType:"uint16",name:"resource",type:"uint16"}],name:"DNSRecordDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"}],name:"DNSZoneCleared",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"lastzonehash",type:"bytes"},{indexed:!1,internalType:"bytes",name:"zonehash",type:"bytes"}],name:"DNSZonehashChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!0,internalType:"bytes4",name:"interfaceID",type:"bytes4"},{indexed:!1,internalType:"address",name:"implementer",type:"address"}],name:"InterfaceChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"string",name:"name",type:"string"}],name:"NameChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"x",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"y",type:"bytes32"}],name:"PubkeyChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!0,internalType:"string",name:"indexedKey",type:"string"},{indexed:!1,internalType:"string",name:"key",type:"string"}],name:"TextChanged",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"uint256",name:"contentTypes",type:"uint256"}],name:"ABI",outputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"uint256",name:"coinType",type:"uint256"}],name:"addr",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"contenthash",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"},{internalType:"uint16",name:"resource",type:"uint16"}],name:"dnsRecord",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],name:"hasDNSRecords",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"bytes4",name:"interfaceID",type:"bytes4"}],name:"interfaceImplementer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"pubkey",outputs:[{internalType:"bytes32",name:"x",type:"bytes32"},{internalType:"bytes32",name:"y",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceID",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"string",name:"key",type:"string"}],name:"text",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"zonehash",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"address",name:"a",type:"address"}],name:"setAddr",outputs:[],stateMutability:"nonpayable",type:"function"}];var ykA="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";const P_=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),O_=4;function wkA(e){let A=0;function t(){return e[A++]<<8|e[A++]}let i=t(),o=1,r=[0,1];for(let P=1;P>--d&1}const y=31,w=2**y,D=w>>>1,v=D>>1,M=w-1;let R=0;for(let P=0;P1;){let X=z+oA>>>1;P>>1|C(),J=J<<1^D,q=(q^D)<<1|D|1;S=J,G=1+q-J}let U=i-4;return b.map(P=>{switch(P-U){case 3:return U+65792+(e[h++]<<16|e[h++]<<8|e[h++]);case 2:return U+256+(e[h++]<<8|e[h++]);case 1:return U+e[h++];default:return P-1}})}function DkA(e){let A=0;return()=>e[A++]}function aZ(e){return DkA(wkA(mkA(e)))}function mkA(e){let A=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((o,r)=>A[o.charCodeAt(0)]=r);let t=e.length,i=new Uint8Array(6*t>>3);for(let o=0,r=0,f=0,h=0;o=8&&(i[r++]=h>>(f-=8));return i}function vkA(e){return e&1?~e>>1:e>>1}function MkA(e,A){let t=Array(e);for(let i=0,o=0;i{let A=YC(e);if(A.length)return A})}function IZ(e){let A=[];for(;;){let t=e();if(t==0)break;A.push(bkA(t,e))}for(;;){let t=e()-1;if(t<0)break;A.push(SkA(t,e))}return A.flat()}function JC(e){let A=[];for(;;){let t=e(A.length);if(!t)break;A.push(t)}return A}function fZ(e,A,t){let i=Array(e).fill().map(()=>[]);for(let o=0;oi[f].push(r));return i}function bkA(e,A){let t=1+A(),i=A(),o=JC(A);return fZ(o.length,1+e,A).flatMap((f,h)=>{let[d,...p]=f;return Array(o[h]).fill().map((C,y)=>{let w=y*i;return[d+y*t,p.map(D=>D+w)]})})}function SkA(e,A){let t=1+A();return fZ(t,1+e,A).map(o=>[o[0],o.slice(1)])}function NkA(e){let A=[],t=YC(e);return o(i([]),[]),A;function i(r){let f=e(),h=JC(()=>{let d=YC(e).map(p=>t[p]);if(d.length)return i(d)});return{S:f,B:h,Q:r}}function o({S:r,B:f},h,d){if(!(r&4&&d===h[h.length-1])){r&2&&(d=h[h.length-1]),r&1&&A.push(h);for(let p of f)for(let C of p.Q)o(p,[...h,C],d)}}}function kkA(e){return e.toString(16).toUpperCase().padStart(2,"0")}function hZ(e){return`{${kkA(e)}}`}function RkA(e){let A=[];for(let t=0,i=e.length;t>24&255}function lZ(e){return e&16777215}let RN,j_,KN,sQ;function qkA(){let e=aZ(GkA);RN=new Map(gZ(e).flatMap((A,t)=>A.map(i=>[i,t+1<<24]))),j_=new Set(YC(e)),KN=new Map,sQ=new Map;for(let[A,t]of IZ(e)){if(!j_.has(A)&&t.length==2){let[i,o]=t,r=sQ.get(i);r||(r=new Map,sQ.set(i,r)),r.set(o,A)}KN.set(A,t.reverse())}}function CZ(e){return e>=TC&&e=$p&&e=Xp&&AAy&&A<_kA&&(e-TC)%Mu==0)return e+(A-Ay);{let t=sQ.get(e);return t&&(t=t.get(A),t)?t:-1}}function BZ(e){RN||qkA();let A=[],t=[],i=!1;function o(r){let f=RN.get(r);f&&(i=!0,r|=f),A.push(r)}for(let r of e)for(;;){if(r<128)A.push(r);else if(CZ(r)){let f=r-TC,h=f/ey|0,d=f%ey/Mu|0,p=f%Mu;o($p+h),o(Xp+d),p>0&&o(Ay+p)}else{let f=KN.get(r);f?t.push(...f):o(r)}if(!t.length)break;r=t.pop()}if(i&&A.length>1){let r=u0(A[0]);for(let f=1;f0&&o>=f)f==0?(A.push(i,...t),t.length=0,i=h):t.push(h),o=f;else{let d=HkA(i,h);d>=0?i=d:o==0&&f==0?(A.push(i),i=h):(t.push(h),o=f)}}return i>=0&&A.push(i,...t),A}function dZ(e){return BZ(e).map(lZ)}function JkA(e){return YkA(BZ(e))}const W_=45,EZ=".",QZ=65039,pZ=1,ty=e=>Array.from(e);function PC(e,A){return e.P.has(A)||e.Q.has(A)}class TkA extends Array{get is_emoji(){return!0}}let GN,yZ,zI,FN,wZ,Mc,d2,Gh,FI,V_,xN;function TK(){if(GN)return;let e=aZ(ykA);const A=()=>YC(e),t=()=>new Set(A()),i=(C,y)=>y.forEach(w=>C.add(w));GN=new Map(IZ(e)),yZ=t(),zI=A(),FN=new Set(A().map(C=>zI[C])),zI=new Set(zI),wZ=t(),t();let o=gZ(e),r=e();const f=()=>{let C=new Set;return A().forEach(y=>i(C,o[y])),i(C,A()),C};Mc=JC(C=>{let y=JC(e).map(w=>w+96);if(y.length){let w=C>=r;y[0]-=32,y=vu(y),w&&(y=`Restricted[${y}]`);let D=f(),v=f(),M=!e();return{N:y,P:D,Q:v,M,R:w}}}),d2=t(),Gh=new Map;let h=A().concat(ty(d2)).sort((C,y)=>C-y);h.forEach((C,y)=>{let w=e(),D=h[y]=w?h[y-w]:{V:[],M:new Map};D.V.push(C),d2.has(C)||Gh.set(C,D)});for(let{V:C,M:y}of new Set(Gh.values())){let w=[];for(let v of C){let M=Mc.filter(b=>PC(b,v)),R=w.find(({G:b})=>M.some(S=>b.has(S)));R||(R={G:new Set,V:[]},w.push(R)),R.V.push(v),i(R.G,M)}let D=w.flatMap(v=>ty(v.G));for(let{G:v,V:M}of w){let R=new Set(D.filter(b=>!v.has(b)));for(let b of M)y.set(b,R)}}FI=new Set;let d=new Set;const p=C=>FI.has(C)?d.add(C):FI.add(C);for(let C of Mc){for(let y of C.P)p(y);for(let y of C.Q)p(y)}for(let C of FI)!Gh.has(C)&&!d.has(C)&&Gh.set(C,pZ);i(FI,dZ(FI)),V_=NkA(e).map(C=>TkA.from(C)).sort(KkA),xN=new Map;for(let C of V_){let y=[xN];for(let w of C){let D=y.map(v=>{let M=v.get(w);return M||(M=new Map,v.set(w,M)),M});w===QZ?y.push(...D):y=D}for(let w of y)w.V=C}}function PK(e){return(DZ(e)?"":`${OK(mD([e]))} `)+hZ(e)}function OK(e){return`"${e}"‎`}function PkA(e){if(e.length>=4&&e[2]==W_&&e[3]==W_)throw new Error(`invalid label extension: "${vu(e.slice(0,4))}"`)}function OkA(e){for(let t=e.lastIndexOf(95);t>0;)if(e[--t]!==95)throw new Error("underscore allowed only at start")}function jkA(e){let A=e[0],t=P_.get(A);if(t)throw U0(`leading ${t}`);let i=e.length,o=-1;for(let r=1;rA&&(A>>=1,e=[...e.slice(0,A),8230,...e.slice(-A)]);let o=0,r=e.length;for(let f=0;f{let r=RkA(o),f={input:r,offset:i};i+=r.length+1;try{let h=f.tokens=e3A(r,A,t),d=h.length,p;if(!d)throw new Error("empty label");let C=f.output=h.flat();if(OkA(C),!(f.emoji=d>1||h[0].is_emoji)&&C.every(w=>w<128))PkA(C),p="ASCII";else{let w=h.flatMap(D=>D.is_emoji?[]:D);if(!w.length)p="Emoji";else{if(zI.has(C[0]))throw U0("leading combining mark");for(let M=1;Mf.has(h)):ty(f),!t.length)return}else i.push(o)}if(t){for(let o of t)if(i.every(r=>PC(o,r)))throw new Error(`whole-script confusable: ${e.N}/${o.N}`)}}function $kA(e){let A=Mc;for(let t of e){let i=A.filter(o=>PC(o,t));if(!i.length)throw Mc.some(o=>PC(o,t))?vZ(A[0],t):mZ(t);if(A=i,i.length==1)break}return A}function XkA(e){return e.map(({input:A,error:t,output:i})=>{if(t){let o=t.message;throw new Error(e.length==1?o:`Invalid label ${OK(mD(A,63))}: ${o}`)}return vu(i)}).join(EZ)}function mZ(e){return new Error(`disallowed character: ${PK(e)}`)}function vZ(e,A){let t=PK(A),i=Mc.find(o=>o.P.has(A));return i&&(t=`${i.N} ${t}`),new Error(`illegal mixture: ${e.N} + ${t}`)}function U0(e){return new Error(`illegal placement: ${e}`)}function A3A(e,A){for(let t of A)if(!PC(e,t))throw vZ(e,t);if(e.M){let t=dZ(A);for(let i=1,o=t.length;iO_)throw new Error(`excessive non-spacing marks: ${OK(mD(t.slice(i-1,r)))} (${r-i}/${O_})`);i=r}}}function e3A(e,A,t){let i=[],o=[];for(e=e.slice().reverse();e.length;){let r=i3A(e);if(r)o.length&&(i.push(A(o)),o=[]),i.push(t(r));else{let f=e.pop();if(FI.has(f))o.push(f);else{let h=GN.get(f);if(h)o.push(...h);else if(!yZ.has(f))throw mZ(f)}}}return o.length&&i.push(A(o)),i}function t3A(e){return e.filter(A=>A!=QZ)}function i3A(e,A){let t=xN,i,o=e.length;for(;o&&(t=t.get(e[--o]),!!t);){let{V:r}=t;r&&(i=r,e.length=o)}return i}const r3A=e=>VkA(e),fs=e=>{let A="";for(let t=0;t<32;t+=1)A+="00";if(e){const i=r3A(e).split(".");for(let o=i.length-1;o>=0;o-=1){const r=vn(i[o]).slice(2);A=vn(`0x${A}${r}`).slice(2)}}return`0x${A}`};var Zd=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class n3A{constructor(A,t){this.contract=new Qf(QkA,t??zp.main,A),this.context=A}getOwner(A){return Zd(this,void 0,void 0,function*(){try{return this.contract.methods.owner(fs(A)).call()}catch{throw new Error}})}getTTL(A){return Zd(this,void 0,void 0,function*(){try{return this.contract.methods.ttl(fs(A)).call()}catch{throw new Error}})}recordExists(A){return Zd(this,void 0,void 0,function*(){try{return this.contract.methods.recordExists(fs(A)).call()}catch{throw new Error}})}getResolver(A){return Zd(this,void 0,void 0,function*(){try{return this.contract.methods.resolver(fs(A)).call().then(t=>{if(typeof t=="string")return new Qf(pkA,t,this.context);throw new Error})}catch{throw new Error}})}get events(){return this.contract.events}}var na=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class o3A{constructor(A){this.registry=A}getResolverContractAdapter(A){return na(this,void 0,void 0,function*(){return this.registry.getResolver(A)})}checkInterfaceSupport(A,t){var i,o;return na(this,void 0,void 0,function*(){if(Me(T_[t]))throw new VU((i=A.options.address)!==null&&i!==void 0?i:"",t);if(!(yield A.methods.supportsInterface(T_[t]).call()))throw new VU((o=A.options.address)!==null&&o!==void 0?o:"",t)})}supportsInterface(A,t){var i;return na(this,void 0,void 0,function*(){const o=yield this.getResolverContractAdapter(A);let r=t;if(!Ct(r)){if(r=(i=RB(t))!==null&&i!==void 0?i:"",t==="")throw new Error("Invalid interface Id");r=r.slice(0,10)}return o.methods.supportsInterface(r).call()})}getAddress(A,t=60){return na(this,void 0,void 0,function*(){const i=yield this.getResolverContractAdapter(A);return yield this.checkInterfaceSupport(i,mh.addr),i.methods.addr(fs(A),t).call()})}getPubkey(A){return na(this,void 0,void 0,function*(){const t=yield this.getResolverContractAdapter(A);return yield this.checkInterfaceSupport(t,mh.pubkey),t.methods.pubkey(fs(A)).call()})}getContenthash(A){return na(this,void 0,void 0,function*(){const t=yield this.getResolverContractAdapter(A);return yield this.checkInterfaceSupport(t,mh.contenthash),t.methods.contenthash(fs(A)).call()})}setAddress(A,t,i){return na(this,void 0,void 0,function*(){const o=yield this.getResolverContractAdapter(A);return yield this.checkInterfaceSupport(o,mh.setAddr),o.methods.setAddr(fs(A),t).send(i)})}getText(A,t){return na(this,void 0,void 0,function*(){const i=yield this.getResolverContractAdapter(A);return yield this.checkInterfaceSupport(i,mh.text),i.methods.text(fs(A),t).call()})}getName(A,t=!0){return na(this,void 0,void 0,function*(){const i=`${A.toLowerCase().substring(2)}.addr.reverse`,o=yield this.getResolverContractAdapter(i);return t&&(yield this.checkInterfaceSupport(o,mh.name)),o.methods.name(fs(i)).call()})}}var _n=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,[])).next())})};class MZ extends zr{constructor(A,t){super(t??""),this.registryAddress=A??zp.main,this._registry=new n3A(this.getContextObject(),A),this._resolver=new o3A(this._registry)}getResolver(A){return _n(this,void 0,void 0,function*(){return this._registry.getResolver(A)})}recordExists(A){return _n(this,void 0,void 0,function*(){return this._registry.recordExists(A)})}getTTL(A){return _n(this,void 0,void 0,function*(){return this._registry.getTTL(A)})}getOwner(A){return _n(this,void 0,void 0,function*(){return this._registry.getOwner(A)})}getAddress(A,t=60){return _n(this,void 0,void 0,function*(){return this._resolver.getAddress(A,t)})}getText(A,t){return _n(this,void 0,void 0,function*(){return mn(A)?this._resolver.getText(yield this._resolver.getName(A,!1),t):this._resolver.getText(A,t)})}getName(A,t=!0){return _n(this,void 0,void 0,function*(){return this._resolver.getName(A,t)})}getPubkey(A){return _n(this,void 0,void 0,function*(){return this._resolver.getPubkey(A)})}getContenthash(A){return _n(this,void 0,void 0,function*(){return this._resolver.getContenthash(A)})}checkNetwork(){return _n(this,void 0,void 0,function*(){const A=Date.now()/1e3;if(!this._lastSyncCheck||A-this._lastSyncCheck>3600){const o=yield UNA(this);if(!(typeof o=="boolean"&&!o))throw new dmA;this._lastSyncCheck=A}if(this._detectedAddress)return this._detectedAddress;const t=yield kK(this,Object.assign(Object.assign({},this.defaultReturnFormat),{number:ro.HEX})),i=zp[EkA[t]];if(typeof i>"u")throw new BmA(t);return this._detectedAddress=i,this._detectedAddress})}supportsInterface(A,t){return _n(this,void 0,void 0,function*(){return this._resolver.supportsInterface(A,t)})}get events(){return this._registry.events}setAddress(A,t,i){return _n(this,void 0,void 0,function*(){return this._resolver.setAddress(A,t,i)})}}var tg=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const s3A=e=>tg(void 0,void 0,void 0,function*(){return(yield ESA(e)).map(Zs)}),a3A=(e,A)=>tg(void 0,void 0,void 0,function*(){Se.validate(["string"],[A]);const t=yield QSA(e,A);return Zs(t)}),g3A=(e,A,t,i)=>tg(void 0,void 0,void 0,function*(){return Se.validate(["address","string","uint"],[A,t,i]),pSA(e,A,t,i)}),I3A=(e,A)=>tg(void 0,void 0,void 0,function*(){return Se.validate(["address"],[A]),ySA(e,A)}),f3A=(e,A,t)=>tg(void 0,void 0,void 0,function*(){return Se.validate(["string","string"],[A,t]),wSA(e,A,t)}),h3A=(e,A,t,i)=>tg(void 0,void 0,void 0,function*(){const o=an(A,Ke,{transactionSchema:i==null?void 0:i.customTransactionSchema});return DSA(e,o,t)}),c3A=(e,A,t,i)=>tg(void 0,void 0,void 0,function*(){const o=an(A,Ke,{transactionSchema:i==null?void 0:i.customTransactionSchema});return mSA(e,o,t)}),u3A=(e,A,t,i)=>tg(void 0,void 0,void 0,function*(){Se.validate(["string","address","string"],[A,t,i]);const o=Ct(A)?A:Vo(A);return vSA(e,o,t,i)}),l3A=(e,A,t)=>tg(void 0,void 0,void 0,function*(){Se.validate(["string","string"],[A,t]);const i=Ct(A)?A:Vo(A);return MSA(e,i,t)});var oa=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class bZ extends zr{getAccounts(){return oa(this,void 0,void 0,function*(){return s3A(this.requestManager)})}newAccount(A){return oa(this,void 0,void 0,function*(){return a3A(this.requestManager,A)})}unlockAccount(A,t,i){return oa(this,void 0,void 0,function*(){return g3A(this.requestManager,A,t,i)})}lockAccount(A){return oa(this,void 0,void 0,function*(){return I3A(this.requestManager,A)})}importRawKey(A,t){return oa(this,void 0,void 0,function*(){return f3A(this.requestManager,A,t)})}sendTransaction(A,t){return oa(this,void 0,void 0,function*(){return h3A(this.requestManager,A,t,this.config)})}signTransaction(A,t){return oa(this,void 0,void 0,function*(){return c3A(this.requestManager,A,t,this.config)})}sign(A,t,i){return oa(this,void 0,void 0,function*(){return u3A(this.requestManager,A,t,i)})}ecRecover(A,t){return oa(this,void 0,void 0,function*(){return l3A(this.requestManager,A,t)})}}var Sg;(function(e){e.HTTPS="https",e.WebSocket="wss"})(Sg||(Sg={}));var Tn;(function(e){e.ETH_MAINNET="eth_mainnet",e.ETH_GOERLI="eth_goerli",e.ETH_SEPOLIA="eth_sepolia",e.ETH_HOLESKY="eth_holesky",e.POLYGON_MAINNET="polygon_mainnet",e.POLYGON_MUMBAI="polygon_mumbai",e.POLYGON_AMONY="polygon_amony",e.ARBITRUM_MAINNET="arbitrum_mainnet",e.ARBITRUM_SEPOLIA="arbitrum_sepolia",e.BASE_MAINNET="base_mainnet",e.BASE_SEPOLIA="base_sepolia",e.OPTIMISM_MAINNET="optimism_mainnet",e.OPTIMISM_SEPOLIA="optimism_sepolia",e.BNB_MAINNET="bnb_mainnet",e.BNB_TESTNET="bnb_testnet"})(Tn||(Tn={}));const C3A=1300;class B3A extends ke{constructor(A){super("You've reach the rate limit of free RPC calls from our Partner Quick Nodes. There are two options you can either create a paid Quick Nodes account and get 20% off for 2 months using WEB3JS referral code, or use Free public RPC endpoint.",A),this.code=C3A}}const d3A=1301;class Z_ extends ke{constructor(A){super(`Invalid provider config options given for ${A}`),this.code=d3A}}var E3A=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};class Q3A extends lK{constructor(A,t,i,o,r){if(super(),r!==void 0&&t===Sg.HTTPS&&!("providerOptions"in r))throw new Z_("HTTP Provider");if(r!==void 0&&t===Sg.WebSocket&&!("socketOptions"in r||"reconnectOptions"in r))throw new Z_("Websocket Provider");this.transport=t,t===Sg.HTTPS?this.provider=new cD(this.getRPCURL(A,t,i,o),r):t===Sg.WebSocket&&(this.provider=new NW(this.getRPCURL(A,t,i,o),r==null?void 0:r.socketOptions,r==null?void 0:r.reconnectOptions))}request(A,t){return E3A(this,void 0,void 0,function*(){return this.transport===Sg.HTTPS?yield this.provider.request(A,t):this.provider.request(A)})}getStatus(){return this.provider.getStatus()}supportsSubscriptions(){return this.provider.supportsSubscriptions()}once(A,t){var i;!((i=this.provider)===null||i===void 0)&&i.once&&this.provider.once(A,t)}removeAllListeners(A){var t;!((t=this.provider)===null||t===void 0)&&t.removeAllListeners&&this.provider.removeAllListeners(A)}connect(){var A;!((A=this.provider)===null||A===void 0)&&A.connect&&this.provider.connect()}disconnect(A,t){var i;!((i=this.provider)===null||i===void 0)&&i.disconnect&&this.provider.disconnect(A,t)}reset(){var A;!((A=this.provider)===null||A===void 0)&&A.reset&&this.provider.reset()}on(A,t){this.provider&&this.provider.on(A,t)}removeListener(A,t){this.provider&&this.provider.removeListener(A,t)}}var p3A=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const vi=e=>e!==void 0&&e.trim().length>0;class y3A extends Q3A{constructor(A=Tn.ETH_MAINNET,t=Sg.HTTPS,i="",o="",r){super(A,t,i,o,r)}request(A,t){const i=Object.create(null,{request:{get:()=>super.request}});return p3A(this,void 0,void 0,function*(){try{return yield i.request.call(this,A,t)}catch(o){throw o instanceof Cs&&o.statusCode===429?new B3A(o):o}})}getRPCURL(A,t,i,o){let r="",f="";switch(A){case Tn.ETH_MAINNET:r=vi(o)?o:"powerful-holy-bush.quiknode.pro",f=vi(i)?i:"3240624a343867035925ff7561eb60dfdba2a668";break;case Tn.ETH_SEPOLIA:r=vi(o)?o:"dimensional-fabled-glitter.ethereum-sepolia.quiknode.pro",f=vi(i)?i:"382a3b5a4b938f2d6e8686c19af4b22921fde2cd";break;case Tn.ETH_HOLESKY:r=vi(o)?o:"yolo-morning-card.ethereum-holesky.quiknode.pro",f=vi(i)?i:"481ebe70638c4dcf176af617a16d02ab866b9af9";break;case Tn.ARBITRUM_MAINNET:r=vi(o)?o:"autumn-divine-dinghy.arbitrum-mainnet.quiknode.pro",f=vi(i)?i:"a5d7bfbf60b5ae9ce3628e53d69ef50d529e9a8c";break;case Tn.ARBITRUM_SEPOLIA:r=vi(o)?o:"few-patient-pond.arbitrum-sepolia.quiknode.pro",f=vi(i)?i:"3be985450970628c860b959c65cd2642dcafe53c";break;case Tn.BNB_MAINNET:r=vi(o)?o:"purple-empty-reel.bsc.quiknode.pro",f=vi(i)?i:"ebf6c532961e21f092ff2facce1ec4c89c540158";break;case Tn.BNB_TESTNET:r=vi(o)?o:"floral-rough-scion.bsc-testnet.quiknode.pro",f=vi(i)?i:"5b297e5acff5f81f4c37ebf6f235f7299b6f9d28";break;case Tn.POLYGON_MAINNET:r=vi(o)?o:"small-chaotic-moon.matic.quiknode.pro",f=vi(i)?i:"847569f8a017e84d985e10d0f44365d965a951f1";break;case Tn.POLYGON_AMONY:r=vi(o)?o:"prettiest-side-shape.matic-amoy.quiknode.pro",f=vi(i)?i:"79a9476eea661d4f82de614db1d8a895b14b881c";break;default:throw new Error("Network info not avalible.")}return`${t}://${r}/${f}`}}const w3A=new y3A,D3A={encodeEventSignature:FK,encodeFunctionCall:kNA,encodeFunctionSignature:qC,encodeParameter:bN,encodeParameters:yD,decodeParameter:VV,decodeParameters:Ef,decodeLog:ZV};var Vl=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})};const m3A=e=>{const A=(f,h)=>Vl(void 0,void 0,void 0,function*(){const d=yield fkA(f,e),p=ie({format:"bytes"},h,Ke);return wbA(d,p)}),t=f=>{const h=MK(f);return Object.assign(Object.assign({},h),{signTransaction:d=>Vl(void 0,void 0,void 0,function*(){return A(d,h.privateKey)})})},i=(f,h,d)=>Vl(void 0,void 0,void 0,function*(){var p;const C=yield MbA(f,h,(p=d==null?void 0:d.nonStrict)!==null&&p!==void 0?p:!0);return Object.assign(Object.assign({},C),{signTransaction:y=>Vl(void 0,void 0,void 0,function*(){return A(y,C.privateKey)})})}),o=()=>{const f=vbA();return Object.assign(Object.assign({},f),{signTransaction:h=>Vl(void 0,void 0,void 0,function*(){return A(h,f.privateKey)})})},r=new Hp({create:o,privateKeyToAccount:t,decrypt:i});return{signTransaction:A,create:o,privateKeyToAccount:t,decrypt:i,recoverTransaction:DbA,hashMessage:vK,sign:uV,recover:EN,encrypt:lV,wallet:r,privateKeyToAddress:BD,parseAndValidatePrivateKey:fl,privateKeyToPublicKey:mbA}},v3A={version:"4.13.0"};var M3A=function(e,A,t,i){function o(r){return r instanceof t?r:new t(function(f){f(r)})}return new(t||(t=Promise))(function(r,f){function h(C){try{p(i.next(C))}catch(y){f(y)}}function d(C){try{p(i.throw(C))}catch(y){f(y)}}function p(C){C.done?r(C.value):o(C.value).then(h,d)}p((i=i.apply(e,A||[])).next())})},iy;(function(e){e.eip6963announceProvider="eip6963:announceProvider",e.eip6963requestProvider="eip6963:requestProvider"})(iy||(iy={}));const E2=new Map,SZ="web3:providersMapUpdated",b3A=()=>M3A(void 0,void 0,void 0,function*(){return new Promise((e,A)=>{typeof window>"u"&&A(new Error("window object not available, EIP-6963 is intended to be used within a browser")),window.addEventListener(iy.eip6963announceProvider,t=>{E2.set(t.detail.info.uuid,t.detail);const i=new CustomEvent(SZ,{detail:E2});window.dispatchEvent(i),e(E2)}),window.dispatchEvent(new Event(iy.eip6963requestProvider))})}),S3A=e=>{if(typeof window>"u")throw new Error("window object not available, EIP-6963 is intended to be used within a browser");window.addEventListener(SZ,e)};class cl extends zr{constructor(A=w3A){var t;(Me(A)||typeof A=="string"&&A.trim()===""||typeof A!="string"&&!qp(A)&&!A.provider)&&console.warn("NOTE: web3.js is running without provider. You need to pass a provider in order to interact with the network!");let i={};typeof A=="string"||qp(A)?i.provider=A:A?i=A:i={},i.registeredSubscriptions=Object.assign(Object.assign({},SN),(t=i.registeredSubscriptions)!==null&&t!==void 0?t:{}),super(i);const o=m3A(this);this._wallet=o.wallet,this._accountProvider=o,this.utils=SW;const r=this;class f extends Qf{constructor(p,C,y,w,D){if(Kg(C)&&Kg(y))throw new ZU("Should not provide options at both 2nd and 3rd parameters");let v,M={},R,b;if(!Me(C)&&typeof C!="object"&&typeof C!="string")throw new ZU;if(typeof C=="string"&&(v=C),Kg(C)?M=C:Kg(y)?M=y:M={},C instanceof zr?R=C:y instanceof zr?R=y:w instanceof zr?R=w:R=r.getContextObject(),D?b=D:ca(y)?b=y:ca(w)&&(b=w),super(p,v,M,R,b),super.subscribeToContextEvents(r),!Me(h)){const S=h.getTransactionMiddleware();Me(S)||super.setTransactionMiddleware(S)}}}const h=r.use(wD);this.eth=Object.assign(h,{ens:r.use(MZ,zp.main),Iban:Ii,net:r.use(wV),personal:r.use(bZ),Contract:f,abi:D3A,accounts:o})}}cl.version=v3A.version;cl.utils=SW;cl.requestEIP6963Providers=b3A;cl.onNewProviderDiscovered=S3A;cl.modules={Web3Eth:wD,Iban:Ii,Net:wV,ENS:MZ,Personal:bZ};function N3A(e){const A=e.findIndex(r=>r instanceof Error),t=e.findIndex(r=>typeof r=="string"),i=e.findIndex(r=>r&&typeof r=="object"&&"status"in r&&"type"in r);let o;if(i!==-1){const r=e[i];o=new Error(`${r.status} ${r.type.toString()} ${r.statusText}`)}else A!==-1?o=e.splice(A,1)[0]:t!==-1?o=new Error(e.splice(t,1)[0]):o=new Error("Unknown error");return[o,e]}class vD extends kP{constructor(A,t,i){super(t),FA(this,"code",void 0),FA(this,"message",void 0),FA(this,"cause",void 0),this.code=A,this.message=t||"",this.cause=i,Object.defineProperty(this,"name",{value:"Web3AuthError"})}toJSON(){return{name:this.name,code:this.code,message:this.message,cause:N3A([this.cause])}}toString(){return JSON.stringify(this.toJSON())}}class gi extends vD{constructor(A,t,i){super(A,t,i),Object.defineProperty(this,"name",{value:"WalletInitializationError"})}static fromCode(A,t="",i){return new gi(A,`${gi.messages[A]}, ${t}`,i)}static notFound(A="",t){return gi.fromCode(5001,A,t)}static notInstalled(A="",t){return gi.fromCode(5002,A,t)}static notReady(A="",t){return gi.fromCode(5003,A,t)}static windowBlocked(A="",t){return gi.fromCode(5004,A,t)}static windowClosed(A="",t){return gi.fromCode(5005,A,t)}static incompatibleChainNameSpace(A="",t){return gi.fromCode(5006,A,t)}static duplicateAdapterError(A="",t){return gi.fromCode(5007,A,t)}static invalidProviderConfigError(A="",t){return gi.fromCode(5008,A,t)}static providerNotReadyError(A="",t){return gi.fromCode(5009,A,t)}static rpcConnectionError(A="",t){return gi.fromCode(5010,A,t)}static invalidParams(A="",t){return gi.fromCode(5011,A,t)}static invalidNetwork(A="",t){return gi.fromCode(5013,A,t)}}FA(gi,"messages",{5e3:"Custom",5001:"Wallet is not found",5002:"Wallet is not installed",5003:"Wallet is not ready yet",5004:"Wallet window is blocked",5005:"Wallet window has been closed by the user",5006:"Incompatible chain namespace provided",5007:"Adapter has already been included",5008:"Invalid provider Config",5009:"Provider is not ready yet",5010:"Failed to connect with rpc url",5011:"Invalid params passed in",5013:"Invalid network provided"});class un extends vD{constructor(A,t,i){super(A,t,i),Object.defineProperty(this,"name",{value:"WalletLoginError"})}static fromCode(A,t="",i){return new un(A,`${un.messages[A]}. ${t}`,i)}static connectionError(A="",t){return un.fromCode(5111,A,t)}static disconnectionError(A="",t){return un.fromCode(5112,A,t)}static notConnectedError(A="",t){return un.fromCode(5113,A,t)}static popupClosed(A="",t){return un.fromCode(5114,A,t)}static mfaEnabled(A="",t){return un.fromCode(5115,A,t)}static chainConfigNotAdded(A="",t){return un.fromCode(5116,A,t)}static unsupportedOperation(A="",t){return un.fromCode(5117,A,t)}static coreKitKeyNotFound(A="",t){return un.fromCode(5118,A,t)}static userNotLoggedIn(A="",t){return un.fromCode(5119,A,t)}}FA(un,"messages",{5e3:"Custom",5111:"Failed to connect with wallet",5112:"Failed to disconnect from wallet",5113:"Wallet is not connected",5114:"Wallet popup has been closed by the user",5115:"User has already enabled mfa, please use the @web3auth/web3auth-web sdk for login with mfa",5116:"Chain config has not been added. Please add the chain config before calling switchChain",5117:"Unsupported operation",5118:"useCoreKitKey flag is enabled but coreKitKey is not available",5119:"User not logged in."});class xo extends vD{constructor(A,t,i){super(A,t,i),Object.defineProperty(this,"name",{value:"WalletOperationsError"})}static fromCode(A,t="",i){return new xo(A,`${xo.messages[A]}, ${t}`,i)}static chainIDNotAllowed(A="",t){return xo.fromCode(5201,A,t)}static operationNotAllowed(A="",t){return xo.fromCode(5202,A,t)}static chainNamespaceNotAllowed(A="",t){return xo.fromCode(5203,A,t)}}FA(xo,"messages",{5e3:"Custom",5201:"Provided chainId is not allowed",5202:"This operation is not allowed"});class ua extends vD{constructor(A,t,i){super(A,t,i),Object.defineProperty(this,"name",{value:"WalletProviderError"})}static fromCode(A,t="",i){return new xo(A,`${ua.messages[A]}, ${t}`,i)}static invalidRequestArgs(A="",t){return xo.fromCode(5301,A,t)}static invalidRequestMethod(A="",t){return xo.fromCode(5302,A,t)}static invalidRequestParams(A="",t){return xo.fromCode(5303,A,t)}}FA(ua,"messages",{5e3:"Custom",5301:"Expected a single, non-array, object argument.",5302:"'args.method' must be a non-empty string.",5303:"'args.params' must be an object or array if provided."});const bc={EIP155:"eip155",SOLANA:"solana",CASPER:"casper",XRPL:"xrpl",OTHER:"other"};var aQ=tn.getLogger("web3auth-logger"),LB={},NZ={},k3A=WT,jK=function(){return k3A()&&!!Symbol.toStringTag},R3A=jK(),K3A=j3,LN=K3A("Object.prototype.toString"),MD=function(A){return R3A&&A&&typeof A=="object"&&Symbol.toStringTag in A?!1:LN(A)==="[object Arguments]"},kZ=function(A){return MD(A)?!0:A!==null&&typeof A=="object"&&typeof A.length=="number"&&A.length>=0&&LN(A)!=="[object Array]"&&LN(A.callee)==="[object Function]"},G3A=function(){return MD(arguments)}();MD.isLegacyArguments=kZ;var F3A=G3A?MD:kZ,x3A=Object.prototype.toString,L3A=Function.prototype.toString,U3A=/^\s*(?:function)?\*/,RZ=jK(),Q2=Object.getPrototypeOf,_3A=function(){if(!RZ)return!1;try{return Function("return function*() {}")()}catch{}},p2,q3A=function(A){if(typeof A!="function")return!1;if(U3A.test(L3A.call(A)))return!0;if(!RZ){var t=x3A.call(A);return t==="[object GeneratorFunction]"}if(!Q2)return!1;if(typeof p2>"u"){var i=_3A();p2=i?Q2(i):!1}return Q2(A)===p2},KZ=Function.prototype.toString,rc=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,UN,gQ;if(typeof rc=="function"&&typeof Object.defineProperty=="function")try{UN=Object.defineProperty({},"length",{get:function(){throw gQ}}),gQ={},rc(function(){throw 42},null,UN)}catch(e){e!==gQ&&(rc=null)}else rc=null;var H3A=/^\s*class\b/,_N=function(A){try{var t=KZ.call(A);return H3A.test(t)}catch{return!1}},y2=function(A){try{return _N(A)?!1:(KZ.call(A),!0)}catch{return!1}},IQ=Object.prototype.toString,Y3A="[object Object]",J3A="[object Function]",T3A="[object GeneratorFunction]",P3A="[object HTMLAllCollection]",O3A="[object HTML document.all class]",j3A="[object HTMLCollection]",W3A=typeof Symbol=="function"&&!!Symbol.toStringTag,V3A=!(0 in[,]),qN=function(){return!1};if(typeof document=="object"){var Z3A=document.all;IQ.call(Z3A)===IQ.call(document.all)&&(qN=function(A){if((V3A||!A)&&(typeof A>"u"||typeof A=="object"))try{var t=IQ.call(A);return(t===P3A||t===O3A||t===j3A||t===Y3A)&&A("")==null}catch{}return!1})}var z3A=rc?function(A){if(qN(A))return!0;if(!A||typeof A!="function"&&typeof A!="object")return!1;try{rc(A,null,UN)}catch(t){if(t!==gQ)return!1}return!_N(A)&&y2(A)}:function(A){if(qN(A))return!0;if(!A||typeof A!="function"&&typeof A!="object")return!1;if(W3A)return y2(A);if(_N(A))return!1;var t=IQ.call(A);return t!==J3A&&t!==T3A&&!/^\[object HTML/.test(t)?!1:y2(A)},$3A=z3A,X3A=Object.prototype.toString,GZ=Object.prototype.hasOwnProperty,ARA=function(A,t,i){for(var o=0,r=A.length;o=3&&(o=i),X3A.call(A)==="[object Array]"?ARA(A,t,o):typeof A=="string"?eRA(A,t,o):tRA(A,t,o)},rRA=iRA,nRA=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"],w2=nRA,oRA=globalThis,sRA=function(){for(var A=[],t=0;t-1?t:t!=="Object"?!1:hRA(A)}return fQ?fRA(A):null},cRA=xZ,uRA=function(A){return!!cRA(A)};(function(e){var A=F3A,t=q3A,i=xZ,o=uRA;function r(tA){return tA.call.bind(tA)}var f=typeof BigInt<"u",h=typeof Symbol<"u",d=r(Object.prototype.toString),p=r(Number.prototype.valueOf),C=r(String.prototype.valueOf),y=r(Boolean.prototype.valueOf);if(f)var w=r(BigInt.prototype.valueOf);if(h)var D=r(Symbol.prototype.valueOf);function v(tA,xA){if(typeof tA!="object")return!1;try{return xA(tA),!0}catch{return!1}}e.isArgumentsObject=A,e.isGeneratorFunction=t,e.isTypedArray=o;function M(tA){return typeof Promise<"u"&&tA instanceof Promise||tA!==null&&typeof tA=="object"&&typeof tA.then=="function"&&typeof tA.catch=="function"}e.isPromise=M;function R(tA){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(tA):o(tA)||N(tA)}e.isArrayBufferView=R;function b(tA){return i(tA)==="Uint8Array"}e.isUint8Array=b;function S(tA){return i(tA)==="Uint8ClampedArray"}e.isUint8ClampedArray=S;function G(tA){return i(tA)==="Uint16Array"}e.isUint16Array=G;function U(tA){return i(tA)==="Uint32Array"}e.isUint32Array=U;function P(tA){return i(tA)==="Int8Array"}e.isInt8Array=P;function z(tA){return i(tA)==="Int16Array"}e.isInt16Array=z;function oA(tA){return i(tA)==="Int32Array"}e.isInt32Array=oA;function J(tA){return i(tA)==="Float32Array"}e.isFloat32Array=J;function q(tA){return i(tA)==="Float64Array"}e.isFloat64Array=q;function X(tA){return i(tA)==="BigInt64Array"}e.isBigInt64Array=X;function Q(tA){return i(tA)==="BigUint64Array"}e.isBigUint64Array=Q;function n(tA){return d(tA)==="[object Map]"}n.working=typeof Map<"u"&&n(new Map);function a(tA){return typeof Map>"u"?!1:n.working?n(tA):tA instanceof Map}e.isMap=a;function g(tA){return d(tA)==="[object Set]"}g.working=typeof Set<"u"&&g(new Set);function I(tA){return typeof Set>"u"?!1:g.working?g(tA):tA instanceof Set}e.isSet=I;function c(tA){return d(tA)==="[object WeakMap]"}c.working=typeof WeakMap<"u"&&c(new WeakMap);function B(tA){return typeof WeakMap>"u"?!1:c.working?c(tA):tA instanceof WeakMap}e.isWeakMap=B;function E(tA){return d(tA)==="[object WeakSet]"}E.working=typeof WeakSet<"u"&&E(new WeakSet);function u(tA){return E(tA)}e.isWeakSet=u;function s(tA){return d(tA)==="[object ArrayBuffer]"}s.working=typeof ArrayBuffer<"u"&&s(new ArrayBuffer);function l(tA){return typeof ArrayBuffer>"u"?!1:s.working?s(tA):tA instanceof ArrayBuffer}e.isArrayBuffer=l;function m(tA){return d(tA)==="[object DataView]"}m.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&m(new DataView(new ArrayBuffer(1),0,1));function N(tA){return typeof DataView>"u"?!1:m.working?m(tA):tA instanceof DataView}e.isDataView=N;var L=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function O(tA){return d(tA)==="[object SharedArrayBuffer]"}function H(tA){return typeof L>"u"?!1:(typeof O.working>"u"&&(O.working=O(new L)),O.working?O(tA):tA instanceof L)}e.isSharedArrayBuffer=H;function K(tA){return d(tA)==="[object AsyncFunction]"}e.isAsyncFunction=K;function Y(tA){return d(tA)==="[object Map Iterator]"}e.isMapIterator=Y;function W(tA){return d(tA)==="[object Set Iterator]"}e.isSetIterator=W;function $(tA){return d(tA)==="[object Generator]"}e.isGeneratorObject=$;function V(tA){return d(tA)==="[object WebAssembly.Module]"}e.isWebAssemblyCompiledModule=V;function _(tA){return v(tA,p)}e.isNumberObject=_;function j(tA){return v(tA,C)}e.isStringObject=j;function sA(tA){return v(tA,y)}e.isBooleanObject=sA;function iA(tA){return f&&v(tA,w)}e.isBigIntObject=iA;function aA(tA){return h&&v(tA,D)}e.isSymbolObject=aA;function lA(tA){return _(tA)||j(tA)||sA(tA)||iA(tA)||aA(tA)}e.isBoxedPrimitive=lA;function nA(tA){return typeof Uint8Array<"u"&&(l(tA)||H(tA))}e.isAnyArrayBuffer=nA,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(tA){Object.defineProperty(e,tA,{enumerable:!1,value:function(){throw new Error(tA+" is not supported in userland")}})})})(NZ);var lRA=function(A){return A&&typeof A=="object"&&typeof A.copy=="function"&&typeof A.fill=="function"&&typeof A.readUInt8=="function"};(function(e){var A={},t=Object.getOwnPropertyDescriptors||function(L){for(var O=Object.keys(L),H={},K=0;K=K)return $;switch($){case"%s":return String(H[O++]);case"%d":return Number(H[O++]);case"%j":try{return JSON.stringify(H[O++])}catch{return"[Circular]"}default:return $}}),W=H[O];O"u")return function(){return e.deprecate(N,L).apply(this,arguments)};var O=!1;function H(){if(!O){if(process.throwDeprecation)throw new Error(L);process.traceDeprecation?console.trace(L):console.error(L),O=!0}return N.apply(this,arguments)}return H};var o={},r=/^$/;if(A.NODE_DEBUG){var f=A.NODE_DEBUG;f=f.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),r=new RegExp("^"+f+"$","i")}e.debuglog=function(N){if(N=N.toUpperCase(),!o[N])if(r.test(N)){var L=process.pid;o[N]=function(){var O=e.format.apply(e,arguments);console.error("%s %d: %s",N,L,O)}}else o[N]=function(){};return o[N]};function h(N,L){var O={seen:[],stylize:p};return arguments.length>=3&&(O.depth=arguments[2]),arguments.length>=4&&(O.colors=arguments[3]),S(L)?O.showHidden=L:L&&e._extend(O,L),J(O.showHidden)&&(O.showHidden=!1),J(O.depth)&&(O.depth=2),J(O.colors)&&(O.colors=!1),J(O.customInspect)&&(O.customInspect=!0),O.colors&&(O.stylize=d),y(O,N,O.depth)}e.inspect=h,h.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},h.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function d(N,L){var O=h.styles[L];return O?"\x1B["+h.colors[O][0]+"m"+N+"\x1B["+h.colors[O][1]+"m":N}function p(N,L){return N}function C(N){var L={};return N.forEach(function(O,H){L[O]=!0}),L}function y(N,L,O){if(N.customInspect&&L&&a(L.inspect)&&L.inspect!==e.inspect&&!(L.constructor&&L.constructor.prototype===L)){var H=L.inspect(O,N);return z(H)||(H=y(N,H,O)),H}var K=w(N,L);if(K)return K;var Y=Object.keys(L),W=C(Y);if(N.showHidden&&(Y=Object.getOwnPropertyNames(L)),n(L)&&(Y.indexOf("message")>=0||Y.indexOf("description")>=0))return D(L);if(Y.length===0){if(a(L)){var $=L.name?": "+L.name:"";return N.stylize("[Function"+$+"]","special")}if(q(L))return N.stylize(RegExp.prototype.toString.call(L),"regexp");if(Q(L))return N.stylize(Date.prototype.toString.call(L),"date");if(n(L))return D(L)}var V="",_=!1,j=["{","}"];if(b(L)&&(_=!0,j=["[","]"]),a(L)){var sA=L.name?": "+L.name:"";V=" [Function"+sA+"]"}if(q(L)&&(V=" "+RegExp.prototype.toString.call(L)),Q(L)&&(V=" "+Date.prototype.toUTCString.call(L)),n(L)&&(V=" "+D(L)),Y.length===0&&(!_||L.length==0))return j[0]+V+j[1];if(O<0)return q(L)?N.stylize(RegExp.prototype.toString.call(L),"regexp"):N.stylize("[Object]","special");N.seen.push(L);var iA;return _?iA=v(N,L,O,W,Y):iA=Y.map(function(aA){return M(N,L,O,W,aA,_)}),N.seen.pop(),R(iA,V,j)}function w(N,L){if(J(L))return N.stylize("undefined","undefined");if(z(L)){var O="'"+JSON.stringify(L).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return N.stylize(O,"string")}if(P(L))return N.stylize(""+L,"number");if(S(L))return N.stylize(""+L,"boolean");if(G(L))return N.stylize("null","null")}function D(N){return"["+Error.prototype.toString.call(N)+"]"}function v(N,L,O,H,K){for(var Y=[],W=0,$=L.length;W<$;++W)u(L,String(W))?Y.push(M(N,L,O,H,String(W),!0)):Y.push("");return K.forEach(function(V){V.match(/^\d+$/)||Y.push(M(N,L,O,H,V,!0))}),Y}function M(N,L,O,H,K,Y){var W,$,V;if(V=Object.getOwnPropertyDescriptor(L,K)||{value:L[K]},V.get?V.set?$=N.stylize("[Getter/Setter]","special"):$=N.stylize("[Getter]","special"):V.set&&($=N.stylize("[Setter]","special")),u(H,K)||(W="["+K+"]"),$||(N.seen.indexOf(V.value)<0?(G(O)?$=y(N,V.value,null):$=y(N,V.value,O-1),$.indexOf(` +`)>-1&&(Y?$=$.split(` +`).map(function(_){return" "+_}).join(` +`).slice(2):$=` +`+$.split(` +`).map(function(_){return" "+_}).join(` +`))):$=N.stylize("[Circular]","special")),J(W)){if(Y&&K.match(/^\d+$/))return $;W=JSON.stringify(""+K),W.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(W=W.slice(1,-1),W=N.stylize(W,"name")):(W=W.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),W=N.stylize(W,"string"))}return W+": "+$}function R(N,L,O){var H=N.reduce(function(K,Y){return Y.indexOf(` +`)>=0,K+Y.replace(/\u001b\[\d\d?m/g,"").length+1},0);return H>60?O[0]+(L===""?"":L+` + `)+" "+N.join(`, + `)+" "+O[1]:O[0]+L+" "+N.join(", ")+" "+O[1]}e.types=NZ;function b(N){return Array.isArray(N)}e.isArray=b;function S(N){return typeof N=="boolean"}e.isBoolean=S;function G(N){return N===null}e.isNull=G;function U(N){return N==null}e.isNullOrUndefined=U;function P(N){return typeof N=="number"}e.isNumber=P;function z(N){return typeof N=="string"}e.isString=z;function oA(N){return typeof N=="symbol"}e.isSymbol=oA;function J(N){return N===void 0}e.isUndefined=J;function q(N){return X(N)&&I(N)==="[object RegExp]"}e.isRegExp=q,e.types.isRegExp=q;function X(N){return typeof N=="object"&&N!==null}e.isObject=X;function Q(N){return X(N)&&I(N)==="[object Date]"}e.isDate=Q,e.types.isDate=Q;function n(N){return X(N)&&(I(N)==="[object Error]"||N instanceof Error)}e.isError=n,e.types.isNativeError=n;function a(N){return typeof N=="function"}e.isFunction=a;function g(N){return N===null||typeof N=="boolean"||typeof N=="number"||typeof N=="string"||typeof N=="symbol"||typeof N>"u"}e.isPrimitive=g,e.isBuffer=lRA;function I(N){return Object.prototype.toString.call(N)}function c(N){return N<10?"0"+N.toString(10):N.toString(10)}var B=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function E(){var N=new Date,L=[c(N.getHours()),c(N.getMinutes()),c(N.getSeconds())].join(":");return[N.getDate(),B[N.getMonth()],L].join(" ")}e.log=function(){console.log("%s - %s",E(),e.format.apply(e,arguments))},e.inherits=Fe,e._extend=function(N,L){if(!L||!X(L))return N;for(var O=Object.keys(L),H=O.length;H--;)N[O[H]]=L[O[H]];return N};function u(N,L){return Object.prototype.hasOwnProperty.call(N,L)}var s=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;e.promisify=function(L){if(typeof L!="function")throw new TypeError('The "original" argument must be of type Function');if(s&&L[s]){var O=L[s];if(typeof O!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(O,s,{value:O,enumerable:!1,writable:!1,configurable:!0}),O}function O(){for(var H,K,Y=new Promise(function(V,_){H=V,K=_}),W=[],$=0;${if(w!==void 0&&(w===null||typeof w!="object"||!("aborted"in w)))throw new ERR_INVALID_ARG_TYPE(D,"AbortSignal",w)},C=(w,D)=>{if(typeof w!="function")throw new ERR_INVALID_ARG_TYPE(D,"Function",w)};class y extends Error{constructor(D){if(!Array.isArray(D))throw new TypeError(`Expected input to be an Array, got ${typeof D}`);let v="";for(let M=0;M{w=M,D=R}),resolve:w,reject:D}},promisify(w){return new Promise((D,v)=>{w((M,...R)=>M?v(M):D(...R))})},debuglog(){return function(){}},format(w,...D){return w.replace(/%([sdifj])/g,function(...[v,M]){const R=D.shift();return M==="f"?R.toFixed(6):M==="j"?JSON.stringify(R):M==="s"&&typeof R=="object"?`${R.constructor!==Object?R.constructor.name:""} {}`.trim():R.toString()})},inspect(w){switch(typeof w){case"string":if(w.includes("'"))if(w.includes('"')){if(!w.includes("`")&&!w.includes("${"))return`\`${w}\``}else return`"${w}"`;return`'${w}'`;case"number":return isNaN(w)?"NaN":Object.is(w,-0)?String(w):w;case"bigint":return`${String(w)}n`;case"boolean":case"undefined":return String(w);case"object":return"{}"}},types:{isAsyncFunction(w){return w instanceof f},isArrayBufferView(w){return ArrayBuffer.isView(w)}},isBlob:d,deprecate(w,D){return w},addAbortListener:Zo.addAbortListener||function(D,v){if(D===void 0)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",D);p(D,"signal"),C(v,"listener");let M;return D.aborted?queueMicrotask(()=>v()):(D.addEventListener("abort",v,{__proto__:null,once:!0,[t]:!0}),M=()=>{D.removeEventListener("abort",v)}),{__proto__:null,[i](){var R;(R=M)===null||R===void 0||R()}}},AbortSignalAny:o.any||function(D){if(D.length===1)return D[0];const v=new r,M=()=>v.abort();return D.forEach(R=>{p(R,"signals"),R.addEventListener("abort",M,{once:!0})}),v.signal.addEventListener("abort",()=>{D.forEach(R=>R.removeEventListener("abort",M))},{once:!0}),v.signal}},e.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")})(LZ);var Gr=LZ.exports,ZK={};const{format:BRA,inspect:oy,AggregateError:dRA}=Gr,ERA=globalThis.AggregateError||dRA,QRA=Symbol("kIsNodeError"),pRA=["string","function","number","object","Function","Object","boolean","bigint","symbol"],yRA=/^([A-Z][a-z0-9]*)+$/,wRA="__node_internal_",bD={};function pf(e,A){if(!e)throw new bD.ERR_INTERNAL_ASSERTION(A)}function A5(e){let A="",t=e.length;const i=e[0]==="-"?1:0;for(;t>=i+4;t-=3)A=`_${e.slice(t-3,t)}${A}`;return`${e.slice(0,t)}${A}`}function DRA(e,A,t){if(typeof A=="function")return pf(A.length<=t.length,`Code: ${e}; The provided arguments length (${t.length}) does not match the required ones (${A.length}).`),A(...t);const i=(A.match(/%[dfijoOs]/g)||[]).length;return pf(i===t.length,`Code: ${e}; The provided arguments length (${t.length}) does not match the required ones (${i}).`),t.length===0?A:BRA(A,...t)}function er(e,A,t){t||(t=Error);class i extends t{constructor(...r){super(DRA(e,A,r))}toString(){return`${this.name} [${e}]: ${this.message}`}}Object.defineProperties(i.prototype,{name:{value:t.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${e}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),i.prototype.code=e,i.prototype[QRA]=!0,bD[e]=i}function e5(e){const A=wRA+e.name;return Object.defineProperty(e,"name",{value:A}),e}function mRA(e,A){if(e&&A&&e!==A){if(Array.isArray(A.errors))return A.errors.push(e),A;const t=new ERA([A,e],A.message);return t.code=A.code,t}return e||A}let vRA=class extends Error{constructor(A="The operation was aborted",t=void 0){if(t!==void 0&&typeof t!="object")throw new bD.ERR_INVALID_ARG_TYPE("options","Object",t);super(A,t),this.code="ABORT_ERR",this.name="AbortError"}};er("ERR_ASSERTION","%s",Error);er("ERR_INVALID_ARG_TYPE",(e,A,t)=>{pf(typeof e=="string","'name' must be a string"),Array.isArray(A)||(A=[A]);let i="The ";e.endsWith(" argument")?i+=`${e} `:i+=`"${e}" ${e.includes(".")?"property":"argument"} `,i+="must be ";const o=[],r=[],f=[];for(const d of A)pf(typeof d=="string","All expected entries have to be of type string"),pRA.includes(d)?o.push(d.toLowerCase()):yRA.test(d)?r.push(d):(pf(d!=="object",'The value "object" should be written as "Object"'),f.push(d));if(r.length>0){const d=o.indexOf("object");d!==-1&&(o.splice(o,d,1),r.push("Object"))}if(o.length>0){switch(o.length){case 1:i+=`of type ${o[0]}`;break;case 2:i+=`one of type ${o[0]} or ${o[1]}`;break;default:{const d=o.pop();i+=`one of type ${o.join(", ")}, or ${d}`}}(r.length>0||f.length>0)&&(i+=" or ")}if(r.length>0){switch(r.length){case 1:i+=`an instance of ${r[0]}`;break;case 2:i+=`an instance of ${r[0]} or ${r[1]}`;break;default:{const d=r.pop();i+=`an instance of ${r.join(", ")}, or ${d}`}}f.length>0&&(i+=" or ")}switch(f.length){case 0:break;case 1:f[0].toLowerCase()!==f[0]&&(i+="an "),i+=`${f[0]}`;break;case 2:i+=`one of ${f[0]} or ${f[1]}`;break;default:{const d=f.pop();i+=`one of ${f.join(", ")}, or ${d}`}}if(t==null)i+=`. Received ${t}`;else if(typeof t=="function"&&t.name)i+=`. Received function ${t.name}`;else if(typeof t=="object"){var h;if((h=t.constructor)!==null&&h!==void 0&&h.name)i+=`. Received an instance of ${t.constructor.name}`;else{const d=oy(t,{depth:-1});i+=`. Received ${d}`}}else{let d=oy(t,{colors:!1});d.length>25&&(d=`${d.slice(0,25)}...`),i+=`. Received type ${typeof t} (${d})`}return i},TypeError);er("ERR_INVALID_ARG_VALUE",(e,A,t="is invalid")=>{let i=oy(A);return i.length>128&&(i=i.slice(0,128)+"..."),`The ${e.includes(".")?"property":"argument"} '${e}' ${t}. Received ${i}`},TypeError);er("ERR_INVALID_RETURN_VALUE",(e,A,t)=>{var i;const o=t!=null&&(i=t.constructor)!==null&&i!==void 0&&i.name?`instance of ${t.constructor.name}`:`type ${typeof t}`;return`Expected ${e} to be returned from the "${A}" function but got ${o}.`},TypeError);er("ERR_MISSING_ARGS",(...e)=>{pf(e.length>0,"At least one arg needs to be specified");let A;const t=e.length;switch(e=(Array.isArray(e)?e:[e]).map(i=>`"${i}"`).join(" or "),t){case 1:A+=`The ${e[0]} argument`;break;case 2:A+=`The ${e[0]} and ${e[1]} arguments`;break;default:{const i=e.pop();A+=`The ${e.join(", ")}, and ${i} arguments`}break}return`${A} must be specified`},TypeError);er("ERR_OUT_OF_RANGE",(e,A,t)=>{pf(A,'Missing "range" argument');let i;return Number.isInteger(t)&&Math.abs(t)>2**32?i=A5(String(t)):typeof t=="bigint"?(i=String(t),(t>2n**32n||t<-(2n**32n))&&(i=A5(i)),i+="n"):i=oy(t),`The value of "${e}" is out of range. It must be ${A}. Received ${i}`},RangeError);er("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error);er("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error);er("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error);er("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error);er("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error);er("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);er("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error);er("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error);er("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error);er("ERR_STREAM_WRITE_AFTER_END","write after end",Error);er("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError);var gn={AbortError:vRA,aggregateTwoErrors:e5(mRA),hideStackFrames:e5,codes:bD};const{ArrayIsArray:zK,ArrayPrototypeIncludes:UZ,ArrayPrototypeJoin:_Z,ArrayPrototypeMap:MRA,NumberIsInteger:$K,NumberIsNaN:bRA,NumberMAX_SAFE_INTEGER:SRA,NumberMIN_SAFE_INTEGER:NRA,NumberParseInt:kRA,ObjectPrototypeHasOwnProperty:RRA,RegExpPrototypeExec:qZ,String:KRA,StringPrototypeToUpperCase:GRA,StringPrototypeTrim:FRA}=Xt,{hideStackFrames:Qo,codes:{ERR_SOCKET_BAD_PORT:xRA,ERR_INVALID_ARG_TYPE:pr,ERR_INVALID_ARG_VALUE:ul,ERR_OUT_OF_RANGE:Jf,ERR_UNKNOWN_SIGNAL:t5}}=gn,{normalizeEncoding:LRA}=Gr,{isAsyncFunction:URA,isArrayBufferView:_RA}=Gr.types,i5={};function qRA(e){return e===(e|0)}function HRA(e){return e===e>>>0}const YRA=/^[0-7]+$/,JRA="must be a 32-bit unsigned integer or an octal string";function TRA(e,A,t){if(typeof e>"u"&&(e=t),typeof e=="string"){if(qZ(YRA,e)===null)throw new ul(A,e,JRA);e=kRA(e,8)}return HZ(e,A),e}const PRA=Qo((e,A,t=NRA,i=SRA)=>{if(typeof e!="number")throw new pr(A,"number",e);if(!$K(e))throw new Jf(A,"an integer",e);if(ei)throw new Jf(A,`>= ${t} && <= ${i}`,e)}),ORA=Qo((e,A,t=-2147483648,i=2147483647)=>{if(typeof e!="number")throw new pr(A,"number",e);if(!$K(e))throw new Jf(A,"an integer",e);if(ei)throw new Jf(A,`>= ${t} && <= ${i}`,e)}),HZ=Qo((e,A,t=!1)=>{if(typeof e!="number")throw new pr(A,"number",e);if(!$K(e))throw new Jf(A,"an integer",e);const i=t?1:0,o=4294967295;if(eo)throw new Jf(A,`>= ${i} && <= ${o}`,e)});function XK(e,A){if(typeof e!="string")throw new pr(A,"string",e)}function jRA(e,A,t=void 0,i){if(typeof e!="number")throw new pr(A,"number",e);if(t!=null&&ei||(t!=null||i!=null)&&bRA(e))throw new Jf(A,`${t!=null?`>= ${t}`:""}${t!=null&&i!=null?" && ":""}${i!=null?`<= ${i}`:""}`,e)}const WRA=Qo((e,A,t)=>{if(!UZ(t,e)){const o="must be one of: "+_Z(MRA(t,r=>typeof r=="string"?`'${r}'`:KRA(r)),", ");throw new ul(A,e,o)}});function YZ(e,A){if(typeof e!="boolean")throw new pr(A,"boolean",e)}function v2(e,A,t){return e==null||!RRA(e,A)?t:e[A]}const VRA=Qo((e,A,t=null)=>{const i=v2(t,"allowArray",!1),o=v2(t,"allowFunction",!1);if(!v2(t,"nullable",!1)&&e===null||!i&&zK(e)||typeof e!="object"&&(!o||typeof e!="function"))throw new pr(A,"Object",e)}),ZRA=Qo((e,A)=>{if(e!=null&&typeof e!="object"&&typeof e!="function")throw new pr(A,"a dictionary",e)}),SD=Qo((e,A,t=0)=>{if(!zK(e))throw new pr(A,"Array",e);if(e.length{if(!_RA(e))throw new pr(A,["Buffer","TypedArray","DataView"],e)});function tKA(e,A){const t=LRA(A),i=e.length;if(t==="hex"&&i%2!==0)throw new ul("encoding",A,`is invalid for data of length ${i}`)}function iKA(e,A="Port",t=!0){if(typeof e!="number"&&typeof e!="string"||typeof e=="string"&&FRA(e).length===0||+e!==+e>>>0||e>65535||e===0&&!t)throw new xRA(A,e,t);return e|0}const JZ=Qo((e,A)=>{if(e!==void 0&&(e===null||typeof e!="object"||!("aborted"in e)))throw new pr(A,"AbortSignal",e)}),rKA=Qo((e,A)=>{if(typeof e!="function")throw new pr(A,"Function",e)}),nKA=Qo((e,A)=>{if(typeof e!="function"||URA(e))throw new pr(A,"Function",e)}),oKA=Qo((e,A)=>{if(e!==void 0)throw new pr(A,"undefined",e)});function sKA(e,A,t){if(!UZ(t,e))throw new pr(A,`('${_Z(t,"|")}')`,e)}const aKA=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function r5(e,A){if(typeof e>"u"||!qZ(aKA,e))throw new ul(A,e,'must be an array or string of format "; rel=preload; as=style"')}function gKA(e){if(typeof e=="string")return r5(e,"hints"),e;if(zK(e)){const A=e.length;let t="";if(A===0)return t;for(let i=0;i; rel=preload; as=style"')}var UB={isInt32:qRA,isUint32:HRA,parseFileMode:TRA,validateArray:SD,validateStringArray:zRA,validateBooleanArray:$RA,validateAbortSignalArray:XRA,validateBoolean:YZ,validateBuffer:eKA,validateDictionary:ZRA,validateEncoding:tKA,validateFunction:rKA,validateInt32:ORA,validateInteger:PRA,validateNumber:jRA,validateObject:VRA,validateOneOf:WRA,validatePlainFunction:nKA,validatePort:iKA,validateSignalName:AKA,validateString:XK,validateUint32:HZ,validateUndefined:oKA,validateUnion:sKA,validateAbortSignal:JZ,validateLinkHeaderValue:gKA},AG={exports:{}};const{SymbolAsyncIterator:n5,SymbolIterator:o5,SymbolFor:eh}=Xt,TZ=eh("nodejs.stream.destroyed"),PZ=eh("nodejs.stream.errored"),YN=eh("nodejs.stream.readable"),JN=eh("nodejs.stream.writable"),OZ=eh("nodejs.stream.disturbed"),IKA=eh("nodejs.webstream.isClosedPromise"),fKA=eh("nodejs.webstream.controllerErrorFunction");function ND(e,A=!1){var t;return!!(e&&typeof e.pipe=="function"&&typeof e.on=="function"&&(!A||typeof e.pause=="function"&&typeof e.resume=="function")&&(!e._writableState||((t=e._readableState)===null||t===void 0?void 0:t.readable)!==!1)&&(!e._writableState||e._readableState))}function kD(e){var A;return!!(e&&typeof e.write=="function"&&typeof e.on=="function"&&(!e._readableState||((A=e._writableState)===null||A===void 0?void 0:A.writable)!==!1))}function hKA(e){return!!(e&&typeof e.pipe=="function"&&e._readableState&&typeof e.on=="function"&&typeof e.write=="function")}function zs(e){return e&&(e._readableState||e._writableState||typeof e.write=="function"&&typeof e.on=="function"||typeof e.pipe=="function"&&typeof e.on=="function")}function jZ(e){return!!(e&&!zs(e)&&typeof e.pipeThrough=="function"&&typeof e.getReader=="function"&&typeof e.cancel=="function")}function WZ(e){return!!(e&&!zs(e)&&typeof e.getWriter=="function"&&typeof e.abort=="function")}function VZ(e){return!!(e&&!zs(e)&&typeof e.readable=="object"&&typeof e.writable=="object")}function cKA(e){return jZ(e)||WZ(e)||VZ(e)}function uKA(e,A){return e==null?!1:A===!0?typeof e[n5]=="function":A===!1?typeof e[o5]=="function":typeof e[n5]=="function"||typeof e[o5]=="function"}function RD(e){if(!zs(e))return null;const A=e._writableState,t=e._readableState,i=A||t;return!!(e.destroyed||e[TZ]||i!=null&&i.destroyed)}function ZZ(e){if(!kD(e))return null;if(e.writableEnded===!0)return!0;const A=e._writableState;return A!=null&&A.errored?!1:typeof(A==null?void 0:A.ended)!="boolean"?null:A.ended}function lKA(e,A){if(!kD(e))return null;if(e.writableFinished===!0)return!0;const t=e._writableState;return t!=null&&t.errored?!1:typeof(t==null?void 0:t.finished)!="boolean"?null:!!(t.finished||A===!1&&t.ended===!0&&t.length===0)}function CKA(e){if(!ND(e))return null;if(e.readableEnded===!0)return!0;const A=e._readableState;return!A||A.errored?!1:typeof(A==null?void 0:A.ended)!="boolean"?null:A.ended}function zZ(e,A){if(!ND(e))return null;const t=e._readableState;return t!=null&&t.errored?!1:typeof(t==null?void 0:t.endEmitted)!="boolean"?null:!!(t.endEmitted||A===!1&&t.ended===!0&&t.length===0)}function $Z(e){return e&&e[YN]!=null?e[YN]:typeof(e==null?void 0:e.readable)!="boolean"?null:RD(e)?!1:ND(e)&&e.readable&&!zZ(e)}function XZ(e){return e&&e[JN]!=null?e[JN]:typeof(e==null?void 0:e.writable)!="boolean"?null:RD(e)?!1:kD(e)&&e.writable&&!ZZ(e)}function BKA(e,A){return zs(e)?RD(e)?!0:!((A==null?void 0:A.readable)!==!1&&$Z(e)||(A==null?void 0:A.writable)!==!1&&XZ(e)):null}function dKA(e){var A,t;return zs(e)?e.writableErrored?e.writableErrored:(A=(t=e._writableState)===null||t===void 0?void 0:t.errored)!==null&&A!==void 0?A:null:null}function EKA(e){var A,t;return zs(e)?e.readableErrored?e.readableErrored:(A=(t=e._readableState)===null||t===void 0?void 0:t.errored)!==null&&A!==void 0?A:null:null}function QKA(e){if(!zs(e))return null;if(typeof e.closed=="boolean")return e.closed;const A=e._writableState,t=e._readableState;return typeof(A==null?void 0:A.closed)=="boolean"||typeof(t==null?void 0:t.closed)=="boolean"?(A==null?void 0:A.closed)||(t==null?void 0:t.closed):typeof e._closed=="boolean"&&Az(e)?e._closed:null}function Az(e){return typeof e._closed=="boolean"&&typeof e._defaultKeepAlive=="boolean"&&typeof e._removedConnection=="boolean"&&typeof e._removedContLen=="boolean"}function ez(e){return typeof e._sent100=="boolean"&&Az(e)}function pKA(e){var A;return typeof e._consuming=="boolean"&&typeof e._dumped=="boolean"&&((A=e.req)===null||A===void 0?void 0:A.upgradeOrConnect)===void 0}function yKA(e){if(!zs(e))return null;const A=e._writableState,t=e._readableState,i=A||t;return!i&&ez(e)||!!(i&&i.autoDestroy&&i.emitClose&&i.closed===!1)}function wKA(e){var A;return!!(e&&((A=e[OZ])!==null&&A!==void 0?A:e.readableDidRead||e.readableAborted))}function DKA(e){var A,t,i,o,r,f,h,d,p,C;return!!(e&&((A=(t=(i=(o=(r=(f=e[PZ])!==null&&f!==void 0?f:e.readableErrored)!==null&&r!==void 0?r:e.writableErrored)!==null&&o!==void 0?o:(h=e._readableState)===null||h===void 0?void 0:h.errorEmitted)!==null&&i!==void 0?i:(d=e._writableState)===null||d===void 0?void 0:d.errorEmitted)!==null&&t!==void 0?t:(p=e._readableState)===null||p===void 0?void 0:p.errored)!==null&&A!==void 0?A:!((C=e._writableState)===null||C===void 0)&&C.errored))}var ig={isDestroyed:RD,kIsDestroyed:TZ,isDisturbed:wKA,kIsDisturbed:OZ,isErrored:DKA,kIsErrored:PZ,isReadable:$Z,kIsReadable:YN,kIsClosedPromise:IKA,kControllerErrorFunction:fKA,kIsWritable:JN,isClosed:QKA,isDuplexNodeStream:hKA,isFinished:BKA,isIterable:uKA,isReadableNodeStream:ND,isReadableStream:jZ,isReadableEnded:CKA,isReadableFinished:zZ,isReadableErrored:EKA,isNodeStream:zs,isWebStream:cKA,isWritable:XZ,isWritableNodeStream:kD,isWritableStream:WZ,isWritableEnded:ZZ,isWritableFinished:lKA,isWritableErrored:dKA,isServerRequest:pKA,isServerResponse:ez,willEmitClose:yKA,isTransformStream:VZ};const pg=nI,{AbortError:tz,codes:mKA}=gn,{ERR_INVALID_ARG_TYPE:vKA,ERR_STREAM_PREMATURE_CLOSE:s5}=mKA,{kEmptyObject:TN,once:PN}=Gr,{validateAbortSignal:MKA,validateFunction:bKA,validateObject:SKA,validateBoolean:NKA}=UB,{Promise:kKA,PromisePrototypeThen:RKA,SymbolDispose:iz}=Xt,{isClosed:KKA,isReadable:a5,isReadableNodeStream:M2,isReadableStream:GKA,isReadableFinished:g5,isReadableErrored:I5,isWritable:f5,isWritableNodeStream:h5,isWritableStream:FKA,isWritableFinished:c5,isWritableErrored:u5,isNodeStream:xKA,willEmitClose:LKA,kIsClosedPromise:UKA}=ig;let Sc;function _KA(e){return e.setHeader&&typeof e.abort=="function"}const ON=()=>{};function rz(e,A,t){var i,o;if(arguments.length===2?(t=A,A=TN):A==null?A=TN:SKA(A,"options"),bKA(t,"callback"),MKA(A.signal,"options.signal"),t=PN(t),GKA(e)||FKA(e))return qKA(e,A,t);if(!xKA(e))throw new vKA("stream",["ReadableStream","WritableStream","Stream"],e);const r=(i=A.readable)!==null&&i!==void 0?i:M2(e),f=(o=A.writable)!==null&&o!==void 0?o:h5(e),h=e._writableState,d=e._readableState,p=()=>{e.writable||w()};let C=LKA(e)&&M2(e)===r&&h5(e)===f,y=c5(e,!1);const w=()=>{y=!0,e.destroyed&&(C=!1),!(C&&(!e.readable||r))&&(!r||D)&&t.call(e)};let D=g5(e,!1);const v=()=>{D=!0,e.destroyed&&(C=!1),!(C&&(!e.writable||f))&&(!f||y)&&t.call(e)},M=P=>{t.call(e,P)};let R=KKA(e);const b=()=>{R=!0;const P=u5(e)||I5(e);if(P&&typeof P!="boolean")return t.call(e,P);if(r&&!D&&M2(e,!0)&&!g5(e,!1))return t.call(e,new s5);if(f&&!y&&!c5(e,!1))return t.call(e,new s5);t.call(e)},S=()=>{R=!0;const P=u5(e)||I5(e);if(P&&typeof P!="boolean")return t.call(e,P);t.call(e)},G=()=>{e.req.on("finish",w)};_KA(e)?(e.on("complete",w),C||e.on("abort",b),e.req?G():e.on("request",G)):f&&!h&&(e.on("end",p),e.on("close",p)),!C&&typeof e.aborted=="boolean"&&e.on("aborted",b),e.on("end",v),e.on("finish",w),A.error!==!1&&e.on("error",M),e.on("close",b),R?pg.nextTick(b):h!=null&&h.errorEmitted||d!=null&&d.errorEmitted?C||pg.nextTick(S):(!r&&(!C||a5(e))&&(y||f5(e)===!1)||!f&&(!C||f5(e))&&(D||a5(e)===!1)||d&&e.req&&e.aborted)&&pg.nextTick(S);const U=()=>{t=ON,e.removeListener("aborted",b),e.removeListener("complete",w),e.removeListener("abort",b),e.removeListener("request",G),e.req&&e.req.removeListener("finish",w),e.removeListener("end",p),e.removeListener("close",p),e.removeListener("finish",w),e.removeListener("end",v),e.removeListener("error",M),e.removeListener("close",b)};if(A.signal&&!R){const P=()=>{const z=t;U(),z.call(e,new tz(void 0,{cause:A.signal.reason}))};if(A.signal.aborted)pg.nextTick(P);else{Sc=Sc||Gr.addAbortListener;const z=Sc(A.signal,P),oA=t;t=PN((...J)=>{z[iz](),oA.apply(e,J)})}}return U}function qKA(e,A,t){let i=!1,o=ON;if(A.signal)if(o=()=>{i=!0,t.call(e,new tz(void 0,{cause:A.signal.reason}))},A.signal.aborted)pg.nextTick(o);else{Sc=Sc||Gr.addAbortListener;const f=Sc(A.signal,o),h=t;t=PN((...d)=>{f[iz](),h.apply(e,d)})}const r=(...f)=>{i||pg.nextTick(()=>t.apply(e,f))};return RKA(e[UKA].promise,r,r),ON}function HKA(e,A){var t;let i=!1;return A===null&&(A=TN),(t=A)!==null&&t!==void 0&&t.cleanup&&(NKA(A.cleanup,"cleanup"),i=A.cleanup),new kKA((o,r)=>{const f=rz(e,A,h=>{i&&f(),h?r(h):o()})})}AG.exports=rz;AG.exports.finished=HKA;var BI=AG.exports;const Ns=nI,{aggregateTwoErrors:YKA,codes:{ERR_MULTIPLE_CALLBACK:JKA},AbortError:TKA}=gn,{Symbol:nz}=Xt,{kIsDestroyed:PKA,isDestroyed:OKA,isFinished:jKA,isServerRequest:WKA}=ig,oz=nz("kDestroy"),jN=nz("kConstruct");function sz(e,A,t){e&&(e.stack,A&&!A.errored&&(A.errored=e),t&&!t.errored&&(t.errored=e))}function VKA(e,A){const t=this._readableState,i=this._writableState,o=i||t;return i!=null&&i.destroyed||t!=null&&t.destroyed?(typeof A=="function"&&A(),this):(sz(e,i,t),i&&(i.destroyed=!0),t&&(t.destroyed=!0),o.constructed?l5(this,e,A):this.once(oz,function(r){l5(this,YKA(r,e),A)}),this)}function l5(e,A,t){let i=!1;function o(r){if(i)return;i=!0;const f=e._readableState,h=e._writableState;sz(r,h,f),h&&(h.closed=!0),f&&(f.closed=!0),typeof t=="function"&&t(r),r?Ns.nextTick(ZKA,e,r):Ns.nextTick(az,e)}try{e._destroy(A||null,o)}catch(r){o(r)}}function ZKA(e,A){WN(e,A),az(e)}function az(e){const A=e._readableState,t=e._writableState;t&&(t.closeEmitted=!0),A&&(A.closeEmitted=!0),(t!=null&&t.emitClose||A!=null&&A.emitClose)&&e.emit("close")}function WN(e,A){const t=e._readableState,i=e._writableState;i!=null&&i.errorEmitted||t!=null&&t.errorEmitted||(i&&(i.errorEmitted=!0),t&&(t.errorEmitted=!0),e.emit("error",A))}function zKA(){const e=this._readableState,A=this._writableState;e&&(e.constructed=!0,e.closed=!1,e.closeEmitted=!1,e.destroyed=!1,e.errored=null,e.errorEmitted=!1,e.reading=!1,e.ended=e.readable===!1,e.endEmitted=e.readable===!1),A&&(A.constructed=!0,A.destroyed=!1,A.closed=!1,A.closeEmitted=!1,A.errored=null,A.errorEmitted=!1,A.finalCalled=!1,A.prefinished=!1,A.ended=A.writable===!1,A.ending=A.writable===!1,A.finished=A.writable===!1)}function VN(e,A,t){const i=e._readableState,o=e._writableState;if(o!=null&&o.destroyed||i!=null&&i.destroyed)return this;i!=null&&i.autoDestroy||o!=null&&o.autoDestroy?e.destroy(A):A&&(A.stack,o&&!o.errored&&(o.errored=A),i&&!i.errored&&(i.errored=A),t?Ns.nextTick(WN,e,A):WN(e,A))}function $KA(e,A){if(typeof e._construct!="function")return;const t=e._readableState,i=e._writableState;t&&(t.constructed=!1),i&&(i.constructed=!1),e.once(jN,A),!(e.listenerCount(jN)>1)&&Ns.nextTick(XKA,e)}function XKA(e){let A=!1;function t(i){if(A){VN(e,i??new JKA);return}A=!0;const o=e._readableState,r=e._writableState,f=r||o;o&&(o.constructed=!0),r&&(r.constructed=!0),f.destroyed?e.emit(oz,i):i?VN(e,i,!0):Ns.nextTick(AGA,e)}try{e._construct(i=>{Ns.nextTick(t,i)})}catch(i){Ns.nextTick(t,i)}}function AGA(e){e.emit(jN)}function C5(e){return(e==null?void 0:e.setHeader)&&typeof e.abort=="function"}function gz(e){e.emit("close")}function eGA(e,A){e.emit("error",A),Ns.nextTick(gz,e)}function tGA(e,A){!e||OKA(e)||(!A&&!jKA(e)&&(A=new TKA),WKA(e)?(e.socket=null,e.destroy(A)):C5(e)?e.abort():C5(e.req)?e.req.abort():typeof e.destroy=="function"?e.destroy(A):typeof e.close=="function"?e.close():A?Ns.nextTick(eGA,e,A):Ns.nextTick(gz,e),e.destroyed||(e[PKA]=!0))}var ll={construct:$KA,destroyer:tGA,destroy:VKA,undestroy:zKA,errorOrDestroy:VN};const{ArrayIsArray:iGA,ObjectSetPrototypeOf:Iz}=Xt,{EventEmitter:KD}=Zo;function GD(e){KD.call(this,e)}Iz(GD.prototype,KD.prototype);Iz(GD,KD);GD.prototype.pipe=function(e,A){const t=this;function i(C){e.writable&&e.write(C)===!1&&t.pause&&t.pause()}t.on("data",i);function o(){t.readable&&t.resume&&t.resume()}e.on("drain",o),!e._isStdio&&(!A||A.end!==!1)&&(t.on("end",f),t.on("close",h));let r=!1;function f(){r||(r=!0,e.end())}function h(){r||(r=!0,typeof e.destroy=="function"&&e.destroy())}function d(C){p(),KD.listenerCount(this,"error")===0&&this.emit("error",C)}ZN(t,"error",d),ZN(e,"error",d);function p(){t.removeListener("data",i),e.removeListener("drain",o),t.removeListener("end",f),t.removeListener("close",h),t.removeListener("error",d),e.removeListener("error",d),t.removeListener("end",p),t.removeListener("close",p),e.removeListener("close",p)}return t.on("end",p),t.on("close",p),e.on("close",p),e.emit("pipe",t),e};function ZN(e,A,t){if(typeof e.prependListener=="function")return e.prependListener(A,t);!e._events||!e._events[A]?e.on(A,t):iGA(e._events[A])?e._events[A].unshift(t):e._events[A]=[t,e._events[A]]}var eG={Stream:GD,prependListener:ZN},fz={exports:{}};(function(e){const{SymbolDispose:A}=Xt,{AbortError:t,codes:i}=gn,{isNodeStream:o,isWebStream:r,kControllerErrorFunction:f}=ig,h=BI,{ERR_INVALID_ARG_TYPE:d}=i;let p;const C=(y,w)=>{if(typeof y!="object"||!("aborted"in y))throw new d(w,"AbortSignal",y)};e.exports.addAbortSignal=function(w,D){if(C(w,"signal"),!o(D)&&!r(D))throw new d("stream",["ReadableStream","WritableStream","Stream"],D);return e.exports.addAbortSignalNoValidate(w,D)},e.exports.addAbortSignalNoValidate=function(y,w){if(typeof y!="object"||!("aborted"in y))return w;const D=o(w)?()=>{w.destroy(new t(void 0,{cause:y.reason}))}:()=>{w[f](new t(void 0,{cause:y.reason}))};if(y.aborted)D();else{p=p||Gr.addAbortListener;const v=p(y,D);h(w,v[A])}return w}})(fz);var FD=fz.exports;const{StringPrototypeSlice:B5,SymbolIterator:rGA,TypedArrayPrototypeSet:zd,Uint8Array:nGA}=Xt,{Buffer:b2}=jt,{inspect:oGA}=Gr;var sGA=class{constructor(){this.head=null,this.tail=null,this.length=0}push(A){const t={data:A,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}unshift(A){const t={data:A,next:this.head};this.length===0&&(this.tail=t),this.head=t,++this.length}shift(){if(this.length===0)return;const A=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,A}clear(){this.head=this.tail=null,this.length=0}join(A){if(this.length===0)return"";let t=this.head,i=""+t.data;for(;(t=t.next)!==null;)i+=A+t.data;return i}concat(A){if(this.length===0)return b2.alloc(0);const t=b2.allocUnsafe(A>>>0);let i=this.head,o=0;for(;i;)zd(t,i.data,o),o+=i.data.length,i=i.next;return t}consume(A,t){const i=this.head.data;if(Ar.length)t+=r,A-=r.length;else{A===r.length?(t+=r,++o,i.next?this.head=i.next:this.head=this.tail=null):(t+=B5(r,0,A),this.head=i,i.data=B5(r,A));break}++o}while((i=i.next)!==null);return this.length-=o,t}_getBuffer(A){const t=b2.allocUnsafe(A),i=A;let o=this.head,r=0;do{const f=o.data;if(A>f.length)zd(t,f,i-A),A-=f.length;else{A===f.length?(zd(t,f,i-A),++r,o.next?this.head=o.next:this.head=this.tail=null):(zd(t,new nGA(f.buffer,f.byteOffset,A),i-A),this.head=o,o.data=f.slice(A));break}++r}while((o=o.next)!==null);return this.length-=r,t}[Symbol.for("nodejs.util.inspect.custom")](A,t){return oGA(this,{...t,depth:0,customInspect:!1})}};const{MathFloor:aGA,NumberIsInteger:gGA}=Xt,{validateInteger:IGA}=UB,{ERR_INVALID_ARG_VALUE:fGA}=gn.codes;let hz=16*1024,cz=16;function hGA(e,A,t){return e.highWaterMark!=null?e.highWaterMark:A?e[t]:null}function uz(e){return e?cz:hz}function cGA(e,A){IGA(A,"value",0),e?cz=A:hz=A}function uGA(e,A,t,i){const o=hGA(A,i,t);if(o!=null){if(!gGA(o)||o<0){const r=i?`options.${t}`:"options.highWaterMark";throw new fGA(r,o)}return aGA(o)}return uz(e.objectMode)}var xD={getHighWaterMark:uGA,getDefaultHighWaterMark:uz,setDefaultHighWaterMark:cGA};const d5=nI,{PromisePrototypeThen:lGA,SymbolAsyncIterator:E5,SymbolIterator:Q5}=Xt,{Buffer:CGA}=jt,{ERR_INVALID_ARG_TYPE:BGA,ERR_STREAM_NULL_VALUES:dGA}=gn.codes;function EGA(e,A,t){let i;if(typeof A=="string"||A instanceof CGA)return new e({objectMode:!0,...t,read(){this.push(A),this.push(null)}});let o;if(A&&A[E5])o=!0,i=A[E5]();else if(A&&A[Q5])o=!1,i=A[Q5]();else throw new BGA("iterable",["Iterable"],A);const r=new e({objectMode:!0,highWaterMark:1,...t});let f=!1;r._read=function(){f||(f=!0,d())},r._destroy=function(p,C){lGA(h(p),()=>d5.nextTick(C,p),y=>d5.nextTick(C,y||p))};async function h(p){const C=p!=null,y=typeof i.throw=="function";if(C&&y){const{value:w,done:D}=await i.throw(p);if(await w,D)return}if(typeof i.return=="function"){const{value:w}=await i.return();await w}}async function d(){for(;;){try{const{value:p,done:C}=o?await i.next():i.next();if(C)r.push(null);else{const y=p&&typeof p.then=="function"?await p:p;if(y===null)throw f=!1,new dGA;if(r.push(y))continue;f=!1}}catch(p){r.destroy(p)}break}}return r}var lz=EGA,S2,p5;function LD(){if(p5)return S2;p5=1;const e=nI,{ArrayPrototypeIndexOf:A,NumberIsInteger:t,NumberIsNaN:i,NumberParseInt:o,ObjectDefineProperties:r,ObjectKeys:f,ObjectSetPrototypeOf:h,Promise:d,SafeSet:p,SymbolAsyncDispose:C,SymbolAsyncIterator:y,Symbol:w}=Xt;S2=IA,IA.ReadableState=gA;const{EventEmitter:D}=Zo,{Stream:v,prependListener:M}=eG,{Buffer:R}=jt,{addAbortSignal:b}=FD,S=BI;let G=Gr.debuglog("stream",uA=>{G=uA});const U=sGA,P=ll,{getHighWaterMark:z,getDefaultHighWaterMark:oA}=xD,{aggregateTwoErrors:J,codes:{ERR_INVALID_ARG_TYPE:q,ERR_METHOD_NOT_IMPLEMENTED:X,ERR_OUT_OF_RANGE:Q,ERR_STREAM_PUSH_AFTER_EOF:n,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:a},AbortError:g}=gn,{validateObject:I}=UB,c=w("kPaused"),{StringDecoder:B}=nC,E=lz;h(IA.prototype,v.prototype),h(IA,v);const u=()=>{},{errorOrDestroy:s}=P,l=1,m=2,N=4,L=8,O=16,H=32,K=64,Y=128,W=256,$=512,V=1024,_=2048,j=4096,sA=8192,iA=16384,aA=32768,lA=65536,nA=1<<17,tA=1<<18;function xA(uA){return{enumerable:!1,get(){return(this.state&uA)!==0},set(AA){AA?this.state|=uA:this.state&=~uA}}}r(gA.prototype,{objectMode:xA(l),ended:xA(m),endEmitted:xA(N),reading:xA(L),constructed:xA(O),sync:xA(H),needReadable:xA(K),emittedReadable:xA(Y),readableListening:xA(W),resumeScheduled:xA($),errorEmitted:xA(V),emitClose:xA(_),autoDestroy:xA(j),destroyed:xA(sA),closed:xA(iA),closeEmitted:xA(aA),multiAwaitDrain:xA(lA),readingMore:xA(nA),dataEmitted:xA(tA)});function gA(uA,AA,CA){typeof CA!="boolean"&&(CA=AA instanceof Pa()),this.state=_|j|O|H,uA&&uA.objectMode&&(this.state|=l),CA&&uA&&uA.readableObjectMode&&(this.state|=l),this.highWaterMark=uA?z(this,uA,"readableHighWaterMark",CA):oA(!1),this.buffer=new U,this.length=0,this.pipes=[],this.flowing=null,this[c]=null,uA&&uA.emitClose===!1&&(this.state&=~_),uA&&uA.autoDestroy===!1&&(this.state&=~j),this.errored=null,this.defaultEncoding=uA&&uA.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,uA&&uA.encoding&&(this.decoder=new B(uA.encoding),this.encoding=uA.encoding)}function IA(uA){if(!(this instanceof IA))return new IA(uA);const AA=this instanceof Pa();this._readableState=new gA(uA,this,AA),uA&&(typeof uA.read=="function"&&(this._read=uA.read),typeof uA.destroy=="function"&&(this._destroy=uA.destroy),typeof uA.construct=="function"&&(this._construct=uA.construct),uA.signal&&!AA&&b(uA.signal,this)),v.call(this,uA),P.construct(this,()=>{this._readableState.needReadable&&Z(this,this._readableState)})}IA.prototype.destroy=P.destroy,IA.prototype._undestroy=P.undestroy,IA.prototype._destroy=function(uA,AA){AA(uA)},IA.prototype[D.captureRejectionSymbol]=function(uA){this.destroy(uA)},IA.prototype[C]=function(){let uA;return this.destroyed||(uA=this.readableEnded?null:new g,this.destroy(uA)),new d((AA,CA)=>S(this,qA=>qA&&qA!==uA?CA(qA):AA(null)))},IA.prototype.push=function(uA,AA){return UA(this,uA,AA,!1)},IA.prototype.unshift=function(uA,AA){return UA(this,uA,AA,!0)};function UA(uA,AA,CA,qA){G("readableAddChunk",AA);const BA=uA._readableState;let bA;if(BA.state&l||(typeof AA=="string"?(CA=CA||BA.defaultEncoding,BA.encoding!==CA&&(qA&&BA.encoding?AA=R.from(AA,CA).toString(BA.encoding):(AA=R.from(AA,CA),CA=""))):AA instanceof R?CA="":v._isUint8Array(AA)?(AA=v._uint8ArrayToBuffer(AA),CA=""):AA!=null&&(bA=new q("chunk",["string","Buffer","Uint8Array"],AA))),bA)s(uA,bA);else if(AA===null)BA.state&=~L,k(uA,BA);else if(BA.state&l||AA&&AA.length>0)if(qA)if(BA.state&N)s(uA,new a);else{if(BA.destroyed||BA.errored)return!1;rA(uA,BA,AA,!0)}else if(BA.ended)s(uA,new n);else{if(BA.destroyed||BA.errored)return!1;BA.state&=~L,BA.decoder&&!CA?(AA=BA.decoder.write(AA),BA.objectMode||AA.length!==0?rA(uA,BA,AA,!1):Z(uA,BA)):rA(uA,BA,AA,!1)}else qA||(BA.state&=~L,Z(uA,BA));return!BA.ended&&(BA.length0?(AA.state&lA?AA.awaitDrainWriters.clear():AA.awaitDrainWriters=null,AA.dataEmitted=!0,uA.emit("data",CA)):(AA.length+=AA.objectMode?1:CA.length,qA?AA.buffer.unshift(CA):AA.buffer.push(CA),AA.state&K&&F(uA)),Z(uA,AA)}IA.prototype.isPaused=function(){const uA=this._readableState;return uA[c]===!0||uA.flowing===!1},IA.prototype.setEncoding=function(uA){const AA=new B(uA);this._readableState.decoder=AA,this._readableState.encoding=this._readableState.decoder.encoding;const CA=this._readableState.buffer;let qA="";for(const BA of CA)qA+=AA.write(BA);return CA.clear(),qA!==""&&CA.push(qA),this._readableState.length=qA.length,this};const hA=1073741824;function OA(uA){if(uA>hA)throw new Q("size","<= 1GiB",uA);return uA--,uA|=uA>>>1,uA|=uA>>>2,uA|=uA>>>4,uA|=uA>>>8,uA|=uA>>>16,uA++,uA}function x(uA,AA){return uA<=0||AA.length===0&&AA.ended?0:AA.state&l?1:i(uA)?AA.flowing&&AA.length?AA.buffer.first().length:AA.length:uA<=AA.length?uA:AA.ended?AA.length:0}IA.prototype.read=function(uA){G("read",uA),uA===void 0?uA=NaN:t(uA)||(uA=o(uA,10));const AA=this._readableState,CA=uA;if(uA>AA.highWaterMark&&(AA.highWaterMark=OA(uA)),uA!==0&&(AA.state&=~Y),uA===0&&AA.needReadable&&((AA.highWaterMark!==0?AA.length>=AA.highWaterMark:AA.length>0)||AA.ended))return G("read: emitReadable",AA.length,AA.ended),AA.length===0&&AA.ended?yA(this):F(this),null;if(uA=x(uA,AA),uA===0&&AA.ended)return AA.length===0&&yA(this),null;let qA=(AA.state&K)!==0;if(G("need readable",qA),(AA.length===0||AA.length-uA0?BA=Ie(uA,AA):BA=null,BA===null?(AA.needReadable=AA.length<=AA.highWaterMark,uA=0):(AA.length-=uA,AA.multiAwaitDrain?AA.awaitDrainWriters.clear():AA.awaitDrainWriters=null),AA.length===0&&(AA.ended||(AA.needReadable=!0),CA!==uA&&AA.ended&&yA(this)),BA!==null&&!AA.errorEmitted&&!AA.closeEmitted&&(AA.dataEmitted=!0,this.emit("data",BA)),BA};function k(uA,AA){if(G("onEofChunk"),!AA.ended){if(AA.decoder){const CA=AA.decoder.end();CA&&CA.length&&(AA.buffer.push(CA),AA.length+=AA.objectMode?1:CA.length)}AA.ended=!0,AA.sync?F(uA):(AA.needReadable=!1,AA.emittedReadable=!0,T(uA))}}function F(uA){const AA=uA._readableState;G("emitReadable",AA.needReadable,AA.emittedReadable),AA.needReadable=!1,AA.emittedReadable||(G("emitReadable",AA.flowing),AA.emittedReadable=!0,e.nextTick(T,uA))}function T(uA){const AA=uA._readableState;G("emitReadable_",AA.destroyed,AA.length,AA.ended),!AA.destroyed&&!AA.errored&&(AA.length||AA.ended)&&(uA.emit("readable"),AA.emittedReadable=!1),AA.needReadable=!AA.flowing&&!AA.ended&&AA.length<=AA.highWaterMark,YA(uA)}function Z(uA,AA){!AA.readingMore&&AA.constructed&&(AA.readingMore=!0,e.nextTick(fA,uA,AA))}function fA(uA,AA){for(;!AA.reading&&!AA.ended&&(AA.length1&&qA.pipes.includes(uA)&&(G("false write response, pause",qA.awaitDrainWriters.size),qA.awaitDrainWriters.add(uA)),CA.pause()),SA||(SA=eA(CA,uA),uA.on("drain",SA))}CA.on("data",ge);function ge(Qe){G("ondata");const Ce=uA.write(Qe);G("dest.write",Ce),Ce===!1&&KA()}function DA(Qe){if(G("onerror",Qe),XA(),uA.removeListener("error",DA),uA.listenerCount("error")===0){const Ce=uA._writableState||uA._readableState;Ce&&!Ce.errorEmitted?s(uA,Qe):uA.emit("error",Qe)}}M(uA,"error",DA);function kA(){uA.removeListener("finish",ee),XA()}uA.once("close",kA);function ee(){G("onfinish"),uA.removeListener("close",kA),XA()}uA.once("finish",ee);function XA(){G("unpipe"),CA.unpipe(uA)}return uA.emit("pipe",CA),uA.writableNeedDrain===!0?KA():qA.flowing||(G("pipe resume"),CA.resume()),uA};function eA(uA,AA){return function(){const qA=uA._readableState;qA.awaitDrainWriters===AA?(G("pipeOnDrain",1),qA.awaitDrainWriters=null):qA.multiAwaitDrain&&(G("pipeOnDrain",qA.awaitDrainWriters.size),qA.awaitDrainWriters.delete(AA)),(!qA.awaitDrainWriters||qA.awaitDrainWriters.size===0)&&uA.listenerCount("data")&&uA.resume()}}IA.prototype.unpipe=function(uA){const AA=this._readableState,CA={hasUnpiped:!1};if(AA.pipes.length===0)return this;if(!uA){const BA=AA.pipes;AA.pipes=[],this.pause();for(let bA=0;bA0,qA.flowing!==!1&&this.resume()):uA==="readable"&&!qA.endEmitted&&!qA.readableListening&&(qA.readableListening=qA.needReadable=!0,qA.flowing=!1,qA.emittedReadable=!1,G("on readable",qA.length,qA.reading),qA.length?F(this):qA.reading||e.nextTick(PA,this)),CA},IA.prototype.addListener=IA.prototype.on,IA.prototype.removeListener=function(uA,AA){const CA=v.prototype.removeListener.call(this,uA,AA);return uA==="readable"&&e.nextTick(dA,this),CA},IA.prototype.off=IA.prototype.removeListener,IA.prototype.removeAllListeners=function(uA){const AA=v.prototype.removeAllListeners.apply(this,arguments);return(uA==="readable"||uA===void 0)&&e.nextTick(dA,this),AA};function dA(uA){const AA=uA._readableState;AA.readableListening=uA.listenerCount("readable")>0,AA.resumeScheduled&&AA[c]===!1?AA.flowing=!0:uA.listenerCount("data")>0?uA.resume():AA.readableListening||(AA.flowing=null)}function PA(uA){G("readable nexttick read 0"),uA.read(0)}IA.prototype.resume=function(){const uA=this._readableState;return uA.flowing||(G("resume"),uA.flowing=!uA.readableListening,cA(this,uA)),uA[c]=!1,this};function cA(uA,AA){AA.resumeScheduled||(AA.resumeScheduled=!0,e.nextTick(QA,uA,AA))}function QA(uA,AA){G("resume",AA.reading),AA.reading||uA.read(0),AA.resumeScheduled=!1,uA.emit("resume"),YA(uA),AA.flowing&&!AA.reading&&uA.read(0)}IA.prototype.pause=function(){return G("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(G("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[c]=!0,this};function YA(uA){const AA=uA._readableState;for(G("flow",AA.flowing);AA.flowing&&uA.read()!==null;);}IA.prototype.wrap=function(uA){let AA=!1;uA.on("data",qA=>{!this.push(qA)&&uA.pause&&(AA=!0,uA.pause())}),uA.on("end",()=>{this.push(null)}),uA.on("error",qA=>{s(this,qA)}),uA.on("close",()=>{this.destroy()}),uA.on("destroy",()=>{this.destroy()}),this._read=()=>{AA&&uA.resume&&(AA=!1,uA.resume())};const CA=f(uA);for(let qA=1;qA{BA=oe?J(BA,oe):null,CA(),CA=u});try{for(;;){const oe=uA.destroyed?null:uA.read();if(oe!==null)yield oe;else{if(BA)throw BA;if(BA===null)return;await new d(qA)}}}catch(oe){throw BA=J(BA,oe),BA}finally{(BA||(AA==null?void 0:AA.destroyOnReturn)!==!1)&&(BA===void 0||uA._readableState.autoDestroy)?P.destroyer(uA,null):(uA.off("readable",qA),bA())}}r(IA.prototype,{readable:{__proto__:null,get(){const uA=this._readableState;return!!uA&&uA.readable!==!1&&!uA.destroyed&&!uA.errorEmitted&&!uA.endEmitted},set(uA){this._readableState&&(this._readableState.readable=!!uA)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(uA){this._readableState&&(this._readableState.flowing=uA)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(uA){this._readableState&&(this._readableState.destroyed=uA)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),r(gA.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[c]!==!1},set(uA){this[c]=!!uA}}}),IA._fromList=Ie;function Ie(uA,AA){if(AA.length===0)return null;let CA;return AA.objectMode?CA=AA.buffer.shift():!uA||uA>=AA.length?(AA.decoder?CA=AA.buffer.join(""):AA.buffer.length===1?CA=AA.buffer.first():CA=AA.buffer.concat(AA.length),AA.buffer.clear()):CA=AA.buffer.consume(uA,AA.decoder),CA}function yA(uA){const AA=uA._readableState;G("endReadable",AA.endEmitted),AA.endEmitted||(AA.ended=!0,e.nextTick(NA,AA,uA))}function NA(uA,AA){if(G("endReadableNT",uA.endEmitted,uA.length),!uA.errored&&!uA.closeEmitted&&!uA.endEmitted&&uA.length===0){if(uA.endEmitted=!0,AA.emit("end"),AA.writable&&AA.allowHalfOpen===!1)e.nextTick(ne,AA);else if(uA.autoDestroy){const CA=AA._writableState;(!CA||CA.autoDestroy&&(CA.finished||CA.writable===!1))&&AA.destroy()}}}function ne(uA){uA.writable&&!uA.writableEnded&&!uA.destroyed&&uA.end()}IA.from=function(uA,AA){return E(IA,uA,AA)};let pA;function MA(){return pA===void 0&&(pA={}),pA}return IA.fromWeb=function(uA,AA){return MA().newStreamReadableFromReadableStream(uA,AA)},IA.toWeb=function(uA,AA){return MA().newReadableStreamFromStreamReadable(uA,AA)},IA.wrap=function(uA,AA){var CA,qA;return new IA({objectMode:(CA=(qA=uA.readableObjectMode)!==null&&qA!==void 0?qA:uA.objectMode)!==null&&CA!==void 0?CA:!0,...AA,destroy(BA,bA){P.destroyer(uA,BA),bA(BA)}}).wrap(uA)},S2}var N2,y5;function tG(){if(y5)return N2;y5=1;const e=nI,{ArrayPrototypeSlice:A,Error:t,FunctionPrototypeSymbolHasInstance:i,ObjectDefineProperty:o,ObjectDefineProperties:r,ObjectSetPrototypeOf:f,StringPrototypeToLowerCase:h,Symbol:d,SymbolHasInstance:p}=Xt;N2=I,I.WritableState=a;const{EventEmitter:C}=Zo,y=eG.Stream,{Buffer:w}=jt,D=ll,{addAbortSignal:v}=FD,{getHighWaterMark:M,getDefaultHighWaterMark:R}=xD,{ERR_INVALID_ARG_TYPE:b,ERR_METHOD_NOT_IMPLEMENTED:S,ERR_MULTIPLE_CALLBACK:G,ERR_STREAM_CANNOT_PIPE:U,ERR_STREAM_DESTROYED:P,ERR_STREAM_ALREADY_FINISHED:z,ERR_STREAM_NULL_VALUES:oA,ERR_STREAM_WRITE_AFTER_END:J,ERR_UNKNOWN_ENCODING:q}=gn.codes,{errorOrDestroy:X}=D;f(I.prototype,y.prototype),f(I,y);function Q(){}const n=d("kOnFinished");function a(j,sA,iA){typeof iA!="boolean"&&(iA=sA instanceof Pa()),this.objectMode=!!(j&&j.objectMode),iA&&(this.objectMode=this.objectMode||!!(j&&j.writableObjectMode)),this.highWaterMark=j?M(this,j,"writableHighWaterMark",iA):R(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const aA=!!(j&&j.decodeStrings===!1);this.decodeStrings=!aA,this.defaultEncoding=j&&j.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=s.bind(void 0,sA),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,g(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!j||j.emitClose!==!1,this.autoDestroy=!j||j.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[n]=[]}function g(j){j.buffered=[],j.bufferedIndex=0,j.allBuffers=!0,j.allNoop=!0}a.prototype.getBuffer=function(){return A(this.buffered,this.bufferedIndex)},o(a.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function I(j){const sA=this instanceof Pa();if(!sA&&!i(I,this))return new I(j);this._writableState=new a(j,this,sA),j&&(typeof j.write=="function"&&(this._write=j.write),typeof j.writev=="function"&&(this._writev=j.writev),typeof j.destroy=="function"&&(this._destroy=j.destroy),typeof j.final=="function"&&(this._final=j.final),typeof j.construct=="function"&&(this._construct=j.construct),j.signal&&v(j.signal,this)),y.call(this,j),D.construct(this,()=>{const iA=this._writableState;iA.writing||L(this,iA),Y(this,iA)})}o(I,p,{__proto__:null,value:function(j){return i(this,j)?!0:this!==I?!1:j&&j._writableState instanceof a}}),I.prototype.pipe=function(){X(this,new U)};function c(j,sA,iA,aA){const lA=j._writableState;if(typeof iA=="function")aA=iA,iA=lA.defaultEncoding;else{if(!iA)iA=lA.defaultEncoding;else if(iA!=="buffer"&&!w.isEncoding(iA))throw new q(iA);typeof aA!="function"&&(aA=Q)}if(sA===null)throw new oA;if(!lA.objectMode)if(typeof sA=="string")lA.decodeStrings!==!1&&(sA=w.from(sA,iA),iA="buffer");else if(sA instanceof w)iA="buffer";else if(y._isUint8Array(sA))sA=y._uint8ArrayToBuffer(sA),iA="buffer";else throw new b("chunk",["string","Buffer","Uint8Array"],sA);let nA;return lA.ending?nA=new J:lA.destroyed&&(nA=new P("write")),nA?(e.nextTick(aA,nA),X(j,nA,!0),nA):(lA.pendingcb++,B(j,lA,sA,iA,aA))}I.prototype.write=function(j,sA,iA){return c(this,j,sA,iA)===!0},I.prototype.cork=function(){this._writableState.corked++},I.prototype.uncork=function(){const j=this._writableState;j.corked&&(j.corked--,j.writing||L(this,j))},I.prototype.setDefaultEncoding=function(sA){if(typeof sA=="string"&&(sA=h(sA)),!w.isEncoding(sA))throw new q(sA);return this._writableState.defaultEncoding=sA,this};function B(j,sA,iA,aA,lA){const nA=sA.objectMode?1:iA.length;sA.length+=nA;const tA=sA.lengthiA.bufferedIndex&&L(j,iA),aA?iA.afterWriteTickInfo!==null&&iA.afterWriteTickInfo.cb===lA?iA.afterWriteTickInfo.count++:(iA.afterWriteTickInfo={count:1,cb:lA,stream:j,state:iA},e.nextTick(l,iA.afterWriteTickInfo)):m(j,iA,1,lA))}function l({stream:j,state:sA,count:iA,cb:aA}){return sA.afterWriteTickInfo=null,m(j,sA,iA,aA)}function m(j,sA,iA,aA){for(!sA.ending&&!j.destroyed&&sA.length===0&&sA.needDrain&&(sA.needDrain=!1,j.emit("drain"));iA-- >0;)sA.pendingcb--,aA();sA.destroyed&&N(sA),Y(j,sA)}function N(j){if(j.writing)return;for(let lA=j.bufferedIndex;lA1&&j._writev){sA.pendingcb-=nA-1;const xA=sA.allNoop?Q:IA=>{for(let UA=tA;UA256?(iA.splice(0,tA),sA.bufferedIndex=0):sA.bufferedIndex=tA}sA.bufferProcessing=!1}I.prototype._write=function(j,sA,iA){if(this._writev)this._writev([{chunk:j,encoding:sA}],iA);else throw new S("_write()")},I.prototype._writev=null,I.prototype.end=function(j,sA,iA){const aA=this._writableState;typeof j=="function"?(iA=j,j=null,sA=null):typeof sA=="function"&&(iA=sA,sA=null);let lA;if(j!=null){const nA=c(this,j,sA);nA instanceof t&&(lA=nA)}return aA.corked&&(aA.corked=1,this.uncork()),lA||(!aA.errored&&!aA.ending?(aA.ending=!0,Y(this,aA,!0),aA.ended=!0):aA.finished?lA=new z("end"):aA.destroyed&&(lA=new P("end"))),typeof iA=="function"&&(lA||aA.finished?e.nextTick(iA,lA):aA[n].push(iA)),this};function O(j){return j.ending&&!j.destroyed&&j.constructed&&j.length===0&&!j.errored&&j.buffered.length===0&&!j.finished&&!j.writing&&!j.errorEmitted&&!j.closeEmitted}function H(j,sA){let iA=!1;function aA(lA){if(iA){X(j,lA??G());return}if(iA=!0,sA.pendingcb--,lA){const nA=sA[n].splice(0);for(let tA=0;tA{O(lA)?W(aA,lA):lA.pendingcb--},j,sA)):O(sA)&&(sA.pendingcb++,W(j,sA))))}function W(j,sA){sA.pendingcb--,sA.finished=!0;const iA=sA[n].splice(0);for(let aA=0;aA{if(N!=null)throw new v("nully","body",N)},N=>{M(l,N)});return l=new q({objectMode:!0,readable:!1,write:B,final(N){E(async()=>{try{await m,e.nextTick(N,null)}catch(L){e.nextTick(N,L)}})},destroy:u})}throw new v("Iterable, AsyncIterable or AsyncFunction",g,c)}if(z(a))return n(a.arrayBuffer());if(o(a))return U(q,a,{objectMode:!0,writable:!1});if(p(a==null?void 0:a.readable)&&C(a==null?void 0:a.writable))return q.fromWeb(a);if(typeof(a==null?void 0:a.writable)=="object"||typeof(a==null?void 0:a.readable)=="object"){const c=a!=null&&a.readable?f(a==null?void 0:a.readable)?a==null?void 0:a.readable:n(a.readable):void 0,B=a!=null&&a.writable?h(a==null?void 0:a.writable)?a==null?void 0:a.writable:n(a.writable):void 0;return Q({readable:c,writable:B})}const I=a==null?void 0:a.then;if(typeof I=="function"){let c;return J(I,a,B=>{B!=null&&c.push(B),c.push(null)},B=>{M(c,B)}),c=new q({objectMode:!0,writable:!1,read(){}})}throw new D(g,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],a)};function X(n){let{promise:a,resolve:g}=G();const I=new oA,c=I.signal;return{value:n(async function*(){for(;;){const E=a;a=null;const{chunk:u,done:s,cb:l}=await E;if(e.nextTick(l),s)return;if(c.aborted)throw new w(void 0,{cause:c.reason});({promise:a,resolve:g}=G()),yield u}}(),{signal:c}),write(E,u,s){const l=g;g=null,l({chunk:E,done:!1,cb:s})},final(E){const u=g;g=null,u({done:!0,cb:E})},destroy(E,u){I.abort(),u(E)}}}function Q(n){const a=n.readable&&typeof n.readable.read!="function"?b.wrap(n.readable):n.readable,g=n.writable;let I=!!t(a),c=!!i(g),B,E,u,s,l;function m(N){const L=s;s=null,L?L(N):N&&l.destroy(N)}return l=new q({readableObjectMode:!!(a!=null&&a.readableObjectMode),writableObjectMode:!!(g!=null&&g.writableObjectMode),readable:I,writable:c}),c&&(y(g,N=>{c=!1,N&&M(a,N),m(N)}),l._write=function(N,L,O){g.write(N,L)?O():B=O},l._final=function(N){g.end(),E=N},g.on("drain",function(){if(B){const N=B;B=null,N()}}),g.on("finish",function(){if(E){const N=E;E=null,N()}})),I&&(y(a,N=>{I=!1,N&&M(a,N),m(N)}),a.on("readable",function(){if(u){const N=u;u=null,N()}}),a.on("end",function(){l.push(null)}),l._read=function(){for(;;){const N=a.read();if(N===null){u=l._read;return}if(!l.push(N))return}}),l._destroy=function(N,L){!N&&s!==null&&(N=new w),u=null,B=null,E=null,s===null?L(N):(s=L,M(g,N),M(a,N))},l}return k2}var R2,D5;function Pa(){if(D5)return R2;D5=1;const{ObjectDefineProperties:e,ObjectGetOwnPropertyDescriptor:A,ObjectKeys:t,ObjectSetPrototypeOf:i}=Xt;R2=f;const o=LD(),r=tG();i(f.prototype,o.prototype),i(f,o);{const C=t(r.prototype);for(let y=0;y{if(A){e?e(A):this.destroy(A);return}t!=null&&this.push(t),this.push(null),e&&e()}):(this.push(null),e&&e())}function DGA(){this._final!==zN&&zN.call(this)}Oa.prototype._final=zN;Oa.prototype._transform=function(e,A,t){throw new yGA("_transform()")};Oa.prototype._write=function(e,A,t){const i=this._readableState,o=this._writableState,r=i.length;this._transform(e,A,(f,h)=>{if(f){t(f);return}h!=null&&this.push(h),o.ended||r===i.length||i.length{i=!0});const o=sy(e,{readable:A,writable:t},r=>{i=!r});return{destroy:r=>{i||(i=!0,NGA.destroyer(e,r||new KGA("pipe")))},cleanup:o}}function HGA(e){return xGA(e[e.length-1],"streams[stream.length - 1]"),e.pop()}function _2(e){if(xI(e))return e;if(hQ(e))return YGA(e);throw new $N("val",["Readable","Iterable","AsyncIterable"],e)}async function*YGA(e){L2||(L2=LD()),yield*L2.prototype[MGA].call(e)}async function $d(e,A,t,{end:i}){let o,r=null;const f=p=>{if(p&&(o=p),r){const C=r;r=null,C()}},h=()=>new vGA((p,C)=>{o?C(o):r=()=>{o?C(o):p()}});A.on("drain",f);const d=sy(A,{readable:!1},f);try{A.writableNeedDrain&&await h();for await(const p of e)A.write(p)||await h();i&&(A.end(),await h()),t()}catch(p){t(o!==p?kGA(o,p):p)}finally{d(),A.off("drain",f)}}async function q2(e,A,t,{end:i}){Fh(A)&&(A=A.writable);const o=A.getWriter();try{for await(const r of e)await o.ready,o.write(r).catch(()=>{});await o.ready,i&&await o.close(),t()}catch(r){try{await o.abort(r),t(r)}catch(f){t(f)}}}function JGA(...e){return Qz(e,SGA(HGA(e)))}function Qz(e,A,t){if(e.length===1&&mGA(e[0])&&(e=e[0]),e.length<2)throw new RGA("streams");const i=new qGA,o=i.signal,r=t==null?void 0:t.signal,f=[];LGA(r,"options.signal");function h(){v(new FGA)}U2=U2||Gr.addAbortListener;let d;r&&(d=U2(r,h));let p,C;const y=[];let w=0;function D(S){v(S,--w===0)}function v(S,G){var U;if(S&&(!p||p.code==="ERR_STREAM_PREMATURE_CLOSE")&&(p=S),!(!p&&!G)){for(;y.length;)y.shift()(p);(U=d)===null||U===void 0||U[bGA](),i.abort(),G&&(p||f.forEach(P=>P()),l0.nextTick(A,p,C))}}let M;for(let S=0;S0,z=U||(t==null?void 0:t.end)!==!1,oA=S===e.length-1;if(v5(G)){let J=function(q){q&&q.name!=="AbortError"&&q.code!=="ERR_STREAM_PREMATURE_CLOSE"&&D(q)};if(z){const{destroy:q,cleanup:X}=M5(G,U,P);y.push(q),G2(G)&&oA&&f.push(X)}G.on("error",J),G2(G)&&oA&&f.push(()=>{G.removeListener("error",J)})}if(S===0)if(typeof G=="function"){if(M=G({signal:o}),!xI(M))throw new K2("Iterable, AsyncIterable or Stream","source",M)}else xI(G)||hQ(G)||Fh(G)?M=G:M=m5.from(G);else if(typeof G=="function"){if(Fh(M)){var R;M=_2((R=M)===null||R===void 0?void 0:R.readable)}else M=_2(M);if(M=G(M,{signal:o}),U){if(!xI(M,!0))throw new K2("AsyncIterable",`transform[${S-1}]`,M)}else{var b;x2||(x2=Ez);const J=new x2({objectMode:!0}),q=(b=M)===null||b===void 0?void 0:b.then;if(typeof q=="function")w++,q.call(M,n=>{C=n,n!=null&&J.write(n),z&&J.end(),l0.nextTick(D)},n=>{J.destroy(n),l0.nextTick(D,n)});else if(xI(M,!0))w++,$d(M,J,D,{end:z});else if(F2(M)||Fh(M)){const n=M.readable||M;w++,$d(n,J,D,{end:z})}else throw new K2("AsyncIterable or Promise","destination",M);M=J;const{destroy:X,cleanup:Q}=M5(M,!1,!0);y.push(X),oA&&f.push(Q)}}else if(v5(G)){if(hQ(M)){w+=2;const J=TGA(M,G,D,{end:z});G2(G)&&oA&&f.push(J)}else if(Fh(M)||F2(M)){const J=M.readable||M;w++,$d(J,G,D,{end:z})}else if(xI(M))w++,$d(M,G,D,{end:z});else throw new $N("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],M);M=G}else if(UGA(G)){if(hQ(M))w++,q2(_2(M),G,D,{end:z});else if(F2(M)||xI(M))w++,q2(M,G,D,{end:z});else if(Fh(M))w++,q2(M.readable,G,D,{end:z});else throw new $N("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],M);M=G}else M=m5.from(G)}return(o!=null&&o.aborted||r!=null&&r.aborted)&&l0.nextTick(h),M}function TGA(e,A,t,{end:i}){let o=!1;if(A.on("close",()=>{o||t(new GGA)}),e.pipe(A,{end:!1}),i){let r=function(){o=!0,A.end()};_GA(e)?l0.nextTick(r):e.once("end",r)}else t();return sy(e,{readable:!0,writable:!1},r=>{const f=e._readableState;r&&r.code==="ERR_STREAM_PREMATURE_CLOSE"&&f&&f.ended&&!f.errored&&!f.errorEmitted?e.once("end",t).once("error",t):t(r)}),sy(A,{readable:!1,writable:!0},t)}var nG={pipelineImpl:Qz,pipeline:JGA};const{pipeline:PGA}=nG,Xd=Pa(),{destroyer:OGA}=ll,{isNodeStream:AE,isReadable:b5,isWritable:S5,isWebStream:H2,isTransformStream:bI,isWritableStream:N5,isReadableStream:k5}=ig,{AbortError:jGA,codes:{ERR_INVALID_ARG_VALUE:R5,ERR_MISSING_ARGS:WGA}}=gn,VGA=BI;var pz=function(...A){if(A.length===0)throw new WGA("streams");if(A.length===1)return Xd.from(A[0]);const t=[...A];if(typeof A[0]=="function"&&(A[0]=Xd.from(A[0])),typeof A[A.length-1]=="function"){const D=A.length-1;A[D]=Xd.from(A[D])}for(let D=0;D0&&!(S5(A[D])||N5(A[D])||bI(A[D])))throw new R5(`streams[${D}]`,t[D],"must be writable")}let i,o,r,f,h;function d(D){const v=f;f=null,v?v(D):D?h.destroy(D):!w&&!y&&h.destroy()}const p=A[0],C=PGA(A,d),y=!!(S5(p)||N5(p)||bI(p)),w=!!(b5(C)||k5(C)||bI(C));if(h=new Xd({writableObjectMode:!!(p!=null&&p.writableObjectMode),readableObjectMode:!!(C!=null&&C.readableObjectMode),writable:y,readable:w}),y){if(AE(p))h._write=function(v,M,R){p.write(v,M)?R():i=R},h._final=function(v){p.end(),o=v},p.on("drain",function(){if(i){const v=i;i=null,v()}});else if(H2(p)){const M=(bI(p)?p.writable:p).getWriter();h._write=async function(R,b,S){try{await M.ready,M.write(R).catch(()=>{}),S()}catch(G){S(G)}},h._final=async function(R){try{await M.ready,M.close().catch(()=>{}),o=R}catch(b){R(b)}}}const D=bI(C)?C.readable:C;VGA(D,()=>{if(o){const v=o;o=null,v()}})}if(w){if(AE(C))C.on("readable",function(){if(r){const D=r;r=null,D()}}),C.on("end",function(){h.push(null)}),h._read=function(){for(;;){const D=C.read();if(D===null){r=h._read;return}if(!h.push(D))return}};else if(H2(C)){const v=(bI(C)?C.readable:C).getReader();h._read=async function(){for(;;)try{const{value:M,done:R}=await v.read();if(!h.push(M))return;if(R){h.push(null);return}}catch{return}}}}return h._destroy=function(D,v){!D&&f!==null&&(D=new jGA),r=null,i=null,o=null,f===null?v(D):(f=v,AE(C)&&OGA(C,D))},h};const ZGA=globalThis.AbortController||OC().AbortController,{codes:{ERR_INVALID_ARG_VALUE:zGA,ERR_INVALID_ARG_TYPE:_B,ERR_MISSING_ARGS:$GA,ERR_OUT_OF_RANGE:XGA},AbortError:Ps}=gn,{validateAbortSignal:th,validateInteger:K5,validateObject:ih}=UB,AFA=Xt.Symbol("kWeak"),eFA=Xt.Symbol("kResistStopPropagation"),{finished:tFA}=BI,iFA=pz,{addAbortSignalNoValidate:rFA}=FD,{isWritable:nFA,isNodeStream:oFA}=ig,{deprecate:sFA}=Gr,{ArrayPrototypePush:aFA,Boolean:gFA,MathFloor:G5,Number:IFA,NumberIsNaN:fFA,Promise:F5,PromiseReject:x5,PromiseResolve:hFA,PromisePrototypeThen:L5,Symbol:yz}=Xt,ay=yz("kEmpty"),U5=yz("kEof");function cFA(e,A){if(A!=null&&ih(A,"options"),(A==null?void 0:A.signal)!=null&&th(A.signal,"options.signal"),oFA(e)&&!nFA(e))throw new zGA("stream",e,"must be writable");const t=iFA(this,e);return A!=null&&A.signal&&rFA(A.signal,t),t}function UD(e,A){if(typeof e!="function")throw new _B("fn",["Function","AsyncFunction"],e);A!=null&&ih(A,"options"),(A==null?void 0:A.signal)!=null&&th(A.signal,"options.signal");let t=1;(A==null?void 0:A.concurrency)!=null&&(t=G5(A.concurrency));let i=t-1;return(A==null?void 0:A.highWaterMark)!=null&&(i=G5(A.highWaterMark)),K5(t,"options.concurrency",1),K5(i,"options.highWaterMark",0),i+=t,(async function*(){const r=Gr.AbortSignalAny([A==null?void 0:A.signal].filter(gFA)),f=this,h=[],d={signal:r};let p,C,y=!1,w=0;function D(){y=!0,v()}function v(){w-=1,M()}function M(){C&&!y&&w=i||w>=t)&&await new F5(S=>{C=S})}h.push(U5)}catch(b){const S=x5(b);L5(S,v,D),h.push(S)}finally{y=!0,p&&(p(),p=null)}}R();try{for(;;){for(;h.length>0;){const b=await h[0];if(b===U5)return;if(r.aborted)throw new Ps;b!==ay&&(yield b),h.shift(),M()}await new F5(b=>{p=b})}}finally{y=!0,C&&(C(),C=null)}}).call(this)}function uFA(e=void 0){return e!=null&&ih(e,"options"),(e==null?void 0:e.signal)!=null&&th(e.signal,"options.signal"),(async function*(){let t=0;for await(const o of this){var i;if(e!=null&&(i=e.signal)!==null&&i!==void 0&&i.aborted)throw new Ps({cause:e.signal.reason});yield[t++,o]}}).call(this)}async function wz(e,A=void 0){for await(const t of oG.call(this,e,A))return!0;return!1}async function lFA(e,A=void 0){if(typeof e!="function")throw new _B("fn",["Function","AsyncFunction"],e);return!await wz.call(this,async(...t)=>!await e(...t),A)}async function CFA(e,A){for await(const t of oG.call(this,e,A))return t}async function BFA(e,A){if(typeof e!="function")throw new _B("fn",["Function","AsyncFunction"],e);async function t(i,o){return await e(i,o),ay}for await(const i of UD.call(this,t,A));}function oG(e,A){if(typeof e!="function")throw new _B("fn",["Function","AsyncFunction"],e);async function t(i,o){return await e(i,o)?i:ay}return UD.call(this,t,A)}class dFA extends $GA{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function EFA(e,A,t){var i;if(typeof e!="function")throw new _B("reducer",["Function","AsyncFunction"],e);t!=null&&ih(t,"options"),(t==null?void 0:t.signal)!=null&&th(t.signal,"options.signal");let o=arguments.length>1;if(t!=null&&(i=t.signal)!==null&&i!==void 0&&i.aborted){const p=new Ps(void 0,{cause:t.signal.reason});throw this.once("error",()=>{}),await tFA(this.destroy(p)),p}const r=new ZGA,f=r.signal;if(t!=null&&t.signal){const p={once:!0,[AFA]:this,[eFA]:!0};t.signal.addEventListener("abort",()=>r.abort(),p)}let h=!1;try{for await(const p of this){var d;if(h=!0,t!=null&&(d=t.signal)!==null&&d!==void 0&&d.aborted)throw new Ps;o?A=await e(A,p,{signal:f}):(A=p,o=!0)}if(!h&&!o)throw new dFA}finally{r.abort()}return A}async function QFA(e){e!=null&&ih(e,"options"),(e==null?void 0:e.signal)!=null&&th(e.signal,"options.signal");const A=[];for await(const i of this){var t;if(e!=null&&(t=e.signal)!==null&&t!==void 0&&t.aborted)throw new Ps(void 0,{cause:e.signal.reason});aFA(A,i)}return A}function pFA(e,A){const t=UD.call(this,e,A);return(async function*(){for await(const o of t)yield*o}).call(this)}function Dz(e){if(e=IFA(e),fFA(e))return 0;if(e<0)throw new XGA("number",">= 0",e);return e}function yFA(e,A=void 0){return A!=null&&ih(A,"options"),(A==null?void 0:A.signal)!=null&&th(A.signal,"options.signal"),e=Dz(e),(async function*(){var i;if(A!=null&&(i=A.signal)!==null&&i!==void 0&&i.aborted)throw new Ps;for await(const r of this){var o;if(A!=null&&(o=A.signal)!==null&&o!==void 0&&o.aborted)throw new Ps;e--<=0&&(yield r)}}).call(this)}function wFA(e,A=void 0){return A!=null&&ih(A,"options"),(A==null?void 0:A.signal)!=null&&th(A.signal,"options.signal"),e=Dz(e),(async function*(){var i;if(A!=null&&(i=A.signal)!==null&&i!==void 0&&i.aborted)throw new Ps;for await(const r of this){var o;if(A!=null&&(o=A.signal)!==null&&o!==void 0&&o.aborted)throw new Ps;if(e-- >0&&(yield r),e<=0)return}}).call(this)}ZK.streamReturningOperators={asIndexedPairs:sFA(uFA,"readable.asIndexedPairs will be removed in a future version."),drop:yFA,filter:oG,flatMap:pFA,map:UD,take:wFA,compose:cFA};ZK.promiseReturningOperators={every:lFA,forEach:BFA,reduce:EFA,toArray:QFA,some:wz,find:CFA};var Y2,_5;function mz(){if(_5)return Y2;_5=1;const{ArrayPrototypePop:e,Promise:A}=Xt,{isIterable:t,isNodeStream:i,isWebStream:o}=ig,{pipelineImpl:r}=nG,{finished:f}=BI;vz();function h(...d){return new A((p,C)=>{let y,w;const D=d[d.length-1];if(D&&typeof D=="object"&&!i(D)&&!t(D)&&!o(D)){const v=e(d);y=v.signal,w=v.end}r(d,(v,M)=>{v?C(v):p(M)},{signal:y,end:w})})}return Y2={finished:f,pipeline:h},Y2}var q5;function vz(){if(q5)return m2.exports;q5=1;const{Buffer:e}=jt,{ObjectDefineProperty:A,ObjectKeys:t,ReflectApply:i}=Xt,{promisify:{custom:o}}=Gr,{streamReturningOperators:r,promiseReturningOperators:f}=ZK,{codes:{ERR_ILLEGAL_CONSTRUCTOR:h}}=gn,d=pz,{setDefaultHighWaterMark:p,getDefaultHighWaterMark:C}=xD,{pipeline:y}=nG,{destroyer:w}=ll,D=BI,v=mz(),M=ig,R=m2.exports=eG.Stream;R.isDestroyed=M.isDestroyed,R.isDisturbed=M.isDisturbed,R.isErrored=M.isErrored,R.isReadable=M.isReadable,R.isWritable=M.isWritable,R.Readable=LD();for(const S of t(r)){let U=function(...P){if(new.target)throw h();return R.Readable.from(i(G,this,P))};const G=r[S];A(U,"name",{__proto__:null,value:G.name}),A(U,"length",{__proto__:null,value:G.length}),A(R.Readable.prototype,S,{__proto__:null,value:U,enumerable:!1,configurable:!0,writable:!0})}for(const S of t(f)){let U=function(...P){if(new.target)throw h();return i(G,this,P)};const G=f[S];A(U,"name",{__proto__:null,value:G.name}),A(U,"length",{__proto__:null,value:G.length}),A(R.Readable.prototype,S,{__proto__:null,value:U,enumerable:!1,configurable:!0,writable:!0})}R.Writable=tG(),R.Duplex=Pa(),R.Transform=Bz,R.PassThrough=Ez,R.pipeline=y;const{addAbortSignal:b}=FD;return R.addAbortSignal=b,R.finished=D,R.destroy=w,R.compose=d,R.setDefaultHighWaterMark=p,R.getDefaultHighWaterMark=C,A(R,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return v}}),A(y,o,{__proto__:null,enumerable:!0,get(){return v.pipeline}}),A(D,o,{__proto__:null,enumerable:!0,get(){return v.finished}}),R.Stream=R,R._isUint8Array=function(G){return G instanceof Uint8Array},R._uint8ArrayToBuffer=function(G){return e.from(G.buffer,G.byteOffset,G.byteLength)},m2.exports}(function(e){const A=vz(),t=mz(),i=A.Readable.destroy;e.exports=A.Readable,e.exports._uint8ArrayToBuffer=A._uint8ArrayToBuffer,e.exports._isUint8Array=A._isUint8Array,e.exports.isDisturbed=A.isDisturbed,e.exports.isErrored=A.isErrored,e.exports.isReadable=A.isReadable,e.exports.Readable=A.Readable,e.exports.Writable=A.Writable,e.exports.Duplex=A.Duplex,e.exports.Transform=A.Transform,e.exports.PassThrough=A.PassThrough,e.exports.addAbortSignal=A.addAbortSignal,e.exports.finished=A.finished,e.exports.destroy=A.destroy,e.exports.destroy=i,e.exports.pipeline=A.pipeline,e.exports.compose=A.compose,Object.defineProperty(A,"promises",{configurable:!0,enumerable:!0,get(){return t}}),e.exports.Stream=A.Stream,e.exports.default=e.exports})(CRA);function H5(e,A,t){try{Reflect.apply(e,A,t)}catch(i){setTimeout(()=>{throw i})}}function DFA(e){const A=e.length,t=new Array(A);for(let i=0;i0&&([f]=t),f instanceof Error)throw f;const h=new Error(`Unhandled error.${f?` (${f.message})`:""}`);throw h.context=f,h}const r=o[A];if(r===void 0)return!1;if(typeof r=="function")H5(r,this,t);else{const f=r.length,h=DFA(r);for(let d=0;d0}function gy(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function MFA(e){if(typeof e!="object"||e===null)return!1;try{let A=e;for(;Object.getPrototypeOf(A)!==null;)A=Object.getPrototypeOf(A);return Object.getPrototypeOf(e)===A}catch{return!1}}function bFA(e){return e>=-32099&&e<=-32e3}function bz(e){const A=e;return!(!A||!Mz(A.code)||!T5(A.message)||A.stack&&!T5(A.stack))}function aG(e,A=mFA){if(Mz(e)){const t=e.toString();if(Object.hasOwn(Y5,t))return Y5[t].message;if(bFA(e))return vFA}return A}const SFA={code:J5,message:aG(J5)};function XN(e){try{JSON.parse(JSON.stringify(e,(A,t)=>{if(A==="__proto__"||A==="constructor")throw new Error("Not valid json");if(typeof t=="function"||typeof t=="symbol")throw new Error("Not valid json");return t}),(A,t)=>{if(!(A==="__proto__"||A==="constructor"))return t})}catch{return!1}return!0}function P5(e){return Object.getOwnPropertyNames(e).reduce((A,t)=>{const i=e[t];return XN(i)&&(A[t]=i),A},{})}function Sz(e){return Array.isArray(e)?e.map(A=>XN(A)?A:gy(A)?P5(A):null):gy(e)?P5(e):XN(e)?e:null}function NFA(e,A){if(e&&typeof e=="object"&&"serialize"in e&&typeof e.serialize=="function")return e.serialize();if(bz(e))return e;const t=Sz(e);return ZA(ZA({},A),{},{data:{cause:t}})}function Ak(e,{fallbackError:A=SFA,shouldIncludeStack:t=!0}={}){if(!bz(A))throw new Error("Must provide fallback error with integer number code and string message.");const i=NFA(e,A);return t||delete i.stack,i}function kFA(e){return gy(e)&&Object.hasOwn(e,"cause")&&gy(e.cause)}function RFA(e){return Number.isInteger(e)&&e>=1e3&&e<=4999}function KFA(e,A){if(A!=="[Circular]")return A}class Nz extends Error{constructor(A,t,i){if(!Number.isInteger(A))throw new Error('"code" must be an integer.');if(!t||typeof t!="string")throw new Error('"message" must be a non-empty string.');kFA(i)?(super(t,{cause:i.cause}),FA(this,"cause",void 0),FA(this,"code",void 0),FA(this,"data",void 0),Object.hasOwn(this,"cause")||Object.assign(this,{cause:i.cause})):(super(t),FA(this,"cause",void 0),FA(this,"code",void 0),FA(this,"data",void 0)),i!==void 0&&(this.data=i),this.code=A,this.cause=i==null?void 0:i.cause}serialize(){const A={code:this.code,message:this.message};return this.data!==void 0&&(A.data=this.data,MFA(this.data)&&(A.data.cause=Sz(this.data.cause))),this.stack&&(A.stack=this.stack),A}toString(){return yi(this.serialize(),{replacer:KFA,space:2})}}class kz extends Nz{constructor(A,t,i){if(!RFA(A))throw new Error('"code" must be an integer such that: 1000 <= code <= 4999');super(A,t,i)}}function Rz(e){if(e){if(typeof e=="string")return[e];if(typeof e=="object"&&!Array.isArray(e)){const{message:A,data:t}=e;if(A&&typeof A!="string")throw new Error("Must specify string message.");return[A??void 0,t]}}return[]}function qn(e,A){const[t,i]=Rz(A);return new Nz(e,t??aG(e),i)}function $l(e,A){const[t,i]=Rz(A);return new kz(e,t??aG(e),i)}const mt={parse:e=>qn(ji.rpc.parse,e),invalidRequest:e=>qn(ji.rpc.invalidRequest,e),invalidParams:e=>qn(ji.rpc.invalidParams,e),methodNotFound:e=>qn(ji.rpc.methodNotFound,e),internal:e=>qn(ji.rpc.internal,e),server:e=>{if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Ethereum RPC Server errors must provide single object argument.");const{code:A}=e;if(!Number.isInteger(A)||A>-32005||A<-32099)throw new Error('"code" must be an integer such that: -32099 <= code <= -32005');return qn(A,e)},invalidInput:e=>qn(ji.rpc.invalidInput,e),resourceNotFound:e=>qn(ji.rpc.resourceNotFound,e),resourceUnavailable:e=>qn(ji.rpc.resourceUnavailable,e),transactionRejected:e=>qn(ji.rpc.transactionRejected,e),methodNotSupported:e=>qn(ji.rpc.methodNotSupported,e),limitExceeded:e=>qn(ji.rpc.limitExceeded,e)},Ro={userRejectedRequest:e=>$l(ji.provider.userRejectedRequest,e),unauthorized:e=>$l(ji.provider.unauthorized,e),unsupportedMethod:e=>$l(ji.provider.unsupportedMethod,e),disconnected:e=>$l(ji.provider.disconnected,e),chainDisconnected:e=>$l(ji.provider.chainDisconnected,e),custom:e=>{if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Ethereum Provider custom errors must provide single object argument.");const{code:A,message:t,data:i}=e;if(!t||typeof t!="string")throw new Error('"message" must be a nonempty string');return new kz(A,t,i)}};function _D(e){return(A,t,i,o)=>{const r=e[A.method];return r===void 0?i():typeof r=="function"?r(A,t,i,o):(t.result=r,o())}}function Lr(e){return async(A,t,i,o)=>{let r;const f=new Promise(C=>{r=C});let h=null,d=!1;const p=async()=>{d=!0,i(C=>{h=C,r()}),await f};try{await e(A,t,p),d?(await f,h(null)):o(null)}catch(C){const y=C;h?h(y):o(y)}}}class gs extends sG{constructor(){super(),FA(this,"_middleware",void 0),this._middleware=[]}static async _runAllMiddleware(A,t,i){const o=[];let r=null,f=!1;for(const h of i)if([r,f]=await gs._runMiddleware(A,t,h,o),f)break;return[r,f,o.reverse()]}static _runMiddleware(A,t,i,o){return new Promise(r=>{const f=d=>{const p=d||t.error;p&&(typeof p=="object"&&Object.keys(p).includes("stack")===!1&&(p.stack="Stack trace is not available."),t.error=Ak(p,{shouldIncludeStack:!0,fallbackError:{message:(p==null?void 0:p.message)||(p==null?void 0:p.toString()),code:(p==null?void 0:p.code)||-32603,stack:(p==null?void 0:p.stack)||"Stack trace is not available.",data:(p==null?void 0:p.data)||(p==null?void 0:p.message)||(p==null?void 0:p.toString())}})),r([p,!0])},h=d=>{t.error?f(t.error):(d&&(typeof d!="function"&&f(new zl({code:-32603,message:"JRPCEngine: 'next' return handlers must be functions"})),o.push(d)),r([null,!1]))};try{i(A,t,h,f)}catch(d){f(d)}})}static async _runReturnHandlers(A){for(const t of A)await new Promise((i,o)=>{t(r=>r?o(r):i())})}static _checkForCompletion(A,t,i){if(!("result"in t)&&!("error"in t))throw new zl({code:-32603,message:"Response has no error or result for request"});if(!i)throw new zl({code:-32603,message:"Nothing ended request"})}push(A){this._middleware.push(A)}handle(A,t){if(t&&typeof t!="function")throw new Error('"callback" must be a function if provided.');return Array.isArray(A)?t?this._handleBatch(A,t):this._handleBatch(A):t?this._handle(A,t):this._promiseHandle(A)}asMiddleware(){return async(A,t,i,o)=>{try{const[r,f,h]=await gs._runAllMiddleware(A,t,this._middleware);return f?(await gs._runReturnHandlers(h),o(r)):i(async d=>{try{await gs._runReturnHandlers(h)}catch(p){return d(p)}return d()})}catch(r){return o(r)}}}async _handleBatch(A,t){try{const i=await Promise.all(A.map(this._promiseHandle.bind(this)));return t?t(null,i):i}catch(i){if(t)return t(i);throw i}}_promiseHandle(A){return new Promise((t,i)=>{this._handle(A,(o,r)=>{o&&r===void 0?i(o):t(r)}).catch(i)})}async _handle(A,t){if(!A||Array.isArray(A)||typeof A!="object"){const D=new zl({code:-32603,message:"request must be plain object"});return t(D,{id:void 0,jsonrpc:"2.0",error:D})}if(typeof A.method!="string"){const D=new zl({code:-32603,message:"method must be string"});return t(D,{id:A.id,jsonrpc:"2.0",error:D})}const i=ZA({},A),o={id:i.id,jsonrpc:i.jsonrpc};let r=null;try{await this._processRequest(i,o)}catch(D){r=D}if(r&&(delete o.result,!o.error)){var f,h,d,p,C,y,w;typeof r=="object"&&Object.keys(r).includes("stack")===!1&&(r.stack="Stack trace is not available."),o.error=Ak(r,{shouldIncludeStack:!0,fallbackError:{message:((f=r)===null||f===void 0?void 0:f.message)||((h=r)===null||h===void 0?void 0:h.toString()),code:((d=r)===null||d===void 0?void 0:d.code)||-32603,stack:((p=r)===null||p===void 0?void 0:p.stack)||"Stack trace is not available.",data:((C=r)===null||C===void 0?void 0:C.data)||((y=r)===null||y===void 0?void 0:y.message)||((w=r)===null||w===void 0?void 0:w.toString())}})}return t(r,o)}async _processRequest(A,t){const[i,o,r]=await gs._runAllMiddleware(A,t,this._middleware);if(gs._checkForCompletion(A,t,o),await gs._runReturnHandlers(r),i)throw i}}function Kz(e){const A=new gs;return e.forEach(t=>{A.push(t)}),A.asMiddleware()}function GFA(e){const A=new sG;return A.sendAsync=async t=>{const i=await e.handle(t);if(i.error){var o,r,f,h,d,p,C;typeof i.error=="object"&&Object.keys(i.error).includes("stack")===!1&&(i.error.stack="Stack trace is not available.");const y=Ak(i.error,{fallbackError:{message:((o=i.error)===null||o===void 0?void 0:o.message)||((r=i.error)===null||r===void 0?void 0:r.toString()),code:((f=i.error)===null||f===void 0?void 0:f.code)||-32603,stack:((h=i.error)===null||h===void 0?void 0:h.stack)||"Stack trace is not available.",data:((d=i.error)===null||d===void 0?void 0:d.data)||((p=i.error)===null||p===void 0?void 0:p.message)||((C=i.error)===null||C===void 0?void 0:C.toString())},shouldIncludeStack:!0});throw mt.internal(y)}return i.result},A.send=(t,i)=>{if(typeof i!="function")throw new Error('Must provide callback to "send" method.');e.handle(t,i)},e.on&&e.on("notification",t=>{A.emit("data",null,t)}),A.request=async t=>{const i=ZA(ZA({},t),{},{id:Math.random().toString(36).slice(2),jsonrpc:"2.0"});return await A.sendAsync(i)},A}function qB(e,A){return!(typeof e!="string"||!e.match(/^0x[0-9A-Fa-f]*$/))}const rI=e=>{if(typeof e!="string")throw new Error(`[stripHexPrefix] input must be type 'string', received ${typeof e}`);return qB(e)?e.slice(2):e};function gG(e){let A=e;if(typeof A!="string")throw new Error(`[padToEven] value must be type 'string', received ${typeof A}`);return A.length%2&&(A=`0${A}`),A}const FFA=function(e){if(!(e instanceof Uint8Array)){const A=`This method only supports Uint8Array but input was: ${e}`;throw new Error(A)}},xFA=function(e){if(typeof e!="string"){const A=`This method only supports strings but input was: ${e}`;throw new Error(A)}},Gz=BigInt(0),ek={},tk={};for(let e=0;e<16;e++){const A=e,t=e*16,i=e.toString(16).toLowerCase();tk[i]=A,tk[i.toUpperCase()]=A,ek[i]=t,ek[i.toUpperCase()]=t}function Fz(e){const A=e.length,t=new Uint8Array(A/2);for(let i=0;i{if(e.slice(0,2)==="0x")throw new Error("hex string is prefixed with 0x, should be unprefixed");return Fz(gG(e))},UFA=Array.from({length:256},(e,A)=>A.toString(16).padStart(2,"0")),_FA=e=>{let A="0x";if(e===void 0||e.length===0)return A;for(const t of e)A=`${A}${UFA[t]}`;return A},ik=[];for(let e=0;e<=256*256-1;e++)ik[e]=BigInt(e);const xz=(e,A=!1)=>{A&&e.reverse();const t=_FA(e);return t==="0x"?Gz:t.length===4?ik[e[0]]:t.length===6?ik[e[0]*256+e[1]]:BigInt(t)},HB=e=>{if(typeof e!="string")throw new Error(`hex argument type ${typeof e} must be of type string`);if(!/^0x[0-9a-fA-F]*$/.test(e))throw new Error(`Input must be a 0x-prefixed hexadecimal string, got ${e}`);const A=e.slice(2);return Fz(A.length%2===0?A:gG(A))},qFA=e=>{if(!Number.isSafeInteger(e)||e<0)throw new Error(`Received an invalid integer type: ${e}`);return`0x${e.toString(16)}`},rh=e=>{const A=qFA(e);return HB(A)},HFA=(e,A=!1)=>{const t=IG(`0x${gG(e.toString(16))}`);return A?t.reverse():t},IG=e=>{if(e==null)return new Uint8Array;if(Array.isArray(e)||e instanceof Uint8Array)return Uint8Array.from(e);if(typeof e=="string"){if(!qB(e))throw new Error(`Cannot convert string to Uint8Array. toBytes only supports 0x-prefixed hex strings and this string was given: ${e}`);return HB(e)}if(typeof e=="number")return rh(e);if(typeof e=="bigint"){if(eBigInt.asIntN(256,xz(e)),j5=e=>HFA(BigInt.asUintN(256,e)),Ti=e=>typeof e!="string"||qB(e)?e:`0x${e}`,YFA=e=>`0x${e.toString(16)}`;BigInt("0xffffffffffffffff");BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");BigInt("115792089237316195423570985008687907853269984665640564039457584007913129639935");Il.CURVE.n;Il.CURVE.n/BigInt(2);BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");const JFA="0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470";HB(JFA);const TFA="0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347";HB(TFA);const PFA="0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421";HB(PFA);Uint8Array.from([128]);BigInt(-1);BigInt(0);BigInt(1);BigInt(2);BigInt(3);BigInt(7);BigInt(8);BigInt(27);BigInt(28);BigInt(31);BigInt(32);BigInt(64);BigInt(128);BigInt(255);BigInt(256);BigInt(96);BigInt(100);BigInt(160);BigInt(224);BigInt(7922816251426434e13);BigInt(1461501637330903e33);BigInt(2695994666715064e52);BigInt(1e9);const OFA=function(e){try{xFA(e)}catch{return!1}return/^0x[0-9a-fA-F]{40}$/.test(e)},jFA=function(e,A=!1){if(FFA(e),A&&e.length!==64&&(e=Il.ProjectivePoint.fromHex(e).toRawBytes(!1).slice(1)),e.length!==64)throw new Error("Expected pubKey to be of length 64");return xt(e).subarray(-20)},WFA=jFA;var W5;(function(e){e.String="string",e.Bytes="view",e.Number="number"})(W5||(W5={}));var V5;(function(e){e.String="string",e.Bytes="view",e.JSON="json"})(V5||(V5={}));var Z5;(function(e){e[e.Number=0]="Number",e[e.BigInt=1]="BigInt",e[e.Uint8Array=2]="Uint8Array",e[e.PrefixedHexString=3]="PrefixedHexString"})(Z5||(Z5={}));var z5;(function(e){e[e.Deposit=0]="Deposit",e[e.Withdrawal=1]="Withdrawal",e[e.Consolidation=2]="Consolidation"})(z5||(z5={}));var Tf;(function(e){e[e.Version=0]="Version",e[e.Balance=1]="Balance",e[e.Nonce=2]="Nonce",e[e.CodeHash=3]="CodeHash",e[e.CodeSize=4]="CodeSize"})(Tf||(Tf={}));rh(Tf.Version);rh(Tf.Balance);rh(Tf.Nonce);rh(Tf.CodeHash);rh(Tf.CodeSize);BigInt(256)**BigInt(31);class VFA extends sG{constructor({config:A={},state:t={}}){super(),FA(this,"defaultConfig",{}),FA(this,"defaultState",{}),FA(this,"disabled",!1),FA(this,"name","BaseController"),FA(this,"initialConfig",void 0),FA(this,"initialState",void 0),FA(this,"internalConfig",this.defaultConfig),FA(this,"internalState",this.defaultState),this.initialState=t,this.initialConfig=A}get config(){return this.internalConfig}get state(){return this.internalState}configure(A,t=!1,i=!0){if(i){this.internalConfig=t?A:Object.assign(this.internalConfig,A);for(const o in this.internalConfig)typeof this.internalConfig[o]<"u"&&(this[o]=this.internalConfig[o])}else for(const o in A)typeof this.internalConfig[o]<"u"&&(this.internalConfig[o]=A[o],this[o]=A[o])}update(A,t=!1){this.internalState=ZA(t?{}:ZA({},this.internalState),A),this.emit("store",this.internalState)}initialize(){return this.internalState=this.defaultState,this.internalConfig=this.defaultConfig,this.configure(this.initialConfig),this.update(this.initialState),this}}const ZFA=()=>!0,zFA=["newListener","removeListener"],$FA=e=>!zFA.includes(e);function XFA(e,A){return typeof e.rawListeners<"u"?e.rawListeners(A):e.listeners(A)}function AxA(e,A){let i={}.eventFilter||ZFA;if(typeof i=="string"&&i==="skipInternal"&&(i=$FA),typeof i!="function")throw new Error("createEventEmitterProxy - Invalid eventFilter");let o=e,r=h=>{if(o===h)return;const d=o;o=h,d.eventNames().filter(i).forEach(C=>{XFA(d,C).forEach(y=>{h.on(C,y)})}),d.removeAllListeners()};return new Proxy({},{get:(h,d)=>d==="setTarget"?r:o[d],set:(h,d,p)=>d==="setTarget"?(r=p,!0):(o[d]=p,!0),has:(h,d)=>d[0]==="_"?!1:d in o})}var exA=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,J2=Math.ceil,Yn=Math.floor,xr="[BigNumber Error] ",$5=xr+"Number primitive has more than 15 significant digits: ",Do=1e14,_e=14,T2=9007199254740991,P2=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],ug=1e7,Mi=1e9;function Lz(e){var A,t,i,o=S.prototype={constructor:S,toString:null,valueOf:null},r=new S(1),f=20,h=4,d=-7,p=21,C=-1e7,y=1e7,w=!1,D=1,v=0,M={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},R="0123456789abcdefghijklmnopqrstuvwxyz",b=!0;function S(J,q){var X,Q,n,a,g,I,c,B,E=this;if(!(E instanceof S))return new S(J,q);if(q==null){if(J&&J._isBigNumber===!0){E.s=J.s,!J.c||J.e>y?E.c=E.e=null:J.e=10;g/=10,a++);a>y?E.c=E.e=null:(E.e=a,E.c=[J]);return}B=String(J)}else{if(!exA.test(B=String(J)))return i(E,B,I);E.s=B.charCodeAt(0)==45?(B=B.slice(1),-1):1}(a=B.indexOf("."))>-1&&(B=B.replace(".","")),(g=B.search(/e/i))>0?(a<0&&(a=g),a+=+B.slice(g+1),B=B.substring(0,g)):a<0&&(a=B.length)}else{if(Yt(q,2,R.length,"Base"),q==10&&b)return E=new S(J),z(E,f+E.e+1,h);if(B=String(J),I=typeof J=="number"){if(J*0!=0)return i(E,B,I,q);if(E.s=1/J<0?(B=B.slice(1),-1):1,S.DEBUG&&B.replace(/^0\.0*|\./,"").length>15)throw Error($5+J)}else E.s=B.charCodeAt(0)===45?(B=B.slice(1),-1):1;for(X=R.slice(0,q),a=g=0,c=B.length;ga){a=c;continue}}else if(!n&&(B==B.toUpperCase()&&(B=B.toLowerCase())||B==B.toLowerCase()&&(B=B.toUpperCase()))){n=!0,g=-1,a=0;continue}return i(E,String(J),I,q)}I=!1,B=t(B,q,10,E.s),(a=B.indexOf("."))>-1?B=B.replace(".",""):a=B.length}for(g=0;B.charCodeAt(g)===48;g++);for(c=B.length;B.charCodeAt(--c)===48;);if(B=B.slice(g,++c)){if(c-=g,I&&S.DEBUG&&c>15&&(J>T2||J!==Yn(J)))throw Error($5+E.s*J);if((a=a-g-1)>y)E.c=E.e=null;else if(a=-Mi&&n<=Mi&&n===Yn(n)){if(Q[0]===0){if(n===0&&Q.length===1)return!0;break A}if(q=(n+1)%_e,q<1&&(q+=_e),String(Q[0]).length==q){for(q=0;q=Do||X!==Yn(X))break A;if(X!==0)return!0}}}else if(Q===null&&n===null&&(a===null||a===1||a===-1))return!0;throw Error(xr+"Invalid BigNumber: "+J)},S.maximum=S.max=function(){return U(arguments,-1)},S.minimum=S.min=function(){return U(arguments,1)},S.random=function(){var J=9007199254740992,q=Math.random()*J&2097151?function(){return Yn(Math.random()*J)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(X){var Q,n,a,g,I,c=0,B=[],E=new S(r);if(X==null?X=f:Yt(X,0,Mi),g=J2(X/_e),w)if(crypto.getRandomValues){for(Q=crypto.getRandomValues(new Uint32Array(g*=2));c>>11),I>=9e15?(n=crypto.getRandomValues(new Uint32Array(2)),Q[c]=n[0],Q[c+1]=n[1]):(B.push(I%1e14),c+=2);c=g/2}else if(crypto.randomBytes){for(Q=crypto.randomBytes(g*=7);c=9e15?crypto.randomBytes(7).copy(Q,c):(B.push(I%1e14),c+=7);c=g/7}else throw w=!1,Error(xr+"crypto unavailable");if(!w)for(;c=10;I/=10,c++);c<_e&&(a-=_e-c)}return E.e=a,E.c=B,E}}(),S.sum=function(){for(var J=1,q=arguments,X=new S(q[0]);Jn-1&&(I[g+1]==null&&(I[g+1]=0),I[g+1]+=I[g]/n|0,I[g]%=n)}return I.reverse()}return function(X,Q,n,a,g){var I,c,B,E,u,s,l,m,N=X.indexOf("."),L=f,O=h;for(N>=0&&(E=v,v=0,X=X.replace(".",""),m=new S(Q),s=m.pow(X.length-N),v=E,m.c=q(sa(Hn(s.c),s.e,"0"),10,n,J),m.e=m.c.length),l=q(X,Q,n,g?(I=R,J):(I=J,R)),B=E=l.length;l[--E]==0;l.pop());if(!l[0])return I.charAt(0);if(N<0?--B:(s.c=l,s.e=B,s.s=a,s=A(s,m,L,O,n),l=s.c,u=s.r,B=s.e),c=B+L+1,N=l[c],E=n/2,u=u||c<0||l[c+1]!=null,u=O<4?(N!=null||u)&&(O==0||O==(s.s<0?3:2)):N>E||N==E&&(O==4||u||O==6&&l[c-1]&1||O==(s.s<0?8:7)),c<1||!l[0])X=u?sa(I.charAt(1),-L,I.charAt(0)):I.charAt(0);else{if(l.length=c,u)for(--n;++l[--c]>n;)l[c]=0,c||(++B,l=[1].concat(l));for(E=l.length;!l[--E];);for(N=0,X="";N<=E;X+=I.charAt(l[N++]));X=sa(X,B,I.charAt(0))}return X}}(),A=function(){function J(Q,n,a){var g,I,c,B,E=0,u=Q.length,s=n%ug,l=n/ug|0;for(Q=Q.slice();u--;)c=Q[u]%ug,B=Q[u]/ug|0,g=l*c+B*s,I=s*c+g%ug*ug+E,E=(I/a|0)+(g/ug|0)+l*B,Q[u]=I%a;return E&&(Q=[E].concat(Q)),Q}function q(Q,n,a,g){var I,c;if(a!=g)c=a>g?1:-1;else for(I=c=0;In[I]?1:-1;break}return c}function X(Q,n,a,g){for(var I=0;a--;)Q[a]-=I,I=Q[a]1;Q.splice(0,1));}return function(Q,n,a,g,I){var c,B,E,u,s,l,m,N,L,O,H,K,Y,W,$,V,_,j=Q.s==n.s?1:-1,sA=Q.c,iA=n.c;if(!sA||!sA[0]||!iA||!iA[0])return new S(!Q.s||!n.s||(sA?iA&&sA[0]==iA[0]:!iA)?NaN:sA&&sA[0]==0||!iA?j*0:j/0);for(N=new S(j),L=N.c=[],B=Q.e-n.e,j=a+B+1,I||(I=Do,B=Jn(Q.e/_e)-Jn(n.e/_e),j=j/_e|0),E=0;iA[E]==(sA[E]||0);E++);if(iA[E]>(sA[E]||0)&&B--,j<0)L.push(1),u=!0;else{for(W=sA.length,V=iA.length,E=0,j+=2,s=Yn(I/(iA[0]+1)),s>1&&(iA=J(iA,s,I),sA=J(sA,s,I),V=iA.length,W=sA.length),Y=V,O=sA.slice(0,V),H=O.length;H=I/2&&$++;do{if(s=0,c=q(iA,O,V,H),c<0){if(K=O[0],V!=H&&(K=K*I+(O[1]||0)),s=Yn(K/$),s>1)for(s>=I&&(s=I-1),l=J(iA,s,I),m=l.length,H=O.length;q(l,O,m,H)==1;)s--,X(l,V=10;j/=10,E++);z(N,a+(N.e=E+B*_e-1)+1,g,u)}else N.e=B,N.r=+u;return N}}();function G(J,q,X,Q){var n,a,g,I,c;if(X==null?X=h:Yt(X,0,8),!J.c)return J.toString();if(n=J.c[0],g=J.e,q==null)c=Hn(J.c),c=Q==1||Q==2&&(g<=d||g>=p)?tE(c,g):sa(c,g,"0");else if(J=z(new S(J),q,X),a=J.e,c=Hn(J.c),I=c.length,Q==1||Q==2&&(q<=a||a<=d)){for(;II){if(--q>0)for(c+=".";q--;c+="0");}else if(q+=a-I,q>0)for(a+1==I&&(c+=".");q--;c+="0");return J.s<0&&n?"-"+c:c}function U(J,q){for(var X,Q,n=1,a=new S(J[0]);n=10;n/=10,Q++);return(X=Q+X*_e-1)>y?J.c=J.e=null:X=10;I/=10,n++);if(a=q-n,a<0)a+=_e,g=q,c=u[B=0],E=Yn(c/s[n-g-1]%10);else if(B=J2((a+1)/_e),B>=u.length)if(Q){for(;u.length<=B;u.push(0));c=E=0,n=1,a%=_e,g=a-_e+1}else break A;else{for(c=I=u[B],n=1;I>=10;I/=10,n++);a%=_e,g=a-_e+n,E=g<0?0:Yn(c/s[n-g-1]%10)}if(Q=Q||q<0||u[B+1]!=null||(g<0?c:c%s[n-g-1]),Q=X<4?(E||Q)&&(X==0||X==(J.s<0?3:2)):E>5||E==5&&(X==4||Q||X==6&&(a>0?g>0?c/s[n-g]:0:u[B-1])%10&1||X==(J.s<0?8:7)),q<1||!u[0])return u.length=0,Q?(q-=J.e+1,u[0]=s[(_e-q%_e)%_e],J.e=-q||0):u[0]=J.e=0,J;if(a==0?(u.length=B,I=1,B--):(u.length=B+1,I=s[_e-a],u[B]=g>0?Yn(c/s[n-g]%s[g])*I:0),Q)for(;;)if(B==0){for(a=1,g=u[0];g>=10;g/=10,a++);for(g=u[0]+=I,I=1;g>=10;g/=10,I++);a!=I&&(J.e++,u[0]==Do&&(u[0]=1));break}else{if(u[B]+=I,u[B]!=Do)break;u[B--]=0,I=1}for(a=u.length;u[--a]===0;u.pop());}J.e>y?J.c=J.e=null:J.e=p?tE(q,X):sa(q,X,"0"),J.s<0?"-"+q:q)}return o.absoluteValue=o.abs=function(){var J=new S(this);return J.s<0&&(J.s=1),J},o.comparedTo=function(J,q){return SI(this,new S(J,q))},o.decimalPlaces=o.dp=function(J,q){var X,Q,n,a=this;if(J!=null)return Yt(J,0,Mi),q==null?q=h:Yt(q,0,8),z(new S(a),J+a.e+1,q);if(!(X=a.c))return null;if(Q=((n=X.length-1)-Jn(this.e/_e))*_e,n=X[n])for(;n%10==0;n/=10,Q--);return Q<0&&(Q=0),Q},o.dividedBy=o.div=function(J,q){return A(this,new S(J,q),f,h)},o.dividedToIntegerBy=o.idiv=function(J,q){return A(this,new S(J,q),0,1)},o.exponentiatedBy=o.pow=function(J,q){var X,Q,n,a,g,I,c,B,E,u=this;if(J=new S(J),J.c&&!J.isInteger())throw Error(xr+"Exponent not an integer: "+oA(J));if(q!=null&&(q=new S(q)),I=J.e>14,!u.c||!u.c[0]||u.c[0]==1&&!u.e&&u.c.length==1||!J.c||!J.c[0])return E=new S(Math.pow(+oA(u),I?J.s*(2-eE(J)):+oA(J))),q?E.mod(q):E;if(c=J.s<0,q){if(q.c?!q.c[0]:!q.s)return new S(NaN);Q=!c&&u.isInteger()&&q.isInteger(),Q&&(u=u.mod(q))}else{if(J.e>9&&(u.e>0||u.e<-1||(u.e==0?u.c[0]>1||I&&u.c[1]>=24e7:u.c[0]<8e13||I&&u.c[0]<=9999975e7)))return a=u.s<0&&eE(J)?-0:0,u.e>-1&&(a=1/a),new S(c?1/a:a);v&&(a=J2(v/_e+2))}for(I?(X=new S(.5),c&&(J.s=1),B=eE(J)):(n=Math.abs(+oA(J)),B=n%2),E=new S(r);;){if(B){if(E=E.times(u),!E.c)break;a?E.c.length>a&&(E.c.length=a):Q&&(E=E.mod(q))}if(n){if(n=Yn(n/2),n===0)break;B=n%2}else if(J=J.times(X),z(J,J.e+1,1),J.e>14)B=eE(J);else{if(n=+oA(J),n===0)break;B=n%2}u=u.times(u),a?u.c&&u.c.length>a&&(u.c.length=a):Q&&(u=u.mod(q))}return Q?E:(c&&(E=r.div(E)),q?E.mod(q):a?z(E,v,h,g):E)},o.integerValue=function(J){var q=new S(this);return J==null?J=h:Yt(J,0,8),z(q,q.e+1,J)},o.isEqualTo=o.eq=function(J,q){return SI(this,new S(J,q))===0},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(J,q){return SI(this,new S(J,q))>0},o.isGreaterThanOrEqualTo=o.gte=function(J,q){return(q=SI(this,new S(J,q)))===1||q===0},o.isInteger=function(){return!!this.c&&Jn(this.e/_e)>this.c.length-2},o.isLessThan=o.lt=function(J,q){return SI(this,new S(J,q))<0},o.isLessThanOrEqualTo=o.lte=function(J,q){return(q=SI(this,new S(J,q)))===-1||q===0},o.isNaN=function(){return!this.s},o.isNegative=function(){return this.s<0},o.isPositive=function(){return this.s>0},o.isZero=function(){return!!this.c&&this.c[0]==0},o.minus=function(J,q){var X,Q,n,a,g=this,I=g.s;if(J=new S(J,q),q=J.s,!I||!q)return new S(NaN);if(I!=q)return J.s=-q,g.plus(J);var c=g.e/_e,B=J.e/_e,E=g.c,u=J.c;if(!c||!B){if(!E||!u)return E?(J.s=-q,J):new S(u?g:NaN);if(!E[0]||!u[0])return u[0]?(J.s=-q,J):new S(E[0]?g:h==3?-0:0)}if(c=Jn(c),B=Jn(B),E=E.slice(),I=c-B){for((a=I<0)?(I=-I,n=E):(B=c,n=u),n.reverse(),q=I;q--;n.push(0));n.reverse()}else for(Q=(a=(I=E.length)<(q=u.length))?I:q,I=q=0;q0)for(;q--;E[X++]=0);for(q=Do-1;Q>I;){if(E[--Q]=0;){for(X=0,s=K[n]%L,l=K[n]/L|0,g=c,a=n+g;a>n;)B=H[--g]%L,E=H[g]/L|0,I=l*B+E*s,B=s*B+I%L*L+m[a]+X,X=(B/N|0)+(I/L|0)+l*E,m[a--]=B%N;m[a]=X}return X?++Q:m.splice(0,1),P(J,m,Q)},o.negated=function(){var J=new S(this);return J.s=-J.s||null,J},o.plus=function(J,q){var X,Q=this,n=Q.s;if(J=new S(J,q),q=J.s,!n||!q)return new S(NaN);if(n!=q)return J.s=-q,Q.minus(J);var a=Q.e/_e,g=J.e/_e,I=Q.c,c=J.c;if(!a||!g){if(!I||!c)return new S(n/0);if(!I[0]||!c[0])return c[0]?J:new S(I[0]?Q:n*0)}if(a=Jn(a),g=Jn(g),I=I.slice(),n=a-g){for(n>0?(g=a,X=c):(n=-n,X=I),X.reverse();n--;X.push(0));X.reverse()}for(n=I.length,q=c.length,n-q<0&&(X=c,c=I,I=X,q=n),n=0;q;)n=(I[--q]=I[q]+c[q]+n)/Do|0,I[q]=Do===I[q]?0:I[q]%Do;return n&&(I=[n].concat(I),++g),P(J,I,g)},o.precision=o.sd=function(J,q){var X,Q,n,a=this;if(J!=null&&J!==!!J)return Yt(J,1,Mi),q==null?q=h:Yt(q,0,8),z(new S(a),J,q);if(!(X=a.c))return null;if(n=X.length-1,Q=n*_e+1,n=X[n]){for(;n%10==0;n/=10,Q--);for(n=X[0];n>=10;n/=10,Q++);}return J&&a.e+1>Q&&(Q=a.e+1),Q},o.shiftedBy=function(J){return Yt(J,-T2,T2),this.times("1e"+J)},o.squareRoot=o.sqrt=function(){var J,q,X,Q,n,a=this,g=a.c,I=a.s,c=a.e,B=f+4,E=new S("0.5");if(I!==1||!g||!g[0])return new S(!I||I<0&&(!g||g[0])?NaN:g?a:1/0);if(I=Math.sqrt(+oA(a)),I==0||I==1/0?(q=Hn(g),(q.length+c)%2==0&&(q+="0"),I=Math.sqrt(+q),c=Jn((c+1)/2)-(c<0||c%2),I==1/0?q="5e"+c:(q=I.toExponential(),q=q.slice(0,q.indexOf("e")+1)+c),X=new S(q)):X=new S(I+""),X.c[0]){for(c=X.e,I=c+B,I<3&&(I=0);;)if(n=X,X=E.times(n.plus(A(a,n,B,1))),Hn(n.c).slice(0,I)===(q=Hn(X.c)).slice(0,I))if(X.e0&&m>0){for(a=m%I||I,E=l.substr(0,a);a0&&(E+=B+l.slice(a)),s&&(E="-"+E)}Q=u?E+(X.decimalSeparator||"")+((c=+X.fractionGroupSize)?u.replace(new RegExp("\\d{"+c+"}\\B","g"),"$&"+(X.fractionGroupSeparator||"")):u):E}return(X.prefix||"")+Q+(X.suffix||"")},o.toFraction=function(J){var q,X,Q,n,a,g,I,c,B,E,u,s,l=this,m=l.c;if(J!=null&&(I=new S(J),!I.isInteger()&&(I.c||I.s!==1)||I.lt(r)))throw Error(xr+"Argument "+(I.isInteger()?"out of range: ":"not an integer: ")+oA(I));if(!m)return new S(l);for(q=new S(r),B=X=new S(r),Q=c=new S(r),s=Hn(m),a=q.e=s.length-l.e-1,q.c[0]=P2[(g=a%_e)<0?_e+g:g],J=!J||I.comparedTo(q)>0?a>0?q:B:I,g=y,y=1/0,I=new S(s),c.c[0]=0;E=A(I,q,0,1),n=X.plus(E.times(Q)),n.comparedTo(J)!=1;)X=Q,Q=n,B=c.plus(E.times(n=B)),c=n,q=I.minus(E.times(n=q)),I=n;return n=A(J.minus(X),Q,0,1),c=c.plus(n.times(B)),X=X.plus(n.times(Q)),c.s=B.s=l.s,a=a*2,u=A(B,Q,a,h).minus(l).abs().comparedTo(A(c,X,a,h).minus(l).abs())<1?[B,Q]:[c,X],y=g,u},o.toNumber=function(){return+oA(this)},o.toPrecision=function(J,q){return J!=null&&Yt(J,1,Mi),G(this,J,q,2)},o.toString=function(J){var q,X=this,Q=X.s,n=X.e;return n===null?Q?(q="Infinity",Q<0&&(q="-"+q)):q="NaN":(J==null?q=n<=d||n>=p?tE(Hn(X.c),n):sa(Hn(X.c),n,"0"):J===10&&b?(X=z(new S(X),f+n+1,h),q=sa(Hn(X.c),X.e,"0")):(Yt(J,2,R.length,"Base"),q=t(sa(Hn(X.c),n,"0"),10,J,Q,!0)),Q<0&&X.c[0]&&(q="-"+q)),q},o.valueOf=o.toJSON=function(){return oA(this)},o._isBigNumber=!0,o[Symbol.toStringTag]="BigNumber",o[Symbol.for("nodejs.util.inspect.custom")]=o.valueOf,e!=null&&S.set(e),S}function Jn(e){var A=e|0;return e>0||e===A?A:A-1}function Hn(e){for(var A,t,i=1,o=e.length,r=e[0]+"";ip^t?1:-1;for(h=(d=o.length)<(p=r.length)?d:p,f=0;fr[f]^t?1:-1;return d==p?0:d>p^t?1:-1}function Yt(e,A,t,i){if(et||e!==Yn(e))throw Error(xr+(i||"Argument")+(typeof e=="number"?et?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function eE(e){var A=e.c.length-1;return Jn(e.e/_e)==A&&e.c[A]%2!=0}function tE(e,A){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(A<0?"e":"e+")+A}function sa(e,A,t){var i,o;if(A<0){for(o=t+".";++A;o+=t);e=o+e}else if(i=e.length,++A>i){for(o=t,A-=i;--A;o+=t);e+=o}else A{setTimeout(A,e)})}function nxA(e,A){if(e.status!==200)throw mt.internal({message:`Non-200 status code: '${e.status}'`,data:A});if(A.error){var t;throw mt.internal({data:A.error,message:(t=A.error)===null||t===void 0?void 0:t.message})}return A.result}function oxA({req:e,rpcTarget:A,originHttpHeaderKey:t}){const i=new URL(A),o={id:e.id,jsonrpc:e.jsonrpc,method:e.method,params:e.params},r=e.origin,f=JSON.stringify(o),h={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:f};return t&&r&&(h.headers[t]=r),{fetchUrl:i.href,fetchParams:h}}function sxA({rpcTarget:e,originHttpHeaderKey:A}){return Lr(async(t,i,o)=>{const{fetchUrl:r,fetchParams:f}=oxA({req:t,rpcTarget:e,originHttpHeaderKey:A}),h=5,d=1e3;for(let p=0;py.includes(D)))throw C}await rxA(d)}})}class axA extends VFA{constructor({config:A,state:t}){if(super({config:A,state:t}),FA(this,"_providerEngineProxy",null),FA(this,"keyExportFlagSetByCode",!1),!A.chainConfig)throw gi.invalidProviderConfigError("Please provide chainConfig");if(!A.chainConfig.chainId)throw gi.invalidProviderConfigError("Please provide chainId inside chainConfig");if(!A.chainConfig.rpcTarget)throw gi.invalidProviderConfigError("Please provide rpcTarget inside chainConfig");typeof A.keyExportEnabled=="boolean"&&(this.keyExportFlagSetByCode=!0),this.defaultState={chainId:"loading"},this.defaultConfig={chainConfig:A.chainConfig,networks:{[A.chainConfig.chainId]:A.chainConfig},keyExportEnabled:typeof A.keyExportEnabled=="boolean"?A.keyExportEnabled:!0},super.initialize()}get currentChainConfig(){return this.config.chainConfig}get provider(){return this._providerEngineProxy}get chainId(){return this.state.chainId}set provider(A){throw new Error("Method not implemented.")}async request(A){var t;if(!A||typeof A!="object"||Array.isArray(A))throw mt.invalidRequest({message:ua.invalidRequestArgs().message,data:ZA(ZA({},A||{}),{},{cause:ua.invalidRequestArgs().message})});const{method:i,params:o}=A;if(typeof i!="string"||i.length===0)throw mt.invalidRequest({message:ua.invalidRequestMethod().message,data:ZA(ZA({},A||{}),{},{cause:ua.invalidRequestMethod().message})});if(o!==void 0&&!Array.isArray(o)&&(typeof o!="object"||o===null))throw mt.invalidRequest({message:ua.invalidRequestParams().message,data:ZA(ZA({},A||{}),{},{cause:ua.invalidRequestParams().message})});return(t=this.provider)===null||t===void 0?void 0:t.request(A)}sendAsync(A,t){return t?this.send(A,t):this.request(A)}send(A,t){this.request(A).then(i=>t(null,{result:i})).catch(i=>t(i,null))}addChain(A){if(!A.chainId||!A.rpcTarget)throw mt.invalidParams("chainId is required");this.configure({networks:ZA(ZA({},this.config.networks),{},{[A.chainId]:A})})}getChainConfig(A){var t;const i=(t=this.config.networks)===null||t===void 0?void 0:t[A];if(!i)throw mt.invalidRequest(`Chain ${A} is not supported, please add chainConfig for it`);return i}updateProviderEngineProxy(A){this._providerEngineProxy?this._providerEngineProxy.setTarget(A):this._providerEngineProxy=AxA(A)}setKeyExportFlag(A){this.keyExportFlagSetByCode||this.configure({keyExportEnabled:A})}getProviderEngineProxy(){return this._providerEngineProxy}}function gxA({getAccounts:e,getPrivateKey:A,getPublicKey:t,processEthSignMessage:i,processPersonalMessage:o,processTransaction:r,processSignTransaction:f,processTypedMessageV4:h}){if(!e)throw new Error("opts.getAccounts is required");async function d(b,S){if(typeof b=="string"&&b.length>0){const U=(await e(S)).map(z=>z.toLowerCase()),P=b.toLowerCase();if(U.includes(P))return P}throw mt.invalidParams({message:"Invalid parameters: must provide an Ethereum address."})}async function p(b,S){S.result=await e(b)}async function C(b,S){if(!r)throw mt.methodNotSupported();const G=b.params[0]||{from:""};G.from=await d(G.from,b),S.result=await r(G,b)}async function y(b,S){if(!f)throw mt.methodNotSupported();const G=b.params[0]||{from:""};G.from=await d(G.from,b),S.result=await f(G,b)}async function w(b,S){if(!i)throw mt.methodNotSupported();let G=b.params;const U=b.params[2]||{};if(Array.isArray(b.params)){if(b.params.length!==2)throw new Error(`WalletMiddleware - incorrect params for ${b.method} method. expected [address, message]`);const P=b.params,z=P[0],oA=P[1];G={from:z,data:oA}}G=ZA(ZA({},U),G),S.result=await i(G,b)}async function D(b,S){if(!h)throw mt.methodNotSupported();if(!(b!=null&&b.params))throw new Error("WalletMiddleware - missing params");let G=b.params;if(Array.isArray(b.params)){if(b.params.length!==2)throw new Error(`WalletMiddleware - incorrect params for ${b.method} method. expected [address, typedData]`);const U=b.params,P=U[0],z=U[1];G={from:P,data:z}}S.result=await h(G,b)}async function v(b,S){if(!o)throw mt.methodNotSupported();let G=b.params;const U=b.params[2]||{};if(Array.isArray(b.params)){if(!(b.params.length>=2))throw new Error(`WalletMiddleware - incorrect params for ${b.method} method. expected [message, address]`);const P=b.params;if(typeof P[0]=="object"){const{challenge:z,address:oA}=P[0];G={from:oA,data:z}}else{const z=P[0];G={from:P[1],data:z}}}G=ZA(ZA({},U),G),S.result=await o(G,b)}async function M(b,S){if(!A)throw mt.methodNotSupported();S.result=A(b)}async function R(b,S){if(!t)throw mt.methodNotSupported();S.result=t(b)}return _D({eth_accounts:Lr(p),eth_private_key:Lr(M),eth_public_key:Lr(R),public_key:Lr(R),private_key:Lr(M),eth_sendTransaction:Lr(C),eth_signTransaction:Lr(y),eth_sign:Lr(w),eth_signTypedData_v4:Lr(D),personal_sign:Lr(v)})}function IxA(e){const{getAccounts:A,getPrivateKey:t,getPublicKey:i,processTransaction:o,processSignTransaction:r,processEthSignMessage:f,processTypedMessageV4:h,processPersonalMessage:d}=e;return Kz([_D({eth_syncing:!1}),gxA({getAccounts:A,getPrivateKey:t,getPublicKey:i,processTransaction:o,processEthSignMessage:f,processSignTransaction:r,processTypedMessageV4:h,processPersonalMessage:d})])}function fxA({addChain:e,switchChain:A}){async function t(o,r){var f;const h=(f=o.params)!==null&&f!==void 0&&f.length?o.params[0]:void 0;if(!h)throw mt.invalidParams("Missing chain params");if(!h.chainId)throw mt.invalidParams("Missing chainId in chainParams");if(!h.rpcUrls||h.rpcUrls.length===0)throw mt.invalidParams("Missing rpcUrls in chainParams");if(!h.nativeCurrency)throw mt.invalidParams("Missing nativeCurrency in chainParams");r.result=await e(h)}async function i(o,r){var f;const h=(f=o.params)!==null&&f!==void 0&&f.length?o.params[0]:void 0;if(!h)throw mt.invalidParams("Missing chainId");r.result=await A(h)}return _D({wallet_addEthereumChain:Lr(t),wallet_switchEthereumChain:Lr(i)})}function hxA(e){return(A,t,i,o)=>A.method==="eth_chainId"?(t.result=e,o()):i()}function cxA(e){return(A,t,i,o)=>A.method==="eth_provider_config"?(t.result=e,o()):i()}function uxA(e){const{chainId:A,rpcTarget:t}=e,i=sxA({rpcTarget:t});return{networkMiddleware:Kz([hxA(A),cxA(e),i]),fetchMiddleware:i}}const lxA="6.13.4";function rk(e,A,t){for(let i in A){let o=A[i];Object.defineProperty(e,i,{enumerable:!0,value:o,writable:!1})}}function nc(e){if(e==null)return"null";if(Array.isArray(e))return"[ "+e.map(nc).join(", ")+" ]";if(e instanceof Uint8Array){const A="0123456789abcdef";let t="0x";for(let i=0;i>4],t+=A[e[i]&15];return t}if(typeof e=="object"&&typeof e.toJSON=="function")return nc(e.toJSON());switch(typeof e){case"boolean":case"symbol":return e.toString();case"bigint":return BigInt(e).toString();case"number":return e.toString();case"string":return JSON.stringify(e);case"object":{const A=Object.keys(e);return A.sort(),"{ "+A.map(t=>`${nc(t)}: ${nc(e[t])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function CxA(e,A,t){let i=e;{const r=[];if(t){if("message"in t||"code"in t||"name"in t)throw new Error(`value will overwrite populated values: ${nc(t)}`);for(const f in t){if(f==="shortMessage")continue;const h=t[f];r.push(f+"="+nc(h))}}r.push(`code=${A}`),r.push(`version=${lxA}`),r.length&&(e+=" ("+r.join(", ")+")")}let o;switch(A){case"INVALID_ARGUMENT":o=new TypeError(e);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":o=new RangeError(e);break;default:o=new Error(e)}return rk(o,{code:A}),t&&Object.assign(o,t),o.shortMessage==null&&rk(o,{shortMessage:i}),o}function Pf(e,A,t,i){if(!e)throw CxA(A,t,i)}function Re(e,A,t,i){Pf(e,A,"INVALID_ARGUMENT",{argument:t,value:i})}["NFD","NFC","NFKD","NFKC"].reduce((e,A)=>{try{if("test".normalize(A)!=="test")throw new Error("bad");if(A==="NFD"&&"é".normalize("NFD")!=="é")throw new Error("broken");e.push(A)}catch{}return e},[]);function BxA(e,A,t){if(e!==A){let i=t,o="new";i+=".",o+=" "+t,Pf(!1,`private constructor; use ${i}from* methods`,"UNSUPPORTED_OPERATION",{operation:o})}}function Uz(e,A,t){if(e instanceof Uint8Array)return t?new Uint8Array(e):e;if(typeof e=="string"&&e.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){const i=new Uint8Array((e.length-2)/2);let o=2;for(let r=0;r>4]+Aq[o&15]}return t}function yf(e){return"0x"+e.map(A=>mr(A).substring(2)).join("")}function eq(e){return Su(e,!0)?(e.length-2)/2:jr(e).length}function ExA(e,A,t){const i=jr(e);Pf(A>=i.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(i),length:A,offset:A+1});const o=new Uint8Array(A);return o.fill(0),o.set(i,A-i.length),mr(o)}function _z(e,A){return ExA(e,A)}const hG=BigInt(0),qI=BigInt(1),oc=9007199254740991;function QxA(e,A){let t=va(e,"value");const i=BigInt(wf(A,"width")),o=qI<=-oc&&e<=oc,"overflow",A||"value",e),BigInt(e);case"string":try{if(e==="")throw new Error("empty string");return e[0]==="-"&&e[1]!=="-"?-BigInt(e.substring(1)):BigInt(e)}catch(t){Re(!1,`invalid BigNumberish string: ${t.message}`,A||"value",e)}}Re(!1,"invalid BigNumberish value",A||"value",e)}function cG(e,A){const t=va(e,A);return Pf(t>=hG,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:e}),t}function wf(e,A){switch(typeof e){case"bigint":return Re(e>=-oc&&e<=oc,"overflow",A||"value",e),Number(e);case"number":return Re(Number.isInteger(e),"underflow",A||"value",e),Re(e>=-oc&&e<=oc,"overflow",A||"value",e),e;case"string":try{if(e==="")throw new Error("empty string");return wf(BigInt(e),A)}catch(t){Re(!1,`invalid numeric string: ${t.message}`,A||"value",e)}}Re(!1,"invalid numeric value",A||"value",e)}function uG(e,A){let i=cG(e,"value").toString(16);{const o=wf(A,"width");for(Pf(o*2>=i.length,`value exceeds width (${o} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:e});i.length>6|192),t.push(o&63|128);else if((o&64512)==55296){i++;const r=e.charCodeAt(i);Re(i>18|240),t.push(f>>12&63|128),t.push(f>>6&63|128),t.push(f&63|128)}else t.push(o>>12|224),t.push(o>>6&63|128),t.push(o&63|128)}return new Uint8Array(t)}function Iy(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Hz(e,...A){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(A.length>0&&!A.includes(e.length))throw new Error(`Expected Uint8Array of length ${A}, not of length=${e.length}`)}function TUA(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Iy(e.outputLen),Iy(e.blockLen)}function tq(e,A=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(A&&e.finished)throw new Error("Hash#digest() has already been called")}function wxA(e,A){Hz(e);const t=A.outputLen;if(e.lengthe instanceof Uint8Array,DxA=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),PUA=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),OUA=(e,A)=>e<<32-A|e>>>A,mxA=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!mxA)throw new Error("Non little-endian hardware is not supported");function vxA(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Jz(e){if(typeof e=="string"&&(e=vxA(e)),!Yz(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function jUA(...e){const A=new Uint8Array(e.reduce((i,o)=>i+o.length,0));let t=0;return e.forEach(i=>{if(!Yz(i))throw new Error("Uint8Array expected");A.set(i,t),t+=i.length}),A}class MxA{clone(){return this._cloneInto()}}function bxA(e){const A=i=>e().update(Jz(i)).digest(),t=e();return A.outputLen=t.outputLen,A.blockLen=t.blockLen,A.create=()=>e(),A}function WUA(e=32){if(O2&&typeof O2.getRandomValues=="function")return O2.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}const iE=BigInt(2**32-1),nk=BigInt(32);function Tz(e,A=!1){return A?{h:Number(e&iE),l:Number(e>>nk&iE)}:{h:Number(e>>nk&iE)|0,l:Number(e&iE)|0}}function Pz(e,A=!1){let t=new Uint32Array(e.length),i=new Uint32Array(e.length);for(let o=0;oBigInt(e>>>0)<>>0),NxA=(e,A,t)=>e>>>t,kxA=(e,A,t)=>e<<32-t|A>>>t,RxA=(e,A,t)=>e>>>t|A<<32-t,KxA=(e,A,t)=>e<<32-t|A>>>t,GxA=(e,A,t)=>e<<64-t|A>>>t-32,FxA=(e,A,t)=>e>>>t-32|A<<64-t,xxA=(e,A)=>A,LxA=(e,A)=>e,Oz=(e,A,t)=>e<>>32-t,jz=(e,A,t)=>A<>>32-t,Wz=(e,A,t)=>A<>>64-t,Vz=(e,A,t)=>e<>>64-t;function UxA(e,A,t,i){const o=(A>>>0)+(i>>>0);return{h:e+t+(o/2**32|0)|0,l:o|0}}const _xA=(e,A,t)=>(e>>>0)+(A>>>0)+(t>>>0),qxA=(e,A,t,i)=>A+t+i+(e/2**32|0)|0,HxA=(e,A,t,i)=>(e>>>0)+(A>>>0)+(t>>>0)+(i>>>0),YxA=(e,A,t,i,o)=>A+t+i+o+(e/2**32|0)|0,JxA=(e,A,t,i,o)=>(e>>>0)+(A>>>0)+(t>>>0)+(i>>>0)+(o>>>0),TxA=(e,A,t,i,o,r)=>A+t+i+o+r+(e/2**32|0)|0,VUA={fromBig:Tz,split:Pz,toBig:SxA,shrSH:NxA,shrSL:kxA,rotrSH:RxA,rotrSL:KxA,rotrBH:GxA,rotrBL:FxA,rotr32H:xxA,rotr32L:LxA,rotlSH:Oz,rotlSL:jz,rotlBH:Wz,rotlBL:Vz,add:UxA,add3L:_xA,add3H:qxA,add4L:HxA,add4H:YxA,add5H:TxA,add5L:JxA},[Zz,zz,$z]=[[],[],[]],PxA=BigInt(0),Xl=BigInt(1),OxA=BigInt(2),jxA=BigInt(7),WxA=BigInt(256),VxA=BigInt(113);for(let e=0,A=Xl,t=1,i=0;e<24;e++){[t,i]=[i,(2*t+3*i)%5],Zz.push(2*(5*i+t)),zz.push((e+1)*(e+2)/2%64);let o=PxA;for(let r=0;r<7;r++)A=(A<>jxA)*VxA)%WxA,A&OxA&&(o^=Xl<<(Xl<t>32?Wz(e,A,t):Oz(e,A,t),rq=(e,A,t)=>t>32?Vz(e,A,t):jz(e,A,t);function $xA(e,A=24){const t=new Uint32Array(10);for(let i=24-A;i<24;i++){for(let f=0;f<10;f++)t[f]=e[f]^e[f+10]^e[f+20]^e[f+30]^e[f+40];for(let f=0;f<10;f+=2){const h=(f+8)%10,d=(f+2)%10,p=t[d],C=t[d+1],y=iq(p,C,1)^t[h],w=rq(p,C,1)^t[h+1];for(let D=0;D<50;D+=10)e[f+D]^=y,e[f+D+1]^=w}let o=e[2],r=e[3];for(let f=0;f<24;f++){const h=zz[f],d=iq(o,r,h),p=rq(o,r,h),C=Zz[f];o=e[C],r=e[C+1],e[C]=d,e[C+1]=p}for(let f=0;f<50;f+=10){for(let h=0;h<10;h++)t[h]=e[f+h];for(let h=0;h<10;h++)e[f+h]^=~t[(h+2)%10]&t[(h+4)%10]}e[0]^=ZxA[i],e[1]^=zxA[i]}t.fill(0)}class lG extends MxA{constructor(A,t,i,o=!1,r=24){if(super(),this.blockLen=A,this.suffix=t,this.outputLen=i,this.enableXOF=o,this.rounds=r,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Iy(i),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=DxA(this.state)}keccak(){$xA(this.state32,this.rounds),this.posOut=0,this.pos=0}update(A){tq(this);const{blockLen:t,state:i}=this;A=Jz(A);const o=A.length;for(let r=0;r=i&&this.keccak();const f=Math.min(i-this.posOut,r-o);A.set(t.subarray(this.posOut,this.posOut+f),o),this.posOut+=f,o+=f}return A}xofInto(A){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(A)}xof(A){return Iy(A),this.xofInto(new Uint8Array(A))}digestInto(A){if(wxA(A,this),this.finished)throw new Error("digest() was already called");return this.writeInto(A),this.destroy(),A}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(A){const{blockLen:t,suffix:i,outputLen:o,rounds:r,enableXOF:f}=this;return A||(A=new lG(t,i,o,f,r)),A.state32.set(this.state32),A.pos=this.pos,A.posOut=this.posOut,A.finished=this.finished,A.rounds=r,A.suffix=i,A.outputLen=o,A.enableXOF=f,A.destroyed=this.destroyed,A}}const XxA=(e,A,t)=>bxA(()=>new lG(A,e,t)),A6A=XxA(1,136,256/8);let Xz=!1;const A$=function(e){return A6A(e)};let e$=A$;function Bn(e){const A=jr(e,"data");return mr(e$(A))}Bn._=A$;Bn.lock=function(){Xz=!0};Bn.register=function(e){if(Xz)throw new TypeError("keccak256 is locked");e$=e};Object.freeze(Bn);const nq="0x0000000000000000000000000000000000000000000000000000000000000000",e6A=`Ethereum Signed Message: +`,oq=BigInt(0),sq=BigInt(1),aq=BigInt(2),gq=BigInt(27),Iq=BigInt(28),rE=BigInt(35),vh={};function fq(e){return _z(qz(e),32)}var Nc,kc,Rc,$I;const mo=class mo{constructor(A,t,i,o){Xs(this,Nc);Xs(this,kc);Xs(this,Rc);Xs(this,$I);BxA(A,vh,"Signature"),fn(this,Nc,t),fn(this,kc,i),fn(this,Rc,o),fn(this,$I,null)}get r(){return In(this,Nc)}set r(A){Re(eq(A)===32,"invalid r","value",A),fn(this,Nc,mr(A))}get s(){return In(this,kc)}set s(A){Re(eq(A)===32,"invalid s","value",A);const t=mr(A);Re(parseInt(t.substring(0,3))<8,"non-canonical s","value",t),fn(this,kc,t)}get v(){return In(this,Rc)}set v(A){const t=wf(A,"value");Re(t===27||t===28,"invalid v","v",A),fn(this,Rc,t)}get networkV(){return In(this,$I)}get legacyChainId(){const A=this.networkV;return A==null?null:mo.getChainId(A)}get yParity(){return this.v===27?0:1}get yParityAndS(){const A=jr(this.s);return this.yParity&&(A[0]|=128),mr(A)}get compactSerialized(){return yf([this.r,this.yParityAndS])}get serialized(){return yf([this.r,this.s,this.yParity?"0x1c":"0x1b"])}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const A=new mo(vh,this.r,this.s,this.v);return this.networkV&&fn(A,$I,this.networkV),A}toJSON(){const A=this.networkV;return{_type:"signature",networkV:A!=null?A.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(A){const t=va(A,"v");return t==gq||t==Iq?oq:(Re(t>=rE,"invalid EIP-155 v","v",A),(t-rE)/aq)}static getChainIdV(A,t){return va(A)*aq+BigInt(35+t-27)}static getNormalizedV(A){const t=va(A);return t===oq||t===gq?27:t===sq||t===Iq?28:(Re(t>=rE,"invalid v","v",A),t&sq?27:28)}static from(A){function t(p,C){Re(p,C,"signature",A)}if(A==null)return new mo(vh,nq,nq,27);if(typeof A=="string"){const p=jr(A,"signature");if(p.length===64){const C=mr(p.slice(0,32)),y=p.slice(32,64),w=y[0]&128?28:27;return y[0]&=127,new mo(vh,C,mr(y),w)}if(p.length===65){const C=mr(p.slice(0,32)),y=p.slice(32,64);t((y[0]&128)===0,"non-canonical s");const w=mo.getNormalizedV(p[64]);return new mo(vh,C,mr(y),w)}t(!1,"invalid raw signature length")}if(A instanceof mo)return A.clone();const i=A.r;t(i!=null,"missing r");const o=fq(i),r=function(p,C){if(p!=null)return fq(p);if(C!=null){t(Su(C,32),"invalid yParityAndS");const y=jr(C);return y[0]&=127,mr(y)}t(!1,"missing s")}(A.s,A.yParityAndS);t((jr(r)[0]&128)==0,"non-canonical s");const{networkV:f,v:h}=function(p,C,y){if(p!=null){const w=va(p);return{networkV:w>=rE?w:void 0,v:mo.getNormalizedV(w)}}if(C!=null)return t(Su(C,32),"invalid yParityAndS"),{v:jr(C)[0]&128?28:27};if(y!=null){switch(wf(y,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}t(!1,"invalid yParity")}t(!1,"missing v")}(A.v,A.yParityAndS,A.yParity),d=new mo(vh,o,r,h);return f&&fn(d,$I,f),t(A.yParity==null||wf(A.yParity,"sig.yParity")===d.yParity,"yParity mismatch"),t(A.yParityAndS==null||A.yParityAndS===d.yParityAndS,"yParityAndS mismatch"),d}};Nc=new WeakMap,kc=new WeakMap,Rc=new WeakMap,$I=new WeakMap;let ok=mo;const t6A=BigInt(0),i6A=BigInt(36);function hq(e){e=e.toLowerCase();const A=e.substring(2).split(""),t=new Uint8Array(40);for(let o=0;o<40;o++)t[o]=A[o].charCodeAt(0);const i=jr(Bn(t));for(let o=0;o<40;o+=2)i[o>>1]>>4>=8&&(A[o]=A[o].toUpperCase()),(i[o>>1]&15)>=8&&(A[o+1]=A[o+1].toUpperCase());return"0x"+A.join("")}const CG={};for(let e=0;e<10;e++)CG[String(e)]=String(e);for(let e=0;e<26;e++)CG[String.fromCharCode(65+e)]=String(10+e);const cq=15;function r6A(e){e=e.toUpperCase(),e=e.substring(4)+e.substring(0,2)+"00";let A=e.split("").map(i=>CG[i]).join("");for(;A.length>=cq;){let i=A.substring(0,cq);A=parseInt(i,10)%97+A.substring(i.length)}let t=String(98-parseInt(A,10)%97);for(;t.length<2;)t="0"+t;return t}const n6A=function(){const e={};for(let A=0;A<36;A++){const t="0123456789abcdefghijklmnopqrstuvwxyz"[A];e[t]=BigInt(A)}return e}();function o6A(e){e=e.toLowerCase();let A=t6A;for(let t=0;t=0,"invalid chain ID","domain.chainId",e),Number.isSafeInteger(A)?Number(A):yxA(A)},verifyingContract:function(e){try{return t$(e).toLowerCase()}catch{}Re(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){const A=jr(e,"domain.salt");return Re(A.length===32,'invalid domain value "salt"',"domain.salt",e),mr(A)}};function W2(e){{const A=e.match(/^(u?)int(\d+)$/);if(A){const t=A[1]==="",i=parseInt(A[2]);Re(i%8===0&&i!==0&&i<=256&&A[2]===String(i),"invalid numeric width","type",e);const o=pxA(g6A,t?i-1:i),r=t?(o+o$)*a6A:n$;return function(f){const h=va(f,"value");return Re(h>=r&&h<=o,`value out-of-bounds for ${e}`,"value",h),uG(t?QxA(h,256):h,32)}}}{const A=e.match(/^bytes(\d+)$/);if(A){const t=parseInt(A[1]);return Re(t!==0&&t<=32&&A[1]===String(t),"invalid bytes width","type",e),function(i){const o=jr(i);return Re(o.length===t,`invalid length for ${e}`,"value",i),I6A(i)}}}switch(e){case"address":return function(A){return _z(t$(A),32)};case"bool":return function(A){return A?f6A:h6A};case"bytes":return function(A){return Bn(A)};case"string":return function(A){return i$(A)}}return null}function Cq(e,A){return`${e}(${A.map(({name:t,type:i})=>i+" "+t).join(",")})`}function nE(e){const A=e.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return A?{base:A[1],index:A[2]+A[4],array:{base:A[1],prefix:A[1]+A[2],count:A[5]?parseInt(A[5]):-1}}:{base:e}}var WC,la,Kc,Ey,s$;const Pn=class Pn{constructor(A){Xs(this,Ey);vG(this,"primaryType");Xs(this,WC);Xs(this,la);Xs(this,Kc);fn(this,la,new Map),fn(this,Kc,new Map);const t=new Map,i=new Map,o=new Map,r={};Object.keys(A).forEach(d=>{r[d]=A[d].map(({name:p,type:C})=>{let{base:y,index:w}=nE(C);return y==="int"&&!A.int&&(y="int256"),y==="uint"&&!A.uint&&(y="uint256"),{name:p,type:y+(w||"")}}),t.set(d,new Set),i.set(d,[]),o.set(d,new Set)}),fn(this,WC,JSON.stringify(r));for(const d in r){const p=new Set;for(const C of r[d]){Re(!p.has(C.name),`duplicate variable name ${JSON.stringify(C.name)} in ${JSON.stringify(d)}`,"types",A),p.add(C.name);const y=nE(C.type).base;Re(y!==d,`circular type reference to ${JSON.stringify(y)}`,"types",A),!W2(y)&&(Re(i.has(y),`unknown type ${JSON.stringify(y)}`,"types",A),i.get(y).push(d),t.get(d).add(y))}}const f=Array.from(i.keys()).filter(d=>i.get(d).length===0);Re(f.length!==0,"missing primary type","types",A),Re(f.length===1,`ambiguous primary types or unused types: ${f.map(d=>JSON.stringify(d)).join(", ")}`,"types",A),rk(this,{primaryType:f[0]});function h(d,p){Re(!p.has(d),`circular type reference to ${JSON.stringify(d)}`,"types",A),p.add(d);for(const C of t.get(d))if(i.has(C)){h(C,p);for(const y of p)o.get(y).add(C)}p.delete(d)}h(this.primaryType,new Set);for(const[d,p]of o){const C=Array.from(p);C.sort(),In(this,la).set(d,Cq(d,r[d])+C.map(y=>Cq(y,r[y])).join(""))}}get types(){return JSON.parse(In(this,WC))}getEncoder(A){let t=In(this,Kc).get(A);return t||(t=MG(this,Ey,s$).call(this,A),In(this,Kc).set(A,t)),t}encodeType(A){const t=In(this,la).get(A);return Re(t,`unknown type: ${JSON.stringify(A)}`,"name",A),t}encodeData(A,t){return this.getEncoder(A)(t)}hashStruct(A,t){return Bn(this.encodeData(A,t))}encode(A){return this.encodeData(this.primaryType,A)}hash(A){return this.hashStruct(this.primaryType,A)}_visit(A,t,i){if(W2(A))return i(A,t);const o=nE(A).array;if(o)return Re(o.count===-1||o.count===t.length,`array length mismatch; expected length ${o.count}`,"value",t),t.map(f=>this._visit(o.prefix,f,i));const r=this.types[A];if(r)return r.reduce((f,{name:h,type:d})=>(f[h]=this._visit(d,t[h],i),f),{});Re(!1,`unknown type: ${A}`,"type",A)}visit(A,t){return this._visit(this.primaryType,A,t)}static from(A){return new Pn(A)}static getPrimaryType(A){return Pn.from(A).primaryType}static hashStruct(A,t,i){return Pn.from(t).hashStruct(A,i)}static hashDomain(A){const t=[];for(const i in A){if(A[i]==null)continue;const o=uq[i];Re(o,`invalid typed-data domain key: ${JSON.stringify(i)}`,"domain",A),t.push({name:i,type:o})}return t.sort((i,o)=>j2.indexOf(i.name)-j2.indexOf(o.name)),Pn.hashStruct("EIP712Domain",{EIP712Domain:t},A)}static encode(A,t,i){return yf(["0x1901",Pn.hashDomain(A),Pn.from(t).hash(i)])}static hash(A,t,i){return Bn(Pn.encode(A,t,i))}static async resolveNames(A,t,i,o){A=Object.assign({},A);for(const h in A)A[h]==null&&delete A[h];const r={};A.verifyingContract&&!Su(A.verifyingContract,20)&&(r[A.verifyingContract]="0x");const f=Pn.from(t);f.visit(i,(h,d)=>(h==="address"&&!Su(d,20)&&(r[d]="0x"),d));for(const h in r)r[h]=await o(h);return A.verifyingContract&&r[A.verifyingContract]&&(A.verifyingContract=r[A.verifyingContract]),i=f.visit(i,(h,d)=>h==="address"&&r[d]?r[d]:d),{domain:A,value:i}}static getPayload(A,t,i){Pn.hashDomain(A);const o={},r=[];j2.forEach(d=>{const p=A[d];p!=null&&(o[d]=c6A[d](p),r.push({name:d,type:uq[d]}))});const f=Pn.from(t);t=f.types;const h=Object.assign({},t);return Re(h.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",t),h.EIP712Domain=r,f.encode(i),{types:h,domain:o,primaryType:f.primaryType,message:f.visit(i,(d,p)=>{if(d.match(/^bytes(\d*)/))return mr(jr(p));if(d.match(/^u?int/))return va(p).toString();switch(d){case"address":return p.toLowerCase();case"bool":return!!p;case"string":return Re(typeof p=="string","invalid string","value",p),p}Re(!1,"unsupported type","type",d)})}}};WC=new WeakMap,la=new WeakMap,Kc=new WeakMap,Ey=new WeakSet,s$=function(A){{const o=W2(A);if(o)return o}const t=nE(A).array;if(t){const o=t.prefix,r=this.getEncoder(o);return f=>{Re(t.count===-1||t.count===f.length,`array length mismatch; expected length ${t.count}`,"value",f);let h=f.map(r);return In(this,la).has(o)&&(h=h.map(Bn)),Bn(yf(h))}}const i=this.types[A];if(i){const o=i$(In(this,la).get(A));return r=>{const f=i.map(({name:h,type:d})=>{const p=this.getEncoder(d)(r[h]);return In(this,la).has(d)?Bn(p):p});return f.unshift(o),yf(f)}}Re(!1,`unknown type: ${A}`,"type",A)};let sk=Pn;const a$=new Ki("1e18"),g$=new Ki("1e9"),I$=new Ki("1"),u6A={hex:e=>typeof e=="string"?new Ki(rI(e),16):new Ki(e,16),dec:e=>new Ki(e,10)},l6A={WEI:e=>e.div(a$),GWEI:e=>e.div(g$),ETH:e=>e.div(I$)},C6A={WEI:e=>e.times(a$).dp(0,Ki.ROUND_HALF_UP),GWEI:e=>e.times(g$).dp(9,Ki.ROUND_HALF_UP),ETH:e=>e.times(I$).dp(9,Ki.ROUND_HALF_UP)},B6A={hex:e=>e.toString(16),dec:e=>new Ki(e).toString(10)},d6A=e=>{const{value:A,fromNumericBase:t,fromDenomination:i,toNumericBase:o,toDenomination:r,numberOfDecimals:f}=e;let h=u6A[t](A);return i&&(h=l6A[i](h)),r&&(h=C6A[r](h)),f&&(h=h.dp(f,Ki.ROUND_HALF_DOWN)),o&&(h=B6A[o](h)),h},f$=(e,{fromNumericBase:A="hex",toNumericBase:t,fromDenomination:i,toDenomination:o,numberOfDecimals:r})=>d6A({fromNumericBase:A,toNumericBase:t,fromDenomination:i,toDenomination:o,numberOfDecimals:r,value:e||"0"});function xh(e){return f$(e,{fromNumericBase:"dec",toNumericBase:"hex",fromDenomination:"GWEI",toDenomination:"WEI"})}function ga(e){return f$(e,{fromNumericBase:"hex",toNumericBase:"dec",fromDenomination:"WEI",toDenomination:"GWEI"})}function NI(e){const A=xh(e);return ga(A).toString()}async function E6A(e){const A=await Nn(e);return ZA(ZA({},A),{},{estimatedBaseFee:NI(A.estimatedBaseFee),low:ZA(ZA({},A.low),{},{suggestedMaxPriorityFeePerGas:NI(A.low.suggestedMaxPriorityFeePerGas),suggestedMaxFeePerGas:NI(A.low.suggestedMaxFeePerGas)}),medium:ZA(ZA({},A.medium),{},{suggestedMaxPriorityFeePerGas:NI(A.medium.suggestedMaxPriorityFeePerGas),suggestedMaxFeePerGas:NI(A.medium.suggestedMaxFeePerGas)}),high:ZA(ZA({},A.high),{},{suggestedMaxPriorityFeePerGas:NI(A.high.suggestedMaxPriorityFeePerGas),suggestedMaxFeePerGas:NI(A.high.suggestedMaxFeePerGas)})})}async function Q6A(e){const A=await Nn(e,{referrer:e,referrerPolicy:"no-referrer-when-downgrade",method:"GET",mode:"cors"});return{low:A.SafeGasPrice,medium:A.ProposeGasPrice,high:A.FastGasPrice}}function p6A(e,A){if(!e||typeof e!="string"||!OFA(e))throw new Error(`Invalid "${A}" address: ${e} must be a valid string.`)}async function y6A(e,A){if(p6A(e.from,"from"),!e.data||Array.isArray(e.data)||typeof e.data!="object"&&typeof e.data!="string")throw new Error('Invalid message "data": Must be a valid string or object.');let t;if(typeof e.data=="object")t=e.data;else try{t=JSON.parse(e.data)}catch{throw new Error("Data must be passed as a valid JSON string.")}if(!A)throw new Error("Current chainId cannot be null or undefined.");let{chainId:i}=t.domain;if(i){typeof i=="string"&&(i=parseInt(i,i.startsWith("0x")?16:10));const o=parseInt(A,16);if(Number.isNaN(o))throw new Error(`Cannot sign messages for chainId "${i}", because Web3Auth is switching networks.`);if(i!==o)throw new Error(`Provided chainId "${i}" must match the active chainId "${o}"`)}}function w6A(e,A){return e==null||A===null||A===void 0?null:new Ki(e,10).lt(A,10)}function oE(e){return Ti(e.toString(16))}function V2(e){return _A.isBN(e)?e:new _A(rI(e),16)}function D6A(e,A,t){const i=new _A(A),o=new _A(t);return e.mul(i).div(o)}const m6A="https://gas-api.metaswap.codefi.network/networks//gasPrices",v6A="https://gas-api.metaswap.codefi.network/networks//suggestedGasFees",Bq={LEGACY:"0x0",ACCESS_LIST:"0x1",FEE_MARKET:"0x2"},sE={SENT_ETHER:"sentEther",CONTRACT_INTERACTION:"contractInteraction",DEPLOY_CONTRACT:"contractDeployment",STANDARD_TRANSACTION:"transaction"},Mh={FEE_MARKET:"fee-market",LEGACY:"legacy",ETH_GASPRICE:"eth_gasPrice",NONE:"none"};class M6A{constructor({getProviderEngineProxy:A}){FA(this,"API_SUPPORTED_CHAINIDS",new Set(["0x1","0x5","0x13881","0xa4b1","0xa86a","0x2105","0x38","0xfa","0xa","0x89"])),FA(this,"chainConfig",null),FA(this,"getProviderEngineProxy",void 0),FA(this,"isEIP1559Compatible",!1),this.getProviderEngineProxy=A}get providerProxy(){return this.getProviderEngineProxy()}async init(){this.chainConfig=await this.providerProxy.request({method:"eth_provider_config"}),this.isEIP1559Compatible=await this.getEIP1559Compatibility()}async formatTransaction(A){if(!this.chainConfig)throw new Error("Chain config not initialized");const t=ZA({},A);if(t.nonce===void 0&&(t.nonce=await this.providerProxy.request({method:"eth_getTransactionCount",params:[A.from,"latest"]})),!this.isEIP1559Compatible&&t.gasPrice){if(t.maxFeePerGas&&delete t.maxFeePerGas,t.maxPriorityFeePerGas&&delete t.maxPriorityFeePerGas,!t.gasLimit)if(t.gas)t.gasLimit=Ti(t.gas);else{const f=await this.getDefaultGasLimit(t);f&&(t.gasLimit=f)}return t}if(!t.gasLimit)if(t.gas)t.gasLimit=Ti(t.gas);else{const f=await this.getDefaultGasLimit(t);f&&(t.gasLimit=f)}const{gasPrice:i,maxFeePerGas:o,maxPriorityFeePerGas:r}=await this.getDefaultGasFees(t);return this.isEIP1559Compatible?(t.gasPrice&&!t.maxFeePerGas&&!t.maxPriorityFeePerGas?(t.maxFeePerGas=t.gasPrice,t.maxPriorityFeePerGas=w6A(typeof r=="string"?rI(r):r,typeof t.gasPrice=="string"?rI(t.gasPrice):t.gasPrice.toString())?Ti(r):Ti(t.gasPrice.toString())):(o&&!t.maxFeePerGas&&(t.maxFeePerGas=Ti(o)),r&&!t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=Ti(r)),i&&!t.maxFeePerGas&&(t.maxFeePerGas=Ti(i)),t.maxFeePerGas&&!t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=t.maxFeePerGas)),delete t.gasPrice):(delete t.maxPriorityFeePerGas,delete t.maxFeePerGas),i&&!t.gasPrice&&!t.maxPriorityFeePerGas&&!t.maxFeePerGas&&(t.gasPrice=i),t.type=Number.parseInt(this.isEIP1559Compatible?Bq.FEE_MARKET:Bq.LEGACY,16),t.chainId=this.chainConfig.chainId,t}async fetchEthGasPriceEstimate(){const A=await this.providerProxy.request({method:"eth_gasPrice",params:[]});return{gasPrice:ga(A).toString()}}async fetchGasEstimatesViaEthFeeHistory(){const t="latest",i=[10,50,95],o=await this.providerProxy.request({method:"eth_feeHistory",params:[10,t,i]}),r=o.baseFeePerGas[o.baseFeePerGas.length-1],f=o.reward.reduce((h,d)=>({slow:h.slow.plus(new Ki(d[0],16)),average:h.average.plus(new Ki(d[1],16)),fast:h.fast.plus(new Ki(d[2],16))}),{slow:new Ki(0),average:new Ki(0),fast:new Ki(0)});return{estimatedBaseFee:ga(r).toString(),high:{maxWaitTimeEstimate:3e4,minWaitTimeEstimate:15e3,suggestedMaxFeePerGas:ga(f.fast.plus(r).toString(16)).toString(),suggestedMaxPriorityFeePerGas:ga(f.fast.toString(16)).toString()},medium:{maxWaitTimeEstimate:45e3,minWaitTimeEstimate:15e3,suggestedMaxFeePerGas:ga(f.average.plus(r).toString(16)).toString(),suggestedMaxPriorityFeePerGas:ga(f.average.toString(16)).toString()},low:{maxWaitTimeEstimate:6e4,minWaitTimeEstimate:15e3,suggestedMaxFeePerGas:ga(f.slow.plus(r).toString(16)).toString(),suggestedMaxPriorityFeePerGas:ga(f.slow.toString(16)).toString()}}}async getEIP1559Compatibility(){const A=await this.providerProxy.request({method:"eth_getBlockByNumber",params:["latest",!1]});return!!(A&&A.baseFeePerGas!==void 0)}async fetchGasFeeEstimateData(){if(!this.chainConfig)throw new Error("Chain config not initialized");const A=this.chainConfig.chainId==="0x1",t=Number.parseInt(this.chainConfig.chainId,16);let i;try{if(this.isEIP1559Compatible){let o;try{if(this.API_SUPPORTED_CHAINIDS.has(this.chainConfig.chainId))o=await E6A(v6A.replace("",`${t}`));else throw new Error("Chain id not supported by api")}catch{o=await this.fetchGasEstimatesViaEthFeeHistory()}i={gasFeeEstimates:o,gasEstimateType:Mh.FEE_MARKET}}else if(A)i={gasFeeEstimates:await Q6A(m6A.replace("",`${t}`)),gasEstimateType:Mh.LEGACY};else throw new Error("Main gas fee/price estimation failed. Use fallback")}catch{try{i={gasFeeEstimates:await this.fetchEthGasPriceEstimate(),gasEstimateType:Mh.ETH_GASPRICE}}catch(r){throw new Error(`Gas fee/price estimation failed. Message: ${r.message}`)}}return i}async getDefaultGasFees(A){if(!this.isEIP1559Compatible&&A.gasPrice||this.isEIP1559Compatible&&A.maxFeePerGas&&A.maxPriorityFeePerGas)return{};try{const{gasFeeEstimates:i,gasEstimateType:o}=await this.fetchGasFeeEstimateData();if(this.isEIP1559Compatible&&o===Mh.FEE_MARKET){const{medium:{suggestedMaxPriorityFeePerGas:r,suggestedMaxFeePerGas:f}={}}=i;if(r&&f)return{maxFeePerGas:Ti(xh(f)),maxPriorityFeePerGas:Ti(xh(r))}}else{if(o===Mh.LEGACY)return{gasPrice:Ti(xh(i.medium))};if(o===Mh.ETH_GASPRICE)return{gasPrice:Ti(xh(i.gasPrice))}}}catch(i){aQ.error(i)}const{gasPrice:t}=await this.fetchEthGasPriceEstimate();return{gasPrice:Ti(xh(t))}}async estimateTxGas(A){const t=ZA({},A);return delete t.gasPrice,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas,await this.providerProxy.request({method:"eth_estimateGas",params:[t]})}async analyzeGasUsage(A){const t=await this.providerProxy.request({method:"eth_getBlockByNumber",params:["latest",!1]}),i=V2(t.gasLimit),o=D6A(i,19,20);let r=oE(o);try{r=await this.estimateTxGas(A)}catch(f){aQ.warn(f)}return{blockGasLimit:t.gasLimit,estimatedGasHex:r}}addGasBuffer(A,t,i=1.5){const o=V2(A),f=V2(t).muln(.9),h=o.muln(i);return o.gt(f)?oE(o):h.lt(f)?oE(h):oE(f)}async determineTransactionCategory(A){const{data:t,to:i}=A;let o="",r;if(t&&!i)r=sE.DEPLOY_CONTRACT;else{try{o=await this.providerProxy.request({method:"eth_getCode",params:[i,"latest"]})}catch(h){aQ.warn(h)}r=!o||o==="0x"||o==="0x0"?sE.SENT_ETHER:sE.CONTRACT_INTERACTION}return{transactionCategory:r,code:o}}async getDefaultGasLimit(A){const{transactionCategory:t}=await this.determineTransactionCategory(ZA({},A));if(A.gas)return Ti(A.gas);if(A.to&&t===sE.SENT_ETHER){if(A.data)throw Error("TxGasUtil - Trying to call a function on a non-contract address");return Ti(21e3.toString(16))}const{blockGasLimit:i,estimatedGasHex:o}=await this.analyzeGasUsage(A);return this.addGasBuffer(Ti(o),i)}}let h$=function(e){return e.V1="V1",e.V3="V3",e.V4="V4",e}({});function b6A({updatePrivatekey:e}){async function A(t,i){var o;const r=(o=t.params)!==null&&o!==void 0&&o.length?t.params[0]:void 0;if(!(r!=null&&r.privateKey))throw mt.invalidParams("Missing privateKey");i.result=await e(r)}return _D({wallet_updateAccount:Lr(A)})}async function dq(e,A,t){const{Transaction:i}=await o3(async()=>{const{Transaction:w}=await import("./index-BBrtMuOx.js");return{Transaction:w}},[]),o=await t.formatTransaction(e),r=i.from(ZA(ZA({},o),{},{from:void 0})),f=rI(r.unsignedHash),h=await A(Buffer.from(f,"hex"));let{v:d}=h;const{r:p,s:C}=h;d>1&&(d=d-27);const y=r;return y.signature=ok.from({v:d,r:`0x${p.toString("hex")}`,s:`0x${C.toString("hex")}`}),y.serialized}async function S6A(e,A){const t=rI(A),i=await e(Buffer.from(t,"hex"));let o=i.v;return o<=1&&(o=o+27),fG(Buffer.from(rh(o)),i.r,i.s)}async function N6A(e,A){if(A==null)throw new Error("Missing data parameter");const t=qB(A)?Buffer.from(rI(A),"hex"):Buffer.from(A),i=s6A(t),o=Buffer.from(`Ethereum Signed Message: +${t.length}`,"utf-8"),r=await e(Buffer.from(i.slice(2),"hex"),Buffer.concat([o,t]));let f=r.v;return f<=1&&(f=f+27),fG(Buffer.from(IG(f)),r.r,r.s)}function k6A(e,A){if(!Object.keys(h$).includes(e))throw new Error(`Invalid version: '${e}'`)}async function R6A(e,A,t){if(k6A(t),A==null)throw new Error("Missing data parameter");const i=typeof A=="string"?JSON.parse(A):A,{v:o,r,s:f}=await e(Buffer.from(sk.hash(i.domain,i.types,i.message).slice(2),"hex"));let h=o;return h<=1&&(h=h+27),fG(Buffer.from(IG(h)),r,f)}function K6A({txFormatter:e,sign:A,getPublic:t,getProviderEngineProxy:i}){return{getAccounts:async o=>{const r=await t();return[`0x${Buffer.from(WFA(r)).toString("hex")}`]},getPrivateKey:async o=>{throw Ro.custom({message:"MPC Provider cannot return private key",code:4902})},getPublicKey:async o=>`0x${(await t()).toString("hex")}`,processTransaction:async(o,r)=>{const f=i();if(!f)throw Ro.custom({message:"Provider is not initialized",code:4902});const h=await dq(o,A,e);return await f.request({method:"eth_sendRawTransaction",params:[h]})},processSignTransaction:async(o,r)=>{if(!i())throw Ro.custom({message:"Provider is not initialized",code:4902});return await dq(o,A,e)},processEthSignMessage:async(o,r)=>S6A(A,o.data),processPersonalMessage:async(o,r)=>N6A(A,o.data),processTypedMessageV4:async(o,r)=>{aQ.debug("processTypedMessageV4",o);const f=i();if(!f)throw Ro.custom({message:"Provider is not initialized",code:4902});const h=await f.request({method:"eth_chainId"});await y6A(o,h);const d=typeof o.data=="string"?JSON.parse(o.data):o.data;return R6A(A,d,h$.V4)}}}var c$;class BG extends axA{constructor({config:A,state:t}){super({config:{chainConfig:ZA(ZA({},A.chainConfig),{},{chainNamespace:bc.EIP155})},state:t}),FA(this,"PROVIDER_CHAIN_NAMESPACE",bc.EIP155)}async enable(){if(!this.state.signMethods)throw Ro.custom({message:"signMethods are not found in state, plz pass it in constructor state param",code:4902});return await this.setupProvider(this.state.signMethods),this._providerEngineProxy.request({method:"eth_accounts"})}async setupProvider({sign:A,getPublic:t}){const{chainNamespace:i}=this.config.chainConfig;if(i!==this.PROVIDER_CHAIN_NAMESPACE)throw gi.incompatibleChainNameSpace("Invalid chain namespace");const o=new M6A({getProviderEngineProxy:this.getProviderEngineProxy.bind(this)}),r=K6A({txFormatter:o,sign:A,getPublic:t,getProviderEngineProxy:this.getProviderEngineProxy.bind(this)}),f=IxA(r),h=this.getChainSwitchMiddleware(),d=new gs,{networkMiddleware:p}=uxA(this.config.chainConfig);d.push(f),d.push(h),d.push(this.getAccountMiddleware()),d.push(p);const C=GFA(d);this.updateProviderEngineProxy(C),await o.init(),await this.lookupNetwork(),this.state.signMethods={sign:A,getPublic:t}}async updateAccount(A){if(!this._providerEngineProxy)throw Ro.custom({message:"Provider is not initialized",code:4902});const t=this.state.signMethods;if(!t)throw Ro.custom({message:"signing methods are unavailable ",code:4092});const i=(await t.getPublic()).toString("hex"),o=(await A.signMethods.getPublic()).toString("hex");if(i!==o){await this.setupProvider(A.signMethods);const r=await this._providerEngineProxy.request({method:"eth_accounts"});this.emit("accountsChanged",r)}}async switchChain(A){if(!this._providerEngineProxy)throw Ro.custom({message:"Provider is not initialized",code:4902});const t=this.getChainConfig(A.chainId);if(this.update({chainId:"loading"}),this.configure({chainConfig:t}),!this.state.signMethods)throw Ro.custom({message:"sign methods are undefined",code:4902});await this.setupProvider(this.state.signMethods)}async lookupNetwork(){if(!this._providerEngineProxy)throw Ro.custom({message:"Provider is not initialized",code:4902});const{chainId:A}=this.config.chainConfig;if(!A)throw mt.invalidParams("chainId is required while lookupNetwork");const t=await this._providerEngineProxy.request({method:"net_version",params:[]}),i=qB(t)?parseInt(t,16):parseInt(t,10);if(parseInt(A,16)!==i)throw Ro.chainDisconnected(`Invalid network, net_version is: ${t}`);return this.state.chainId!==A&&(this.emit("chainChanged",A),this.emit("connect",{chainId:A})),this.update({chainId:A}),t}getChainSwitchMiddleware(){return fxA({addChain:async i=>{const{chainId:o,chainName:r,rpcUrls:f,blockExplorerUrls:h,nativeCurrency:d,iconUrls:p}=i;this.addChain({chainNamespace:bc.EIP155,chainId:o,ticker:(d==null?void 0:d.symbol)||"ETH",tickerName:(d==null?void 0:d.name)||"Ether",displayName:r,rpcTarget:f[0],blockExplorerUrl:(h==null?void 0:h[0])||"",decimals:(d==null?void 0:d.decimals)||18,logo:(p==null?void 0:p[0])||"https://images.toruswallet.io/eth.svg"})},switchChain:async i=>{const{chainId:o}=i;await this.switchChain({chainId:o})}})}getAccountMiddleware(){return b6A({updateSignMethods:async t=>{await this.updateAccount(t)}})}}c$=BG;FA(BG,"getProviderInstance",async e=>{const A=new c$({config:{chainConfig:e.chainConfig}});return await A.setupProvider(e.signMethods),A});var u$={exports:{}};(function(e){(()=>{var A={};A.d=(lA,nA)=>{for(var tA in nA)A.o(nA,tA)&&!A.o(lA,tA)&&Object.defineProperty(lA,tA,{enumerable:!0,get:nA[tA]})},A.o=(lA,nA)=>Object.prototype.hasOwnProperty.call(lA,nA),A.r=lA=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(lA,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(lA,"__esModule",{value:!0})};var t={};A.r(t),A.d(t,{default:()=>aA,load:()=>j,loadSync:()=>sA,tssLib:()=>iA});var i={};A.r(i),A.d(i,{batch_size:()=>X,default:()=>$,get_r_from_precompute:()=>E,initSync:()=>Y,local_sign:()=>B,local_verify:()=>m,precompute:()=>c,random_generator:()=>Q,random_generator_free:()=>n,setup:()=>I,sign:()=>N,threshold_signer:()=>a,threshold_signer_free:()=>g});let o;const r=new Array(32).fill(void 0);r.push(void 0,null,!0,!1);function f(lA){return r[lA]}let h=r.length;function d(lA){lA<36||(r[lA]=h,h=lA)}function p(lA){const nA=f(lA);return d(lA),nA}const C=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});C.decode();let y=new Uint8Array;function w(){return y.byteLength===0&&(y=new Uint8Array(o.memory.buffer)),y}function D(lA,nA){return C.decode(w().subarray(lA,lA+nA))}function v(lA){h===r.length&&r.push(r.length+1);const nA=h;return h=r[nA],r[nA]=lA,nA}let M=0;const R=new TextEncoder("utf-8"),b=typeof R.encodeInto=="function"?function(lA,nA){return R.encodeInto(lA,nA)}:function(lA,nA){const tA=R.encode(lA);return nA.set(tA),{read:lA.length,written:tA.length}};function S(lA,nA,tA){if(tA===void 0){const rA=R.encode(lA),hA=nA(rA.length);return w().subarray(hA,hA+rA.length).set(rA),M=rA.length,hA}let xA=lA.length,gA=nA(xA);const IA=w();let UA=0;for(;UA127)break;IA[gA+UA]=rA}if(UA!==xA){UA!==0&&(lA=lA.slice(UA)),gA=tA(gA,xA,xA=UA+lA.length*3);const rA=w().subarray(gA+UA,gA+xA),hA=b(lA,rA);UA+=hA.written}return M=UA,gA}function G(lA){return lA==null}let U=new Int32Array;function P(){return U.byteLength===0&&(U=new Int32Array(o.memory.buffer)),U}function z(lA){const nA=typeof lA;if(nA=="number"||nA=="boolean"||lA==null)return`${lA}`;if(nA=="string")return`"${lA}"`;if(nA=="symbol"){const gA=lA.description;return gA==null?"Symbol":`Symbol(${gA})`}if(nA=="function"){const gA=lA.name;return typeof gA=="string"&&gA.length>0?`Function(${gA})`:"Function"}if(Array.isArray(lA)){const gA=lA.length;let IA="[";gA>0&&(IA+=z(lA[0]));for(let UA=1;UA1)xA=tA[1];else return toString.call(lA);if(xA=="Object")try{return"Object("+JSON.stringify(lA)+")"}catch{return"Object"}return lA instanceof Error?`${lA.name}: ${lA.message} +${lA.stack}`:xA}function oA(lA,nA,tA,xA){const gA={a:lA,b:nA,cnt:1,dtor:tA},IA=function(){gA.cnt++;const UA=gA.a;gA.a=0;try{for(var rA=arguments.length,hA=new Array(rA),OA=0;OA>>0}function Q(lA){try{const gA=o.__wbindgen_add_to_stack_pointer(-16),IA=S(lA,o.__wbindgen_malloc,o.__wbindgen_realloc),UA=M;o.random_generator(gA,IA,UA);var nA=P()[gA/4+0],tA=P()[gA/4+1],xA=P()[gA/4+2];if(xA)throw p(tA);return nA}finally{o.__wbindgen_add_to_stack_pointer(16)}}function n(lA){o.random_generator_free(lA)}function a(lA,nA,tA,xA,gA,IA){try{const OA=o.__wbindgen_add_to_stack_pointer(-16),x=S(lA,o.__wbindgen_malloc,o.__wbindgen_realloc),k=M,F=S(gA,o.__wbindgen_malloc,o.__wbindgen_realloc),T=M,Z=S(IA,o.__wbindgen_malloc,o.__wbindgen_realloc),fA=M;o.threshold_signer(OA,x,k,nA,tA,xA,F,T,Z,fA);var UA=P()[OA/4+0],rA=P()[OA/4+1],hA=P()[OA/4+2];if(hA)throw p(rA);return UA}finally{o.__wbindgen_add_to_stack_pointer(16)}}function g(lA){o.threshold_signer_free(lA)}function I(lA,nA){const tA=o.setup(lA,nA);return p(tA)}function c(lA,nA,tA){const xA=o.precompute(v(lA),nA,tA);return p(xA)}function B(lA,nA,tA){try{const UA=o.__wbindgen_add_to_stack_pointer(-16),rA=S(lA,o.__wbindgen_malloc,o.__wbindgen_realloc),hA=M;o.local_sign(UA,rA,hA,nA,v(tA));var xA=P()[UA/4+0],gA=P()[UA/4+1],IA=P()[UA/4+2];if(IA)throw p(gA);return p(xA)}finally{o.__wbindgen_add_to_stack_pointer(16)}}function E(lA){try{const gA=o.__wbindgen_add_to_stack_pointer(-16);o.get_r_from_precompute(gA,v(lA));var nA=P()[gA/4+0],tA=P()[gA/4+1],xA=P()[gA/4+2];if(xA)throw p(tA);return p(nA)}finally{o.__wbindgen_add_to_stack_pointer(16)}}let u=new Uint32Array;function s(){return u.byteLength===0&&(u=new Uint32Array(o.memory.buffer)),u}function l(lA,nA){const tA=nA(lA.length*4),xA=s();for(let gA=0;gA>>0,gA>>>0,D(IA,UA),D(rA,hA));return v(OA)}finally{o.__wbindgen_free(nA,tA),o.__wbindgen_free(IA,UA),o.__wbindgen_free(rA,hA)}},arguments)},lA.wbg.__wbg_jsreadmsg_3e2fec56a08697d4=function(){return q(function(nA,tA,xA,gA,IA,UA){try{const rA=js_read_msg(D(nA,tA),xA>>>0,gA>>>0,D(IA,UA));return v(rA)}finally{o.__wbindgen_free(nA,tA),o.__wbindgen_free(IA,UA)}},arguments)},lA.wbg.__wbindgen_string_get=function(nA,tA){const xA=f(tA),gA=typeof xA=="string"?xA:void 0;var IA=G(gA)?0:S(gA,o.__wbindgen_malloc,o.__wbindgen_realloc),UA=M;P()[nA/4+1]=UA,P()[nA/4+0]=IA},lA.wbg.__wbindgen_cb_drop=function(nA){const tA=p(nA).original;return tA.cnt--==1?(tA.a=0,!0):!1},lA.wbg.__wbg_call_168da88779e35f61=function(){return q(function(nA,tA,xA){const gA=f(nA).call(f(tA),f(xA));return v(gA)},arguments)},lA.wbg.__wbg_new_9962f939219f1820=function(nA,tA){try{var xA={a:nA,b:tA},gA=(UA,rA)=>{const hA=xA.a;xA.a=0;try{return L(hA,xA.b,UA,rA)}finally{xA.a=hA}};const IA=new Promise(gA);return v(IA)}finally{xA.a=xA.b=0}},lA.wbg.__wbg_resolve_99fe17964f31ffc0=function(nA){const tA=Promise.resolve(f(nA));return v(tA)},lA.wbg.__wbg_then_11f7a54d67b4bfad=function(nA,tA){const xA=f(nA).then(f(tA));return v(xA)},lA.wbg.__wbg_then_cedad20fbbd9418a=function(nA,tA,xA){const gA=f(nA).then(f(tA),f(xA));return v(gA)},lA.wbg.__wbg_buffer_3f3d764d4747d564=function(nA){const tA=f(nA).buffer;return v(tA)},lA.wbg.__wbg_new_8c3f0052272a457a=function(nA){const tA=new Uint8Array(f(nA));return v(tA)},lA.wbg.__wbg_set_83db9690f9353e79=function(nA,tA,xA){f(nA).set(f(tA),xA>>>0)},lA.wbg.__wbg_length_9e1ae1900cb0fbd5=function(nA){return f(nA).length},lA.wbg.__wbindgen_debug_string=function(nA,tA){const xA=z(f(tA)),gA=S(xA,o.__wbindgen_malloc,o.__wbindgen_realloc),IA=M;P()[nA/4+1]=IA,P()[nA/4+0]=gA},lA.wbg.__wbindgen_throw=function(nA,tA){throw new Error(D(nA,tA))},lA.wbg.__wbindgen_memory=function(){const nA=o.memory;return v(nA)},lA.wbg.__wbindgen_closure_wrapper523=function(nA,tA,xA){const gA=oA(nA,tA,110,J);return v(gA)},lA}function K(lA,nA){return o=lA.exports,W.__wbindgen_wasm_module=nA,U=new Int32Array,u=new Uint32Array,y=new Uint8Array,o}function Y(lA){const nA=H();lA instanceof WebAssembly.Module||(lA=new WebAssembly.Module(lA));const tA=new WebAssembly.Instance(lA,nA);return K(tA,lA)}async function W(lA){const nA=H();(typeof lA=="string"||typeof Request=="function"&&lA instanceof Request||typeof URL=="function"&&lA instanceof URL)&&(lA=fetch(lA));const{instance:tA,module:xA}=await O(await lA,nA);return K(tA,xA)}const $=W,V="data:application/wasm;base64,AGFzbQEAAAAB/QEgYAF/AGACf38AYAN/f38AYAN/f38Bf2ACf38Bf2AEf39/fwBgAX8Bf2AFf39/f38AYAZ/f39/f38AYAAAYAV/f39/fwF/YAZ/f39/f38Bf2AAAX9gB39/f39/f38Bf2AEf39/fwF/YAF+AX9gCH9/f39/f39/AX9gCX9/f39/f39/fwF/YAR/f39+AGADfn9/AX9gA39/fgBgC39/f39/f39/f39/AX9gCX9/f39/f39/fwBgCn9/f39/f39/f38AYAd/f39/f39/AGACf34AYAV/f31/fwBgBH99f38AYAV/f35/fwBgBH9+f38AYAV/f3x/fwBgBH98f38AAokFFAN3YmcaX193YmluZGdlbl9vYmplY3RfZHJvcF9yZWYAAAN3YmcVX193YmluZGdlbl9zdHJpbmdfbmV3AAQDd2JnGl9fd2JpbmRnZW5fYmlnaW50X2Zyb21fdTY0AA8Dd2JnIF9fd2JnX2pzc2VuZG1zZ185NTU4ZTFlNmNjYmYwYmY2ABADd2JnIF9fd2JnX2pzcmVhZG1zZ18zZTJmZWM1NmEwODY5N2Q0AAsDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX2dldAABA3diZxJfX3diaW5kZ2VuX2NiX2Ryb3AABgN3YmcbX193YmdfY2FsbF8xNjhkYTg4Nzc5ZTM1ZjYxAAMDd2JnGl9fd2JnX25ld185OTYyZjkzOTIxOWYxODIwAAQDd2JnHl9fd2JnX3Jlc29sdmVfOTlmZTE3OTY0ZjMxZmZjMAAGA3diZxtfX3diZ190aGVuXzExZjdhNTRkNjdiNGJmYWQABAN3YmcbX193YmdfdGhlbl9jZWRhZDIwZmJiZDk0MThhAAMDd2JnHV9fd2JnX2J1ZmZlcl8zZjNkNzY0ZDQ3NDdkNTY0AAYDd2JnGl9fd2JnX25ld184YzNmMDA1MjI3MmE0NTdhAAYDd2JnGl9fd2JnX3NldF84M2RiOTY5MGY5MzUzZTc5AAIDd2JnHV9fd2JnX2xlbmd0aF85ZTFhZTE5MDBjYjBmYmQ1AAYDd2JnF19fd2JpbmRnZW5fZGVidWdfc3RyaW5nAAEDd2JnEF9fd2JpbmRnZW5fdGhyb3cAAQN3YmcRX193YmluZGdlbl9tZW1vcnkADAN3YmcdX193YmluZGdlbl9jbG9z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QQdxIhAEQANAIARBADoAACAEQQFqIQQgEEEBayIQDQALCyAHQQhJDQAgByALaiEHA0AgBEEAOgAAIARBADoAASAEQQA6AAIgBEEAOgADIARBADoABCAEQQA6AAUgBEEAOgAGIARBADoAByAHIARBCGoiBEcNAAsLIAxBADYCmAECQCAMKAKQASIEQQBOBEACQCAERQ0AIARBB3EhB0EAIRAgBEEITwRAIARB+P///wdxIRcDQCALIBBqIgRBADoAACAEQQFqQQA6AAAgBEECakEAOgAAIARBA2pBADoAACAEQQRqQQA6AAAgBEEFakEAOgAAIARBBmpBADoAACAEQQdqQQA6AAAgFyAQQQhqIhBHDQALCyAHRQ0AIAsgEGohBANAIARBADoAACAEQQFqIQQgB0EBayIHDQALCyAMKAKUASETAkAgDCgCmAEiB0UNACATIQQgB0EHcSIQBEADQCAEQQA6AAAgBEEBaiEEIBBBAWsiEA0ACwsgB0EISQ0AIAcgE2ohBwNAIARBADoAACAEQQA6AAEgBEEAOgACIARBADoAAyAEQQA6AAQgBEEAOgAFIARBADoABiAEQQA6AAcgByAEQQhqIgRHDQALCyAMQQA2ApgBIAwoApABIgRBAEgNAQJAIARFDQAgBEEHcSEHQQAhECAEQQhPBEAgBEH4////B3EhFwNAIBAgE2oiBEEAOgAAIARBAWpBADoAACAEQQJqQQA6AAAgBEEDakEAOgAAIARBBGpBADoAACAEQQVqQQA6AAAgBEEGakEAOgAAIARBB2pBADoAACAXIBBBCGoiEEcNAAsLIAdFDQAgECATaiEEA0AgBEEAOgAAIARBAWohBCAHQQFrIgcNAAsLIAwoApABIgRFDQIgDCgClAEgBEEBEMgDDAILDKEBCwygAQsgDCgCbCIEBEAgDCgCcCAEQQEQyAMLIBhBAToAACASEDIgBkEERwRAIA5BAToAAAwqCyBXQiCIpyELIFenIRICQAJAAkACQAJAAkACfyAMKAKwAiIERQRAIAhCBDcCqOQBIAggBDYCpOQBQQAhF0EADAELIARBqtWq1QBLDaUBIARBDGwiB0EASA2lAUGxlcIALQAAGiAHQQQQvQMiBkUNrQFBACEXIAhBADYCrOQBIAggBjYCqOQBIAggBDYCpOQBQQAgDCgCsAIiE0UNABpB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BmpBADoAACADQQdqQQA6AAAgECAHQQhqIgdHDQALCyASRQ0AIAQgB2ohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyAKKAK4ASIDRQ0BIAooArwBIANBARDIAwwBCwynAQtB5AAhAyAKKAKoASIERQ0AIAooAqwBIARBARDIAwsgAyARaiIDKAIAIgQEQCADKAIEIARBARDIAwsgCigClAEhBAJAIAooApgBIhJFDQAgBCEDIBJBB3EiBwRAA0AgA0EAOgAAIANBAWohAyAHQQFrIgcNAAsLIBJBCEkNACAEIBJqIQcDQCADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIAcgA0EIaiIDRw0ACwsgCkEANgKYAQJAIAooApABIgNBAE4EQAJAIANFDQAgA0EHcSESQQAhByADQQhPBEAgA0H4////B3EhEANAIAQgB2oiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAQIAdBCGoiB0cNAAsLIBJFDQAgBCAHaiEDA0AgA0EAOgAAIANBAWohAyASQQFrIhINAAsLIAooApQBIQQCQCAKKAKYASISRQ0AIAQhAyASQQdxIgcEQANAIANBADoAACADQQFqIQMgB0EBayIHDQALCyASQQhJDQAgBCASaiEHA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAHIANBCGoiA0cNAAsLIApBADYCmAEgCigCkAEiA0EASA0BAkAgA0UNACADQQdxIRJBACEHIANBCE8EQCADQfj///8HcSEQA0AgBCAHaiIDQQA6AAAgA0EBakEAOgAAIANBAmpBADoAACADQQNqQQA6AAAgA0EEakEAOgAAIANBBWpBADoAACADQQZqQQA6AAAgA0EHakEAOgAAIBAgB0EIaiIHRw0ACwsgEkUNACAEIAdqIQMDQCADQQA6AAAgA0EBaiEDIBJBAWsiEg0ACwsgCigCkAEiA0UNAiAKKAKUASADQQEQyAMMAgsMpgELDKUBCyAKKAJsIgMEQCAKKAJwIANBARDIAwsgFUEBOgAAAkACQAJAAkACQAJAAkACQAJAIBEtAMABDgcHCAgAAQIDCAsgESgC0AEiByARQdQBaigCACIEKAIAEQAAQcQBIQMgBCgCBCISRQ0FIAcgEiAEKAIIEMgDDAULIBEoAtwBIgQgEUHgAWooAgAiAygCABEAACADKAIEIgcEQCAEIAcgAygCCBDIAwsgESgC0AEiAwRAIBEoAtQBIANBARDIAwsgESgCxAEiA0UNAyARKALIASADQQEQyAMMAwsgESgC0AEiByARQdQBaigCACIEKAIAEQAAQcQBIQMgBCgCBCISRQ0BIAcgEiAEKAIIEMgDDAELIBEoAugBIgQgEUHsAWooAgAiAygCABEAACADKAIEIgcEQCAEIAcgAygCCBDIAwsgESgC0AEiAwRAIBEoAtQBIANBARDIAwtBtAEhAyARKALEASIERQ0AIBEoAsgBIARBARDIAwsgAyARaiIDKAIAIgQEQCADKAIEIARBARDIAwsgESgCqAEiA0UNACARKAKsASADQQN0QQgQyAMLIBEoApwBIgMEQCARKAKgASADQQEQyAMLIBEoApgBIgcEQCARKAKUASEDA0AgAygCACIEBEAgA0EEaigCACAEQQN0QQgQyAMLIANBDGohAyAHQQFrIgcNAAsLIBEoApABIgMEQCARKAKUASADQQxsQQQQyAMLIBEoAoQBIQQCQCARKAKIASISRQ0AIAQhAyASQQdxIgcEQANAIANBADoAACADQQFqIQMgB0EBayIHDQALCyASQQhJDQAgBCASaiEHA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAHIANBCGoiA0cNAAsLIBFBADYCiAEgESgCgAEiA0EATgRAAkAgA0UNACADQQdxIRJBACEHIANBCE8EQCADQfj///8HcSEQA0AgBCAHaiIDQQA6AAAgA0EBakEAOgAAIANBAmpBADoAACADQQNqQQA6AAAgA0EEakEAOgAAIANBBWpBADoAACADQQZqQQA6AAAgA0EHakEAOgAAIBAgB0EIaiIHRw0ACwsgEkUNACAEIAdqIQMDQCADQQA6AAAgA0EBaiEDIBJBAWsiEg0ACwsgESgCgAEiAwRAIBEoAoQBIANBARDIAwtB5AAhAyARKAJwIgRFDQEgESgCdCAEQQEQyAMMAQsMpwELIAMgEWoiAygCACIEBEAgAygCBCAEQQEQyAMLIBEoAlwhBAJAIBEoAmAiEkUNACAEIQMgEkEHcSIHBEADQCADQQA6AAAgA0EBaiEDIAdBAWsiBw0ACwsgEkEISQ0AIAQgEmohBwNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgByADQQhqIgNHDQALCyARQQA2AmACQCARKAJYIgNBAE4EQAJAIANFDQAgA0EHcSESQQAhByADQQhPBEAgA0H4////B3EhEANAIAQgB2oiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAQIAdBCGoiB0cNAAsLIBJFDQAgBCAHaiEDA0AgA0EAOgAAIANBAWohAyASQQFrIhINAAsLIBEoAlwhBAJAIBEoAmAiEkUNACAEIQMgEkEHcSIHBEADQCADQQA6AAAgA0EBaiEDIAdBAWsiBw0ACwsgEkEISQ0AIAQgEmohBwNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgByADQQhqIgNHDQALCyARQQA2AmAgESgCWCIDQQBIDQECQCADRQ0AIANBB3EhEkEAIQcgA0EITwRAIANB+P///wdxIRADQCAEIAdqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgECAHQQhqIgdHDQALCyASRQ0AIAQgB2ohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyARKAJYIgMEQCARKAJcIANBARDIAwsgEUE0aiERDAILDKcBCwymAQsgESgCACIDRQ0AIBEoAgQgA0EBEMgDCyAGQQRHBEAgDkEBOgAADCwLIFdCIIinIQYgV6chBAJAAkACQAJAAkACQAJ/IAooArACIgdFBEAgCEIENwK4wwEgCCAHNgK0wwFBACEQQQAMAQsgB0Gq1arVAEsNqgEgB0EMbCIDQQBIDaoBQbGVwgAt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IBItAAAEQCAIQbCjAWoiBUEYaiIHIARBGGopAgA3AwAgBUEQaiISIARBEGopAgA3AwAgBUEIaiIFIARBCGopAgA3AwAgCCAIKQKYgwE3A7CjASAUELcCIBRBGGogBykDADcCACAUQRBqIBIpAwA3AgAgFEEIaiAFKQMANwIAIBQgCCkDsKMBNwIADAILIAhBmIMBahC3AgwBCyAFIARB4JDAABC0AgALIAYgA0EBaiIDaiESIANBgAFHDQALAkACQCAKKAKIBCIDRQRAIApCBDcClAQgCiADNgKQBCAIQcijAWpCADcDACAIQcCjAWpCADcDACAIQbijAWpCADcDACAIQgA3A7CjASAKQZgEaiEMIApBlARqIRUMAQsgA0Gq1arVAEsNoQEgA0EMbCIEQQBIDaEBQbGVwgAtAAAaAkAgBEEEEL0DIgUEQCAKQQA2ApgEIAogBTYClAQgCiADNgKQBCAKKAKIBCEEIAhByKMBakIANwMAIAhBwKMBakIANwMAIAhBuKMBakIANwMAIAhCADcDsKMBIApBmARqIQwgCkGUBGohFSAERQ0CIARB////H0sNowFBsZXCAC0AABogBEEFdCIDQQQQvQMiBkUNASAGIQMCQCAEQQFGDQAgBEEBayIFQQNxIQcgBEECa0EDTwRAIAVBfHEhEgNAIAMgCCkDsKMBIlc3AgAgA0EgaiBXNwIAIANBQGsgVzcCACADQeAAaiBXNwIAIANBGGogCEGwowFqIgVBGGopAwAiVzcCACADQRBqIAVBEGopAwAiWDcCACADQQhqIAVBCGopAwAiWTcCACADQShqIFk3AgAgA0EwaiBYNwIAIANBOGogVzcCACADQcgAaiBZNwIAIANB0ABqIFg3AgAgA0HYAGogVzcCACADQegAaiBZNwIAIANB8ABqIFg3AgAgA0H4AGogVzcCACADQYABaiEDIBJBBGsiEg0ACwsgB0UNAANAIAMgCCkDsKMBNwIAIANBGGogCEGwowFqIgVBGGopAwA3AgAgA0EQaiAFQRBqKQMANwIAIANBCGogBUEIaikDADcCACADQSBqIQMgB0EBayIHDQALCyADIAgpA7CjATcCACADQRhqIAhBsKMBaiIFQRhqKQMANwIAIANBEGogBUEQaikDADcCACADQQhqIAVBCGopAwA3AgAMAwsMtQELDLYB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AyAKICQ2AqwDIAogEEEMaiITNgKoAyAKIBs2AoACIAogEjYC/AEgCkEAOgDIAyAKIAooArgEIgQ2AvgBIAogCCkDODcCtAMgCkG8A2ogCEFAaykDADcCACAKQcQDaiAIQcgAaigCADYCACAKQdgBaiEHIApByANqIRwLIAogGzYChAIgCkHAADYCoAIgCiASNgKcAiAKIAopArQDNwKIAiAKIBJBQGsiAzYCpAIgCkGQAmogCkG8A2opAgA3AgAgCkGYAmogCkHEA2ooAgA2AgAgEkE/cQ0cAn8gAwRAIANBAEgNoAFBsZXCAC0AABogA0EBEL0DIgVFDbYBQQAhECAKQQA2ArACIAogBTYCrAIgCiADNgKoAiAKQawCaiEGIApBqAJqIRUgCkGwAmoMAQsgCkIBNwKsAiAKIAM2AqgCIApBqAJqIhVBACASEOUBIApBrAJqIQYgCigCrAIhBSAKKAKwAiEQIApBsAJqCyEDIAUgEGogBCASEOYDGiAKIBAgEmoiEjYCsAIgCigCoAIiBARAA0ACQCARKAKAAiISQcAASQ0AIBEQHCARKAKAAiISQcAASQ0AIBJBwABBqIPAABC0AgALIBEgEkEBajYCgAIgESASQQJ0aigCACEQIAMoAgAiCSAVKAIARgRAIBUgCRDnASADKAIAIQkLIAkgBigCAGogEEEBcToAACADIAMoAgBBAWoiEjYCACAEQQFrIgQNAAsLIAooAqwCIQMgCCASNgK0owEgCCADNgKwowEgCEEINgK4owEgCEGYgwFqIgMgCEGwowFqIgQQgAEgCkG8AmogA0EIaiIJKAIANgIAIAogCCkCmIMBNwK0AiAEIBMgCigCpAIgJBAtIAhBsIIBaiIGIAhBwKMBaigCADYCACAIIAgpArijATcDqIIBIAgoArSjASETIAgoArCjASISQYCAgIB4Rg0BIAgoAsSjASEMIAogEzYC3AEgCiASNgLYASAKQeABaiISIAgpA6iCATcCACAKIAc2AsACIAogDDYC7AEgCkHoAWogBigCADYCACASKAIAIQYgCCAKQbQCajYCwKMBIAggCkHkAWo2AryjASAIQQA2ArijASAIIAYgE2o2ArSjASAIIBM2ArCjASADIAQQuQEgCkHMAmoiBiAJKAIANgIAIAogCCkCmIMBNwLEAiAKKAKEAiEJIAhB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KAIMEQIAIAgoArCjASITQQVGDQEgCEGwwwFqIAhBvKMBaigCADYCACAIIAgpArSjATcDqMMBIAooAugDIgQgCkHsA2ooAgAiAygCABEAACADKAIEIgYEQCAEIAYgAygCCBDIAwsgE0EERw0DIAooAtwDIgMEQCAKKALgAyADQQEQyAMLIApB0ANqIAooAtADIgMEQCAKKALUAyADQQEQyAMLIApB6ANqIQYgCkHcA2ohAyAKQZQDaigCACAKQZgDaigCABCWAiAKKAKEAiEJIAhBmIMBaiISIApBiAJqIgQQswIgCEEBNgLcggEgCEECNgK0owEgCEHslMAANgKwowEgCEIBNwK8owEgCCASNgLYggEgCCAIQdiCAWo2ArijASAIQbTDAWogCEGwowFqEIcBIAgoApiDASISBEAgCCgCnIMBIBJBARDIAwsgAyAIKQK0wwE3AgAgA0EIaiAIQbzDAWooAgA2AgAgCkHkA2ooAgAhAyAKQeADaigCACEQIAYgCkHUA2ooAgAgCkHYA2ooAgAQsgEgCEEIaiAEIAkgECADIApB7ANqKAIAIApB8ANqKAIAEMICIAgoAgghAyAKIAgoAgwiETYC+AMgCiADNgL0AwwCCyAIQZijAWogAygCADYCACAIIAgpA4iDATcDkKMBDAkLIBxBBToAAAwPCyAIQbCjAWogAyAqIBEoAgwRAgAgCCgCsKMBIhNBBUYNASAIQcjDAWogCEG8owFqKAIANgIAIAggCCkCtKMBNwPAwwEgCigC9AMiBiAKQfgDaigCACIDKAIAEQAAIAMoAgQiCQRAIAYgCSADKAIIEMgDCyATQQRHDQIgCigC6AMiAwRAIAooAuwDIANBARDIAwsgCigC3AMiAwRAIAooAuADIANBARDIAwsgCEGQowFqIAooAsACIgNBBGooAgAgA0EIaigCACAKKAKkAkEDdhA3IAooAtADIgMEQCAKKALUAyADQQEQyAMLIAooApwDIgMEQCAKKAKgAyADQQEQyAMLIAooApADIgMEQCAKKAKUAyADQQN0QQgQyAMLIAooAoQDIgMEQCAKKAKIAyADQQN0QQgQyAMLIAooAvgCIgMEQCAKKAL8AiADQQEQyAMLIAooAuwCIgMEQCAKKALwAiADQQEQyAMLIApB4AJqENcCIAooAuACIgMEQCAKKALkAiADQQxsQQQQyAMLIAooAtQCIgMEQCAKKALYAiADQQN0QQgQyAMLIApBxAJqEIwBIAooAsQCIgMEQCAKKALIAiADQQEQyAMLIAcQWiAHEIwBIAcoAgAiAwRAIAcoAgQgA0EBEMgDCyAKQeQBahCMASAKKALkASIDBEAgCigC6AEgA0EBEMgDCyAKQbQCahCMASAKKAK0AiIDBEAgCigCuAIgA0EBEMgDCyAKQagCahCMAUEEIRMgCigCqAIiA0UNDSAKKAKsAiADQQEQyAMMDQsgCEGYowFqIAhBsMMBaigCADYCACAIIAgpA6jDATcDkKMBDAQLIBxBBjoAAAwMCyAIQZijAWogCEHIwwFqKAIANgIAIAggCCkDwMMBNwOQowEgCigC6AMiA0UNAiAKKALsAyADQQEQyAMMAgsgHEEDOgAADAoLIAQgBkHgncAAELQCAAsgCigC3AMiAwRAIAooAuADIANBARDIAwsgCigC0AMiAwRAIAooAtQDIANBARDIAwsgCigCnAMiAwRAIAooAqADIANBARDIAwsgCigCkAMiA0UNACAKKAKUAyADQQN0QQgQyAMLIAooAoQDIgNFDQAgCigCiAMgA0EDdEEIEMgDC0G0AiEDIAooAvgCIgRFDQAgCigC/AIgBEEBEMgDCyADIC1qIgMoAgAiBARAIAMoAgQgBEEBEMgDCyAKKALoAiIRBEAgCigC5AIhAwNAIAMoAgAiBARAIANBBGooAgAgBEEDdEEIEMgDCyADQQxqIQMgEUEBayIRDQALCyAKKALgAiIDRQ0AIAooAuQCIANBDGxBBBDIAwsgCigC1AIiA0UNACAKKALYAiADQQN0QQgQyAMLIAooAsgCIQQCQCAKKALMAiIGRQ0AIAQhAyAGQQdxIhEEQANAIANBADoAACADQQFqIQMgEUEBayIRDQALCyAGQQhJDQAgBCAGaiEGA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAGIANBCGoiA0cNAAsLIApBADYCzAICQCAKKALEAiIDQQBOBEACQCADRQ0AIANBB3EhEkEAIREgA0EITwRAIANB+P///wdxIRADQCAEIBFqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgECARQQhqIhFHDQALCyASRQ0AIAQgEWohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyAKKALEAiIDBEAgCigCyAIgA0EBEMgDCyAHEFogBygCBCEEAkAgBygCCCIGRQ0AIAQhAyAGQQdxIhEEQANAIANBADoAACADQQFqIQMgEUEBayIRDQALCyAGQQhJDQAgBCAGaiEGA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAGIANBCGoiA0cNAAsLIAdBADYCCCAHKAIAIgNBAEgNhgECQCADRQ0AIANBB3EhEkEAIREgA0EITwRAIANB+P///wdxIRADQCAEIBFqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgECARQQhqIhFHDQALCyASRQ0AIAQgEWohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyAHKAIAIgMEQCAHKAIEIANBARDIAwsgCigC6AEhBAJAIAooAuwBIgZFDQAgBCEDIAZBB3EiEQRAA0AgA0EAOgAAIANBAWohAyARQQFrIhENAAsLIAZBCEkNACAEIAZqIQYDQCADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIAYgA0EIaiIDRw0ACwsgCkEANgLsASAKKALkASIDQQBIDQECQCADRQ0AIANBB3EhEkEAIREgA0EITwRAIANB+P///wdxIRADQCAEIBFqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgECARQQhqIhFHDQALCyASRQ0AIAQgEWohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyAKKALkASIDRQ0CIAooAugBIANBARDIAwwCCwyFAQsMhAELIAooArgCIQQCQCAKKAK8AiIGRQ0AIAQhAyAGQQdxIhEEQANAIANBADoAACADQQFqIQMgEUEBayIRDQALCyAGQQhJDQAgBCAGaiEGA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAGIANBCGoiA0cNAAsLIApBADYCvAICQCAKKAK0AiIDQQBOBEACQCADRQ0AIANBB3EhEkEAIREgA0EITwRAIANB+P///wdxIRADQCAEIBFqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgECARQQhqIhFHDQALCyASRQ0AIAQgEWohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyAKKAK0AiIDBEAgCigCuAIgA0EBEMgDCyAKKAKsAiEEAkAgCigCsAIiBkUNACAEIQMgBkEHcSIRBEADQCADQQA6AAAgA0EBaiEDIBFBAWsiEQ0ACwsgBkEISQ0AIAQgBmohBgNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgBiADQQhqIgNHDQALCyAKQQA2ArACIAooAqgCIgNBAEgNAQJAIANFDQAgA0EHcSESQQAhESADQQhPBEAgA0H4////B3EhEANAIAQgEWoiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAQIBFBCGoiEUcNAAsLIBJFDQAgBCARaiEDA0AgA0EAOgAAIANBAWohAyASQQFrIhINAAsLIAooAqgCIgNFDQMgCigCrAIgA0EBEMgDDAMLDIQBCwyDAQtBACETQbGVwgAtAAAaQRNBARC9AyIDRQ2AASADQQ9qQZ+TwAAoAAA2AAAgA0EIakGYk8AAKQAANwAAIANBkJPAACkAADcAACAIQRM2ApijASAIIAM2ApSjASAIQRM2ApCjAQsgCigCiAIiAwRAIAooAowCIANBARDIAwsgCCkClKMBIVcgCCgClKMBIQYgCCgCkKMBIQkgCCgCmKMBIRsgHEEBOgAAIBNBBUYNAEHcASEDAkACQAJAAkACQCAHLQDwAQ4HCAkJAAECAwkLIAcoApACIgQgB0GUAmooAgAiAygCABEAACADKAIEIhIEQCAEIBIgAygCCBDIAwsgBygChAIiAwRAIAcoAogCIANBARDIAwsgBygC+AEiA0UNBiAHKAL8ASADQQEQyAMMBgsgBygChAIiEiAHQYgCaigCACIEKAIAEQAAQfgBIQMgBCgCBCIMRQ0EIBIgDCAEKAIIEMgDDAQLIAcoApACIgQgB0GUAmooAgAiAygCABEAACADKAIEIhJFDQEgBCASIAMoAggQyAMMAQsgBygCnAIiBCAHQaACaigCACIDKAIAEQAAIAMoAgQiEgRAIAQgEiADKAIIEMgDCyAHKAKQAiIDRQ0AIAcoApQCIANBARDIAwsgBygChAIiAwRAIAcoAogCIANBARDIAwsgBygC+AEiAwRAIAcoAvwBIANBARDIAwsgBygCxAEiAwRAIAcoAsgBIANBARDIAwsgBygCuAEiAwRAIAcoArwBIANBA3RBCBDIAwsgBygCrAEiAwRAIAcoArABIANBA3RBCBDIAwtBlAEhAyAHKAKgASIERQ0BIAcoAqQBIARBARDIAwwBCyAmQQM6AAAMBAsgAyAHaiIDKAIAIgQEQCADKAIEIARBARDIAwsgBygCkAEiEQRAIAcoAowBIQMDQCADKAIAIgQEQCADQQRqKAIAIARBA3RBCBDIAwsgA0EMaiEDIBFBAWsiEQ0ACwsgBygCiAEiAwRAIAcoAowBIANBDGxBBBDIAwsgBygCfCIDRQ0AIAcoAoABIANBA3RBCBDIAwsgBygCcCEEAkAgBygCdCISRQ0AIAQhAyASQQdxIhEEQANAIANBADoAACADQQFqIQMgEUEBayIRDQALCyASQQhJDQAgBCASaiESA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByASIANBCGoiA0cNAAsLIAdBADYCdAJAIAcoAmwiA0EATgRAAkAgA0UNACADQQdxIRJBACERIANBCE8EQCADQfj///8HcSEQA0AgBCARaiIDQQA6AAAgA0EBakEAOgAAIANBAmpBADoAACADQQNqQQA6AAAgA0EEakEAOgAAIANBBWpBADoAACADQQZqQQA6AAAgA0EHakEAOgAAIBAgEUEIaiIRRw0ACwsgEkUNACAEIBFq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A0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAHIANBCGoiA0cNAAsLIAVBADYCoAECQCAFKAKYASIDQQBOBEACQCADRQ0AIANBB3EhC0EAIRUgA0EITwRAIANB+P///wdxIQcDQCAEIBVqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgByAVQQhqIhVHDQALCyALRQ0AIAQgFWohAwNAIANBADoAACADQQFqIQMgC0EBayILDQALCyAFKAKcASEEAkAgBSgCoAEiB0UNACAEIQMgB0EHcSIVBEADQCADQQA6AAAgA0EBaiEDIBVBAWsiFQ0ACwsgB0EISQ0AIAQgB2ohBwNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgByADQQhqIgNHDQALCyAFQQA2AqABIAUoApgBIgNBAEgNAQJAIANFDQAgA0EHcSELQQAhFSADQQhPBEAgA0H4////B3EhBwNAIAQgFWoiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAHIBVBCGoiFUcNAAsLIAtFDQAgBCAVaiEDA0AgA0EAOgAAIANBAWohAyALQQFrIgsNAAsLIAUoApgBIgMEQCAFKAKcASADQQEQyAMLIAVB9ABqIRgMAgsMcQsMcAsgGCgCACIDRQ0AIBgoAgQgA0EBEMgDCyAFKAIIIgNFDQAgBSgCDCADQQEQyAMLICogCkEBaiIKRw0ACyApICpBsCFsQQgQyAMMAQsgGUIINwIEIB9BBGoiAyApICQQuwEgIEEIaiADQQhqKAIANgIAICAgHykCBDcCAAsgH0HQIWokACAPKALQAiIHQYCAgIB4RwRAIA8oAtQCIQUgDygC2AIhAyAZEBtBACEKIA9BADYCuCkgD0KAgICAwAA3ArApIA8gA0GwIWwiEiAFaiIENgLcAiAPIAc2AtgCIA8gBTYC1AIgDyAFNgLQAiADRQ0bQQAhBwNAAkAgBSAK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akIANwIAIA1B/AJqIhdCADcCACANQfQCaiIGQgA3AgAgDUHsAmoiBUIANwIAIA1B5AJqIgdCADcCACANQgA3AtwCIA1CADcDICANQShqIhlCADcDACANQTBqIhxCADcDACANQThqIh1CADcDACALQdADaiIJQRhqIhtCADcDACAJQRBqIh5CADcDACAJQQhqIghCADcDACALQgA3A9ADIA1BkANqIi0gCSANKAKcARB1IA1BIGoiEyASKAIAIBEoAgAQRSAGIB0pAgA3AgAgBSAcKQIANwIAIAcgGSkCADcCACANIA0pAiA3AtwCIA0oApwBIhFFDQUgDUHcAmohBSANQZQDaigCACEEIA1BmANqKAIAQQV0IQcgDUHgAGohGSALQaQDaiEcIAlBKGohBiALQdQDaiESA0AgB0UNBSANKQNIIlcgDSkDUFoEQEEAIQdBsZXCAC0AABpBIUEBEL0DIgRFDXkgBEEgakGsscEALQAAOgAAIARBGGpBpLHBACkAADcAACAEQRBqQZyxwQApAAA3AAAgBEEIakGUscEAKQAANwAAIARBjLHBACkAADcAACALQSE2AugCIAsgBDYC5AIgC0EhNgLgAgwQCyAIIBkvAQA7AQAgCEECaiAZQQJqLQAAOgAAIA0gV0IBfDcDSCALIA0pA1ggV3wiVzcD0AMgC0HwAmoiCUECaiALLQDSAyIdOgAAIAsgV6ciHzsB8AIgDSkAYyFYIA0tAGshJCALKADXAyElIBdBAmogHToAACAXIB87AAAgDSAkOgCPAyANIFg3AIcDIA0gJTYAgwMgDSBXQhiIPgD/AiAcQQhqQQA2AgAgHEIANwIAIAlBCGoiHSAFQQhqKQIANwMAIAlBEGoiHyAFQRBqKQIANwMAIAlBGGoiJCAFQRhqKQIANwMAIAlBIGoiJSAFQSBqKQIANwMAIAlBKGoiJyAFQShqKQIANwMAIAlBMGoiIiAFQTBqKAIANgIAIAsgBSkCADcD8AIgG0HgisEAKQMANwMAIB5B2IrBACkDADcDACAIQdCKwQApAwA3AwAgC0IANwPwAyALQciKwQApAwA3A9ADIAYgCykD8AI3AwAgBkEIaiAdKQMANwMAIAZBEGogHykDADcDACAGQRhqICQpAwA3AwAgBkEgaiAlKQMANwMAIAZBKGogJykDADcDACAGQTBq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ksAAELUCAAsgAyAHQaCSwAAQzQMACyAHIA5BoJLAABDLAwALIAooAowFIgYgEUUNAxogEUH/////AEsNWyAKKAKsBSEFQQAhB0GxlcIALQAAGiARQQN0IglBBBC9AyITBEAgEUEDcSEIIANBA08EQCADQQN0QQhqQeD///8HcSEUQQAhECAFIQMDQCAQIBNqIgkgA0EEaikCADcCACAJQQhqIANBEGopAgA3AgAgCUEQaiADQRxqKQIANwIAIAlBGGogA0EoaikCADcCACADQTBqIQMgB0EEaiEHIBQgEEEgaiIQRw0ACwsgCEUNBSATIAdBA3RqIQMgB0EMbCAFakEIaiEUA0AgAyAUQQRrKQIANwIAIBRBDGohFCADQQhqIQMgCEEBayIIDQALDAULDGgLIApBADYCpAUgCkKAgICAwAA3ApwFCyAKQoCAgICAMDcDsAUgCkKAgICAwAA3AqgFCyAKKAKMBQshBkEEIRNBACERCyAKIBE2AsAFIAogEzYCvAUgCiARNgK4BQJAIAooAqQFIg5FBEBBBCEFDAELIA5B/////wBLDVcgCigCoAUhCUEAIQdBsZXCAC0AABogDkEDdCIDQQQQvQMiBUUNbCAOQQNxIQggDkEETwRAIANB4P///wdxIRVBACEQIAkhAwNAIAUgEGoiFCADQQRqKQIANwIAIBRBCGogA0EQaikCADcCACAUQRBqIANBHGopAgA3AgAgFEEYaiADQShqKQIANwIAIANBMGohAyAHQQRqIQcgFSAQQSBqIhBHDQALCyAIRQ0AIAUgB0EDdGohAyAHQQxsIAlqQQhqIRQDQCADIBRBBGspAgA3AgAgFEEMaiEUIANBCGohAyAIQQFrIggNAAsLIAogDjYCzAUgCiAFNgLIBSAKIA42AsQFIAogGzYCnAQgCiAGQQxqNgKYBCAKIBY2AtABIAogDjYCzAEgCiAFNgLIASAKIBE2AsQBIAogEzYCwAEgCiAMKQMYNwOgBCAKQQA6ALUEIApBqARqIAxBIGopAwA3AwAgCkGwBGogDEEoaigCADYCAAsgDEGQAWohEUEAIQdBACETQQAhFSMAQeAEayIOJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJA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NgKABiAKIARBAWo2AogGIAMgCjYChAYMAQsgCkEANgKABiAKQQE2AogGCyANQQFNBEAgEiALQQFqIgtHDQILICcoAgQgJygCACgCCBEAACAkQQY2AgALIBxBMGokAAwBCyAaKAIAIQcMAQsLAkACQAJAIB0oAgwiBUEFaw4CAQACCyApQQY2AgAMAwsgKUEFNgIADAILIB0oAhwiByAjKAIcRwRAICMoAggiBCEDIAQgIygCAEYEQCAjIAQQ2AEgIygCCCEDCyAjKAIEIANBFGxqIgMgJSkCADcCBCADIAU2AgAgAyAHNgIQIANBDGogJUEIaigCADYCACAjICMoAghBAWo2AgggHUEoaiIJICMoAgQiBSAEQRRsaiIDQQhqKQIANwMAIB0gAykCADcDICADKAIQIQcCQCAERQRAQQAhAwwBCwNAIAcgBSAEQQFrIgpBAXYiA0EUbGoiBkEQaiILKAIATwRAIAQhAwwCCyAFIARBFGxqIgQgBikCADcCACAEQRBqIAsoAgA2AgAgBEEIaiAGQQhqKQIANwIAIAMhBCAKQQFLDQALCyAFIANBFGxqIgMgHSkDIDcCACADIAc2AhAgA0EIaiAJKQMANwIADAELCyApIAU2AgAgIyAHQQFqNgIcICkgJSkCADcCBCApQQxqICVBCGooAgA2AgALIB1BMGokAAJAAkACQCApKAIAIgVBBWsOAgEAAgsgKkGAgICAeDYCAAwFCyAqIC0pAgA3AgAgLUEIaigCACEDICNBADYCKCAjQoCAgIDAADcCICAqQQhqIAM2AgAMBAsgIygCKCIDICMoAiBGBEAgLSADENQBICMoAighAwsgIygCJCADQQR0aiIEIDQpAgA3AgQgBEEMaiA9KAIANgIAIAQgBTYCACAjIANBAWo2AigMAAsACyAjQgg3AgRBsZXCAC0AABogDkEEdCIDQQQQvQMiBQRAIAwhAyAFIQogDiEEAkADQCADKAIAQYCAgIB4Rw0BIANBgYCAgHg2AgAgA0EEaigCACIHQQVGDQEgCiAHNgIAIApBBGogA0EIaikCADcCACAKQQxqIANBEGooAgA2AgAgA0H4BWohAyAKQRBqIQogBEEBayIEDQALICogDjYCCCAqIAU2AgQgKiAONgIAA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgDCAaQfgF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NgIAIA5BDGohDiAUQQFqIRQgE0EBayITDQALCyAMIBQ2AgAgBUFAayQADAELQQQgBEHI9sAAEMsDAAsgCkEIaiALKAIANgIAIAogBikCCDcCACAGQSBqJAAgAUHUC2ogLkEYaikCADcCACABQcwLaiAuQRBqKQIANwIAIAFBxAtqIC5BCGopAgA3AgAgASAuKQIANwK8CyABIAEpAuAHNwLcCyABQeQLaiABQegHaikCADcCACABQewLaiABQfAHaikCADcCACABQfQLaiABQfgHaikCADcCACABQfgIaigCACEKIAFB/AhqKAIAIQcgASgCrAghAyABKAKgCCELIA9BsAdqIgQgASgCqAgiBRCzAiAFKQIMIVcgASAPKQOwBzcCjAkgAUGUCWogBEEIaigCADYCACABQQA6AIwKIAEgCzYCtAkgASADNgKwCSABIAc2AqwJIAEgCjYCqAlBAiEGIAFBAjYCpAkgASABQbwLaiIJNgKgCSABIFc3A5gJIAFBjApqIRcgAUGMCWohIwwBCyBFQQU6AAAMFQsgASAHNgLMCSABIAo2AsgJIAEgCzYCxAkgASADNgLACSABIAY2ArwJIAEgCTYCuAkgAUEAOgCNCiABICMpAgA3AtAJIAFB2AlqICNBCGopAgA3AgAgAUHgCWogI0EQaigCADYCAEEfIAtnIgVrIQQgAUEgIAVrIAQgC0EBIAR0Sxs2AuQJIAFBwAlqIRMCQCAGRQRAQQQhBQwBCyAGQf///x9LDT1BACEDQbGVwgAtAAAaIAZBBXQiBEEEEL0DIgVFDVAgBiEHA0AgAyAERwRAIAMgBWoiCiADIAlqIgspAgA3AgAgCkEYaiALQRhqKQIANwIAIApBEGogC0EQaikCADcCACAKQQhqIAtBCGopAgA3AgAgA0EgaiEDIAdBAWsiBw0BCwsgEygCACEDCyABQegJaiEEIAFB0AlqIQcgASAGNgLwCSABIAU2AuwJIAEgBjYC6AkgASADQQFyIgU2AvQJIAECfyADIAVGBEAgASgCxAkhCiADQX5xDAELIAUgASgCxAkiCiAFIApJGwsiAzYC+AkgASADIApHNgL8CSAPQcAHaiIFIAcQswIgDyABKQLcCTcCzAcgD0HcKGogBSABKALECRC3AQJAAkAgBCIDKAIIIgRFBEBBBCELDAELIARB////H0sNPiADKAIEIQpBACESQbGVwgAtAAAaIARBBXQiCUEEEL0DIgtFDUsgBCEDA0AgCSASRg0BIAsgEmoiByAKIBJqIgYpAgA3AgAgB0EYaiAGQRhqKQIANwIAIAdBEGogBkEQaikCADcCACAHQQhqIAZBCGopAgA3AgAgEkEgaiESIANBAWsiAw0ACwsgBSAENgIIIAUgCzYCBCAFIAQ2AgAMAAsgD0HoKGogBSABKALECRBqIAEoAvwJIgQgASgC+AkiB2ohAyADIARJDQIgASgCzAkiBiADSQ0BIAEoAsgJIQkgDyAPKALcKDYC7AcgDyAPKALgKCIDNgLoByAPIAM2AuQHIA9BADYC4AcgD0IANwLYByAPIA8oAugoNgLQByAPIA8oAuwoIgY2AswHIA8gBjYCyAcgDyADIA8oAuQoQRRsajYC8AcgDyAGIA8oAvAoQQxsajYC1AcgDyAJIAdBA3RqIgM2AsAHIA8gAyAEQQN0ajYCxAcgD0H8B2pCADcCACAPQgA3AvQHIA8gAUH0CWo2ApAIIA8gEzYCjAggDyABQbgJajYCiAggDyABQfgJajYChAggD0HQAmogBRBjIAFBuApqIA9B+AJqKAIANgIAIAFBsApqIA9B8AJqKQMANwMAIAFBqApqIA9B6AJqKQMANwMAIAFBoApqIA9B4AJqKQMANwMAIAFBmApqIA9B2AJqKQMANwMAIAEgDykD0AI3A5AKCyAPQfQoaiEWQQAhCiMAQSBrIhwkAAJAAkACQCABQZAKaiIVKAIAQYCAgIB4RgRAIBUoAggiB0UNAiAVKAIEIQ0gB0HwAGwhG0EBIQYDQEEAIQkjAEGgAWsiECQAAkACQAJAIAogDWoiESgCACIDQf////8Ha0EAIANBgoCAgHhIG0EBaw4CAT8ACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkAgES0AbEEBaw4DBAACAQsACyARIBEoAjAgESgCLGo2AjwgEEGQAWpCADcDACAQQYgBakIANwMAIBBBgAFqQgA3AwAgEEIANwN4AkACQCARKAIkIgUEQCAFQf///x9LDVRBsZXCAC0AABogBUEFdCIEQQQQvQMiAw0BDGcLIBBB+ABqELcCQQQhAwwBCyADIQQCQCAFQQFGDQAgBUEBayILQQdxIRQgBUECa0EHTwRAIAtBeHEhDANAIARCADcCACAEQRhqQgA3AgAgBEEQakIANwIAIARBCGpCADcCACAEQSBqQgA3AgAgBEEoakIANwIAIARBMGpCADcCACAEQThqQgA3AgAgBEFAa0IANwIAIARByABqQgA3AgAgBEHQAGpCADcCACAEQdgAakIANwIAIARB4ABqQgA3AgAgBEHoAGpCADcCACAEQfAAakIANwIAIARB+ABqQgA3AgAgBEGYAWpCADcCACAEQZABakIANwIAIARBiAFqQgA3AgAgBEGAAWpCADcCACAEQbgBakIANwIAIARBsAFqQgA3AgAgBEGoAWpCADcCACAEQaABakIANwIAIARBwAFqQgA3AgAgBEHIAWpCADcCACAEQdABakIANwIAIARB2AFqQgA3AgAgBEHgAWpCADcCACAEQegBakIANwIAIARB8AFqQgA3AgAgBEH4AWpCADcCACAEQYACaiEEIAxBCGsiDA0ACwsgFEUNAANAIARCADcCACAEQRhqQgA3AgAgBEEQakIANwIAIARBCGpCADcCACAEQSBqIQQgFEEBayIUDQALCyAEQgA3AgAgBEEYakIANwIAIARBEGpCADcCACAEQQhqQgA3AgALIBEgBTYCSCARIAM2AkQgESAFNgJAIBEoAjwiFCARKAI0Rg0KAkACQCARKAIkQQV0IgNFBEBBASEMDAELIANBAEgNUyADQQEQvgMiDEUNASARKAI8IRQLIBEgAzYCVCARIAw2AlAgESADNgJMIBBB2ABqIgMgERCzAiAQQQg2AhwgEEECNgJ8IBBB+LPAADYCeCAQQgE3AoQBIBAgAzYCGCAQIBBBGGo2AoABIBBBOGogEEH4AGoQhwEgECgCWCIDBEAgECgCXCADQQEQyAMLIBEgECkCODcCWCARQeAAaiIDIBBBQGsoAgA2AgAgAygCACEDIBFB3ABqKAIAIQVBsZXCAC0AABpBzABBBBC9AyIERQ1mIARBADoASCAEIBQ2AgwgBCADNgIIIAQgBTYCBCAEIBE2AgAgEUGUgcEANgJoIBEgBDYCZEGUgcEADAILDGcLIBEoAmQhBCARKAJoCyEDIBBB+ABqIAQgAiADKAIMEQIAIBAoAngiDkEFRwRAIBAoAoQBIQwgECgCgAEhBSAQKAJ8IQMgESgCZCILIBFB6ABqKAIAIgQoAgARAAAg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DWoiESgCACIDQf////8Ha0EAIANBgoCAgHhIG0EBaw4CAUEACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkAgES0AbEEBaw4DBAACAQsACyARIBEoAjAgESgCLGo2AjwgEEGQAWpCADcDACAQQYgBakIANwMAIBBBgAFqQgA3AwAgEEIANwN4AkACQCARKAIkIgUEQCAFQf///x9LDVZBsZXCAC0AABogBUEFdCIEQQQQvQMiAw0BDGkLIBBB+ABqELcCQQQhAwwBCyADIQQCQCAFQQFGDQAgBUEBayILQQdxIRQgBUECa0EHTwRAIAtBeHEhDANAIARCADcCACAEQRhqQgA3AgAgBEEQakIANwIAIARBCGpCADcCACAEQSBqQgA3AgAgBEEoakIANwIAIARBMGpCADcCACAEQThqQgA3AgAgBEFAa0IANwIAIARByABqQgA3AgAgBEHQAGpCADcCACAEQdgAakIANwIAIARB4ABqQgA3AgAgBEHoAGpCADcCACAEQfAAakIANwIAIARB+ABqQgA3AgAgBEGYAWpCADcCACAEQZABakIANwIAIARBiAFqQgA3AgAgBEGAAWpCADcCACAEQbgBakIANwIAIARBsAFqQgA3AgAgBEGoAWpCADcCACAEQaABakIANwIAIARBwAFqQgA3AgAgBEHIAWpCADcCACAEQdABakIANwIAIARB2AFqQgA3AgAgBEHgAWpCADcCACAEQegBakIANwIAIARB8AFqQgA3AgAgBEH4AWpCADcCACAEQYACaiEEIAxBCGsiDA0ACwsgFEUNAANAIARCADcCACAEQRhqQgA3AgAgBEEQakIANwIAIARBCGpCADcCACAEQSBqIQQgFEEBayIUDQALCyAEQgA3AgAgBEEYakIANwIAIARBEGpCADcCACAEQQhqQgA3AgALIBEgBTYCSCARIAM2AkQgESAFNgJAIBEoAjwiFCARKAI0Rg0KAkACQCARKAIkQQV0IgNFBEBBASEMDAELIANBAEgNVSADQQEQvgMiDEUNASARKAI8IRQLIBEgAzYCVCARIAw2AlAgESADNgJMIBBBOGoiAyARELMCIBBB5ABqQQI2AgAgEEEINgJcIBBBAjYCfCAQQYyywAA2AnggEEICNwKEASAQIBEoAiQ2AhQgECAQQRRqNgJgIBAg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KQKoBzcDsAEgASgCoAchBCABKAKkByEKIAEoAogJIQUgASgChAkhCSABKAKACSELIANBMGogEykDADcDACADQShqIA0pAwA3AwAgA0EgaiAUKQMANwMAIA9B8AFqIAwpAwA3AwAgD0H4AWogDikDADcDACAPQYACaiAYKQMANwMAIA8gDykDwCs3A8gBIA8gDykD+AM3A+gBIAYhAwNAIAMQtwIgA0EgaiEDIAdBAWsiBw0ACyASBEAgBiASQQV0QQQQyAMLIAEoAvQIIgMEQCABKAL4CCADQQN0QQQQyAMLIAFB6AhqEJoCIAEoAugIIgMEQCABKALsCCADQQxsQQQQyAMLIAFBADsB5AhBwAAhA0HgACEHIAEoArQIIgZFDQUgASgCuAggBkECdEEEEMgDDAULIAEoAsgIIgsEQCABKALECCEDA0AgAxB0IANBsCFqIQMgC0EBayILDQALCyABKALACCIDRQ0CIAEoAsQIIANBsCFsQQQQyAMMAgtBAEEAQbjnwAAQtAIAC0EBQQFByOfAABC0AgALIBIhBSAGIQQgByEKCyABQQA6AOQIIAEoArQIIgMEQCABKAK4CCADQQJ0QQQQyAMLIAFB4AdqELcCQYCAgIB4IQtBICEDQcAAIQcLIAcgLmoQtwIgAyAuahC3AiAuELcCIA9BqCpqIgMgD0GwAWpB2AAQ5gMaIEVBAToAACALQYGAgIB4Rg0AIA8gA0HYABDmAyEDIC4QXCALQYCAgIB4Rg0fIANB2ABqIgcgA0HYABDmAxogA0HQAmoiBkEYaiAHQTBqKQIANwMAIAZBEGogB0EoaikCADcDACAGQQhqIANB+ABqKQIANwMAIAFBAToA+AYgASAKNgIEIAEgBDYCACABQQhqIgQgAykCADcCACABQRBqIhIgA0EIaikCADcCACABQRhqIhMgA0EQaikCADcCACABIAU2ApQGIAEgCTYCkAYgASALNgKMBiADIAMpAnA3A9ACIAFBOGogA0GoAWopAgA3AgAgAUEwaiADQaABaikCADcCACABQShqIANBmAFqKQIANwIAIAEgAykCkAE3AiAgASkD6AEhVyABKALsBSgClAEhCyABKAKIBiEKIAEoAoQGIQcgA0GgKWoiDSABQfAFahCzAiAGQShqIAQpAwA3AwAgBkEwaiASKQMANwMAIAZBOGog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IAVBMGogB0EwaikAADcAACAFQShqIAdBKGopAAA3AAAgBUEgaiAHQSBqKQAANwAAIAVBGGogB0EYaikAADcAACAFQRBqIAdBEGopAAA3AAAgBUEIaiAHQQhqKQAANwAAIAMLNgIIIAogBDYCBCAKIAM2AgAgASgC2AkiAyABQZAKaiIEKAIAIgVPDQUgAUGMCmoiBSgCACADQQZ0aiIDIAkpAAA3ACAgA0E4aiAJQRhqKQAANwAAIANBMGogCUEQaikAADcAACADQShqIAlBCGopAAA3AAAgCSABQYAKaigCACABQYQKaigCABBFIAQoAgAiCiABKALYCSIDTQ0GIAUoAgAgA0EGdGoiAyAJKQAANwAAIANBGGogCUEYaikAADcAACADQRBqIAlBEGopAAA3AAAgA0EIaiAJQQhqKQAANwAAIAEgVzcDqAlBACEEIAFBADYCsAkgASABKALUCSIuNgK0CUEAIQMMCAsgDykC1AIhV0EDIQkMDAtBFCADQdjnwAAQygMAC0EUIANB6OfAABDKAwALQRQgA0H458AAEMsDAAtBFCADQYjowAAQywMACyADIAVBmOjAABC0AgALIAMgCkGo6MAAELQCAAsgDykC3AIhVyAPKALYAiEFIA8oAtQCIQkMBQsDQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAw4CAAECCyAEIC5JDQJBACESIAFBADYCuAkgASABKALUCSIXNgK8CQwJCyAPQdACaiA4IAIgUSgCDBECACAPKALQAiIJQQVGDQIgDykC2AIhVyAPKALUAiEFIAEoAtAKIgcgAUHUCmooAgAiAygCABEAACADKAIEIgoEQCAHIAogAygCCBDIAwsgASgCxAoiAwRAIAEoAsgKIANBARDIAwsgASgCuAoiCgRAIAEoArwKIApBARDIAwsgCUEERw0NIAFBuApqIQMgASgClAohCiAPQbApaiIFIAFB3AlqIgcQswIgD0EKNgKkKyAPQQI2AtQCIA9B9OjAADYC0AIgD0IBNwLcAiAPIAU2AqArIA8gD0GgK2o2AtgCIA9BwCtqIA9B0AJqEIcBIA8oArApIgUEQCAPKAK0KSAFQQEQyAMLIAMgDykCwCs3AgAgA0EIaiAPQcgraigCADYCACABKALYCSIDIAFBkApqKAIAIgVPDQQgAUG8CmooAgAhBSAB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AGogWDcCACABIFc3AmAgAUHgAGohAyABQUBrIQQgASgC7AUiBygClAEiDUUNAyABKALgASEJIAEoAuQBQQJ0IQcDQCAHRQ0DIAEoAogGIApHBEAgD0HAB2oiCyAJKAIAQQFqrRDIAiAPQdACaiIFIAQgCxDBAiAEELcCIARBGGogBUEYaikCADcCACAEQRBqIAVBEGopAgA3AgAgBEEIaiAFQQhqKQIANwIAIAQgDykC0AI3AgAgCxC3AiAFIAkoAgBBAWqtEMgCIAsgASgC7AUoAowBQQFqrRDIAiAPQbABaiITIAUgCxDAAiAPQagqaiISIAMgExDBAiADELcCIANBGGogEkEYaikCADcCACADQRBqIBJBEGopAgA3AgAgA0EIaiASQQhqKQIANwIAIAMgDykCqCo3AgAgExC3AiALELcCIAUQtwILIAlBBGohCSAHQQRrIQcgDSAKQQFqIgpHDQALDAILIFdCIIinIQogV6chBAwVCyAAQQI2AgBBBAwXCyABKALsBSEHCyAPQcAHaiIJIAMQ+wEgD0GwAWoiAyAEIAkQwQIgD0HwAmoiBCAHQZgBaiADEMECIAMQtwIgCRC3AiABQewIaiAEKQMANwIAIAFB9AhqIA9B0AJqIgNBKGopAwA3AgAgAUH8CGogA0EwaikDADcCACABQYQJaiADQThqKQMANwIAIAEgASkCIDcCzAggAUHUCGogAUEoaikCADcCACABQdwIaiABQTBqKQIANwIAIAFB5AhqIAFBOGopAgA3AgAgAUGQBmooAgAhAyABQZQGaigCACELIAEoAogGIQogD0HAK2oiBCABQfAFahCzAiABKQL8BSFXIAYgDykDwCs3AwAgBkEIaiAEQQhqKAIANgIAIAEgVzcCjAcgAUEAOgDQByABIAo2AqQHIAEgCzYCoAcgASADNgKcByABQQE2ApgHIAEgAUHMCGoiBTYClAcgAUHRB2ogCUH7ABDmAxogAUGAB2ohEiABQdAHaiEGQQELIQkgAUEBOgDRByABIAs2ArgHIAEgAzYCtAcgASAKNgKwByABIAk2AqwHIAEgBTYCqAcgASASKQIANwK8ByABQcQHaiASQQhqKQIANwIAIAFBzAdqIBJBEGooAgA2AgAgD0GwKWoiBCABQbwHahCzAiABQQA6AMgIIAEgCjYC+AcgASALNgL0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AGooAgAiEyAKQdQAaigCACILKAIAEQAAIAsoAgQiDQRAIBMgDSALKAIIEMgDCyAKQcQAaigCACILBEAgCkHIAGooAgAgC0EBEMgDCyAKQThqKAIAIgsEQCAKQTxqKAIAIAtBARDIAwsgCkEsaigCACILRQ0BIApBMGooAgAgC0EBEMgDDAELIApBBGoiCigCAEEERg0BIAoQjAIMAQsgCigCACILRQ0AIApBBGooAgAgC0EBEMgDCyAJQdwAaiEJIANBAWsiAw0ACyAFIARB3ABsQQQQyAMMAwsMFgsMMAsgGkEANgIIIBpCgICAgMAANwIAIBRCBDcCBAsgIUEgaiQAAkACQAJAIA8oAtACIgVBgICAgHhHBEAgDygC1AIhCiAPKALYAiEJIBQQZSAPIAlBBHQiCyAKaiIENgLcAiAPIAU2AtgCIA8gCjYC0AIgCiEDIAlFDQEDQAJAIAMoAgAiCUEERwRAIAlBBUcNASADQRBqIQMMBAsgA0EQaiEDIAtBEGsiCw0BDAQLCyAPIANBEGo2AtQCIAMoAgQhBSADKAIIIQQgAygCDCEKIA9B0AJqELYCDAMLQQMhAyAYQQM6AAAMBwsgDyADNgLUAiADIARGDQAgBCADa0EEdiELA0AgAygCAEEERwRAIAMQjAILIANBEGohAyALQQFrIgsNAAsLIAUEQCAKIAVBBHRBBBDIAwtBBCEJCyABKAKICCIDBEAgASgCjAggA0EBEMgDCyAYQQE6AAAgCUEERw0CIAFBADoA0QcgAUHEB2opAgAhVyABKQOoByFYIAEpArQHIVkgASgCsAchAyABKQK8ByFaIAdBEGogAUHMB2ooAgA2AgAgB0EIaiBXNwIAIAcgWjcCACABIAM2AvgHIAEgWTcD8AcgASBYNwPoByABQfwHaiAPQdACakHMABDmAxogAUEAOgDICCABIA8vAKArOwDJCCABQcsIaiAPQaIrai0AADoAACABQcgIaiFECyABIAEpA+gHNwL8ByABIAEoAvgHNgKECCABIAEpAtQHNwKICCABQZAIaiABQdwHaikCADcCACABQZgIaiABQeQHaigCADYCACABKALwByEEIAEoAvQHIQUgD0GwAWoiAyABQYgIahCzAiAPIAEpApQINwK8ASAPQfgDaiADIAUQtwEgA0EgakIANwIAIA9CADcCyAEg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ADYCaCAJKAJkIQQgCSAFQQhqNgJkAkACQAJAAkAgBARAIAQgBzYCaCAHRQ0BDAILIAcNASARQQA2AgQMAwsgESAENgIEIAQhAwwBCyAHIAQ2AmQLIAMgCkEBazYCbAsgCS0AdCAJQQA6AHRFDSMgCUEAOgB1IBAgCTYCJCAQQYD7wAA2AiAgECAQQSBqIgM2AiwgECADNgIoIBBBDGohFiAQQShqIQVBACEIQQAhOiMAQaACayIMJAAgCUEEaiIhKAJcISgCQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAICEtAFhBAWsOAwQAAgELAAsgISAhKAIgNgIoIAxBkAJqQgA3AwAgDEGIAmpCADcDACAMQYACakIANwMAIAxCADcD+AECQAJAICEoAhgiAwRAIANB////H0sNMEGxlcIALQAAGiADQQV0IgRBBBC9AyIHDQEMQwsgDEH4AWoQtwJBBCEHDAELIAchBAJAIANBAUYNACADQQFrIgtBB3EhCiADQQJrQQdPBEAgC0F4cSELA0AgBEIANwIAIARBGGpCADcCACAEQRBqQgA3AgAgBEEIakIANwIAIARBIGpCADcCACAEQShqQgA3AgAgBEEwakIANwIAIARBOGpCADcCACAEQUBrQgA3AgAgBEHIAGpCADcCACAEQdAAakIANwIAIARB2ABqQgA3AgAgBEHgAGpCADcCACAEQegAakIANwIAIARB8ABqQgA3AgAgBEH4AGpCADcCACAEQZgBakIANwIAIARBkAFqQgA3AgAgBEGIAWpCADcCACAEQYABakIANwIAIARBuAFqQgA3AgAgBEGwAWpCADcCACAEQagBakIANwIAIARBoAFqQgA3AgAgBEHAAWpCADcCACAEQcgBakIANwIAIARB0AFqQgA3AgAgBEHYAWpCADcCACAEQeABakIANwIAIARB6AFqQgA3AgAgBEHwAWpCADcCACAEQfgBakIANwIAIARBgAJqIQQgC0EIayILDQALCyAKRQ0AA0AgBEIANwIAIARBGGpCADcCACAEQRBqQgA3AgAgBEEIakIANwIAIARBIGohBCAKQQFrIgoNAAsLIARCADcCACAEQRhqQgA3AgAgBEEQakIANwIAIARBCGpCADcCAAsgISADNgIsICFBNGoiEyADNgIAICFBMGoiDSAHNgIAICEoAhgh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IApB/OXAABC1AgALQRQgBEGM5sAAEMoDAAsgBCAFQZzmwAAQtAIAC0EUIANB9ObAABDLAwALQQAhAwwCC0EBIQMMAQsLIA9B6AVqIgNBCGogAUE4aikCADcDACADQRhqIAFBiAFqKQIANwMAIANBIGogAUGQAWopAgA3AwAgD0GQBmogAUGYAWopAgA3AwAgD0GwBmogAkEYaikCADcDACAPQagGaiACQRBqKQIANwMAIANBOGogAkEIaikCADcDACAPIAEpAjA3A+gFIA8gASkCgAE3A/gFIA8gAikCADcDmAYgASgCLCEKIAEoAighBCABKAIkIQUgASgCICEJIA9BuAZqIAFB8AFqQfgAEOYDGiABKALIBiICBEAgASgCzAYgAkEFdEEBEMgDCyABKAK8BiICBEAgASgCwAYgAkEBEMgDCyABKAKwBiICBEAgASgCtAYgAkH4AGxBBBDIAwsgAUHgAGoQtwIgAUFAaxC3AiABKAKkBiICBEAgASgCqAYgAkEBEMgDCyABKAKYBiICBEAgASgCnAYgAkEGdEEBEMgDCyABQYwGahCaAiABKAKMBiICBEAgASgCkAYgAkEMbEEEEMgDC0EAIQMgAUEAOgD4BgwKCyAPKALIByEKIA8oAsQHIQQgDygCwAchBUEBIQkMAwsgA0UNACAHIANBARDIAwsgAUHEB2oQtwILIAEoAoAHIgJFDQAgASgChAcgAkEBEMgDCyABQaABahC3AgsgASgCyAYiAkUNACABKALMBiACQQV0QQEQyAMLIAEoArwGIgIEQCABKALABiACQQEQyAMLIAEoArAGIgIEQCABKAK0BiACQfgAbEEEEMgDCyABQYABahC3AgsgAUHgAGoQtwIgAUFAaxC3AiABKAKkBiICBEAgASgCqAYgAkEBEMgDCyABKAKYBiICRQ0AIAEoApwGIAJBBnRBARDIAwsgAUEgahC3AiABKAKUBiIGBEAgASgCkAYhC0EAIQcDQCALIAdBDGxqIgIoAggiMQRAIAIoAgQhAwNAIAMQtwIgA0EgahC3AiADQUBrIQMgMUEBayIxDQALCyACKAIAIgMEQCACKAIEIANBBnRBBBDIAwsgBiAHQQFqIgdHDQALCyABKAKMBiICBEAgASgCkAYgAkEMbEEEEMgDCyABLQD4BgRAIAEQtwILIAFBADoA+AYL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DSAFRQ0LIAIgBUEBEMgDDAsLIABBkAFqKAIAIAxqIgMgAi0AADoAACADIAItAAE6AAEgAyACLQACOgACIAMgAi0AAzoAAyADIAItAAQ6AAQgAyACLQAFOgAFIAMgAi0ABjoABiADIAItAAc6AAcgAyACLQAIOgAIIAMgAi0ACToACSADIAItAAo6AAogAyACLQALOgALIAMgAi0ADDoADCADIAItAA06AA0gAyACLQAOOgAOIAMgAi0ADzoADyADIAItABA6ABAgAyACLQAROgARIAMgAi0AEjoAEiADIAItABM6ABMgAyACLQAUOgAUIAMgAi0AFToAFSADIAItABY6ABYgAyACLQAXOgAXIAMgAi0AGDoAGCADIAItABk6ABkgAyACLQAaOgAaIAMgAi0AGzoAGyADIAItABw6ABwgAyACLQAdOgAdIAMgAi0AHjoAHiADIAItAB86AB8gBQRAIAIgBUEBEMgDCyAPKAKIAyICBEAgBCACQQEQyAMLIAAoArABIQ0gACgCrAEhDAwICyACQQBIDR5BsZXCAC0AABogAkEBEL0DIgxFDTYgAkEBRwR/IAxBASACQQFrIgMQ5QMgA2oFIAwLQQE6AAALIA9BgAJqIQkgDCEfQgAhlwEjAEHgAmsiByQAAkACQAJAAkACQAJAAkACQCACIA1LBEAgDCANai0AAEUNASAKQQhqIhsNAkEBIRcMAwsgDSACQeSnwQAQtAIAC0GxlcIALQAAGkEyQQEQvQMiA0UNAiAJQTI2AhAgCSADNgIMIAlCgICAgKAGNwIEIANBMGpBpKjBAC8AADsAACADQShqQZyowQApAAA3AAAgA0EgakGUqMEAKQAANwAAIANBGGpBjKjBACkAADcAACADQRBqQYSowQApAAA3AAAgA0EIakH8p8EAKQAANwAAIANB9KfBACkAADcAACAJQYCAgIB4NgIADAYLIBtBAEgNIyAbQQEQvgMiF0UNAgsgAkH///8fSw0iQbGVwgAtAAAaIAJBBXQiA0EBEL0DIhBFDSQgECEDAkAgAkECSQ0AIAJBAWsiDEEHcSEFIAJBAmtBB08EQCAMQXhxIQQDQCADQgA3AAAgA0EYakIANwAAIANBEGpCADcAACADQQhqQgA3AAAgA0EgakIANwAAIANBKGpCADcAACADQTBqQgA3AAAgA0E4akIANwAAIANBQGtCADcAACADQcgAakIANwAAIANB0ABqQgA3AAAgA0HYAGpCADcAACADQeAAakIANwAAIANB6ABqQgA3AAAgA0HwAGpCADcAACADQfgAakIANwAAIANBmAFqQgA3AAAgA0GQAWpCADcAACADQYgBakIANwAAIANBgAFqQgA3AAAgA0G4AWpCADcAACADQbABakIANwAAIANBqAFqQgA3AAAgA0GgAWpCADcAACADQcABakIANwAAIANByAFqQgA3AAAgA0HQAWpCADcAACADQdgBakIANwAAIANB4AFqQgA3AAAgA0HoAWpCADcAACADQfABakIANwAAIANB+AFqQgA3AAAgA0GAAmohAyAEQQhrIgQNAAsLIAVFDQADQCADQgA3AAAgA0EYakIANwAAIANBEGpCADcAACADQQhqQgA3AAAgA0EgaiEDIAVBAWsiBQ0ACwsgA0IANwAAIANBGGpCADcAACADQRBqQgA3AAAgA0EIakIANwAAIApBeE8NAiAXQQhqIA4gChDmAxogAkEFdCEKIBtBP3EhDCAXIBtBQHFqIQsgG0EGdiIGrSGYASAHQfgBaiEIIAdBiAFqIgRBOGohGSAEQTBqIREgBEEgaiEVQQAhBSACIQ4DQCAFIApGDQQgFyCXATcAACAZQgA3AwAgEUIANwMAIARBKGpCADcDACAVQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwAgBEIANwMAIAdBADoAyAEgB0HgAGoiA0EIakHQisEAKQMANwMAIANBEGpB2IrBACkDADcDACADQRhqQeCKwQApAwA3AwAgB0IANwOAASAHQciKwQApAwA3A2AgBwJ/IBtBP00EQCAEIBcgGxDmAxogGwwBCyAHIJgBNwOAASAHQeAAaiAXIAYQFiAEIAsgDBDmAxogDAs6AMgBIAdB0AFqIgMgB0HgAGpB8AAQ5gMaIAdBGGoiFEIANwMAIAdBEGoiHkIANwMAIAdBCGoiE0IANwMAIAdCADcDACADIAggBxBfIAdBwAJqIgNBGGogFCkDACKZATcDACADQRBqIB4pAwAimgE3AwAgA0EIaiATKQMAIpsBNwMAIAcgBykDACKcATcDwAIgBSAQaiIDQRhqIJkBNwAAIANBEGogmgE3AAAgA0EIaiCbATcAACADIJwBNwAAIJcBQgF8IZcBIAVBIGohBSAOQQFrIg4NAAsMAwtBAUEyQeiVwgAoAgAiAEG8ASAAGxEBAAALQQEgG0HolcIAKAIAIgBBvAEgABsRAQAAC0EIIBtBqKjBABDNAwALQbGVwgAtAAAaQQEhCgJAAkAgAkEUbCIZQQEQvQMiCwRAIAshAwJAIAJBAkkNACACQQFrIgxBB3EhBSACQQJrQQdPBEAgDEF4cSEEA0AgA0IANwAAIANBEGpBADYAACADQQhqQgA3AAAgA0EUakIANwAAIANBHGpCADcAACADQSRqQQA2AAAgA0EoakIANwAAIANBMGpCADcAACADQThqQQA2AAAgA0E8akIANwAAIANBxABqQgA3AAAgA0HMAGpBADYAACADQdAAakIANwAAIANB2ABqQgA3AAAgA0HgAGpBADYAACADQfQAakEANgAAIANB7ABqQgA3AAAgA0HkAGpCADcAACADQYgBakEANgAAIANBgAFqQgA3AAAgA0H4AGpCADcAACADQYwBakIANwAAIANBlAFqQgA3AAAgA0GcAWpBADYAACADQaABaiEDIARBCGsiBA0ACwsgAiEKIAVFDQADQCADQgA3AAAgA0EQakEANgAAIANBCGpCADcAACADQRRqIQMgBUEBayIFDQALCyADQgA3AAAgA0EQakEANgAAIANBCGpCADcAACAHQThqQgA3AwAgB0EwakIANwMAIAdBKGpCADcDACAHQSBqIgxCADcDACAHQRhqQgA3AwAgB0EQakIANwMAIAdBCGpCADcDACAHQgA3AwACQAJAAkACQCACIA1LBEAgDCAQIA1BBXRqIgUpAAA3AAAgDEEYaiAFQRhqKQAANwAAIAxBEGogBUEQaikAADcAACAMQQhqIAVBCGopAAA3AAAgDQRAIAdB+AFqIREgB0GIAWoiBkE4aiEVIAZBMGohFCAGQSBqIR5B0IrBACkDACGXAUHYisEAKQMAIZgBQeCKwQApAwAhmQFByIrBACkDACGaASAQIQMgCyEEQQAhDgNAIAdBGGogA0EYaikAADcDACAHQRBqIANBEGopAAA3AwAgB0EIaiADQQhqKQAANwMAIAcgAykAADcDACAVQgA3AwAgFEIANwMAIAZBKGpCADcDACAeQgA3AwAgBkEYakIANwMAIAZBEGpCADcDACAGQQhqQgA3AwAgBkIANwMAIAdB4ABqIghBCGoglwE3AwAgCEEQaiCYATcDACAIQRhqIJkBNwMAIAdBADoAyAEgB0IBNwOAASAHIJoBNwNgIAggB0EBEBYgB0EAOgDIASAHQdABaiITIAhB8AAQ5gMaIAdBwAJqIghBGGoiHUIANwMAIAhBEGoiGEIANwMAIAhBCGoiGkIANwMAIAdCADcDwAIgEyARIAgQXyAHQUBrIghBGGogHSkDADcDACAIQRBqIhMgGCkDADcDACAIQQhqIgggGikDADcDACAHIAcpA8ACNwNAIAogDkYNBiAEIAcpA0A3AAAgBEEQaiATKAIANgAAIARBCGogCCkDADcAACADQSBqIQMgBEEUaiEEIA0gDkEBaiIORw0ACwsgB0EYaiAFQRhqKQAANwMAIAdBEGogBUEQaikAADcDACAHQQhqIAVBCGopAAA3AwAgByAFKQAANwMAIA1BAWoiDiACTw0CIAIgCksNASANQRRsIAtqQRRqIQQgDUEFdCAQakEgaiEFIAdB+AFqIQggB0GIAWoiA0E4aiERIANBMGohFQNAIAIgDk0NBCAMIAUpAAA3AAAgDEEYaiAFQRhqKQAANwAAIAxBEGogBUEQaikAADcAACAMQQhqIAVBCGopAAA3AAAgEUIANwMAIBVCADcDACADQShqQgA3AwAgA0EgakIANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIANCADcDACAHQeAAaiIGQQhqQdCKwQApAwA3AwAgBkEQakHYisEAKQMANwMAIAZBGGpB4IrBACkDADcDACAHQQA6AMgBIAdCATcDgAEgB0HIisEAKQMANwNgIAYgB0EBEBYgB0EAOgDIASAHQdABaiIUIAZB8AAQ5gMaIAdBwAJqIgZBGGoiHkIANwMAIAZBEGoiE0IANwMAIAZBCGoiHUIANwMAIAdCADcDwAIgFCAIIAYQXyAHQUBrIgZBGGogHikDADcDACAGQRBqIBMpAwAilwE3AwAgBkEIaiAdKQMAIpgBNwMAIAcgBykDwAIimQE3A0AgBEEQaiCXAT4AACAEQQhqIJgBNwAAIAQgmQE3AAAgBEEUaiEEIAVBIGohBSAOQQFqIg4gAkcNAAsMAgsgDSACQbiowQAQtAIACyAMIBAgDkEFdGoiAykAADcAACAMQRhqIANBGGopAAA3AAAgDEEQaiADQRBqKQAANwAAIAxBCGogA0EIaikAADcAACAHQcABakIANwMAIAdBuAFqQgA3AwAgB0GwAWpCADcDACAHQagBakIANwMAIAdBoAFqQgA3AwAgB0GYAWpCADcDACAHQZABakIANwMAIAdB4ABqIgNBCGpB0IrBACkDADcDACADQRBqQdiKwQApAwA3AwAgA0EYakHgisEAKQMANwMAIAdCADcDiAEgB0EAOgDIASAHQgE3A4ABIAdByIrBACkDADcDYCADIAdBARAWIAdBADoAyAEgB0HQAWoiDCADQfAAEOYDGiAHQcACaiIDQRhqIgVCADcDACADQRBqIgRCADcDACADQQhqIgZCADcDACAHQgA3A8ACIAwgB0H4AWogAxBfIAdBQGsiA0EYaiAFKQMANwMAIANBEGogBCkDACKXATcDACADQQhqIAYpAwAimAE3AwAgByAHKQPAAiKZATcDQCALIA5BFGxqIgNBEGoglwE+AAAgA0EIaiCYATcAACADIJkBNwAAC0GxlcIALQAAGiAZQQEQvQMiBkUNJiAGIQMCf0EBIAJBAkkNABogAkEBayIMQQdxIQUgAkECa0EHTwRAIAxBeHEhBANAIANCADcAACADQRBqQQA2AAAgA0EIakIANwAAIANBFGpCADcAACADQRxqQgA3AAAgA0EkakEANgAAIANBKGpCADcAACADQTBqQgA3AAAgA0E4akEANgAAIANBPGpCADcAACADQcQAakIANwAAIANBzABqQQA2AAAgA0HQAGpCADcAACADQdgAakIANwAAIANB4ABqQQA2AAAgA0H0AGpBADYAACADQewAakIANwAAIANB5ABqQgA3AAAgA0GIAWpBADYAACADQYABakIANwAAIANB+ABqQgA3AAAgA0GMAWpCADcAACADQZQBakIANwAAIANBnAFqQQA2AAAgA0GgAWohAyAEQQhrIgQNAAsLIAIgBUUNABoDQCADQgA3AAAgA0EQakEANgAAIANBCGpCADcAACADQRRqIQMgBUEBayIFDQALIAILIQwgA0IANwAAIANBEGpBADYAACADQQhqQgA3AAAgAkEDdCIZQQQQvgMiEUUNJyAZQQQQvgMiCEUNBEEAIQMgCCEEIAYhBUEAIQ4CQANAIAMgH2otAAAEQCACIA5NDQYgBEEBNgIA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aiEnIAEhG0EAIQEjAEEgayIlJAACQAJAAkAgAEH0AGoiHSgCAEGAgICAeEYEQCAdKAIIIh9FDQIgHSgCBCEeIB9B0AtsISlBASEMA0BBACENQQAhCkEAIQZBACEJQQAhDkEAIRcjAEHgAmsiEyQAAkACQAJAAkACQAJAAkACQAJ/AkACQAJ+AkACQAJAAkACQAJAIAEgHmoiBygC2AIiA0H/////B2tBACADQYKAgIB4SBtBAWsOAhEBAAsgB0HYAmohIwJAAkACQAJ/AkACfwJAAkACQAJAIActAO0CQQFrDgQHAgwBAAsgB0EBOgDsAkECIQVBfyAHKALQAiIKIAcoAtQCIgJHIAIgCksbQf8BcQ4CFAoCCyAHQfACaiEXIAdBjARqIRkCQCAHLQCMBEEBaw4EBwEEEAALIAcoAowDIQogBygChAMhBSAHKAKIAwwCCwALIAdBADoA7AIgB0EAOgCMBCAHIAo2AowDIAcgIykDADcD8AIgByAHQbgCaiIFNgKEAyAHQfgCaiAjQQhqKQMANwMAIAdBgANqICNBEGooAgA2AgAgByAHNgKIAyAHQYwEaiEZIAdB8AJqIRcgBwshAiAHQQE6AI0EIAcgCjYCmAMgByACNgKUAyAHIAU2ApADIAdBgAY2ArADIAcgFykCADcCnAMgB0GkA2ogF0EIaikCADcCACAHQawDaiAXQRBqKAIANgIAQQAhA0GxlcIALQAAGkGAwAFBBBC9AyIFRQ0EA0AgAyAFaiICQgA3AgAgAkEYakIANwIAIAJBEGpCADcCACACQQhqQgA3AgAgAkEgakIANwIAIAJBKGpCADcCACACQTBqQgA3AgAgAkE4akIANwIAIAJBQGtCADcCACACQcgAakIANwIAIAJB0ABqQgA3AgAgAkHYAGpCADcCACACQeAAakIANwIAIAJB6ABqQgA3AgAgAkHwAGpCADcCACACQfgAakIANwIAIAJBmAFqQgA3AgAgAkGQAWpCADcCACACQYgBakIANwIAIAJBgAFqQgA3AgAgAkG4AWpCADcCACACQbABakIANwIAIAJBqAFqQgA3AgAgAkGgAWpCADcCACACQcABakIANwIAIAJByAFqQgA3AgAgAkHQAWpCADcCACACQdgBakIANwIAIAJB4AFqQgA3AgAgAkHoAWpCADcCACACQfABakIANwIAIAJB+AFqQgA3AgAgAkGAAmpCADcCACACQYgCakIANwIAIAJBkAJqQgA3AgAgAkGYAmpCADcCACACQbgCakIANwIAIAJBsAJqQgA3AgAgAkGoAmpCADcCACACQaACakIANwIAIAJB2AJqQgA3AgAgAkHQAmpCADcCACACQcgCakIANwIAIAJBwAJqQgA3AgAgAkH4AmpCADcCACACQfACakIANwIAIAJB6AJqQgA3AgAgAkHgAmpCADcCACACQZgDakIANwIAIAJBkANqQgA3AgAgAkGIA2pCADcCACACQYADakIANwIAIANBoANqIgNB4L8BRw0ACyAHQYAGNgK8AyAHIAU2ArgDIAdBgAY2ArQDIAMgBWoiAkIANwIAIAJBGGpCADcCACACQRBqQgA3AgAgAkEIakIANwIAQSBBARC+AyICRQ05IAdCADcCzAMgB0EgNgLAAyAHQcgDaiIDQSA2AgAgB0HEA2oiBSACNgIAIAdB1ANqQgA3AgAgB0HcA2pCADcCACAHQeQDakIANwIAIAdB7ANqIgIgBygClAMQxQIgE0HQAWoiBCACIAUoAgAgAygCABD8ASATKALQASIFQYCAgIB4Rw0JIAcoApgDIQIgE0FAayIDIAdBnANqIgUQswIgE0EINgK0ASATQQI2AtQBIBNBhLvAADYC0AEgE0IBNwLcASATIAM2ArABIBMgE0GwAWo2AtgBIBNBwAJqIAQQhwEgEygCQCIDBEAgEygCRCADQQEQyAMLIAcgEykCwAI3ApAEIAdBmARqIgMgE0HIAmooAgA2AgAgAygCACEDIAdBlARqKAIAIQQgB0GcBGogB0HEA2ooAgAgB0HIA2ooAgAQsgEgB0GkBGooAgAhDiAHQaAEaigCACEQQbGVwgAtAAAaQeAAQQQQvQMiCkUNPSAKQQA6AFwgCiACNgIUIAogDjYCECAKIBA2AgwgCiADNgIIIAogBDYCBCAKIAU2AgAgB0G0gMEANgKsBCAHIAo2AqgEQbSAwQAMAQsgBygCqAQhCiAHKAKsBAshAiATQdABaiAKIBsgAigCDBECACATKALQASIGQQVGDQYgEykC2AEhlwEgEygC1AEhBSAHKAKoBCIDIAdBrARqKAIAIgIoAgARAAAgAigCBCINBEAgAyANIAIoAggQyAMLIAcoApwEIgIEQCAHKAKgBCACQQEQyAMLIAcoApAEIgIEQCAHKAKUBCACQQEQyAMLIAZBBEcNDyAHKAKwAyIQRQ0JIAdBuANqKAIAIQogB0G8A2ooAgBBBXQhBiAHQcwDaiENIAdB7ANqIQMgE0HQAWoiAkEoaiEJIAJBEGohBCAHQcgDaiELIAdBxANqIQggE0HoAGoiAkE4aiERIAJBMGohFQNAIAZFDQogE0HQAWoiBUEYakHMu8AAKQIANwMAIARBxLvAACkCADcDACAFQQhqQby7wAApAgA3AwAgE0G0u8AAKQIANwPQASATQUBrIg4gAyAFEL8CIAMQtwIgA0EYaiAOQRhqIhQpAgA3AgAgA0EQaiAOQRBqIhgpAgA3AgAgA0EIaiAOQQhqIhopAgA3AgAgAyATKQJANwIAIAUQtwIgBSADIAgoAgAgCygCABD8ASATKALQASIFQYCAgIB4Rw0IIAgoAgAhDiALKAIAIQUgEUIANwMAIBVCADcDACACQShqQgA3AwAgAkEgakIANwMAIAJBGGpCADcDACACQRBqQgA3AwAgAkEIakIANwMAIAJCADcDACATQQA6AKgBIBpB0IrBACkDADcDACAYQdiKwQApAwA3AwAgFEHgisEAKQMANwMAIBNCADcDYCATQciKwQApAwA3A0ACQCAFQT9NBEAgAiAOIAUQ5gMaDAELIBMgBUEGdiIUrTcDYCATQUBrIA4gFBAWIAIgDiAFQUBxaiAFQT9xIgUQ5gMaCyATIAU6AKgBIBNB0AFqIg4gE0FAa0HwABDmAxogE0HAAmoiBUEYaiIUQgA3AwAgBUEQaiIYQgA3AwAgBUEIaiIaQgA3AwAgE0IANwPAAiAOIAkgBRBfIBNBsAFqIgVBGGogFCkDACKXATcDACAFQRBqIBgpAwAimAE3AwAgBUEIaiAaKQMAIpkBNwMAIBMgEykDwAIimgE3A7ABIA1BGGoglwE3AgAgDUEQaiCYATcCACANQQhqIJkBNwIAIA0gmgE3AgAgDiANQSAQlAEgEygC1AEhBSATKQLYASKXASATKALQAQ0JGiATQShqIg5BEGoiFCAEQRBqKAIANgIAIA5BCGoiDiAEQQhqKQIANwMAIBMgBCkCADcDKCAKELcCIAoglwE3AgQgCiAFNgIAIAogEykDKDcCDCAKQRRqIA4pAwA3AgAgCkEcaiAUKAIANgIAIAZBIGshBiAKQSBqIQogEEEBayIQDQALDAkLQeCxwABBI0HIscAAEPUCAAtB4LHAAEEjQZC9wAAQ9QIACww1CxCaAwALIAdBADoA7AIgB0EAOgDYAyAHIAo2AowDIAcgIykDADcD8AIgByAHQbgCajYChAMgB0H4AmogI0EIaikDADcDACAHQYADaiAjQRBqKAIANgIAIAcgBzYCiAMLIBNB0AFqIRkjAEGAB2siDSQAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/An8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAIAdB8AJqIggtAGhBAWsOBAMFAAQBCyAIKAJ4IQMgCCgCfAwBCyAIQQE6AGkgCEGABjYCQCAIIAgoAhQ2AiAgCCAIKQIYNwIkIAggCCkCADcCLCAIQTRqIAhBCGopAgA3AgAgCEE8aiAIQRBqKAIANgIAQbGVwgAtAAAaQYDAAUEEEL0DIgNFDYQBA0AgAyAJaiICQgA3AgAgAkEYakIANwIAIAJBEGpCADcCACACQQhqQgA3AgAgAkEgakIANwIAIAJBKGpCADcCACACQTBqQgA3AgAgAkE4akIANwIAIAJBQGtCADcCACACQcgAakIANwIAIAJB0ABqQgA3AgAgAkHYAGpCADcCACACQeAAakIANwIAIAJB6ABqQgA3AgAgAkHwAGpCADcCACACQfgAakIANwIAIAJBmAFqQgA3AgAgAkGQAWpCADcCACACQYgBakIANwIAIAJBgAFqQgA3AgAgAkG4AWpCADcCACACQbABakIANwIAIAJBqAFqQgA3AgAgAkGgAWpCADcCACACQcABakIANwIAIAJByAFqQgA3AgAgAkHQAWpCADcCACACQdgBakIANwIAIAJB4AFqQgA3AgAgAkHoAWpCADcCACACQfABakIANwIAIAJB+AFqQgA3AgAgAkGAAmpCADcCACACQYgCakIANwIAIAJBkAJqQgA3AgAgAkGYAmpCADcCACACQbgCakIANwIAIAJBsAJqQgA3AgAgAkGo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CygCSCEVIARBQGsiAiADELMCIARBiAdqIBEgFSACEC4gBC0AiAcNAiACQQJqIhUgEEECai0AADoAACAEQfAEaiICQQhqIApBCGopAAA3AwAgAkEQaiAKQRBqKQAANwMAIAJBGGogCkEYaikAADcDACACQSBqIApBIGopAAA3AwAgAkElaiAKQSVqKQAANwAAIAQgEC8AADsBQCAEIAopAAA3A/AEIAQpAowHIZcBIAQpApQHIZgBIAsoAoADIgIgCygC+AJGBEAgBiACEN8BIAsoAoADIQILIANBDGohAyALKAL8AiACQQZ0aiICIAQvAUA7AAAgAiCYATcACyACIJcBNwADIAIgBCkD8AQ3ABMgAiAOKQAANwAgIAJBAmogFS0AADoAACACQRhqIAQpAPUENwAAIAJBKGogDkEIaikAADcAACACQTBqIA5BEGopAAA3AAAgAkE4aiAOQRhqKQAANwAAIAsgCygCgANBAWo2AoADIAVBDGshBSAUQQFrIhQNAAsMCAsgC0HIA2pBIBCVAiAEQYgHaiALQeQAaiALQcwDaiIFKAIAIAtB0ANqIgooAgAQ/AEgBCgCiAciA0GAgICAeEYNAiAEKQKMByGXAUEDIQUMBgsgBCkCjAcimAFCIIinIQMgBCkClAchlwEgmAGnIQUMFQsgFkEFOgAADBkLIAtBzARqIQIgC0HUA2oiAyAFKAIAIAooAgAQsgEgAyALQagDaigCACALQawDaigCABDvAiALKAJMIQMgBEFAayIFIAtB0ABqIgoQswIgBEEINgLsBiAEQQI2AowHIARBtNbAADYCiAcgBEIBNwKUByAEIAU2AugGIAQgBEHoBmo2ApAHIARB8AVqIARBiAdqEIACIAQoAkAiBQRAIAQoAkQgBUEBEMgDCyACIAQpAvAFNwIAIAJBCGogBEH4BWooAgA2AgAgBEEoaiAKIAMgC0HQBGooAgAgC0HUBGooAgAgC0HYA2ooAgAgC0HcA2ooAgAQwgIgBCgCKCECIAsgBCgCLCIGNgLcBCALIAI2AtgECyAEQYgHaiACIBsgBigCDBECACAEKAKIByIFQQVHBEAgBCkCkAchlwEgBCgCjAchAyALKALYBCIKIAtB3ARqKAIAIgIoAgARAAAgAigCBCIOBEAgCiAOIAIoAggQyAMLIAsoAswEIgIEQCALKALQ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KAKgBEEBajYCoAQgCygCrAQiAyALKAKkBEYEQCAQIAMQ1wEgCygCrAQhAwsgCkHgAGohCiALKAKoBCADQQxsaiIDIBo2AgggAyCXATcCACALIAsoAqwEQQFqNgKsBCACQeAAayECIAVBDGohBSARIAZBAWoiBkcNAQwDCwsgmAFCIIinIQMgmAGnIQUMBwsgBiADQdzXwAAQtAIACyALQcwEaiEDIARBiAdqIgIgC0GcBGooAgAgC0GgBGooAgAQNSALQbgEaiIFIAJBCGoiCigCADYCACALIAQpAogHNwKwBCACIAtBqARqKAIAIAtBrARqKAIAEDUgC0HEBGogCigCADYCACALIAQpAogHNwK8BCALKAJMIQogBEHwBWoiDiALQdAAaiIQELMCIARBzABqQQI2AgAgBEEINgJEIARBAjYCjAcgBEHM18AANgKIByAEQgI3ApQHIAQgBSgCADYCjAkgBCAEQYwJajYCSCAEIA42AkAgBCAEQUBrNgKQByAEQegGaiACEIACIAQoAvAFIgIEQCAEKAL0BSACQQEQyAMLIAMgBCkC6AY3AgAgA0EIaiAEQfAGaigCADYCACAEQQhqIBAgCiALQdAEaigCACALQdQEaigCACALQbQEaigCACAFKAIAEMICIAQoAgghAiALQdwEaiAEKAIMIgY2AgAgCyACNgLYBAsgBEGIB2ogAiAbIAYoAgwRAgAgBCgCiAciBUEFRwRAIAQpApAHIZcBIAQoAowHIQMgCygC2AQiCiALQdwEaigCACICKAIAEQAAIAIoAgQiDgRAIAogDiACKAIIEMgDCyALKALMBCICBEAgCygC0AQgAkEBEMgDCyAFQQRHDQMgC0HMBGohAiALKAJMIQMgBEHwBWoiBSALQdAAaiIKELMCIARBzABqQQI2AgAgBEEINgJEIARBAjYCjAcgBEGc2MAANgKIByAEQgI3ApQHIAQgC0HEBGoiDigCADYCjAkgBCAEQYwJajYCSCAEIAU2AkAgBCAEQUBrNgKQByAEQegGaiAEQYgHahCHASAEKALwBSIFBEAgBCgC9AUgBUEBEMgDCyACIAQpAugGNwIAIAJBCGogBEHwBmooAgA2AgAgBCAKIAMgC0HQBGooAgAgC0HUBGooAgAgC0HABGooAgAgDigCABDCAiAEKAIAIQIgC0HcBGogBCgC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ASgC0AshJgJAAkACQAJAAn8CQAJAAkACQAJAAn8CQAJAAn4CQAJAAkACQAJAAkACfwJAAn8CQAJAAkACQCABLQDtAkEBaw4EBwIKAQALIAFBAToA7AJBAiEMQX8gASgC0AIiCiABKALUAiIFRyAFIApLG0H/AXEOAhIIAgsgAUGMBGohGgJAIAEtAIwEQQFrDgQHAQQOAAsgASgCjAMhCiABKAKEAyEMIAEoAogDDAILAAsgAUEAOgDsAiABQQA6AIwEIAEgCjYCjAMgASABKQPYAjcD8AIgASABQbgCaiIMNgKEAyABQfgCaiABQeACaikDADcDACABQYADaiABQegCaigCADYCACABIAE2AogDIAFBjARqIRogAQshAiABQQE6AI0EIAEgCjYCmAMgASACNgKUAyABIAw2ApADIAFBgAY2ArADIAEgASkC8AI3ApwDIAFBpANqIAFB+AJqKQIANwIAIAFBrANqIAFBgANqKAIANgIAQQAhCkGxlcIALQAAGkGAwAFBBBC9AyIMRQ1AA0AgCiAMaiICQgA3AgAgAkEYakIANwIAIAJBEGpCADcCACACQQhqQgA3AgAgAkEgakIANwIAIAJBKGpCADcCACACQTBqQgA3AgAgAkE4akIANwIAIAJBQGtCADcCACACQcgAakIANwIAIAJB0ABqQgA3AgAgAkHYAGpCADcCACACQeAAakIANwIAIAJB6ABqQgA3AgAgAkHwAGpCADcCACACQfgAakIANwIAIAJBmAFqQgA3AgAgAkGQAWpCADcCACACQYgBakIANwIAIAJBgAFqQgA3AgAgAkG4AWpCADcCACACQbABakIANwIAIAJBqAFqQgA3AgAgAkGgAWpCADcCACACQcABakIANwIAIAJByAFqQgA3AgAgAkHQAWpCADcCACACQdgBakIANwIAIAJB4AFqQgA3AgAgAkHoAWpCADcCACACQfABakIANwIAIAJB+AFqQgA3AgAgAkGAAmpCADcCACACQYgCakIANwIAIAJBkAJqQgA3AgAgAkGYAmpCADcCACACQbgCakIANwIAIAJBsAJqQgA3AgAgAkGoAmpCADcCACACQaACakIANwIAIAJB2AJqQgA3AgAgAkHQAmpCADcCACACQcgCakIANwIAIAJBwAJqQgA3AgAgAkH4AmpCADcCACACQfACakIA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DEEAIQojAEGAB2siCSQAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/An8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAIAFB8AJqIgctAGhBAWsOBAMFAAQBCyAHKAJ4IQIgBygCfAwBCyAHQQE6AGkgB0GABjYCQCAHIAcoAhQ2AiAgByAHKQIYNwIkIAcgBykCADcCLCAHQTRqIAdBCGopAgA3AgAgB0E8aiAHQRBqKAIANgIAQbGVwgAtAAAaQYDAAUEEEL0DIgNFDYwBA0AgAyAIaiICQgA3AgAgAkEYakIANwIAIAJBEGpCADcCACACQQhqQgA3AgAgAkEgakIANwIAIAJBKGpCADcCACACQTBqQgA3AgAgAkE4akIANwIAIAJBQGtCADcCACACQcgAakIANwIAIAJB0ABqQgA3AgAgAkHYAGpCADcCACACQeAAakIANwIAIAJB6ABqQgA3AgAgAkHwAGpCADcCACACQfgAakIANwIAIAJBmAFqQgA3AgAgAkGQAWpCADcCACACQYgBakIANwIAIAJBgAFqQgA3AgAgAkG4AWpCADcCACACQbABakIANwIAIAJBqAFqQgA3AgAgAkGgAWpCADcCACACQcABakIANwIAIAJByAFqQgA3AgAgAkHQAWpCADcCACACQdgBakIANwIAIAJB4AFqQgA3AgAgAkHoAWpCADcCACACQfABakIANwIAIAJB+AFqQgA3AgAgAkGAAmpCADcCACACQYgCakIANwIAIAJBkAJqQgA3AgAgAkGYAmpCADcCACACQbgCakIANwIAIAJBsAJqQgA3AgAgAkGoAmpCADcCACACQaACakIANwIAIAJB2AJqQgA3AgAgAkHQAmpCADcCACACQcgCakIANwIAIAJBwAJqQgA3AgAgAkH4AmpCADcCACACQfACakIANwIAIAJB6AJqQgA3AgAgAkHgAmpCADcCACACQZgDakIANwIAIAJBkANqQgA3AgAgAkGIA2pCADcCACACQYADakIANwIAIAhBoANqIghB4L8B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DBILIAIoAowHIgMgAkGQB2ooAgAiASgCABEAAEHgAiEIIAEoAgQiCkUNDyADIAogASgCCBDIAwwPCyACKAKMByIDIAJBkAdqKAIAIgEoAgARAABB4AIhCCABKAIEIgpFDQ4gAyAKIAEoAggQyAMMDgsgAigCjAciAyACQZAHaigCACIBKAIAEQAAQeACIQggASgCBCIKRQ0CIAMgCiABKAIIEMgDDAILIAIoAowHIgMgAkGQB2ooAgAiASgCABEAAEHgAiEIIAEoAgQiCkUNASADIAogASgCCBDIAwwBCyACKAKMByIDIAJBkAdqKAIAIgEoAgARAAAgASgCBCIKBEAgAyAKIAEoAggQyAMLQdACIQggAigCgAciAUUNACACKAKEByABQQEQyAMLIAggDGoiASgCACIDBEAgASgCBCADQQEQyAMLIAIoAtwGIgEEQCACKALgBiABQQEQyAMLIAJB0AZqENwCIAIoAtAGIgEEQCACKALUBiABQQxsQQQQyAMLIAIoAsQGIgEEQCACKALIBiABQdUAbEEBEMgDCyACQbgGahDcAkGMAiEIIAIoArgGIgFFDQogAigCvAYgAUEMbEEEEMgDDAoLAkACQAJAIAItAIwEDgUAFhYBAhYLIAIoAvACIgFFDRUgAigC9AIgAUEBEMgDDBULIAIoAqgEIgMgAkGsBGooAgAiASgCABEAACABKAIEIgwEQCADIAwgASgCCBDIAwsgAigCnAQiAQRAIAIoAqAEIAFBARDIAwsgAkGQBGohDAwICyACQZAEaiEMAkAgAi0AyAsOBAgJCQAJCyACQbAEaiEMAkACQAJAAkACQAJAAkACQAJAAkACQCACLQDYCA4MEhMTAAECAwQGBwgJEwsgAkHcCGohAQJAAkACQAJAAkACQCACLQDMCg4FABYWAQIWCyABKAIAIgFFDRUgAigC4AggAUEBEMgDDBULIAIoAugKIgwgAkHsCmooAgAiAygCABEAAEH0ASEIQYACIRAgAygCBCIFRQ0BIAwgBSADKAIIEMgDDAELIAJB2ApqIQgCQCACLQDECw4EAgMDAAMLIAIoArwLIgwgAkHAC2ooAgAiAygCABEAACADKAIEIgUEQCAMIAUgAygCCBDIAwsgAigCsAsiAwRAIAIoArQLIANBARDIAwtBqAIhCEG8AiEQIAIoAqQLIgNF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CCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCACIUNwMAIA8gCSkCADcDACAQIAgpAgA3AwAgESAHKQIANwMAIBIgFDcDACACIAIpAugCIhQ3A8ACIAIgFDcDmAIgAyANIAJB+ABqEDsgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCACIUNwMAIA8gCSkCADcDACAQIAgpAgA3AwAgESAHKQIANwMAIBIgFDcDACACIAIpAugCIhQ3A8ACIAIgFDcDmAIgAyANIAEQOyAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCACIUNwMAIA8gCSkCADcDACAQIAgpAgA3AwAgESAHKQIANwMAIBIgFDcDACACIAIpAugCIhQ3A8ACIAIgFDcDmAIgAyANIAIQOyAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSAD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IgFFDQQgAUEwakHo4MAALwAAOwAAIAFBKGpB4ODAACkAADcAACABQSBqQdjgwAApAAA3AAAgAUEYakHQ4MAAKQAANwAAIAFBEGpByODAACkAADcAACABQQhqQcDgwAApAAA3AAAgAUG44MAAKQAANwAAIAGtQoCAgICgBoQhFAwPCyAAKAJUIgFFDQ4gACgCWCABQQJ0QQQQyAMMDgsgAEGBgoQINgCJCCAAIAg6AIYIIAAgCzYC/AIgACAQNgL4AiAAIAc2AvQCIAAgBTYC8AIgAEEAOwCHCCAAQYADaiAAQZgBaiIFQdgBEOYDGiAAQegEaiAMQRBqKAIANgIAIABB4ARqIAxBCGopAgA3AgAgACAMKQIANwLYBAJAAkAgBCAKRgRAIABBADoAjAggAEHsBGogAEHgA2pB+AAQ5gMhCCAAQQA7AYoIIABBADoAiQggACAFKQIANwLkBSAAQewFaiAFQQhqKQIANwIAIABB9AVqIAVBEGopAgA3AgAgAEH8BWogBUEYaikCADcCACAAIAApAqADNwKEBiAAQYwGaiAAQagDaikCADcCACAAQZQGaiAAQbADaikCADcCACAAQZwGaiAAQbgDaikCADcCACAAIAY2AsQGIABBvAZqIABB2ANqKQIANwIAIABBtAZqIABB0ANqKQIANwIAIABBrAZqIABByANqKQIANwIAIAAgACkCwAM3AqQGIABBpAZqIQcgAEGEBmohCiAAQeQFaiETIAQEQCAEQQJ0IQVBACEEA0AgBiADKAIARg0EIARBAWohBCADQQRqIQMgBUEEayIFDQALCyAAQYkIaiEFIAJB+ABqQfjewABBGRC8AiACKQJ8IRQgAigCeCEEIAcQtwIgChC3AiATELcCQQAhAyAAQdgEaigCACIBDQFBASEIDA8LQbGVwgAtAAAaQQEhCEEpIQRBKUEBEL0DIgFFDQVBACEDIAFBKGpBud/AAC0AADoAACABQSBqQbHfwAApAAA3AAAgAUEYakGp38AAKQAANwAAIAFBEGpBod/AACkAADcAACABQQhqQZnfwAApAAA3AAAgAUGR38AAKQAANwAAIAGtQoCAgICQBYQhFAwNC0EBIQggACgC3AQgAUEBEMgDDA0LIABCADcCzAYgACAENgLIBiAAQdQGakIANwIAIABB3AZqQgA3AgAgAEHkBmpC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AUHUB2ohAwJAIAEtAKQIDgQTFBQAFAsgASgCnAgiAyABQaAIaigCACICKAIAEQAAIAIoAgQiBARAIAMgBCACKAIIEMgDCyABKAKQCCICBEAgASgClAggAkEBEMgDCyABQfwHaiEDDBILIAEoAowHIgQgAUGQB2ooAgAiAygCABEAAEHgAiECIAMoAgQiBUUNDyAEIAUgAygCCBDIAwwPCyABKAKMByIEIAFBkAdqKAIAIgMoAgARAABB4AIhAiADKAIEIgVFDQ4gBCAFIAMoAggQyAMMDgsgASgCjAciBCABQZAHaigCACIDKAIAEQAAQeACIQIgAygCBCIFRQ0CIAQgBSADKAIIEMgDDAILIAEoAowHIgQgAUGQB2ooAgAiAygCABEAAEHgAiECIAMoAgQiBUUNASAEIAUgAygCCBDIAwwBCyABKAKMByIDIAFBkAdqKAIAIgIoAgARAAAgAigCBCIEBEAgAyAEIAIoAggQyAMLQdACIQIgASgCgAciA0UNACABKAKEByADQQEQyAMLIAAgAmoiAigCACIDBEAgAigCBCADQQEQyAMLIAEoAtwGIgIEQCABKALgBiACQQEQyAMLIAEoAtgGIgMEQCABKALUBiECA0AgAigCACIEBEAgAkEEaigCACAEQQEQyAMLIAJBDGohAiADQQFrIgMNAAsLIAEoAtAGIgIEQCABKALUBiACQQxsQQQQyAMLIAEoAsQGIgIEQCABKALIBiACQdUAbEEBEMgDCyABKALABiIDBEAgASgCvAYhAgNAIAIoAgAiBARAIAJBBGooAgAgBEEBEMgDCyACQQxqIQIgA0EBayIDDQALC0GMAiECIAEoArgGIgNFDQogASgCvAYgA0EMbEEEEMgDDAoLAkACQAJAIAEtAIwEDgUAFhYBAhYLIAEoAvACIgBFDRUgASgC9AIgAEEBEMgDDBULIAEoAqgEIgIgAUGsBGooAgAiACgCABEAACAAKAIEIgMEQCACIAMgACgCCBDIAwsgASgCnAQiAARAIAEoAqAEIABBARDIAwsgAUGQBGohAAwICyABQZAEaiEAAkAgAS0AyAsOBAgJCQAJCyABQbAEaiEAAkACQAJAAkACQAJAAkACQAJAAkACQCABLQDYCA4MEhMTAAECAwQGBwgJEwsgAUHcCGohAAJAAkACQAJAAkACQCABLQDMCg4FABYWAQIWCyAAKAIAIgBFDRUgASgC4AggAEEBEMgDDBULIAEoAugKIgYgAUHsCmooAgAiAigCABEAAEH0ASEDQYACIQQgAigCBCIFRQ0BIAYgBSACKAIIEMgDDAELIAFB2ApqIQMCQCABLQDECw4EAgMDAAMLIAEoArwLIgMgAUHAC2ooAgAiAigCABEAACACKAIEIgQEQCADIAQgAigCCBDIAwsgASgCsAsiAgRAIAEoArQLIAJBARDIAwtBqAIhA0G8AiEEIAEoAqQLIgJFDQAgASgCqAsgAkEBEMgDCyAAIARqIgIoAgAiBARAIAIoAgQgBEEBEMgDCyAAIANqIQMLIAMoAgAiAEUNACADKAIEIABBARDIAwsgASgCwAoiAARAIAEoAsQKIABBARDIAwsgAUGoCWoQtwIgASgCnAkiAARAIAEoAqAJIABB+ABsQQQQyAMLIAEtAM0KRQ0PIAEoAogJIgBFDQ8gASgCjAkgAEEBEMgDIAFBADoAzQoMEAsgASgC6AgiBCABQewIaigCACIDKAIAEQAAQawEIQIgAygCBCIGRQ0NIAQgBiADKAIIEMgDDA0LIAEoAtwIIgMgAUHgCGooAgAiAigCABEAACACKAIEIgRFDQsgAyAEIAIoAggQyAMMCwsgASgC6AgiAyABQewIaigCACICKAIAEQAAIAIoAgQiBEUNASADIAQgAigCCBDIAwwBCyABKALoCCIDIAFB7AhqKAIAIgIoAgARAAAgAigCBCIERQ0AIAMgBCACKAIIEMgDCyABKALcCCICBEAgASgC4AggAkEBEMgDCyABKALkByICBEAgASgC6AcgAkEBEMgDCyABKALYByICRQ0HIAEoAtwHIAJBARDIAwwHCyABKALoCCIEIAFB7AhqKAIAIgMoAgARAABBrAQhAiADKAIEIgZFDQUgBCAGIAMoAggQyAMMBQsgASgC6AgiBCABQewIaigCACIDKAIAEQAAQawEIQIgAygCBCIGRQ0EIAQgBiADKAIIEMgDDAQLIAEoAugIIgMgAUHsCGooAgAiAigCABEAACACKAIEIgRFDQEgAyAEIAIoAggQyAMMAQsgASgC6AgiAyABQewIaigCACICKAIAEQAAIAIoAgQiBEUNACADIAQgAigCCBDIAwsgASgC3AgiAgRAIAEoAuAIIAJBARDIAwsg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QfgCIQIgASgCtAciA0UNACABKAK4ByADQQEQyAMLIAAgAmoiACgCACICBEAgACgCBCACQQEQyAMLIAEoApQHIgAEQCABKAKYByAAQeAAbEEBEMgDCyABKAKIByIABEAgASgCjAcgAEEGdEEBEMgDCyABQfQEahC3AgwBCyABQQA6AM0KCyABQeAEaiEACyAAKAIAIgJFDQAgACgCBCACQQEQyAMLIAFB7ANqELcCIAEoAsADIgAEQCABKALEAyAAQQEQyAMLIAEoArwDIgMEQCABKAK4AyECA0AgAhC3AiACQSBqIQIgA0EBayIDDQALCyABKAK0AyIABEAgASgCuAMgAEEFdEEEEMgDCwJAIAEtAI0ERQ0AIAEoApwDIgBFDQAgASgCoAMgAEEBEMgDIAFBADoAjQQMCwsgAUEAOgCNBAwKCyAAIAJqIgAoAgAiAgRAIAAoAgQgAkEBEMgDCyABKAKYBiIABEAgASgCnAYgAEEBEMgDCyABKAKUBiIDBEAgASgCkAYhAgNAIAIoAgAiAARAIAJBBGooAgAgAEEBEMgDCyACQQxqIQIgA0EBayIDDQALCyABKAKMBiIABEAgASgCkAYgAEEMbEEEEMgDCyABKAKABiIABEAgASgChAYgAEEFdEEBEMgDCyABKALwBCIABEAgASgC9AQgAEH4AGxBBBDIAwsgASgC/AQiAEUNACABKAKABSAAQfgAbEEEEMgDCyABQdwEaiEADAMLIAMoAgAiAkUNACADKAIEIAJBARDIAwsgAUEAOgDFB0E4IQMgASgCyAciAkUNACABKALMByACQQEQyAMLIAAgA2oiACgCACICBEAgACgCBCACQQEQyAMLAkAgAS0AxgdFDQAgASgCpAciAEUNACABKAKoByAAQQEQyAMgAUEAOgDGByABQdwEaiEADAELIAFBADoAxgcgAUHcBGohAAsgACgCACICRQ0AIAAoAgQgAkEBEMgDCyABKAKYBCEAAkAgASgCnAQiBEUNACAAIQIgBEEHcSIDBEADQCACQQA6AAAgAkEBaiECIANBAWsiAw0ACwsgBEEISQ0AIAAgBGohAwNAIAJBADoAACACQQA6AAEgAkEAOgACIAJBADoAAyACQQA6AAQgAkEAOgAFIAJBADoABiACQQA6AAcgAyACQQhqIgJHDQALCyABQQA2ApwEAkAgASgClAQiAkEATgRAAkAgAkUNACACQQdxIQRBACEDIAJBCE8EQCACQfj///8HcSEFA0AgACADaiICQQA6AAAgAkEBakEAOgAAIAJBAmpBADoAACACQQNqQQA6AAAgAkEEakEAOgAAIAJBBWpBADoAACACQQZqQQA6AAAgAkEHakEAOgAAIAUgA0EIaiIDRw0ACwsgBEUNACAAIANqIQIDQCACQQA6AAAgAkEBaiECIARBAWsiBA0ACwsgASgClAQiAARAIAEoApgEIABBARDIAwsgASgCjAQhAAJAIAEoApAEIgRFDQAgACECIARBB3EiAwRAA0AgAkEAOgAAIAJBAWohAiADQQFrIgMNAAsLIARBCEkNACAAIARqIQMDQCACQQA6AAAgAkEAOgABIAJBADoAAiACQQA6AAMgAkEAOgAEIAJBADoABSACQQA6AAYgAkEAOgAHIAMgAkEIaiICRw0ACwsgAUEANgKQBCABKAKIBCICQQBIDQECQCACRQ0AIAJBB3EhBEEAIQMgAkEITwRAIAJB+P///wdxIQUDQCAAIANqIgJBADoAACACQQFqQQA6AAAgAkECakEAOgAAIAJBA2pBADoAACACQQRqQQA6AAAgAkEFakEAOgAAIAJBBmpBADoAACACQQdqQQA6AAAgBSADQQhqIgNHDQALCyAERQ0AIAAgA2ohAgNAIAJBADoAACACQQFqIQIgBEEBayIEDQALCyABKAKIBCICRQ0DIAFBjARqIQMMAgsMCAsMBwsgAygCACACQQEQyAMLIAFBrAlqELcCQdwAIQIgASgC3AMiAEUNACABKALgAyAAQQEQyAMLIAIgBmoiACgCACICBEAgACgCBCACQQEQyAMLIAEoAsADIgAEQCABKALEAyAAQQEQyAMLIAEoArwDIgMEQCABKAK4AyECA0AgAhC3AiACQSBqIQIgA0EBayIDDQALCyABKAK0AyIABEAgASgCuAMgAEEFdEEEEMgDCwJAIAEtANkDRQ0AIAEoApwDIgBFDQAgASgCoAMgAEEBEMgDIAFBADoA2QMMAQsgAUEAOgDZAwsgCSAHQQFqIgdHDQALIAogCUHQC2xBCBDIAwwBCyAAQQxqIQQCQCAAKAIQIgFFDQAgBCgCACEJA0AgASgC3AshAyAJKAIIIQcgAUEANgLcCyABKALYCyECIAEgB0EI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EMgDCyACKAKEAiIARQ0JIAIoAogCIABBARDIAwwJCyACKAKQAiIDIAJBlAJqKAIAIgAoAgARAABBxAEhASAAKAIEIgRFDQEgAyAEIAAoAggQyAMMAQsgAigCqAIiASACQawCaigCACIAKAIAEQAAIAAoAgQiAwRAIAEgAyAAKAIIEMgDCyACKAKQAiIABEAgAigClAIgAEEBEMgDC0G0ASEBIAIoAoQCIgBFDQAgAigCiAIgAEEBEMgDCyABIAVqIgAoAgAiAQRAIAAoAgQgAUEBEMgDCyACKALoASIARQ0GIAIoAuwBIABBA3RBCBDIAwwGCwJAAkAgAi0A9AQOBAAKCgEKCyACKALgBCIARQ0JIAIoAuQEIABBARDIAwwJCyACQeABaiEFQdwBIQECQAJAAkACQAJAIAItANADDgcICQkAAQIDCQsgAigC8AMiASACQfQDaigCACIAKAIAEQAAIAAoAgQiAwRAIAEgAyAAKAIIEMgDCyACKALkAyIABEAgAigC6AMgAEEBEMgDCyACKALYAyIARQ0GIAIoAtwDIABBARDIAwwGCyACKALkAyIDIAJB6ANqKAIAIgAoAgARAABB+AEhASAAKAIEIgRFDQQgAyAEIAAoAggQyAMMBAsgAigC8AMiASACQfQDaigCACIAKAIAEQAAIAAoAgQiA0UNASABIAMgACgCCBDIAwwBCyACKAL8AyIBIAJBgARqKAIAIgAoAgARAAAgACgCBCIDBEAgASADIAAoAggQyAMLIAIoAvADIgBFDQAgAigC9AMgAEEBEMgDCyACKALkAyIABEAgAigC6AMgAEEBEMgDCyACKALYAyIABEAgAigC3AMgAEEBEMgDCyACKAKkAyIABEAgAigCqAMgAEEBEMgDCyACKAKYAyIABEAgAigCnAMgAEEDdEEIEMgDCyACKAKMAyIABEAgAigCkAMgAEEDdEEIEMgDC0GUASEBIAIoAoADIgBFDQEgAigChAMgAEEBEMgDDAELIARBgICAgHhHBEAgAigCCCIDBEAgAigCBCEBA0AgARC3AiABQSBqIQEgA0EBayIDDQALIAIoAgAhBAsgBARAIAIoAgQgBEEFdEEEEMgDCyACQQxqIQBBkCAhBUEEIQECQAJAIAIoAgwiBEGAgICAeGsOAgELAAsgAigCFCIDBEAgAigCECEBA0AgASgCACIEBEAgAUEEaigCACAEQQEQyAMLIAFBDGohASADQQFrIgMNAAsgACgCACEEC0GYISEFQQwhASAERQ0AIAIoAhAgBEEMbEEEEMgDCyAAIAFqIgIoAggiAwRAIAIoAgQhAQNAIAEoAgAiBARAIAFBBGooAgAgBEEBEMgDCyABQQxqIQEgA0EBayIDDQALCyACKAIAIgEEQCACKAIEIAFBDGxBBBDIAwsgACAFaiIAKAIIIgMEQCAAKAIEIQEDQCABELcCIAFBIGohASADQQFrIgMNAAsLIAAoAgAiAUUNCSAAKAIEIAFBBXRBBBDIAwwJCyACQQRqEIwCDAgLIAEgBWoiACgCACIBBEAgACgCBCABQQEQyAMLIAIoAvACIgMEQCACKALsAiEBA0AgASgCACIABEAgAUEEaigCACAAQQN0QQgQyAMLIAFBDGohASADQQFrIgMNAAsLIAIoAugCIgAEQCACKALsAiAAQQxsQQQQyAMLIAIoAtwCIgBFDQAgAigC4AIgAEEDdEEIEMgDCyACKALQAiEAAkAgAigC1AIiBEUNACAAIQEgBEEHcSIDBEADQCABQQA6AAAgAUEBaiEBIANBAWsiAw0ACwsgBEEISQ0AIAAgBGohAwNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAyABQQhqIgFHDQALCyACQQA2AtQCAkAgAigCzAIiAUEATgRAAkAgAUUNACABQQdxIQRBACEDIAFBCE8EQCABQfj///8HcSEGA0AgACADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgA0EIaiIDRw0ACwsgBEUNACAAIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgAigCzAIiAARAIAIoAtACIABBARDIAwsgBRBaIAIoAuQBIQACQCACKALoASIERQ0AIAAhASAEQQdxIgMEQANAIAFBADoAACABQQFqIQEgA0EBayIDDQALCyAEQQhJDQAgACAEaiEDA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByADIAFBCGoiAUcNAAsLIAJBADYC6AEgAigC4AEiAUEASA0MAkAgAUUNACABQQdxIQRBACEDIAFBCE8EQCABQfj///8HcSEGA0AgACADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgA0EIaiIDRw0ACwsgBEUNACAAIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgBSgCACIABEAgAigC5AEgAEEBEMgDCyACKALwASEAAkAgAigC9AEiBEUNACAAIQEgBEEHcSIDBEADQCABQQA6AAAgAUEBaiEBIANBAWsiAw0ACwsgBEEISQ0AIAAgBGohAwNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAyABQQhqIgFHDQALCyACQQA2AvQBIAIoAuwBIgFBAEgNDAJAIAFFDQAgAUEHcSEEQQAhAyABQQhPBEAgAUH4////B3EhBgNAIAAgA2oiAUEAOgAAIAFBAWpBADoAACABQQJqQQA6AAAgAUEDakEAOgAAIAFBBGpBADoAACABQQVqQQA6AAAgAUEGakEAOgAAIAFBB2pBADoAACAGIANBCGoiA0cNAAsLIARFDQAgACADaiEBA0AgAUEAOgAAIAFBAWohASAEQQFrIgQNAAsLIAIoAuwBIgAEQCACKALwASAAQQEQyAMLIAIoAsACIQACQCACKALEAiIERQ0AIAAhASAEQQdxIgMEQANAIAFBADoAACABQQFqIQEgA0EBayIDDQALCyAEQQhJDQAgACAEaiEDA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByADIAFBCGoiAUcNAAsLIAJBADYCxAIgAigCvAIiAUEASA0MAkAgAUUNACABQQdxIQRBACEDIAFBCE8EQCABQfj///8HcSEGA0AgACADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgA0EIaiIDRw0ACwsgBEUNACAAIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgAigCvAIiAARAIAIoAsACIABBARDIAwsgAigCtAIhAAJAIAIoArgCIgRFDQAgACEBIARBB3EiAwRAA0AgAUEAOgAAIAFBAWohASADQQFrIgMNAAsLIARBCEkNACAAIARqIQMDQCABQQA6AAAgAUEAOgABIAFBADoAAiABQQA6AAMgAUEAOgAEIAFBADoABSABQQA6AAYgAUEAOgAHIAMgAUEIaiIBRw0ACwsgAkEANgK4AiACKAKwAiIBQQBIDQECQCABRQ0AIAFBB3EhBEEAIQMgAUEITwRAIAFB+P///wdxIQYDQCAAIANqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBiADQQhqIgNHDQALCyAERQ0AIAAgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALC0EwIQEgAigCsAIiAEUNAiACKAK0AiAAQQEQyAMMAgsMCwsMCgsgASAFaiIAKAIAIgFFDQAgACgCBCABQQEQyAMLIAIoAtAEIgMEQCACKALMBCEBA0AgASgCACIABEAgAUEEaigCACAAQQEQyAMLIAFBDGohASADQQFrIgMNAAsLIAIoAsgEIgAEQCACKALMBCAAQQxsQQQQyAMLIAIoArwEIgAEQCACKALABCAAQQEQyAMLIAIoArgEIgMEQCACKAK0BCEBA0AgARC3AiABQSBqIQEgA0EBayIDDQALCyACKAKwBCIABEAgAigCtAQgAEEFdEEEEMgDCyACKAKsBCIDBEAgAigCqAQhAQNAIAEQtwIgAUEgaiEBIANBAWsiAw0ACwsgAigCpAQiAARAIAIoAqgEIABBBXRBBBDIAwsgAigCoAQiAwRAIAIoApwEIQEDQCABKAIAIgAEQCABQQRqKAIAIABBARDIAwsgAUEMaiEBIANBAWsiAw0ACwsgAigCmAQiAARAIAIoApwEIABBDGxBBBDIAwsgAkHAAWoQtwIMAwsgAigC3AEiAARAIAIoAuABIABBARDIAwsgAigC2AEiAwRAIAIoAtQBIQEDQCABKAIAIgAEQCABQQRqKAIAIABBA3RBCBDIAwsgAUEMaiEBIANBAWsiAw0ACwsgAigC0AEiAARAIAIoAtQBIABBDGxBBBDIAwsgAigCxAEhAAJAIAIoAsgBIgRFDQAgACEBIARBB3EiAwRAA0AgAUEAOgAAIAFBAWohASADQQFrIgMNAAsLIARBCEkNACAAIARqIQMDQCABQQA6AAAgAUEAOgABIAFBADoAAiABQQA6AAMgAUEAOgAEIAFBADoABSABQQA6AAYgAUEAOgAHIAMgAUEIaiIBRw0ACwsgAkEANgLIASACKALAASIBQQBOBEACQCABRQ0AIAFBB3EhBEEAIQMgAUEITwRAIAFB+P///wdxIQYDQCAAIANqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBiADQQhqIgNHDQALCyAERQ0AIAAgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALCyACKALAASIABEAgAigCxAEgAEEBEMgDC0HkACEBIAIoArABIgBFDQEgAigCtAEgAEEBEMgDDAELDAcLIAEgBWoiACgCACIBBEAgACgCBCABQQEQyAMLIAIoApwBIQACQCACKAKgASIERQ0AIAAhASAEQQdxIgMEQANAIAFBADoAACABQQFqIQEgA0EBayIDDQALCyAEQQhJDQAgACAEaiEDA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByADIAFBCGoiAUcNAAsLIAJBADYCoAECQCACKAKYASIBQQBOBEACQCABRQ0AIAFBB3EhBEEAIQMgAUEITwRAIAFB+P///wdxIQUDQCAAIANqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBSADQQhqIgNHDQALCyAERQ0AIAAgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALCyACKAKcASEAAkAgAigCoAEiBEUNACAAIQEgBEEHcSIDBEADQCABQQA6AAAgAUEBaiEBIANBAWsiAw0ACwsgBEEISQ0AIAAgBGohAwNAIAFBADoA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IAAoAvACIgIEQCAAKALsAiEBA0AgASgCACIDBEAgAUEEaigCACADQQN0QQgQyAMLIAFBDGohASACQQFrIgINAAsLIAAoAugCIgEEQCAAKALsAiABQQxsQQQQyAMLIAAoAtwCIgFFDQAgACgC4AIgAUEDdEEIEMgDCyAAKALQAiEDAkAgACgC1AIiBEUNACADIQEgBEEHcSICBEADQCABQQA6AAAgAUEBaiEBIAJBAWsiAg0ACwsgBEEISQ0AIAMgBGohAgNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAiABQQhqIgFHDQALCyAAQQA2AtQCAkAgACgCzAIiAUEATgRAAkAgAUUNACABQQdxIQRBACECIAFBCE8EQCABQfj///8HcSEGA0AgAiADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgAkEIaiICRw0ACwsgBEUNACACIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgACgCzAIiAQRAIAAoAtACIAFBARDIAwsgBRBaIAAoAuQBIQMCQCAAKALoASIERQ0AIAMhASAEQQdxIgIEQANAIAFBADoAACABQQFqIQEgAkEBayICDQALCyAEQQhJDQAgAyAEaiECA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByACIAFBCGoiAUcNAAsLIABBADYC6AEgACgC4AEiAUEASA0KAkAgAUUNACABQQdxIQRBACECIAFBCE8EQCABQfj///8HcSEGA0AgAiADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgAkEIaiICRw0ACwsgBEUNACACIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgBSgCACIBBEAgACgC5AEgAUEBEMgDCyAAKALwASEDAkAgACgC9AEiBEUNACADIQEgBEEHcSICBEADQCABQQA6AAAgAUEBaiEBIAJBAWsiAg0ACwsgBEEISQ0AIAMgBGohAgNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAiABQQhqIgFHDQALCyAAQQA2AvQBIAAoAuwBIgFBAEgNCgJAIAFFDQAgAUEHcSEEQQAhAiABQQhPBEAgAUH4////B3EhBgNAIAIgA2oiAUEAOgAAIAFBAWpBADoAACABQQJqQQA6AAAgAUEDakEAOgAAIAFBBGpBADoAACABQQVqQQA6AAAgAUEGakEAOgAAIAFBB2pBADoAACAGIAJBCGoiAkcNAAsLIARFDQAgAiADaiEBA0AgAUEAOgAAIAFBAWohASAEQQFrIgQNAAsLIAAoAuwBIgEEQCAAKALwASABQQEQyAMLIAAoAsACIQMCQCAAKALEAiIERQ0AIAMhASAEQQdxIgIEQANAIAFBADoAACABQQFqIQEgAkEBayICDQALCyAEQQhJDQAgAyAEaiECA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByACIAFBCGoiAUcNAAsLIABBADYCxAIgACgCvAIiAUEASA0KAkAgAUUNACABQQdxIQRBACECIAFBCE8EQCABQfj///8HcSEGA0AgAiADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgAkEIaiICRw0ACwsgBEUNACACIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgACgCvAIiAQRAIAAoAsACIAFBARDIAwsgACgCtAIhAwJAIAAoArgCIgRFDQAgAyEBIARBB3EiAgRAA0AgAUEAOgAAIAFBAWohASACQQFrIgINAAsLIARBCEkNACADIARqIQIDQCABQQA6AAAgAUEAOgABIAFBADoAAiABQQA6AAMgAUEAOgAEIAFBADoABSABQQA6AAYgAUEAOgAHIAIgAUEIaiIBRw0ACwsgAEEANgK4AiAAKAKwAiIBQQBIDQECQCABRQ0AIAFBB3EhBEEAIQIgAUEITwRAIAFB+P///wdxIQYDQCACIANqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBiACQQhqIgJHDQALCyAERQ0AIAIgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALC0EwIQEgACgCsAIiA0UNAiAAKAK0AiADQQEQyAMMAgsMCQsMCAsgASAFaiIBKAIAIgNFDQAgASgCBCADQQEQyAMLIAAoAtAEIgIEQCAAKALMBCEBA0AgASgCACIDBEAgAUEEaigCACADQQEQyAMLIAFBDGohASACQQFrIgINAAsLIAAoAsgEIgEEQCAAKALMBCABQQxsQQQQyAMLIAAoArwEIgEEQCAAKALABCABQQEQyAMLIAAoArgEIgIEQCAAKAK0BCEBA0AgARC3AiABQSBqIQEgAkEBayICDQALCyAAKAKwBCIBBEAgACgCtAQgAUEFdEEEEMgDCyAAKAKsBCICBEAgACgCqAQhAQNAIAEQtwIgAUEgaiEBIAJBAWsiAg0ACwsgACgCpAQiAQRAIAAoAqgEIAFBBXRBBBDIAwsgACgCoAQiAgRAIAAoApwEIQEDQCABKAIAIgMEQCABQQRqKAIAIANBARDIAwsgAUEMaiEBIAJBAWsiAg0ACwsgACgCmAQiAQRAIAAoApwEIAFBDGxBBBDIAwsgAEHAAWoQtwIMAwsgACgC3AEiAQRAIAAoAuABIAFBARDIAwsgACgC2AEiAgRAIAAoAtQBIQEDQCABKAIAIgMEQCABQQRqKAIAIANBA3RBCBDIAwsgAUEMaiEBIAJBAWsiAg0ACwsgACgC0AEiAQRAIAAoAtQBIAFBDGxBBBDIAwsgACgCxAEhAwJAIAAoAsgBIgRFDQAgAyEBIARBB3EiAgRAA0AgAUEAOgAAIAFBAWohASACQQFrIgINAAsLIARBCEkNACADIARqIQIDQCABQQA6AAAgAUEAOgABIAFBADoAAiABQQA6AAMgAUEAOgAEIAFBADoABSABQQA6AAYgAUEAOgAHIAIgAUEIaiIBRw0ACwsgAEEANgLIASAAKALAASIBQQBOBEACQCABRQ0AIAFBB3EhBEEAIQIgAUEITwRAIAFB+P///wdxIQYDQCACIANqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBiACQQhqIgJHDQALCyAERQ0AIAIgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALCyAAKALAASIBBEAgACgCxAEgAUEBEMgDC0HkACEBIAAoArABIgNFDQEgACgCtAEgA0EBEMgDDAELDAULIAEgBWoiASgCACIDBEAgASgCBCADQQEQyAMLIAAoApwBIQMCQCAAKAKgASIERQ0AIAMhASAEQQdxIgIEQANAIAFBADoAACABQQFqIQEgAkEBayICDQALCyAEQQhJDQAgAyAEaiECA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByACIAFBCGoiAUcNAAsLIABBADYCoAECQCAAKAKYASIBQQBOBEACQCABRQ0AIAFBB3EhBEEAIQIgAUEITwRAIAFB+P///wdxIQUDQCACIANqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBSACQQhqIgJHDQALCyAERQ0AIAIgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALCyAAKAKcASEDAkAgACgCoAEiBEUNACADIQEgBEEHcSICBEADQCABQQA6AAAgAUEBaiEBIAJBAWsiAg0ACwsgBEEISQ0AIAMgBGohAgNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAiABQQhqIgFHDQALCyAAQQA2AqABIAAoApgBIgFBAEgNAQJAIAFFDQAgAUEHcSEEQQAhAiABQQhPBEAgAUH4////B3EhBQNAIAIgA2oiAUEAOgAAIAFBAWpBADoAACABQQJqQQA6AAAgAUEDakEAOgAAIAFBBGpBADoAACABQQVqQQA6AAAgAUEGakEAOgAAIAFBB2pBADoAACAFIAJBCGoiAkcNAAsLIARFDQAgAiADaiEBA0AgAUEAOgAAIAFBAWohASAEQQFrIgQNAAsLIAAoApgBIgEEQCAAKAKcASABQQEQyAML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KAKIBCAQIBhqa0H6//+/AWo2AlAgAyADKAKEBCAKIBdqa0H6//+/AWo2AkwgAyADKAKABCAPIBZqa0H6//+/AWo2AkggAyADKAL8AyAJIBVqa0H6//+/AWo2AkQgAyADKAL4AyAOIBRqa0H6//+/AWo2AkAgAyADKAL0AyAIIBNqa0H6//+/AWo2AjwgAyADKALwAyAMIBJqa0H6//+/AWo2AjggAyADKALsAyAHIBFqa0H6/P+/AWo2AjQgAyADKALoAyAGIA1qa0Ga0v+/AWo2AjAgAyBKIFJqNgK8AyADICwgP2o2ArgDIAMgKyA+ajYCtAMgAyAqID1qNgKwAyADICkgPGo2AqwDIAMgKCA7ajYCqAMgAyAnIDpqNgKkAyADICYgOWo2AqADIAMgJSA4ajYCnAMgAyABIDdqNgKYAyADIBkgTWo2AuQDIAMgNCBJajYC4AMgAyAzIEhqNgLcAyADIDIgR2o2AtgDIAMgMSBGajYC1AMgAyAwIEVqNgLQAyADIC8gRGo2AswDIAMgLiBDajYCyAMgAyAtIEJqNgLEAyADIAIgQWo2AsADIAQgNSAFEDsgAyADKAKMBCAaICBqa0H6//8LajYCfCADIAMoAogEIBggJGprQfr//78BajYCeCADIAMoAoQEIBcgH2prQfr//78BajYCdCADIAMoAoAEIBYgI2prQfr//78BajYCcCADIAMoAvwDIBUgHmprQfr//78BajYCbCADIAMoAvgDIBQgImprQfr//78BajYCaCADIAMoAvQDIBMgHWprQfr//78BajYCZCADIAMoAvADIBIgIWprQfr//78BajYCYCADIAMoAuwDIBEgHGprQfr8/78BajYCXCADIAMoAugDIA0gG2prQZrS/78BajYCWCADIBpBFWw2AuQDIAMgGEEVbDYC4AMgAyAXQRVsNgLcAyADIBZBFWw2AtgDIAMgFUEVbDYC1AMgAyAUQRVsNgLQAyADIBNBFWw2AswDIAMgEkEVbDYCyAMgAyARQRVsNgLEAyADIA1BFWw2AsADIAQgBRDEASADKALoAyECIAMoAuwDIQ0gAygC8AMhESADKAL0AyESIAMoAvgDIRMgAygC/AMhFCADKAKABCEVIAMoAoQEIRYgAygCiAQhFyADIAsgAygCjAQiGGtB/P//B2o2AqQBIAMgECAXa0H8////AGo2AqABIAMgCiAWa0H8////AGo2ApwBIAMgDyAVa0H8////AGo2ApgBIAMgCSAUa0H8////AGo2ApQBIAMgDiATa0H8////AGo2ApABIAMgCCASa0H8////AGo2AowBIAMgDCARa0H8////AGo2AogBIAMgByANa0H8/f//AGo2AoQBIAMgBiACa0G84f//AGo2AoABIANBqAFqIgFBIGoiGiAQIBdqNgIAIAFBGGoiECAPIBVqNgIAIAFBEGoiDyAOIBNqNgIAIAFBCGoiDiAMIBFqNgIAIAMgCyAYajYCzAEgAyAKIBZqNgLEASADIAkgFGo2ArwBIAMgCCASajYCtAEgAyAHIA1qNgKsASADIAIgBmo2AqgBIAMgAygCVEEHbDYC5AMgAyADKAJQQQdsNgLgAyADIAMoAkxBB2w2AtwDIAMgAygCSEEHbDYC2AMgAyADKAJEQQdsNgLUAyADIAMoAkBBB2w2AtADIAMgAygCPEEHbDYCzAMgAyADKAI4QQdsNgLIAyADIAMoAjRBB2w2AsQDIAMgAygCMEEHbDYCwAMgBCAFEMQBIAMoAugDIQIgAygC7AMhBiADKALwAyEHIAMoAvQDIQggAygC+AMhCSADKAL8AyEKIAMoAoAEIQsgAygChAQhDCADKAKIBCENIAMgAygCjARBA2w2AowEIAMgDUEDbDYCiAQgAyAMQQNsNgKEBCADIAtBA2w2AoAEIAMgCkEDbDYC/AMgAyAJQQNsNgL4AyADIAhBA2w2AvQDIAMgB0EDbDYC8AMgAyAGQQNsNgLsAyADIAJBA2w2AugDIANB0AFqIgIgBBDEASADICBBCWw2AuQDIAMgJEEJbDYC4AMgAyAfQQlsNgLcAyADICNBCWw2AtgDIAMgHkEJbDYC1AMgAyAiQQlsNgLQAyADIB1BCWw2AswDIAMgIUEJbDYCyAMgAyAcQQlsNgLEAyADIBtBCWw2AsADIAQgBRDEASADIAMoAowEQQdsNgK8AyADIAMoAogEQQdsNgK4AyADIAMoAoQEQQdsNgK0AyADIAMoAoAEQQdsNgKwAyADIAMoAvwDQQdsNgKsAyADIAMoAvgDQQdsNgKoAyADIAMoAvQDQQdsNgKkAyADIAMoAvADQQdsNgKgAyADIAMoAuwDQQdsNgKcAyADIAMoAugDQQdsNgKYAyADQfgBaiIGIDUQxAEgBUEgaiIHIE4pAgA3AwAgBUEYaiIIIE8pAgA3AwAgBUEQaiIJIFApAgA3AwAgBUEIaiIKIFEpAgA3AwAgAyADKQIINwPAAyAEIAUgA0GAAWoiCxA7IAMoAugDIQwgAygC7AMhDSADKALwAyERIAMoAvQDIRIgAygC+AMhEyADKAL8AyEUIAMoAoAEIRUgAygChAQhFiADKAKIBCEXIAMoAowEIRggBCACIANB2ABqIhkQOyADIBggAygCjARrQfz//wdqNgLkAyADIBcgAygCiARrQfz///8AajYC4AMgAyAWIAMoAoQEa0H8////AGo2AtwDIAMgFSADKAKABGtB/P///wBqNgLYAyADIBQgAygC/ANrQfz///8AajYC1AMgAyATIAMoAvgDa0H8////AGo2AtADIAMgEiADKAL0A2tB/P///wBqNgLMAyADIBEgAygC8ANrQfz///8AajYCyAMgAyANIAMoAuwDa0H8/f//AGo2AsQDIAMgDCADKALoA2tBvOH//wBqNgLAAyADQaACaiICIAUQxAEgByAaKQIANwMAIAggECkCADcDACAJIA8pAgA3AwAgCiAOKQIANwMAIAMgAykCqAE3A8ADIAQgBSALEDsgAygC6AMhByADKALsAyEIIAMoAvADIQkgAygC9AMhCiADKAL4AyELIAMoAvwDIQwgAygCgAQhDiADKAKEBCEPIAMoAogEIRAgAygCjAQhDSAEIAYgGRA7IAMgDSADKAKMBGo2AuQDIAMgECADKAKIBGo2AuADIAMgDyADKAKEBGo2AtwDIAMgDiADKAKABGo2AtgDIAMgDCADKAL8A2o2AtQDIAMgCyADKAL4A2o2AtADIAMgCiADKAL0A2o2AswDIAMgCSADKALwA2o2AsgDIAMgCCADKALsA2o2AsQDIAMgByADKALoA2o2AsADIANByAJqIgYgBRDEASAEIANBMGogARA7IAMoAugDIQEgAygC7AMhByADKALwAyEIIAMoAvQDIQkgAygC+AMhCiADKAL8AyELIAMoAoAEIQwgAygChAQhDiADKAKIBCEPIAMoAowEIRAgAyAgQQNsNgLkAyADICRBA2w2AuADIAMgH0EDbDYC3AMgAyAjQQNsNgLYAyADIB5BA2w2AtQDIAMgIkEDbDYC0AMgAyAdQQNsNgLM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FCABKAKQCSEVIAEoAowJIRYgASgCiAkhFyABKAKECSEYIAEoAoAJIRkgAUHIImoiA0GkzsEAQfgAEOYDGiADIAFBnM/BABA7IANByABqIAFByABqKQIANwMAIANBQGsgAUFAaykCADcDACADQThqIAFBOGopAgA3AwAgA0EwaiABQTBqKQIANwMAIANB2ABqIAFB2ABqKQIANwMAIANB4ABqIAFB4ABqKQIANwMAIANB6ABqIAFB6ABqKQIANwMAIANB8ABqIAFB8ABqKQIANwMAIAEgASkCKDcD8CIgASABKQJQNwOYIyMAQRBrIgciC0EAOgAPIAstAA8aIAtCf0IAIBlBoMHswAZLrSAYrXxCxt6k/w1WrSAXrXxCnaCRvQVWrSAWrXxC89zd6gVWrSAVrXxC/////w9WrSAUrXxC/////w9WrSATrXxC/////w9WGyAKrX1C/////wd8QiCIp0EBcToADyABIAstAA8iCzoAngEgB0EAOgAPIActAA8aIAdCf0IAICGnIh1BoMHswAZLrSASrXxCxt6k/w1WrSAgQv////8Pg3xCnaCRvQVWrSARrXxC89zd6gVWrSAfQv////8Pg3xC/////w9WrSAQrXxC/////w9WrSAeQv////8Pg3xC/////w9WGyAPrX1C/////wd8QiCIp0EBcToADyABIActAA8iBzoAnwEgBEIANwMAIA1CADcDACAOQgA3AwAgAUIANwO4ESABIAs6AKAJIAEgCjYCnAkgASATNgKYCSABIBQ2ApQJIAEgFTYCkAkgASAWNgKMCSABIBc2AogJIAEgGDYChAkgASAZNgKACSAIIAIQmQEgBSACIAggCxDWASABQaABaiIKQQhqIA4pAwA3AwAgCkEQaiANKQMANwMAIApBGGogBCkDADcDACABIAEpA7gRNwOgASABIAc6AKAJIAEgDzYCnAkgASAePgKYCSABIBA2ApQJIAEgHz4CkAkgASARNgKMCSABICA+AogJIAEgEjYChAkgASAdNgKACSAIIAIQmQEgBiACIAggBxDWASAMQQhqIBwpAwA3AwAgDEEQaiAbKQMANwMAIAxBGGogGikDADcDACABIAEpA7AhNwOoIiABQbASaiIEQaTOwQBB+AAQ5gMaIARB+ABqQaTOwQBB+AAQ5gMaIARB8AFqQaTOwQBB+AAQ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aiIBRw0ACwsgA0EANgIgIAMoAhgiAUEASA0IAkAgAUUNACABQQdxIQRBACECIAFBCE8EQCABQfj///8HcSEIA0AgAiAFaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAggAkEIaiICRw0ACwsgBEUNACACIAVqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgAygCGCIBBEAgAygCHCABQQEQyAMLIAYgAygCKCIFNgIIIAYgBSADKAIsQQV0ajYCDCAGQQhqEMMBIANBADYCLAJAIAMoAiQiAUH///8/TQRAIAFBBXQiBEEASA0BIAQEQEEAIQIDQCACIAVqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBCACQQhqIgJHDQALC0E0IQEgAygCJCIFRQ0DIAMoAiggBUEFdEEBEMgDIANBNEEEEMgDDAcLQZSXwQAQzwMACwwICyADKAIIIgIEQCADKAIEIQEDQCABELcCIAFBIGohASACQQFrIgINAAsLIAMoAgAiAQRAIAMoAgQgAUEFdEEEEMgDCyADKAIQIQUgAygCFCIBBEAgBSABQQZ0aiECIAUhAQNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAUEAOgAIIAFBADoACSABQQA6AAogAUEAOgALIAFBADoADCABQQA6AA0gAUEAOgAOIAFBADoADyABQQA6ABAgAUEAOgARIAFBADoAEiABQQA6ABMgAUEAOgAUIAFBADoAFSABQQA6ABYgAUEAOgAXIAFBADoAGCABQQA6ABkgAUEAOgAaIAFBADoAGyABQQA6ABwgAUEAOgAdIAFBADoAHiABQQA6AB8gAUEAOgAgIAFBADoAISABQQA6ACIgAUEAOgAjIAFBADoAJCABQQA6ACUgAUEAOgAmIAFBADoAJyABQQA6ACggAUEAOgApIAFBADoAKiABQQA6ACsgAUEAOgAsIAFBADoALSABQQA6AC4gAUEAOgAvIAFBADoAMCABQQA6ADEgAUEAOgAyIAFBADoAMyABQQA6ADQgAUEAOgA1IAFBADoANiABQQA6ADcgAUEAOgA4IAFBADoAOSABQQA6ADogAUEAOgA7IAFBADoAPCABQQA6AD0gAUEAOgA+IAFBADoAPyACIAFBQGsiAUcNAAsLIANBADYCFCADKAIMIgFB////H0sNASABQQZ0IgRBAEgNAiAEBEBBACECA0AgAiAFaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAQgAkEIaiICRw0ACwtBHCEBIAMoAgwiBUUNACADKAIQIAVBBnRBARDIAwsgAyABQQQQyAMMAwtBlJfBABDPAwALDAQLIAEQjAILIAdBAWoiByAKRw0ACwsgACgCCCIBBEAgACgCACABQQR0QQQQyAMLIAZBEGokAA8LQfiVwQBBLUGEl8EAEPUCAAvDDwIUfwN+IwBBwAVrIgMkACADQQE7AUwgAyACNgJIIANBADYCRCADQQE6AEAgA0EjNgI8IAMgAjYCOCADQQA2AjQgAyACNgIwIAMgATYCLCADQSM2AiggA0EgaiADQShqIgEQZgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAygCICICBEAgA0HQAGoiByACIAMoAiQQtgEgAygCXCECIAMoAlghDSADKAJUIQogAygCUCIEQQRHDQ4gA0EYaiABEGYgAygCGCIERQ0BIAcgBCADKAIcELYBIAMoAlwhBCADKAJYIQ4gAygCVCELIAMoAlAiBUEERw0NIANBEGogARBmIAMoAhAiBUUNAiAHIAUgAygCFBC2ASADKAJcIQYgAygCWCEPIAMoAlQhDCADKAJQIgVBBEcNAyADQQhqIAEQZiADKAIIIgFFDQkgByABIAMoAgwQtgEgAygCXCESIAMoAlghBSADKAJUIQEgAygCUCIJQQRHDQQgA0GkA2oiCSANIAIQTyAJQQRqIQIgAygCpAMNBSADQagCaiITIAJB+AAQ5gMaIAkgDiAEEJQBIANBqANqIQQgAygCpAMNBiADQcAEaiIIQRhqIARBGGoiESkCACIXNwMAIAhBEGogBEEQaiIUKQIAIhg3AwAgCEEIaiAEQQhqIggpAgAiGTcDACADQaAEaiIQQQhqIhUgGTcDACAQQRBqIhYgGDcDACAQQRhqIhAgFzcDACADIAQpAgAiFzcDwAQgAyAXNwOgBCAJIA8gBhCUASADKAKkAw0HIANBgAVqIgZBGGogESkCACIXNwMAIAZBEGogFCkCACIYNwMAIAZBCGogCCkCACIZNwMAIANB4ARqIgZBCGoiCCAZNwMAIAZBEGoiESAYNwMAIAZBGGoiBiAXNwMAIAMgBCkCACIXNwOABSADIBc3A+AEIAkgBSASEJQBIAMoAqQDDQggA0GgBWoiBEEYaiACQRhqKQIAIhc3AwAgBEEQaiACQRBqKQIAIhg3AwAgBEEIaiACQQhqKQIAIhk3AwAgA0GYAWogGTcDACADQaABaiAYNwMAIANBqAFqIBc3AwAgAyACKQIAIhc3A6AFIAMgFzcDkAEgA0GwAWogE0H4ABDmAxogB0EYaiAQKQMANwMAIAdBEGogFikDADcDACAHQQhqIBUpAwA3AwAgA0H4AGogCCkDADcDACADQYABaiARKQMANwMAIANBiAFqIAYpAwA3AwAgAyADKQOgBDcDUCADIAMpA+AENwNwIABBBGogB0HYARDmAxogAEEANgIAIAFFDQogBSABQQEQyAMMCgtBsZXCAC0AABpBF0EBEL0DIgFFDQ4gAEEXNgIQIAAgATYCDCAAQRc2AgggAEIBNwIAIAFBD2pBsaDBACkAADcAACABQQhqQaqgwQApAAA3AAAgAUGioMEAKQAANwAADBILQbGVwgAtAAAaQRhBARC9AyIBRQ0SIABBGDYCECAAIAE2AgwgAEEYNgIIIABCATcCACABQRBqQZqgwQApAAA3AAAgAUEIakGSoMEAKQAANwAAIAFBiqDBACkAADcAAAwKC0GxlcIALQAAGkEYQQEQvQMiAUUNESAAQRg2AhAgACABNgIMIABBGDYCCCAAQgE3AgAgAUEQakGCoMEAKQAANwAAIAFBCGpB+p/BACkAADcAACABQfKfwQApAAA3AAAMCAsgACAGNgIQIAAgDzYCDCAAIAw2AgggACAFNgIEIABBATYCAAwNCyAAIBI2AhAgACAFNgIMIAAgATYCCCAAIAk2AgQgAEEBNgIADAsLIANBsAJqIAJBCGooAgAiBDYCACADIAIpAgAiFzcDqAIgAEKBgICAMDcCACAAIBc3AgggAEEQaiAENgIAIAFFDQogBSABQQEQyAMMCgsgA0HIBGogBEEIaigCACICNgIAIAMgBCkCACIXNwPABCAAQoGAgIAwNwIAIAAgFzcCCCAAQRBqIAI2AgAgAUUNCSAFIAFBARDIAwwJCyADQYgFaiAIKAIAIgI2AgAgAyAEKQIAIhc3A4AFIABCgYCAgDA3AgAgACAXNwIIIABBEGogAjYCACADQaAEahC3AiABRQ0IIAUgAUEBEMgDDAgLIANBqAVqIAJBCGooAgAiBDYCACADIAIpAgAiFzcDoAUgAEKBgICAMDcCACAAIBc3AgggAEEQaiAENgIAIANB4ARqELcCIANBoARqELcCIAFFDQcgBSABQQEQyAMMBwsgA0HQAGpB2J/BAEEaELwCIABCATcCACAAIAMpAlA3AgggAEEQaiADQdgAaigCADYCAAsgDEUNACAPIAxBARDIAwsgC0UNACAOIAtBARDIAwsgCkUNBiANIApBARDIAwwGCyAAIAQ2AhAgACAONgIMIAAgCzYCCCAAIAU2AgQgAEEBNgIADAQLIAAgAjYCECAAIA02AgwgACAKNgIIIAAgBDYCBCAAQQE2AgAMBAtBAUEXQeiVwgAoAgAiAEG8ASAAGxEBAAALIAxFDQAgDyAMQQEQyAMLIAtFDQAgDiALQQEQyAMLIApFDQAgDSAKQQEQyAMLIANBwAVqJAAPC0EBQRhB6JXCACgCACIAQbwBIAAbEQEAAAvZDwEgfyMAQcADayICJAAgAkEIaiIYIAFBKGoiGRBDIAJBMGoiDiABQdAAaiIaEEMgAkGYA2oiAyABIBkQOyACIAIoArwDQQF0NgJ8IAIgAigCuANBAXQ2AnggAiACKAK0A0EBdDYCdCACIAIoArADQQF0NgJwIAIgAigCrANBAXQ2AmwgAiACKAKoA0EBdDYCaCACIAIoAqQDQQF0NgJkIAIgAigCoANBAXQ2AmAgAiACKAKcA0EBdDYCXCACIAIoApgDQQF0NgJYIAIoAjAhASACKAI0IQQgAigCOCEFIAIoAjwhBiACKAJAIQcgAigCRCEIIAIoAkghCSACKAJMIQogAigCUCELIAIgAigCVEEVbDYClAMgAiALQRVsNgKQAyACIApBFWw2AowDIAIgCUEVbDYCiAMgAiAIQRVsNgKEAyACIAdBFWw2AoADIAIgBkEVbDYC/AIgAiAFQRVsNgL4AiACIARBFWw2AvQCIAIgAUEVbDYC8AIgAyACQfACaiIBEMQBIAIoApgDIQUgAigCnAMhBiACKAKgAyEHIAIoAqQDIQggAigCqAMhCSACKAKsAyEKIAIoArADIQsgAigCtAMhDCACKAK4AyENIAIgAigCvAMiD0EDbDYClAMgAiANQQNsNgKQAyACIAxBA2w2AowDIAIgC0EDbDYCiAMgAiAKQQNsNgKEAyACIAlBA2w2AoADIAIgCEEDbDYC/AIgAiAHQQNsNgL4AiACIAZBA2w2AvQCIAIgBUEDbDYC8AIgAyABEMQBIAIoApgDIRsgAigCnAMhECACKAKkAyERIAIoAqwDIRIgAigCtAMhEyACKAK8AyEUIAIoAqADIRUgAigCqAMhFiACKAKwAyEXIAJBgAFqIgRBIGoiHCACKAIoIh0gAigCuANrQfz///8AajYCACAEQRhqIh4gAigCICIfIBdrQfz///8AajYCACAEQRBqIhcgAigCGCIgIBZrQfz///8AajYCACAEQQhqIhYgAigCECIhIBVrQfz///8AajYCACACIAIoAiwiFSAUa0H8//8HajYCpAEgAiACKAIkIhQgE2tB/P///wBqNgKcASACIAIoAhwiEyASa0H8////AGo2ApQBIAIgAigCFCISIBFrQfz///8AajYCjAEgAiACKAIMIhEgEGtB/P3//wBqNgKEASACIAIoAggiECAba0G84f//AGo2AoABIAIgDyAVajYCzAEgAiANIB1qNgLIASACIAwgFGo2AsQBIAIgCyAfajYCwAEgAiAKIBNqNgK8ASACIAkgIGo2ArgBIAIgCCASajYCtAEgAiAHICFqNgKwASACIAYgEWo2AqwBIAIgBSAQajYCqAEgAyAYIA4QOyACKAKYAyEFIAIoApwDIQYgAigCoAMhByACKAKkAyEIIAIoAqgDIQkgAigCrAMhCiACKAKwAyELIAIoArQDIQwgAigCuAMhDSACIAIoArwDQRhsNgKUAyACIA1BGGw2ApADIAIgDEEYbDYCjAMgAiALQRhsNgKIAyACIApBGGw2AoQDIAIgCUEYbDYCgAMgAiAIQRhsNgL8AiACIAdBGGw2AvgCIAIgBkEYbDYC9AIgAiAFQRhsNgLwAiADIAEQxAEgAigCmAMhBiACKAKcAyEHIAIoAqADIQggAigCpAMhCSACKAKoAyEKIAIoAqwDIQsgAigCsAMhDCACKAK0AyENIAIoArgDIQ4gAigCvAMhDyACQdABaiIFIAJB2ABqIAQQOyABQSBqIBwpAgA3AwAgAUEYaiAeKQIANwMAIAFBEGogFykCADcDACABQQhqIBYpAgA3AwAgAiACKQKAATcD8AIgAyABIAJBqAFqEDsgAiACKAK8AyAPQQdsajYCxAIgAiACKAK4AyAOQQdsajYCwAIgAiACKAK0AyANQQdsajYCvAIgAiACKAKwAyAMQQdsajYCuAIgAiACKAKsAyALQQdsajYCtAIgAiACKAKoAyAKQQdsajYCsAIgAiACKAKkAyAJQQdsajYCrAIgAiACKAKgAyAIQQdsajYCqAIgAiACKAKcAyAHQQdsajYCpAIgAiACKAKYAyAGQQdsajYCoAIgAkH4AWoiBCACQaACahDEASABIBggGRA7IAMgASAaEDsgAiACKAK8A0EDdDYC7AIgAiACKAK4A0EDdDYC6AIgAiACKAK0A0EDdDYC5AIgAiACKAKwA0EDdDYC4AIgAiACKAKsA0EDdDYC3AIgAiACKAKoA0EDdDYC2AIgAiACKAKkA0EDdDYC1AIgAiACKAKgA0EDdDYC0AIgAiACKAKcA0EDdDYCzAIgAiACKAKYA0EDdDYCyAIgAyACQcgCahDEASAAQSBqIAVBIGopAgA3AgAgAEEYaiAFQRhqKQIANwIAIABBEGogBUEQaikCADcCACAAQQhqIAVBCGopAgA3AgAgACACKQLQATcCACAAIAIpAvgBNwIoIABBMGogBEEIaikCADcCACAAQThqIARBEGopAgA3AgAgAEFAayAEQRhqKQIANwIAIABByABqIARBIGopAgA3AgAgAEHwAGogA0EgaikCADcCACAAQegAaiADQRhqKQIANwIAIABB4ABqIANBEGopAgA3AgAgAEHYAGogA0EIaikCADcCACAAIAIpApgDNwJQIAJBwANqJAALpg0BBX8CQAJAAkACQAJAAkACQAJAAkACQCAALQDAAQ4HBwgIAAECAwgLIAAoAtABIgIgAEHUAWooAgAiAygCABEAAEHEASEBIAMoAgQiBEUNBSACIAQgAygCCBDIAwwFCyAAKALcASIDIABB4AFqKAIAIgEoAgAR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ADcDACACQQhqQgA3AwAgBEIANwOgAiACIAVB1AEQRSAGIAJBIBCUASAGQQRqIQIgBCgCgAFFBEAgB0EYaiACQRhqKQIAIgs3AwAgBEHAAmoiCEEIaiACQQhqKQIANwMAIAhBEGogAkEQaikCADcDACAIQRhqIAs3AwAgBCACKQIANwPAAiAJIAMQkgMgBiABIAgQkwMgByAGIAoQlAMgCSAHELcDIQEgAEEENgIAIAAgAToABCAIELcCIAMQtwIMBwsgBEHgA2ogAkEIaigCACIBNgIAIAQgAikCACILNwPYAyAAQQM2AgAgACALNwIEIABBDGogATYCACAEQYACahC3AgwGC0EBQfQBQeiVwgAoAgAiAEG8ASAAGxEBAAALIARB4wNqIARBjAFqKQIAIgs3AAAgBCAEKQKEASIMNwDbAyAAQQhqIAs3AAAgACAMNwAADAQLIAggBEHoAmooAgAiATYCACAEIAQpAuACIgs3A9gDIABBAzYCACAAIAs3AgQgAEEMaiABNgIADAMLIARBiAFqIARB4ANqKAIAIgE2AgAgBCAEKQLYAyILNwOAASAAQQM2AgAgACALNwIEIABBDGogATYCAAwCCyAEQeADaiACQQhqKAIAIgE2AgAgBCACKQIAIgs3A9gDIABBAzYCACAAIAs3AgQgAEEMaiABNgIADAELIARB4ANqIAJBCGooAgAiATYCACAEIAIpAgAiCzcD2AMgAEEDNgIAIAAgCzcCBCAAQQxqIAE2AgALIAVB9AFBARDIAyAEQdAEaiQAC7oHAgd/A34jAEGgAmsiAyQAIANB4ABqQgA3AwAgA0HYAGpCADcDACADQdAAakIANwMAIANByABqQgA3AwAgA0FAa0IANwMAIANBOGpCADcDACADQTBqQgA3AwAgA0EAOgBoIANBCGpB0IrBACkDADcDACADQRBqQdiKwQApAwA3AwAgA0EYakHgisEAKQMANwMAIANCADcDKCADQgA3AyAgA0HIisEAKQMANwMAIANBKGohBAJAIAJBP00EQCAEIAEgAhDmAxoMAQsgAyACQQZ2IgWtNwMgIAMgASAFEBYgBCABIAJBQHFqIAJBP3EiAhDmAxoLIAMgAjoAaCADQfAAaiADQfAAEOYDGiADQZgBaiIFIAMtANgBIgRqIgFBgAE6AAAgAykDkAEiCkIJhiEL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IANBBHRBBBDIAwsL+gYBCH8jAEHwEWsiAyQAIAItAAAhBiADQcQHaiIEIAFB+AAQ5gMaIAMgBjoAvAggA0H8//8HIAMoApAIazYC1AogA0H8////ACADKAKMCGs2AtAKIANB/P///wAgAygCiAhrNgLMCiADQfz///8AIAMoAoQIazYCyAogA0H8////ACADKAKACGs2AsQKIANB/P///wAgAygC/AdrNgLACiADQfz///8AIAMoAvgHazYCvAogA0H8////ACADKAL0B2s2ArgKIANB/P3//wAgAygC8AdrNgK0CiADQbzh//8AIAMoAuwHazYCsAogA0G4CWoiAkEoaiIHIANBsApqIgUQxAEgAkEgaiABQSBqKQIANwMAIAJBGGogAUEYaikCADcDACACQRBqIAFBEGopAgA3AwAgAkEIaiABQQhqKQIANwMAIAJB2ABqIARB2ABqKQIANwMAIAJB4ABqIARB4ABqKQIANwMAIAJB6ABqIARB6ABqKQIANwMAIAJB8ABqIARB8ABqKQIANwMAIAMgASkCADcDuAkgAyADKQKUCDcDiAogAyAEIAIgBhCnASAFIARBKGogByAGEKcBIANBwAhqIgFB0ABqIARB0ABqIAJB0ABqIAYQpwEgAUEgaiADQSBqKQIANwMAIAFBGGogA0EYaikCADcDACABQRBqIANBEGopAgA3AwAgAUEIaiADQQhqKQIANwMAIANB8AhqIAVBCGopAgA3AwAgA0H4CGogBUEQaikCADcDACADQYAJaiAFQRhqKQIANwMAIANBiAlqIAVBIGopAgA3AwAgAyADKQIANwPACCADIAMpArAKNwPoCCAFIAFB+AAQ5gMaIAVB+ABqIAFB+AAQ5gMhAiADQaAMaiABQfgAEOYDIQQgA0GYDWogAUH4ABDmAyEGIANBkA5qIAFB+AAQ5gMhByADQYgPaiABQfgAEOYDIQggA0GAEGogAUH4ABDmAyEJIANB+BBqIAFB+AAQ5gMgAyABIAUQICADIAEgAiADQfgAEOYDECAgAyABIAQgA0H4ABDmAxAgIAMgASAGIANB+AAQ5gMQICADIAEgByADQfgAEOYDECAgAyABIAggA0H4ABDmAxAgIAMgASAJIANB+AAQ5gMQICADQfgAEOYDGiAAIAMgBUHABxDmAyIAQcAHEOYDGiAAQfAR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NwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCACIdNwMAIAUgCCkCACIeNwMAIBIgCSkCADcDACATIAopAgA3AwAgFCAeNwMAIBUgHTcDACABIAEpAsgCIh03A6ACIAEgHTcD+AEgAUGAAWoiFiAOIBEQOyADIBZBIGopAgA3AwAgBSAWQRhqKQIANwMAIAsgFkEQaikCADcDACAMIBZBCGopAgA3AwAgASABKQKAATcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIAIh03AwAgBSAIKQIAIh43AwAgEiAJKQIANwMAIBMgCikCADcDACAUIB43AwAgFSAdNwMAIAEgASkCyAIiHTcDoAIgASAdNwP4ASABQagBaiIEIA4gFhA7IAMgBEEgaikCADcDACAFIARBGGopAgA3AwAgCyAEQRBqKQIANwMAIAwgBEEIaikCADcDACABIAEpAqgBNwOgAkEsIQ4DQCABQcgCaiIEIAFBoAJqIgYQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgDkEBayIODQALIARBIGoiCiAGQSBqIgcpAwA3AwAgBEEYaiILIAZBGGoiCCkDADcDACAEQRBqIgwgBkEQaiIJKQMANwMAIARBCGoiDiAGQQhqIgYpAwA3AwAgASABKQOgAjcDyAIgAUHQAWoiAyAEIAFBqAFqEDsgByADQSBqKQIANwMAIAggA0EYaikCADcDACAJIANBEGopAgA3AwAgBiADQQhqKQIANwMAIAEgASkC0AE3A6ACQdgAIQQDQCABQcgCaiIDIAFBoAJqIgUQQyAHIAopAgA3AwAgCCALKQIANwMAIAkgDCkCADcDACAGIA4pAgA3AwAgASABKQLIAjcDoAIgBEEBayIEDQALIANBIGoiBiAFQSBqIgcpAwA3AwAgA0EYaiIIIAVBGGoiCSkDADcDACADQRBqIgogBUEQaiILKQMANwMAIANBCGoiDCAFQQhqIg4pAwA3AwAgASABKQOgAjcDyAIgBSADIAFB0AFqEDtBLCEEA0AgAUHIAmoiBSABQaACaiIDEEMgByAGKQIANwMAIAkgCCkCADcDACALIAopAgA3AwAgDiAMKQIANwMAIAEgASkCyAI3A6ACIARBAWsiBA0ACyAFQSBqIgYgA0EgaiIEKQMANwMAIAVBGGoiByADQRhqIgopAwA3AwAgBUEQaiIIIANBEGoiCykDADcDACAFQQhqIgkgA0EIaiIMKQMANwMAIAEgASkDoAI3A8gCIAMgBSABQagBahA7IAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIAIh03AwAgAUH4AWoiDkEIaiISIAkpAgA3AwAgDkEQaiITIAgpAgA3AwAgDkEYaiIUIAcpAgA3AwAgDkEgaiIVIB03AwAgASABKQLIAiIdNwOgAiABIB03A/gBIAMgDiABQTBqEDsgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCACIdNwMAIBIgCSkCADcDACATIAgpAgA3AwAgFCAHKQIANwMAIBUgHTcDACABIAEpAsgCIh03A6ACIAEgHTcD+AEgAyAOIAFBgAFqEDsgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgAiHTcDACASIAkpAgA3AwAgEyAIKQIANwMAIBQgBykCADcDACAVIB03AwAgASABKQLIAiIdNwOgAiABIB03A/gBIAMgDiABQQhqEDsgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCACIdNwMAIBIgCSkCACIfNwMAIBMgCCkCACIgNwMAIBQgBykCACIhNwMAIBUgHTcDACABIAEpAsgCIh43A6ACIAEgHjcD+AEgBCAdNwMAIAogITcDACALICA3AwAgDCAfNwMAIAEgHjcDoAIgBSADIA4QOyAQKAIAIAEoAsgCayAQKAIkIAEoAuwCa0H8//8HaiIFQRZ2IgRB0QdsakG84f//AGohAyAFQf///wFxIBAoAiAgASgC6AJrIBAoAhwgASgC5AJrIBAoAhggASgC4AJrIBAoAhQgASgC3AJrIBAoAhAgASgC2AJrIBAoAgwgASgC1AJrIBAoAgggASgC0AJrIBAoAgQgASgCzAJrIARBBnRqIANBGnZqQfz9//8AaiIFQRp2akH8////AGoiBEEadmpB/P///wBqIgZBGnZqQfz///8AaiIHQRp2akH8////AGoiCEEadmpB/P///wBqIglBGnZqQfz///8AaiIKQRp2akH8////AGoiC0EadmohDCAMIAMgBXIgBHIgBnIgB3IgCHIgCXIgCnIgC3JB////H3FyBH8gBUHAAHMgA0HQB3NxIAxBgICAHnNxIARxIAZxIAdxIAhxIAlxIApxIAtxQf///x9GBUEBCyEDIwBBEGsiBSADOgAPIA8gBS0ADzoAKCAPQSBqIBUpAwA3AgAgD0EYaiAUKQMANwIAIA9BEGogEykDADcCACAPQQhqIBIpAwA3AgAgDyABKQP4ATcCACABQfACaiQAIA1B2AJqIgFBIGpCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACANQgA3A9gCIA1BsAJqIgMgASAPIA0tANgBEKcBIA1BgANqIg8gAxBuIA1B/P//ByANKAKkA2s2AoQCIA1B/P///wAgDSgCoANrNgKAAiANQfz///8AIA0oApwDazYC/AEgDUH8////ACANKAKYA2s2AvgBIA1B/P///wAgDSgClANrNgL0ASANQfz///8AIA0oApADazYC8AEgDUH8////ACANKAKMA2s2AuwBIA1B/P///wAgDSgCiANr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AUtyOgAPIAYgBi0AD0F/c0EBcToADyAGLQAPIQwgAUHYAmoiBkEgaiIPIAcpAgA3AwAgBkEYaiIQIAgpAgA3AwAgBkEQaiIRIAopAgA3AwAgBkEIaiISIAspAgA3AwAgASAMOgCAAyABIAEpArABNwPYAiAHQgA3AwAgCEIANwMAIApCADcDACALQgA3AwAgAUIANwOwASABQQxqIhMgBSAGIAwQpwEgASAMOgA0IAUgA0EhahByIwBBEGsiAyABKALUASIJQf///wFGIAcoAgAgASgCzAEgCCgCACABKALEASAKKAIAIAEoArwBIAsoAgBxcXFxcXFB////H0ZxIAEoArQBIAEoArABQdEHakEadmpBQGtB////H0txIAlB////AUtyOgAPIwBBEGsiCSADLQAPQX9zQQFxOgAPIAktAA8hCSAPIAcpAgA3AwAgECAIKQIANwMAIBEgCikCADcDACASIAspAgA3AwAgASAJOgCAAyABIAEpArABNwPYAiAHQgA3AwAgCEIANwMAIApCADcDACALQgA3AwAgAUIANwOwASABQThqIg0gBSAGIAkQpwEgAUGIAWoiDkEgakIANwMAIA5BGGpCADcDACAOQRBqQgA3AwAgDkEIakIANwMAIAFCADcDiAEgAUHgAGoiAyAOIBMgDBCnASAHIA1BIGopAgA3AwAgCCANQRhqKQIANwMAIAogDUEQaikCADcDACALIA1BCGopAgA3AwAgASABKQI4NwOwASABIAk6ANgBIAFBiAJqIghBIGpCADcDACAIQRhqQgA3AwAgCEEQakIANwMAIAhBCGpCADcDACABQgA3A4gCIAFB4AFqIgcgCCAFIAkQpwEgBiAHIAcQOyABKALYAiEFIAEoAtwCIQggASgC4AIhCiABKALkAiELIAEoAugCIQwgASgC7AIhCSABKALwAiENIAEoAvQCIQ4gASgC+AIhEyABKAL8AiEVIAFBsAJqIhQgAyADEDsgAUGoA2oiFiAUIAMQOyASIANBCGopAgA3AwAgESADQRBqKQIANwMAIBAgA0EYaikCADcDACAPIANBIGopAgA3AwAgASABKQJgNwPYAiABKAKoAyEDIAEoAqwDIQ8gASgCsAMhECABKAK0AyERIAEoArgDIRIgASgCvAMhFCABKALAAyEXIAEoAsQDIRggASgCyAMhGSABKALMAyEaIAFBoANqIAdBIGopAgA3AwAgBkFAayAHQRhqKQIANwMAIAFBkANqIAdBEGopAgA3AwAgAUGIA2ogB0EIaikCADcDACABIAEpAuABNwOAAyABIBogFWtB/P//B2o2AswDIAEgGSATa0H8////AGo2AsgDIAEgGCAOa0H8////AGo2AsQDIAEgFyANa0H8////AGo2AsADIAEgFCAJa0H8////AGo2ArwDIAEgEiAMa0H8////AGo2ArgDIAEgESALa0H8////AGo2ArQDIAEgECAKa0H8////AGo2ArADIAEgDyAIa0H8/f//AGo2AqwDIAEgAyAFa0HD4f//AGo2AqgDIBYQugEhAyMAQRBrIgUgAyABLQDYAXE6AA8jAEEQayIDIAUtAA8gAS0ANHE6AA8gAy0ADyEDIAIgBkHQABDmAyIFIAM6AFQgBUEAOgBQDAELIwBBEGsiA0EBOgAPIAMtAA8hAyACQfzMwQBB1AAQ5gMgAzoAVAsgAUHQA2okACACQaQCaiIBQdDNwQBB1AAQ5gMaIAJB0AFqIgMgASACIAItAFQiBRCnASADQShqIAFBKGogAkEoaiAFEKcBIAItAFAhByACLQD0AiEGIAJB+AJqIgFByABqIANByABqKQMANwMAIAFBQGsgA0FAaykDADcDACABQThqIANBOGopAwA3AwAgAUEwaiADQTBqKQMANwMAIAFBCGogA0EIaikDADcDACABQRBqIANBEGopAwA3AwAgAUEYaiADQRhqKQMANwMAIAFBIGogA0EgaikDADcDACACIAIpA/gBNwOgAyACIAIpA9ABNwP4AiACQegDakHkz8EAKQIANwMAIAJB4ANqQdzPwQApAgA3AwAgAkHYA2pB1M/BACkCADcDACACQdADakHMz8EAKQIANwMAIAJBxM/BACkCADcDyAMjAEEQayIIIAZBACAFayAGIAdzcXM6AA8gAkHYAGoiAyABQaTOwQAgCC0ADyIFEKcBIANBKGogAUEoakHMzsEAIAUQpwEgA0HQAGogAUHQAGpB9M7BACAFEKcBIAItAFQhASAEQZABaiADQfgAEOYDIAE6AHggAkHwA2okACAELQCIAiIBDQJBsZXCAC0AABpBF0EBEL0DIgFFDQYgAEEXNgIMIAAgATYCCCAAQRc2AgQgAUEPakGxwcEA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EMoDAAsgAEGABDsBCiAAQgA3AQIgAEHcxAA7AQALIANBIGokAAuyBgEFfwJAAkACQAJAIAAtAMAFDgQAAwMBAwsgACgCACIBRQ0CIABBBGohAgwBCyAAQThqEFQgACgCMCEEAkAgACgCNCIDRQ0AIAQhASADQQdxIgIEQANAIAFBADoAACABQQFqIQEgAkEBayICDQALCyADQQhJDQAgAyAEaiECA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByACIAFBCGoiAUcNAAsLIABBADYCNAJAIAAoAiwiAUEATgRAAkAgAUUNACABQQdxIQNBACECIAFBCE8EQCABQfj///8HcSEFA0AgAiAEaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAUgAkEIaiICRw0ACwsgA0UNACACIARqIQEDQCABQQA6AAAgAUEBaiEBIANBAWsiAw0ACwsgACgCLCIBBEAgACgCMCABQQEQyAMLIAAoAiQhBAJAIAAoAigiA0UNACAEIQEgA0EHcSICBEADQCABQQA6AAAgAUEBaiEBIAJBAWsiAg0ACwsgA0EISQ0AIAMgBGohAgNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAiABQQhqIgFHDQALCyAAQQA2AiggACgCICIBQQBIDQECQCABRQ0AIAFBB3EhA0EAIQIgAUEITwRAIAFB+P///wdxIQUDQCACIARqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBSACQQhqIgJHDQALCyADRQ0AIAIgBGohAQNAIAFBADoAACABQQFqIQEgA0EBayIDDQALCyAAKAIgIgFFDQMgAEEkaiECDAILQfiVwQBBLUGEl8EAEPUCAAtB+JXBAEEtQYSXwQAQ9QIACyACKAIAIAFBARDIAwsLlgcBCH8jAEFAaiIDJAACfwJAAkACQAJAAkACQAJAAkACfwJAAkACQCAB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FGoiCSEICyAEQcABaiIDIARBKGoiAkEIaiIcKQMANwMAIAQgBCkDKDcDuAEgHykCACEpICAoAgAhISAeKAIAISIgHSgCACEmIBwgFikDADcDACACQRBqIicgFSkDADcDACACQRhqIhcgFCkDADcDACAEIAQpAwg3AyggBCAKNgJIIBsgBCkDuAE3AgAgG0EIaiADKQMANwIAIAQgETYCXCAEICg3A2AgBEEAOgC0ASAEICY2AoABIAQgIjYCfCAEICE2AnQgBCAHNgJwIAQgKTcDaCAEIA02AnggFygCACECIARBzAFqIhEgJUHwABDmAxogFyACQQFqNgIAIAQgAjYCvAIgDygCACIKKAIIISECQAJAA0AgCigCBCECA0AgAkF/Rg0BIAJBAEgNAiAKIAJBAWogCigCBCIDIAIgA0YbNgIEIAIgA0cgAyECDQALC0GxlcIALQAAGkGUAUEEEL0DIgJFDQogAiAKNgIIIAJCgYCAgBA3AgAgAkEMaiARQfQAEOYDGiACQQE7AZABIAJBADYCjAEgAkIANwKEASACICFBCGo2AoABIA9BADoACCAPKAIEIQMgDyACQQhqIgo2AgQCQCADBEAgDygCACgCCEEIaiERA0AgAygCeCARRg0ACyADKAKAASERIAIgAzYCgAEgAiARQQFqNgKIASADIAo2AnwMAQsgAkEANgKAASACQQE2AogBCyACQQA2AowBIA8oAgAiAigCGCACIAo2AhggCjYChAEMAQsQ5wMACyAWIBwpAwA3AwAgFSAnKQMANwMAIBQgFykDADcDACAEIAQpAyg3AwggDUEBaiENIAghAyAMIQIgGkEBayIaDQALIA4gBmtBDG4hCAsgEyAEKQMINwIAIBNBGGogFCkDADcCACATQRBqIBUpAwA3AgAgE0EIaiAWKQMANwIAIAYgDkcEQEEAIQoDQCAGIApBDGxqIgEoAggiDQRAIAEoAgQhAwNAIAMQtwIgA0EgaiEDIA1BAWsiDQ0ACwsgASgCACICBEAgASgCBCACQQV0QQQQyAMLIApBAWoiCiAIRw0ACwsgGQRAICQgGUEMbEEEEMgDCyASIAlrQRRuIQMgCSASRwRAA0AgCSgCACIBBEAgCUEEaigCACABQQEQyAMLIAlBFGohCSADQQFrIgMNAAsLIBgEQCAjIBhBFGxBBBDIAwsg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Ai0AACEBQQEMAwsgASgCGCICBEAgAyACQQEQyAMLIAFBADYCEEEADAILIAcpAgghCyABIAI2AgggASALpyIDNgIEIAEgAzYCACABIAMgC0IgiKdqIgY2AgwgAyECDAILIAEgAkEBajYCBCACLQAAIQFBAQshAiAAIAE6AAEgACACOgAAIAdBEGokAA8LQQAhBAwACwALnAMBBH8CQAJAAkACQAJAAkAgAC0AoQcOBQAFBQECBQsgAEE0ahC3AiAAQdQAahC3AiAAQfQAahC3AiAAKAIAIgFFDQQgACgCBCABQQEQyAMPCyAAKALMByICIABB0AdqKAIAIgEoAgARAAAgASgCBCIDBEAgAiADIAEoAggQyAMLQawHIQEgACgCuAciAkUNASAAKAK8ByACQQEQyAMMAQsgAC0A6AdBA0cNASAAKALgByIDIABB5AdqKAIAIgIoAgARAABB1AchASACKAIEIgRFDQAgAyAEIAIoAggQyAMLIAAgAWoiASgCACICRQ0AIAEoAgQgAkEBEMgDCyAAKAKUByIBBEAgACgCmAcgAUEBEMgDCyAAQfQGahC3AiAAQQA6AKMHIABB1AZqELcCIABBtAZqELcCIABBADoApAcgACgCqAYiAQRAIAAoAqwGIAFBARDIAwsgAEGIBmoQtwIgAEHABWoQtwIgAEGgBWoQtwIgAEGABWoQtwIgACgC9AMiAQRAIAAoAvgDIAFBARDIAwsgAEEANgClBwsL8wIBBH8gACgCDCECAkACQCABQYACTwRAIAAoAhghAwJAAkAgACACRgRAIABBFEEQIAAoAhQiAhtqKAIAIgENAUEAIQIMAgsgACgCCCIBIAI2AgwgAiABNgIIDAELIABBFGogAEEQaiACGyEEA0AgBCEFIAEiAigCFCEBIAJBFGogAkEQaiABGyEEIAJBFEEQIAEbaigCACIBDQALIAVBADYCAAsgA0UNAiAAIAAoAhxBAnRB/JXCAGoiASgCAEcEQCADQRBBFCADKAIQIABGG2ogAjYCACACRQ0DDAILIAEgAjYCACACDQFBmJnCAEGYmcIAKAIAQX4gACgCHHdxNgIADAILIAIgACgCCCIARwRAIAAgAjYCDCACIAA2AggPC0GUmcIAQZSZwgAoAgBBfiABQQN2d3E2AgAPCyACIAM2AhggACgCECIBBEAgAiAB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QQFrNgIEIABBAUcNACABQSBBBBDIAwsgBEEQaiQADwsCQCACRQRAIAEoAhggAEcNASABKAIIIgJBADYCjAUgASgCGCABIAJBCGoiAjYCGCACNgKEBSAAKAKEBSICRQ0BCyABIAI2AhwgAEEIayIAKAIAIQIgACACQQFrNgIAIAQgADYCDCACQQFHDQEgBEEMahClAgwBCwtBgP3AAEEUEJ4DAAvFAgEFfyMAQRBrIgQkACAAKAIAIgFBCGohBQNAIAEoAhwiAygCfCEAAkAgASgCCCICQQhqIANHBEAgACECIAMhAAwBCyAABEAgASAANgIcIAAoAnwhAgwBCyABKAIMIgAEQCABKAIQIAAoAgwRAAAgASgCCCECCyACIAIoAgAiAEEBazYCACAAQQFGBEAgBRCmAgsCQCABQX9GDQAgASABKAIEIgBBAWs2AgQgAEEBRw0AIAFBIEEEEMgDCyAEQRBqJAAPCwJAIAJFBEAgASgCGCAARw0BIAEoAggiAkEANgKEASABKAIYIAEgAkEIaiICNgIYIAI2AnwgACgCfCICRQ0BCyABIAI2AhwgAEEIayIAKAIAIQIgACACQQFrNgIAIAQgADYCDCACQQFHDQEgBEEMahCmAgwBCwtBgP3AAEEUEJ4DAAvJAgEFfyMAQRBrIgQkACAAKAIAIgFBCGohBQNAIAEoAhwiAygCjAYhAAJAIAEoAggiAkEIaiADRwRAIAAhAiADIQAMAQsgAARAIAEgADYCHCAAKAKMBiECDAELIAEoAgwiAARAIAEoAhAgACgCDBEAACABKAIIIQILIAIgAigCACIAQQFrNgIAIABBAUYEQCAFEKcCCwJAIAFBf0YNACABIAEoAgQiAEEBazYCBCAAQQFHDQAgAUEgQQQQyAMLIARBEGokAA8LAkAgAkUEQCABKAIYIABHDQEgASgCCCICQQA2ApQGIAEoAhggASACQQhqIgI2AhggAjYCjAYgACgCjAYiAkUNAQsgASACNgIcIABBCGsiACgCACECIAAgAkEBazYCACAEIAA2AgwgAkEBRw0BIARBDGoQpwIMAQsLQYD9wABBFBCeAwALswIBEn8gAigCACENIAEoAgAhBCACKAIEIQ4gASgCBCEFIAIoAgghDyABKAIIIQYgAigCDCEQIAEoAgwhByACKAIQIREgASgCECEIIAIo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AgAgASgCJCIDQRZ2IgJB0QdsaiIEQf///x9xNgIAIAAgASgCBCACQQZ0aiAEQRp2aiICQf///x9xNgIEIAAgASgCCCACQRp2aiICQf///x9xNgIIIAAgASgCDCACQRp2aiICQf///x9xNgIMIAAgASgCECACQRp2aiICQf///x9xNgIQIAAgASgCFCACQRp2aiICQf///x9xNgIUIAAgASgCGCACQRp2aiICQf///x9xNgIYIAAgASgCHCACQRp2aiICQf///x9xNgIcIAAgASgCICACQRp2aiIBQf///x9xNgIgIAAgA0H///8BcSABQRp2ajYCJAv/AQEGfyAAKAIARQRAIABBfzYCACAAKAIUIQMgAEEANgIUAkAgA0UNACAAKAIoIAAoAiQhBCAAKAIgIQYgACgCGCEFAkAgACgCHBAGRQ0AIAMgBSgCABEAACAFKAIEIghFDQAgAyAIIAUoAggQyAMLEAZFDQAgBiAEKAIAEQAAIAQoAgQiA0UNACAGIAMgBCgCCBDIAwsgAEEIaiEDAkAgACgCBEECRg0AIAMoAgAiBEEkSQ0AIAQQAAsgACABNgIEIAMgAjYCACAAKAIMIQEgAEEANgIMIAAgACgCAEEBajYCACABBEAgACgCECABKAIEEQAACw8LQdS0wQAQ2gIAC7ACAgF/AX4CQCABLQAERQRAQbGVwgAtAAAaQThBARC9AyIBRQ0BIABBODYCECAAIAE2AgwgAEKAgICAgAc3AgQgAUEwakGEscEAKQAANwAAIAFBKGpB/LDBACkAADcAACABQSBqQfSwwQApAAA3AAAgAUEYakHssMEAKQAANwAAIAFBEGpB5LDBACkAADcAACABQQhqQdywwQApAAA3AAAgAUHUsMEAKQAANwAAIABBATYCAA8LIAEoAgAiASgCBCIDKQMAIgQgAnwhAiADIAI3AwAgACAENwMIIAAgAjcDECAAIAEoAgAiASkAADcAGCAAQSBqIAFBCGopAAA3AAAgAEEoaiABQRBqKAAANgAAIABBADYCAA8LQQFBOEHolcIAKAIAIgBBvAEgABsRAQAAC4cCAQN/AkACQAJAAkACQCAALQDwAQ4FAAQEAQIECyAAKAIAIgFFDQMgACgCBCABQQEQyAMPCyAAKAKMAiICIABBkAJqKAIAIgEoAgARAAAgASgCBCIDBEAgAiADIAEoAggQyAMLIAAoAoACIgEEQCAAKAKEAiABQQEQyAMLIAAoAvQBIgFFDQEgACgC+AEgAUEBEMgDDAELIABB/AFqEIoCCyAAKALkASIBBEAgACgC6AEgAUEBEMgDCyAAQcwAahC3AiAAKAJAIgEEQCAAKAJEIAFB+ABsQQQQyAMLAkAgAC0A8QFFDQAgACgCLCIBRQ0AIAAoAjAgAUEBEMgDCyAAQQA6APEBCwuRAgEBfyMAQSBrIgMkAAJAAkAgAkEHcUUEQCADIAI2AhggAyABNgIUIANBCDYCHCADQQhqIgEgA0EUahBZIABBDGogAUEIaigCADYCACAAIAMpAgg3AgRBBCEBDAELQQAhAUGxlcIALQAAGkErQQEQvQMiAkUNASAAQSs2AgwgACACNgIIIABBKzYCBCACQSdqQdulwQAoAAA2AAAgAkEgakHUpcEAKQAANwAAIAJBGGpBzKXBACkAADcAACACQRBqQcSlwQApAAA3AAAgAkEIakG8pcEAKQAANwAAIAJBtKXBACkAADcAAAsgACABNgIAIANBIGokAA8LQQFBK0HolcIAKAIAIgBBvAEgABsRAQAAC4oCAgR/AX4jAEEwayICJAAgASgCAEGAgICAeEYEQCABKAIMIQMgAkEkaiIEQQhqIgVBADYCACACQoCAgIAQNwIkIARBxODBACADEGgaIAJBIGogBSgCACIDNgIAIAIgAikCJCIGNwMYIAFBCGogAzYCACABIAY3AgALIAEpAgAhBiABQoCAgIAQNwIAIAJBEGoiAyABQQhqIgEoAgA2AgAgAUEANgIAQbGVwgAtAAAaIAIgBjcDCEEMQQQQvQMiAUUEQEEEQQxB6JXCACgCACIAQbwBIAAbEQEAAAsgASACKQMINwIAIAFBCGogAygCADYCACAAQaDqwQA2AgQgACABNgIAIAJBMGokAAv4AQEDfyMAQRBrIgMkACAAIAAoAggiAkEBIAIbNgIIAkACQAJAAkACQCACDgMABAEECyADQQhqIAEoAgQgASgCACgCABEBACADKAIMIQEgAygCCCECIAAoAgAiBARAIABBBGooAgAgBCgCDBEAAAsgACACNgIAIABBBGoiAiABNgIAIAAoAggiBEEBRiEBIABBACAEIAEbNgIIIAENAyAAKAIAIQEgAEEANgIAIAFFDQEgAigC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ASgCLCIDIAEoAmAiAksEQCABKAIoIAJBA3RqIgIoAgAEQCAAIAEgAigCBBCGAQ8LQbGVwgAtAAAaQShBARC9AyIBRQ0BIABBKDYCECAAIAE2AgwgAEKAgICAgAU3AgQgAEEBOgAAIAFBIGpBnKvBACkAADcAACABQRhqQZSrwQApAAA3AAAgAUEQakGMq8EAKQAANwAAIAFBCGpBhKvBACkAADcAACABQfyqwQApAAA3AAAPCyACIANB7KrBABC0AgALQQFBKEHolcIAKAIAIgBBvAEgABsRAQAAC8YCAQd/QbSVwgAoAgAiASgCCEUEQCABQX82AgggASgCGCIDIAEoAgwiAkYEQCABQQxqIgIoAgAhAyACIAMQ3QEgAigCCCIGIAMgAigCDCIEa0sEQAJAIAQgAyAGayIEayEFIAQgBUsgAigCACIHIANrIAVPcUUEQCACKAIEIgUgByAEayIDQQJ0aiAFIAZBAnRqIARBAnQQ5AMgAiADNgIIDAELIAIoAgQiAiADQQJ0aiACIAVBAnQQ5gMaCwsgASgCGCEDIAEoAgwhAgsgASgCECABKAIUIANqIgMgAkEAIAIgA00ba0ECdGogADYCACABLQAcIQAgAUEBOgAcIAEgASgCGEEBajYCGCABIAEoAghBAWo2AggCQCAADQBBxJXCACgCAEHAlcIAKAIAEAoiAEEkSQ0AIAAQAAsPC0HIs8EAENoCAAu7AQEFfyMAQRBrIgMkACABKAIAIgEoAghFBEAgASgCDCEFIAFC/////y83AgggASgCECEGIAEgBUECRgR/IANBCGogAigCACICKAIEIAIoAgAoAgARAQAgAygCDCECIAMoAgghBCABKAIUIgcEQCABQRhqKAIAIAcoAgwRAAALIAEgAjYCGCABIAQ2AhQgASgCCEEBagVBAAs2AgggACAGNgIEIAAgBTYCACADQRBqJAAPC0HktMEAENoCAAu4AQEEfyAALQAUIQEgAEEBOgAUIABBCGshAgJAIAFFBEAQigEgAiACKAIAQQFqIgE2AgAgAUUNASACEPYBCyACIAIoAgBBAWsiATYCAAJAIAENACAAKAIEIgEEQCABIAAoAggiAygCABEAACADKAIEIgQEQCABIAQgAygCCBDIAwsgACgCECAAKAIMKAIMEQAACyAAQQRrIgEoAgBBAWshACABIAA2AgAgAA0AIAJBIEEEEMgDCw8LAAuxAQEBfyMAQRBrIgckACAAKAIUIAEgAiAAKAIYKAIMEQMAIQEgB0EAOgANIAcgAToADCAHIAA2AgggB0EIaiADIAQgBSAGEJEBIQIgBy0ADCEBAn8gAUEARyAHLQANRQ0AGkEBIAENABogAigCACIALQAcQQRxRQRAIAAoAhRB6/nBAEECIAAoAhgoAgwRAwAMAQsgACgCFEHq+cEAQQEgACgCGCgCDBEDAAsgB0EQaiQAC5sBAQF/AkACQCABBEAgAkEASA0BAn8gAygCBARAAkAgAygCCCIERQRADAELIAMoAgAgBCABIAIQsgMMAgsLIAEgAkUNABpBsZXCAC0AABogAiABEL0DCyIDBEAgACACNgIIIAAgAzYCBCAAQQA2AgAPCyAAIAI2AgggACABNgIEDAILIABBADYCBAwBCyAAQQA2AgQLIABBATYCAAuSWQEQfyMAQfAAayIMJAAgDEEsaiEOIwBBoAtrIgIkACACQYADaiIFQRhqIAFBGGopAgA3AwAgBUEQaiABQRBqKQIANwMAIAVBCGogAUEIaikCADcDACACIAEpAgA3A4ADIAUgASABECcgAiAFIAEQJyACQSBqIgcgBSACECcgAkFAayIIIAUgBxAnIAJB4ABqIgcgBSAIECcgAkGAAWoiBCAFIAcQJyACQaABaiIIIAUgBBAnIAJBgAtqIgcgCCAIECcgAkGgA2oiBUEYaiIGIAdBGGoiCCkCADcDACAFQRBqIgkgB0EQaiIKKQIANwMAIAVBCGoiCyAHQQhqIgMpAgA3AwAgAiACKQKACzcDoAMgByAFIAUQJyAGIAgpAgA3AwAgCSAKKQIANwMAIAsgAykCADcDACACIAIpAoALNwOgAyACQcABaiILIAUgBBAnIAcgCyALECcgAkHAA2oiBUEYaiIEIAgpAgA3AwAgBUEQaiIGIAopAgA3AwAgBUEIaiIJIAMpAgA3AwAgAiACKQKACzcDwAMgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwPAAyACQeABaiIEIAUgAhAnIAcgBCAEECcgAkHgA2oiBUEYaiIEIAgpAgA3AwAgBUEQaiIGIAopAgA3AwAgBUEIaiIJIAMpAgA3AwAgAiACKQKACzcD4AMgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwPgAyAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A+ADIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcD4AMgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwPgAyAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A+ADIAJBgAJqIg0gBSALECcgByANIA0QJyACQYAEaiIFQRhqIgQgCCkCADcDACAFQRBqIgYgCikCADcDACAFQQhqIgkgAykCADcDACACIAIpAoALNwOABCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A4AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDgAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOABCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A4AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDgAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOABCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A4AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDgAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOABCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A4AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDgAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOABCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A4AEIAJBoAJqIgsgBSANECcgByALIAsQJyACQaAEaiIFQRhqIgQgCCkCADcDACAFQRBqIgYgCikCADcDACAFQQhqIgkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCACQcACaiIHIAUgCxAnIAJBwARqIgVBGGoiBiAHQRhqKQIANwMAIAVBEGoiCSAHQRBqKQIANwMAIAVBCGoiCyAHQQhqKQIANwMAIAIgAikCwAI3A8AEQTghBwNAIAJBgAtqIgUgAkHABGoiBCAEECcgBiAIKQIANwMAIAkgCikCADcDACALIAMpAgA3AwAgAiACKQKACzcDwAQgB0EBayIHDQALIAJB4ARqIgMgBCACQcACahAnIAUgAyADECcgA0EYaiIEIAVBGGoiBykCADcDACADQRBqIgYgBUEQaiIIKQIANwMAIANBCGoiCSAFQQhqIgopAgA3AwAgAiACKQKACzcD4AQgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AEIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AQgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AEIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AQgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AEIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AQgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AEIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AQgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBCACQYAFaiIEIAMgAkGAAmoQJyAFIAQgBBAnIARBGGoiAyAHKQIANwMAIARBEGoiBiAIKQIANwMAIARBCGoiCSAKKQIANwMAIAIgAikCgAs3A4AFIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAUgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOABSACQaAFaiIDIAQgAkEgaiINECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwOgBSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AFIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAUgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOgBSACQcAFaiIEIAMgAkFAayILECcgBSAEIAQQJyAEQRhqIgMgBykCADcDACAEQRBqIgYgCCkCADcDACAEQQhqIgkgCikCADcDACACIAIpAoALNwPABSAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AFIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAUgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPABSACQeAFaiIDIAQgDRAnIAUgAyADECcgA0EYaiIEIAcpAgA3AwAgA0EQaiIGIAgpAgA3AwAgA0EIaiIJIAopAgA3AwAgAiACKQKACzcD4AUgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AFIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AUgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBSACQYAGaiIEIAMgAkGAAWoiEBAnIAUgBCAEECcgBEEYaiIDIAcpAgA3AwAgBEEQaiIGIAgpAgA3AwAgBEEIaiIJIAopAgA3AwAgAiACKQKACzcDgAYgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOABiAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AGIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAYgAkGgBmoiAyAEIBAQJyAFIAMgAxAnIANBGGoiBCAHKQIANwMAIANBEGoiBiAIKQIANwMAIANBCGoiCSAKKQIANwMAIAIgAikCgAs3A6AGIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAYgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOgBiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AGIAJBwAZqIgQgAyALECcgBSAEIAQQJyAEQRhqIgMgBykCADcDACAEQRBqIgYgCCkCADcDACAEQQhqIgkgCikCADcDACACIAIpAoALNwPABiAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AGIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAYgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPABiAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AGIAJB4AZqIgMgBCALECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwPgBiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AGIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AYgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AGIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AYgAkGAB2oiBCADIAJBoAFqIg8QJyAFIAQgBBAnIARBGGoiAyAHKQIANwMAIARBEGoiBiAIKQIANwMAIARBCGoiCSAKKQIANwMAIAIgAikCgAs3A4AHIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAcgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOAByAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AHIAJBoAdqIgYgBCANECcgBSAGIAYQJyAGQRhqIgMgBykCADcDACAGQRBqIgQgCCkCADcDACAGQQhqIgkgCikCADcDACACIAIpAoALNwOgByAFIAYgBhAnIAMgBykCADcDACAEIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AHIAUgBiAGECcgAyAHKQIANwMAIAQgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAcgAkHAB2oiAyAGIAsQJyAFIAMgAxAnIANBGGoiBCAHKQIANwMAIANBEGoiBiAIKQIANwMAIANBCGoiCSAKKQIANwMAIAIgAikCgAs3A8AHIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAcgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPAByAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AHIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAcgAkHgB2oiBCADIAJB4ABqIhEQJyAFIAQgBBAnIARBGGoiAyAHKQIANwMAIARBEGoiBiAIKQIANwMAIARBCGoiCSAKKQIANwMAIAIgAikCgAs3A+AHIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AcgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgByAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AHIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AcgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgByACQYAIaiIDIAQgDRAnIAUgAyADECcgA0EYaiIEIAcpAgA3AwAgA0EQaiIGIAgpAgA3AwAgA0EIaiIJIAopAgA3AwAgAiACKQKACzcDgAggBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAggBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAggBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAggAkGgCGoiBCADIAsQJyAFIAQgBBAnIARBGGoiAyAHKQIANwMAIARBEGoiBiAIKQIANwMAIARBCGoiCSAKKQIANwMAIAIgAikCgAs3A6AIIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAggBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOgCCAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AIIAJBwAhqIgMgBCALECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwPACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAggBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAggBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAggAkHgCGoiBCADIAJB4AFqECcgBSAEIAQQJyAEQRhqIgMgBykCADcDACAEQRBqIgYgCCkCADcDACAEQQhqIgkgCikCADcDACACIAIpAoALNwPgCCAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AIIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AggBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgCCAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AIIAJBgAlqIgMgBCARECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwOACSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AJIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAkgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AJIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAkgAkGgCWoiBCADIBAQJyAFIAQgBBAnIARBGGoiAyAHKQIANwMAIARBEGoiBiAIKQIANwMAIARBCGoiCSAKKQIANwMAIAIgAikCgAs3A6AJIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAkgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOgCSAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AJIAJBwAlqIgMgBCAPECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwPACSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AJIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAkgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPACSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AJIAJB4AlqIgQgAyACECcgBSAEIAQQJyAEQRhqIgMgBykCADcDACAEQRBqIgYgCCkCADcDACAEQQhqIgkgCikCADcDACACIAIpAoALNwPgCSAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AJIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AkgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgCSAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AJIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AkgAkGACmoiAyAEIA8QJyAFIAMgAxAnIANBGGoiBCAHKQIANwMAIANBEGoiBiAIKQIANwMAIANBCGoiCSAKKQIANwMAIAIgAikCgAs3A4AKIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAogBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AKIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAogBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AKIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAogBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AKIAJBoApqIgYgAyAPECcgBSAGIAYQJyAGQRhqIgMgBykCADcDACAGQRBqIgQgCCkCADcDACAGQQhqIgkgCikCADcDACACIAIpAoALNwOgCiAFIAYgBhAnIAMgBykCADcDACAEIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AKIAUgBiAGECcgAyAHKQIANwMAIAQgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAogBSAGIAYQJyADIAcpAgA3AwAgBCAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOgCiACQcAKaiIEIAYgERAnIAUgBCAEECcgBEEYaiIDIAcpAgA3AwAgBEEQaiIGIAgpAgA3AwAgBEEIaiIJIAopAgA3AwAgAiACKQKACzcDwAogBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPACiAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AKIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAogBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPACiAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AKIAJB4ApqIgMgBCABECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwPgCiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AKIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AogBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgCiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AKIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AogBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgCiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AKIAJB4AJqIgUgAyACQcABahAnIwBBEGsiB0EAQX8gASgCHCABKAIYIAEoAhQgASgCECABKAIMIAEoAgggASgCBCABKAIAcnJycnJychtBAXE6AA8gByAHLQAPQX9zQQFxOgAPIA4gBy0ADzoAICAOQRhqIAVBGGopAgA3AgAgDkEQaiAFQRBqKQIANwIAIA5BCGogBUEIaikCADcCACAOIAIpAuACNwIAIAJBoAtqJAAgDEHQAGoiAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgDEIANwNQIAxBDGoiAiABIA4gDC0A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twIgDSAKQRhqKQIANwMAIA4gCkEQaikCADcDACAYIApBCGopAgA3AwAgASABKQKIATcDGCAMQSBqIQwgBkEgayIGDQALCyABQYgBaiIMIAkQlgMgAUHoAGoiDiAMEMQCIAFBPGogDhCvAiAMIAEoAkAiCiABKAJEEJQBIAFBjAFqIQYCQAJAAkACfwJAIAEoAogBRQRAIAFByABqIg1BCGogBkEIaikCADcDACANQRBqIAZBEGopAgA3AwAgDUEYaiAGQRhqKQIANwMAIAEgBikCADcDSCAMQYyewQBB+AAQ5gMaIA4gDBD2AiAPIAMgDSABQRhqIgMgASgCbCIGIAEoAnAgASgCECIMIAEoAhQgERBnRQ0BIAIgASkDGDcCBCACQRxqIANBGGopAwA3AgAgAkEUaiADQRBqKQMANwIAIAJBDGogA0EIaikDADcCACABKAJoIgMEQCAGIANB+ABsQQQQyAMLIAFByABqELcCIAEoAjwiAwRAIAogA0EBEMgDC0EADAILIAFB8ABqIAZBCGooAgAiAzYCACABIAYpAgAiHjcDaCACQoGAgIAwNwIAIAIgHjcCCCACQRBqIAM2AgAgASgCPCICBEAgCiACQQEQyAMLIAFBGGoQtwIgASgCDCICRQ0CIAEoAhAgAkH4AGxBBBDIAwwCC0GxlcIALQAAGkEdQQEQvQMiA0UNAiACQR02AhAgAiADNgIMIAJCgICAgNADNwIEIANBFWpBhqHBACkAADcAACADQRBqQYGhwQApAAA3AAAgA0EIakH5oMEAKQAANwAAIANB8aDBACkAADcAACABKAJoIgMEQCAGIANB+ABsQQQQyAMLIAFByABqELcCIAEoAjwiAwRAIAogA0EBEMgDCyABQRhqELcCQQELIQMgAiADNgIAIAEoAgwiAkUNACAMIAJB+ABsQQQQyAMLIAFBgAJqJAAMAQtBAUEdQeiVwgAoAgAiAEG8ASAAGxEBAAALAkACQCAFKALoA0UEQCAFQZAEaiICQRhqIAVBhARqKQIANwMAIAJBEGogBUH8A2opAgA3AwAgAkEIaiAFQfQDaikCADcDACAFIAUpAuwDNwOQBCAFQegEakIANwMAIAVB4ARqQgA3AwAgBUHYBGpCADcDACAFQbAEaiIBQSBqIgxCADcDACABQRhqIgpCADcDACABQRBqIg1C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KQIANwMAIAhBEGogBUEwaikCADcDACAIQQhqIAVBKGopAgA3AwAgAyAFKQIgNwOgASADQcABaiIIQRhqIAVB2ABqKQIANwMAIAhBEGogBUHQAGopAgA3AwAgCEEIaiAFQcgAaikCADcDACADIAUpAkA3A8ABIANB4AFqIgVBGGpCADcDACAFQRBqQgA3AwAgBUEIakIANwMAIANCADcD4AECQAJAAkACQAJAIA5FBEAgA0GwA2oiBUHgAGpCADcDACAFQdgAakIANwMAIAVB0ABqQgA3AwAgBUHIAGpCADcDACADQfADakIANwMAIAVBOGpCADcDACAFQTBqQgA3AwAgA0EAOgCYBCAFQQhqQdCKwQApAwA3AwAgBUEQakHYisEAKQMANwMAIAVBGGpB4IrBACkDADcDACADQgA3A9gDIANCADcD0AMgA0HIisEAKQMANwOwAyAFQShqIQUCQCABQT9NBEAgBSALIAEQ5gMaDAELIAMgAUEGdiIIrTcD0AMgA0GwA2ogCyAIEBYgBSALIAFBQHFqIAFBP3EiARDmAxoLIAMgAToAmAQgA0GgBGoiBSADQbADaiIIQfAAEOYDGiADQZAFaiIBQRhqIg1CADcDACABQRBqIgpCADcDACABQQhqIhFCADcDACADQgA3A5AFIAUgA0HIBGogARBfIANB4AFqIgFBGGogDSkDADcDACABQRBqIAopAwA3AwAgAUEIaiARKQMANwMAIAMgAykDkAU3A+ABIAUgAUEgEJQBIANBpARqIQEgAygCoAQNASAIQRhqIAFBGGopAgAiFjcDAAwECyABQSBHBEBBsZXCAC0AABpBOEEBEL0DIgFFDQIgB0E4NgIQIAcgATYCDCAHQoCAgICABzcCBCABQTBqQemgwQApAAA3AAAgAUEoakHhoMEAKQAANwAAIAFBIGpB2aDBACkAADcAACABQRhqQdGgwQApAAA3AAAgAUEQakHJoMEAKQAANwAAIAFBCGpBwaDBACkAADcAACABQbmgwQApAAA3AAAgB0EBNgIADAULIANBoARqIAtBIBCUASADQaQEaiEBIAMoAqAERQ0CIANBuANqIAFBCGooAgAiBTYCACADIAEpAgAiFjcDsAMgB0KBgICAMDcCACAHIBY3AgggB0EQaiAFNgIADAQLIANBuANqIAFBCGooAgAiBTYCACADIAEpAgAiFjcDsAMgB0KBgICAMDcCACAHIBY3AgggB0EQaiAFNgIADAMLQQFBOEHolcIAKAIAIgBBvAEgABsRAQAACyADQcgDaiABQRhqKQIAIhY3AwALIANBgAJqIgpBCGogAUEIaikCADcDACAKQRBqIAFBEGopAgA3AwAgCkEYaiAWNwMAIAMgASkCADcDgAIgA0GgBGoiASADQQhqEJYDIANBsANqIgggARDEAiADQaQCaiAIEK8CIAEgAygCqAIiESADKAKsAhCUASADQaQEaiEFIAMoAqAERQRAIANBsAJqIg1BCGogBUEIaikCADcDACANQRBqIAVBEGopAgA3AwAgDUEYaiAFQRhqKQIANwMAIAMgBSkCADcDsAIgASADQcABaiIFEPsBIANB0AJqIhQgA0GgAWogARDBAiABELcCIANBkAVqIhUgCiADQYABahDBAiAIIAUQ+wEgA0GQA2oiCiAVIAgQwQIgASAUIA0QwQIgA0HwAmoiBSAKIAEQvwIgARC3AiAKELcCIAgQtwIgFRC3AiAHQRxqIAVBGGopAgA3AgAgB0EUaiAFQRBqKQIANwIAIAdBDGogBUEIaikCADcCACAHIAMpAvACNwIEIAdBADYCACAUELcCIA0QtwIgAygCpAIiAQRAIBEgAUEBEMgDCyADQYACahC3AgwBCyADQbgDaiAFQQhqKAIAIgE2AgAgAyAFKQIAIhY3A7ADIAdCgYCAgDA3AgAgByAWNwIIIAdBEGogATYCACADKAKkAiIBBEAgESABQQEQyAMLIANBgAJqELcCCyADQcABahC3AiADQaABahC3AiADQYABahC3AiADQbAFaiQAIAYoAiRFDQFBuobBAEEUEAEhAyAMEIwCQQEMAgsgBkHYA2oiAUEIaiAMQQhqKQIANwMAIAYgDCkCADcD2AMgBkEANgKEBCAGQoCAgIAQNwL8AyAGQQM6AKgEIAZBIDYCmAQgBkEANgKkBCAGQZT9wAA2AqAEIAZBADYCkAQgBkEANgKIBCAGIAZB/ANqNgKcBCABIAZBiARqEJwBDQIgBigC/AMhASAGKAKABCIHIAYoAoQEEAEhAyABBEAgByABQQEQyAMLIAZB2ANqEIwCQQEMAQsgBkHYA2oiAUEYaiAMQRhqKQIANwMAIAFBEGogDEEQaikCADcDACABQQhq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P4d8IghCP4d8IglCP4d8IgpCIIinIgFB3MzBACgCAHGtIANC/////w+DfCIDPgIAIAsgASATca0gBEL/////D4N8IANCIIh8IgM+AgQgCyABIBJxrSAFQv////8Pg3wgA0IgiHwiAz4CCCALIAEgEXGtIAZC/////w+DfCADQiCIfCIDPgIMIAsgASAQca0gB0L/////D4N8IANCIIh8IgM+AhAgCyABIA9xrSAIQv////8Pg3wgA0IgiHwiAz4CFCALIAEgDnGtIAlC/////w+DfCADQiCIfCIDPgIYIAsgA0IgiCAKfKcgASANcWo2AhwgDEEYaiIBIAtBGGopAgA3AgAgDEEQaiICIAtBEGopAgA3AgAgDEEIaiINIAtBCGopAgA3AgAgDCALKQIANwIAIAtBIGokACAAQRhqIAEpAgA3AgAgAEEQaiACKQIANwIAIABBCGogDSkCADcCACAAIAwpAgA3AgAgDEEgaiQAC1YBAX8jAEEgayIDJAAgAyABIAIQJyAAQRhqIANBGGopAgA3AgAgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgA0EgaiQAC3YBAX9BsZXCAC0AABpB4ABBBBC9AyIHRQRAQQRB4ABB6JXCACgCACIAQbwBIAAbEQEAAAsgB0EAOgBcIAcgAjYCFCAHIAY2AhAgByAFNgIMIAcgBDYCCCAHIAM2AgQgByABNgIAIABBtIDBADYCBCAAIAc2AgALcQEBf0GxlcIALQAAGkEgQQQQvQMiAkUEQEEEQSBB6JXCACgCACIAQbwBIAAbEQEAAAsgAkEBOgAcIAJCATcCBCACQfS0wQA2AhQgAiABNgIQIAIgADYCDCACQQI2AgAgAiACQQhqNgIYEIoBIAIQ9gELbwEDfyMAQSBrIgIkACMAQTBrIgMkACADQQhqIgQgARBuIAIgBBB9IANBMGokACAAQRhqIAJBGGopAwA3AAAgAEEQaiACQRBqKQMANwAAIABBCGogAkEIaikDADcAACAAIAIpAwA3AAAgAkEgaiQAC1QBAX8jAEEgayICJAAgAiABEBogAEEYaiACQRhqKQIANwIAIABBEGogAkEQaikCADcCACAAQQhqIAJBCGopAgA3AgAgACACKQIANwIAIAJBIGokAAtWAQF/IwBBIGsiAiQA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ACACQQBIBEAACyAAIAE2AgQgAEGg/MAANgIACzQBAn8gAUEIayIDKAIAIQIgAyACQQFqNgIAIAJBAEgEQAALIAAgATYCBCAAQbD8wAA2AgALNAECfyABQQhrIgMoAgAhAiADIAJBAWo2AgAgAkEASARAAAsgACABNgIEIABBwPzAADYCAAs0AQJ/IAFBCGsiAygCACECIAMgAkEBajYCACACQQBIBEAACyAAIAE2AgQgAEHQ/MAANgIACzQBAn8gAUEIayIDKAIAIQIgAyACQQFqNgIAIAJBAEgEQAALIAAgATYCBCAAQeD8wAA2AgALNAECfyABQQhrIgMoAgAhAiADIAJBAWo2AgAgAkEASARAAAsgACABNgIEIABB8PzAADYCAAsxAQF/IwBBEGsiAiQAIAIgADYCDCABQdX+wABBCiACQQxqQeD+wAAQ4gEgAkEQaiQAC+UBAQN/IwBBkAJrIgIkACACQQA6AIwCIAIgATYCBCACIAA2AgAjAEGgAmsiACQAIABBDGoiASACQZACEOYDGiAAIAE2ApwCIABBnAJqQdjawAAQ6QMCQCAALQCYAkEDRw0AIAAtAJQCQQNHDQAgAEEgaiEBAkACQAJAAkAgAC0AWA4FAwQEAAEECyAAQdwAahDRAQwBCyAAQYABahAZIABBADoAWyAAQQA7AFkgAEGsAWoQ0gELIABBxABqIQELIAEoAgAiBEUNACABKAIEIARBARDIAwsgAEGgAmokACACQZACaiQACzEBAX8jAEEQayICJAAgAiAANgIMIAFB3MPBAEEGIAJBDGpBiMPBABDiASACQRBqJAALMQECfyMAQYABayICJAAgAkEIaiIDQajHwQAgARAsIAAgA0H4ABDmAxogAkGAAWokAAsuAQJ/IwBBgAFrIgMkACADQQhqIgQgASACECwgACAEQfgAEOYDGiADQYABaiQACy4BAn8jAEGAAWsiAyQAIANBCGoiBCABIAIQICAAIARB+AAQ5gMaIANBgAFqJAALMQEBfyMAQRBrIgIkACACIAA2AgwgAUHo1MEAQQYgAkEMakHw1MEAEOIBIAJBEGokAAvCAwEHfyMAQeAAayIHJAAjAEHgAmsiAiQAIAJB5ABqIgQgAUHQAGoQFyACQZACaiIDQSBqQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgAkIANwOQAiACQegBaiIFIAMgBCACLQCMARCnASACQbgCaiIDIAEgBRA7IAJBDGoiBiABQShqIAUQOyACQZABaiIBIAMQbiABQShqIgggBhBuIAItAIwBIQUgBiABQdAAEOYDGiACIAU6AGAgAkEAOgBcIAFB0M3BAEHUABDmAxogAyABIAYgBRCnASAEIAggBkEoaiAFEKcBIAdBDGoiASACKQK4AjcCACABQQhqIANBCGopAgA3AgAgAUEQaiADQRBqKQIANwIAIAFBGGogA0EYaikCADcCACABQSBqIANBIGopAgA3AgAgASACKQJkNwIoIAFBMGogBEEIaikCADcCACABQThqIARBEGopAgA3AgAgAUFAayAEQRhqKQIANwIAIAFByABqIARBIGopAgA3AgAgAUEAIAVrIAItAOABIgQgAi0AXHNxIARzOgBQIAJB4AJqJAAgACABQdQAEOYDGiAHQeAAaiQAC9IDAQN/IwBBgAFrIgQkACMAQdAAayICJAAgAkH8//8HIAEoAkxrNgJMIAJB/P///wAgASgCSGs2AkggAkH8////ACABKAJEazYCRCACQfz///8AIAEoAkBrNgJAIAJB/P///wAgASgCPGs2AjwgAkH8////ACABKAI4azYCOCACQfz///8AIAEoAjRrNgI0IAJB/P///wAgASgCMGs2AjAgAkH8/f//ACABKAIsazYCLCACQbzh//8AIAEoAihrNgIoIAIgAkEoahDEASAEQQhqIgNBIGogAUEgaikCADcCACADQRhqIAFBGGopAgA3AgAgA0EQaiABQRBqKQIANwIAIANBCGogAUEIaikCADcCACADIAEpAgA3AgAgAyACKQIANwIoIANBMGogAkEIaikCADcCACADQThqIAJBEGopAgA3AgAgA0FAayACQRhqKQIANwIAIANByABqIAJBIGopAgA3AgAgA0HwAGogAUHwAGopAgA3AgAgA0HoAGogAUHoAGopAgA3AgAgA0HgAGogAUHgAGopAgA3AgAgA0HYAGogAUHYAGopAgA3AgAgAyABKQJQNwJQIAJB0ABqJAAgACADQfgAEOYDGiAEQYABaiQACy4BAX8CQCAAKAIAQQRGBEAgACgCBCIBRQ0BIAAoAgggAUEBEMgDDwsgABCMAgsLMgECfyABQQhrIgMoAgBBAWohAiADIAI2AgAgAkUEQAALIAAgATYCBCAAQfS0wQA2AgALWQECfyMAQRBrIgAkACAAQeytwAA2AgwgAEEiNgIIIABB2KzAADYCBCMAQRBrIgEkACABIABBBGoiACkCADcCCCABQQhqQZCmwQBBACAAKAIIQQFBABDTAQALLAEBfwJAIABFDQAgACABKAIAEQAAIAEoAgQiAkUNACAAIAIgASgCCBDIAwsLJAEBfyAAKAIAIgBBH3UiAiAAcyACa60gAEF/c0EfdiABEJsBC2ABAX8jAEEQayIDJAAgAyABNgIMIAMgADYCCCMAQSBrIgAkACAAQQE2AgQgAEGY98EANgIAIABCATcCDCAAQdsBNgIcIAAgA0EIajYCGCAAIABBGGo2AgggACACEP4CAAtjAQF/IwBBEGsiAiQAIAIgATYCDCACIAA2AggjAEEgayIAJAAgAEEBNgIEIABBwLbBADYCACAAQgE3AgwgAEGIATYCHCAAIAJBCGo2AhggACAAQRhqNgIIIABByLfBABD+AgALIwACQCABQfz///8HTQRAIAAgAUEEIAIQsgMiAA0BCwALIAALJQAgAEUEQEGQtsEAQTAQ2AMACyAAIAIgAyAEIAUgASgCEBEKAAsjACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAQgASgCEBEbAAsjACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAQgASgCEBEOAAsjACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAQgASgCEBEFAAsjACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAQgASgCEBEdAAsjACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAQgASgCEBEfAAsoAQF/IAAoAgAiAUGAgICAeHJBgICAgHhHBEAgACgCBCABQQEQyAMLCzAAIAEoAhQgAC0AAEECdCIAQZjzwQBqKAIAIABB9PHBAGooAgAgASgCGCgCDBEDAAshACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAEoAhARAgALHQAgASgCAEUEQAALIABB6JXBADYCBCAAIAE2AgALGwAgACgCACIAQQRqKAIAIABBCGooAgAgARBMCx8AIABFBEBBrbHBAEEwENgDAAsgACACIAEoAhARAQALHwAgAEUEQEGQtsEAQTAQ2AMACyAAIAIgASgCEBEEAAsaAQF/IAAoAgAiAQRAIAAoAgQgAUEBEMgDCwscACAAKAIAIgAoAgAgASAAQQRqKAIAKAIMEQQACxYAIAAEQCAAEJMBIABBsAJBBBDIAwsLEQAgAARAIABBuAJBCBDIAwsLIQAgASgCFCAAKAIAIgAoAgQgACgCCCABKAIYKAIMEQMAC+cGAQV/AkACQAJAAkACQCAAQQRrIgUoAgAiB0F4cSIEQQRBCCAHQQNxIgYbIAFqTwRAIAZBAEcgAUEnaiIIIARJcQ0BAkACQCACQQlPBEAgAiADEIIBIgINAUEAIQAMCAtBACECIANBzP97Sw0BQRAgA0ELakF4cSADQQtJGyEBAkAgBkUEQCABQYACSQ0BIAQgAUEEckkNASAEIAFrQYGACE8NAQwJCyAAQQhrIgYgBGohCAJAAkACQAJAIAEgBEsEQCAIQaiZwgAoAgBGDQQgCEGkmcIAKAIARg0CIAgoAgQiB0ECcQ0FIAdBeHEiByAEaiIEIAFJDQUgCCAHEJABIAQgAWsiAkEQSQ0BIAUgASAFKAIAQQFxckECcjYCACABIAZqIgEgAkEDcjYCBCAEIAZqIgMgAygCBEEBcjYCBCABIAIQeAwNCyAEIAFrIgJBD0sNAgwMCyAFIAQgBSgCAEEBcXJBAnI2AgAgBCAGaiIBIAEoAgRBAXI2AgQMCwtBnJnCACgCACAEaiIEIAFJDQICQCAEIAFrIgJBD00EQCAFIAdBAXEgBHJBAnI2AgAgBCAGaiIBIAEoAgRBAXI2AgRBACECQQAhAQwBCyAFIAEgB0EBcXJBAnI2AgAgASAGaiIBIAJBAXI2AgQgBCAGaiIDIAI2AgAgAyADKAIEQX5xNgIEC0GkmcIAIAE2AgBBnJnCACACNgIADAoLIAUgASAHQQFxckECcjYCACABIAZqIgEgAkEDcjYCBCAIIAgoAgRBAXI2AgQgASACEHgMCQtBoJnCACgCACAEaiIEIAFLDQcLIAMQISIBRQ0BIAEgACAFKAIAIgFBeHFBfEF4IAFBA3EbaiIBIAMgASADSRsQ5gMgABBhIQAMBwsgAiAAIAEgAyABIANJGxDmAxogBSgCACIFQXhxIQMgAyABQQRBCCAFQQNxIgUbakkNAyAFQQBHIAMgCEtxDQQgABBhCyACIQAMBQtBheHBAEEuQbThwQAQ9QIAC0HE4cEAQS5B9OHBABD1AgALQYXhwQBBLkG04cEAEPUCAAtBxOHBAEEuQfThwQAQ9QIACyAFIAEgB0EBcXJBAnI2AgAgASAGaiICIAQgAWsiAUEBcjYCBEGgmcIAIAE2AgBBqJnCACACNgIACyAACxAAIAEEQCAAIAFBBBDIAwsLGQAgASgCFEG+9sEAQQsgASgCGCgCDBEDAAsZACABKAIUQcn2wQBBDiABKAIYKAIMEQMACw8AIAAoAgAEQCAAENABCwvSBQEXfyMAQTBrIgIkACACQQhqIgMgACABQdAAaiIEEDsgAigCCCEFIAIoAgwhBiACKAIQIQcgAigCFCEIIAIoAhghCSACKAIcIQogAigCICELIAIoAiQhDCACKAIoIQ0gAigCLCEOIAMgASAAQdAAaiIPEDsgAigCCCEQIAIoAgwhESACKAIQIRIgAigCFCETIAIoAhghFCACKAIcIRUgAigCICEWIAIoAiQhFyACKAIoIRggAiAOIAIoAixrQfz//wdqNgIsIAIgDSAYa0H8////AGo2AiggAiAMIBdrQfz///8AajYCJCACIAsgFmtB/P///wBqNgIgIAIgCiAVa0H8////AGo2AhwgAiAJIBRrQfz///8AajYCGCACIAggE2tB/P///wBqNgIUIAIgByASa0H8////AGo2AhAgAiAGIBFrQfz9//8AajYCDCACIAUgEGtBvOH//wBqNgIIIAMQugEhBSADIABBKGogBBA7IAIoAgghACACKAIMIQQgAigCECEGIAIoAhQhByACKAIYIQggAigCHCEJIAIoAiAhCiACKAIkIQsgAigCKCEMIAIoAiwhDSADIAFBKGogDxA7IAIoAgghASACKAIMIQ4gAigCECEPIAIoAhQhECACKAIYIREgAigCHCESIAIoAiAhEyACKAIkIRQgAigCKCEVIAIgDSACKAIsa0H8//8HajYCLCACIAwgFWtB/P///wBqNgIoIAIgCyAUa0H8////AGo2AiQgAiAKIBNrQfz///8AajYCICACIAkgEmtB/P///wBqNgIcIAIgCCARa0H8////AGo2AhggAiAHIBBrQfz///8AajYCFCACIAYgD2tB/P///wBqNgIQIAIgBCAOa0H8/f//AGo2AgwgAiAAIAFrQbzh//8AajYCCCADELoBIAVxIQAjAEEQayIBIAA6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NgIoIAMgAzYCICADQQhqIAIQ/gIAC2oBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQSxqQQI2AgAgA0ECNgIMIANB4PzBADYCCCADQgI3AhQgA0ECNgIkIAMgA0EgajYCECADIANBBGo2AiggAyADNgIgIANBCGogAhD+AgALDgAgADUCAEEBIAEQmwELagEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBLGpBAjYCACADQQI2AgwgA0GU/cEANgIIIANCAjcCFCADQQI2AiQgAyADQSBqNgIQIAMgA0EEajYCKCADIAM2AiAgA0EIaiACEP4CAAsOACAAMQAAQQEgARCbAQsPAEGh98EAQSsgABD1AgALCwAgACMAaiQAIwALGQAgASgCFEHA3sAAQQUgASgCGCgCDBEDAAsZACABKAIUQdD+wABBBSABKAIYKAIMEQMAC1oBAX8gACgCACECIwBBIGsiACQAIABBATYCBCAAQfTIwQA2AgAgAEIBNwIMIABBiwE2AhwgACACNgIYIAAgAEEYajYCCCABKAIUIAEoAhggABBoIABBIGokAAsNACAAQYSfwQAgARBoC9EFAQN/IAAoAgAhACMAQSBrIgIkAAJAAkACQAJAAkACQAJAIAAtAABBAWsOAwECAwALIAIgACgCBDYCBCABKAIUQfnnwQBBAiABKAIYKAIMEQMAIQMgAkEIaiIAQQA6AAUgACADOgAEIAAgATYCACAAQfvnwQBBBCACQQRqQYDowQAQkQEgAkEoOgATQZDowQBBBCACQRNqQZTowQAQkQFBsZXCAC0AABpBFEEBEL0DIgBFDQQgAEEQakGm78EAKAAANgAAIABBCGpBnu/BACkAADcAACAAQZbvwQApAAA3AAAgAkEUNgIcIAIgADYCGCACQRQ2AhRBpOjBAEEHIAJBFGpBrOjBABCRARCqAiEAIAIoAhQiAUUNAyACKAIYIAFBARDIAwwDCyACIAAtAAE6AAggAkEUaiIAIAEoAhRBvOjBAEEEIAEoAhgoAgwRAwA6AAggACABNgIEIABBADoACSAAQQA2AgAgACACQQhqQZTowQAQtAEiAC0ACCEBAkAgACgCACIDRQRAIAFBAEchAAwBCwJAIAFFBEAgACgCBCEBIANBAUcNASAALQAJRQ0BIAEtABxBBHENASABKAIUQfD5wQBBASABKAIYKAIMEQMARQ0BCyAAQQE6AAhBASEADAELIAAgASgCFEGr9sEAQQEgASgCGCgCDBEDACIAOgAICwwCCyAAKAIEIQMgASgCFEHA6MEAQQUgASgCGCgCDBEDACEEIAJBFGoiAEEAOgAFIAAgBDoABCAAIAE2AgAgAEGQ6MEAQQQgA0EIakGU6MEAEJEBQaTowQBBByADQcjowQAQkQEQqgIhAAwBCyACIAAoAgQiADYCFCABQdjowQBBBkGQ6MEAQQQgAEEIakGU6MEAQd7owQBBBSACQRRqQeTowQAQ8QEhAAsgAkEgaiQADAELQQFBFEHolcIAKAIAIgBBvAEgABsRAQAACyAAC9UDAQF/IAAoAgAhACMAQUBqIgIkAAJAAkACQAJAAkACQAJAIAAtAABBAWsOAwECAwALIAIgACgCBDYCCEGxlcIALQAAGkEUQQEQvQMiAEUNBCAAQRBqQabvwQAoAAA2AAAgAEEIakGe78EAKQAANwAAIABBlu/BACkAADcAACACQRQ2AhQgAiAANgIQIAJBFDYCDCACQSRqQbkBNgIAIAJBAzYCLCACQYDpwQA2AiggAkICNwI0IAJBugE2AhwgAiACQRhqNgIwIAIgAkEIajYCICACIAJBDGo2AhggASgCFCABKAIYIAJBKGoQaCEAIAIoAgwiAUUNAyACKAIQIAFBARDIAwwDCyAALQABIQAgAkEBNgIsIAJBhOLBADYCKCACQgE3AjQgAkG7ATYCECACIABBAnQiAEGs78EAaigCADYCHCACIABB0PDBAGooAgA2AhggAiACQQxqNgIwIAIgAkEYajYCDCABKAIUIAEoAhggAkEoahBoIQAMAgsgACgCBCIAKAIAIAAoAgQgARDiAyEADAELIAAoAgQiACgCACABIAAoAgQoAhARBAAhAAsgAkFAayQADAELQQFBFEHolcIAKAIAIgBBvAEgABsRAQAACyAACwsAIAAgAUHsABATCwkAIAAgARARAAtnAQF/IAAoAgAhAiMAQTBrIgAkACAAIAI2AgwgAEECNgIUIABBtN7BADYCECAAQgE3AhwgAEG0ATYCLCAAIABBKGo2AhggACAAQQxqNgIoIAEoAhQgASgCGCAAQRBqEGggAEEwaiQAC4MEAQN/IAAoAgAhAyMAQfAAayIAJAAgACADNgIA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AAAAwBQQAAsAAAAsExAADwAAAKQBAABCAAAAY2hhbF9tc2dfYXJyYXlfc3RyaW5nIGxlbiBtaXNtYXRjaH5tc2dfMV9jb218AAAAAAAQAAAAAAAOFRAACwAAACwTEAAPAAAAywEAAC4AAAAsExAADwAAAPEBAAAYAAAALBMQAA8AAADyAQAAHgAAACwTEAAPAAAA8wEAAA0AAABjb21fbXNnX2FycmF5X3N0cmluZyBsZW4gbWlzbWF0Y2htc2dfMF9hcnJheV9zdHJpbmcgbGVuIG1pc21hdGNoLBMQAA8AAAAqAgAAKAAAACwTEAAPAAAAKwIAACgAAABtc2dfMV9hcnJheV9zdHJpbmcgbGVuIG1pc21hdGNofnByb3ZlX2RsX2ZzAAAAEAAAAAAA6xUQAAwAAABka2xzL3NyYy96a3Bvay5ycwAAAAgWEAARAAAADQAAABwAAAAIFhAAEQAAAGwAAAAeAAAAcHJvdmVfZGxfZnNfbXNnIGxlbiBtaXNtYXRjaE1heWJlRG9uZSBwb2xsZWQgYWZ0ZXIgdmFsdWUgdGFrZW4vVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9mdXR1cmVzLXV0aWwtMC4zLjI1L3NyYy9mdXR1cmUvbWF5YmVfZG9uZS5ycwB6FhAAcQAAAGMAAAAkAAAAL3J1c3RjLzliMDA5NTZlNTYwMDliYWIyYWExNWQ3YmZmMTA5MTY1OTllM2Q2ZDYvbGlicmFyeS9jb3JlL3NyYy9zdHIvbW9kLnJzAPwWEABLAAAAmwIAABUAQeCuwAALrQFhdHRlbXB0IHRvIGNhbGN1bGF0ZSB0aGUgcmVtYWluZGVyIHdpdGggYSBkaXZpc29yIG9mIHplcm8AAAAAAAAAYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAAJgX+ALFVqAAn5WNAji3bAP8mwIDwcKhA1wpBgJWse4C3Pl+AplvHgC41BAD/iP0AcSZQQEVmiIBtBf9ACpChAPAv08CdpURA6MmdwK2DhIAAQBBtLDAAAuhAS9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUw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aWxlZAAAABQAAAAsAgAABAAAABUAAAAWAAAAcAwAAAgAAAAXAAAAGAAAAKANAAAIAAAAGQAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3dhc20tYmluZGdlbi1mdXR1cmVzLTAuNC4zMy9zcmMvbGliLnJzANwtEABrAAAA2gAAABUAQeDcwAAL/QFgYXN5bmMgZm5gIHJlc3VtZWQgYWZ0ZXIgY29tcGxldGlvbgAaAAAADAAAAAQAAAAbAAAAHAAAAB0AAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5AB4AAAAAAAAAAQAAAB8AAAAvcnVzdGMvOWIwMDk1NmU1NjAwOWJhYjJhYTE1ZDdiZmYxMDkxNjU5OWUzZDZkNi9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMA5C4QAEsAAAD6CQAADgAAAEVycm9yTm9uZVNvbWUAAAANAAAABAAAAAQAAAAgAEHo3sAAC6UCZGtscy9zcmMvZGtscy5yc1BydW5lZFBsYXllckluZGV4IGlzIE5vbmVQYXJ0aWVzIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBwbGF5ZXJjb3VudAAAaC8QABAAAADHAAAAJgAAAH5zaWdfZnJhZ19yYXcAAABALxAAAAAAAMwvEAANAAAAU2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBmYWlsZWQgZm9yIEVDRFNBIHNpZ25pbmdzaWdfZnJhZ19yYXcAaC8QABAAAAAnAQAAIAAAAE51bWJlciBvZiBjb3VudGVycGFydGllcyBkb2VzIG5vdCBtYXRjaCB0aHJlc2hvbGQuAABoLxAAEAAAAGQCAAAyAAAAaC8QABAAAACKAgAAKwAAAAEAQazhwAALxRNoLxAAEAAAANECAAAQAAAAaC8QABAAAADkAgAAIAAAAGgvEAAQAAAA5wIAACAAAABoLxAAEAAAAOoCAAAXAAAAaC8QABAAAADrAgAAIgAAAH5jaGVja3B0MTIzX2NvbXNALxAAAAAAAPwwEAAQAAAAaC8QABAAAADzAgAAMQAAAGgvEAAQAAAABAMAABYAAABjaGVja3B0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bmVyIFJPIGlzIE5vbmUAAAD+NxAAEAAAABUBAAABAAAATm90IGVub3VnaCBwbGF5ZXJzIHdlcmUgc3VwcGxpZWT+NxAAEAAAADgBAAAfAAAAUHJlY29tcHV0ZSBmYWlsZWQsIGVycm9yOiAAAJw4EAAaAAAA/jcQABAAAAAzAQAAAQAAAE1zZyBoYXNoIGlzIG5vdCAzMiBieXRlc01zZyBpcyBlbXB0ef43EAAQAAAA7QEAAB8AAABTaWduYXR1cmUgaXMgTm9uZVNpZ25pbmcgZmFpbGVkQ291bGQgbm90IGRlY29kZSBtc2cgaGFzaP43EAAQAAAA5gEAAAEAAAAAAAAAYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVyby9ydXN0Yy85YjAwOTU2ZTU2MDA5YmFiMmFhMTVkN2JmZjEwOTE2NTk5ZTNkNmQ2L2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwBpORAATgAAANkFAAAVAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZS9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Z1dHVyZXMtdXRpbC0wLjMuMjUvc3JjL2Z1dHVyZS9tYXliZV9kb25lLnJzAAAA8DkQAHEAAABJAAAAFgBBgPXAAAupA2F0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8vVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9mdXR1cmVzLXV0aWwtMC4zLjI1L3NyYy9mdXR1cmUvam9pbl9hbGwucnOZOhAAbwAAAJYAAABOAAAAZGtscy9zcmMvZGtscy5ycxg7EAAQAAAAvQMAABkAAAAYOxAAEAAAAO4DAAAnAAAAGDsQABAAAAD1AwAAEgAAAGRrbHMvc3JjL21wbXVsLnJzAAAAWDsQABEAAAClAAAAHwAAAFg7EAARAAAApgAAADEAAABka2xzL3NyYy9vdGUucnMAjDsQAA8AAACqAAAANAAAAIw7EAAPAAAAqgAAADMAAACMOxAADwAAAKsAAAAoAAAAjDsQAA8AAADqAAAAIgAAAIw7EAAPAAAA6AAAACwAAACMOxAADwAAAPMAAAArAAAAjDsQAA8AAADyAAAAKgAAAIw7EAAPAAAAYwEAACkAAACMOxAADwAAAGMBAAA7AEG4+MAACx2MOxAADwAAAGkCAAArAAAAjDsQAA8AAABpAgAAPgBB4PjAAAuhB2F0dGVtcHQgdG8gY2FsY3VsYXRlIHRoZSByZW1haW5kZXIgd2l0aCBhIGRpdmlzb3Igb2YgemVybwAAAIw7EAAPAAAAogIAACIAAACMOxAADwAAAKACAAAsAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHJldi9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Z1dHVyZXMtdXRpbC0wLjMuMjUvc3JjL3N0cmVhbS9mdXR1cmVzX3Vub3JkZXJlZC9tb2QucnMAANI8EAB8AAAAzgEAAA0AAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAGZ1dHVyZSBzdGlsbCBoZXJlIHdoZW4gZHJvcHBpbmcAJQAAACYAAAAnAAAAKAAAADEAAAAyAAAAMwAAADQAAAA5AAAAOgAAADsAAAA8AAAAKQAAACoAAAArAAAALAAAACEAAAAiAAAAIwAAACQAAAA1AAAANgAAADcAAAA4AAAAPQAAAD4AAAA/AAAAQAAAAC0AAAAuAAAALwAAADAAAABpbmNvbnNpc3RlbnQgaW4gZHJvcEcAAAAMAAAABAAAAEgAAABJAAAAHQAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkASgAAAAAAAAABAAAASwAAAC9ydXN0Yy85YjAwOTU2ZTU2MDA5YmFiMmFhMTVkN2JmZjEwOTE2NTk5ZTNkNmQ2L2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwD0PhAASwAAAPoJAAAOAAAARXJyb3JDdXJ2ZUVycm9yAEwAAAAEAAAABAAAAE0AAABOb25lU29tZUwAAAAEAAAABAAAACAAAABHZW5lcmFsAEwAAAAEAAAABAAAAE4AAABQcm9vZgAAAEwAAAAEAAAABAAAAE8AAABJbwAATAAAAAQAAAAEAAAAUAAAAEN1cnZlAAAATAAAAAQAAAAEAAAAUQAAAGRrbHMvc3JjL3dhc20ucnPkPxAAEAAAABQAAAAXAEGQgMEAC80eYGFzeW5jIGZuYCByZXN1bWVkIGFmdGVyIGNvbXBsZXRpb24AUgAAAGAAAAAEAAAAUwAAAOQ/EAAQAAAAdwAAACAAAABzZW5kX21zZzogU2Vzc2lvbiA6IC0+AABUQBAAEgAAAGZAEAACAAAAaEAQAAIAAABmQBAAAgAAAGZAEAACAAAAVAAAAEwAAAAEAAAAVQAAAOQ/EAAQAAAAkAAAAF4AAABDYW5ub3QgY29udmVydCByZWFkIG1lc3NhZ2UgdG8gc3RyaW5ncmVhZF9tc2c6IFNlc3Npb24gPC0AAADZQBAAEgAAAGZAEAACAAAA60AQAAIAAABmQBAAAgAAAGZAEAACAAAAc3RhdGUgaXMgZW1wdHkAAAAAAAAAAHN0YXRlIGlzIG5vdCBhIDI1NiBiaXQgYmFzZTY0IHN0cmluZ0NvdWxkIG5vdCBjb25zdHJ1Y3QgcmFuZG9tIGdlbmVyYXRvciwgZXJyOiAAAABSQRAAKwAAAENhbm5vdCBjcmVhdGUgdGhyZXNob2xkIHNpZ25lcnMgd2l0aCB6ZXJvIHBsYXllcnNDYW5ub3QgY3JlYXRlIHRocmVzaG9sZCBzaWduZXJzIHdpdGggc2lnbmluZyB0aHJlc2hvbGQgb2YgemVyb3Nlc3Npb24gaXMgZW1wdHlTaGFyZSBpcyBlbXB0eXB1YmtleSBpcyBlbXB0eUNvdWxkIG5vdCBjb25zdHJ1Y3QgdGhyZXNob2xkIHNpZ25lclB1YmxpYyBrZXkgaXMgbm90IGRlY29kYWJsZVNoYXJlIGlzIG5vdCBkZWNvZGFibGVDYW5ub3QgY3JlYXRlIHRocmVzaG9sZCBzaWduZXJzIHdpdGggaW52YWxpZCBwbGF5ZXIgaW5kZXhjb3VsZCBub3QgY29udmVydCBzaGFyZSBmcm9tIGJ5dGVzLCBlcnI6IACyQhAAKQAAAGNvdWxkIG5vdCBjb252ZXJ0IHB1YmxpYyBrZXkgZnJvbSBieXRlcywgZXJyOiAAAORCEAAuAAAATXNnIGlzIGVtcHR5UHJlY29tcHV0ZSBpcyBOb25lTG9jYWwgc2lnbmluZyBmYWlsZWRDb3VsZCBub3QgZGVjb2RlIG1zZyBoYXNoY291bGQgbm90IGNvbnZlcnQgcHJlY29tcHV0ZSB0byBieXRlcywgZXJyOiAAZ0MQACwAAABmYWlsZWQgdG8gY29udmVydCByLnggdG8gYnl0ZXMsIHVuZXhwZWN0ZWQgbGVuZ3RoOiAAnEMQADMAAABMb2NhbCB2ZXJpZnkgZmFpbGVkLCBlcnI6IAAA2EMQABoAAABQYXJhbWV0ZXIgcHVia2V5IGlzIG5vdCB2YWxpZCBiYXNlNjRQYXJhbWV0ZXIgc2lnZnJhZyBpcyBub3QgdmFsaWQgYmFzZTY0IGF0IGluZGV4OiAgRBAAMAAAAFBhcmFtZXRlciBzaWdmcmFnIGlzIE5vbmUgYXQgaW5kZXg6IFhEEAAkAAAAUGFyYW1ldGVyIHIgaXMgbm90IHZhbGlkIGJhc2U2NFBhcmFtZXRlciByIGlzIE5vbmVjb3VsZCBub3QgY29udmVydCByIGZyb20gYnl0ZXMsIGVycjogALZEEAAlAAAAY291bGQgbm90IGNvbnZlcnQgZnJhZ21lbnQgZnJvbSBieXRlcywgZXJyOiDkRBAALAAAAGNvdWxkIG5vdCBjb252ZXJ0IHNpZyB0byBieXRlcywgZXJyOiAAAAAYRRAAJQAAAGfmCWqFrme7cvNuPDr1T6V/Ug5RjGgFm6vZgx8ZzeBbZGtscy9zcmMvcm90LnJzVmVyaWZpY2F0aW9uIEZhaWxlZCBmb3IgUk9UIChyZWNlaXZlciBjaGVhdGVkKQAAAGhFEAAPAAAAAQEAABMAAABoRRAADwAAABABAAATAAAAaEUQAA8AAAATAQAAEwAAAFZlcmlmaWNhdGlvbiBGYWlsZWQgZm9yIFJPVCAoc2VuZGVyIGNoZWF0ZWQpZGtscy9zcmMvbGliLnJzAARGEAAPAAAAVgAAABsAAAAERhAADwAAAFcAAAAMAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogAAA0RhAAKgAAAC9ydXN0Yy85YjAwOTU2ZTU2MDA5YmFiMmFhMTVkN2JmZjEwOTE2NTk5ZTNkNmQ2L2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL2JpbmFyeV9oZWFwL21vZC5yc2hGEABgAAAAegEAABkAAABVdGY4RXJyb3J2YWxpZF91cF90b1YAAAAEAAAABAAAAFcAAABlcnJvcl9sZW4AAABWAAAABAAAAAQAAABYAAAARnJvbVV0ZjhFcnJvcmJ5dGVzAABZAAAADAAAAAQAAABaAAAAZXJyb3IAAABWAAAABAAAAAQAAABbAAAAVmVjIGlzIHNpemVkIGNvbnNlcnZhdGl2ZWx5AFRHEAAbAAAAL1VzZXJzL21hdHRoaWFzLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYmFzZTY0LTAuMjIuMS9zcmMvZW5naW5lL21vZC5yc3hHEABkAAAAAQEAABkAAABpbnRlZ2VyIG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgYnVmZmVyIHNpemUAAAB4RxAAZAAAAHkAAAASAAAASW52YWxpZCBVVEY4XAAAABQAAAAEAAAAXQAAAHhHEABkAAAAfwAAACQAAABYSBAAAAAAAEFyYyBjb3VudGVyIG92ZXJmbG93YEgQABQAAAAvcnVzdGMvOWIwMDk1NmU1NjAwOWJhYjJhYTE1ZDdiZmYxMDkxNjU5OWUzZDZkNi9saWJyYXJ5L2FsbG9jL3NyYy9zeW5jLnJzAAAAfEgQAEkAAABeBgAADQAAAHxIEABJAAAAEAsAAA0AAAAvcnVzdGMvOWIwMDk1NmU1NjAwOWJhYjJhYTE1ZDdiZmYxMDkxNjU5OWUzZDZkNi9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQucnMAAOhIEABOAAAA0QIAAA8AAABtaWQgPiBsZW4AAABISRAACQAAAOhIEABOAAAA5wAAAAsAAABhc3NlcnRpb24gZmFpbGVkOiBvZmZzZXQgIT0gMCAmJiBvZmZzZXQgPD0gbGVuAADoSBAATgAAAJsAAAAFAAAA6EgQAE4AAABaAwAAHQAAAOhIEABOAAAAXgMAABsAAADoSBAATgAAACABAAALAAAA6EgQAE4AAAAPAQAAGgAAAOhIEABOAAAADwEAACQAAADoSBAATgAAADYCAAALAAAA6EgQAE4AAABWAgAAKAAAAOhIEABOAAAAXgIAAAcAAABDdXJ2ZUVycm9yAABiAAAABAAAAAQAAABNAAAAYXR0ZW1wdCB0byBqb2luIGludG8gY29sbGVjdGlvbiB3aXRoIGxlbiA+IHVzaXplOjpNQVgvcnVzdGMvOWIwMDk1NmU1NjAwOWJhYjJhYTE1ZDdiZmYxMDkxNjU5OWUzZDZkNi9saWJyYXJ5L2FsbG9jL3NyYy9zdHIucnMAAAB9ShAASAAAALIAAAAWAAAAfUoQAEgAAACbAAAACgAAAGIAAAAIAAAABAAAAGMAAABhc3NlcnRpb24gZmFpbGVkOiBzaXplIDw9IGlzaXplOjpNQVggYXMgdXNpemUvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi96ZXJvaXplLTEuNS43L3NyYy9saWIucnMAACVLEABdAAAArwEAAAkAAAAlSxAAXQAAAK4BAABAAAAAAQABQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL/////////////////////////////////////////////////////////8+////PzQ1Njc4OTo7PD3/////////AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBn///////8aGxwdHh8gISIjJCUmJygpKissLS4vMDEyM/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9iNjQgZGVjb2RlIGZhaWxlZDogAADnTBAAEwAAAEdlbmVyYWwgRXJyb3I6IAAETRAADwAAAFByb29mIEVycm9yOiAAAAAcTRAADQAAAElPIEVycm9yOiAAADRNEAAKAAAAQ3VydmUgRXJyb3I6IAAAAEhNEAANAAAAUHJvb2ZFcnJvcmRlc2NzdHJpbmdHZW5l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Z25hdGVkIGNvdW50ZXJwYXJ0eS5UcmllZCB0byBhdXRvZ2VuZXJhdGUgYnJvYWRjYXN0IHRhZ3MgZnJvbSBkeWFkaWMgdGFnZ2VyLlJhbmRvbSBPcmFjbGUgdGFnIHJhbmdlIGV4aGF1c3RlZGNsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBkZXN0cm95ZWQgYWxyZWFkeQAAAHAAAAAEAAAABAAAAHEAAAByAAAAcwAAAAQAAAAEAAAAdAAAAHUAAABzAAAABAAAAAQAAAB2AAAAdwAAAEZuT25jZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2UvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi93YXNtLWJpbmRnZW4tZnV0dXJlcy0wLjQuMzMvc3JjL3F1ZXVlLnJzAAAAOFkQAG0AAAAdAAAAKQAAADhZEABtAAAAGgAAAC4AAAA4WRAAbQAAADIAAAAaAAAAL1VzZXJzL21hdHRoaWFzLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvd2FzbS1iaW5kZ2VuLWZ1dHVyZXMtMC40LjMzL3NyYy9saWIucnMA2FkQAGsAAAClAAAADwAAANhZEABrAAAAhQAAACcAAADYWRAAawAAAK8AAAAkAAAAeAAAAHkAAAB6AAAAewAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3dhc20tYmluZGdlbi1mdXR1cmVzLTAuNC4zMy9zcmMvdGFzay9zaW5nbGV0aHJlYWQucnMAAACEWhAAeQAAAFUAAAAlAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGRlc3Ryb3llZCBhbHJlYWR5QFsQAAAAAAAvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9mdXR1cmVzLXV0aWwtMC4zLjI1L3NyYy9zdHJlYW0vZnV0dXJlc191bm9yZGVyZWQvYWJvcnQucnMAAEhbEAB+AAAACwAAAAUAAAAvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9mdXR1cmVzLWNvcmUtMC4zLjI1L3NyYy90YXNrL19faW50ZXJuYWwvYXRvbWljX3dha2VyLnJz2FsQAHwAAAAqAQAARAAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9nZW5lcmFsX3B1cnBvc2UvZGVjb2RlLnJzAGRcEAB3AAAAOAAAACYAAABkXBAAdwAAAF4AAAAuAAAAZFwQAHcAAABhAAAADQAAAGRcEAB3AAAAZQAAADgAAABkXBAAdwAAAD0AAAAnAAAAZFwQAHcAAACNAAAAGQAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9nZW5lcmFsX3B1cnBvc2UvZGVjb2RlX3N1ZmZpeC5ycwAAPF0QAH4AAABUAAAACQAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9nZW5lcmFsX3B1cnBvc2UvbW9kLnJzzF0QAHQAAACWAAAADQAAAMxdEAB0AAAAmAAAAEAAAADMXRAAdAAAAJcAAAANAAAAzF0QAHQAAACaAAAADQAAAMxdEAB0AAAAngAAAA0AAADMXRAAdAAAAJ8AAAANAAAAzF0QAHQAAACHAAAAJQAAAMxdEAB0AAAAiAAAACsAAADMXRAAdAAAAEAAAAAbAAAAzF0QAHQAAABCAAAAIAAAAEludmFsaWQgc3ltYm9sICwgb2Zmc2V0IC4AAADgXhAADwAAAO9eEAAJAAAA+F4QAAEAAABJbnZhbGlkIGlucHV0IGxlbmd0aDogAAAUXxAAFgAAAEludmFsaWQgbGFzdCBzeW1ib2wgNF8QABQAAADvXhAACQAAAPheEAABAAAASW52YWxpZCBwYWRkaW5nL1VzZXJzL21hdHRoaWFzLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYmFzZTY0LTAuMjIuMS9zcmMvZW5jb2RlLnJzAG9fEABgAAAAigAAAAkAAABKc1ZhbHVlKCkAAADgXxAACAAAAOhfEAABAEGkwMEACwEBAEH0wMEAC4UHaW52YWxpZCBsZW5ndGhlbmNvZGluZyBpbmZpbml0eSBpcyB1bnN1cHBvcnRlZGRlc2VyaWFsaXphdGlvbiBmYWlsdXJlAS9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N1YnRsZS0yLjQuMS9zcmMvbGliLnJzAAC6YBAAXAAAAGQCAAAJAAAAZmFpbGVkIHRvIGRlY29kZSBwb2ludCBmcm9tIGJ5dGVzAAAAAAAAAGfmCWqFrme7cvNuPDr1T6V/Ug5RjGgFm6vZgx8ZzeBbAAAAAAAAAAAgAAAAIAAAAEAAAAAgAAAAjAAAAAQAAAAEAAAAjQAAAIwAAAAEAAAABAAAAI4AAABFcnJvcmtpbmQAAACMAAAALAAAAAQAAACPAAAAcG9zaXRpb26MAAAABAAAAAQAAACQAAAATGVuZ3RoRGF0ZVRpbWVGYWlsZWRJbmNvbXBsZXRlZXhwZWN0ZWRfbGVuAACMAAAABAAAAAQAAACRAAAAYWN0dWFsX2xlbgAAjAAAAAQAAAAEAAAAkgAAAEluZGVmaW5pdGVMZW5ndGh0YWcAjAAAAAQAAAAEAAAAkwAAAE5vbmNhbm9uaWNhbE9pZE1hbGZvcm1lZE9pZFVua25vd25vaWQAAACMAAAABAAAAAQAAACUAAAAU2V0RHVwbGljYXRlU2V0T3JkZXJpbmdPdmVyZmxvd092ZXJsZW5ndGhSZWFkZXJUYWdNb2RlVW5rbm93blRhZ051bWJlckludmFsaWRUYWdVbmV4cGVjdGVkZXhwZWN0ZWQAAJUAAAADAAAAAQAAAJYAAABhY3R1YWxUYWdVbmtub3duYnl0ZVRyYWlsaW5nRGF0YWRlY29kZWRyZW1haW5pbmdVdGY4jAAAAAQAAAAEAAAAlwAAAFZhbHVlVXRmOEVycm9ydmFsaWRfdXBfdG8AAACMAAAABAAAAAQAAACYAAAAZXJyb3JfbGVuAAAAjAAAAAQAAAAEAAAAmQAAAE5vbmVTb21laW52YWxpZCBsZW5ndGgAAJgX+ALFVqAAn5WNAji3bAP8mwIDwcKhA1wpBgJWse4C3Pl+AplvHgC41BAD/iP0AcSZQQEVmiIBtBf9ACpChAPAv08CdpURA6MmdwK2DhIAAQBBoMjBAAudBGN1cnZlcy9zcmMvcnVzdGNyeXB0by9ncm91cC5ycwAAIGQQAB4AAAAoAAAAFwAAAGRlc2VyaWFsaXphdGlvbiBmYWlsdXJlQ3VydmVFcnJvcjogAGdkEAAMAAAAL1VzZXJzL21hdHRoaWFzLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc2VjMS0wLjcuMS9zcmMvcG9pbnQucnNpbnZhbGlkIHRhZwCaAAAANAAAAAQAAACbAAAAfGQQAFwAAADAAAAAJQAAAEFzbjGaAAAABAAAAAQAAACcAAAAQ3J5cHRvUG9pbnRFbmNvZGluZ1ZlcnNpb24AAJ0AAAAEAAAABAAAAJ4AAAAvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYW5kX2NoYWNoYS0wLjMuMS9zcmMvZ3V0cy5ycwAABAAAAERlEABiAAAA5gAAAAUAAAAvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9rMjU2LTAuMTMuMS9zcmMvYXJpdGhtZXRpYy9zY2FsYXIvd2lkZTMyLnJzvGUQAHAAAADpAAAAEgAAAAEAQdzMwQALIEFBNtCMXtK/O6BIr+bcrrr+////////////////////AEHMzcEACwEBAEGgzsEACwEBAEHMzsEACwEBAEGcz8EACynuAZUBHApbAhNcmQDWS9QBSfCcAToNDQPqeUQCuUEcAHxlKwJauh4AAQBB7M/BAAudAi9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3NlYzEtMC43LjEvc3JjL3BvaW50LnJzaW52YWxpZCB0YWcAnwAAADQAAAAEAAAAoAAAAOxnEABcAAAAwAAAACUAAABBc24xnwAAAAQAAAAEAAAAoQAAAENyeXB0b1BvaW50RW5jb2RpbmdWZXJzaW9uVXRmOEVycm9ydmFsaWRfdXBfdG8AAJ8AAAAEAAAABAAAAKIAAABlcnJvcl9sZW4AAACfAAAABAAAAAQAAACjAAAATm9uZVNvbWWfAAAABAAAAAQAAACkAAAAnwAAAAQAAAAEAAAApQBBtNLBAAsBAQBBhNPBAAswMbDbRZogk+h/yuhxFIqqPRXrhJLkkGzozWvUpyHShjDD5L8KqX9UbyiIDgHWfkPkAEHE08EAC7grcX/Eiq60cRXGBvWdrAgSIsTkvwqpf1RvKIgOAdZ+Q+QsVrE9qM1l1200dAfFCiiK/v///////////////////8+DErUQyM/gwjnHjvy5gKikm+13/ePZWh/Poz+zUpyspgAAAAQAAAAEAAAApQAAAEVycm9ya2luZAAAAKYAAAAsAAAABAAAAKcAAABwb3NpdGlvbqYAAAAEAAAABAAAAKgAAABMZW5ndGgAAKYAAAAEAAAABAAAAKkAAABEYXRlVGltZUZhaWxlZEluY29tcGxldGVleHBlY3RlZF9sZW6mAAAABAAAAAQAAACqAAAAYWN0dWFsX2xlbgAApgAAAAQAAAAEAAAApAAAAEluZGVmaW5pdGVMZW5ndGh0YWcApgAAAAQAAAAEAAAAqwAAAE5vbmNhbm9uaWNhbE9pZE1hbGZvcm1lZE9pZFVua25vd25vaWQAAACmAAAABAAAAAQAAACsAAAAU2V0RHVwbGljYXRlU2V0T3JkZXJpbmdPdmVyZmxvd092ZXJsZW5ndGhSZWFkZXJUYWdNb2RlVW5rbm93blRhZ051bWJlckludmFsaWRUYWdVbmV4cGVjdGVkZXhwZWN0ZWQAAK0AAAADAAAAAQAAAK4AAABhY3R1YWxUYWdVbmtub3duYnl0ZVRyYWlsaW5nRGF0YWRlY29kZWRyZW1haW5pbmdVdGY4pgAAAAQAAAAEAAAArwAAAFZhbHVlTm9uZVNvbWVlbXB0eSB5LWNvb3JkaW5hdGUvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zZWMxLTAuNy4xL3NyYy9wb2ludC5ycwADbBAAXAAAAAoCAAAeAAAAQk9PTEVBTklOVEVHRVJCSVQgU1RSSU5HT0NURVQgU1RSSU5HTlVMTE9CSkVDVCBJREVOVElGSUVSUkVBTEVOVU1FUkFURURVVEY4U3RyaW5nU0VRVUVOQ0VTRVROdW1lcmljU3RyaW5nUHJpbnRhYmxlU3RyaW5nVGVsZXRleFN0cmluZ1ZpZGVvdGV4U3RyaW5nSUE1U3RyaW5nVVRDVGltZUdlbmVyYWxpemVkVGltZVZpc2libGVTdHJpbmdCTVBTdHJpbmdBUFBMSUNBVElPTiBbXSAoKQAAADhtEAANAAAARW0QAAMAAABIbRAAAQAAAHByaW1pdGl2ZWNvbnN0cnVjdGVkZG0QAAkAAABtbRAACwAAAENPTlRFWFQtU1BFQ0lGSUMgWwAAiG0QABIAAABFbRAAAwAAAEhtEAABAAAAUFJJVkFURSBbAAAAtG0QAAkAAABFbRAAAwAAAEhtEAABAAAAVGFnKDB4OiDYbRAABgAAAN5tEAACAAAASG0QAAEAAAD4bRAAAAAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2NvbnN0LW9pZC0wLjkuNS9zcmMvYXJjcy5ycwBuEABgAAAANwAAAC8AAAAAbhAAYAAAADwAAAAvAAAAT0lEIG1hbGZvcm1lZAAAALUAAAAIAAAABAAAALYAAAAAbhAAYAAAAG0AAAAZAAAAL1VzZXJzL21hdHRoaWFzLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY29uc3Qtb2lkLTAuOS41L3NyYy9saWIucnMAsG4QAF8AAACoAAAAFAAAAE9iamVjdElkZW50aWZpZXIoKQAAIG8QABEAAAAxbxAAAQAAAABuEAAAAAAALkFyY0ludmFsaWRhcmMAALUAAAAEAAAABAAAALcAAABBcmNUb29CaWdCYXNlMTI4RGlnaXRFeHBlY3RlZGFjdHVhbAC1AAAABAAAAAQAAAC4AAAARW1wdHlMZW5ndGhOb3RFbm91Z2hBcmNzVHJhaWxpbmdEb3QvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYW5kX2NvcmUtMC42LjQvc3JjL2ltcGxzLnJzw28QAGEAAABcAAAAQAAAAMNvEABhAAAAXAAAAE8AAAC9AAAADAAAAAQAAAC+AAAAvwAAAMAAAAAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi42L3NyYy9kbG1hbGxvYy5yc2Fzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAXHAQACkAAACoBAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplIDw9IHNpemUgKyBtYXhfb3ZlcmhlYWQAAFxwEAApAAAArgQAAA0AAABEcBAAAAAAAGVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVmaWxlc3lzdGVtIHF1b3RhIGV4Y2VlZGVkZmlsZSB0b28gbGFyZ2VyZXNvdXJjZSBidXN5ZXhlY3V0YWJsZSBmaWxlIGJ1c3lkZWFkbG9ja2Nyb3NzLWRldmljZSBsaW5rIG9yIHJlbmFtZXRvbyBtYW55IGxpbmtzaW52YWxpZCBmaWxlbmFtZWFyZ3VtZW50IGxpc3QgdG9vIGxvbmdvcGVyYXRpb24gaW50ZXJydXB0ZWR1bnN1cHBvcnRlZHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGVvdXQgb2YgbWVtb3J5b3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yT3Njb2RlAMEAAAAEAAAABAAAAMIAAABraW5kwwAAAAEAAAABAAAAxAAAAG1lc3NhZ2UAvQAAAAwAAAAEAAAAxQAAAEtpbmRFcnJvcgAAAMEAAAAIAAAABAAAAMYAAABDdXN0b21lcnJvcgDBAAAABAAAAAQAAADHAAAAIChvcyBlcnJvciApRHAQAAAAAAB0dBAACwAAAH90EAABAAAAbWVtb3J5IGFsbG9jYXRpb24gb2YgIGJ5dGVzIGZhaWxlZAAAmHQQABUAAACtdBAADQAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc8x0EAAYAAAAYgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJz9HQQABwAAACEAgAAHgAAAL0AAAAMAAAABAAAAMgAAADBAAAACAAAAAQAAADJAAAAwQAAAAgAAAAEAAAAygAAAMsAAADMAAAAEAAAAAQAAADNAAAAzgAAAM8AAAAAAAAAAQAAANAAAABOb3RGb3VuZFBlcm1pc3Npb25EZW5pZWRDb25uZWN0aW9uUmVmdXNlZENvbm5lY3Rpb25SZXNldEhvc3RVbnJlYWNoYWJsZU5ldHdvcmtVbnJlYWNoYWJsZUNvbm5lY3Rpb25BYm9ydGVkTm90Q29ubmVjdGVkQWRkckluVXNlQWRkck5vdEF2YWlsYWJsZU5ldHdvcmtEb3duQnJva2VuUGlwZUFscmVhZHlFeGlzdHNXb3VsZEJsb2NrTm90QURpcmVjdG9yeUlzQURpcmVjdG9yeURpcmVjdG9yeU5vdEVtcHR5UmVhZE9ubHlGaWxlc3lzdGVtRmlsZXN5c3RlbUxvb3BTdGFsZU5ldHdvcmtG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AQEMAQkBKAEDATcBAQMFAwEEBwILAh0BOgECAQIBAwEFAgcCCwIcAjkCAQECBAgBCQEKAh0BSAEEAQIDAQEIAVEBAgcMCGIBAgkLB0kCGwEBAQEBNw4BBQECBQsBJAkBZgQBBgECAgIZAgQDEAQNAQICBgEPAQADAAMdAh4CHgJAAgEHCAECCwkBLQMBAXUCIgF2AwQCCQEGA9sCAgE6AQEHAQEBAQIIBgoCATAfMQQwBwEBBQEoCQwCIAQCAgEDOAEBAgMBAQM6CAICmAMBDQEHBAEGAQMCxkAAAcMhAAONAWAgAAZpAgAEAQogAlACAAEDAQQBGQIFAZcCGhINASYIGQsuAzABAgQCAicBQwYCAgICDAEIAS8BMwEBAwICBQIBASoCCAHuAQIBBAEAAQAQEBAAAgAB4gGVBQADAQIFBCgDBAGlAgAEAAJQA0YLMQR7ATYPKQECAgoDMQQCAgcBPQMkBQEIPgEMAjQJCgQCAV8DAgEBAgYBAgGdAQMIFQI5AgEBAQEWAQ4HAwXDCAIDAQEXAVEBAgYBAQIBAQIBAusBAgQGAgECGwJVCAIBAQJqAQEBAgYBAWUDAgQBBQAJAQL1AQoCAQEEAZAEAgIEASAKKAYCBAgBCQYCAy4NAQIABwEGAQFSFgIHAQIBAnoGAwEBAgEHAQFIAgMBAQEAAgsCNAUFAQEBAAEGDwAFOwcAAT8EUQEAAgAuAhcAAQEDBAUICAIHHgSUAwA3BDIIAQ4BFgUBDwAHARECBwECAQVkAaAHAAE9BAAEAAdtBwBggPAAbwlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjHTEuNzguMCAoOWIwMDk1NmU1IDIwMjQtMDQtMjkpBndhbHJ1cwYwLjE5LjAMd2FzbS1iaW5kZ2VuBjAuMi44MwAsD3RhcmdldF9mZWF0dXJlcwIrD211dGFibGUtZ2xvYmFscysIc2lnbi1leHQ=";function _(){const lA=V.split("base64,")[1];return Uint8Array.from(atob(lA),tA=>tA.charCodeAt(0))}async function j(){const lA=_();return await $(lA),i}function sA(){const lA=_();return Y(lA),i}const iA={keyType:"secp256k1",load:j,loadSync:sA},aA=iA;e.exports=t})()})(u$);var l$=u$.exports,$s={},fy=Ge.Buffer,G6A=eB,F6A=LB;function qD(e){if(this.buffer=null,this.writable=!0,this.readable=!0,!e)return this.buffer=fy.alloc(0),this;if(typeof e.pipe=="function")return this.buffer=fy.alloc(0),e.pipe(this),this;if(e.length||typeof e=="object")return this.buffer=e,this.writable=!1,process.nextTick((function(){this.emit("end",e),this.readable=!1,this.emit("close")}).bind(this)),this;throw new TypeError("Unexpected data type ("+typeof e+")")}F6A.inherits(qD,G6A);qD.prototype.write=function(A){this.buffer=fy.concat([this.buffer,fy.from(A)]),this.emit("data",A)};qD.prototype.end=function(A){A&&this.write(A),this.emit("end",A),this.emit("close"),this.writable=!1,this.readable=!1};var C$=qD,jC=jt.Buffer,dG=jt.SlowBuffer,x6A=hy;function hy(e,A){if(!jC.isBuffer(e)||!jC.isBuffer(A)||e.length!==A.length)return!1;for(var t=0,i=0;i=uy;return o&&--i,i}function j6A(e,A){e=Q$(e);var t=B$(A),i=e.length;if(i!==t*2)throw new TypeError('"'+A+'" signatures must be "'+t*2+'" bytes, saw "'+i+'"');var o=Eq(e,0,t),r=Eq(e,t,e.length),f=t-o,h=t-r,d=2+f+1+1+h,p=d0)return M4A(e);if(t==="number"&&isFinite(e))return A.long?S4A(e):b4A(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function M4A(e){if(e=String(e),!(e.length>100)){var A=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(A){var t=parseFloat(A[1]),i=(A[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return t*m4A;case"weeks":case"week":case"w":return t*D4A;case"days":case"day":case"d":return t*Of;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Ku;case"minutes":case"minute":case"mins":case"min":case"m":return t*Ru;case"seconds":case"second":case"secs":case"sec":case"s":return t*ku;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function b4A(e){var A=Math.abs(e);return A>=Of?Math.round(e/Of)+"d":A>=Ku?Math.round(e/Ku)+"h":A>=Ru?Math.round(e/Ru)+"m":A>=ku?Math.round(e/ku)+"s":e+"ms"}function S4A(e){var A=Math.abs(e);return A>=Of?aE(e,A,Of,"day"):A>=Ku?aE(e,A,Ku,"hour"):A>=Ru?aE(e,A,Ru,"minute"):A>=ku?aE(e,A,ku,"second"):e+" ms"}function aE(e,A,t,i){var o=A>=t*1.5;return Math.round(e/t)+" "+i+(o?"s":"")}var N4A=v4A,T$=function(e,A){var t=A||Math.floor(Date.now()/1e3);if(typeof e=="string"){var i=N4A(e);return typeof i>"u"?void 0:Math.floor(t+i/1e3)}else return typeof e=="number"?t+e:void 0},ak={exports:{}};(function(e,A){var t={};A=e.exports=UA;var i;typeof process=="object"&&t&&t.NODE_DEBUG&&/\bsemver\b/i.test(t.NODE_DEBUG)?i=function(){var EA=Array.prototype.slice.call(arguments,0);EA.unshift("SEMVER"),console.log.apply(console,EA)}:i=function(){},A.SEMVER_SPEC_VERSION="2.0.0";var o=256,r=Number.MAX_SAFE_INTEGER||9007199254740991,f=16,h=o-6,d=A.re=[],p=A.safeRe=[],C=A.src=[],y=0,w="[a-zA-Z0-9-]",D=[["\\s",1],["\\d",o],[w,h]];function v(EA){for(var GA=0;GA)?=?)";var I=y++;C[I]=C[R]+"|x|X|\\*";var c=y++;C[c]=C[M]+"|x|X|\\*";var B=y++;C[B]="[v=\\s]*("+C[c]+")(?:\\.("+C[c]+")(?:\\.("+C[c]+")(?:"+C[z]+")?"+C[q]+"?)?)?";var E=y++;C[E]="[v=\\s]*("+C[I]+")(?:\\.("+C[I]+")(?:\\.("+C[I]+")(?:"+C[oA]+")?"+C[q]+"?)?)?";var u=y++;C[u]="^"+C[g]+"\\s*"+C[B]+"$";var s=y++;C[s]="^"+C[g]+"\\s*"+C[E]+"$";var l=y++;C[l]="(?:^|[^\\d])(\\d{1,"+f+"})(?:\\.(\\d{1,"+f+"}))?(?:\\.(\\d{1,"+f+"}))?(?:$|[^\\d])";var m=y++;C[m]="(?:~>?)";var N=y++;C[N]="(\\s*)"+C[m]+"\\s+",d[N]=new RegExp(C[N],"g"),p[N]=new RegExp(v(C[N]),"g");var L="$1~",O=y++;C[O]="^"+C[m]+C[B]+"$";var H=y++;C[H]="^"+C[m]+C[E]+"$";var K=y++;C[K]="(?:\\^)";var Y=y++;C[Y]="(\\s*)"+C[K]+"\\s+",d[Y]=new RegExp(C[Y],"g"),p[Y]=new RegExp(v(C[Y]),"g");var W="$1^",$=y++;C[$]="^"+C[K]+C[B]+"$";var V=y++;C[V]="^"+C[K]+C[E]+"$";var _=y++;C[_]="^"+C[g]+"\\s*("+n+")$|^$";var j=y++;C[j]="^"+C[g]+"\\s*("+Q+")$|^$";var sA=y++;C[sA]="(\\s*)"+C[g]+"\\s*("+n+"|"+C[B]+")",d[sA]=new RegExp(C[sA],"g"),p[sA]=new RegExp(v(C[sA]),"g");var iA="$1$2$3",aA=y++;C[aA]="^\\s*("+C[B]+")\\s+-\\s+("+C[B]+")\\s*$";var lA=y++;C[lA]="^\\s*("+C[E]+")\\s+-\\s+("+C[E]+")\\s*$";var nA=y++;C[nA]="(<|>)?=?\\s*\\*";for(var tA=0;tAo)return null;var LA=GA.loose?p[a]:p[X];if(!LA.test(EA))return null;try{return new UA(EA,GA)}catch{return null}}A.valid=gA;function gA(EA,GA){var LA=xA(EA,GA);return LA?LA.version:null}A.clean=IA;function IA(EA,GA){var LA=xA(EA.trim().replace(/^[=v]+/,""),GA);return LA?LA.version:null}A.SemVer=UA;function UA(EA,GA){if((!GA||typeof GA!="object")&&(GA={loose:!!GA,includePrerelease:!1}),EA instanceof UA){if(EA.loose===GA.loose)return EA;EA=EA.version}else if(typeof EA!="string")throw new TypeError("Invalid Version: "+EA);if(EA.length>o)throw new TypeError("version is longer than "+o+" characters");if(!(this instanceof UA))return new UA(EA,GA);i("SemVer",EA,GA),this.options=GA,this.loose=!!GA.loose;var LA=EA.trim().match(GA.loose?p[a]:p[X]);if(!LA)throw new TypeError("Invalid Version: "+EA);if(this.raw=EA,this.major=+LA[1],this.minor=+LA[2],this.patch=+LA[3],this.major>r||this.major<0)throw new TypeError("Invalid major version");if(this.minor>r||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>r||this.patch<0)throw new TypeError("Invalid patch version");LA[4]?this.prerelease=LA[4].split(".").map(function(HA){if(/^[0-9]+$/.test(HA)){var JA=+HA;if(JA>=0&&JA=0;)typeof this.prerelease[LA]=="number"&&(this.prerelease[LA]++,LA=-2);LA===-1&&this.prerelease.push(0)}GA&&(this.prerelease[0]===GA?isNaN(this.prerelease[1])&&(this.prerelease=[GA,0]):this.prerelease=[GA,0]);break;default:throw new Error("invalid increment argument: "+EA)}return this.format(),this.raw=this.version,this},A.inc=rA;function rA(EA,GA,LA,HA){typeof LA=="string"&&(HA=LA,LA=void 0);try{return new UA(EA,LA).inc(GA,HA).version}catch{return null}}A.diff=hA;function hA(EA,GA){if(wA(EA,GA))return null;var LA=xA(EA),HA=xA(GA),JA="";if(LA.prerelease.length||HA.prerelease.length){JA="pre";var VA="prerelease"}for(var zA in LA)if((zA==="major"||zA==="minor"||zA==="patch")&&LA[zA]!==HA[zA])return JA+zA;return VA}A.compareIdentifiers=x;var OA=/^[0-9]+$/;function x(EA,GA){var LA=OA.test(EA),HA=OA.test(GA);return LA&&HA&&(EA=+EA,GA=+GA),EA===GA?0:LA&&!HA?-1:HA&&!LA?1:EA0}A.lt=YA;function YA(EA,GA,LA){return fA(EA,GA,LA)<0}A.eq=wA;function wA(EA,GA,LA){return fA(EA,GA,LA)===0}A.neq=RA;function RA(EA,GA,LA){return fA(EA,GA,LA)!==0}A.gte=Ie;function Ie(EA,GA,LA){return fA(EA,GA,LA)>=0}A.lte=yA;function yA(EA,GA,LA){return fA(EA,GA,LA)<=0}A.cmp=NA;function NA(EA,GA,LA,HA){switch(GA){case"===":return typeof EA=="object"&&(EA=EA.version),typeof LA=="object"&&(LA=LA.version),EA===LA;case"!==":return typeof EA=="object"&&(EA=EA.version),typeof LA=="object"&&(LA=LA.version),EA!==LA;case"":case"=":case"==":return wA(EA,LA,HA);case"!=":return RA(EA,LA,HA);case">":return QA(EA,LA,HA);case">=":return Ie(EA,LA,HA);case"<":return YA(EA,LA,HA);case"<=":return yA(EA,LA,HA);default:throw new TypeError("Invalid operator: "+GA)}}A.Comparator=ne;function ne(EA,GA){if((!GA||typeof GA!="object")&&(GA={loose:!!GA,includePrerelease:!1}),EA instanceof ne){if(EA.loose===!!GA.loose)return EA;EA=EA.value}if(!(this instanceof ne))return new ne(EA,GA);EA=EA.trim().split(/\s+/).join(" "),i("comparator",EA,GA),this.options=GA,this.loose=!!GA.loose,this.parse(EA),this.semver===pA?this.value="":this.value=this.operator+this.semver.version,i("comp",this)}var pA={};ne.prototype.parse=function(EA){var GA=this.options.loose?p[_]:p[j],LA=EA.match(GA);if(!LA)throw new TypeError("Invalid comparator: "+EA);this.operator=LA[1],this.operator==="="&&(this.operator=""),LA[2]?this.semver=new UA(LA[2],this.options.loose):this.semver=pA},ne.prototype.toString=function(){return this.value},ne.prototype.test=function(EA){return i("Comparator.test",EA,this.options.loose),this.semver===pA?!0:(typeof EA=="string"&&(EA=new UA(EA,this.options)),NA(EA,this.operator,this.semver,this.options))},ne.prototype.intersects=function(EA,GA){if(!(EA instanceof ne))throw new TypeError("a Comparator is required");(!GA||typeof GA!="object")&&(GA={loose:!!GA,includePrerelease:!1});var LA;if(this.operator==="")return LA=new MA(EA.value,GA),ge(this.value,LA,GA);if(EA.operator==="")return LA=new MA(this.value,GA),ge(EA.semver,LA,GA);var HA=(this.operator===">="||this.operator===">")&&(EA.operator===">="||EA.operator===">"),JA=(this.operator==="<="||this.operator==="<")&&(EA.operator==="<="||EA.operator==="<"),VA=this.semver.version===EA.semver.version,zA=(this.operator===">="||this.operator==="<=")&&(EA.operator===">="||EA.operator==="<="),ae=NA(this.semver,"<",EA.semver,GA)&&(this.operator===">="||this.operator===">")&&(EA.operator==="<="||EA.operator==="<"),se=NA(this.semver,">",EA.semver,GA)&&(this.operator==="<="||this.operator==="<")&&(EA.operator===">="||EA.operator===">");return HA||JA||VA&&zA||ae||se},A.Range=MA;function MA(EA,GA){if((!GA||typeof GA!="object")&&(GA={loose:!!GA,includePrerelease:!1}),EA instanceof MA)return EA.loose===!!GA.loose&&EA.includePrerelease===!!GA.includePrerelease?EA:new MA(EA.raw,GA);if(EA instanceof ne)return new MA(EA.value,GA);if(!(this instanceof MA))return new MA(EA,GA);if(this.options=GA,this.loose=!!GA.loose,this.includePrerelease=!!GA.includePrerelease,this.raw=EA.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(LA){return this.parseRange(LA.trim())},this).filter(function(LA){return LA.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}MA.prototype.format=function(){return this.range=this.set.map(function(EA){return EA.join(" ").trim()}).join("||").trim(),this.range},MA.prototype.toString=function(){return this.range},MA.prototype.parseRange=function(EA){var GA=this.options.loose,LA=GA?p[lA]:p[aA];EA=EA.replace(LA,vA),i("hyphen replace",EA),EA=EA.replace(p[sA],iA),i("comparator trim",EA,p[sA]),EA=EA.replace(p[N],L),EA=EA.replace(p[Y],W);var HA=GA?p[_]:p[j],JA=EA.split(" ").map(function(VA){return AA(VA,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(JA=JA.filter(function(VA){return!!VA.match(HA)})),JA=JA.map(function(VA){return new ne(VA,this.options)},this),JA},MA.prototype.intersects=function(EA,GA){if(!(EA instanceof MA))throw new TypeError("a Range is required");return this.set.some(function(LA){return LA.every(function(HA){return EA.set.some(function(JA){return JA.every(function(VA){return HA.intersects(VA,GA)})})})})},A.toComparators=uA;function uA(EA,GA){return new MA(EA,GA).set.map(function(LA){return LA.map(function(HA){return HA.value}).join(" ").trim().split(" ")})}function AA(EA,GA){return i("comp",EA,GA),EA=bA(EA,GA),i("caret",EA),EA=qA(EA,GA),i("tildes",EA),EA=mA(EA,GA),i("xrange",EA),EA=fe(EA,GA),i("stars",EA),EA}function CA(EA){return!EA||EA.toLowerCase()==="x"||EA==="*"}function qA(EA,GA){return EA.trim().split(/\s+/).map(function(LA){return BA(LA,GA)}).join(" ")}function BA(EA,GA){var LA=GA.loose?p[H]:p[O];return EA.replace(LA,function(HA,JA,VA,zA,ae){i("tilde",EA,HA,JA,VA,zA,ae);var se;return CA(JA)?se="":CA(VA)?se=">="+JA+".0.0 <"+(+JA+1)+".0.0":CA(zA)?se=">="+JA+"."+VA+".0 <"+JA+"."+(+VA+1)+".0":ae?(i("replaceTilde pr",ae),se=">="+JA+"."+VA+"."+zA+"-"+ae+" <"+JA+"."+(+VA+1)+".0"):se=">="+JA+"."+VA+"."+zA+" <"+JA+"."+(+VA+1)+".0",i("tilde return",se),se})}function bA(EA,GA){return EA.trim().split(/\s+/).map(function(LA){return oe(LA,GA)}).join(" ")}function oe(EA,GA){i("caret",EA,GA);var LA=GA.loose?p[V]:p[$];return EA.replace(LA,function(HA,JA,VA,zA,ae){i("caret",EA,HA,JA,VA,zA,ae);var se;return CA(JA)?se="":CA(VA)?se=">="+JA+".0.0 <"+(+JA+1)+".0.0":CA(zA)?JA==="0"?se=">="+JA+"."+VA+".0 <"+JA+"."+(+VA+1)+".0":se=">="+JA+"."+VA+".0 <"+(+JA+1)+".0.0":ae?(i("replaceCaret pr",ae),JA==="0"?VA==="0"?se=">="+JA+"."+VA+"."+zA+"-"+ae+" <"+JA+"."+VA+"."+(+zA+1):se=">="+JA+"."+VA+"."+zA+"-"+ae+" <"+JA+"."+(+VA+1)+".0":se=">="+JA+"."+VA+"."+zA+"-"+ae+" <"+(+JA+1)+".0.0"):(i("no pr"),JA==="0"?VA==="0"?se=">="+JA+"."+VA+"."+zA+" <"+JA+"."+VA+"."+(+zA+1):se=">="+JA+"."+VA+"."+zA+" <"+JA+"."+(+VA+1)+".0":se=">="+JA+"."+VA+"."+zA+" <"+(+JA+1)+".0.0"),i("caret return",se),se})}function mA(EA,GA){return i("replaceXRanges",EA,GA),EA.split(/\s+/).map(function(LA){return SA(LA,GA)}).join(" ")}function SA(EA,GA){EA=EA.trim();var LA=GA.loose?p[s]:p[u];return EA.replace(LA,function(HA,JA,VA,zA,ae,se){i("xRange",EA,HA,JA,VA,zA,ae,se);var Be=CA(VA),de=Be||CA(zA),si=de||CA(ae),Ai=si;return JA==="="&&Ai&&(JA=""),Be?JA===">"||JA==="<"?HA="<0.0.0":HA="*":JA&&Ai?(de&&(zA=0),ae=0,JA===">"?(JA=">=",de?(VA=+VA+1,zA=0,ae=0):(zA=+zA+1,ae=0)):JA==="<="&&(JA="<",de?VA=+VA+1:zA=+zA+1),HA=JA+VA+"."+zA+"."+ae):de?HA=">="+VA+".0.0 <"+(+VA+1)+".0.0":si&&(HA=">="+VA+"."+zA+".0 <"+VA+"."+(+zA+1)+".0"),i("xRange return",HA),HA})}function fe(EA,GA){return i("replaceStars",EA,GA),EA.trim().replace(p[nA],"")}function vA(EA,GA,LA,HA,JA,VA,zA,ae,se,Be,de,si,Ai){return CA(LA)?GA="":CA(HA)?GA=">="+LA+".0.0":CA(JA)?GA=">="+LA+"."+HA+".0":GA=">="+GA,CA(se)?ae="":CA(Be)?ae="<"+(+se+1)+".0.0":CA(de)?ae="<"+se+"."+(+Be+1)+".0":si?ae="<="+se+"."+Be+"."+de+"-"+si:ae="<="+ae,(GA+" "+ae).trim()}MA.prototype.test=function(EA){if(!EA)return!1;typeof EA=="string"&&(EA=new UA(EA,this.options));for(var GA=0;GA0){var JA=EA[HA].semver;if(JA.major===GA.major&&JA.minor===GA.minor&&JA.patch===GA.patch)return!0}return!1}return!0}A.satisfies=ge;function ge(EA,GA,LA){try{GA=new MA(GA,LA)}catch{return!1}return GA.test(EA)}A.maxSatisfying=DA;function DA(EA,GA,LA){var HA=null,JA=null;try{var VA=new MA(GA,LA)}catch{return null}return EA.forEach(function(zA){VA.test(zA)&&(!HA||JA.compare(zA)===-1)&&(HA=zA,JA=new UA(HA,LA))}),HA}A.minSatisfying=kA;function kA(EA,GA,LA){var HA=null,JA=null;try{var VA=new MA(GA,LA)}catch{return null}return EA.forEach(function(zA){VA.test(zA)&&(!HA||JA.compare(zA)===1)&&(HA=zA,JA=new UA(HA,LA))}),HA}A.minVersion=ee;function ee(EA,GA){EA=new MA(EA,GA);var LA=new UA("0.0.0");if(EA.test(LA)||(LA=new UA("0.0.0-0"),EA.test(LA)))return LA;LA=null;for(var HA=0;HA":zA.prerelease.length===0?zA.patch++:zA.prerelease.push(0),zA.raw=zA.format();case"":case">=":(!LA||QA(LA,zA))&&(LA=zA);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+VA.operator)}})}return LA&&EA.test(LA)?LA:null}A.validRange=XA;function XA(EA,GA){try{return new MA(EA,GA).range||"*"}catch{return null}}A.ltr=Qe;function Qe(EA,GA,LA){return ye(EA,GA,"<",LA)}A.gtr=Ce;function Ce(EA,GA,LA){return ye(EA,GA,">",LA)}A.outside=ye;function ye(EA,GA,LA,HA){EA=new UA(EA,HA),GA=new MA(GA,HA);var JA,VA,zA,ae,se;switch(LA){case">":JA=QA,VA=yA,zA=YA,ae=">",se=">=";break;case"<":JA=YA,VA=Ie,zA=QA,ae="<",se="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ge(EA,GA,HA))return!1;for(var Be=0;Be=0.0.0")),si=si||rg,Ai=Ai||rg,JA(rg.semver,si.semver,HA)?si=rg:zA(rg.semver,Ai.semver,HA)&&(Ai=rg)}),si.operator===ae||si.operator===se||(!Ai.operator||Ai.operator===ae)&&VA(EA,Ai.semver))return!1;if(Ai.operator===se&&zA(EA,Ai.semver))return!1}return!0}A.prerelease=we;function we(EA,GA){var LA=xA(EA,GA);return LA&&LA.prerelease.length?LA.prerelease:null}A.intersects=De;function De(EA,GA,LA){return EA=new MA(EA,LA),GA=new MA(GA,LA),EA.intersects(GA)}A.coerce=me;function me(EA){if(EA instanceof UA)return EA;if(typeof EA!="string")return null;var GA=EA.match(p[l]);return GA==null?null:xA(GA[1]+"."+(GA[2]||"0")+"."+(GA[3]||"0"))}})(ak,ak.exports);var k4A=ak.exports,R4A=k4A,P$=R4A.satisfies(process.version,"^6.12.0 || >=8.0.0"),ei=JD,K4A=H$,mq=J$,G4A=_$,F4A=T$,x4A=P$,L4A=$s,O$=["RS256","RS384","RS512","ES256","ES384","ES512"],j$=["RS256","RS384","RS512"],U4A=["HS256","HS384","HS512"];x4A&&(O$.splice(3,0,"PS256","PS384","PS512"),j$.splice(3,0,"PS256","PS384","PS512"));var _4A=function(e,A,t,i){typeof t=="function"&&!i&&(i=t,t={}),t||(t={}),t=Object.assign({},t);var o;if(i?o=i:o=function(C,y){if(C)throw C;return y},t.clockTimestamp&&typeof t.clockTimestamp!="number")return o(new ei("clockTimestamp must be a number"));if(t.nonce!==void 0&&(typeof t.nonce!="string"||t.nonce.trim()===""))return o(new ei("nonce must be a non-empty string"));var r=t.clockTimestamp||Math.floor(Date.now()/1e3);if(!e)return o(new ei("jwt must be provided"));if(typeof e!="string")return o(new ei("jwt must be a string"));var f=e.split(".");if(f.length!==3)return o(new ei("jwt malformed"));var h;try{h=G4A(e,{complete:!0})}catch(C){return o(C)}if(!h)return o(new ei("invalid token"));var d=h.header,p;if(typeof A=="function"){if(!i)return o(new ei("verify must be called asynchronous if secret or public key is provided as a callback"));p=A}else p=function(C,y){return y(null,A)};return p(d,function(C,y){if(C)return o(new ei("error in secret or public key callback: "+C.message));var w=f[2].trim()!=="";if(!w&&y)return o(new ei("jwt signature is required"));if(w&&!y)return o(new ei("secret or public key must be provided"));if(!w&&!t.algorithms&&(t.algorithms=["none"]),t.algorithms||(t.algorithms=~y.toString().indexOf("BEGIN CERTIFICATE")||~y.toString().indexOf("BEGIN PUBLIC KEY")?O$:~y.toString().indexOf("BEGIN RSA PUBLIC KEY")?j$:U4A),!~t.algorithms.indexOf(h.header.alg))return o(new ei("invalid algorithm"));var D;try{D=L4A.verify(e,h.header.alg,y)}catch(P){return o(P)}if(!D)return o(new ei("invalid signature"));var v=h.payload;if(typeof v.nbf<"u"&&!t.ignoreNotBefore){if(typeof v.nbf!="number")return o(new ei("invalid nbf value"));if(v.nbf>r+(t.clockTolerance||0))return o(new K4A("jwt not active",new Date(v.nbf*1e3)))}if(typeof v.exp<"u"&&!t.ignoreExpiration){if(typeof v.exp!="number")return o(new ei("invalid exp value"));if(r>=v.exp+(t.clockTolerance||0))return o(new mq("jwt expired",new Date(v.exp*1e3)))}if(t.audience){var M=Array.isArray(t.audience)?t.audience:[t.audience],R=Array.isArray(v.aud)?v.aud:[v.aud],b=R.some(function(P){return M.some(function(z){return z instanceof RegExp?z.test(P):z===P})});if(!b)return o(new ei("jwt audience invalid. expected: "+M.join(" or ")))}if(t.issuer){var S=typeof t.issuer=="string"&&v.iss!==t.issuer||Array.isArray(t.issuer)&&t.issuer.indexOf(v.iss)===-1;if(S)return o(new ei("jwt issuer invalid. expected: "+t.issuer))}if(t.subject&&v.sub!==t.subject)return o(new ei("jwt subject invalid. expected: "+t.subject));if(t.jwtid&&v.jti!==t.jwtid)return o(new ei("jwt jwtid invalid. expected: "+t.jwtid));if(t.nonce&&v.nonce!==t.nonce)return o(new ei("jwt nonce invalid. expected: "+t.nonce));if(t.maxAge){if(typeof v.iat!="number")return o(new ei("iat required when maxAge is specified"));var G=F4A(t.maxAge,v.iat);if(typeof G>"u")return o(new ei('"maxAge" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'));if(r>=G+(t.clockTolerance||0))return o(new mq("maxAge exceeded",new Date(G*1e3)))}if(t.complete===!0){var U=h.signature;return o(null,{header:d,payload:v,signature:U})}return o(null,v)})},vq=1/0,W$=9007199254740991,q4A=17976931348623157e292,Mq=NaN,H4A="[object Arguments]",Y4A="[object Function]",J4A="[object GeneratorFunction]",T4A="[object String]",P4A="[object Symbol]",O4A=/^\s+|\s+$/g,j4A=/^[-+]0x[0-9a-f]+$/i,W4A=/^0b[01]+$/i,V4A=/^0o[0-7]+$/i,Z4A=/^(?:0|[1-9]\d*)$/,z4A=parseInt;function $4A(e,A){for(var t=-1,i=e?e.length:0,o=Array(i);++t-1&&e%1==0&&e-1:!!o&&ALA(e,A,t)>-1}function cLA(e){return uLA(e)&&yG.call(e,"callee")&&(!nLA.call(e,"callee")||PD.call(e)==H4A)}var V$=Array.isArray;function wG(e){return e!=null&&CLA(e.length)&&!lLA(e)}function uLA(e){return DG(e)&&wG(e)}function lLA(e){var A=gk(e)?PD.call(e):"";return A==Y4A||A==J4A}function CLA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=W$}function gk(e){var A=typeof e;return!!e&&(A=="object"||A=="function")}function DG(e){return!!e&&typeof e=="object"}function BLA(e){return typeof e=="string"||!V$(e)&&DG(e)&&PD.call(e)==T4A}function dLA(e){return typeof e=="symbol"||DG(e)&&PD.call(e)==P4A}function ELA(e){if(!e)return e===0?e:0;if(e=pLA(e),e===vq||e===-vq){var A=e<0?-1:1;return A*q4A}return e===e?e:0}function QLA(e){var A=ELA(e),t=A%1;return A===A?t?A-t:A:0}function pLA(e){if(typeof e=="number")return e;if(dLA(e))return Mq;if(gk(e)){var A=typeof e.valueOf=="function"?e.valueOf():e;e=gk(A)?A+"":A}if(typeof e!="string")return e===0?e:+e;e=e.replace(O4A,"");var t=W4A.test(e);return t||V4A.test(e)?z4A(e.slice(2),t?2:8):j4A.test(e)?Mq:+e}function yLA(e){return wG(e)?aLA(e):gLA(e)}function wLA(e){return e?iLA(e,yLA(e)):[]}var DLA=hLA,mLA="[object Boolean]",vLA=Object.prototype,MLA=vLA.toString;function bLA(e){return e===!0||e===!1||SLA(e)&&MLA.call(e)==mLA}function SLA(e){return!!e&&typeof e=="object"}var NLA=bLA,bq=1/0,kLA=17976931348623157e292,Sq=NaN,RLA="[object Symbol]",KLA=/^\s+|\s+$/g,GLA=/^[-+]0x[0-9a-f]+$/i,FLA=/^0b[01]+$/i,xLA=/^0o[0-7]+$/i,LLA=parseInt,ULA=Object.prototype,_LA=ULA.toString;function qLA(e){return typeof e=="number"&&e==TLA(e)}function Nq(e){var A=typeof e;return!!e&&(A=="object"||A=="function")}function HLA(e){return!!e&&typeof e=="object"}function YLA(e){return typeof e=="symbol"||HLA(e)&&_LA.call(e)==RLA}function JLA(e){if(!e)return e===0?e:0;if(e=PLA(e),e===bq||e===-bq){var A=e<0?-1:1;return A*kLA}return e===e?e:0}function TLA(e){var A=JLA(e),t=A%1;return A===A?t?A-t:A:0}function PLA(e){if(typeof e=="number")return e;if(YLA(e))return Sq;if(Nq(e)){var A=typeof e.valueOf=="function"?e.valueOf():e;e=Nq(A)?A+"":A}if(typeof e!="string")return e===0?e:+e;e=e.replace(KLA,"");var t=FLA.test(e);return t||xLA.test(e)?LLA(e.slice(2),t?2:8):GLA.test(e)?Sq:+e}var OLA=qLA,jLA="[object Number]",WLA=Object.prototype,VLA=WLA.toString;function ZLA(e){return!!e&&typeof e=="object"}function zLA(e){return typeof e=="number"||ZLA(e)&&VLA.call(e)==jLA}var $LA=zLA,XLA="[object Object]";function A8A(e){var A=!1;if(e!=null&&typeof e.toString!="function")try{A=!!(e+"")}catch{}return A}function e8A(e,A){return function(t){return e(A(t))}}var t8A=Function.prototype,Z$=Object.prototype,z$=t8A.toString,i8A=Z$.hasOwnProperty,r8A=z$.call(Object),n8A=Z$.toString,o8A=e8A(Object.getPrototypeOf,Object);function s8A(e){return!!e&&typeof e=="object"}function a8A(e){if(!s8A(e)||n8A.call(e)!=XLA||A8A(e))return!1;var A=o8A(e);if(A===null)return!0;var t=i8A.call(A,"constructor")&&A.constructor;return typeof t=="function"&&t instanceof t&&z$.call(t)==r8A}var g8A=a8A,I8A="[object String]",f8A=Object.prototype,h8A=f8A.toString,c8A=Array.isArray;function u8A(e){return!!e&&typeof e=="object"}function l8A(e){return typeof e=="string"||!c8A(e)&&u8A(e)&&h8A.call(e)==I8A}var C8A=l8A,B8A="Expected a function",kq=1/0,d8A=17976931348623157e292,Rq=NaN,E8A="[object Symbol]",Q8A=/^\s+|\s+$/g,p8A=/^[-+]0x[0-9a-f]+$/i,y8A=/^0b[01]+$/i,w8A=/^0o[0-7]+$/i,D8A=parseInt,m8A=Object.prototype,v8A=m8A.toString;function M8A(e,A){var t;if(typeof A!="function")throw new TypeError(B8A);return e=R8A(e),function(){return--e>0&&(t=A.apply(this,arguments)),e<=1&&(A=void 0),t}}function b8A(e){return M8A(2,e)}function Kq(e){var A=typeof e;return!!e&&(A=="object"||A=="function")}function S8A(e){return!!e&&typeof e=="object"}function N8A(e){return typeof e=="symbol"||S8A(e)&&v8A.call(e)==E8A}function k8A(e){if(!e)return e===0?e:0;if(e=K8A(e),e===kq||e===-kq){var A=e<0?-1:1;return A*d8A}return e===e?e:0}function R8A(e){var A=k8A(e),t=A%1;return A===A?t?A-t:A:0}function K8A(e){if(typeof e=="number")return e;if(N8A(e))return Rq;if(Kq(e)){var A=typeof e.valueOf=="function"?e.valueOf():e;e=Kq(A)?A+"":A}if(typeof e!="string")return e===0?e:+e;e=e.replace(Q8A,"");var t=y8A.test(e);return t||w8A.test(e)?D8A(e.slice(2),t?2:8):p8A.test(e)?Rq:+e}var G8A=b8A,Gq=T$,F8A=P$,Fq=$s,x8A=DLA,xq=NLA,Lq=OLA,z2=$LA,$$=g8A,lg=C8A,L8A=G8A,X$=["RS256","RS384","RS512","ES256","ES384","ES512","HS256","HS384","HS512","none"];F8A&&X$.splice(3,0,"PS256","PS384","PS512");var U8A={expiresIn:{isValid:function(e){return Lq(e)||lg(e)&&e},message:'"expiresIn" should be a number of seconds or string representing a timespan'},notBefore:{isValid:function(e){return Lq(e)||lg(e)&&e},message:'"notBefore" should be a number of seconds or string representing a timespan'},audience:{isValid:function(e){return lg(e)||Array.isArray(e)},message:'"audience" must be a string or array'},algorithm:{isValid:x8A.bind(null,X$),message:'"algorithm" must be a valid string enum value'},header:{isValid:$$,message:'"header" must be an object'},encoding:{isValid:lg,message:'"encoding" must be a string'},issuer:{isValid:lg,message:'"issuer" must be a string'},subject:{isValid:lg,message:'"subject" must be a string'},jwtid:{isValid:lg,message:'"jwtid" must be a string'},noTimestamp:{isValid:xq,message:'"noTimestamp" must be a boolean'},keyid:{isValid:lg,message:'"keyid" must be a string'},mutatePayload:{isValid:xq,message:'"mutatePayload" must be a boolean'}},_8A={iat:{isValid:z2,message:'"iat" should be a number of seconds'},exp:{isValid:z2,message:'"exp" should be a number of seconds'},nbf:{isValid:z2,message:'"nbf" should be a number of seconds'}};function AX(e,A,t,i){if(!$$(t))throw new Error('Expected "'+i+'" to be a plain object.');Object.keys(t).forEach(function(o){var r=e[o];if(!r){if(!A)throw new Error('"'+o+'" is not allowed in "'+i+'"');return}if(!r.isValid(t[o]))throw new Error(r.message)})}function q8A(e){return AX(U8A,!1,e,"options")}function H8A(e){return AX(_8A,!0,e,"payload")}var Uq={audience:"aud",issuer:"iss",subject:"sub",jwtid:"jti"},Y8A=["expiresIn","notBefore","noTimestamp","audience","issuer","subject","jwtid"],J8A=function(e,A,t,i){typeof t=="function"?(i=t,t={}):t=t||{};var o=typeof e=="object"&&!Buffer.isBuffer(e),r=Object.assign({alg:t.algorithm||"HS256",typ:o?"JWT":void 0,kid:t.keyid},t.header);function f(C){if(i)return i(C);throw C}if(!A&&t.algorithm!=="none")return f(new Error("secretOrPrivateKey must have a value"));if(typeof e>"u")return f(new Error("payload is required"));if(o){try{H8A(e)}catch(C){return f(C)}t.mutatePayload||(e=Object.assign({},e))}else{var h=Y8A.filter(function(C){return typeof t[C]<"u"});if(h.length>0)return f(new Error("invalid "+h.join(",")+" option for "+typeof e+" payload"))}if(typeof e.exp<"u"&&typeof t.expiresIn<"u")return f(new Error('Bad "options.expiresIn" option the payload already has an "exp" property.'));if(typeof e.nbf<"u"&&typeof t.notBefore<"u")return f(new Error('Bad "options.notBefore" option the payload already has an "nbf" property.'));try{q8A(t)}catch(C){return f(C)}var d=e.iat||Math.floor(Date.now()/1e3);if(t.noTimestamp?delete e.iat:o&&(e.iat=d),typeof t.notBefore<"u"){try{e.nbf=Gq(t.notBefore,d)}catch(C){return f(C)}if(typeof e.nbf>"u")return f(new Error('"notBefore" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'))}if(typeof t.expiresIn<"u"&&typeof e=="object"){try{e.exp=Gq(t.expiresIn,d)}catch(C){return f(C)}if(typeof e.exp>"u")return f(new Error('"expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'))}Object.keys(Uq).forEach(function(C){var y=Uq[C];if(typeof t[C]<"u"){if(typeof e[y]<"u")return f(new Error('Bad "options.'+C+'" option. The payload already has an "'+y+'" property.'));e[y]=t[C]}});var p=t.encoding||"utf8";if(typeof i=="function")i=i&&L8A(i),Fq.createSign({header:r,privateKey:A,payload:e,encoding:p}).once("error",i).once("done",function(C){i(null,C)});else return Fq.sign({header:r,payload:e,secret:A,encoding:p})},T8A={decode:_$,verify:_4A,sign:J8A,JsonWebTokenError:JD,NotBeforeError:H$,TokenExpiredError:J$};const P8A=$i(T8A),O8A=async e=>{const A=Date.now();console.log("startTime",A);const t=new I7({web3AuthClientId:"BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ",web3AuthNetwork:e.selectedNetwork,uxMode:"redirect",manualSync:e.manualSync,storage:window.localStorage,tssLib:l$.tssLib});await t.init({handleRedirectResult:!1,rehydrate:!1}),await t.loginWithJWT({verifier:e.verifier,verifierId:e.verifierId,idToken:e.idToken,prefetchTssPublicKeys:2});let i=Date.now();console.log("logged Time :",i),console.log(i-A),await new _P().setSecurityQuestion({mpcCoreKit:t,question:"question",answer:"answer"});let r=Date.now();console.log("SQ time",r),console.log(r-i),await t.commitChanges();let f=Date.now();console.log("commit :",f),console.log(f-r),console.log("total time",f-A)},Pe=(...e)=>{const A=document.querySelector("#console>p");A&&(A.innerHTML=JSON.stringify(e||{},null,2)),console.log(...e)},eX=nJ.DEVNET,j8A={chainNamespace:bc.EIP155,chainId:"0xaa36a7",rpcTarget:"https://rpc.ankr.com/eth_sepolia",displayName:"Ethereum Sepolia Testnet",blockExplorerUrl:"https://sepolia.etherscan.io",ticker:"ETH",tickerName:"Ethereum",decimals:18},he=new I7({web3AuthClientId:"BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ",web3AuthNetwork:eX,uxMode:"redirect",manualSync:!0,storage:window.localStorage,tssLib:l$.tssLib,useDKG:!1}),kI=new QwA,W8A="MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCCD7oLrcKae+jVZPGx52Cb/lKhdKxpXjl9eGNa1MlY57A==",V8A=`-----BEGIN PRIVATE KEY----- +${W8A} +-----END PRIVATE KEY-----`,Z8A="ES256",_q=async e=>{const A=Math.floor(Date.now()/1e3),t={iss:"torus-key-test",aud:"torus-key-test",name:e,email:e,scope:"email",iat:A,eat:A+120},i={expiresIn:120,algorithm:Z8A},r=P8A.sign(t,V8A,i),f=g7(r);return{idToken:r,parsedToken:f}};function z8A(){const[e,A]=bi.useState(void 0),[t,i]=bi.useState(void 0),[o,r]=bi.useState(null),[f,h]=bi.useState(void 0),[d,p]=bi.useState(Uo.DEVICE),[C,y]=bi.useState(""),[w,D]=bi.useState(Ir.NOT_INITIALIZED),[v,M]=bi.useState(void 0),[R,b]=bi.useState(void 0),[S,G]=bi.useState(void 0),[U,P]=bi.useState(void 0),z=bi.useMemo(()=>new _P,[]);async function oA(rA){if(he.keyType!==Ur.secp256k1){console.warn(`Ethereum requires keytype ${Ur.secp256k1}, skipping provider setup`);return}let hA=new BG({config:{chainConfig:rA||j8A}});hA.setupProvider(i0A(he)),r(hA)}const J=!0,q=bi.useRef(!1);bi.useEffect(()=>{const rA=async()=>{he.status===Ir.NOT_INITIALIZED&&(await he.init({handleRedirectResult:!1,rehydrate:J}),await kI.initWithMpcCoreKit(he),window.location.hash.includes("#state")&&await he.handleRedirectResult()),he.status===Ir.LOGGED_IN&&await oA(),he.status===Ir.REQUIRED_SHARE&&Pe("required more shares, please enter your backup/ device factor key, or reset account unrecoverable once reset, please use it with caution]"),console.log("coreKitInstance.status",he.status),D(he.status);try{let hA=z.getQuestion(he);G(hA),Pe("security question set")}catch{Pe("security question not set")}};q.current||(rA(),q.current=!0)},[]),bi.useEffect(()=>{if(o){const rA=new cl(o);h(rA)}},[o]);const X=async()=>{if(!he)throw new Error("coreKitInstance not found");Pe(he.getKeyDetails())},Q=async()=>{if(!he)throw new Error("coreKitInstance not found");const rA=he.tKey.metadata.factorPubs;if(!rA)throw new Error("factorPubs not found");const hA=rA[he.tKey.tssTag].map(OA=>OA.toSEC1(Mt,!0).toString("hex"));Pe(hA)},n=async()=>{try{if(!e)throw new Error("mockEmail not found");const{idToken:rA,parsedToken:hA}=await _q(e);await he.loginWithJWT({verifier:"torus-test-health",verifierId:hA.email,idToken:rA,prefetchTssPublicKeys:1}),he.status===Ir.LOGGED_IN&&await oA(),D(he.status)}catch(rA){console.error(rA)}},a=async()=>{try{if(!e)throw new Error("mockEmail not found");const{idToken:rA,parsedToken:hA}=await _q(e);await O8A({selectedNetwork:eX,manualSync:!0,setupProviderOnInit:!1,verifier:"torus-test-health",verifierId:hA.email,idToken:rA})}catch(rA){console.error(rA)}},g=async()=>{try{if(!he)throw new Error("initiated to login");const rA={subVerifierDetails:{typeOfLogin:"google",verifier:"w3a-google-demo",clientId:"519228911939-cri01h55lsjbsia1k7ll6qpalrus75ps.apps.googleusercontent.com"}};await he.loginWithOAuth(rA),D(he.status)}catch(rA){console.error(rA)}},I=async()=>{const rA=await he.getDeviceFactor();i(rA),Pe("Device share: ",rA)},c=async()=>{if(!he)throw new Error("coreKitInstance not found");if(!t)throw new Error("backupFactorKey not found");const rA=new xa.BN(t,"hex");await he.inputFactorKey(rA),he.status===Ir.REQUIRED_SHARE&&Pe("required more shares even after inputing backup factor key, please enter your backup/ device factor key, or reset account [unrecoverable once reset, please use it with caution]"),he.status===Ir.LOGGED_IN&&await oA(),D(he.status)},B=async()=>{if(!he)throw new Error("coreKitInstance not found");if(!v)throw new Error("backupFactorKey not found");let rA=await z.recoverFactor(he,v);i(rA),Pe("Security Question share: ",rA)},E=async()=>{if(!he)throw new Error("coreKitInstance not found");await he.logout(),Pe("Log out"),r(null),D(he.status)},u=()=>{const rA=he==null?void 0:he.getUserInfo();Pe(rA)},s=async()=>{if(!he)throw new Error("coreKitInstance is not set");Pe("export share type: ",d);const rA=SS();await he.createFactor({shareType:d,factorKey:rA.private});let hA=t4(rA.private.toString("hex")),OA=jcA(hA);Pe("Export factor key: ",rA),console.log("menmonic : ",hA),console.log("key: ",OA)},l=async()=>{if(!he)throw new Error("coreKitInstance is not set");const rA=Buffer.from(C,"hex"),hA=ht.fromSEC1(Mt,rA.toString("hex"));await he.deleteFactor(hA),Pe("factor deleted")},m=async()=>{if(!f){Pe("web3 not initialized yet");return}const rA=await f.eth.getChainId();return Pe(rA),rA},N=async(rA=0)=>{await he.setTssWalletIndex(rA),await L()},L=async()=>{if(!f){Pe("web3 not initialized yet");return}const rA=(await f.eth.getAccounts())[0];return Pe(rA),rA},O=async()=>{if(!f){Pe("web3 not initialized yet");return}const rA=(await f.eth.getAccounts())[0],hA=f.utils.fromWei(await f.eth.getBalance(rA),"ether");return Pe(hA),hA},H=async()=>{if(he.keyType==="secp256k1"){if(!f){Pe("web3 not initialized yet");return}const rA=(await f.eth.getAccounts())[0],OA=await f.eth.personal.sign("hello",rA,"");Pe(OA)}else if(he.keyType==="ed25519"){const rA=Buffer.from("hello signer!"),hA=await he.sign(rA);Pe(hA.toString("hex"))}},K=async()=>{if(he.keyType==="secp256k1"){const rA=await he.precompute_secp256k1(),hA=Buffer.from("hello signer!"),OA=await he.sign(hA,!1,rA);Pe(OA.toString("hex"))}else if(he.keyType==="ed25519"){const rA=Buffer.from("hello signer!"),hA=await he.sign(rA);Pe(hA.toString("hex"))}},Y=async()=>{if(he.keyType==="secp256k1"){const[rA,hA]=await Promise.all([he.precompute_secp256k1(),he.precompute_secp256k1()]),OA=Buffer.from("hello signer!"),x=await he.sign(OA,!1,rA),k=Buffer.from("hello signer2!"),F=await he.sign(k,!1,hA);Pe("Sig1: ",x.toString("hex"),"Sig2: ",F.toString("hex"))}else if(he.keyType==="ed25519"){const rA=Buffer.from("hello signer!"),hA=await he.sign(rA);Pe(hA.toString("hex"))}},W=async()=>{if(!o){Pe("provider not initialized yet");return}const rA={chainId:"0xaa36a7",displayName:"Ethereum Sepolia",chainNamespace:bc.EIP155,tickerName:"Ethereum Sepolia",ticker:"ETH",decimals:18,rpcTarget:"https://rpc.ankr.com/eth_sepolia",blockExplorer:"https://sepolia.etherscan.io",logo:"https://cryptologos.cc/logos/ethereum-eth-logo.png"};he.status===Ir.LOGGED_IN&&await oA(rA),Pe("Changed to Sepolia Network")},$=async()=>{if(!o){Pe("provider not initialized yet");return}const rA={chainNamespace:bc.EIP155,chainId:"0x89",rpcTarget:"https://rpc.ankr.com/polygon",displayName:"Polygon Mainnet",blockExplorer:"https://polygonscan.com",ticker:"MATIC",tickerName:"MATIC"};he.status===Ir.LOGGED_IN&&await oA(rA),Pe("Changed to Sepolia Network")},V=async()=>{if(!o){Pe("provider not initialized yet");return}console.log(o);let rA={chainId:"0xCC",chainName:"BNB",nativeCurrency:{name:"BNB",symbol:"BNB",decimals:18},rpcUrls:["https://opbnb-mainnet-rpc.bnbchain.org"],blockExplorerUrls:["https://opbnbscan.com"]};await o.sendAsync({method:"wallet_addEthereumChain",params:[rA]}),await o.sendAsync({method:"wallet_switchEthereumChain",params:[{chainId:rA.chainId}]}),Pe("Changed to BNB Network")},_=async()=>{if(!he)throw new Error("coreKitInstance is not set");await he.tKey.storageLayer.setMetadata({privKey:new xa.BN(he.state.postBoxKey,"hex"),input:{message:"KEY_NOT_FOUND"}}),Pe("reset"),r(null)},j=async()=>{if(!f){Pe("web3 not initialized yet");return}const rA=(await f.eth.getAccounts())[0],hA="0x2E464670992574A613f10F7682D5057fB507Cc21",OA=f.utils.toWei("0.0001","ether");Pe("Sending transaction...");const x=await f.eth.sendTransaction({from:rA,to:hA,value:OA});Pe(x)},sA=async(rA,hA)=>{if(!he)throw new Error("coreKitInstance is not set");await z.setSecurityQuestion({mpcCoreKit:he,question:rA,answer:hA,shareType:Uo.RECOVERY}),P(void 0),await z.getQuestion(he)&&G(rA)},iA=async(rA,hA,OA)=>{if(!he)throw new Error("coreKitInstance is not set");await z.changeSecurityQuestion({mpcCoreKit:he,newQuestion:rA,newAnswer:hA,answer:OA}),await z.getQuestion(he)&&G(S)},aA=async()=>{if(!he)throw new Error("coreKitInstance is not set");await z.deleteSecurityQuestion(he),G(void 0)},lA=async()=>{if(!he)throw new Error("coreKitInstance is not set");const rA=await he.enableMFA({}),hA=await t4(rA);Pe("MFA enabled, device factor stored in local store, deleted hashed cloud key, your backup factor key: ",hA)},nA=async()=>{if(!he)throw new Error("coreKitInstance is not set");if(!kI)throw new Error("passkeyPlugin is not set");await kI.registerPasskey()},tA=async()=>{if(!he)throw new Error("coreKitInstance is not set");if(!kI)throw new Error("passkeyPlugin is not set");await kI.authenticateWithPasskey()},xA=async()=>{if(!he)throw new Error("coreKitInstance is not set");if(!kI)throw new Error("passkeyPlugin is not set");const rA=await kI.listPasskeys();Pe(rA)},gA=async()=>{if(!he)throw new Error("coreKitInstance is not set");await he.commitChanges()},IA=Ae.jsxs(Ae.Fragment,{children:[Ae.jsx("h2",{className:"subtitle",children:"Account Details"}),Ae.jsxs("div",{className:"flex-container",children:[Ae.jsx("button",{onClick:u,className:"card",children:"Get User Info"}),Ae.jsx("button",{onClick:async()=>Pe(await he.getPubKey()),className:"card",children:"Get Public Key"}),Ae.jsx("button",{onClick:X,className:"card",children:"Key Details"}),Ae.jsx("button",{onClick:Q,className:"card",children:"List Factors"}),Ae.jsx("button",{onClick:gA,className:"card",children:"Commit Changes"})]}),Ae.jsxs("div",{className:"flex-container",children:[Ae.jsx("button",{onClick:_,className:"card",children:"[CRITICAL] Reset Account"}),Ae.jsx("button",{onClick:async()=>Pe(await he._UNSAFE_exportTssKey()),className:"card",children:"[CAUTION] Export TSS Private Key"}),Ae.jsx("button",{onClick:E,className:"card",children:"Log Out"})]}),Ae.jsx("h2",{className:"subtitle",children:"Recovery/ Key Manipulation"}),Ae.jsxs("div",{children:[Ae.jsx("h4",{children:"Enabling MFA"}),Ae.jsx("div",{className:"flex-container",children:Ae.jsx("button",{onClick:lA,className:"card",children:"Enable MFA"})}),Ae.jsx("h4",{children:"Register Passkey"}),Ae.jsxs("div",{className:"flex-container",children:[Ae.jsx("button",{onClick:nA,className:"card",children:"Register Passkey"}),Ae.jsx("button",{onClick:xA,className:"card",children:"List Passkeys"})]}),Ae.jsx("h4",{children:"Manual Factors Manipulation"}),Ae.jsxs("div",{className:"flex-container",children:[Ae.jsx("label",{children:"Share Type:"}),Ae.jsxs("select",{value:d,onChange:rA=>p(parseInt(rA.target.value)),children:[Ae.jsx("option",{value:Uo.DEVICE,children:"Device Share"}),Ae.jsx("option",{value:Uo.RECOVERY,children:"Recovery Share"})]}),Ae.jsx("button",{onClick:s,className:"card",children:"Export share"})]}),Ae.jsxs("div",{className:"flex-container",children:[Ae.jsx("label",{children:"Factor pub:"}),Ae.jsx("input",{value:C,onChange:rA=>y(rA.target.value)}),Ae.jsx("button",{onClick:l,className:"card",children:"Delete Factor"})]}),Ae.jsxs("div",{className:"flex-container",children:[Ae.jsx("input",{value:t,onChange:rA=>i(rA.target.value)}),Ae.jsx("button",{onClick:()=>c(),className:"card",children:"Input Factor Key"})]}),Ae.jsx("h4",{children:"Security Question"}),Ae.jsx("div",{children:S}),Ae.jsxs("div",{className:"flex-container",children:[Ae.jsxs("div",{className:S?" disabledDiv":"",children:[Ae.jsx("label",{children:"Set Security Question:"}),Ae.jsx("input",{value:S,placeholder:"question",onChange:rA=>P(rA.target.value)}),Ae.jsx("input",{value:v,placeholder:"answer",onChange:rA=>M(rA.target.value)}),Ae.jsx("button",{onClick:()=>sA(U,v),className:"card",children:"Create Security Question"})]}),Ae.jsxs("div",{className:S?"":" disabledDiv",children:[Ae.jsx("label",{children:"Change Security Question:"}),Ae.jsx("input",{value:U,placeholder:"newQuestion",onChange:rA=>P(rA.target.value)}),Ae.jsx("input",{value:R,placeholder:"newAnswer",onChange:rA=>b(rA.target.value)}),Ae.jsx("input",{value:v,placeholder:"oldAnswer",onChange:rA=>M(rA.target.value)}),Ae.jsx("button",{onClick:()=>iA(U,R,v),className:"card",children:"Change Security Question"})]})]}),Ae.jsx("div",{className:"flex-container",children:Ae.jsx("div",{className:S?"":"disabledDiv",children:Ae.jsx("button",{onClick:()=>aA(),className:"card",children:"Delete Security Question"})})})]}),Ae.jsx("h2",{className:"subtitle",children:"Blockchain Calls"}),Ae.jsxs("div",{className:"flex-container",children:[Ae.jsx("button",{onClick:m,className:"card",children:"Get Chain ID"}),Ae.jsx("button",{onClick:L,className:"card",children:"Get Accounts"}),Ae.jsx("button",{onClick:()=>N(1),className:"card",children:"Switch to wallet index: 1"}),Ae.jsx("button",{onClick:()=>N(2),className:"card",children:"Switch to wallet index: 2"}),Ae.jsx("button",{onClick:()=>N(0),className:"card",children:"Switch to wallet index: 0/default"}),Ae.jsx("button",{onClick:O,className:"card",children:"Get Balance"}),Ae.jsx("button",{onClick:H,className:"card",children:"Sign Message"}),Ae.jsx("button",{onClick:K,className:"card",children:"Sign Msgwith precomputed TSS"}),Ae.jsx("button",{onClick:Y,className:"card",children:"Sign Multiple MSGs with precomputed TSS"}),Ae.jsx("button",{onClick:j,className:"card",children:"Send Transaction"}),Ae.jsx("button",{onClick:W,className:"card",children:"switchChainSepolia"}),Ae.jsx("button",{onClick:$,className:"card",children:"switchChainPolygon"}),Ae.jsx("button",{onClick:V,className:"card",children:"switchChainOPBNB"})]})]}),UA=Ae.jsxs(Ae.Fragment,{children:[Ae.jsx("input",{value:e,onChange:rA=>A(rA.target.value)}),Ae.jsx("button",{onClick:()=>n(),className:"card",children:"MockLogin"}),Ae.jsx("button",{onClick:tA,className:"card",children:"Login with Passkey"}),Ae.jsx("button",{onClick:()=>g(),className:"card",children:"Login"}),Ae.jsxs("div",{className:w===Ir.REQUIRED_SHARE?"":"disabledDiv",children:[Ae.jsx("button",{onClick:()=>I(),className:"card",children:"Get Device Share"}),Ae.jsx("label",{children:"Backup/ Device factor key:"}),Ae.jsx("input",{value:t,onChange:rA=>i(rA.target.value)}),Ae.jsx("button",{onClick:()=>c(),className:"card",children:"Input Factor Key"}),Ae.jsx("button",{onClick:_,className:"card",children:"[CRITICAL] Reset Account"}),Ae.jsxs("div",{className:S?"":"disabledDiv",children:[Ae.jsx("label",{children:"Recover Using Security Answer:"}),Ae.jsx("label",{children:S}),Ae.jsx("input",{value:v,onChange:rA=>M(rA.target.value)}),Ae.jsx("button",{onClick:()=>B(),className:"card",children:"Recover Using Security Answer"})]})]}),Ae.jsx("button",{onClick:()=>a(),className:"card",children:"Timed Flow"})]});return Ae.jsxs("div",{className:"container",children:[Ae.jsxs("h1",{className:"title",children:[Ae.jsx("a",{target:"_blank",href:"https://web3auth.io/docs/guides/mpc",rel:"noreferrer",children:"Web3Auth MPC Core Kit"})," ","Redirect Flow Example"]}),Ae.jsx("div",{className:"grid",children:w===Ir.LOGGED_IN?IA:UA}),Ae.jsx("div",{id:"console",style:{whiteSpace:"pre-line"},children:Ae.jsx("p",{style:{whiteSpace:"pre-line"}})}),Ae.jsx("footer",{className:"footer",children:Ae.jsx("a",{href:"https://github.com/Web3Auth/web3auth-core-kit-examples/tree/main/tkey/tkey-mpc-beta-react-popup-example",target:"_blank",rel:"noopener noreferrer",children:"Source code"})})]})}const $8A=Ab.createRoot(document.getElementById("root"));$8A.render(Ae.jsx(NX.StrictMode,{children:Ae.jsx(z8A,{})}));export{qz as A,lxA as B,i$ as C,s6A as D,rk as E,BxA as F,CxA as G,MxA as H,cG as I,yxA as J,QxA as K,pxA as L,e6A as M,cQ as N,tn as O,of as P,KE as Q,ds as R,ok as S,sk as T,ME as U,R0 as V,uP as W,nq as Z,Re as a,Pf as b,TUA as c,Hz as d,tq as e,PUA as f,jr as g,mr as h,jUA as i,WUA as j,eq as k,JUA as l,uG as m,yf as n,wxA as o,t$ as p,Su as q,OUA as r,Bn as s,Jz as t,VUA as u,wf as v,bxA as w,va as x,dxA as y,_z as z}; diff --git a/demo/redirect-flow-example/dist/assets/index-CFiF7Nza.js b/demo/redirect-flow-example/dist/assets/index-CFiF7Nza.js new file mode 100644 index 00000000..29cebb5a --- /dev/null +++ b/demo/redirect-flow-example/dist/assets/index-CFiF7Nza.js @@ -0,0 +1 @@ +var ne=Object.defineProperty;var oe=(e,t,o)=>t in e?ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var k=(e,t,o)=>oe(e,typeof t!="symbol"?t+"":t,o);import{O as se,P as C,Q as re,R as A,U as ie,V as ce,W as ae}from"./index-Bnj_EkxG.js";function ue(e){return!!(e&&typeof e.then=="function")}Promise.resolve(!1);Promise.resolve(!0);const p=Promise.resolve();function S(e,t){return e||(e=0),new Promise(o=>setTimeout(()=>o(t),e))}function de(e,t){return Math.floor(Math.random()*(t-e+1)+e)}function _(){return Math.random().toString(36).substring(2)}let M=0;function m(){let e=Date.now()*1e3;return e<=M&&(e=M+1),M=e,e}const d=se.getLogger("broadcast-channel");d.setLevel("error");const le=m,fe="native";function me(e){const t={time:m(),messagesCallback:null,bc:new BroadcastChannel(e),subFns:[]};return t.bc.onmessage=o=>{t.messagesCallback&&t.messagesCallback(o.data)},t}function ge(e){e.bc.close(),e.subFns=[]}function pe(e,t){try{return e.bc.postMessage(t,!1),p}catch(o){return Promise.reject(o)}}function he(e,t){e.messagesCallback=t}function be(){if(typeof window>"u")return!1;if(typeof BroadcastChannel=="function"){if(BroadcastChannel._pubkey)throw new Error("BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill");return!0}else return!1}function ye(){return 150}const _e=Object.freeze(Object.defineProperty({__proto__:null,averageResponseTime:ye,canBeUsed:be,close:ge,create:me,microSeconds:le,onMessage:he,postMessage:pe,type:fe},Symbol.toStringTag,{value:"Module"}));class P{constructor(t){k(this,"ttl");k(this,"map",new Map);k(this,"_to",!1);this.ttl=t}has(t){return this.map.has(t)}add(t){this.map.set(t,U()),this._to||(this._to=!0,setTimeout(()=>{this._to=!1,we(this)},0))}clear(){this.map.clear()}}function we(e){const t=U()-e.ttl,o=e.map[Symbol.iterator]();for(;;){const n=o.next().value;if(!n)return;const s=n[0];if(n[1]"u"&&(t.webWorkerSupport=!0),t.idb||(t.idb={}),t.idb.ttl||(t.idb.ttl=1e3*45),t.idb.fallbackInterval||(t.idb.fallbackInterval=150),e.idb&&typeof e.idb.onclose=="function"&&(t.idb.onclose=e.idb.onclose),t.localstorage||(t.localstorage={}),t.localstorage.removeTimeout||(t.localstorage.removeTimeout=1e3*60),t.server||(t.server={}),t.server.url||(t.server.url="https://session.web3auth.io"),t.server.removeTimeout||(t.server.removeTimeout=1e3*60*5),e.methods&&(t.methods=e.methods),t}const ke=m,ve="pubkey.broadcast-channel-0-",l="messages",h={durability:"relaxed"},Me="idb";function E(){if(typeof indexedDB<"u")return indexedDB;if(typeof window<"u"){if(typeof window.mozIndexedDB<"u")return window.mozIndexedDB;if(typeof window.webkitIndexedDB<"u")return window.webkitIndexedDB;if(typeof window.msIndexedDB<"u")return window.msIndexedDB}return!1}function w(e){e.commit&&e.commit()}function K(e){const t=E(),o=ve+e,n=t.open(o);return n.onupgradeneeded=r=>{r.target.result.createObjectStore(l,{keyPath:"id",autoIncrement:!0})},new Promise((r,i)=>{n.onerror=c=>i(c),n.onsuccess=()=>{r(n.result)}})}function j(e,t,o){const n=Date.now(),s={uuid:t,time:n,data:o},r=e.transaction([l],"readwrite",h);return new Promise((i,c)=>{r.oncomplete=()=>i(),r.onerror=u=>c(u),r.objectStore(l).add(s),w(r)})}function Ce(e){const t=e.transaction(l,"readonly",h),o=t.objectStore(l),n=[];return new Promise(s=>{o.openCursor().onsuccess=r=>{const i=r.target.result;i?(n.push(i.value),i.continue()):(w(t),s(n))}})}function z(e,t){const o=e.transaction(l,"readonly",h),n=o.objectStore(l),s=[];let r=IDBKeyRange.bound(t+1,1/0);if(n.getAll){const c=n.getAll(r);return new Promise((a,u)=>{c.onerror=g=>u(g),c.onsuccess=function(g){a(g.target.result)}})}function i(){try{return r=IDBKeyRange.bound(t+1,1/0),n.openCursor(r)}catch{return n.openCursor()}}return new Promise((c,a)=>{const u=i();u.onerror=g=>a(g),u.onsuccess=g=>{const f=g.target.result;f?f.value.id{const r=n.delete(s);return new Promise(i=>{r.onsuccess=()=>i()})}))}function J(e,t){const o=Date.now()-t,n=e.transaction(l,"readonly",h),s=n.objectStore(l),r=[];return new Promise(i=>{s.openCursor().onsuccess=c=>{const a=c.target.result;if(a){const u=a.value;if(u.timeF(e,o.map(n=>n.id)))}function Se(e,t){return t=v(t),K(e).then(o=>{const n={closed:!1,lastCursorId:0,channelName:e,options:t,uuid:_(),eMIs:new P(t.idb.ttl*2),writeBlockPromise:p,messagesCallback:null,readQueuePromises:[],db:o,time:m()};return o.onclose=function(){n.closed=!0,t.idb.onclose&&t.idb.onclose()},W(n),n})}function W(e){e.closed||q(e).then(()=>S(e.options.idb.fallbackInterval)).then(()=>W(e))}function Pe(e,t){return!(e.uuid===t.uuid||t.eMIs.has(e.id)||e.data.time(t.filter(n=>!!n).map(n=>(n.id>e.lastCursorId&&(e.lastCursorId=n.id),n)).filter(n=>Pe(n,e)).sort((n,s)=>n.time-s.time).forEach(n=>{e.messagesCallback&&(e.eMIs.add(n.id),e.messagesCallback(n.data))}),p))}function Ee(e){e.closed=!0,e.db.close()}function Te(e,t){return e.writeBlockPromise=e.writeBlockPromise.then(()=>j(e.db,e.uuid,t)).then(()=>{de(0,10)===0&&V(e.db,e.options.idb.ttl)}),e.writeBlockPromise}function Ie(e,t,o){e.messagesCallbackTime=o,e.messagesCallback=t,q(e)}function Le(){return!!E()}function Be(e){return e.idb.fallbackInterval*2}const $e=Object.freeze(Object.defineProperty({__proto__:null,TRANSACTION_SETTINGS:h,averageResponseTime:Be,canBeUsed:Le,cleanOldMessages:V,close:Ee,commitIndexedDBTransaction:w,create:Se,createDatabase:K,getAllMessages:Ce,getIdb:E,getMessagesHigherThan:z,getOldMessages:J,microSeconds:ke,onMessage:Ie,postMessage:Te,removeMessagesById:F,type:Me,writeMessage:j},Symbol.toStringTag,{value:"Module"})),De=m,Ne="pubkey.broadcastChannel-",xe="localstorage";function T(){let e;if(typeof window>"u")return null;try{e=window.localStorage,e=window["ie8-eventlistener/storage"]||window.localStorage}catch{}return e}function I(e){return Ne+e}function Oe(e,t){return new Promise(o=>{S().then(()=>{const n=I(e.channelName),s={token:_(),time:Date.now(),data:t,uuid:e.uuid},r=JSON.stringify(s);T().setItem(n,r);const i=document.createEvent("Event");i.initEvent("storage",!0,!0),i.key=n,i.newValue=r,window.dispatchEvent(i),o()})})}function H(e,t){const o=I(e),n=s=>{s.key===o&&t(JSON.parse(s.newValue))};return window.addEventListener("storage",n),n}function X(e){window.removeEventListener("storage",e)}function Re(e,t){if(t=v(t),!Y())throw new Error("BroadcastChannel: localstorage cannot be used");const o=_(),n=new P(t.localstorage.removeTimeout),s={channelName:e,uuid:o,time:m(),eMIs:n};return s.listener=H(e,r=>{s.messagesCallback&&r.uuid!==o&&(!r.token||n.has(r.token)||r.data.time&&r.data.time{S().then(async()=>{const s=L(e.channelName),r=C(Buffer.from(s,"utf8")),i=await re(r.toString("hex"),{token:_(),time:Date.now(),data:t,uuid:e.uuid}),c={sameOriginCheck:!0,sameIpCheck:!0,key:A(r).toString("hex"),data:i,signature:(await ie(r,C(Buffer.from(i,"utf8")))).toString("hex")};return e.timeout&&(c.timeout=e.timeout),fetch(e.serverUrl+"/channel/set",{method:"POST",body:JSON.stringify(c),headers:{"Content-Type":"application/json; charset=utf-8"}}).then(o).catch(n)})})}function Q(e){if(b)return b;const t=ce(e,{transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:10});return t.on("connect_error",o=>{t.io.opts.transports=["polling","websocket"],d.error("connect error",o)}),t.on("connect",async()=>{const{engine:o}=t.io;d.debug("initially connected to",o.transport.name),o.once("upgrade",()=>{d.debug("upgraded",o.transport.name)}),o.once("close",n=>{d.debug("connection closed",n)})}),t.on("error",o=>{d.error("socket errored",o),t.disconnect()}),b=t,t}function G(e,t,o){const n=Q(e),s=L(t.channelName),r=C(Buffer.from(s,"utf8")),i=A(r).toString("hex");n.connected?n.emit("check_auth_status",i,{sameOriginCheck:!0,sameIpCheck:!0}):n.once("connect",()=>{d.debug("connected with socket"),n.emit("check_auth_status",i,{sameOriginCheck:!0,sameIpCheck:!0})});const c=()=>{n.once("connect",async()=>{y.has(t.channelName)&&n.emit("check_auth_status",i,{sameOriginCheck:!0,sameIpCheck:!0})})},a=()=>{if(!n||!y.has(t.channelName)){document.removeEventListener("visibilitychange",a);return}!n.connected&&document.visibilityState==="visible"&&c()},u=async g=>{try{const f=await ae(r.toString("hex"),g);d.info(f),o(f)}catch(f){d.error(f)}};return n.on("disconnect",()=>{d.debug("socket disconnected"),y.has(t.channelName)&&(d.error("socket disconnected unexpectedly, reconnecting socket"),c())}),n.on(`${i}_success`,u),typeof document<"u"&&document.addEventListener("visibilitychange",a),n}function We(){b&&b.disconnect()}function qe(e,t){t=v(t);const o=_(),n=new P(t.server.removeTimeout),s={channelName:e,uuid:o,eMIs:n,serverUrl:t.server.url,time:m()};return t.server.timeout&&(s.timeout=t.server.timeout),G(t.server.url,s,r=>{s.messagesCallback&&r.uuid!==s.uuid&&(!r.token||s.eMIs.has(r.token)||(s.eMIs.add(r.token),s.messagesCallback(r.data)))}),y.add(e),s}function He(e){y.delete(e.channelName)}function Xe(e,t,o){e.messagesCallbackTime=o,e.messagesCallback=t}function Ye(){return!0}function Qe(){return 500}const Ge=Object.freeze(Object.defineProperty({__proto__:null,averageResponseTime:Qe,canBeUsed:Ye,close:He,create:qe,getSocketInstance:Q,microSeconds:ze,onMessage:Xe,postMessage:Ve,removeStorageEventListener:We,setupSocketConnection:G,storageKey:L,type:Je},Symbol.toStringTag,{value:"Module"})),Ze=m,et="simulate",B=new Set,$=5;function tt(e){const t={time:m(),name:e,messagesCallback:null};return B.add(t),t}function nt(e){B.delete(e)}function ot(e,t){return new Promise(o=>setTimeout(()=>{Array.from(B).forEach(s=>{s.name===e.name&&s!==e&&s.messagesCallback&&s.times.type===e.type);if(n)return n;throw new Error("method-type "+e.type+" not found")}e.webWorkerSupport||(t=t.filter(n=>n.type!=="idb"));const o=t.find(n=>n.canBeUsed(e));if(o)return o;throw new Error(`No useable method found in ${JSON.stringify(D.map(n=>n.type))}`)}const Z=new Set;let ut=0;const ee=function(e,t){this.id=ut++,Z.add(this),this.name=e,N&&(t=N),this.options=v(t),this.method=at(this.options),this._iL=!1,this._onML=null,this._addEL={message:[],internal:[]},this._uMP=new Set,this._befC=[],this._prepP=null,dt(this)};ee._pubkey=!0;let N;ee.prototype={postMessage(e){if(this.closed)throw new Error("BroadcastChannel.postMessage(): Cannot post message after channel has closed "+JSON.stringify(e));return x(this,"message",e)},postInternal(e){return x(this,"internal",e)},set onmessage(e){const o={time:this.method.microSeconds(),fn:e};R(this,"message",this._onML),e&&typeof e=="function"?(this._onML=o,O(this,"message",o)):this._onML=null},addEventListener(e,t){const n={time:this.method.microSeconds(),fn:t};O(this,e,n)},removeEventListener(e,t){const o=this._addEL[e].find(n=>n.fn===t);R(this,e,o)},close(){if(this.closed)return;Z.delete(this),this.closed=!0;const e=this._prepP?this._prepP:p;return this._onML=null,this._addEL.message=[],e.then(()=>Promise.all(Array.from(this._uMP))).then(()=>Promise.all(this._befC.map(t=>t()))).then(()=>this.method.close(this._state))},get type(){return this.method.type},get isClosed(){return this.closed}};function x(e,t,o){const s={time:e.method.microSeconds(),type:t,data:o};return(e._prepP?e._prepP:p).then(()=>{const i=e.method.postMessage(e._state,s);return e._uMP.add(i),i.catch().then(()=>e._uMP.delete(i)),i})}function dt(e){const t=e.method.create(e.name,e.options);ue(t)?(e._prepP=t,t.then(o=>{e._state=o})):e._state=t}function te(e){return e._addEL.message.length>0||e._addEL.internal.length>0}function O(e,t,o){e._addEL[t].push(o),lt(e)}function R(e,t,o){e._addEL[t]=e._addEL[t].filter(n=>n!==o),ft(e)}function lt(e){if(!e._iL&&te(e)){const t=n=>{e._addEL[n.type].forEach(s=>{(n.time>=s.time||e.method.type==="server")&&s.fn(n.data)})},o=e.method.microSeconds();e._prepP?e._prepP.then(()=>{e._iL=!0,e.method.onMessage(e._state,t,o)}):(e._iL=!0,e.method.onMessage(e._state,t,o))}}function ft(e){if(e._iL&&!te(e)){e._iL=!1;const t=e.method.microSeconds();e.method.onMessage(e._state,null,t)}}export{ee as BroadcastChannel,$e as IndexedDbMethod,je as LocalstorageMethod,_e as NativeMethod,Z as OPEN_BROADCAST_CHANNELS,Ge as ServerMethod,at as chooseMethod}; diff --git a/demo/redirect-flow-example/dist/assets/index-CLR7ePzE.css b/demo/redirect-flow-example/dist/assets/index-CLR7ePzE.css new file mode 100644 index 00000000..05bb34c6 --- /dev/null +++ b/demo/redirect-flow-example/dist/assets/index-CLR7ePzE.css @@ -0,0 +1 @@ +body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{width:60%;margin:auto;padding:0 2rem}.main{min-height:100vh;padding:4rem 0;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center}.title{line-height:1.15;font-size:3rem;text-align:center;margin:50px}.subtitle{line-height:1.15;font-size:1.5rem;text-align:center;margin:10px}.title a{color:#0070f3;text-decoration:none}.grid{display:flex;align-items:center;flex-direction:column}.card{margin:.5rem;padding:.7rem;text-align:center;color:#0070f3;background-color:#fafafa;text-decoration:none;border:1px solid #0070f3;border-radius:10px;transition:color .15s ease,border-color .15s ease;width:100%}.card:hover,.card:focus,.card:active{cursor:pointer;background-color:#f1f1f1}.footer{display:flex;flex:1;padding:2rem 0;border-top:1px solid #eaeaea;justify-content:center;align-items:center;margin-top:10rem}.footer a{display:flex;justify-content:center;align-items:center;flex-grow:1}.logo{height:1.5rem;margin-left:.5rem}@media (max-width: 1200px){.container{width:100%}}.flex-container{display:flex;flex-flow:row wrap;justify-content:center;align-items:center}.flex-container .card{width:fit-content}.flex-container-top{display:flex;flex-flow:row wrap;justify-content:space-around;align-items:top}#console{width:100%;height:100%;overflow:auto;word-wrap:break-word;font-size:16px;font-family:monospace}.disabledDiv{pointer-events:none;opacity:.4}.flex-column{display:flex;flex-direction:column} diff --git a/demo/redirect-flow-example/dist/favicon.ico b/demo/redirect-flow-example/dist/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/demo/redirect-flow-example/dist/index.html b/demo/redirect-flow-example/dist/index.html new file mode 100644 index 00000000..046f1a23 --- /dev/null +++ b/demo/redirect-flow-example/dist/index.html @@ -0,0 +1,46 @@ + + + + + + + + + + + + + React App + + + + + +
+ + + + \ No newline at end of file diff --git a/demo/redirect-flow-example/dist/logo192.png b/demo/redirect-flow-example/dist/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/demo/redirect-flow-example/dist/manifest.json b/demo/redirect-flow-example/dist/manifest.json new file mode 100644 index 00000000..080d6c77 --- /dev/null +++ b/demo/redirect-flow-example/dist/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/demo/redirect-flow-example/dist/robots.txt b/demo/redirect-flow-example/dist/robots.txt new file mode 100644 index 00000000..e9e57dc4 --- /dev/null +++ b/demo/redirect-flow-example/dist/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index b3fab0a5..e4263419 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -18,7 +18,7 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "file:../../web3auth-mpc-core-kit-3.2.6.tgz", + "@web3auth/mpc-core-kit": "file:../../", "@web3auth/mpc-passkey-plugin": "file:../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin/", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", @@ -53,6 +53,80 @@ "url": "^0.11.4" } }, + "../..": { + "name": "@web3auth/mpc-core-kit", + "version": "3.2.6", + "license": "ISC", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@tkey/core": "^15.1.0", + "@tkey/share-serialization": "^15.1.0", + "@tkey/storage-layer-torus": "^15.1.0", + "@tkey/tss": "^15.1.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/customauth": "^20.3.0", + "@toruslabs/elliptic-wrapper": "^0.1.0", + "@toruslabs/fetch-node-details": "^14.0.1", + "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "@toruslabs/openlogin-utils": "^8.2.1", + "@toruslabs/session-manager": "^3.1.0", + "@toruslabs/torus.js": "file:../torus.js", + "@toruslabs/tss-client": "^3.1.0", + "@toruslabs/tss-frost-client": "0.3.1", + "@toruslabs/tss-frost-common": "^1.0.1", + "bn.js": "^5.2.1", + "bowser": "^2.11.0", + "elliptic": "^6.5.7", + "loglevel": "^1.9.2" + }, + "devDependencies": { + "@babel/register": "^7.25.7", + "@toruslabs/config": "^2.2.0", + "@toruslabs/eslint-config-typescript": "^3.3.3", + "@toruslabs/torus-scripts": "^6.1.2", + "@toruslabs/tss-dkls-lib": "^4.0.0", + "@toruslabs/tss-frost-lib": "^1.0.0", + "@types/chai": "^4.3.16", + "@types/elliptic": "^6.4.18", + "@types/jsonwebtoken": "^9.0.7", + "@types/node": "^20.14.0", + "@typescript-eslint/eslint-plugin": "^6.7.0", + "chai": "^5.1.1", + "cross-env": "^7.0.3", + "dotenv": "^16.4.5", + "esbuild-register": "^3.6.0", + "eslint": "^8.56.0", + "husky": "^9.1.6", + "jsonwebtoken": "^9.0.2", + "lint-staged": "^15.2.10", + "mocha": "^10.7.3", + "node-fetch": "^3.3.2", + "prettier": "^3.3.3", + "rimraf": "^6.0.1", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "tsconfig-paths-webpack-plugin": "^4.1.0", + "tslib": "^2.7.0", + "typescript": "^5.6.3" + }, + "engines": { + "node": ">=20.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x", + "@toruslabs/tss-dkls-lib": "^4.0.0", + "@toruslabs/tss-frost-lib": "^1.0.0" + }, + "peerDependenciesMeta": { + "@toruslabs/tss-dkls-lib": { + "optional": true + }, + "@toruslabs/tss-frost-lib": { + "optional": true + } + } + }, "../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin": { "name": "@web3auth/mpc-passkey-plugin", "version": "0.0.0", @@ -64,9 +138,9 @@ "@toruslabs/fetch-node-details": "^14.0.1", "@toruslabs/http-helpers": "^7.0.0", "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.2.tgz", + "@toruslabs/torus.js": "file:../../../torus.js", "@web3auth/auth": "^9.4.1", - "@web3auth/mpc-core-kit": "file:./web3auth-mpc-core-kit-3.2.7.tgz", + "@web3auth/mpc-core-kit": "file:../../../mpc-core-kit", "base64url": "^3.0.1", "cbor-x": "^1.6.0", "loglevel": "^1.9.2" @@ -76,9 +150,6 @@ "npm": ">=9.x" } }, - "../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin/dist": { - "extraneous": true - }, "node_modules/@adraffy/ens-normalize": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", @@ -99,12 +170,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", - "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -112,30 +184,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz", - "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", - "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helpers": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/template": "^7.25.7", - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -151,12 +223,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", - "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -166,13 +239,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", - "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.7", - "@babel/helper-validator-option": "^7.25.7", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -182,28 +255,27 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", - "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", - "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.7", - "@babel/helper-simple-access": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -213,89 +285,61 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", - "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", - "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", - "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", - "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", - "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", - "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", - "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", - "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.7" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -305,12 +349,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.7.tgz", - "integrity": "sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -320,12 +364,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.7.tgz", - "integrity": "sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -335,9 +379,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", - "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -347,30 +391,30 @@ } }, "node_modules/@babel/template": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", - "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", - "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -379,14 +423,13 @@ } }, "node_modules/@babel/types": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", - "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -399,9 +442,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", "cpu": [ "ppc64" ], @@ -412,13 +455,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", "cpu": [ "arm" ], @@ -429,13 +472,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", "cpu": [ "arm64" ], @@ -446,13 +489,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", "cpu": [ "x64" ], @@ -463,13 +506,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", "cpu": [ "arm64" ], @@ -480,13 +523,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", "cpu": [ "x64" ], @@ -497,13 +540,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", "cpu": [ "arm64" ], @@ -514,13 +557,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", "cpu": [ "x64" ], @@ -531,13 +574,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", "cpu": [ "arm" ], @@ -548,13 +591,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", "cpu": [ "arm64" ], @@ -565,13 +608,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", "cpu": [ "ia32" ], @@ -582,13 +625,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", "cpu": [ "loong64" ], @@ -599,13 +642,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", "cpu": [ "mips64el" ], @@ -616,13 +659,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", "cpu": [ "ppc64" ], @@ -633,13 +676,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", "cpu": [ "riscv64" ], @@ -650,13 +693,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", "cpu": [ "s390x" ], @@ -667,13 +710,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", "cpu": [ "x64" ], @@ -684,13 +727,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", "cpu": [ "x64" ], @@ -701,13 +744,30 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", "cpu": [ "x64" ], @@ -718,13 +778,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", "cpu": [ "x64" ], @@ -735,13 +795,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", "cpu": [ "arm64" ], @@ -752,13 +812,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", "cpu": [ "ia32" ], @@ -769,13 +829,13 @@ ], "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", "cpu": [ "x64" ], @@ -786,132 +846,7 @@ ], "peer": true, "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT", - "peer": true - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18" } }, "node_modules/@ethereumjs/rlp": { @@ -939,68 +874,6 @@ "node": ">=18" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "license": "BSD-3-Clause", - "peer": true - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -1060,62 +933,16 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@microsoft/tsdoc": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", - "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", - "license": "MIT" - }, - "node_modules/@microsoft/tsdoc-config": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", - "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", - "license": "MIT", - "dependencies": { - "@microsoft/tsdoc": "0.15.0", - "ajv": "~8.12.0", - "jju": "~1.4.0", - "resolve": "~1.22.2" - } - }, - "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "@noble/hashes": "1.4.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@noble/ciphers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.0.0.tgz", - "integrity": "sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.4.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://paulmillr.com/funding/" } }, "node_modules/@noble/curves/node_modules/@noble/hashes": { @@ -1131,9 +958,9 @@ } }, "node_modules/@noble/hashes": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", - "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz", + "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==", "license": "MIT", "engines": { "node": "^14.21.3 || >=16" @@ -1146,6 +973,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -1159,6 +987,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -1168,6 +997,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -1178,9 +1008,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.8.4.tgz", - "integrity": "sha512-XcRBNe0ws7KB0PMcUlpQqzzjjxMP8VdqirBz7CfB2XQ8xKmP3370p0cDvqs/4oKDHK4PCkmvVFX60tzakutylA==", + "version": "20.1.3", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.1.3.tgz", + "integrity": "sha512-RKNm7RnTgCSl2HstDb/qMKO9r8o81EUe+UZB5fgjNR89PB757iHUX30kM0xbkiRZui1vIkMAvWcNsidxBnGGfg==", "cpu": [ "x64" ], @@ -1193,22 +1023,10 @@ "node": ">= 10" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.4.tgz", + "integrity": "sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==", "cpu": [ "arm" ], @@ -1220,9 +1038,9 @@ "peer": true }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.4.tgz", + "integrity": "sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==", "cpu": [ "arm64" ], @@ -1234,9 +1052,9 @@ "peer": true }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.4.tgz", + "integrity": "sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==", "cpu": [ "arm64" ], @@ -1248,9 +1066,9 @@ "peer": true }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.4.tgz", + "integrity": "sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==", "cpu": [ "x64" ], @@ -1261,10 +1079,38 @@ ], "peer": true }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.4.tgz", + "integrity": "sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.4.tgz", + "integrity": "sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.4.tgz", + "integrity": "sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==", "cpu": [ "arm" ], @@ -1276,9 +1122,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.4.tgz", + "integrity": "sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==", "cpu": [ "arm" ], @@ -1290,9 +1136,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.4.tgz", + "integrity": "sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==", "cpu": [ "arm64" ], @@ -1304,9 +1150,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.4.tgz", + "integrity": "sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==", "cpu": [ "arm64" ], @@ -1318,9 +1164,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.4.tgz", + "integrity": "sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==", "cpu": [ "ppc64" ], @@ -1332,9 +1178,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.4.tgz", + "integrity": "sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==", "cpu": [ "riscv64" ], @@ -1346,9 +1192,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.4.tgz", + "integrity": "sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==", "cpu": [ "s390x" ], @@ -1360,9 +1206,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.4.tgz", + "integrity": "sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==", "cpu": [ "x64" ], @@ -1373,9 +1219,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.4.tgz", + "integrity": "sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==", "cpu": [ "x64" ], @@ -1387,9 +1233,9 @@ "peer": true }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.4.tgz", + "integrity": "sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==", "cpu": [ "arm64" ], @@ -1401,9 +1247,9 @@ "peer": true }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.4.tgz", + "integrity": "sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==", "cpu": [ "ia32" ], @@ -1415,9 +1261,9 @@ "peer": true }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.4.tgz", + "integrity": "sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==", "cpu": [ "x64" ], @@ -1428,18 +1274,6 @@ ], "peer": true }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "license": "MIT" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", - "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", - "license": "MIT" - }, "node_modules/@scure/base": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", @@ -1540,134 +1374,16 @@ "@babel/runtime": "7.x" } }, - "node_modules/@tkey/core": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/core/-/core-15.1.0.tgz", - "integrity": "sha512-JaFprczHR8fBEw1LrwKs87ASgpZagxQ9VZ6lAfAAI8jEh1yhz8djh9l2wzJbaFuLEOQskh7GoxpKfgB+YtBSmw==", - "license": "MIT", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "@toruslabs/eccrypto": "^5.0.4", - "@toruslabs/http-helpers": "^7.0.0", - "@toruslabs/torus.js": "^15.1.0", - "bn.js": "^5.2.1", - "elliptic": "^6.5.5", - "ethereum-cryptography": "^2.1.3", - "json-stable-stringify": "^1.1.1" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@tkey/service-provider-base": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/service-provider-base/-/service-provider-base-15.1.0.tgz", - "integrity": "sha512-MruUxiWwyRczZ8KlhhGJ2TQ/p+VFPMOQZ089B5SIi7UsTOBMlzRqJWP3lM2fBSyQsfJCzpzXkj9a29ecpRZe0g==", - "license": "MIT", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "bn.js": "^5.2.1", - "elliptic": "^6.5.5" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@tkey/service-provider-torus": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/service-provider-torus/-/service-provider-torus-15.1.0.tgz", - "integrity": "sha512-7tA/1ALPo4ToXvwTwMj9OF0wh97S3p1sCeilwRcfyxBMJGpaDW8MSbiAbPqaSkK/DT3AFxlkHwAXWYYZ4+ZueQ==", - "license": "MIT", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "@tkey/service-provider-base": "^15.1.0", - "@toruslabs/customauth": "^20.3.0", - "@toruslabs/torus.js": "^15.1.0", - "bn.js": "^5.2.1", - "elliptic": "^6.5.5" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@tkey/share-serialization": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/share-serialization/-/share-serialization-15.1.0.tgz", - "integrity": "sha512-n8jf6WDAWcWKFUr/nSnBURxX8vlXCQjJOfQUchiqvvUFlExeDqXqJq8I5icn2hjxKqANNcXVf1vKSvOCxPCAng==", - "license": "MIT", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "bn.js": "^5.2.1", - "ethereum-cryptography": "^2.2.1" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@tkey/storage-layer-torus": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/storage-layer-torus/-/storage-layer-torus-15.1.0.tgz", - "integrity": "sha512-ZRk1FclOEomd7KAE3evKc/4Nk9I//RW20Bq2UrSPyKGf5YeTbDTaglAK0GrcG5CPtCpVLqh348Bw6hvGzjArag==", - "license": "MIT", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "@toruslabs/http-helpers": "^7.0.0", - "base64url": "3.0.1", - "bn.js": "^5.2.1", - "ethereum-cryptography": "^2.2.1", - "json-stable-stringify": "^1.1.1" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@tkey/tss": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/tss/-/tss-15.1.0.tgz", - "integrity": "sha512-UcbJbWscIL83Zh1/i6M+X/xhN4EOimGV8JoWZ3D23Ji2pHPo8BgveUZA9i1DK4Y3YqqZ9aS8PvhSHt+KVnNluw==", - "license": "ISC", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "@tkey/core": "^15.1.0", - "@tkey/service-provider-torus": "^15.1.0", - "@toruslabs/customauth": "^20.3.0", - "@toruslabs/rss-client": "^2.0.1", - "@toruslabs/torus.js": "^15.1.0", - "@types/bn.js": "^5.1.5", - "bn.js": "^5.2.1", - "elliptic": "^6.5.5", - "ethereum-cryptography": "^2.1.3" - } - }, "node_modules/@toruslabs/base-controllers": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-6.2.4.tgz", - "integrity": "sha512-VRki0iYnSL3Chy2W/mwk2dc3tiLuSR5a/dwaapCNn3SgMGIEgnJMwq1wNQO1l5eaHgl3eN7b/IL8Y2DfqHnW4g==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-6.3.1.tgz", + "integrity": "sha512-7kqaoXL32xJnrGEb8Rd5V/WLjTovzKjRMg/Tw3NFYz5lxVLVf+ydK83hgAWp7fYRRjnUyZZ5aHyIbagTkj1NVQ==", + "license": "ISC", "dependencies": { "@ethereumjs/util": "^9.1.0", "@toruslabs/broadcast-channel": "^11.0.0", "@toruslabs/http-helpers": "^7.0.0", - "@web3auth/auth": "^9.3.3", + "@web3auth/auth": "^9.5.2", "async-mutex": "^0.5.0", "bignumber.js": "^9.1.2", "bowser": "^2.11.0", @@ -1714,23 +1430,10 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/config": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@toruslabs/config/-/config-2.2.0.tgz", - "integrity": "sha512-gH69an6qIVEP9W/YkPmroBrqoPfIf8aoBSGC6ZAcc4ihXDeyByXtdpThZ+wm9TSWMYsjewhZVstRAZeaE3zp9w==", - "license": "MIT", - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "^7.16" - } - }, "node_modules/@toruslabs/constants": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.0.0.tgz", - "integrity": "sha512-c0lrqxxiR0FL+XdtbX+77PWTeB8izFUrnPwkF2pjjfXlMJLukAWPLhALpmZmqlGmJApT8kJbMN7be2LurAGa1g==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.2.0.tgz", + "integrity": "sha512-Mb5EfYNSPyvvw5s1JXnpZwritCgp4NmLni1imTqrSKGV3yikYhUn1ufyLMAHGnBBgv4AuMIXBIe3EpJJ+SpA0g==", "license": "MIT", "engines": { "node": ">=18.x", @@ -1741,9 +1444,9 @@ } }, "node_modules/@toruslabs/customauth": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-20.3.0.tgz", - "integrity": "sha512-PxRd71s8WYvkp6Mpph8aUiU/vfq46adJOt+a/22JCRMOUMgiS1TzVAs8Eks5dpOS+FGjdowFLaJg+/UcBBoLrA==", + "version": "20.3.1", + "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-20.3.1.tgz", + "integrity": "sha512-oqzJh0WFf4rSwnXshEfh8c1ZqPhVjEvGuzI6LIUlot1OSrNituPLHWhzNW3OYw29+69jgolDBcOuSCN/Tq//Sw==", "license": "MIT", "dependencies": { "@chaitanyapotti/register-service-worker": "^1.7.4", @@ -1754,11 +1457,11 @@ "@toruslabs/http-helpers": "^7.0.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "^15.1.0", + "@toruslabs/torus.js": "^15.1.1", "base64url": "^3.0.1", "bowser": "^2.11.0", "deepmerge": "^4.3.1", - "eventemitter3": "^5.0.1", + "events": "^3.3.0", "loglevel": "^1.9.2" }, "engines": { @@ -1788,59 +1491,16 @@ "npm": ">=9.x" } }, - "node_modules/@toruslabs/elliptic-wrapper": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.1.tgz", - "integrity": "sha512-2IehQMK+OfRnJPcwNuM5b+je3+8XlPqjbQVPm85vjsSoliWO23G/2OK1635melTZYcjbxa+88l2m0wWuK/YTSg==", - "license": "ISC", - "dependencies": { - "@toruslabs/config": "^2.0.2", - "@toruslabs/eslint-config-typescript": "^3.0.3", - "bn.js": "^5.2.1", - "elliptic": "^6.5.4" - } - }, - "node_modules/@toruslabs/eslint-config-typescript": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@toruslabs/eslint-config-typescript/-/eslint-config-typescript-3.3.4.tgz", - "integrity": "sha512-i1nowtYX9Yq+mCYrPj3vY/yoIKouJT7j+wqhrFoBF6el/3rDYQgz09cwdWlh7B+BGYeuJ+Nf9RSuC1bPc0egvg==", - "license": "MIT", - "dependencies": { - "@rushstack/eslint-patch": "^1.10.4", - "@typescript-eslint/eslint-plugin": "^7.18.0", - "@typescript-eslint/parser": "^7.18.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-airbnb-typescript": "^18.0.0", - "eslint-config-prettier": "^9.1.0", - "eslint-config-problems": "^8.0.0", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-mocha": "^10.5.0", - "eslint-plugin-n": "^17.11.1", - "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-promise": "^7.1.0", - "eslint-plugin-simple-import-sort": "^12.1.1", - "eslint-plugin-tsdoc": "^0.3.0" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "eslint": "^8.x", - "prettier": "^3.x", - "typescript": "^5.x" - } - }, "node_modules/@toruslabs/fetch-node-details": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.0.1.tgz", - "integrity": "sha512-cV/X8d97W9kU/ibycV/4rfkDSjl+MIgwbKhsVqvgDtoE1mdjMSeCxJTfEDgjxqzUcVlHjcbeUpzCe8qa/Gvs6A==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.2.0.tgz", + "integrity": "sha512-k14RazfY4wKIUtdpfrSoUJasRNp2EMgv6ky4bGT1HYMPGU2JUNhvb6XTw5ISxfMrZuk04dLOhC4/XOtynFeFmQ==", "license": "MIT", "dependencies": { - "@toruslabs/constants": "^14.0.0", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/fnd-base": "^14.2.0", "@toruslabs/http-helpers": "^7.0.0", - "loglevel": "^1.9.1" + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", @@ -1861,12 +1521,12 @@ } }, "node_modules/@toruslabs/fnd-base": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.0.0.tgz", - "integrity": "sha512-zaYrm/HHHU4Evj/Et1HrVT8hmMaUpVw3Rcx2Gvp1W5pWZybbdEVoa0uqIANYxcr/NH7PUIU3DoRbk+bXx0kkYg==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.2.0.tgz", + "integrity": "sha512-nqfcigOuz3pQJi+Q+tdCaDUVCaSUkGqqmw0bGnaKK2/PyXBlZhnEDzReM3aUbApJn3xitfrJEhnRvOJhzog/og==", "license": "MIT", "dependencies": { - "@toruslabs/constants": "^14.0.0" + "@toruslabs/constants": "^14.2.0" }, "engines": { "node": ">=18.x", @@ -1919,48 +1579,18 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/openlogin-utils": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@toruslabs/openlogin-utils/-/openlogin-utils-8.2.1.tgz", - "integrity": "sha512-NSOtj61NZe7w9qbd92cYwMlE/1UwPGtDH02NfUjoEEc3p1yD5U2cLZjdSwsnAgjGNgRqVomXpND4hii12lI/ew==", - "license": "ISC", - "dependencies": { - "@toruslabs/constants": "^13.2.0", - "base64url": "^3.0.1", - "color": "^4.2.3" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@toruslabs/openlogin-utils/node_modules/@toruslabs/constants": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-13.4.0.tgz", - "integrity": "sha512-CjmnMQ5Oj0bqSBGkhv7Xm3LciGJDHwe4AJ1LF6mijlP+QcCnUM5I6kVp60j7zZ/r0DT7nIEiuHHHczGpCZor0A==", - "license": "MIT", - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@toruslabs/rss-client": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@toruslabs/rss-client/-/rss-client-2.0.2.tgz", - "integrity": "sha512-kmtl7KaxTOdrftxtv/hTzz6k2RJbVFq6oPs5Vg4u4iybdQYdRzyP1HqQ3wMu9ADhiItbZAg80VP4gOCCmjao4w==", + "node_modules/@toruslabs/secure-pub-sub": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/secure-pub-sub/-/secure-pub-sub-1.1.0.tgz", + "integrity": "sha512-OFN0Zsa37+c9aStHd4wzau+IYPY+gve9fBPDuPSIuS06cz/bov39DvCP0LaTQUKxK4eQMZENcPu6PeyBvQYQQA==", "license": "MIT", "dependencies": { - "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/constants": "^14.1.1", + "@toruslabs/eccrypto": "^5.0.0", "@toruslabs/http-helpers": "^7.0.0", - "bn.js": "^5.2.1", - "elliptic": "^6.5.7", - "loglevel": "^1.9.2" + "@toruslabs/metadata-helpers": "^6.0.0", + "loglevel": "^1.9.1", + "socket.io-client": "^4.7.5" }, "engines": { "node": ">=18.x", @@ -1971,11 +1601,12 @@ } }, "node_modules/@toruslabs/session-manager": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.1.0.tgz", - "integrity": "sha512-VTaYjTTGTqpUm14YWRsSmY0Tt5z7evC0aOdVW7Ahw/jzyb1witNL4Va2+7XzunziEkLJS3luH+LkziHx67jyQg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.2.0.tgz", + "integrity": "sha512-t+EGFZhn8pxZ5Gjhxr99qNmK20zZD/RYEMRROBuwsETyy/QU17H6dKhqIb306GjmwUPkz2VKKTtJcOg9Ifijuw==", "license": "MIT", "dependencies": { + "@toruslabs/constants": "^14.1.1", "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "@toruslabs/metadata-helpers": "^6.0.0" @@ -1985,21 +1616,21 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.22.4" + "@rollup/rollup-linux-x64-gnu": "^4.24.4" } }, "node_modules/@toruslabs/starkware-crypto": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/starkware-crypto/-/starkware-crypto-4.0.0.tgz", - "integrity": "sha512-oEvcwEulCkLbOfRq3Rz3wS1DgSYV5oCh4N4YNWYDQhz1WoQe3S87hJlVUPvRQHHqhp9vBM0qDUVi0Ez7ibYhMA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/starkware-crypto/-/starkware-crypto-4.0.1.tgz", + "integrity": "sha512-AhnXUscFN2+oLeQuOEbi8vvrQnxUKnE0USWpg7eFHmqUBV8kg6+PAFiWsvJ01+GMQPTMKhKZHyMysxW5AFHc6Q==", "license": "MIT", "dependencies": { "assert": "^2.1.0", "bip39": "^3.1.0", "bn.js": "^5.2.1", - "elliptic": "~6.5.5", + "elliptic": "^6.6.1", "enc-utils": "^3.0.0", - "ethereum-cryptography": "^2.2.0", + "ethereum-cryptography": "^2.2.1", "hash.js": "^1.1.7" }, "engines": { @@ -2012,8 +1643,8 @@ }, "node_modules/@toruslabs/torus.js": { "version": "15.1.1", - "resolved": "file:../../toruslabs-torus.js-15.1.2.tgz", - "integrity": "sha512-McZ4UAZM8ljtNUOg77aDZp4ufftJT5t0cc6RSwXtytLmhn8j2oL9iaTDrvD4AzwF1ASaQFPm1UNtjLXyLl0gcA==", + "resolved": "file:toruslabs-torus.js-15.1.3.tgz", + "integrity": "sha512-c4MGlbutISBA8IZd9tMuC5+WqnMv12oPpGvf/yxrR1u/YSnZLdd9obobBLgeyVQtlfM6H7GcvJoa8xFzK52ITQ==", "license": "MIT", "dependencies": { "@toruslabs/bs58": "^1.0.0", @@ -2034,131 +1665,33 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/tss-client": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-client/-/tss-client-3.2.0.tgz", - "integrity": "sha512-hDJdKOUFN7UhvojoDIiVT1rsLcGjU5SdTJFcJlrKpVZxmB+NuMWkjJvZK/SoYY6mFTnyod7/NYTCsyfrIOagvg==", - "license": "ISC", - "dependencies": { - "@toruslabs/eccrypto": "^5.0.4", - "bn.js": "^5.2.1", - "elliptic": "^6.5.7", - "ethereum-cryptography": "^3.0.0", - "socket.io-client": "^4.8.0" - } + "node_modules/@toruslabs/tss-dkls-lib": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-4.1.0.tgz", + "integrity": "sha512-Iirs3uNigaYFSek/AqwSzsQovRzJaLVnmoGU5wC3/gpMTU9ZM4hLIconztRlSgfFmqcvxZWj+0JX1DnXyMmdXw==" }, - "node_modules/@toruslabs/tss-client-util": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-client-util/-/tss-client-util-0.1.1.tgz", - "integrity": "sha512-ePhhn8DuYI0E07Aec7tGc6XbdbizytJBhU2NFwzQ70DsyHLy0UK1Q2EdtVqp2fm8Y+8ArScVq6HqRxPE2fd0CQ==", - "license": "ISC", - "dependencies": { - "bn.js": "^5.2.1" - } + "node_modules/@toruslabs/tss-frost-lib": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-1.0.0.tgz", + "integrity": "sha512-uDsM7f6NiVvNKVOfTUK+CucZUy1TjvTSYvk5LL8t2i/izWzNbBg4NO9qAFws3Kp9Kt1hG0xo8FkWzh3+oJ82xA==" + }, + "node_modules/@toruslabs/tweetnacl-js": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@toruslabs/tweetnacl-js/-/tweetnacl-js-1.0.4.tgz", + "integrity": "sha512-h8fVemW5pstsKbm/fTx+y61dZkh5Pepy/92lsyKp83KErf96jT+w4LGx4nEgeAVrdYQDTLg2tO7vu/boEb23Iw==", + "license": "Unlicense" }, - "node_modules/@toruslabs/tss-client/node_modules/@noble/curves": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", - "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "license": "MIT", "dependencies": { - "@noble/hashes": "1.5.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@toruslabs/tss-client/node_modules/@scure/bip32": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz", - "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.6.0", - "@noble/hashes": "~1.5.0", - "@scure/base": "~1.1.7" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@toruslabs/tss-client/node_modules/@scure/bip39": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz", - "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.5.0", - "@scure/base": "~1.1.8" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@toruslabs/tss-client/node_modules/ethereum-cryptography": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.0.0.tgz", - "integrity": "sha512-Ij7U9OgVZc4MAui8BttPCEaWUrAXy+eo2IbVfIxZyfzfFxMQrbIWXRUbrsRBqRrIhJ75T8P+KQRKpKTaG0Du8Q==", - "license": "MIT", - "dependencies": { - "@noble/ciphers": "1.0.0", - "@noble/curves": "1.6.0", - "@noble/hashes": "1.5.0", - "@scure/bip32": "1.5.0", - "@scure/bip39": "1.4.0" - }, - "engines": { - "node": "^14.21.3 || >=16", - "npm": ">=9" - } - }, - "node_modules/@toruslabs/tss-dkls-lib": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-4.0.0.tgz", - "integrity": "sha512-XIYv4M6el0wlX/I4WEJjxDS/TcUKRrG/+PTljNumh3UrchfkNpm4uW4+d4aOHclAXbX42pi1SkRpz81+YM+Gsg==" - }, - "node_modules/@toruslabs/tss-frost-client": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-client/-/tss-frost-client-0.3.1.tgz", - "integrity": "sha512-x19hWpbbAHVRWSUPt6FB4VH1vdQGiOe/aSJTts2HZtXRph/LzEGuT7FXyIOnglocYf58t5Z1nXqFEzn0rgQ49Q==", - "license": "ISC", - "dependencies": { - "@toruslabs/tss-client-util": "^0.1.1", - "@toruslabs/tss-frost-common": "^1.0.1", - "socket.io-client": "^4.7.2" - } - }, - "node_modules/@toruslabs/tss-frost-common": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-common/-/tss-frost-common-1.0.1.tgz", - "integrity": "sha512-WmunNSH9XOM/oHQ/CjsTCn4KN9eqxo4keTRV6Yf6roq/S5hzKjOoowWM86vpwPJ6mfa2Qho9bndE2CCS11nKwg==", - "license": "ISC" - }, - "node_modules/@toruslabs/tss-frost-lib": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-1.0.0.tgz", - "integrity": "sha512-uDsM7f6NiVvNKVOfTUK+CucZUy1TjvTSYvk5LL8t2i/izWzNbBg4NO9qAFws3Kp9Kt1hG0xo8FkWzh3+oJ82xA==" - }, - "node_modules/@toruslabs/tweetnacl-js": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@toruslabs/tweetnacl-js/-/tweetnacl-js-1.0.4.tgz", - "integrity": "sha512-h8fVemW5pstsKbm/fTx+y61dZkh5Pepy/92lsyKp83KErf96jT+w4LGx4nEgeAVrdYQDTLg2tO7vu/boEb23Iw==", - "license": "Unlicense" - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, "node_modules/@types/babel__generator": { @@ -2193,6 +1726,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -2219,6 +1753,30 @@ "@types/bn.js": "*" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -2257,12 +1815,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "license": "MIT" - }, "node_modules/@types/jsrsasign": { "version": "10.5.14", "resolved": "https://registry.npmjs.org/@types/jsrsasign/-/jsrsasign-10.5.14.tgz", @@ -2271,9 +1823,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "18.19.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.55.tgz", - "integrity": "sha512-zzw5Vw52205Zr/nmErSEkN5FLqXPuKX/k5d1D7RKHATGqU7y6YfX9QxZraUzUrFGqH6XzOzG196BC35ltJC4Cw==", + "version": "18.19.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.66.tgz", + "integrity": "sha512-14HmtUdGxFUalGRfLLn9Gc1oNWvWh5zNbsyOLo5JV6WARSeN1QcEBKRnZm9QqNfrutgsl/hY4eJW63aZ44aBCg==", "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -2287,9 +1839,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", - "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", "dev": true, "license": "MIT", "dependencies": { @@ -2298,9 +1850,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2316,248 +1868,15 @@ "@types/node": "*" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "license": "ISC", - "peer": true - }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", - "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-transform-react-jsx-self": "^7.24.7", - "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" }, @@ -2565,22 +1884,22 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@web3auth/auth": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.4.1.tgz", - "integrity": "sha512-V5JNBc7VeHDmP+9VN4obAIav/NbkyZXEVJ3rD9C4SdbO/ZF3Hc+G8SdVPymJlR2JrBCsuPJiFsUatBl1hx+FSg==", + "version": "9.5.3", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.5.3.tgz", + "integrity": "sha512-774DFBzuq/mO9y5Zf0ICdK9pZ/YgYgnRVo3CYiayuknA4/wTxosK+xvhlcP6fGRKVgoaYa6bP+gBGmqoFCGUzQ==", "license": "MIT", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/constants": "^14.0.0", + "@toruslabs/constants": "^14.1.1", "@toruslabs/ffjavascript": "^4.0.0", "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/secure-pub-sub": "^1.0.0", - "@toruslabs/session-manager": "^3.0.0", - "@toruslabs/starkware-crypto": "^4.0.0", + "@toruslabs/secure-pub-sub": "^1.1.0", + "@toruslabs/session-manager": "^3.2.0", + "@toruslabs/starkware-crypto": "^4.0.1", "@toruslabs/tweetnacl-js": "^1.0.4", "base64url": "^3.0.1", "bip39": "^3.1.0", @@ -2592,9 +1911,9 @@ "events": "^3.3.0", "fast-safe-stringify": "^2.1.1", "json-stable-stringify": "^1.1.1", - "loglevel": "^1.9.1", + "loglevel": "^1.9.2", "once": "^1.4.0", - "pump": "^3.0.0", + "pump": "^3.0.2", "readable-stream": "^4.5.2", "ts-custom-error": "^3.3.1", "typed-emitter": "^2.1.0" @@ -2604,42 +1923,23 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@nx/nx-linux-x64-gnu": "^19.6.3", - "@rollup/rollup-linux-x64-gnu": "^4.21.1" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@web3auth/auth/node_modules/@toruslabs/secure-pub-sub": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/secure-pub-sub/-/secure-pub-sub-1.0.0.tgz", - "integrity": "sha512-Xv8SExIJ4/DBw5QHcSN+EGPMddZ2du4NcI9jztLde1K/0Hfnurqw6CcAniU6zpKVRVCRwjiauYCNYIRPBi2M4g==", - "license": "MIT", - "dependencies": { - "@toruslabs/eccrypto": "^5.0.0", - "@toruslabs/http-helpers": "^7.0.0", - "@toruslabs/metadata-helpers": "^6.0.0", - "loglevel": "^1.9.1", - "socket.io-client": "^4.7.5" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" + "@nx/nx-linux-x64-gnu": "^20.1.2", + "@rollup/rollup-linux-x64-gnu": "^4.27.3" }, "peerDependencies": { "@babel/runtime": "7.x" } }, "node_modules/@web3auth/base": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.3.0.tgz", - "integrity": "sha512-S1X3i83T7HWr+pF+qBG6nAh49bhE/91LzQxQqSTMQ3f0NGdaMWtuQK3QewyO+G71+9+yrhIS0vggnXyAgY9NaA==", + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.4.4.tgz", + "integrity": "sha512-tL5TxPzuJyIyoQBAKm7k1lWsdp2/i+FWShQiQJKf131FgE50akGzL/a/eCXf04qrggR5BEzEVDUz3DNwfprojQ==", + "license": "ISC", "dependencies": { - "@toruslabs/base-controllers": "^6.2.2", - "@toruslabs/constants": "^14.0.0", + "@toruslabs/base-controllers": "^6.3.1", + "@toruslabs/constants": "^14.1.1", "@toruslabs/http-helpers": "^7.0.0", - "@web3auth/auth": "^9.4.1", + "@web3auth/auth": "^9.5.3", "jwt-decode": "^4.0.0", "loglevel": "^1.9.2", "ts-custom-error": "^3.3.1" @@ -2653,13 +1953,14 @@ } }, "node_modules/@web3auth/base-provider": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@web3auth/base-provider/-/base-provider-9.3.0.tgz", - "integrity": "sha512-WiBpeVvyzmrjLQ8XNZMTWdtukDivuEvX8nOwT5FjyWBow5f06GViDRIRhB1D/M8n3xtsID8O/7qb8Gr6lw48zw==", + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@web3auth/base-provider/-/base-provider-9.4.4.tgz", + "integrity": "sha512-eG+dNEfZOFWYbUBBYu7G5xmxtxS8wLqD6VE1sA4AqKXgTFKmDvijjeeWH/q7fUX5KA7bPMqMV5U22FPaeAMMwQ==", + "license": "ISC", "dependencies": { - "@toruslabs/base-controllers": "^6.2.2", - "@web3auth/auth": "^9.4.1", - "@web3auth/base": "^9.3.0", + "@toruslabs/base-controllers": "^6.3.1", + "@web3auth/auth": "^9.5.3", + "@web3auth/base": "^9.4.4", "json-rpc-random-id": "^1.0.1" }, "engines": { @@ -2671,16 +1972,17 @@ } }, "node_modules/@web3auth/ethereum-mpc-provider": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@web3auth/ethereum-mpc-provider/-/ethereum-mpc-provider-9.3.0.tgz", - "integrity": "sha512-QshYFjPcXUzIkVMSWKy2LRhMDSTvjV4AED4cnYIm3QibXVYvvUfwRO4eUixZ5uSqn8/0EPhLsiBCpaNw3sAghA==", + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@web3auth/ethereum-mpc-provider/-/ethereum-mpc-provider-9.4.4.tgz", + "integrity": "sha512-fImmpuK73mIS0pP8DFQ/ZwPyBNjD5xEjWMmy/WCIMibdwqPDkzAObxBqiQs2p4qaAxlGn4/E0fIoRY4fwpebfA==", + "license": "ISC", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/base-controllers": "^6.2.2", - "@web3auth/auth": "^9.4.1", - "@web3auth/base": "^9.3.0", - "@web3auth/base-provider": "^9.3.0", - "@web3auth/ethereum-provider": "^9.3.0", + "@toruslabs/base-controllers": "^6.3.1", + "@web3auth/auth": "^9.5.3", + "@web3auth/base": "^9.4.4", + "@web3auth/base-provider": "^9.4.4", + "@web3auth/ethereum-provider": "^9.4.4", "ethers": "^6.13.4" }, "engines": { @@ -2692,17 +1994,18 @@ } }, "node_modules/@web3auth/ethereum-provider": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@web3auth/ethereum-provider/-/ethereum-provider-9.3.0.tgz", - "integrity": "sha512-Qe9PAupSJqJEgkSruyusMB0Pu2mVw3JiieaRF4ixTrBnX1V2+wLdYLmQSYl+KBJ3m7ZsQO+omzFaDdZLyFPkew==", + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@web3auth/ethereum-provider/-/ethereum-provider-9.4.4.tgz", + "integrity": "sha512-+vQ5I9cC63DI0/UGz3VgqIV0VlqaZG1Kp71Ir2hghSdFr33mxYq90wD2h8vKZ09d/N+LoK69YiSeNqqFEemsuw==", + "license": "ISC", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/base-controllers": "^6.2.2", + "@toruslabs/base-controllers": "^6.3.1", "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", - "@web3auth/auth": "^9.4.1", - "@web3auth/base": "^9.3.0", - "@web3auth/base-provider": "^9.3.0", + "@web3auth/auth": "^9.5.3", + "@web3auth/base": "^9.4.4", + "@web3auth/base-provider": "^9.4.4", "assert": "^2.1.0", "bignumber.js": "^9.1.2", "bn.js": "^5.2.1", @@ -2718,129 +2021,88 @@ } }, "node_modules/@web3auth/mpc-core-kit": { - "version": "3.2.6", - "resolved": "file:../../web3auth-mpc-core-kit-3.2.6.tgz", - "integrity": "sha512-1AjLkItco15bi39+UdkS5kwUOPcLme+FzrleisaKHNjxZ4PLa41dta8Yge+QqJYbBElNFB1slQbxuQJFAbqWXQ==", - "license": "ISC", + "resolved": "../..", + "link": true + }, + "node_modules/@web3auth/mpc-passkey-plugin": { + "resolved": "../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin", + "link": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@tkey/common-types": "^15.1.0", - "@tkey/core": "^15.1.0", - "@tkey/share-serialization": "^15.1.0", - "@tkey/storage-layer-torus": "^15.1.0", - "@tkey/tss": "^15.1.0", - "@toruslabs/constants": "^14.0.0", - "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.0", - "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/fnd-base": "^14.0.0", - "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/openlogin-utils": "^8.2.1", - "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.2.tgz", - "@toruslabs/tss-client": "^3.1.0", - "@toruslabs/tss-frost-client": "0.3.1", - "@toruslabs/tss-frost-common": "^1.0.1", - "bn.js": "^5.2.1", - "bowser": "^2.11.0", - "elliptic": "^6.5.7", - "loglevel": "^1.9.2" - }, - "engines": { - "node": ">=20.x" - }, - "peerDependencies": { - "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0" - }, - "peerDependenciesMeta": { - "@toruslabs/tss-dkls-lib": { - "optional": true - }, - "@toruslabs/tss-frost-lib": { - "optional": true - } - } - }, - "node_modules/@web3auth/mpc-passkey-plugin": { - "resolved": "../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin", - "link": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, "license": "MIT", "peer": true, @@ -2849,9 +2111,9 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -2860,85 +2122,85 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -2986,9 +2248,10 @@ } }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "devOptional": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -2997,43 +2260,24 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peer": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, "node_modules/aes-js": { "version": "4.0.0-beta.5", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { "type": "github", @@ -3058,17 +2302,39 @@ } } }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peer": true, "peerDependencies": { - "ajv": "^8.8.2" + "ajv": "^6.9.1" } }, "node_modules/ansi-regex": { @@ -3081,145 +2347,18 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0", - "peer": true - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" + "color-convert": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", "engines": { "node": ">=8" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/asn1.js": { @@ -3235,9 +2374,9 @@ } }, "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -3278,12 +2417,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -3350,19 +2483,11 @@ "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", "license": "MIT" }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -3512,9 +2637,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -3531,10 +2656,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -3613,16 +2738,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/camel-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", @@ -3635,9 +2750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001667", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", - "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "version": "1.0.30001684", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", + "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", "funding": [ { "type": "opencollective", @@ -3655,17 +2770,19 @@ "license": "CC-BY-4.0" }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chrome-trace-event": { @@ -3680,14 +2797,17 @@ } }, "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.5.tgz", + "integrity": "sha512-xq7ICKB4TMHUx7Tz1L9O2SGKOhYMOTR32oir45Bq28/AQTpHogKgHcoYFSdRbMtddl+ozNXfXY9jWcgYKmde0w==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, "node_modules/clean-css": { @@ -3717,18 +2837,21 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/color-string": { @@ -3741,24 +2864,6 @@ "simple-swizzle": "^0.2.2" } }, - "node_modules/color/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -3769,18 +2874,6 @@ "node": ">= 12" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "license": "MIT" - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -3812,14 +2905,61 @@ "webpack": "^5.1.0" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, - "license": "MIT" - }, - "node_modules/crc-32": { + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", @@ -3843,9 +2983,9 @@ } }, "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -3887,42 +3027,31 @@ "node-fetch": "^2.6.12" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", "dev": true, "license": "MIT", "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" }, "engines": { - "node": "*" + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/css-select": { @@ -3962,57 +3091,6 @@ "dev": true, "license": "MIT" }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -4030,13 +3108,6 @@ } } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "license": "MIT", - "peer": true - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -4113,46 +3184,12 @@ } }, "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dir-glob/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -4243,15 +3280,15 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.33", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", - "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", + "version": "1.5.65", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.65.tgz", + "integrity": "sha512-PWVzBjghx7/wop6n22vS2MLU8tKGd4Q91aCEGhG/TYmW6PP5OcSXcdnxTe1NNt0T66N8D6jxh4kC8UsdzOGaIw==", "license": "ISC" }, "node_modules/elliptic": { - "version": "6.5.7", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", - "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "license": "MIT", "dependencies": { "bn.js": "^4.11.9", @@ -4264,9 +3301,9 @@ } }, "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "license": "MIT" }, "node_modules/enc-utils": { @@ -4289,9 +3326,9 @@ } }, "node_modules/engine.io-client": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.1.tgz", - "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.2.tgz", + "integrity": "sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -4314,7 +3351,9 @@ "version": "5.17.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -4333,66 +3372,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/es-abstract": { - "version": "1.23.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", - "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -4422,62 +3401,10 @@ "license": "MIT", "peer": true }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", "hasInstallScript": true, "license": "MIT", "peer": true, @@ -4485,32 +3412,33 @@ "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" } }, "node_modules/escalade": { @@ -4522,784 +3450,53 @@ "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "license": "MIT", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-compat-utils": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", - "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", - "license": "MIT", - "dependencies": { - "semver": "^7.5.4" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "eslint": ">=6.0.0" + "node": ">=4.0" } }, - "node_modules/eslint-compat-utils/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, "engines": { - "node": ">=10" + "node": ">=4.0" } }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", "license": "MIT", "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" } }, - "node_modules/eslint-config-airbnb-typescript": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz", - "integrity": "sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==", + "node_modules/ethereum-cryptography/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "license": "MIT", - "dependencies": { - "eslint-config-airbnb-base": "^15.0.0" + "engines": { + "node": ">= 16" }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^7.0.0", - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-config-problems": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-problems/-/eslint-config-problems-8.0.0.tgz", - "integrity": "sha512-bvZKVXwFe1pPmFNPc0KTr14K89GHo3H/EytD7Ig/MEmlyNEdqC8QlBguPcS/QWvOWDgVqkJiGwmmTljkAV/qpg==", - "license": "ISC", - "peerDependencies": { - "eslint": "^8.27.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-es-x": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", - "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", - "funding": [ - "https://github.com/sponsors/ota-meshi", - "https://opencollective.com/eslint" - ], - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.11.0", - "eslint-compat-utils": "^0.5.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": ">=8" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-mocha": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz", - "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==", - "license": "MIT", - "dependencies": { - "eslint-utils": "^3.0.0", - "globals": "^13.24.0", - "rambda": "^7.4.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-mocha/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-n": { - "version": "17.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.14.0.tgz", - "integrity": "sha512-maxPLMEA0rPmRpoOlxEclKng4UpDe+N5BJS4t24I3UKnN109Qcivnfs37KMy84G0af3bxjog5lKctP5ObsvcTA==", - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.1", - "enhanced-resolve": "^5.17.1", - "eslint-plugin-es-x": "^7.8.0", - "get-tsconfig": "^4.8.1", - "globals": "^15.11.0", - "ignore": "^5.3.2", - "minimatch": "^9.0.5", - "semver": "^7.6.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": ">=8.23.0" - } - }, - "node_modules/eslint-plugin-n/node_modules/globals": { - "version": "15.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", - "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-promise": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.2.0.tgz", - "integrity": "sha512-O2QBfKGRP0AHxXhZ3Lk2sFGGGw8TlMW84c+QfPX0gMnDrKJEN5SGJOICt/nR6spLvzuYO3d3nV4R3AIzdbaW7Q==", - "license": "ISC", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-simple-import-sort": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz", - "integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==", - "license": "MIT", - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, - "node_modules/eslint-plugin-tsdoc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.3.0.tgz", - "integrity": "sha512-0MuFdBrrJVBjT/gyhkP2BqpD0np1NxNLfQ38xXDlSs/KVVpKI2A6vN7jx2Rve/CyUsvOsMGwp9KKrinv7q9g3A==", - "license": "MIT", - "dependencies": { - "@microsoft/tsdoc": "0.15.0", - "@microsoft/tsdoc-config": "0.17.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT", - "peer": true - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", - "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", - "license": "MIT", - "dependencies": { - "@noble/curves": "1.4.2", - "@noble/hashes": "1.4.0", - "@scure/bip32": "1.4.0", - "@scure/bip39": "1.3.0" - } - }, - "node_modules/ethereum-cryptography/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/ethers": { @@ -5316,6 +3513,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@adraffy/ens-normalize": "1.10.1", "@noble/curves": "1.2.0", @@ -5333,6 +3531,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.3.2" }, @@ -5344,6 +3543,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", "engines": { "node": ">= 16" }, @@ -5355,14 +3555,22 @@ "version": "22.7.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, "node_modules/ethers/node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" }, "node_modules/event-target-shim": { "version": "5.0.1", @@ -5403,18 +3611,14 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "license": "Apache-2.0" - }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -5431,6 +3635,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -5443,13 +3648,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT", - "peer": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, "license": "MIT", "peer": true }, @@ -5460,38 +3659,27 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", - "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "license": "MIT", - "peer": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -5500,45 +3688,6 @@ "node": ">=8" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "peer": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "license": "MIT", - "peer": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "license": "ISC", - "peer": true - }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -5548,13 +3697,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC", - "peer": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -5579,33 +3721,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -5634,61 +3749,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", - "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -5705,30 +3770,6 @@ "license": "BSD-2-Clause", "peer": true }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -5738,43 +3779,6 @@ "node": ">=4" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -5791,30 +3795,17 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true, + "license": "ISC", + "peer": true }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-property-descriptors": { @@ -5869,17 +3860,17 @@ } }, "node_modules/hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" }, "engines": { - "node": ">=4" + "node": ">= 0.10" } }, "node_modules/hash.js": { @@ -5948,9 +3939,9 @@ } }, "node_modules/html-webpack-plugin": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", - "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", "dev": true, "license": "MIT", "dependencies": { @@ -6031,337 +4022,22 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "license": "MIT", - "peer": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "peer": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT" - }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "license": "MIT", - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", - "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -6374,10 +4050,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -6386,13 +4068,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6401,28 +4093,27 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" }, "engines": { "node": ">= 0.4" @@ -6431,6 +4122,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/is-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", @@ -6452,59 +4153,12 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "license": "MIT" }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT" }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC", - "peer": true - }, "node_modules/isomorphic-ws": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", @@ -6529,76 +4183,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-get-type": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", @@ -6623,76 +4207,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -6709,17 +4223,6 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -6737,31 +4240,12 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "license": "MIT" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -6774,13 +4258,6 @@ "node": ">=6" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT", - "peer": true - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -6792,13 +4269,16 @@ "node_modules/json-rpc-random-id": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" + "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==", + "license": "ISC" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/json-stable-stringify": { "version": "1.1.1", @@ -6818,13 +4298,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "license": "MIT", - "peer": true - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -6850,6 +4323,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "license": "MIT", "engines": { "node": "*" } @@ -6924,30 +4398,6 @@ "node": ">=18" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "license": "MIT", - "peer": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -6959,22 +4409,6 @@ "node": ">=6.11.5" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "peer": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -7018,13 +4452,6 @@ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "license": "MIT" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT", - "peer": true - }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", @@ -7099,6 +4526,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -7108,6 +4536,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -7132,9 +4561,9 @@ } }, "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -7175,30 +4604,6 @@ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "license": "MIT" }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -7206,9 +4611,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -7224,12 +4629,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "license": "MIT" - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -7302,6 +4701,7 @@ "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -7353,69 +4753,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/oblivious-set": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.4.0.tgz", @@ -7434,24 +4771,6 @@ "wrappy": "1" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "license": "MIT", - "peer": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -7459,38 +4778,6 @@ "dev": true, "license": "MIT" }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -7509,19 +4796,6 @@ "tslib": "^2.0.3" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "peer": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/parse-asn1": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", @@ -7558,55 +4832,6 @@ "dev": true, "license": "MIT" }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -7625,15 +4850,16 @@ } }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -7652,9 +4878,9 @@ } }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", @@ -7673,51 +4899,13 @@ "peer": true, "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "license": "MIT", - "peer": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", @@ -7787,9 +4975,9 @@ } }, "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -7804,16 +4992,20 @@ } }, "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -7830,6 +5022,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -7846,12 +5039,6 @@ ], "license": "MIT" }, - "node_modules/rambda": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", - "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", - "license": "MIT" - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -7929,50 +5116,11 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", - "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "which-builtin-type": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "node_modules/relateurl": { "version": "0.2.7", @@ -8002,74 +5150,23 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -8082,9 +5179,9 @@ } }, "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.4.tgz", + "integrity": "sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==", "license": "MIT", "peer": true, "dependencies": { @@ -8098,22 +5195,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", + "@rollup/rollup-android-arm-eabi": "4.27.4", + "@rollup/rollup-android-arm64": "4.27.4", + "@rollup/rollup-darwin-arm64": "4.27.4", + "@rollup/rollup-darwin-x64": "4.27.4", + "@rollup/rollup-freebsd-arm64": "4.27.4", + "@rollup/rollup-freebsd-x64": "4.27.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.4", + "@rollup/rollup-linux-arm-musleabihf": "4.27.4", + "@rollup/rollup-linux-arm64-gnu": "4.27.4", + "@rollup/rollup-linux-arm64-musl": "4.27.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.4", + "@rollup/rollup-linux-riscv64-gnu": "4.27.4", + "@rollup/rollup-linux-s390x-gnu": "4.27.4", + "@rollup/rollup-linux-x64-gnu": "4.27.4", + "@rollup/rollup-linux-x64-musl": "4.27.4", + "@rollup/rollup-win32-arm64-msvc": "4.27.4", + "@rollup/rollup-win32-ia32-msvc": "4.27.4", + "@rollup/rollup-win32-x64-msvc": "4.27.4", "fsevents": "~2.3.2" } }, @@ -8121,6 +5220,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -8150,24 +5250,6 @@ "tslib": "^2.1.0" } }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -8188,23 +5270,6 @@ ], "license": "MIT" }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -8234,6 +5299,43 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -8270,21 +5372,6 @@ "node": ">= 0.4" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -8305,33 +5392,11 @@ "sha.js": "bin.js" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "peer": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -8355,23 +5420,10 @@ "is-arrayish": "^0.3.1" } }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/socket.io-client": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.0.tgz", - "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", + "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -8490,59 +5542,11 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -8551,81 +5555,32 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/synckit": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", - "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" + "node": ">=8" } }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/terser": { - "version": "5.34.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", - "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", "devOptional": true, "license": "BSD-2-Clause", "dependencies": { @@ -8677,43 +5632,6 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -8739,28 +5657,13 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "devOptional": true, - "license": "MIT" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "license": "MIT", - "peer": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -8775,18 +5678,6 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT" }, - "node_modules/ts-api-utils": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.1.tgz", - "integrity": "sha512-5RU2/lxTA3YUZxju61HO2U6EoZLvBLtmV2mbTvqyu4a/7s7RmJPT+1YekhMVsQhznRWk/czIwDUg+V8Q9ZuG4w==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, "node_modules/ts-custom-error": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz", @@ -8796,135 +5687,12 @@ "node": ">=14.0.0" } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "license": "MIT", - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", - "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typed-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", @@ -8944,9 +5712,9 @@ } }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -8956,21 +5724,6 @@ "node": ">=14.17" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -9033,20 +5786,13 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/url": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", @@ -9061,6 +5807,13 @@ "node": ">= 0.4" } }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" + }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -9089,21 +5842,21 @@ "license": "MIT" }, "node_modules/vite": { - "version": "5.4.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", - "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.0.tgz", + "integrity": "sha512-Q2+5yQV79EdnpbNxjD3/QHVMCBaQ3Kpd4/uL51UGuh38bIIM+s4o3FqyCzRvTRwFb+cWIUeZvaWwS9y2LD2qeQ==", "license": "MIT", "peer": true, "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.24.0", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -9112,19 +5865,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -9145,6 +5904,12 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, @@ -9164,17 +5929,17 @@ } }, "node_modules/web3": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-4.13.0.tgz", - "integrity": "sha512-wRXTu/YjelvBJ7PSLzp/rW8/6pqj4RlXzdKSkjk01RaHDvnpLogLU/VL8OF5ygqhY7IzhY5MSrl9SnC8C9Z4uA==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-4.15.0.tgz", + "integrity": "sha512-0QWDWE4gDWldXb4KWq++K8m/A9zsR0LpJLtVT39/b4OjfdW0d4mE0qAUd3UocxuKTh1eG5pOCfumbGS5l6p1qg==", "license": "LGPL-3.0", "dependencies": { - "web3-core": "^4.6.0", + "web3-core": "^4.7.0", "web3-errors": "^1.3.0", - "web3-eth": "^4.9.0", - "web3-eth-abi": "^4.2.4", - "web3-eth-accounts": "^4.2.1", - "web3-eth-contract": "^4.7.0", + "web3-eth": "^4.11.0", + "web3-eth-abi": "^4.4.0", + "web3-eth-accounts": "^4.3.0", + "web3-eth-contract": "^4.7.1", "web3-eth-ens": "^4.4.0", "web3-eth-iban": "^4.0.7", "web3-eth-personal": "^4.1.0", @@ -9182,9 +5947,9 @@ "web3-providers-http": "^4.2.0", "web3-providers-ws": "^4.0.8", "web3-rpc-methods": "^1.3.0", - "web3-rpc-providers": "^1.0.0-rc.2", - "web3-types": "^1.8.0", - "web3-utils": "^4.3.1", + "web3-rpc-providers": "^1.0.0-rc.3", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -9193,9 +5958,9 @@ } }, "node_modules/web3-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-4.6.0.tgz", - "integrity": "sha512-j8uQ/7zSwpmLClMMeZb736Ok3V4cWSd0dnd29jkd10d1pedi32r+hSAgycxSJLLWtPHOzMBIXUjj3TF/IAClVQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-4.7.0.tgz", + "integrity": "sha512-skP4P56fhlrE+rIuS4WY9fTdja1DPml2xrrDmv+vQhPtmSFBs7CqesycIRLQh4dK1D4de/a23tkX6DLYdUt3nA==", "license": "LGPL-3.0", "dependencies": { "web3-errors": "^1.3.0", @@ -9203,8 +5968,8 @@ "web3-eth-iban": "^4.0.7", "web3-providers-http": "^4.2.0", "web3-providers-ws": "^4.0.8", - "web3-types": "^1.8.0", - "web3-utils": "^4.3.1", + "web3-types": "^1.8.1", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -9229,21 +5994,21 @@ } }, "node_modules/web3-eth": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-4.9.0.tgz", - "integrity": "sha512-lE+5rQUkQq1Mzf3uZ/tlay8nvMyC/CmaRFRFQ015OZuvSrRr/byZhhkzY5ZWkIetESTMqfWapu67yeHebcHxwA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-4.11.0.tgz", + "integrity": "sha512-nZIJ/8FOOj5aEXoS8p9puuX5jLyzewZv3nXqoKNtu531/vA/yIiU/EtPnAV62RvVMcbDSiF/BLVFdBZCsVMJbg==", "license": "LGPL-3.0", "dependencies": { "setimmediate": "^1.0.5", - "web3-core": "^4.6.0", + "web3-core": "^4.7.0", "web3-errors": "^1.3.0", - "web3-eth-abi": "^4.2.4", - "web3-eth-accounts": "^4.2.1", + "web3-eth-abi": "^4.4.0", + "web3-eth-accounts": "^4.3.0", "web3-net": "^4.1.0", "web3-providers-ws": "^4.0.8", "web3-rpc-methods": "^1.3.0", - "web3-types": "^1.8.0", - "web3-utils": "^4.3.1", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -9252,15 +6017,15 @@ } }, "node_modules/web3-eth-abi": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-4.2.4.tgz", - "integrity": "sha512-FGoj/ENm/Iq3+6myJyiDCwbFkha9ZCx2fRdiIdw3mp7S4lgu+ay3EVzQPRxJjNBm09UEfxB9yoSAPKj9Z3Mbxg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-4.4.0.tgz", + "integrity": "sha512-RQzt9W93OgFBwOdNGcc9ulCyYt4zmRAMkKGbEdp3wcN4vmwTlRhh21+akj2ND4bg3C3RUiP4yprYgDEyN0/Fmg==", "license": "LGPL-3.0", "dependencies": { "abitype": "0.7.1", "web3-errors": "^1.3.0", - "web3-types": "^1.8.0", - "web3-utils": "^4.3.1", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -9269,17 +6034,17 @@ } }, "node_modules/web3-eth-accounts": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-4.2.1.tgz", - "integrity": "sha512-aOlEZFzqAgKprKs7+DGArU4r9b+ILBjThpeq42aY7LAQcP+mSpsWcQgbIRK3r/n3OwTYZ3aLPk0Ih70O/LwnYA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-4.3.0.tgz", + "integrity": "sha512-7UX3rJiNgHYoqrO1WRPks/9J5Mh2x5N9HAd9QsOM8zfKY2rwSyCIIQM03OFXDEQRZ/ztycKTHgeLStmhlUUKIQ==", "license": "LGPL-3.0", "dependencies": { "@ethereumjs/rlp": "^4.0.1", "crc-32": "^1.2.2", "ethereum-cryptography": "^2.0.0", "web3-errors": "^1.3.0", - "web3-types": "^1.7.0", - "web3-utils": "^4.3.1", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -9300,18 +6065,18 @@ } }, "node_modules/web3-eth-contract": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-4.7.0.tgz", - "integrity": "sha512-fdStoBOjFyMHwlyJmSUt/BTDL1ATwKGmG3zDXQ/zTKlkkW/F/074ut0Vry4GuwSBg9acMHc0ycOiZx9ZKjNHsw==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-4.7.1.tgz", + "integrity": "sha512-D9nHCclq4lj2CX1sOrGga1UFA9CNBWZV6NGwNr6WjbBGIFl9ui2mivE9c3vNGEfSMnvKEq/zE83N+eGOwcWZlg==", "license": "LGPL-3.0", "dependencies": { "@ethereumjs/rlp": "^5.0.2", - "web3-core": "^4.5.1", + "web3-core": "^4.7.0", "web3-errors": "^1.3.0", - "web3-eth": "^4.8.2", - "web3-eth-abi": "^4.2.3", - "web3-types": "^1.7.0", - "web3-utils": "^4.3.1", + "web3-eth": "^4.11.0", + "web3-eth-abi": "^4.4.0", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -9456,16 +6221,16 @@ } }, "node_modules/web3-rpc-providers": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/web3-rpc-providers/-/web3-rpc-providers-1.0.0-rc.2.tgz", - "integrity": "sha512-ocFIEXcBx/DYQ90HhVepTBUVnL9pGsZw8wyPb1ZINSenwYus9SvcFkjU1Hfvd/fXjuhAv2bUVch9vxvMx1mXAQ==", + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/web3-rpc-providers/-/web3-rpc-providers-1.0.0-rc.3.tgz", + "integrity": "sha512-aeFPYgvHjsf2yQi3CSQA9Ie4xnmO7VmNkY098rA7AWvhgyjVgIWlrVgZjUn55FXtthbiiTRm/CLriv99UeOfGQ==", "license": "LGPL-3.0", "dependencies": { "web3-errors": "^1.3.0", "web3-providers-http": "^4.2.0", "web3-providers-ws": "^4.0.8", - "web3-types": "^1.7.0", - "web3-utils": "^4.3.1", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -9474,9 +6239,9 @@ } }, "node_modules/web3-types": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/web3-types/-/web3-types-1.8.0.tgz", - "integrity": "sha512-Z51wFLPGhZM/1uDxrxE8gzju3t2aEdRGn+YmLX463id5UjTuMEmP/9in1GFjqrsPB3m86czs8RnGBUt3ovueMw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/web3-types/-/web3-types-1.9.0.tgz", + "integrity": "sha512-I520KBPoXqEaM/ybj6xHD1E3gRb8/WdudLQaRBvJNQSSfHuPW9P2sD59mbhm6dsKtnje+T90dIxSyzVVFlEdlg==", "license": "LGPL-3.0", "engines": { "node": ">=14", @@ -9484,15 +6249,15 @@ } }, "node_modules/web3-utils": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-4.3.1.tgz", - "integrity": "sha512-kGwOk8FxOLJ9DQC68yqNQc7AzN+k9YDLaW+ZjlAXs3qORhf8zXk5SxWAAGLbLykMs3vTeB0FTb1Exut4JEYfFA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-4.3.2.tgz", + "integrity": "sha512-bEFpYEBMf6ER78Uvj2mdsCbaLGLK9kABOsa3TtXOEEhuaMy/RK0KlRkKoZ2vmf/p3hB8e1q5erknZ6Hy7AVp7A==", "license": "LGPL-3.0", "dependencies": { "ethereum-cryptography": "^2.0.0", "eventemitter3": "^5.0.1", - "web3-errors": "^1.2.0", - "web3-types": "^1.7.0", + "web3-errors": "^1.3.0", + "web3-types": "^1.8.1", "web3-validator": "^2.0.6" }, "engines": { @@ -9524,20 +6289,20 @@ "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.95.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", - "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@types/estree": "^1.0.5", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", @@ -9582,43 +6347,32 @@ "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" + "engines": { + "node": ">=4.0" } }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -9649,83 +6403,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", - "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", @@ -9745,16 +6422,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -9783,9 +6450,9 @@ } }, "node_modules/xmlhttprequest-ssl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz", - "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", "engines": { "node": ">=0.4.0" } @@ -9806,19 +6473,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "license": "ISC" }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/zod": { "version": "3.23.8", "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index 2777c645..6dc37cc1 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -13,7 +13,7 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "file:../../web3auth-mpc-core-kit-3.2.6.tgz", + "@web3auth/mpc-core-kit": "file:../../", "@web3auth/mpc-passkey-plugin": "file:../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin/", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", diff --git a/package-lock.json b/package-lock.json index 6a060930..4f7a9157 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.2.tgz", + "@toruslabs/torus.js": "file:../torus.js", "@toruslabs/tss-client": "^3.1.0", "@toruslabs/tss-frost-client": "0.3.1", "@toruslabs/tss-frost-common": "^1.0.1", @@ -78,6 +78,57 @@ } } }, + "../torus.js": { + "name": "@toruslabs/torus.js", + "version": "15.1.1", + "license": "MIT", + "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" + }, + "devDependencies": { + "@babel/register": "^7.25.7", + "@babel/runtime": "^7.25.7", + "@faker-js/faker": "^9.0.3", + "@toruslabs/config": "^2.2.0", + "@toruslabs/eslint-config-typescript": "^3.3.4", + "@toruslabs/fetch-node-details": "^14.0.1", + "@toruslabs/torus-scripts": "^6.1.5", + "@types/chai": "^5.0.0", + "@types/elliptic": "^6.4.18", + "@types/json-stable-stringify": "^1.0.36", + "@types/jsonwebtoken": "^9.0.7", + "@types/mocha": "^10.0.9", + "@types/sinon": "^17.0.3", + "chai": "^5.1.1", + "cross-env": "^7.0.3", + "dotenv": "^16.4.5", + "eslint": "^8.57.0", + "husky": "^9.1.6", + "jsonwebtoken": "^9.0.2", + "lint-staged": "^15.2.10", + "mocha": "^10.7.3", + "prettier": "^3.3.3", + "rimraf": "^6.0.1", + "sinon": "^19.0.2", + "tsx": "^4.19.1", + "typescript": "^5.6.3" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -3833,19 +3884,6 @@ "npm": ">=9.x" } }, - "node_modules/@toruslabs/bs58": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/bs58/-/bs58-1.0.0.tgz", - "integrity": "sha512-osqIgm1MzEB6+fkaQeEUg4tuZXmhhXTn+K7+nZU7xDBcy+8Yr3eGNqJcQ4jds82g+dhkk2cBkge9sffv38iDQQ==", - "license": "MIT", - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, "node_modules/@toruslabs/config": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@toruslabs/config/-/config-2.2.0.tgz", @@ -4431,28 +4469,8 @@ } }, "node_modules/@toruslabs/torus.js": { - "version": "15.1.1", - "resolved": "file:toruslabs-torus.js-15.1.2.tgz", - "integrity": "sha512-McZ4UAZM8ljtNUOg77aDZp4ufftJT5t0cc6RSwXtytLmhn8j2oL9iaTDrvD4AzwF1ASaQFPm1UNtjLXyLl0gcA==", - "license": "MIT", - "dependencies": { - "@toruslabs/bs58": "^1.0.0", - "@toruslabs/constants": "^14.0.0", - "@toruslabs/eccrypto": "^5.0.4", - "@toruslabs/http-helpers": "^7.0.0", - "bn.js": "^5.2.1", - "elliptic": "^6.5.7", - "ethereum-cryptography": "^2.2.1", - "json-stable-stringify": "^1.1.1", - "loglevel": "^1.9.2" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } + "resolved": "../torus.js", + "link": true }, "node_modules/@toruslabs/tss-client": { "version": "3.1.0", diff --git a/package.json b/package.json index 90f42dc8..6822b52d 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/session-manager": "^3.1.0", "@toruslabs/openlogin-utils": "^8.2.1", - "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.2.tgz", + "@toruslabs/torus.js": "file:../torus.js", "@toruslabs/tss-client": "^3.1.0", "@toruslabs/tss-frost-client": "0.3.1", "@toruslabs/tss-frost-common": "^1.0.1", diff --git a/package/README.md b/package/README.md new file mode 100644 index 00000000..8a2652d8 --- /dev/null +++ b/package/README.md @@ -0,0 +1,113 @@ +# Web3Auth MPC Core Kit + +[![npm version](https://img.shields.io/npm/v/@web3auth/mpc-core-kit?label=%22%22)](https://www.npmjs.com/package/@web3auth/mpc-core-kit/v/latest) +[![minzip](https://img.shields.io/bundlephobia/minzip/@web3auth/mpc-core-kit?label=%22%22)](https://bundlephobia.com/result?p=@web3auth/mpc-core-kit@latest) + +> Web3Auth is where passwordless auth meets non-custodial key infrastructure for Web3 apps and wallets. By aggregating OAuth (Google, Twitter, Discord) logins, different wallets and innovative Multi Party Computation (MPC) - Web3Auth provides a seamless login experience to every user on your application. + +Web3Auth MPC Core Kit Beta is a wrapper SDK that gives you all the needed functionalities for implementing the Web3Auth MPC features, giving you the flexibility of implementing your own UI and UX flows end to end. + +## 📖 Documentation + +Checkout the official [Web3Auth Documentation](https://web3auth.io/docs/sdk/) to get started. + +...and a lot more + +## 🔗 Installation + +```shell +npm install --save @web3auth/mpc-core-kit +``` + +## ⚡ Quick Start + +### Get your Client ID from Web3Auth Dashboard + +Hop on to the [Web3Auth Dashboard](https://dashboard.web3auth.io/) and create a new project. Use the Client ID of the project to start your integration. + +![Web3Auth Dashboard](https://github-production-user-asset-6210df.s3.amazonaws.com/6962565/272779464-043f6383-e671-4aa5-80fb-ec87c569e5ab.png) + +### Initialize Web3Auth for your preferred blockchain + +Web3Auth needs to initialise as soon as your app loads up to enable the user to log in. Preferably done within a constructor, initialisation is the step where you can pass on all the configurations for Web3Auth you want. A simple integration for Ethereum blockchain will look like this: + +```js +import { Web3AuthMPCCoreKit } from "@web3auth/mpc-core-kit"; + +const DEFAULT_CHAIN_CONFIG: CustomChainConfig = { + chainNamespace: CHAIN_NAMESPACES.EIP155, + chainId: "0x5", + rpcTarget: "https://rpc.ankr.com/eth_goerli", + displayName: "Goerli Testnet", + blockExplorer: "https://goerli.etherscan.io", + ticker: "ETH", + tickerName: "Ethereum", + decimals: 18, +}; + +//Initialize within your constructor +const web3auth = new Web3AuthMPCCoreKit({ + web3AuthClientId: 'YOUR_CLIENT_ID', + web3AuthNetwork: WEB3AUTH_NETWORK.DEVNET + chainConfig: DEFAULT_CHAIN_CONFIG +}); + + +await web3auth.init(); +``` + +### Login your User + +Once you're done initialising, just create a button that triggers login for your preferred social channel for the user on their request. You can further use the returned provider for making RPC calls to the blockchain. + + +```js + const verifierConfig = { + subVerifierDetails: { + typeOfLogin: 'google', + verifier: 'w3a-google-demo', + clientId: + '519228911939-cri01h55lsjbsia1k7ll6qpalrus75ps.apps.googleusercontent.com', + } + } as SubVerifierDetailsParams; + + await coreKitInstance.loginWithOAuth(verifierConfig); +``` + +For JWT(idToken) login +```js + const idTokenLoginParams = { + verifier: "torus-test-health", + verifierId: parsedToken.email, + idToken, + } as IdTokenLoginParams; + + await coreKitInstance.loginWithJWT(idTokenLoginParams); +``` + + + +## 🩹 Examples + +Checkout the examples for your preferred blockchain and platform in our [examples repository](https://github.com/Web3Auth/web3auth-core-kit-examples) + +## 🌐 Demo + +Checkout the [Web3Auth Demo](https://demo-app.web3auth.io/) to see how Web3Auth can be used in your application. + +## 💬 Troubleshooting and Support + +- Have a look at our [Community Portal](https://community.web3auth.io/) to see if anyone has any questions or issues you might be having. Feel free to reate new topics and we'll help you out as soon as possible. +- Checkout our [Troubleshooting Documentation Page](https://web3auth.io/docs/troubleshooting) to know the common issues and solutions. +- For Priority Support, please have a look at our [Pricing Page](https://web3auth.io/pricing.html) for the plan that suits your needs. + + +### Development steps:- + #### Install dependencies: + npm i + + #### Run tests: + npm run test + + #### Build: + npm run build diff --git a/package/dist/lib.cjs/constants.js b/package/dist/lib.cjs/constants.js new file mode 100644 index 00000000..9bf83928 --- /dev/null +++ b/package/dist/lib.cjs/constants.js @@ -0,0 +1,63 @@ +'use strict'; + +var constants = require('@toruslabs/constants'); + +const WEB3AUTH_NETWORK = { + MAINNET: constants.TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET, + DEVNET: constants.TORUS_SAPPHIRE_NETWORK.SAPPHIRE_DEVNET +}; +const USER_PATH = { + NEW: "NewAccount", + EXISTING: "ExistingAccount", + REHYDRATE: "RehydrateAccount", + RECOVER: "RecoverAccount" +}; +let FactorKeyTypeShareDescription = /*#__PURE__*/function (FactorKeyTypeShareDescription) { + FactorKeyTypeShareDescription["HashedShare"] = "hashedShare"; + FactorKeyTypeShareDescription["SecurityQuestions"] = "tssSecurityQuestions"; + FactorKeyTypeShareDescription["DeviceShare"] = "deviceShare"; + FactorKeyTypeShareDescription["SeedPhrase"] = "seedPhrase"; + FactorKeyTypeShareDescription["PasswordShare"] = "passwordShare"; + FactorKeyTypeShareDescription["SocialShare"] = "socialShare"; + FactorKeyTypeShareDescription["Other"] = "Other"; + return FactorKeyTypeShareDescription; +}({}); +const DELIMITERS = { + Delimiter1: "\u001c", + Delimiter2: "\u0015", + Delimiter3: "\u0016", + Delimiter4: "\u0017" +}; +const ERRORS = { + TKEY_SHARES_REQUIRED: "required more shares", + INVALID_BACKUP_SHARE: "invalid backup share" +}; +const SOCIAL_FACTOR_INDEX = 1; + +/** + * Defines the TSS Share Index in a simplified way for better implementation. + **/ +let TssShareType = /*#__PURE__*/function (TssShareType) { + TssShareType[TssShareType["DEVICE"] = 2] = "DEVICE"; + TssShareType[TssShareType["RECOVERY"] = 3] = "RECOVERY"; + return TssShareType; +}({}); +const VALID_SHARE_INDICES = [TssShareType.DEVICE, TssShareType.RECOVERY]; +const SCALAR_LEN = 32; // Length of secp256k1 scalar in bytes. +const FIELD_ELEMENT_HEX_LEN = 32 * 2; // Length of secp256k1 field element in hex form. + +const MAX_FACTORS = 10; // Maximum number of factors that can be added to an account. +const SOCIAL_TKEY_INDEX = 1; + +exports.DELIMITERS = DELIMITERS; +exports.ERRORS = ERRORS; +exports.FIELD_ELEMENT_HEX_LEN = FIELD_ELEMENT_HEX_LEN; +exports.FactorKeyTypeShareDescription = FactorKeyTypeShareDescription; +exports.MAX_FACTORS = MAX_FACTORS; +exports.SCALAR_LEN = SCALAR_LEN; +exports.SOCIAL_FACTOR_INDEX = SOCIAL_FACTOR_INDEX; +exports.SOCIAL_TKEY_INDEX = SOCIAL_TKEY_INDEX; +exports.TssShareType = TssShareType; +exports.USER_PATH = USER_PATH; +exports.VALID_SHARE_INDICES = VALID_SHARE_INDICES; +exports.WEB3AUTH_NETWORK = WEB3AUTH_NETWORK; diff --git a/package/dist/lib.cjs/helper/browserStorage.js b/package/dist/lib.cjs/helper/browserStorage.js new file mode 100644 index 00000000..1b857465 --- /dev/null +++ b/package/dist/lib.cjs/helper/browserStorage.js @@ -0,0 +1,62 @@ +'use strict'; + +var _defineProperty = require('@babel/runtime/helpers/defineProperty'); +var errors = require('./errors.js'); + +class MemoryStorage { + constructor() { + _defineProperty(this, "_store", {}); + } + getItem(key) { + return this._store[key] || null; + } + setItem(key, value) { + this._store[key] = value; + } + removeItem(key) { + delete this._store[key]; + } + clear() { + this._store = {}; + } +} +class AsyncStorage { + constructor(storeKey, storage) { + _defineProperty(this, "storage", void 0); + _defineProperty(this, "_storeKey", void 0); + this.storage = storage; + this._storeKey = storeKey; + } + async toJSON() { + const result = await this.storage.getItem(this._storeKey); + if (!result) { + throw errors.default.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`); + } + return result; + } + async resetStore() { + const currStore = await this.getStore(); + await this.storage.setItem(this._storeKey, JSON.stringify({})); + return currStore; + } + async getStore() { + return JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + } + async get(key) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + return store[key]; + } + async set(key, value) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + store[key] = value; + await this.storage.setItem(this._storeKey, JSON.stringify(store)); + } + async remove(key) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + delete store[key]; + await this.storage.setItem(this._storeKey, JSON.stringify(store)); + } +} + +exports.AsyncStorage = AsyncStorage; +exports.MemoryStorage = MemoryStorage; diff --git a/package/dist/lib.cjs/helper/errors.js b/package/dist/lib.cjs/helper/errors.js new file mode 100644 index 00000000..08e0b758 --- /dev/null +++ b/package/dist/lib.cjs/helper/errors.js @@ -0,0 +1,301 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var _defineProperty = require('@babel/runtime/helpers/defineProperty'); + +/** + * Fix the prototype chain of the error + * + * Use Object.setPrototypeOf + * Support ES6 environments + * + * Fallback setting __proto__ + * Support IE11+, see https://docs.microsoft.com/en-us/scripting/javascript/reference/javascript-version-information + */ +function fixProto(target, prototype) { + const { + setPrototypeOf + } = Object; + if (setPrototypeOf) { + setPrototypeOf(target, prototype); + } else { + // eslint-disable-next-line no-proto, @typescript-eslint/no-explicit-any + target.__proto__ = prototype; + } +} + +/** + * Capture and fix the error stack when available + * + * Use Error.captureStackTrace + * Support v8 environments + */ +function fixStack(target, fn = target.constructor) { + const { + captureStackTrace + } = Error; + if (captureStackTrace) { + captureStackTrace(target, fn); + } +} + +// copy from https://github.com/microsoft/TypeScript/blob/main/lib/lib.es2022.error.d.ts +// avoid typescript isue https://github.com/adriengibrat/ts-custom-error/issues/81 + +/** + * Allows to easily extend a base class to create custom applicative errors. + * + * example: + * ``` + * class HttpError extends CustomError { + * public constructor( + * public code: number, + * message?: string, + * cause?: Error, + * ) { + * super(message, { cause }) + * } + * } + * + * new HttpError(404, 'Not found') + * ``` + */ +class CustomError extends Error { + constructor(message, options) { + super(message, options); + // set error name as constructor name, make it not enumerable to keep native Error behavior + // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target#new.target_in_constructors + // see https://github.com/adriengibrat/ts-custom-error/issues/30 + _defineProperty(this, "name", void 0); + Object.defineProperty(this, "name", { + value: new.target.name, + enumerable: false, + configurable: true + }); + // fix the extended error prototype chain + // because typescript __extends implementation can't + // see https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work + fixProto(this, new.target.prototype); + // try to remove contructor from stack trace + fixStack(this); + } +} +class AbstractCoreKitError extends CustomError { + constructor(code, message) { + // takes care of stack and proto + super(message); + _defineProperty(this, "code", void 0); + _defineProperty(this, "message", void 0); + this.code = code; + this.message = message || ""; + // Set name explicitly as minification can mangle class names + Object.defineProperty(this, "name", { + value: "TkeyError" + }); + } + toJSON() { + return { + name: this.name, + code: this.code, + message: this.message + }; + } + toString() { + return JSON.stringify(this.toJSON()); + } +} + +/** + * CoreKitError, extension for Error using CustomError + * + * Usage: + * 1. throw CoreKitError.factorKeyNotPresent("Required factor key missing in the operation."); // Use a predefined method to throw a common error + * 2. throw CoreKitError.fromCode(1001); // Throw an error using a code for a common error + * 3. throw new CoreKitError(1102, "'tkey' instance has not been initialized."); // Throw a specific error with a custom message + * + * Guide: + * 1000 - Configuration errors + * 1100 - TSS and key management errors + * 1200 - Factor key and authentication errors + * 1300 - Initialization and session management + */ +class CoreKitError extends AbstractCoreKitError { + constructor(code, message) { + super(code, message); + Object.defineProperty(this, "name", { + value: "CoreKitError" + }); + } + static fromCode(code, extraMessage = "") { + return new CoreKitError(code, `${CoreKitError.messages[code]} ${extraMessage}`); + } + static default(extraMessage = "") { + return new CoreKitError(1000, `${CoreKitError.messages[1000]} ${extraMessage}`); + } + + // Configuration errors + static chainConfigInvalid(extraMessage = "") { + return CoreKitError.fromCode(1001, extraMessage); + } + static clientIdInvalid(extraMessage = "") { + return CoreKitError.fromCode(1002, extraMessage); + } + static storageTypeUnsupported(extraMessage = "") { + return CoreKitError.fromCode(1003, extraMessage); + } + static oauthLoginUnsupported(extraMessage = "") { + return CoreKitError.fromCode(1004, extraMessage); + } + static noValidStorageOptionFound(extraMessage = "") { + return CoreKitError.fromCode(1005, extraMessage); + } + static noDataFoundInStorage(extraMessage = "") { + return CoreKitError.fromCode(1006, extraMessage); + } + static invalidConfig(extraMessage = "") { + return CoreKitError.fromCode(1007, extraMessage); + } + + // TSS and key management errors + static tssLibRequired(extraMessage = "") { + return CoreKitError.fromCode(1101, extraMessage); + } + static tkeyInstanceUninitialized(extraMessage = "") { + return CoreKitError.fromCode(1102, extraMessage); + } + static duplicateTssIndex(extraMessage = "") { + return CoreKitError.fromCode(1103, extraMessage); + } + static nodeDetailsRetrievalFailed(extraMessage = "") { + return CoreKitError.fromCode(1104, extraMessage); + } + static prefetchValueExceeded(extraMessage = "") { + return CoreKitError.fromCode(1105, extraMessage); + } + static invalidTorusLoginResponse(extraMessage = "") { + return CoreKitError.fromCode(1106, extraMessage); + } + static invalidTorusAggregateLoginResponse(extraMessage = "") { + return CoreKitError.fromCode(1107, extraMessage); + } + static unsupportedRedirectMethod(extraMessage = "") { + return CoreKitError.fromCode(1108, extraMessage); + } + static postBoxKeyMissing(extraMessage = "") { + return CoreKitError.fromCode(1109, extraMessage); + } + static tssShareTypeIndexMissing(extraMessage = "") { + return CoreKitError.fromCode(1110, extraMessage); + } + static tssPublicKeyOrEndpointsMissing(extraMessage = "") { + return CoreKitError.fromCode(1111, extraMessage); + } + static activeSessionNotFound(extraMessage = "") { + return CoreKitError.fromCode(1112, extraMessage); + } + static tssNoncesMissing(extraMessage = "") { + return CoreKitError.fromCode(1113, extraMessage); + } + static tssKeyImportNotAllowed(extraMessage = "") { + return CoreKitError.fromCode(1114, extraMessage); + } + + // Factor key and authentication errors + static factorKeyNotPresent(extraMessage = "") { + return CoreKitError.fromCode(1201, extraMessage); + } + static factorKeyAlreadyExists(extraMessage = "") { + return CoreKitError.fromCode(1202, extraMessage); + } + static mfaAlreadyEnabled(extraMessage = "") { + return CoreKitError.fromCode(1203, extraMessage); + } + static cannotDeleteLastFactor(extraMessage = "") { + return CoreKitError.fromCode(1204, extraMessage); + } + static factorInUseCannotBeDeleted(extraMessage = "") { + return CoreKitError.fromCode(1205, extraMessage); + } + static userNotLoggedIn(extraMessage = "") { + return CoreKitError.fromCode(1206, extraMessage); + } + static providedFactorKeyInvalid(extraMessage = "") { + return CoreKitError.fromCode(1207, extraMessage); + } + static factorEncsMissing(extraMessage = "") { + return CoreKitError.fromCode(1208, extraMessage); + } + static noMetadataFound(extraMessage = "") { + return CoreKitError.fromCode(1209, extraMessage); + } + static newShareIndexInvalid(extraMessage = "") { + return CoreKitError.fromCode(1210, extraMessage); + } + static maximumFactorsReached(extraMessage = "") { + return CoreKitError.fromCode(1211, extraMessage); + } + static noMetadataShareFound(extraMessage = "") { + return CoreKitError.fromCode(1212, extraMessage); + } + static signaturesNotPresent(extraMessage = "") { + return CoreKitError.fromCode(1213, extraMessage); + } + static factorPubsMissing(extraMessage = "") { + return CoreKitError.fromCode(1214, extraMessage); + } + + // Initialization and session management + static commitChangesBeforeMFA(extraMessage = "") { + return CoreKitError.fromCode(1301, extraMessage); + } + static mpcCoreKitNotInitialized(extraMessage = "") { + return CoreKitError.fromCode(1302, extraMessage); + } +} +_defineProperty(CoreKitError, "messages", { + // Configuration errors + 1001: "You must specify a valid eip155 chain configuration in the options.", + 1002: "You must specify a web3auth clientId.", + 1003: "Unsupported storage type in this UX mode.", + 1004: "OAuth login is NOT supported in this UX mode.", + 1005: "No valid storage option found.", + 1006: "No data found in storage.", + 1007: "Invalid config.", + // TSS and key management errors + 1101: "'tssLib' is required when running in this UX mode.", + 1102: "'tkey' instance has not been initialized.", + 1103: "Duplicate TSS index found. Ensure that each TSS index is unique.", + 1104: "Failed to retrieve node details. Please check your network connection and try again.", + 1105: "The prefetch TSS public keys exceeds the maximum allowed limit of 3.", + 1106: "Invalid 'TorusLoginResponse' data provided.", + 1107: "Invalid 'TorusAggregateLoginResponse' data provided.", + 1108: "Unsupported method type encountered in redirect result.", + 1109: "OAuthKey not present in state.", + 1110: "TSS Share Type (Index) not present in state when getting current factor key.", + 1111: "'tssPubKey' or 'torusNodeTSSEndpoints' are missing.", + 1112: "No active session found.", + 1113: "tssNonces not present in metadata when getting tss nonce.", + 1114: "A TSS key cannot be imported for an existing user who already has a key configured.", + // Factor key and authentication errors + 1201: "factorKey not present in state when required.", + 1202: "A factor with the same key already exists.", + 1203: "MFA is already enabled.", + 1204: "Cannot delete the last remaining factor as at least one factor is required.", + 1205: "The factor currently in use cannot be deleted.", + 1206: "User is not logged in.", + 1207: "Provided factor key is invalid.", + 1208: "'factorEncs' mpt [resemt].", + 1209: "No metadata found for the provided factor key. Consider resetting your account if this error persists.", + 1210: "The new share index is not valid. It must be one of the valid share indices.", + 1211: "The maximum number of allowable factors (10) has been reached.", + 1212: "No metadata share found in the current polynomial.", + 1213: "No signatures found.", + 1214: "Factor public keys not present", + // Initialization and session management + 1301: "The 'CommitChanges' method must be called before enabling MFA.", + 1302: "The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations." +}); + +exports.CustomError = CustomError; +exports.default = CoreKitError; diff --git a/package/dist/lib.cjs/helper/factorSerialization.js b/package/dist/lib.cjs/helper/factorSerialization.js new file mode 100644 index 00000000..ac2d7b10 --- /dev/null +++ b/package/dist/lib.cjs/helper/factorSerialization.js @@ -0,0 +1,28 @@ +'use strict'; + +var shareSerialization = require('@tkey/share-serialization'); +var BN = require('bn.js'); + +/** + * Converts a mnemonic to a BN. + * @param shareMnemonic - The mnemonic to convert. + * @returns A BN respective to your mnemonic + */ +function mnemonicToKey(shareMnemonic) { + const factorKey = shareSerialization.ShareSerializationModule.deserializeMnemonic(shareMnemonic); + return factorKey.toString("hex"); +} + +/** + * Converts a BN to a mnemonic. + * @param shareBN - The BN to convert. + * @returns A mnemonic respective to your BN + */ +function keyToMnemonic(shareHex) { + const shareBN = new BN(shareHex, "hex"); + const mnemonic = shareSerialization.ShareSerializationModule.serializeMnemonic(shareBN); + return mnemonic; +} + +exports.keyToMnemonic = keyToMnemonic; +exports.mnemonicToKey = mnemonicToKey; diff --git a/package/dist/lib.cjs/helper/securityQuestion.js b/package/dist/lib.cjs/helper/securityQuestion.js new file mode 100644 index 00000000..ff6ef721 --- /dev/null +++ b/package/dist/lib.cjs/helper/securityQuestion.js @@ -0,0 +1,214 @@ +'use strict'; + +var _objectSpread = require('@babel/runtime/helpers/objectSpread2'); +var _defineProperty = require('@babel/runtime/helpers/defineProperty'); +var commonTypes = require('@tkey/common-types'); +var tss = require('@tkey/tss'); +var torus_js = require('@toruslabs/torus.js'); +var BN = require('bn.js'); +var constants = require('../constants.js'); + +class TssSecurityQuestionStore { + constructor(shareIndex, factorPublicKey, question) { + _defineProperty(this, "shareIndex", void 0); + _defineProperty(this, "factorPublicKey", void 0); + _defineProperty(this, "question", void 0); + this.shareIndex = shareIndex; + this.factorPublicKey = factorPublicKey; + this.question = question; + } + static fromJSON(json) { + const { + shareIndex, + factorPublicKey, + question + } = json; + return new TssSecurityQuestionStore(shareIndex, factorPublicKey, question); + } + toJSON() { + return { + shareIndex: this.shareIndex, + factorPublicKey: this.factorPublicKey, + question: this.question + }; + } +} +class TssSecurityQuestion { + constructor() { + _defineProperty(this, "storeDomainName", "tssSecurityQuestion"); + } + async setSecurityQuestion(params) { + const { + mpcCoreKit, + question, + answer, + description + } = params; + let { + shareType + } = params; + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + if (!question || !answer) { + throw new Error("question and answer are required"); + } + const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; + + // default using recovery index + if (!shareType) { + shareType = constants.TssShareType.RECOVERY; + } else if (!constants.VALID_SHARE_INDICES.includes(shareType)) { + throw new Error(`invalid share type: must be one of ${constants.VALID_SHARE_INDICES}`); + } + // Check for existing security question + const tkey = mpcCoreKit.tKey; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (storeDomain && storeDomain.question) { + throw new Error("Security question already exists"); + } + + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(commonTypes.secp256k1, true).toString("hex") + tkey.tssTag; + let hash = torus_js.keccak256(Buffer.from(answer + pubKey, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new BN(hash, "hex"); + const descriptionFinal = _objectSpread({ + question + }, description); + await mpcCoreKit.createFactor({ + factorKey: factorKeyBN, + shareType, + shareDescription: constants.FactorKeyTypeShareDescription.SecurityQuestions, + additionalMetadata: descriptionFinal + }); + // set store domain + const tkeyPt = tss.getPubKeyPoint(factorKeyBN, tss.factorKeyCurve); + const factorPub = tkeyPt.toSEC1(tss.factorKeyCurve, true).toString("hex"); + const storeData = new TssSecurityQuestionStore(shareType.toString(), factorPub, question); + tkey.metadata.setGeneralStoreDomain(domainKey, storeData.toJSON()); + + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + return factorKeyBN.toString("hex").padStart(64, "0"); + } + async changeSecurityQuestion(params) { + const { + mpcCoreKit, + newQuestion, + newAnswer, + answer + } = params; + if (!newQuestion || !newAnswer || !answer) { + throw new Error("question and answer are required"); + } + // Check for existing security question + const tkey = mpcCoreKit.tKey; + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(commonTypes.secp256k1, true).toString("hex") + tkey.tssTag; + const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + const preHash = answer + pubKey; + let hash = torus_js.keccak256(Buffer.from(preHash, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new BN(hash, "hex"); + const factorKeyPt = tss.getPubKeyPoint(factorKeyBN, tss.factorKeyCurve); + if (factorKeyPt.toSEC1(tss.factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { + throw new Error("Invalid answer"); + } + + // create new factor key + const prenewHash = newAnswer + pubKey; + let newHash = torus_js.keccak256(Buffer.from(prenewHash, "utf8")); + newHash = newHash.startsWith("0x") ? newHash.slice(2) : newHash; + const newAnswerBN = new BN(newHash, "hex"); + const newFactorPt = commonTypes.Point.fromScalar(newAnswerBN, tss.factorKeyCurve); + await mpcCoreKit.createFactor({ + factorKey: newAnswerBN, + shareType: parseInt(store.shareIndex), + shareDescription: constants.FactorKeyTypeShareDescription.SecurityQuestions + }); + + // update mpcCoreKit state to use new factor key during change password if mpc factor key is security question factor + if (mpcCoreKit.state.factorKey.eq(factorKeyBN)) { + await mpcCoreKit.inputFactorKey(newAnswerBN); + } + // delete after create factor to prevent last key issue + // delete old factor key and device share + await mpcCoreKit.deleteFactor(factorKeyPt, factorKeyBN); + store.factorPublicKey = newFactorPt.toSEC1(tss.factorKeyCurve, true).toString("hex"); + store.question = newQuestion; + tkey.metadata.setGeneralStoreDomain(domainKey, store.toJSON()); + + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + } + + // Should we check with answer before deleting? + async deleteSecurityQuestion(mpcCoreKit, deleteFactorKey = true) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const tkey = mpcCoreKit.tKey; + if (deleteFactorKey) { + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + if (store.factorPublicKey) { + await mpcCoreKit.deleteFactor(commonTypes.Point.fromSEC1(tss.factorKeyCurve, store.factorPublicKey)); + } + } + tkey.metadata.deleteGeneralStoreDomain(domainKey); + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + } + async recoverFactor(mpcCoreKit, answer) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + if (!answer) { + throw new Error("question and answer are required"); + } + const tkey = mpcCoreKit.tKey; + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(commonTypes.secp256k1, true).toString("hex") + tkey.tssTag; + let hash = torus_js.keccak256(Buffer.from(answer + pubKey, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new BN(hash, "hex"); + const factorKeyPt = commonTypes.Point.fromScalar(factorKeyBN, tss.factorKeyCurve); + if (factorKeyPt.toSEC1(tss.factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { + throw new Error("Invalid answer"); + } + return hash; + } + getQuestion(mpcCoreKit) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + const tkey = mpcCoreKit.tKey; + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + return store.question; + } +} + +exports.TssSecurityQuestion = TssSecurityQuestion; +exports.TssSecurityQuestionStore = TssSecurityQuestionStore; diff --git a/package/dist/lib.cjs/index.js b/package/dist/lib.cjs/index.js new file mode 100644 index 00000000..f88c21be --- /dev/null +++ b/package/dist/lib.cjs/index.js @@ -0,0 +1,56 @@ +'use strict'; + +var constants = require('./constants.js'); +var browserStorage = require('./helper/browserStorage.js'); +var factorSerialization = require('./helper/factorSerialization.js'); +var securityQuestion = require('./helper/securityQuestion.js'); +var interfaces = require('./interfaces.js'); +var mpcCoreKit = require('./mpcCoreKit.js'); +var utils = require('./utils.js'); +var tss = require('@tkey/tss'); + + + +exports.DELIMITERS = constants.DELIMITERS; +exports.ERRORS = constants.ERRORS; +exports.FIELD_ELEMENT_HEX_LEN = constants.FIELD_ELEMENT_HEX_LEN; +exports.FactorKeyTypeShareDescription = constants.FactorKeyTypeShareDescription; +exports.MAX_FACTORS = constants.MAX_FACTORS; +exports.SCALAR_LEN = constants.SCALAR_LEN; +exports.SOCIAL_FACTOR_INDEX = constants.SOCIAL_FACTOR_INDEX; +exports.SOCIAL_TKEY_INDEX = constants.SOCIAL_TKEY_INDEX; +exports.TssShareType = constants.TssShareType; +exports.USER_PATH = constants.USER_PATH; +exports.VALID_SHARE_INDICES = constants.VALID_SHARE_INDICES; +exports.WEB3AUTH_NETWORK = constants.WEB3AUTH_NETWORK; +exports.AsyncStorage = browserStorage.AsyncStorage; +exports.MemoryStorage = browserStorage.MemoryStorage; +exports.keyToMnemonic = factorSerialization.keyToMnemonic; +exports.mnemonicToKey = factorSerialization.mnemonicToKey; +exports.TssSecurityQuestion = securityQuestion.TssSecurityQuestion; +exports.TssSecurityQuestionStore = securityQuestion.TssSecurityQuestionStore; +exports.COREKIT_STATUS = interfaces.COREKIT_STATUS; +exports.Web3AuthMPCCoreKit = mpcCoreKit.Web3AuthMPCCoreKit; +exports.deriveShareCoefficients = utils.deriveShareCoefficients; +exports.ed25519 = utils.ed25519; +exports.fraction = utils.fraction; +exports.generateEd25519Seed = utils.generateEd25519Seed; +exports.generateFactorKey = utils.generateFactorKey; +exports.generateSessionNonce = utils.generateSessionNonce; +exports.generateTSSEndpoints = utils.generateTSSEndpoints; +exports.getHashedPrivateKey = utils.getHashedPrivateKey; +exports.getSessionId = utils.getSessionId; +exports.lagrangeCoefficient = utils.lagrangeCoefficient; +exports.lagrangeCoefficients = utils.lagrangeCoefficients; +exports.log = utils.log; +exports.makeEthereumSigner = utils.makeEthereumSigner; +exports.parseToken = utils.parseToken; +exports.randomBytes = utils.randomBytes; +exports.sampleEndpoints = utils.sampleEndpoints; +exports.scalarBNToBufferSEC1 = utils.scalarBNToBufferSEC1; +exports.sigToRSV = utils.sigToRSV; +exports.storageAvailable = utils.storageAvailable; +Object.defineProperty(exports, "factorKeyCurve", { + enumerable: true, + get: function () { return tss.factorKeyCurve; } +}); diff --git a/package/dist/lib.cjs/interfaces.js b/package/dist/lib.cjs/interfaces.js new file mode 100644 index 00000000..d5891157 --- /dev/null +++ b/package/dist/lib.cjs/interfaces.js @@ -0,0 +1,13 @@ +'use strict'; + +// TODO: move the types to a base class for both dkls and frost in future + +let COREKIT_STATUS = /*#__PURE__*/function (COREKIT_STATUS) { + COREKIT_STATUS["NOT_INITIALIZED"] = "NOT_INITIALIZED"; + COREKIT_STATUS["INITIALIZED"] = "INITIALIZED"; + COREKIT_STATUS["REQUIRED_SHARE"] = "REQUIRED_SHARE"; + COREKIT_STATUS["LOGGED_IN"] = "LOGGED_IN"; + return COREKIT_STATUS; +}({}); + +exports.COREKIT_STATUS = COREKIT_STATUS; diff --git a/package/dist/lib.cjs/mpcCoreKit.js b/package/dist/lib.cjs/mpcCoreKit.js new file mode 100644 index 00000000..ccdb1a0a --- /dev/null +++ b/package/dist/lib.cjs/mpcCoreKit.js @@ -0,0 +1,1404 @@ +'use strict'; + +var _objectSpread = require('@babel/runtime/helpers/objectSpread2'); +var _defineProperty = require('@babel/runtime/helpers/defineProperty'); +var commonTypes = require('@tkey/common-types'); +var core = require('@tkey/core'); +var shareSerialization = require('@tkey/share-serialization'); +var storageLayerTorus = require('@tkey/storage-layer-torus'); +var tss = require('@tkey/tss'); +var constants$1 = require('@toruslabs/constants'); +var customauth = require('@toruslabs/customauth'); +var ellipticWrapper = require('@toruslabs/elliptic-wrapper'); +var fndBase = require('@toruslabs/fnd-base'); +var metadataHelpers = require('@toruslabs/metadata-helpers'); +var sessionManager = require('@toruslabs/session-manager'); +var torus_js = require('@toruslabs/torus.js'); +var tssClient = require('@toruslabs/tss-client'); +var tssFrostClient = require('@toruslabs/tss-frost-client'); +var BN = require('bn.js'); +var bowser = require('bowser'); +var elliptic = require('elliptic'); +var constants = require('./constants.js'); +var browserStorage = require('./helper/browserStorage.js'); +var errors = require('./helper/errors.js'); +var interfaces = require('./interfaces.js'); +var utils = require('./utils.js'); + +class Web3AuthMPCCoreKit { + constructor(options) { + var _window; + _defineProperty(this, "state", { + accountIndex: 0 + }); + _defineProperty(this, "torusSp", null); + _defineProperty(this, "options", void 0); + _defineProperty(this, "storageLayer", null); + _defineProperty(this, "tkey", null); + _defineProperty(this, "sessionManager", void 0); + _defineProperty(this, "currentStorage", void 0); + _defineProperty(this, "_storageBaseKey", "corekit_store"); + _defineProperty(this, "enableLogging", false); + _defineProperty(this, "ready", false); + _defineProperty(this, "_tssLib", void 0); + _defineProperty(this, "wasmLib", void 0); + _defineProperty(this, "_keyType", void 0); + _defineProperty(this, "atomicCallStackCounter", 0); + _defineProperty(this, "getTssFactorPub", () => { + this.checkReady(); + if (!this.state.factorKey) { + throw errors.default.factorKeyNotPresent("factorKey not present in state when getting tss factor public key."); + } + const factorPubsList = this.tKey.metadata.factorPubs[this.tKey.tssTag]; + return factorPubsList.map(factorPub => factorPub.toSEC1(tss.factorKeyCurve, true).toString("hex")); + }); + if (!options.web3AuthClientId) { + throw errors.default.clientIdInvalid(); + } + this._tssLib = options.tssLib; + this._keyType = options.tssLib.keyType; + const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); + if (options.enableLogging) { + utils.log.enableAll(); + this.enableLogging = true; + } else utils.log.setLevel("error"); + if (typeof options.manualSync !== "boolean") options.manualSync = false; + if (!options.web3AuthNetwork) options.web3AuthNetwork = constants.WEB3AUTH_NETWORK.MAINNET; + // if sessionTime is not provided, it is defaulted to 86400 + if (!options.sessionTime) options.sessionTime = 86400; + if (!options.serverTimeOffset) options.serverTimeOffset = 0; + if (!options.uxMode) options.uxMode = customauth.UX_MODE.REDIRECT; + if (!options.redirectPathName) options.redirectPathName = "redirect"; + if (!options.baseUrl) options.baseUrl = isNodejsOrRN ? "https://localhost" : `${(_window = window) === null || _window === void 0 ? void 0 : _window.location.origin}/serviceworker`; + if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; + if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; + if (options.disableSessionManager === undefined) options.disableSessionManager = false; + this.options = options; + this.currentStorage = new browserStorage.AsyncStorage(this._storageBaseKey, options.storage); + if (!options.disableSessionManager) { + this.sessionManager = new sessionManager.SessionManager({ + sessionTime: options.sessionTime + }); + } + torus_js.Torus.setSessionTime(this.options.sessionTime); + } + get tKey() { + if (this.tkey === null) { + throw errors.default.tkeyInstanceUninitialized(); + } + return this.tkey; + } + get keyType() { + return this._keyType; + } + get signatures() { + var _this$state; + return (_this$state = this.state) !== null && _this$state !== void 0 && _this$state.signatures ? this.state.signatures : []; + } + get _storageKey() { + return this._storageBaseKey; + } + get status() { + try { + // metadata will be present if tkey is initialized (1 share) + // if 2 shares are present, then privKey will be present after metadatakey(tkey) reconstruction + const { + tkey + } = this; + if (!tkey) return interfaces.COREKIT_STATUS.NOT_INITIALIZED; + if (!tkey.metadata) return interfaces.COREKIT_STATUS.INITIALIZED; + if (!tkey.secp256k1Key || !this.state.factorKey) return interfaces.COREKIT_STATUS.REQUIRED_SHARE; + return interfaces.COREKIT_STATUS.LOGGED_IN; + } catch (e) {} + return interfaces.COREKIT_STATUS.NOT_INITIALIZED; + } + get sessionId() { + var _this$sessionManager; + return (_this$sessionManager = this.sessionManager) === null || _this$sessionManager === void 0 ? void 0 : _this$sessionManager.sessionId; + } + get supportsAccountIndex() { + return this._keyType !== commonTypes.KeyType.ed25519; + } + get verifier() { + var _this$state$userInfo, _this$state2; + if ((_this$state$userInfo = this.state.userInfo) !== null && _this$state$userInfo !== void 0 && _this$state$userInfo.aggregateVerifier) { + return this.state.userInfo.aggregateVerifier; + } + return (_this$state2 = this.state) !== null && _this$state2 !== void 0 && (_this$state2 = _this$state2.userInfo) !== null && _this$state2 !== void 0 && _this$state2.verifier ? this.state.userInfo.verifier : ""; + } + get verifierId() { + var _this$state3; + return (_this$state3 = this.state) !== null && _this$state3 !== void 0 && (_this$state3 = _this$state3.userInfo) !== null && _this$state3 !== void 0 && _this$state3.verifierId ? this.state.userInfo.verifierId : ""; + } + get isRedirectMode() { + return this.options.uxMode === customauth.UX_MODE.REDIRECT; + } + get useClientGeneratedTSSKey() { + return this.keyType === commonTypes.KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; + } + + // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : + // TssShareType.DEVICE and TssShareType.RECOVERY + // if the factors key provided is the same type recovery will not works + async _UNSAFE_recoverTssKey(factorKey) { + this.checkReady(); + const factorKeyBN = new BN(factorKey[0], "hex"); + const shareStore0 = await this.getFactorKeyMetadata(factorKeyBN); + await this.tKey.initialize({ + withShare: shareStore0 + }); + const tssShares = []; + const tssIndexes = []; + const tssIndexesBN = []; + for (let i = 0; i < factorKey.length; i++) { + const factorKeyBNInput = new BN(factorKey[i], "hex"); + const { + tssIndex, + tssShare + } = await this.tKey.getTSSShare(factorKeyBNInput); + if (tssIndexes.includes(tssIndex)) { + // reset instance before throw error + await this.init(); + throw errors.default.duplicateTssIndex(); + } + tssIndexes.push(tssIndex); + tssIndexesBN.push(new BN(tssIndex)); + tssShares.push(tssShare); + } + const finalKey = tss.lagrangeInterpolation(this.tkey.tssCurve, tssShares, tssIndexesBN); + // reset instance after recovery completed + await this.init(); + return finalKey.toString("hex", 64); + } + async init(params = { + handleRedirectResult: true + }) { + var _window2, _window3; + this.resetState(); + if (params.rehydrate === undefined) params.rehydrate = true; + const nodeDetails = fndBase.fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); + if (this.keyType === constants$1.KEY_TYPE.ED25519 && this.options.useDKG) { + throw errors.default.invalidConfig("DKG is not supported for ed25519 key type"); + } + this.torusSp = new tss.TSSTorusServiceProvider({ + customAuthArgs: { + web3AuthClientId: this.options.web3AuthClientId, + baseUrl: this.options.baseUrl, + uxMode: this.isNodejsOrRN(this.options.uxMode) ? customauth.UX_MODE.REDIRECT : this.options.uxMode, + network: this.options.web3AuthNetwork, + redirectPathName: this.options.redirectPathName, + locationReplaceOnRedirect: true, + serverTimeOffset: this.options.serverTimeOffset, + keyType: this.keyType, + useDkg: this.options.useDKG + } + }); + this.storageLayer = new storageLayerTorus.TorusStorageLayer({ + hostUrl: `${new URL(nodeDetails.torusNodeEndpoints[0]).origin}/metadata`, + enableLogging: this.enableLogging + }); + const shareSerializationModule = new shareSerialization.ShareSerializationModule(); + this.tkey = new tss.TKeyTSS({ + enableLogging: this.enableLogging, + serviceProvider: this.torusSp, + storageLayer: this.storageLayer, + manualSync: this.options.manualSync, + modules: { + shareSerialization: shareSerializationModule + }, + tssKeyType: this.keyType + }); + if (this.isRedirectMode) { + await this.torusSp.init({ + skipSw: true, + skipPrefetch: true + }); + } else if (this.options.uxMode === customauth.UX_MODE.POPUP) { + await this.torusSp.init({}); + } + this.ready = true; + + // try handle redirect flow if enabled and return(redirect) from oauth login + if (params.handleRedirectResult && this.options.uxMode === customauth.UX_MODE.REDIRECT && ((_window2 = window) !== null && _window2 !== void 0 && _window2.location.hash.includes("#state") || (_window3 = window) !== null && _window3 !== void 0 && _window3.location.hash.includes("#access_token"))) { + // on failed redirect, instance is reseted. + // skip check feature gating on redirection as it was check before login + await this.handleRedirectResult(); + + // return early on successful redirect, the rest of the code will not be executed + return; + } else if (params.rehydrate && this.sessionManager) { + // if not redirect flow try to rehydrate session if available + const sessionId = await this.currentStorage.get("sessionId"); + if (sessionId) { + this.sessionManager.sessionId = sessionId; + + // swallowed, should not throw on rehydrate timed out session + const sessionResult = await this.sessionManager.authorizeSession().catch(async err => { + utils.log.error("rehydrate session error", err); + }); + + // try rehydrate session + if (sessionResult) { + await this.rehydrateSession(sessionResult); + + // return early on success rehydration + return; + } + } + } + // feature gating if not redirect flow or session rehydration + await this.featureRequest(); + } + async loginWithOAuth(params) { + this.checkReady(); + if (this.isNodejsOrRN(this.options.uxMode)) { + throw errors.default.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`); + } + const { + importTssKey + } = params; + const tkeyServiceProvider = this.torusSp; + try { + // oAuth login. + const verifierParams = params; + const aggregateParams = params; + if (verifierParams.subVerifierDetails) { + var _loginResponse$nodesD; + // single verifier login. + const loginResponse = await tkeyServiceProvider.triggerLogin(params.subVerifierDetails); + if (this.isRedirectMode) return; + this.updateState({ + postBoxKey: this._getPostBoxKey(loginResponse), + postboxKeyNodeIndexes: (_loginResponse$nodesD = loginResponse.nodesData) === null || _loginResponse$nodesD === void 0 ? void 0 : _loginResponse$nodesD.nodeIndexes, + userInfo: loginResponse.userInfo, + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + } else if (aggregateParams.subVerifierDetailsArray) { + var _loginResponse$nodesD2; + const loginResponse = await tkeyServiceProvider.triggerAggregateLogin({ + aggregateVerifierType: aggregateParams.aggregateVerifierType || customauth.AGGREGATE_VERIFIER.SINGLE_VERIFIER_ID, + verifierIdentifier: aggregateParams.aggregateVerifierIdentifier, + subVerifierDetailsArray: aggregateParams.subVerifierDetailsArray + }); + if (this.isRedirectMode) return; + this.updateState({ + postBoxKey: this._getPostBoxKey(loginResponse), + postboxKeyNodeIndexes: (_loginResponse$nodesD2 = loginResponse.nodesData) === null || _loginResponse$nodesD2 === void 0 ? void 0 : _loginResponse$nodesD2.nodeIndexes, + userInfo: loginResponse.userInfo[0], + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + } + await this.setupTkey(importTssKey); + } catch (err) { + utils.log.error("login error", err); + if (err instanceof core.CoreError) { + if (err.code === 1302) { + throw errors.default.default(constants.ERRORS.TKEY_SHARES_REQUIRED); + } + } + throw errors.default.default(err.message); + } + } + async loginWithJWT(params) { + this.checkReady(); + const { + prefetchTssPublicKeys = 1 + } = params; + if (prefetchTssPublicKeys > 3) { + throw errors.default.prefetchValueExceeded(`The prefetch value '${prefetchTssPublicKeys}' exceeds the maximum allowed limit of 3.`); + } + const { + verifier, + verifierId, + idToken, + importTssKey + } = params; + this.torusSp.verifierName = verifier; + this.torusSp.verifierId = verifierId; + try { + var _loginResponse$nodesD3; + // prefetch tss pub keys. + const prefetchTssPubs = []; + for (let i = 0; i < prefetchTssPublicKeys; i++) { + prefetchTssPubs.push(this.torusSp.getTSSPubKey(this.tkey.tssTag, i)); + } + + // get postbox key. + let loginPromise; + if (!params.subVerifier) { + // single verifier login. + loginPromise = this.torusSp.customAuthInstance.getTorusKey(verifier, verifierId, { + verifier_id: verifierId + }, idToken, _objectSpread(_objectSpread({}, params.extraVerifierParams), params.additionalParams)); + } else { + // aggregate verifier login + loginPromise = this.torusSp.customAuthInstance.getAggregateTorusKey(verifier, verifierId, [{ + verifier: params.subVerifier, + idToken, + extraVerifierParams: params.extraVerifierParams + }]); + } + + // wait for prefetch completed before setup tkey + const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]); + const postBoxKey = this._getPostBoxKey(loginResponse); + this.torusSp.postboxKey = new BN(postBoxKey, "hex"); + this.updateState({ + postBoxKey, + postboxKeyNodeIndexes: ((_loginResponse$nodesD3 = loginResponse.nodesData) === null || _loginResponse$nodesD3 === void 0 ? void 0 : _loginResponse$nodesD3.nodeIndexes) || [], + userInfo: _objectSpread(_objectSpread({}, utils.parseToken(idToken)), {}, { + verifier, + verifierId + }), + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + await this.setupTkey(importTssKey); + } catch (err) { + utils.log.error("login error", err); + if (err instanceof core.CoreError) { + if (err.code === 1302) { + const newError = errors.default.default(constants.ERRORS.TKEY_SHARES_REQUIRED); + newError.stack = err.stack; + throw newError; + } + } + const newError = errors.default.default(err.message); + newError.stack = err.stack; + throw newError; + } + } + async handleRedirectResult() { + this.checkReady(); + try { + const result = await this.torusSp.customAuthInstance.getRedirectResult(); + if (result.method === customauth.TORUS_METHOD.TRIGGER_LOGIN) { + var _data$nodesData; + const data = result.result; + if (!data) { + throw errors.default.invalidTorusLoginResponse(); + } + this.updateState({ + postBoxKey: this._getPostBoxKey(data), + postboxKeyNodeIndexes: ((_data$nodesData = data.nodesData) === null || _data$nodesData === void 0 ? void 0 : _data$nodesData.nodeIndexes) || [], + userInfo: data.userInfo, + signatures: this._getSignatures(data.sessionData.sessionTokenData) + }); + const userInfo = this.getUserInfo(); + this.torusSp.verifierName = userInfo.verifier; + } else if (result.method === customauth.TORUS_METHOD.TRIGGER_AGGREGATE_LOGIN) { + var _data$nodesData2; + const data = result.result; + if (!data) { + throw errors.default.invalidTorusAggregateLoginResponse(); + } + this.updateState({ + postBoxKey: this._getPostBoxKey(data), + postboxKeyNodeIndexes: ((_data$nodesData2 = data.nodesData) === null || _data$nodesData2 === void 0 ? void 0 : _data$nodesData2.nodeIndexes) || [], + userInfo: data.userInfo[0], + signatures: this._getSignatures(data.sessionData.sessionTokenData) + }); + const userInfo = this.getUserInfo(); + this.torusSp.verifierName = userInfo.aggregateVerifier; + } else { + throw errors.default.unsupportedRedirectMethod(); + } + const userInfo = this.getUserInfo(); + if (!this.state.postBoxKey) { + throw errors.default.postBoxKeyMissing("postBoxKey not present in state after processing redirect result."); + } + this.torusSp.postboxKey = new BN(this.state.postBoxKey, "hex"); + this.torusSp.verifierId = userInfo.verifierId; + await this.setupTkey(); + } catch (error) { + this.resetState(); + utils.log.error("error while handling redirect result", error); + throw errors.default.default(error.message); + } + } + async inputFactorKey(factorKey) { + this.checkReady(); + try { + // input tkey device share when required share > 0 ( or not reconstructed ) + // assumption tkey shares will not changed + if (!this.tKey.secp256k1Key) { + const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + } + + // Finalize initialization. + await this.tKey.reconstructKey(); + await this.finalizeTkey(factorKey); + } catch (err) { + utils.log.error("login error", err); + if (err instanceof core.CoreError) { + if (err.code === 1302) { + throw errors.default.default(constants.ERRORS.TKEY_SHARES_REQUIRED); + } + } + throw errors.default.default(err.message); + } + } + setTssWalletIndex(accountIndex) { + this.updateState({ + tssPubKey: this.tKey.getTSSPub(accountIndex).toSEC1(this.tkey.tssCurve, false), + accountIndex + }); + } + getCurrentFactorKey() { + this.checkReady(); + if (!this.state.factorKey) { + throw errors.default.factorKeyNotPresent("factorKey not present in state when getting current factor key."); + } + if (!this.state.tssShareIndex) { + throw errors.default.tssShareTypeIndexMissing("TSS Share Type (Index) not present in state when getting current factor key."); + } + try { + return { + factorKey: this.state.factorKey, + shareType: this.state.tssShareIndex + }; + } catch (err) { + utils.log.error("state error", err); + throw errors.default.default(err.message); + } + } + async enableMFA(enableMFAParams, recoveryFactor = true) { + this.checkReady(); + const { + postBoxKey + } = this.state; + const hashedFactorKey = utils.getHashedPrivateKey(postBoxKey, this.options.hashedFactorNonce); + if (!(await this.checkIfFactorKeyValid(hashedFactorKey))) { + if (this.tKey._localMetadataTransitions[0].length) { + throw errors.default.commitChangesBeforeMFA(); + } + throw errors.default.mfaAlreadyEnabled(); + } + return this.atomicSync(async () => { + let browserData; + if (this.isNodejsOrRN(this.options.uxMode)) { + browserData = { + browserName: "Node Env", + browserVersion: "", + deviceName: "nodejs" + }; + } else { + // try { + const browserInfo = bowser.parse(navigator.userAgent); + const browserName = `${browserInfo.browser.name}`; + browserData = { + browserName, + browserVersion: browserInfo.browser.version, + deviceName: browserInfo.os.name + }; + } + const deviceFactorKey = new BN(await this.createFactor({ + shareType: constants.TssShareType.DEVICE, + additionalMetadata: browserData + }), "hex"); + await this.setDeviceFactor(deviceFactorKey); + await this.inputFactorKey(new BN(deviceFactorKey, "hex")); + const hashedFactorPub = tss.getPubKeyPoint(hashedFactorKey, tss.factorKeyCurve); + await this.deleteFactor(hashedFactorPub, hashedFactorKey); + await this.deleteMetadataShareBackup(hashedFactorKey); + + // only recovery factor = true + let backupFactorKey; + if (recoveryFactor) { + backupFactorKey = await this.createFactor(_objectSpread({ + shareType: constants.TssShareType.RECOVERY + }, enableMFAParams)); + } + + // update to undefined for next major release + return backupFactorKey; + }).catch(reason => { + utils.log.error("error enabling MFA:", reason.message); + const err = errors.default.default(reason.message); + err.stack = reason.stack; + throw err; + }); + } + // mutation function + async createFactor(createFactorParams) { + this.checkReady(); + const { + shareType + } = createFactorParams; + let { + factorKey, + shareDescription, + additionalMetadata + } = createFactorParams; + if (!constants.VALID_SHARE_INDICES.includes(shareType)) { + throw errors.default.newShareIndexInvalid(`Invalid share type provided (${shareType}). Valid share types are ${constants.VALID_SHARE_INDICES}.`); + } + if (!factorKey) { + factorKey = utils.generateFactorKey().private; + } + if (!shareDescription) { + shareDescription = constants.FactorKeyTypeShareDescription.Other; + } + if (!additionalMetadata) { + additionalMetadata = {}; + } + const factorPub = tss.getPubKeyPoint(factorKey, tss.factorKeyCurve); + if (this.getTssFactorPub().includes(factorPub.toSEC1(tss.factorKeyCurve, true).toString("hex"))) { + throw errors.default.factorKeyAlreadyExists(); + } + return this.atomicSync(async () => { + await this.copyOrCreateShare(shareType, factorPub); + await this.backupMetadataShare(factorKey); + await this.addFactorDescription({ + factorKey, + shareDescription, + additionalMetadata, + updateMetadata: false + }); + return utils.scalarBNToBufferSEC1(factorKey).toString("hex"); + }).catch(reason => { + utils.log.error("error creating factor:", reason.message); + const err = errors.default.default(`error creating factor: ${reason.message}`); + err.stack = reason.stack; + throw err; + }); + } + + /** + * Get public key point in SEC1 format. + */ + getPubKey() { + const { + tssPubKey + } = this.state; + return Buffer.from(tssPubKey); + } + + /** + * Get public key point. + */ + getPubKeyPoint() { + const { + tssPubKey + } = this.state; + return commonTypes.Point.fromSEC1(this.tkey.tssCurve, tssPubKey.toString("hex")); + } + + /** + * Get public key in ed25519 format. + * + * Throws an error if keytype is not compatible with ed25519. + */ + getPubKeyEd25519() { + const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); + return utils.ed25519().keyFromPublic(p).getPublic(); + } + async precompute_secp256k1() { + this.wasmLib = await this.loadTssWasm(); + // PreSetup + const { + tssShareIndex + } = this.state; + const tssPubKey = this.getPubKeyPoint(); + const { + torusNodeTSSEndpoints + } = fndBase.fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); + if (!this.state.factorKey) { + throw errors.default.factorKeyNotPresent("factorKey not present in state when signing."); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey, { + accountIndex: 0 + }); + const tssNonce = this.getTssNonce(); + if (!tssPubKey || !torusNodeTSSEndpoints) { + throw errors.default.tssPublicKeyOrEndpointsMissing(); + } + + // session is needed for authentication to the web3auth infrastructure holding the factor 1 + const randomSessionNonce = utils.generateSessionNonce(); + const currentSession = utils.getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, randomSessionNonce); + const parties = 4; + const clientIndex = parties - 1; + // 1. setup + // generate endpoints for servers + const { + nodeIndexes + } = await this.torusSp.getTSSPubKey(this.tKey.tssTag, this.tKey.metadata.tssNonces[this.tKey.tssTag]); + const { + endpoints, + tssWSEndpoints, + partyIndexes, + nodeIndexesReturned: participatingServerDKGIndexes + } = utils.generateTSSEndpoints(torusNodeTSSEndpoints, parties, clientIndex, nodeIndexes); + + // Setup sockets. + const sockets = await tssClient.setupSockets(tssWSEndpoints, randomSessionNonce); + const dklsCoeff = tssClient.getDKLSCoeff(true, participatingServerDKGIndexes, tssShareIndex); + const denormalisedShare = dklsCoeff.mul(tssShare).umod(commonTypes.secp256k1.curve.n); + const accountNonce = this.tkey.computeAccountNonce(this.state.accountIndex); + const derivedShare = denormalisedShare.add(accountNonce).umod(commonTypes.secp256k1.curve.n); + const share = utils.scalarBNToBufferSEC1(derivedShare).toString("base64"); + if (!currentSession) { + throw errors.default.activeSessionNotFound(); + } + const { + signatures + } = this; + if (!signatures) { + throw errors.default.signaturesNotPresent(); + } + + // Client lib expects pub key in XY-format, base64-encoded. + const tssPubKeyBase64 = Buffer.from(tssPubKey.toSEC1(commonTypes.secp256k1).subarray(1)).toString("base64"); + const client = new tssClient.Client(currentSession, clientIndex, partyIndexes, endpoints, sockets, share, tssPubKeyBase64, true, this.wasmLib); + const serverCoeffs = {}; + for (let i = 0; i < participatingServerDKGIndexes.length; i++) { + const serverIndex = participatingServerDKGIndexes[i]; + serverCoeffs[serverIndex] = tssClient.getDKLSCoeff(false, participatingServerDKGIndexes, tssShareIndex, serverIndex).toString("hex"); + } + client.precompute({ + signatures, + server_coeffs: serverCoeffs, + nonce: utils.scalarBNToBufferSEC1(this.getAccountNonce()).toString("base64") + }); + await client.ready().catch(err => { + client.cleanup({ + signatures, + server_coeffs: serverCoeffs + }); + throw err; + }); + return { + client, + serverCoeffs + }; + } + async sign(data, hashed = false, secp256k1Precompute) { + this.wasmLib = await this.loadTssWasm(); + if (this.keyType === commonTypes.KeyType.secp256k1) { + const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); + return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); + } else if (this.keyType === commonTypes.KeyType.ed25519) { + return this.sign_ed25519(data, hashed); + } + throw errors.default.default(`sign not supported for key type ${this.keyType}`); + } + + // mutation function + async deleteFactor(factorPub, factorKey) { + if (!this.state.factorKey) { + throw errors.default.factorKeyNotPresent("factorKey not present in state when deleting a factor."); + } + if (!this.tKey.metadata.factorPubs) { + throw errors.default.factorPubsMissing(); + } + await this.atomicSync(async () => { + const remainingFactors = this.tKey.metadata.factorPubs[this.tKey.tssTag].length || 0; + if (remainingFactors <= 1) { + throw errors.default.cannotDeleteLastFactor("Cannot delete last factor"); + } + const fpp = factorPub; + const stateFpp = tss.getPubKeyPoint(this.state.factorKey, tss.factorKeyCurve); + if (fpp.equals(stateFpp)) { + throw errors.default.factorInUseCannotBeDeleted("Cannot delete current active factor"); + } + await this.tKey.deleteFactorPub({ + factorKey: this.state.factorKey, + deleteFactorPub: factorPub, + authSignatures: this.signatures + }); + const factorPubHex = fpp.toSEC1(tss.factorKeyCurve, true).toString("hex"); + const allDesc = this.tKey.metadata.getShareDescription(); + const keyDesc = allDesc[factorPubHex]; + if (keyDesc) { + await Promise.all(keyDesc.map(async desc => { + var _this$tKey; + return (_this$tKey = this.tKey) === null || _this$tKey === void 0 ? void 0 : _this$tKey.metadata.deleteShareDescription(factorPubHex, desc); + })); + } + + // delete factorKey share metadata if factorkey is provided + if (factorKey) { + const factorKeyBN = new BN(factorKey, "hex"); + const derivedFactorPub = tss.getPubKeyPoint(factorKeyBN, tss.factorKeyCurve); + // only delete if factorPub matches + if (derivedFactorPub.equals(fpp)) { + await this.deleteMetadataShareBackup(factorKeyBN); + } + } + }); + } + async logout() { + var _this$sessionManager2; + if ((_this$sessionManager2 = this.sessionManager) !== null && _this$sessionManager2 !== void 0 && _this$sessionManager2.sessionId) { + await this.sessionManager.invalidateSession(); + } + // to accommodate async storage + await this.currentStorage.set("sessionId", ""); + this.resetState(); + await this.init({ + handleRedirectResult: false, + rehydrate: false + }); + } + getUserInfo() { + if (!this.state.userInfo) { + throw errors.default.userNotLoggedIn(); + } + return this.state.userInfo; + } + getKeyDetails() { + this.checkReady(); + const tkeyDetails = this.tKey.getKeyDetails(); + const tssPubKey = this.state.tssPubKey ? commonTypes.Point.fromSEC1(this.tkey.tssCurve, this.state.tssPubKey.toString("hex")) : undefined; + const factors = this.tKey.metadata.factorPubs ? this.tKey.metadata.factorPubs[this.tKey.tssTag] : []; + const keyDetails = { + // use tkey's for now + requiredFactors: tkeyDetails.requiredShares, + threshold: tkeyDetails.threshold, + totalFactors: factors.length + 1, + shareDescriptions: this.tKey.getMetadata().getShareDescription(), + metadataPubKey: tkeyDetails.pubKey, + tssPubKey, + keyType: this.keyType + }; + return keyDetails; + } + async commitChanges() { + this.checkReady(); + if (!this.state.factorKey) { + throw errors.default.factorKeyNotPresent("factorKey not present in state when committing changes."); + } + try { + // in case for manualsync = true, _syncShareMetadata will not call syncLocalMetadataTransitions() + // it will not create a new LocalMetadataTransition + // manual call syncLocalMetadataTransitions() required to sync local transitions to storage + await this.tKey._syncShareMetadata(); + await this.tKey.syncLocalMetadataTransitions(); + } catch (error) { + utils.log.error("sync metadata error", error); + throw error; + } + } + async setManualSync(manualSync) { + this.checkReady(); + // sync local transistion to storage before allow changes + await this.tKey.syncLocalMetadataTransitions(); + this.options.manualSync = manualSync; + this.tKey.manualSync = manualSync; + } + + // device factor + async setDeviceFactor(factorKey, replace = false) { + if (!replace) { + const existingFactor = await this.getDeviceFactor(); + if (existingFactor) { + throw errors.default.default("Device factor already exists"); + } + } + const metadata = this.tKey.getMetadata(); + const tkeyPubX = metadata.pubKey.x.toString(16, constants.FIELD_ELEMENT_HEX_LEN); + await this.currentStorage.set(tkeyPubX, JSON.stringify({ + factorKey: factorKey.toString("hex").padStart(64, "0") + })); + } + async getDeviceFactor() { + const metadata = this.tKey.getMetadata(); + const tkeyPubX = metadata.pubKey.x.toString(16, constants.FIELD_ELEMENT_HEX_LEN); + const tKeyLocalStoreString = await this.currentStorage.get(tkeyPubX); + const tKeyLocalStore = JSON.parse(tKeyLocalStoreString || "{}"); + return tKeyLocalStore.factorKey; + } + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Exports the private key scalar for the current account index. + * + * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. + */ + async _UNSAFE_exportTssKey() { + if (this.keyType !== commonTypes.KeyType.secp256k1) { + throw errors.default.default("Wrong KeyType. Method can only be used when KeyType is secp256k1"); + } + if (!this.state.factorKey) { + throw errors.default.factorKeyNotPresent("factorKey not present in state when exporting tss key."); + } + if (!this.state.signatures) { + throw errors.default.signaturesNotPresent("Signatures not present in state when exporting tss key."); + } + const exportTssKey0 = await this.tKey._UNSAFE_exportTssKey({ + factorKey: this.state.factorKey, + authSignatures: this.state.signatures + }); + const accountNonce = this.getAccountNonce(); + const tssKey = exportTssKey0.add(accountNonce).umod(this.tKey.tssCurve.n); + return tssKey.toString("hex", constants.FIELD_ELEMENT_HEX_LEN); + } + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Attempts to export the ed25519 private key seed. Only works if import key + * flow has been used. + */ + async _UNSAFE_exportTssEd25519Seed() { + if (this.keyType !== commonTypes.KeyType.ed25519) { + throw errors.default.default("Wrong KeyType. Method can only be used when KeyType is ed25519"); + } + if (!this.state.factorKey) throw errors.default.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); + if (!this.state.signatures) throw errors.default.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed."); + try { + const exportEd25519Seed = await this.tKey._UNSAFE_exportTssEd25519Seed({ + factorKey: this.state.factorKey, + authSignatures: this.state.signatures + }); + return exportEd25519Seed; + } catch (error) { + throw errors.default.default(`Error exporting ed25519 seed: ${error}`); + } + } + updateState(newState) { + this.state = _objectSpread(_objectSpread({}, this.state), newState); + } + async atomicSync(f) { + this.atomicCallStackCounter += 1; + this.tkey.manualSync = true; + try { + const r = await f(); + if (this.atomicCallStackCounter === 1) { + if (!this.options.manualSync) { + await this.commitChanges(); + } + } + return r; + } catch (error) { + throw error; + } finally { + this.atomicCallStackCounter -= 1; + if (this.atomicCallStackCounter === 0) { + this.tkey.manualSync = this.options.manualSync; + } + } + } + async importTssKey(tssKey, factorPub, newTSSIndex = constants.TssShareType.DEVICE) { + if (!this.state.signatures) { + throw errors.default.signaturesNotPresent("Signatures not present in state when importing tss key."); + } + await this.tKey.importTssKey({ + tag: this.tKey.tssTag, + importKey: Buffer.from(tssKey, "hex"), + factorPub, + newTSSIndex + }, { + authSignatures: this.state.signatures + }); + } + getTssNonce() { + if (!this.tKey.metadata.tssNonces || this.tKey.metadata.tssNonces[this.tKey.tssTag] === undefined) { + throw errors.default.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`); + } + const tssNonce = this.tKey.metadata.tssNonces[this.tKey.tssTag]; + return tssNonce; + } + async setupTkey(providedImportTssKey) { + if (!this.state.postBoxKey) { + throw errors.default.userNotLoggedIn(); + } + const existingUser = await this.isMetadataPresent(this.state.postBoxKey); + let importTssKey = providedImportTssKey; + if (!existingUser) { + if (!importTssKey && this.useClientGeneratedTSSKey) { + if (this.keyType === commonTypes.KeyType.ed25519) { + const k = utils.generateEd25519Seed(); + importTssKey = k.toString("hex"); + } else if (this.keyType === commonTypes.KeyType.secp256k1) { + const k = commonTypes.secp256k1.genKeyPair().getPrivate(); + importTssKey = utils.scalarBNToBufferSEC1(k).toString("hex"); + } else { + throw errors.default.default("Unsupported key type"); + } + } + await this.handleNewUser(importTssKey); + } else { + if (importTssKey) { + throw errors.default.tssKeyImportNotAllowed(); + } + await this.handleExistingUser(); + } + } + + // mutation function + async handleNewUser(importTssKey) { + await this.atomicSync(async () => { + // Generate or use hash factor and initialize tkey with it. + let factorKey; + if (this.options.disableHashedFactorKey) { + factorKey = utils.generateFactorKey().private; + // delete previous hashed factorKey if present + const hashedFactorKey = utils.getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + await this.deleteMetadataShareBackup(hashedFactorKey); + } else { + factorKey = utils.getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + } + const deviceTSSIndex = constants.TssShareType.DEVICE; + const factorPub = tss.getPubKeyPoint(factorKey, tss.factorKeyCurve); + if (!importTssKey) { + const ec = new elliptic.ec(this.keyType); + const deviceTSSShare = ec.genKeyPair().getPrivate(); + await this.tKey.initialize({ + factorPub, + deviceTSSShare, + deviceTSSIndex + }); + } else { + await this.tKey.initialize({ + skipTssInit: true + }); + await this.tKey.reconstructKey(); + await this.importTssKey(importTssKey, factorPub, deviceTSSIndex); + } + + // Finalize initialization. + await this.tKey.reconstructKey(); + await this.finalizeTkey(factorKey); + + // Store factor description. + await this.backupMetadataShare(factorKey); + if (this.options.disableHashedFactorKey) { + await this.addFactorDescription({ + factorKey, + shareDescription: constants.FactorKeyTypeShareDescription.Other, + updateMetadata: false + }); + } else { + await this.addFactorDescription({ + factorKey, + shareDescription: constants.FactorKeyTypeShareDescription.HashedShare, + updateMetadata: false + }); + } + }); + } + async handleExistingUser() { + await this.tKey.initialize({ + neverInitializeNewKey: true + }); + if (this.options.disableHashedFactorKey) { + return; + } + const hashedFactorKey = utils.getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + this.state.factorKey = hashedFactorKey; + if (await this.checkIfFactorKeyValid(hashedFactorKey)) { + // Initialize tkey with existing hashed share if available. + const factorKeyMetadata = await this.getFactorKeyMetadata(hashedFactorKey); + try { + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + await this.tKey.reconstructKey(); + await this.finalizeTkey(hashedFactorKey); + } catch (err) { + utils.log.error("error initializing tkey with hashed share", err); + } + } else { + var _this$tKey2; + const factorKeyMetadata = await ((_this$tKey2 = this.tKey) === null || _this$tKey2 === void 0 ? void 0 : _this$tKey2.readMetadata(hashedFactorKey)); + if (factorKeyMetadata.message === "SHARE_DELETED") { + // throw CoreKitError.hashedFactorDeleted(); + utils.log.warn("hashed factor deleted"); + } + } + } + async finalizeTkey(factorKey) { + if (this.state.accountIndex !== 0) { + utils.log.warn("AccountIndex should be 0"); + this.state.accountIndex = 0; + } + // Read tss meta data. + const { + tssIndex: tssShareIndex + } = await this.tKey.getTSSShare(factorKey); + const tssPubKey = this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve, false); + this.updateState({ + tssShareIndex, + tssPubKey, + factorKey + }); + await this.createSession(); + } + checkReady() { + if (!this.ready) { + throw errors.default.mpcCoreKitNotInitialized(); + } + } + async rehydrateSession(result) { + try { + this.checkReady(); + const factorKey = new BN(result.factorKey, "hex"); + if (!factorKey) { + throw errors.default.providedFactorKeyInvalid(); + } + const postBoxKey = result.postBoxKey || result.oAuthKey; + if (!postBoxKey) { + throw errors.default.default("postBoxKey or oAuthKey not present in session data"); + } + this.torusSp.postboxKey = new BN(postBoxKey, "hex"); + this.torusSp.verifierName = result.userInfo.aggregateVerifier || result.userInfo.verifier; + this.torusSp.verifierId = result.userInfo.verifierId; + const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); + await this.tKey.initialize({ + neverInitializeNewKey: true + }); + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + await this.tKey.reconstructKey(); + this.updateState({ + factorKey: new BN(result.factorKey, "hex"), + postBoxKey, + postboxKeyNodeIndexes: result.postboxKeyNodeIndexes || [], + tssShareIndex: result.tssShareIndex, + tssPubKey: this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve, false), + signatures: result.signatures, + userInfo: result.userInfo + }); + } catch (err) { + utils.log.warn("failed to authorize session", err); + } + } + async createSession() { + if (!this.options.disableSessionManager && !this.sessionManager) { + throw new Error("sessionManager is not available"); + } + try { + const sessionId = sessionManager.SessionManager.generateRandomSessionKey(); + this.sessionManager.sessionId = sessionId; + const { + postBoxKey, + factorKey, + userInfo, + tssShareIndex, + tssPubKey, + postboxKeyNodeIndexes + } = this.state; + if (!this.state.factorKey) { + throw errors.default.factorKeyNotPresent("factorKey not present in state when creating session."); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey, { + accountIndex: this.state.accountIndex + }); + if (!postBoxKey || !factorKey || !tssShare || !tssPubKey || !userInfo) { + throw errors.default.userNotLoggedIn(); + } + const payload = { + postBoxKey, + postboxKeyNodeIndexes: postboxKeyNodeIndexes || [], + factorKey: factorKey === null || factorKey === void 0 ? void 0 : factorKey.toString("hex"), + tssShareIndex: tssShareIndex, + tssPubKey: Buffer.from(tssPubKey).toString("hex"), + signatures: this.signatures, + userInfo + }; + await this.sessionManager.createSession(payload); + // to accommodate async storage + await this.currentStorage.set("sessionId", sessionId); + } catch (err) { + utils.log.error("error creating session", err); + } + } + async isMetadataPresent(privateKey) { + var _this$tKey3; + const privateKeyBN = new BN(privateKey, "hex"); + const metadata = await ((_this$tKey3 = this.tKey) === null || _this$tKey3 === void 0 ? void 0 : _this$tKey3.readMetadata(privateKeyBN)); + if (metadata && metadata.message !== "KEY_NOT_FOUND") { + return true; + } + return false; + } + async checkIfFactorKeyValid(factorKey) { + var _this$tKey4; + this.checkReady(); + const factorKeyMetadata = await ((_this$tKey4 = this.tKey) === null || _this$tKey4 === void 0 ? void 0 : _this$tKey4.readMetadata(factorKey)); + if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND" || factorKeyMetadata.message === "SHARE_DELETED") { + return false; + } + return true; + } + async getFactorKeyMetadata(factorKey) { + var _this$tKey5; + this.checkReady(); + const factorKeyMetadata = await ((_this$tKey5 = this.tKey) === null || _this$tKey5 === void 0 ? void 0 : _this$tKey5.readMetadata(factorKey)); + if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND") { + throw errors.default.noMetadataFound(); + } + return commonTypes.ShareStore.fromJSON(factorKeyMetadata); + } + + /** + * Copies a share and makes it available under a new factor key. If no share + * exists at the specified share index, a new share is created. + * @param newFactorTSSIndex - The index of the share to copy. + * @param newFactorPub - The public key of the new share. + */ + async copyOrCreateShare(newFactorTSSIndex, newFactorPub) { + this.checkReady(); + if (!this.tKey.metadata.factorPubs || !Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag])) { + throw errors.default.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key."); + } + if (!this.tKey.metadata.factorEncs || typeof this.tKey.metadata.factorEncs[this.tKey.tssTag] !== "object") { + throw errors.default.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key."); + } + if (!this.state.factorKey) { + throw errors.default.factorKeyNotPresent("factorKey not present in state when copying or creating a share."); + } + if (constants.VALID_SHARE_INDICES.indexOf(newFactorTSSIndex) === -1) { + throw errors.default.newShareIndexInvalid(`Invalid share type provided (${newFactorTSSIndex}). Valid share types are ${constants.VALID_SHARE_INDICES}.`); + } + if (this.tKey.metadata.factorPubs[this.tKey.tssTag].length >= constants.MAX_FACTORS) { + throw errors.default.maximumFactorsReached(`The maximum number of allowable factors (${constants.MAX_FACTORS}) has been reached.`); + } + + // Generate new share. + await this.tkey.addFactorPub({ + existingFactorKey: this.state.factorKey, + authSignatures: this.signatures, + newFactorPub, + newTSSIndex: newFactorTSSIndex, + refreshShares: this.state.tssShareIndex !== newFactorTSSIndex // Refresh shares if we have a new factor key index. + }); + } + async getMetadataShare() { + try { + var _this$tKey6, _this$tKey7; + const polyId = (_this$tKey6 = this.tKey) === null || _this$tKey6 === void 0 ? void 0 : _this$tKey6.metadata.getLatestPublicPolynomial().getPolynomialID(); + const shares = (_this$tKey7 = this.tKey) === null || _this$tKey7 === void 0 ? void 0 : _this$tKey7.shares[polyId]; + let share = null; + for (const shareIndex in shares) { + if (shareIndex !== constants.SOCIAL_TKEY_INDEX.toString()) { + share = shares[shareIndex]; + } + } + if (!share) { + throw errors.default.noMetadataShareFound(); + } + return share; + } catch (err) { + utils.log.error("create device share error", err); + throw errors.default.default(err.message); + } + } + async deleteMetadataShareBackup(factorKey) { + var _this$tkey, _this$tkey2; + await this.tKey.addLocalMetadataTransitions({ + input: [{ + message: commonTypes.SHARE_DELETED, + dateAdded: Date.now() + }], + privKey: [factorKey] + }); + if (!((_this$tkey = this.tkey) !== null && _this$tkey !== void 0 && _this$tkey.manualSync)) await ((_this$tkey2 = this.tkey) === null || _this$tkey2 === void 0 ? void 0 : _this$tkey2.syncLocalMetadataTransitions()); + } + async backupMetadataShare(factorKey) { + var _this$tKey8, _this$tkey3, _this$tkey4; + const metadataShare = await this.getMetadataShare(); + + // Set metadata for factor key backup + await ((_this$tKey8 = this.tKey) === null || _this$tKey8 === void 0 ? void 0 : _this$tKey8.addLocalMetadataTransitions({ + input: [metadataShare], + privKey: [factorKey] + })); + if (!((_this$tkey3 = this.tkey) !== null && _this$tkey3 !== void 0 && _this$tkey3.manualSync)) await ((_this$tkey4 = this.tkey) === null || _this$tkey4 === void 0 ? void 0 : _this$tkey4.syncLocalMetadataTransitions()); + } + async addFactorDescription(args) { + var _this$tKey9; + const { + factorKey, + shareDescription, + updateMetadata + } = args; + let { + additionalMetadata + } = args; + if (!additionalMetadata) { + additionalMetadata = {}; + } + const { + tssIndex + } = await this.tKey.getTSSShare(factorKey); + const factorPoint = tss.getPubKeyPoint(factorKey, tss.factorKeyCurve); + const factorPub = factorPoint.toSEC1(tss.factorKeyCurve, true).toString("hex"); + const params = _objectSpread(_objectSpread({ + module: shareDescription, + dateAdded: Date.now() + }, additionalMetadata), {}, { + tssShareIndex: tssIndex + }); + await ((_this$tKey9 = this.tKey) === null || _this$tKey9 === void 0 ? void 0 : _this$tKey9.addShareDescription(factorPub, JSON.stringify(params), updateMetadata)); + } + resetState() { + this.ready = false; + this.tkey = null; + this.torusSp = null; + this.storageLayer = null; + this.state = { + accountIndex: 0 + }; + } + _getPostBoxKey(result) { + return torus_js.Torus.getPostboxKey(result); + } + _getSignatures(sessionData) { + // There is a check in torus.js which pushes undefined to session data in case + // that particular node call fails. + // and before returning we are not filtering out undefined vals in torus.js + // TODO: fix this in torus.js + return sessionData.filter(session => !!session).map(session => JSON.stringify({ + data: session.token, + sig: session.signature + })); + } + isNodejsOrRN(params) { + const mode = params; + return mode === "nodejs" || mode === "react-native"; + } + async featureRequest() { + const accessUrl = constants$1.SIGNER_MAP[this.options.web3AuthNetwork]; + const accessRequest = { + network: this.options.web3AuthNetwork, + client_id: this.options.web3AuthClientId, + is_mpc_core_kit: "true", + enable_gating: "true", + session_time: this.options.sessionTime.toString() + }; + const url = new URL(`${accessUrl}/api/feature-access`); + url.search = new URLSearchParams(accessRequest).toString(); + const result = await fetch(url); + if (result.status !== 200) { + // reset state on no mpc access + this.resetState(); + const errMessage = await result.json(); + throw errors.default.default(errMessage.error); + } + return result.json(); + } + getAccountNonce() { + return this.tkey.computeAccountNonce(this.state.accountIndex); + } + async sign_ECDSA_secp256k1(data, hashed = false, precomputedTssClient) { + const executeSign = async (client, serverCoeffs, hashedData, signatures) => { + const { + r, + s, + recoveryParam + } = await client.sign(hashedData.toString("base64"), true, "", "keccak256", { + signatures + }); + // skip await cleanup + client.cleanup({ + signatures, + server_coeffs: serverCoeffs + }); + return { + v: recoveryParam, + r: utils.scalarBNToBufferSEC1(r), + s: utils.scalarBNToBufferSEC1(s) + }; + }; + if (!hashed) { + data = metadataHelpers.keccak256(data); + } + const isAlreadyPrecomputed = (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.client) && (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.serverCoeffs); + const { + client, + serverCoeffs + } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); + const { + signatures + } = this; + if (!signatures) { + throw errors.default.signaturesNotPresent(); + } + try { + return await executeSign(client, serverCoeffs, data, signatures); + } catch (error) { + if (!isAlreadyPrecomputed) { + throw error; + } + // Retry with new client if precomputed client failed, this is to handle the case when precomputed session might have expired + const { + client: newClient, + serverCoeffs: newServerCoeffs + } = await this.precompute_secp256k1(); + const result = await executeSign(newClient, newServerCoeffs, data, signatures); + return result; + } + } + async sign_ed25519(data, hashed = false) { + if (hashed) { + throw errors.default.default("hashed data not supported for ed25519"); + } + const nodeDetails = fndBase.fetchLocalConfig(this.options.web3AuthNetwork, "ed25519"); + if (!nodeDetails.torusNodeTSSEndpoints) { + throw errors.default.default("could not fetch tss node endpoints"); + } + + // Endpoints must end with backslash, but URLs returned by + // `fetch-node-details` don't have it. + const ED25519_ENDPOINTS = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ + index: nodeDetails.torusIndexes[i], + url: `${ep}/` + })); + + // Select endpoints and derive party indices. + const serverThreshold = Math.floor(ED25519_ENDPOINTS.length / 2) + 1; + const endpoints = utils.sampleEndpoints(ED25519_ENDPOINTS, serverThreshold); + const serverXCoords = endpoints.map(x => x.index); + const clientXCoord = Math.max(...endpoints.map(ep => ep.index)) + 1; + + // Derive share coefficients for flat hierarchy. + const ec = new ellipticWrapper.Ed25519Curve(); + const { + serverCoefficients, + clientCoefficient + } = utils.deriveShareCoefficients(ec, serverXCoords, clientXCoord, this.state.tssShareIndex); + + // Get pub key. + const tssPubKey = await this.getPubKey(); + const tssPubKeyPoint = ec.keyFromPublic(tssPubKey).getPublic(); + + // Get client key share and adjust by coefficient. + if (this.state.accountIndex !== 0) { + throw errors.default.default("Account index not supported for ed25519"); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey); + const clientShareAdjusted = tssShare.mul(clientCoefficient).umod(ec.n); + const clientShareAdjustedHex = ec.scalarToBuffer(clientShareAdjusted, Buffer).toString("hex"); + + // Generate session identifier. + const tssNonce = this.getTssNonce(); + const sessionNonce = utils.generateSessionNonce(); + const session = utils.getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, sessionNonce); + + // Run signing protocol. + const serverURLs = endpoints.map(x => x.url); + const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); + const serverCoefficientsHex = serverCoefficients.map(c => ec.scalarToBuffer(c, Buffer).toString("hex")); + const signature = await tssFrostClient.sign(this.wasmLib, session, this.signatures, serverXCoords, serverURLs, clientXCoord, clientShareAdjustedHex, pubKeyHex, data, serverCoefficientsHex); + utils.log.info(`signature: ${signature}`); + return Buffer.from(signature, "hex"); + } + async loadTssWasm() { + if (this.wasmLib) return this.wasmLib; + if (typeof this._tssLib.load === "function") { + // dont wait for wasm to be loaded, we can reload it during signing if not loaded + return this._tssLib.load(); + } else if (this._tssLib.lib) { + return this._tssLib.lib; + } + } +} + +exports.Web3AuthMPCCoreKit = Web3AuthMPCCoreKit; diff --git a/package/dist/lib.cjs/utils.js b/package/dist/lib.cjs/utils.js new file mode 100644 index 00000000..423baff1 --- /dev/null +++ b/package/dist/lib.cjs/utils.js @@ -0,0 +1,212 @@ +'use strict'; + +var commonTypes = require('@tkey/common-types'); +var core = require('@tkey/core'); +var tss = require('@tkey/tss'); +var openloginUtils = require('@toruslabs/openlogin-utils'); +var torus_js = require('@toruslabs/torus.js'); +var BN = require('bn.js'); +var elliptic = require('elliptic'); +var loglevel = require('loglevel'); +var constants = require('./constants.js'); + +const ed25519 = () => { + return new elliptic.eddsa("ed25519"); +}; + +/** + * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. + */ +function randomBytes(bytesLength = 32) { + // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. + const crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : undefined; + if (crypto && typeof crypto.getRandomValues === "function") { + return crypto.getRandomValues(new Uint8Array(bytesLength)); + } + throw new Error("crypto.getRandomValues must be defined"); +} +function generateEd25519Seed() { + return Buffer.from(randomBytes(32)); +} +const generateFactorKey = () => { + const keyPair = tss.factorKeyCurve.genKeyPair(); + const pub = commonTypes.Point.fromElliptic(keyPair.getPublic()); + return { + private: keyPair.getPrivate(), + pub + }; +}; +const generateTSSEndpoints = (tssNodeEndpoints, parties, clientIndex, nodeIndexes) => { + const endpoints = []; + const tssWSEndpoints = []; + const partyIndexes = []; + const nodeIndexesReturned = []; + for (let i = 0; i < parties; i++) { + partyIndexes.push(i); + if (i === clientIndex) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + endpoints.push(null); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + tssWSEndpoints.push(null); + } else { + const targetNodeIndex = nodeIndexes[i] - 1; + endpoints.push(tssNodeEndpoints[targetNodeIndex]); + tssWSEndpoints.push(new URL(tssNodeEndpoints[targetNodeIndex]).origin); + nodeIndexesReturned.push(nodeIndexes[i]); + } + } + return { + endpoints, + tssWSEndpoints, + partyIndexes, + nodeIndexesReturned + }; +}; +async function storageAvailable(storage) { + try { + const x = "__storage_test__"; + const rand = Math.random().toString(); + await storage.setItem(x, rand); + const value = await storage.getItem(rand); + if (value !== rand) { + throw new Error("Value mismatch"); + } + return true; + } catch (error) { + return false; + } +} + +// TODO think which conversion functions to keep and how to export them. + +/** + * Parses a JWT Token, without verifying the signature. + * @param token - JWT Token + * @returns Extracted JSON payload from the token + */ +function parseToken(token) { + const payload = token.split(".")[1]; + return JSON.parse(openloginUtils.safeatob(payload)); +} +const getHashedPrivateKey = (postboxKey, clientId) => { + const uid = `${postboxKey}_${clientId}`; + let hashUid = torus_js.keccak256(Buffer.from(uid, "utf8")); + hashUid = hashUid.replace("0x", ""); + return new BN(hashUid, "hex"); +}; + +/** + * Converts an elliptic curve scalar represented by a BN to a byte buffer in SEC1 + * format (i.e., padded to maximum length). + * @param s - The scalar of type BN. + * @returns The SEC1 encoded representation of the scalar. + */ +function scalarBNToBufferSEC1(s) { + return s.toArrayLike(Buffer, "be", constants.SCALAR_LEN); +} +function sampleEndpoints(endpoints, n) { + if (n > endpoints.length) { + throw new Error("Invalid number of endpoints"); + } + const shuffledEndpoints = endpoints.slice().sort(() => Math.random() - 0.5); + return shuffledEndpoints.slice(0, n).sort((a, b) => a.index - b.index); +} +function fraction(curve, nom, denom) { + return nom.mul(denom.invm(curve.n)).umod(curve.n); +} +function lagrangeCoefficient(curve, xCoords, targetCoeff, targetX) { + return xCoords.filter((_, i) => i !== targetCoeff).reduce((prev, cur) => { + const frac = fraction(curve, targetX.sub(cur), xCoords[targetCoeff].sub(cur)); + return prev.mul(frac).umod(curve.n); + }, new BN(1)); +} +function lagrangeCoefficients(curve, xCoords, targetX) { + const xCoordsBN = xCoords.map(i => new BN(i)); + const targetXBN = new BN(targetX); + return xCoordsBN.map((_value, i) => lagrangeCoefficient(curve, xCoordsBN, i, targetXBN)); +} +const SERVER_XCOORD_L1 = 1; +const CLIENT_XCOORD_L1 = 2; + +/** + * Derive share coefficients for client and servers. + * + * @param curve - The curve to be used. + * @param serverXCoords - The source and target x-coordinates of the selected + * servers. + * @param targetClientXCoord - The target x-coordinate of the client. + * @param sourceClientXCoord - The source x-coordinate of the client in the L1 + * hierarchy. + * @returns - The share coefficients for the client and the servers. + */ +function deriveShareCoefficients(ec, serverXCoords, targetClientXCoord, sourceClientXCoord = CLIENT_XCOORD_L1) { + const l1Coefficients = lagrangeCoefficients(ec, [SERVER_XCOORD_L1, sourceClientXCoord], 0); + const l2Coefficients = lagrangeCoefficients(ec, serverXCoords, 0); + if (serverXCoords.includes(targetClientXCoord)) { + throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${serverXCoords} ${targetClientXCoord}`); + } + const targetCoefficients = lagrangeCoefficients(ec, [targetClientXCoord, ...serverXCoords], 0); + + // Derive server coefficients. + const serverCoefficients = l2Coefficients.map((coeff, i) => fraction(ec, l1Coefficients[0].mul(coeff), targetCoefficients[i + 1])); + + // Derive client coefficient. + const clientCoefficient = fraction(ec, l1Coefficients[1], targetCoefficients[0]); + return { + serverCoefficients, + clientCoefficient + }; +} +function generateSessionNonce() { + return torus_js.keccak256(Buffer.from(core.generatePrivateBN().toString("hex") + Date.now(), "utf8")); +} +function getSessionId(verifier, verifierId, tssTag, tssNonce, sessionNonce) { + return `${verifier}${constants.DELIMITERS.Delimiter1}${verifierId}${constants.DELIMITERS.Delimiter2}${tssTag}${constants.DELIMITERS.Delimiter3}${tssNonce}${constants.DELIMITERS.Delimiter4}${sessionNonce}`; +} +function sigToRSV(sig) { + if (sig.length !== 65) { + throw new Error(`Invalid signature length: expected 65, got ${sig.length}`); + } + return { + r: sig.subarray(0, 32), + s: sig.subarray(32, 64), + v: sig[64] + }; +} +function makeEthereumSigner(kit) { + if (kit.keyType !== commonTypes.KeyType.secp256k1) { + throw new Error(`Invalid key type: expected secp256k1, got ${kit.keyType}`); + } + return { + sign: async msgHash => { + const sig = await kit.sign(msgHash, true); + return sigToRSV(sig); + }, + getPublic: async () => { + const pk = commonTypes.Point.fromSEC1(commonTypes.secp256k1, kit.getPubKey().toString("hex")); + return pk.toSEC1(commonTypes.secp256k1).subarray(1); + } + }; +} +const log = loglevel.getLogger("mpc-core-kit"); +log.disableAll(); + +exports.deriveShareCoefficients = deriveShareCoefficients; +exports.ed25519 = ed25519; +exports.fraction = fraction; +exports.generateEd25519Seed = generateEd25519Seed; +exports.generateFactorKey = generateFactorKey; +exports.generateSessionNonce = generateSessionNonce; +exports.generateTSSEndpoints = generateTSSEndpoints; +exports.getHashedPrivateKey = getHashedPrivateKey; +exports.getSessionId = getSessionId; +exports.lagrangeCoefficient = lagrangeCoefficient; +exports.lagrangeCoefficients = lagrangeCoefficients; +exports.log = log; +exports.makeEthereumSigner = makeEthereumSigner; +exports.parseToken = parseToken; +exports.randomBytes = randomBytes; +exports.sampleEndpoints = sampleEndpoints; +exports.scalarBNToBufferSEC1 = scalarBNToBufferSEC1; +exports.sigToRSV = sigToRSV; +exports.storageAvailable = storageAvailable; diff --git a/package/dist/lib.esm/constants.js b/package/dist/lib.esm/constants.js new file mode 100644 index 00000000..e185212b --- /dev/null +++ b/package/dist/lib.esm/constants.js @@ -0,0 +1,50 @@ +import { TORUS_SAPPHIRE_NETWORK } from '@toruslabs/constants'; + +const WEB3AUTH_NETWORK = { + MAINNET: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET, + DEVNET: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_DEVNET +}; +const USER_PATH = { + NEW: "NewAccount", + EXISTING: "ExistingAccount", + REHYDRATE: "RehydrateAccount", + RECOVER: "RecoverAccount" +}; +let FactorKeyTypeShareDescription = /*#__PURE__*/function (FactorKeyTypeShareDescription) { + FactorKeyTypeShareDescription["HashedShare"] = "hashedShare"; + FactorKeyTypeShareDescription["SecurityQuestions"] = "tssSecurityQuestions"; + FactorKeyTypeShareDescription["DeviceShare"] = "deviceShare"; + FactorKeyTypeShareDescription["SeedPhrase"] = "seedPhrase"; + FactorKeyTypeShareDescription["PasswordShare"] = "passwordShare"; + FactorKeyTypeShareDescription["SocialShare"] = "socialShare"; + FactorKeyTypeShareDescription["Other"] = "Other"; + return FactorKeyTypeShareDescription; +}({}); +const DELIMITERS = { + Delimiter1: "\u001c", + Delimiter2: "\u0015", + Delimiter3: "\u0016", + Delimiter4: "\u0017" +}; +const ERRORS = { + TKEY_SHARES_REQUIRED: "required more shares", + INVALID_BACKUP_SHARE: "invalid backup share" +}; +const SOCIAL_FACTOR_INDEX = 1; + +/** + * Defines the TSS Share Index in a simplified way for better implementation. + **/ +let TssShareType = /*#__PURE__*/function (TssShareType) { + TssShareType[TssShareType["DEVICE"] = 2] = "DEVICE"; + TssShareType[TssShareType["RECOVERY"] = 3] = "RECOVERY"; + return TssShareType; +}({}); +const VALID_SHARE_INDICES = [TssShareType.DEVICE, TssShareType.RECOVERY]; +const SCALAR_LEN = 32; // Length of secp256k1 scalar in bytes. +const FIELD_ELEMENT_HEX_LEN = 32 * 2; // Length of secp256k1 field element in hex form. + +const MAX_FACTORS = 10; // Maximum number of factors that can be added to an account. +const SOCIAL_TKEY_INDEX = 1; + +export { DELIMITERS, ERRORS, FIELD_ELEMENT_HEX_LEN, FactorKeyTypeShareDescription, MAX_FACTORS, SCALAR_LEN, SOCIAL_FACTOR_INDEX, SOCIAL_TKEY_INDEX, TssShareType, USER_PATH, VALID_SHARE_INDICES, WEB3AUTH_NETWORK }; diff --git a/package/dist/lib.esm/helper/browserStorage.js b/package/dist/lib.esm/helper/browserStorage.js new file mode 100644 index 00000000..8cbb5d33 --- /dev/null +++ b/package/dist/lib.esm/helper/browserStorage.js @@ -0,0 +1,59 @@ +import _defineProperty from '@babel/runtime/helpers/defineProperty'; +import CoreKitError from './errors.js'; + +class MemoryStorage { + constructor() { + _defineProperty(this, "_store", {}); + } + getItem(key) { + return this._store[key] || null; + } + setItem(key, value) { + this._store[key] = value; + } + removeItem(key) { + delete this._store[key]; + } + clear() { + this._store = {}; + } +} +class AsyncStorage { + constructor(storeKey, storage) { + _defineProperty(this, "storage", void 0); + _defineProperty(this, "_storeKey", void 0); + this.storage = storage; + this._storeKey = storeKey; + } + async toJSON() { + const result = await this.storage.getItem(this._storeKey); + if (!result) { + throw CoreKitError.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`); + } + return result; + } + async resetStore() { + const currStore = await this.getStore(); + await this.storage.setItem(this._storeKey, JSON.stringify({})); + return currStore; + } + async getStore() { + return JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + } + async get(key) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + return store[key]; + } + async set(key, value) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + store[key] = value; + await this.storage.setItem(this._storeKey, JSON.stringify(store)); + } + async remove(key) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + delete store[key]; + await this.storage.setItem(this._storeKey, JSON.stringify(store)); + } +} + +export { AsyncStorage, MemoryStorage }; diff --git a/package/dist/lib.esm/helper/errors.js b/package/dist/lib.esm/helper/errors.js new file mode 100644 index 00000000..8f827557 --- /dev/null +++ b/package/dist/lib.esm/helper/errors.js @@ -0,0 +1,296 @@ +import _defineProperty from '@babel/runtime/helpers/defineProperty'; + +/** + * Fix the prototype chain of the error + * + * Use Object.setPrototypeOf + * Support ES6 environments + * + * Fallback setting __proto__ + * Support IE11+, see https://docs.microsoft.com/en-us/scripting/javascript/reference/javascript-version-information + */ +function fixProto(target, prototype) { + const { + setPrototypeOf + } = Object; + if (setPrototypeOf) { + setPrototypeOf(target, prototype); + } else { + // eslint-disable-next-line no-proto, @typescript-eslint/no-explicit-any + target.__proto__ = prototype; + } +} + +/** + * Capture and fix the error stack when available + * + * Use Error.captureStackTrace + * Support v8 environments + */ +function fixStack(target, fn = target.constructor) { + const { + captureStackTrace + } = Error; + if (captureStackTrace) { + captureStackTrace(target, fn); + } +} + +// copy from https://github.com/microsoft/TypeScript/blob/main/lib/lib.es2022.error.d.ts +// avoid typescript isue https://github.com/adriengibrat/ts-custom-error/issues/81 + +/** + * Allows to easily extend a base class to create custom applicative errors. + * + * example: + * ``` + * class HttpError extends CustomError { + * public constructor( + * public code: number, + * message?: string, + * cause?: Error, + * ) { + * super(message, { cause }) + * } + * } + * + * new HttpError(404, 'Not found') + * ``` + */ +class CustomError extends Error { + constructor(message, options) { + super(message, options); + // set error name as constructor name, make it not enumerable to keep native Error behavior + // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target#new.target_in_constructors + // see https://github.com/adriengibrat/ts-custom-error/issues/30 + _defineProperty(this, "name", void 0); + Object.defineProperty(this, "name", { + value: new.target.name, + enumerable: false, + configurable: true + }); + // fix the extended error prototype chain + // because typescript __extends implementation can't + // see https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work + fixProto(this, new.target.prototype); + // try to remove contructor from stack trace + fixStack(this); + } +} +class AbstractCoreKitError extends CustomError { + constructor(code, message) { + // takes care of stack and proto + super(message); + _defineProperty(this, "code", void 0); + _defineProperty(this, "message", void 0); + this.code = code; + this.message = message || ""; + // Set name explicitly as minification can mangle class names + Object.defineProperty(this, "name", { + value: "TkeyError" + }); + } + toJSON() { + return { + name: this.name, + code: this.code, + message: this.message + }; + } + toString() { + return JSON.stringify(this.toJSON()); + } +} + +/** + * CoreKitError, extension for Error using CustomError + * + * Usage: + * 1. throw CoreKitError.factorKeyNotPresent("Required factor key missing in the operation."); // Use a predefined method to throw a common error + * 2. throw CoreKitError.fromCode(1001); // Throw an error using a code for a common error + * 3. throw new CoreKitError(1102, "'tkey' instance has not been initialized."); // Throw a specific error with a custom message + * + * Guide: + * 1000 - Configuration errors + * 1100 - TSS and key management errors + * 1200 - Factor key and authentication errors + * 1300 - Initialization and session management + */ +class CoreKitError extends AbstractCoreKitError { + constructor(code, message) { + super(code, message); + Object.defineProperty(this, "name", { + value: "CoreKitError" + }); + } + static fromCode(code, extraMessage = "") { + return new CoreKitError(code, `${CoreKitError.messages[code]} ${extraMessage}`); + } + static default(extraMessage = "") { + return new CoreKitError(1000, `${CoreKitError.messages[1000]} ${extraMessage}`); + } + + // Configuration errors + static chainConfigInvalid(extraMessage = "") { + return CoreKitError.fromCode(1001, extraMessage); + } + static clientIdInvalid(extraMessage = "") { + return CoreKitError.fromCode(1002, extraMessage); + } + static storageTypeUnsupported(extraMessage = "") { + return CoreKitError.fromCode(1003, extraMessage); + } + static oauthLoginUnsupported(extraMessage = "") { + return CoreKitError.fromCode(1004, extraMessage); + } + static noValidStorageOptionFound(extraMessage = "") { + return CoreKitError.fromCode(1005, extraMessage); + } + static noDataFoundInStorage(extraMessage = "") { + return CoreKitError.fromCode(1006, extraMessage); + } + static invalidConfig(extraMessage = "") { + return CoreKitError.fromCode(1007, extraMessage); + } + + // TSS and key management errors + static tssLibRequired(extraMessage = "") { + return CoreKitError.fromCode(1101, extraMessage); + } + static tkeyInstanceUninitialized(extraMessage = "") { + return CoreKitError.fromCode(1102, extraMessage); + } + static duplicateTssIndex(extraMessage = "") { + return CoreKitError.fromCode(1103, extraMessage); + } + static nodeDetailsRetrievalFailed(extraMessage = "") { + return CoreKitError.fromCode(1104, extraMessage); + } + static prefetchValueExceeded(extraMessage = "") { + return CoreKitError.fromCode(1105, extraMessage); + } + static invalidTorusLoginResponse(extraMessage = "") { + return CoreKitError.fromCode(1106, extraMessage); + } + static invalidTorusAggregateLoginResponse(extraMessage = "") { + return CoreKitError.fromCode(1107, extraMessage); + } + static unsupportedRedirectMethod(extraMessage = "") { + return CoreKitError.fromCode(1108, extraMessage); + } + static postBoxKeyMissing(extraMessage = "") { + return CoreKitError.fromCode(1109, extraMessage); + } + static tssShareTypeIndexMissing(extraMessage = "") { + return CoreKitError.fromCode(1110, extraMessage); + } + static tssPublicKeyOrEndpointsMissing(extraMessage = "") { + return CoreKitError.fromCode(1111, extraMessage); + } + static activeSessionNotFound(extraMessage = "") { + return CoreKitError.fromCode(1112, extraMessage); + } + static tssNoncesMissing(extraMessage = "") { + return CoreKitError.fromCode(1113, extraMessage); + } + static tssKeyImportNotAllowed(extraMessage = "") { + return CoreKitError.fromCode(1114, extraMessage); + } + + // Factor key and authentication errors + static factorKeyNotPresent(extraMessage = "") { + return CoreKitError.fromCode(1201, extraMessage); + } + static factorKeyAlreadyExists(extraMessage = "") { + return CoreKitError.fromCode(1202, extraMessage); + } + static mfaAlreadyEnabled(extraMessage = "") { + return CoreKitError.fromCode(1203, extraMessage); + } + static cannotDeleteLastFactor(extraMessage = "") { + return CoreKitError.fromCode(1204, extraMessage); + } + static factorInUseCannotBeDeleted(extraMessage = "") { + return CoreKitError.fromCode(1205, extraMessage); + } + static userNotLoggedIn(extraMessage = "") { + return CoreKitError.fromCode(1206, extraMessage); + } + static providedFactorKeyInvalid(extraMessage = "") { + return CoreKitError.fromCode(1207, extraMessage); + } + static factorEncsMissing(extraMessage = "") { + return CoreKitError.fromCode(1208, extraMessage); + } + static noMetadataFound(extraMessage = "") { + return CoreKitError.fromCode(1209, extraMessage); + } + static newShareIndexInvalid(extraMessage = "") { + return CoreKitError.fromCode(1210, extraMessage); + } + static maximumFactorsReached(extraMessage = "") { + return CoreKitError.fromCode(1211, extraMessage); + } + static noMetadataShareFound(extraMessage = "") { + return CoreKitError.fromCode(1212, extraMessage); + } + static signaturesNotPresent(extraMessage = "") { + return CoreKitError.fromCode(1213, extraMessage); + } + static factorPubsMissing(extraMessage = "") { + return CoreKitError.fromCode(1214, extraMessage); + } + + // Initialization and session management + static commitChangesBeforeMFA(extraMessage = "") { + return CoreKitError.fromCode(1301, extraMessage); + } + static mpcCoreKitNotInitialized(extraMessage = "") { + return CoreKitError.fromCode(1302, extraMessage); + } +} +_defineProperty(CoreKitError, "messages", { + // Configuration errors + 1001: "You must specify a valid eip155 chain configuration in the options.", + 1002: "You must specify a web3auth clientId.", + 1003: "Unsupported storage type in this UX mode.", + 1004: "OAuth login is NOT supported in this UX mode.", + 1005: "No valid storage option found.", + 1006: "No data found in storage.", + 1007: "Invalid config.", + // TSS and key management errors + 1101: "'tssLib' is required when running in this UX mode.", + 1102: "'tkey' instance has not been initialized.", + 1103: "Duplicate TSS index found. Ensure that each TSS index is unique.", + 1104: "Failed to retrieve node details. Please check your network connection and try again.", + 1105: "The prefetch TSS public keys exceeds the maximum allowed limit of 3.", + 1106: "Invalid 'TorusLoginResponse' data provided.", + 1107: "Invalid 'TorusAggregateLoginResponse' data provided.", + 1108: "Unsupported method type encountered in redirect result.", + 1109: "OAuthKey not present in state.", + 1110: "TSS Share Type (Index) not present in state when getting current factor key.", + 1111: "'tssPubKey' or 'torusNodeTSSEndpoints' are missing.", + 1112: "No active session found.", + 1113: "tssNonces not present in metadata when getting tss nonce.", + 1114: "A TSS key cannot be imported for an existing user who already has a key configured.", + // Factor key and authentication errors + 1201: "factorKey not present in state when required.", + 1202: "A factor with the same key already exists.", + 1203: "MFA is already enabled.", + 1204: "Cannot delete the last remaining factor as at least one factor is required.", + 1205: "The factor currently in use cannot be deleted.", + 1206: "User is not logged in.", + 1207: "Provided factor key is invalid.", + 1208: "'factorEncs' mpt [resemt].", + 1209: "No metadata found for the provided factor key. Consider resetting your account if this error persists.", + 1210: "The new share index is not valid. It must be one of the valid share indices.", + 1211: "The maximum number of allowable factors (10) has been reached.", + 1212: "No metadata share found in the current polynomial.", + 1213: "No signatures found.", + 1214: "Factor public keys not present", + // Initialization and session management + 1301: "The 'CommitChanges' method must be called before enabling MFA.", + 1302: "The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations." +}); + +export { CustomError, CoreKitError as default }; diff --git a/package/dist/lib.esm/helper/factorSerialization.js b/package/dist/lib.esm/helper/factorSerialization.js new file mode 100644 index 00000000..81c779a8 --- /dev/null +++ b/package/dist/lib.esm/helper/factorSerialization.js @@ -0,0 +1,25 @@ +import { ShareSerializationModule } from '@tkey/share-serialization'; +import BN from 'bn.js'; + +/** + * Converts a mnemonic to a BN. + * @param shareMnemonic - The mnemonic to convert. + * @returns A BN respective to your mnemonic + */ +function mnemonicToKey(shareMnemonic) { + const factorKey = ShareSerializationModule.deserializeMnemonic(shareMnemonic); + return factorKey.toString("hex"); +} + +/** + * Converts a BN to a mnemonic. + * @param shareBN - The BN to convert. + * @returns A mnemonic respective to your BN + */ +function keyToMnemonic(shareHex) { + const shareBN = new BN(shareHex, "hex"); + const mnemonic = ShareSerializationModule.serializeMnemonic(shareBN); + return mnemonic; +} + +export { keyToMnemonic, mnemonicToKey }; diff --git a/package/dist/lib.esm/helper/securityQuestion.js b/package/dist/lib.esm/helper/securityQuestion.js new file mode 100644 index 00000000..a815abd0 --- /dev/null +++ b/package/dist/lib.esm/helper/securityQuestion.js @@ -0,0 +1,211 @@ +import _objectSpread from '@babel/runtime/helpers/objectSpread2'; +import _defineProperty from '@babel/runtime/helpers/defineProperty'; +import { secp256k1, Point } from '@tkey/common-types'; +import { getPubKeyPoint, factorKeyCurve } from '@tkey/tss'; +import { keccak256 } from '@toruslabs/torus.js'; +import BN from 'bn.js'; +import { TssShareType, VALID_SHARE_INDICES, FactorKeyTypeShareDescription } from '../constants.js'; + +class TssSecurityQuestionStore { + constructor(shareIndex, factorPublicKey, question) { + _defineProperty(this, "shareIndex", void 0); + _defineProperty(this, "factorPublicKey", void 0); + _defineProperty(this, "question", void 0); + this.shareIndex = shareIndex; + this.factorPublicKey = factorPublicKey; + this.question = question; + } + static fromJSON(json) { + const { + shareIndex, + factorPublicKey, + question + } = json; + return new TssSecurityQuestionStore(shareIndex, factorPublicKey, question); + } + toJSON() { + return { + shareIndex: this.shareIndex, + factorPublicKey: this.factorPublicKey, + question: this.question + }; + } +} +class TssSecurityQuestion { + constructor() { + _defineProperty(this, "storeDomainName", "tssSecurityQuestion"); + } + async setSecurityQuestion(params) { + const { + mpcCoreKit, + question, + answer, + description + } = params; + let { + shareType + } = params; + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + if (!question || !answer) { + throw new Error("question and answer are required"); + } + const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; + + // default using recovery index + if (!shareType) { + shareType = TssShareType.RECOVERY; + } else if (!VALID_SHARE_INDICES.includes(shareType)) { + throw new Error(`invalid share type: must be one of ${VALID_SHARE_INDICES}`); + } + // Check for existing security question + const tkey = mpcCoreKit.tKey; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (storeDomain && storeDomain.question) { + throw new Error("Security question already exists"); + } + + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; + let hash = keccak256(Buffer.from(answer + pubKey, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new BN(hash, "hex"); + const descriptionFinal = _objectSpread({ + question + }, description); + await mpcCoreKit.createFactor({ + factorKey: factorKeyBN, + shareType, + shareDescription: FactorKeyTypeShareDescription.SecurityQuestions, + additionalMetadata: descriptionFinal + }); + // set store domain + const tkeyPt = getPubKeyPoint(factorKeyBN, factorKeyCurve); + const factorPub = tkeyPt.toSEC1(factorKeyCurve, true).toString("hex"); + const storeData = new TssSecurityQuestionStore(shareType.toString(), factorPub, question); + tkey.metadata.setGeneralStoreDomain(domainKey, storeData.toJSON()); + + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + return factorKeyBN.toString("hex").padStart(64, "0"); + } + async changeSecurityQuestion(params) { + const { + mpcCoreKit, + newQuestion, + newAnswer, + answer + } = params; + if (!newQuestion || !newAnswer || !answer) { + throw new Error("question and answer are required"); + } + // Check for existing security question + const tkey = mpcCoreKit.tKey; + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; + const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + const preHash = answer + pubKey; + let hash = keccak256(Buffer.from(preHash, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new BN(hash, "hex"); + const factorKeyPt = getPubKeyPoint(factorKeyBN, factorKeyCurve); + if (factorKeyPt.toSEC1(factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { + throw new Error("Invalid answer"); + } + + // create new factor key + const prenewHash = newAnswer + pubKey; + let newHash = keccak256(Buffer.from(prenewHash, "utf8")); + newHash = newHash.startsWith("0x") ? newHash.slice(2) : newHash; + const newAnswerBN = new BN(newHash, "hex"); + const newFactorPt = Point.fromScalar(newAnswerBN, factorKeyCurve); + await mpcCoreKit.createFactor({ + factorKey: newAnswerBN, + shareType: parseInt(store.shareIndex), + shareDescription: FactorKeyTypeShareDescription.SecurityQuestions + }); + + // update mpcCoreKit state to use new factor key during change password if mpc factor key is security question factor + if (mpcCoreKit.state.factorKey.eq(factorKeyBN)) { + await mpcCoreKit.inputFactorKey(newAnswerBN); + } + // delete after create factor to prevent last key issue + // delete old factor key and device share + await mpcCoreKit.deleteFactor(factorKeyPt, factorKeyBN); + store.factorPublicKey = newFactorPt.toSEC1(factorKeyCurve, true).toString("hex"); + store.question = newQuestion; + tkey.metadata.setGeneralStoreDomain(domainKey, store.toJSON()); + + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + } + + // Should we check with answer before deleting? + async deleteSecurityQuestion(mpcCoreKit, deleteFactorKey = true) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const tkey = mpcCoreKit.tKey; + if (deleteFactorKey) { + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + if (store.factorPublicKey) { + await mpcCoreKit.deleteFactor(Point.fromSEC1(factorKeyCurve, store.factorPublicKey)); + } + } + tkey.metadata.deleteGeneralStoreDomain(domainKey); + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + } + async recoverFactor(mpcCoreKit, answer) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + if (!answer) { + throw new Error("question and answer are required"); + } + const tkey = mpcCoreKit.tKey; + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; + let hash = keccak256(Buffer.from(answer + pubKey, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new BN(hash, "hex"); + const factorKeyPt = Point.fromScalar(factorKeyBN, factorKeyCurve); + if (factorKeyPt.toSEC1(factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { + throw new Error("Invalid answer"); + } + return hash; + } + getQuestion(mpcCoreKit) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + const tkey = mpcCoreKit.tKey; + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + return store.question; + } +} + +export { TssSecurityQuestion, TssSecurityQuestionStore }; diff --git a/package/dist/lib.esm/index.js b/package/dist/lib.esm/index.js new file mode 100644 index 00000000..20cc9367 --- /dev/null +++ b/package/dist/lib.esm/index.js @@ -0,0 +1,8 @@ +export { DELIMITERS, ERRORS, FIELD_ELEMENT_HEX_LEN, FactorKeyTypeShareDescription, MAX_FACTORS, SCALAR_LEN, SOCIAL_FACTOR_INDEX, SOCIAL_TKEY_INDEX, TssShareType, USER_PATH, VALID_SHARE_INDICES, WEB3AUTH_NETWORK } from './constants.js'; +export { AsyncStorage, MemoryStorage } from './helper/browserStorage.js'; +export { keyToMnemonic, mnemonicToKey } from './helper/factorSerialization.js'; +export { TssSecurityQuestion, TssSecurityQuestionStore } from './helper/securityQuestion.js'; +export { COREKIT_STATUS } from './interfaces.js'; +export { Web3AuthMPCCoreKit } from './mpcCoreKit.js'; +export { deriveShareCoefficients, ed25519, fraction, generateEd25519Seed, generateFactorKey, generateSessionNonce, generateTSSEndpoints, getHashedPrivateKey, getSessionId, lagrangeCoefficient, lagrangeCoefficients, log, makeEthereumSigner, parseToken, randomBytes, sampleEndpoints, scalarBNToBufferSEC1, sigToRSV, storageAvailable } from './utils.js'; +export { factorKeyCurve } from '@tkey/tss'; diff --git a/package/dist/lib.esm/interfaces.js b/package/dist/lib.esm/interfaces.js new file mode 100644 index 00000000..efe70ed1 --- /dev/null +++ b/package/dist/lib.esm/interfaces.js @@ -0,0 +1,11 @@ +// TODO: move the types to a base class for both dkls and frost in future + +let COREKIT_STATUS = /*#__PURE__*/function (COREKIT_STATUS) { + COREKIT_STATUS["NOT_INITIALIZED"] = "NOT_INITIALIZED"; + COREKIT_STATUS["INITIALIZED"] = "INITIALIZED"; + COREKIT_STATUS["REQUIRED_SHARE"] = "REQUIRED_SHARE"; + COREKIT_STATUS["LOGGED_IN"] = "LOGGED_IN"; + return COREKIT_STATUS; +}({}); + +export { COREKIT_STATUS }; diff --git a/package/dist/lib.esm/mpcCoreKit.js b/package/dist/lib.esm/mpcCoreKit.js new file mode 100644 index 00000000..3a18436b --- /dev/null +++ b/package/dist/lib.esm/mpcCoreKit.js @@ -0,0 +1,1402 @@ +import _objectSpread from '@babel/runtime/helpers/objectSpread2'; +import _defineProperty from '@babel/runtime/helpers/defineProperty'; +import { KeyType, Point, secp256k1, ShareStore, SHARE_DELETED } from '@tkey/common-types'; +import { CoreError } from '@tkey/core'; +import { ShareSerializationModule } from '@tkey/share-serialization'; +import { TorusStorageLayer } from '@tkey/storage-layer-torus'; +import { factorKeyCurve, lagrangeInterpolation, TSSTorusServiceProvider, TKeyTSS, getPubKeyPoint } from '@tkey/tss'; +import { KEY_TYPE, SIGNER_MAP } from '@toruslabs/constants'; +import { UX_MODE, AGGREGATE_VERIFIER, TORUS_METHOD } from '@toruslabs/customauth'; +import { Ed25519Curve } from '@toruslabs/elliptic-wrapper'; +import { fetchLocalConfig } from '@toruslabs/fnd-base'; +import { keccak256 } from '@toruslabs/metadata-helpers'; +import { SessionManager } from '@toruslabs/session-manager'; +import { Torus } from '@toruslabs/torus.js'; +import { setupSockets, getDKLSCoeff, Client } from '@toruslabs/tss-client'; +import { sign } from '@toruslabs/tss-frost-client'; +import BN from 'bn.js'; +import bowser from 'bowser'; +import { ec } from 'elliptic'; +import { WEB3AUTH_NETWORK, ERRORS, TssShareType, VALID_SHARE_INDICES, FactorKeyTypeShareDescription, FIELD_ELEMENT_HEX_LEN, MAX_FACTORS, SOCIAL_TKEY_INDEX } from './constants.js'; +import { AsyncStorage } from './helper/browserStorage.js'; +import CoreKitError from './helper/errors.js'; +import { COREKIT_STATUS } from './interfaces.js'; +import { log, parseToken, getHashedPrivateKey, generateFactorKey, scalarBNToBufferSEC1, ed25519, generateSessionNonce, getSessionId, generateTSSEndpoints, generateEd25519Seed, sampleEndpoints, deriveShareCoefficients } from './utils.js'; + +class Web3AuthMPCCoreKit { + constructor(options) { + var _window; + _defineProperty(this, "state", { + accountIndex: 0 + }); + _defineProperty(this, "torusSp", null); + _defineProperty(this, "options", void 0); + _defineProperty(this, "storageLayer", null); + _defineProperty(this, "tkey", null); + _defineProperty(this, "sessionManager", void 0); + _defineProperty(this, "currentStorage", void 0); + _defineProperty(this, "_storageBaseKey", "corekit_store"); + _defineProperty(this, "enableLogging", false); + _defineProperty(this, "ready", false); + _defineProperty(this, "_tssLib", void 0); + _defineProperty(this, "wasmLib", void 0); + _defineProperty(this, "_keyType", void 0); + _defineProperty(this, "atomicCallStackCounter", 0); + _defineProperty(this, "getTssFactorPub", () => { + this.checkReady(); + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when getting tss factor public key."); + } + const factorPubsList = this.tKey.metadata.factorPubs[this.tKey.tssTag]; + return factorPubsList.map(factorPub => factorPub.toSEC1(factorKeyCurve, true).toString("hex")); + }); + if (!options.web3AuthClientId) { + throw CoreKitError.clientIdInvalid(); + } + this._tssLib = options.tssLib; + this._keyType = options.tssLib.keyType; + const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); + if (options.enableLogging) { + log.enableAll(); + this.enableLogging = true; + } else log.setLevel("error"); + if (typeof options.manualSync !== "boolean") options.manualSync = false; + if (!options.web3AuthNetwork) options.web3AuthNetwork = WEB3AUTH_NETWORK.MAINNET; + // if sessionTime is not provided, it is defaulted to 86400 + if (!options.sessionTime) options.sessionTime = 86400; + if (!options.serverTimeOffset) options.serverTimeOffset = 0; + if (!options.uxMode) options.uxMode = UX_MODE.REDIRECT; + if (!options.redirectPathName) options.redirectPathName = "redirect"; + if (!options.baseUrl) options.baseUrl = isNodejsOrRN ? "https://localhost" : `${(_window = window) === null || _window === void 0 ? void 0 : _window.location.origin}/serviceworker`; + if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; + if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; + if (options.disableSessionManager === undefined) options.disableSessionManager = false; + this.options = options; + this.currentStorage = new AsyncStorage(this._storageBaseKey, options.storage); + if (!options.disableSessionManager) { + this.sessionManager = new SessionManager({ + sessionTime: options.sessionTime + }); + } + Torus.setSessionTime(this.options.sessionTime); + } + get tKey() { + if (this.tkey === null) { + throw CoreKitError.tkeyInstanceUninitialized(); + } + return this.tkey; + } + get keyType() { + return this._keyType; + } + get signatures() { + var _this$state; + return (_this$state = this.state) !== null && _this$state !== void 0 && _this$state.signatures ? this.state.signatures : []; + } + get _storageKey() { + return this._storageBaseKey; + } + get status() { + try { + // metadata will be present if tkey is initialized (1 share) + // if 2 shares are present, then privKey will be present after metadatakey(tkey) reconstruction + const { + tkey + } = this; + if (!tkey) return COREKIT_STATUS.NOT_INITIALIZED; + if (!tkey.metadata) return COREKIT_STATUS.INITIALIZED; + if (!tkey.secp256k1Key || !this.state.factorKey) return COREKIT_STATUS.REQUIRED_SHARE; + return COREKIT_STATUS.LOGGED_IN; + } catch (e) {} + return COREKIT_STATUS.NOT_INITIALIZED; + } + get sessionId() { + var _this$sessionManager; + return (_this$sessionManager = this.sessionManager) === null || _this$sessionManager === void 0 ? void 0 : _this$sessionManager.sessionId; + } + get supportsAccountIndex() { + return this._keyType !== KeyType.ed25519; + } + get verifier() { + var _this$state$userInfo, _this$state2; + if ((_this$state$userInfo = this.state.userInfo) !== null && _this$state$userInfo !== void 0 && _this$state$userInfo.aggregateVerifier) { + return this.state.userInfo.aggregateVerifier; + } + return (_this$state2 = this.state) !== null && _this$state2 !== void 0 && (_this$state2 = _this$state2.userInfo) !== null && _this$state2 !== void 0 && _this$state2.verifier ? this.state.userInfo.verifier : ""; + } + get verifierId() { + var _this$state3; + return (_this$state3 = this.state) !== null && _this$state3 !== void 0 && (_this$state3 = _this$state3.userInfo) !== null && _this$state3 !== void 0 && _this$state3.verifierId ? this.state.userInfo.verifierId : ""; + } + get isRedirectMode() { + return this.options.uxMode === UX_MODE.REDIRECT; + } + get useClientGeneratedTSSKey() { + return this.keyType === KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; + } + + // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : + // TssShareType.DEVICE and TssShareType.RECOVERY + // if the factors key provided is the same type recovery will not works + async _UNSAFE_recoverTssKey(factorKey) { + this.checkReady(); + const factorKeyBN = new BN(factorKey[0], "hex"); + const shareStore0 = await this.getFactorKeyMetadata(factorKeyBN); + await this.tKey.initialize({ + withShare: shareStore0 + }); + const tssShares = []; + const tssIndexes = []; + const tssIndexesBN = []; + for (let i = 0; i < factorKey.length; i++) { + const factorKeyBNInput = new BN(factorKey[i], "hex"); + const { + tssIndex, + tssShare + } = await this.tKey.getTSSShare(factorKeyBNInput); + if (tssIndexes.includes(tssIndex)) { + // reset instance before throw error + await this.init(); + throw CoreKitError.duplicateTssIndex(); + } + tssIndexes.push(tssIndex); + tssIndexesBN.push(new BN(tssIndex)); + tssShares.push(tssShare); + } + const finalKey = lagrangeInterpolation(this.tkey.tssCurve, tssShares, tssIndexesBN); + // reset instance after recovery completed + await this.init(); + return finalKey.toString("hex", 64); + } + async init(params = { + handleRedirectResult: true + }) { + var _window2, _window3; + this.resetState(); + if (params.rehydrate === undefined) params.rehydrate = true; + const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); + if (this.keyType === KEY_TYPE.ED25519 && this.options.useDKG) { + throw CoreKitError.invalidConfig("DKG is not supported for ed25519 key type"); + } + this.torusSp = new TSSTorusServiceProvider({ + customAuthArgs: { + web3AuthClientId: this.options.web3AuthClientId, + baseUrl: this.options.baseUrl, + uxMode: this.isNodejsOrRN(this.options.uxMode) ? UX_MODE.REDIRECT : this.options.uxMode, + network: this.options.web3AuthNetwork, + redirectPathName: this.options.redirectPathName, + locationReplaceOnRedirect: true, + serverTimeOffset: this.options.serverTimeOffset, + keyType: this.keyType, + useDkg: this.options.useDKG + } + }); + this.storageLayer = new TorusStorageLayer({ + hostUrl: `${new URL(nodeDetails.torusNodeEndpoints[0]).origin}/metadata`, + enableLogging: this.enableLogging + }); + const shareSerializationModule = new ShareSerializationModule(); + this.tkey = new TKeyTSS({ + enableLogging: this.enableLogging, + serviceProvider: this.torusSp, + storageLayer: this.storageLayer, + manualSync: this.options.manualSync, + modules: { + shareSerialization: shareSerializationModule + }, + tssKeyType: this.keyType + }); + if (this.isRedirectMode) { + await this.torusSp.init({ + skipSw: true, + skipPrefetch: true + }); + } else if (this.options.uxMode === UX_MODE.POPUP) { + await this.torusSp.init({}); + } + this.ready = true; + + // try handle redirect flow if enabled and return(redirect) from oauth login + if (params.handleRedirectResult && this.options.uxMode === UX_MODE.REDIRECT && ((_window2 = window) !== null && _window2 !== void 0 && _window2.location.hash.includes("#state") || (_window3 = window) !== null && _window3 !== void 0 && _window3.location.hash.includes("#access_token"))) { + // on failed redirect, instance is reseted. + // skip check feature gating on redirection as it was check before login + await this.handleRedirectResult(); + + // return early on successful redirect, the rest of the code will not be executed + return; + } else if (params.rehydrate && this.sessionManager) { + // if not redirect flow try to rehydrate session if available + const sessionId = await this.currentStorage.get("sessionId"); + if (sessionId) { + this.sessionManager.sessionId = sessionId; + + // swallowed, should not throw on rehydrate timed out session + const sessionResult = await this.sessionManager.authorizeSession().catch(async err => { + log.error("rehydrate session error", err); + }); + + // try rehydrate session + if (sessionResult) { + await this.rehydrateSession(sessionResult); + + // return early on success rehydration + return; + } + } + } + // feature gating if not redirect flow or session rehydration + await this.featureRequest(); + } + async loginWithOAuth(params) { + this.checkReady(); + if (this.isNodejsOrRN(this.options.uxMode)) { + throw CoreKitError.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`); + } + const { + importTssKey + } = params; + const tkeyServiceProvider = this.torusSp; + try { + // oAuth login. + const verifierParams = params; + const aggregateParams = params; + if (verifierParams.subVerifierDetails) { + var _loginResponse$nodesD; + // single verifier login. + const loginResponse = await tkeyServiceProvider.triggerLogin(params.subVerifierDetails); + if (this.isRedirectMode) return; + this.updateState({ + postBoxKey: this._getPostBoxKey(loginResponse), + postboxKeyNodeIndexes: (_loginResponse$nodesD = loginResponse.nodesData) === null || _loginResponse$nodesD === void 0 ? void 0 : _loginResponse$nodesD.nodeIndexes, + userInfo: loginResponse.userInfo, + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + } else if (aggregateParams.subVerifierDetailsArray) { + var _loginResponse$nodesD2; + const loginResponse = await tkeyServiceProvider.triggerAggregateLogin({ + aggregateVerifierType: aggregateParams.aggregateVerifierType || AGGREGATE_VERIFIER.SINGLE_VERIFIER_ID, + verifierIdentifier: aggregateParams.aggregateVerifierIdentifier, + subVerifierDetailsArray: aggregateParams.subVerifierDetailsArray + }); + if (this.isRedirectMode) return; + this.updateState({ + postBoxKey: this._getPostBoxKey(loginResponse), + postboxKeyNodeIndexes: (_loginResponse$nodesD2 = loginResponse.nodesData) === null || _loginResponse$nodesD2 === void 0 ? void 0 : _loginResponse$nodesD2.nodeIndexes, + userInfo: loginResponse.userInfo[0], + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + } + await this.setupTkey(importTssKey); + } catch (err) { + log.error("login error", err); + if (err instanceof CoreError) { + if (err.code === 1302) { + throw CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); + } + } + throw CoreKitError.default(err.message); + } + } + async loginWithJWT(params) { + this.checkReady(); + const { + prefetchTssPublicKeys = 1 + } = params; + if (prefetchTssPublicKeys > 3) { + throw CoreKitError.prefetchValueExceeded(`The prefetch value '${prefetchTssPublicKeys}' exceeds the maximum allowed limit of 3.`); + } + const { + verifier, + verifierId, + idToken, + importTssKey + } = params; + this.torusSp.verifierName = verifier; + this.torusSp.verifierId = verifierId; + try { + var _loginResponse$nodesD3; + // prefetch tss pub keys. + const prefetchTssPubs = []; + for (let i = 0; i < prefetchTssPublicKeys; i++) { + prefetchTssPubs.push(this.torusSp.getTSSPubKey(this.tkey.tssTag, i)); + } + + // get postbox key. + let loginPromise; + if (!params.subVerifier) { + // single verifier login. + loginPromise = this.torusSp.customAuthInstance.getTorusKey(verifier, verifierId, { + verifier_id: verifierId + }, idToken, _objectSpread(_objectSpread({}, params.extraVerifierParams), params.additionalParams)); + } else { + // aggregate verifier login + loginPromise = this.torusSp.customAuthInstance.getAggregateTorusKey(verifier, verifierId, [{ + verifier: params.subVerifier, + idToken, + extraVerifierParams: params.extraVerifierParams + }]); + } + + // wait for prefetch completed before setup tkey + const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]); + const postBoxKey = this._getPostBoxKey(loginResponse); + this.torusSp.postboxKey = new BN(postBoxKey, "hex"); + this.updateState({ + postBoxKey, + postboxKeyNodeIndexes: ((_loginResponse$nodesD3 = loginResponse.nodesData) === null || _loginResponse$nodesD3 === void 0 ? void 0 : _loginResponse$nodesD3.nodeIndexes) || [], + userInfo: _objectSpread(_objectSpread({}, parseToken(idToken)), {}, { + verifier, + verifierId + }), + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + await this.setupTkey(importTssKey); + } catch (err) { + log.error("login error", err); + if (err instanceof CoreError) { + if (err.code === 1302) { + const newError = CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); + newError.stack = err.stack; + throw newError; + } + } + const newError = CoreKitError.default(err.message); + newError.stack = err.stack; + throw newError; + } + } + async handleRedirectResult() { + this.checkReady(); + try { + const result = await this.torusSp.customAuthInstance.getRedirectResult(); + if (result.method === TORUS_METHOD.TRIGGER_LOGIN) { + var _data$nodesData; + const data = result.result; + if (!data) { + throw CoreKitError.invalidTorusLoginResponse(); + } + this.updateState({ + postBoxKey: this._getPostBoxKey(data), + postboxKeyNodeIndexes: ((_data$nodesData = data.nodesData) === null || _data$nodesData === void 0 ? void 0 : _data$nodesData.nodeIndexes) || [], + userInfo: data.userInfo, + signatures: this._getSignatures(data.sessionData.sessionTokenData) + }); + const userInfo = this.getUserInfo(); + this.torusSp.verifierName = userInfo.verifier; + } else if (result.method === TORUS_METHOD.TRIGGER_AGGREGATE_LOGIN) { + var _data$nodesData2; + const data = result.result; + if (!data) { + throw CoreKitError.invalidTorusAggregateLoginResponse(); + } + this.updateState({ + postBoxKey: this._getPostBoxKey(data), + postboxKeyNodeIndexes: ((_data$nodesData2 = data.nodesData) === null || _data$nodesData2 === void 0 ? void 0 : _data$nodesData2.nodeIndexes) || [], + userInfo: data.userInfo[0], + signatures: this._getSignatures(data.sessionData.sessionTokenData) + }); + const userInfo = this.getUserInfo(); + this.torusSp.verifierName = userInfo.aggregateVerifier; + } else { + throw CoreKitError.unsupportedRedirectMethod(); + } + const userInfo = this.getUserInfo(); + if (!this.state.postBoxKey) { + throw CoreKitError.postBoxKeyMissing("postBoxKey not present in state after processing redirect result."); + } + this.torusSp.postboxKey = new BN(this.state.postBoxKey, "hex"); + this.torusSp.verifierId = userInfo.verifierId; + await this.setupTkey(); + } catch (error) { + this.resetState(); + log.error("error while handling redirect result", error); + throw CoreKitError.default(error.message); + } + } + async inputFactorKey(factorKey) { + this.checkReady(); + try { + // input tkey device share when required share > 0 ( or not reconstructed ) + // assumption tkey shares will not changed + if (!this.tKey.secp256k1Key) { + const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + } + + // Finalize initialization. + await this.tKey.reconstructKey(); + await this.finalizeTkey(factorKey); + } catch (err) { + log.error("login error", err); + if (err instanceof CoreError) { + if (err.code === 1302) { + throw CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); + } + } + throw CoreKitError.default(err.message); + } + } + setTssWalletIndex(accountIndex) { + this.updateState({ + tssPubKey: this.tKey.getTSSPub(accountIndex).toSEC1(this.tkey.tssCurve, false), + accountIndex + }); + } + getCurrentFactorKey() { + this.checkReady(); + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when getting current factor key."); + } + if (!this.state.tssShareIndex) { + throw CoreKitError.tssShareTypeIndexMissing("TSS Share Type (Index) not present in state when getting current factor key."); + } + try { + return { + factorKey: this.state.factorKey, + shareType: this.state.tssShareIndex + }; + } catch (err) { + log.error("state error", err); + throw CoreKitError.default(err.message); + } + } + async enableMFA(enableMFAParams, recoveryFactor = true) { + this.checkReady(); + const { + postBoxKey + } = this.state; + const hashedFactorKey = getHashedPrivateKey(postBoxKey, this.options.hashedFactorNonce); + if (!(await this.checkIfFactorKeyValid(hashedFactorKey))) { + if (this.tKey._localMetadataTransitions[0].length) { + throw CoreKitError.commitChangesBeforeMFA(); + } + throw CoreKitError.mfaAlreadyEnabled(); + } + return this.atomicSync(async () => { + let browserData; + if (this.isNodejsOrRN(this.options.uxMode)) { + browserData = { + browserName: "Node Env", + browserVersion: "", + deviceName: "nodejs" + }; + } else { + // try { + const browserInfo = bowser.parse(navigator.userAgent); + const browserName = `${browserInfo.browser.name}`; + browserData = { + browserName, + browserVersion: browserInfo.browser.version, + deviceName: browserInfo.os.name + }; + } + const deviceFactorKey = new BN(await this.createFactor({ + shareType: TssShareType.DEVICE, + additionalMetadata: browserData + }), "hex"); + await this.setDeviceFactor(deviceFactorKey); + await this.inputFactorKey(new BN(deviceFactorKey, "hex")); + const hashedFactorPub = getPubKeyPoint(hashedFactorKey, factorKeyCurve); + await this.deleteFactor(hashedFactorPub, hashedFactorKey); + await this.deleteMetadataShareBackup(hashedFactorKey); + + // only recovery factor = true + let backupFactorKey; + if (recoveryFactor) { + backupFactorKey = await this.createFactor(_objectSpread({ + shareType: TssShareType.RECOVERY + }, enableMFAParams)); + } + + // update to undefined for next major release + return backupFactorKey; + }).catch(reason => { + log.error("error enabling MFA:", reason.message); + const err = CoreKitError.default(reason.message); + err.stack = reason.stack; + throw err; + }); + } + // mutation function + async createFactor(createFactorParams) { + this.checkReady(); + const { + shareType + } = createFactorParams; + let { + factorKey, + shareDescription, + additionalMetadata + } = createFactorParams; + if (!VALID_SHARE_INDICES.includes(shareType)) { + throw CoreKitError.newShareIndexInvalid(`Invalid share type provided (${shareType}). Valid share types are ${VALID_SHARE_INDICES}.`); + } + if (!factorKey) { + factorKey = generateFactorKey().private; + } + if (!shareDescription) { + shareDescription = FactorKeyTypeShareDescription.Other; + } + if (!additionalMetadata) { + additionalMetadata = {}; + } + const factorPub = getPubKeyPoint(factorKey, factorKeyCurve); + if (this.getTssFactorPub().includes(factorPub.toSEC1(factorKeyCurve, true).toString("hex"))) { + throw CoreKitError.factorKeyAlreadyExists(); + } + return this.atomicSync(async () => { + await this.copyOrCreateShare(shareType, factorPub); + await this.backupMetadataShare(factorKey); + await this.addFactorDescription({ + factorKey, + shareDescription, + additionalMetadata, + updateMetadata: false + }); + return scalarBNToBufferSEC1(factorKey).toString("hex"); + }).catch(reason => { + log.error("error creating factor:", reason.message); + const err = CoreKitError.default(`error creating factor: ${reason.message}`); + err.stack = reason.stack; + throw err; + }); + } + + /** + * Get public key point in SEC1 format. + */ + getPubKey() { + const { + tssPubKey + } = this.state; + return Buffer.from(tssPubKey); + } + + /** + * Get public key point. + */ + getPubKeyPoint() { + const { + tssPubKey + } = this.state; + return Point.fromSEC1(this.tkey.tssCurve, tssPubKey.toString("hex")); + } + + /** + * Get public key in ed25519 format. + * + * Throws an error if keytype is not compatible with ed25519. + */ + getPubKeyEd25519() { + const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); + return ed25519().keyFromPublic(p).getPublic(); + } + async precompute_secp256k1() { + this.wasmLib = await this.loadTssWasm(); + // PreSetup + const { + tssShareIndex + } = this.state; + const tssPubKey = this.getPubKeyPoint(); + const { + torusNodeTSSEndpoints + } = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when signing."); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey, { + accountIndex: 0 + }); + const tssNonce = this.getTssNonce(); + if (!tssPubKey || !torusNodeTSSEndpoints) { + throw CoreKitError.tssPublicKeyOrEndpointsMissing(); + } + + // session is needed for authentication to the web3auth infrastructure holding the factor 1 + const randomSessionNonce = generateSessionNonce(); + const currentSession = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, randomSessionNonce); + const parties = 4; + const clientIndex = parties - 1; + // 1. setup + // generate endpoints for servers + const { + nodeIndexes + } = await this.torusSp.getTSSPubKey(this.tKey.tssTag, this.tKey.metadata.tssNonces[this.tKey.tssTag]); + const { + endpoints, + tssWSEndpoints, + partyIndexes, + nodeIndexesReturned: participatingServerDKGIndexes + } = generateTSSEndpoints(torusNodeTSSEndpoints, parties, clientIndex, nodeIndexes); + + // Setup sockets. + const sockets = await setupSockets(tssWSEndpoints, randomSessionNonce); + const dklsCoeff = getDKLSCoeff(true, participatingServerDKGIndexes, tssShareIndex); + const denormalisedShare = dklsCoeff.mul(tssShare).umod(secp256k1.curve.n); + const accountNonce = this.tkey.computeAccountNonce(this.state.accountIndex); + const derivedShare = denormalisedShare.add(accountNonce).umod(secp256k1.curve.n); + const share = scalarBNToBufferSEC1(derivedShare).toString("base64"); + if (!currentSession) { + throw CoreKitError.activeSessionNotFound(); + } + const { + signatures + } = this; + if (!signatures) { + throw CoreKitError.signaturesNotPresent(); + } + + // Client lib expects pub key in XY-format, base64-encoded. + const tssPubKeyBase64 = Buffer.from(tssPubKey.toSEC1(secp256k1).subarray(1)).toString("base64"); + const client = new Client(currentSession, clientIndex, partyIndexes, endpoints, sockets, share, tssPubKeyBase64, true, this.wasmLib); + const serverCoeffs = {}; + for (let i = 0; i < participatingServerDKGIndexes.length; i++) { + const serverIndex = participatingServerDKGIndexes[i]; + serverCoeffs[serverIndex] = getDKLSCoeff(false, participatingServerDKGIndexes, tssShareIndex, serverIndex).toString("hex"); + } + client.precompute({ + signatures, + server_coeffs: serverCoeffs, + nonce: scalarBNToBufferSEC1(this.getAccountNonce()).toString("base64") + }); + await client.ready().catch(err => { + client.cleanup({ + signatures, + server_coeffs: serverCoeffs + }); + throw err; + }); + return { + client, + serverCoeffs + }; + } + async sign(data, hashed = false, secp256k1Precompute) { + this.wasmLib = await this.loadTssWasm(); + if (this.keyType === KeyType.secp256k1) { + const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); + return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); + } else if (this.keyType === KeyType.ed25519) { + return this.sign_ed25519(data, hashed); + } + throw CoreKitError.default(`sign not supported for key type ${this.keyType}`); + } + + // mutation function + async deleteFactor(factorPub, factorKey) { + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when deleting a factor."); + } + if (!this.tKey.metadata.factorPubs) { + throw CoreKitError.factorPubsMissing(); + } + await this.atomicSync(async () => { + const remainingFactors = this.tKey.metadata.factorPubs[this.tKey.tssTag].length || 0; + if (remainingFactors <= 1) { + throw CoreKitError.cannotDeleteLastFactor("Cannot delete last factor"); + } + const fpp = factorPub; + const stateFpp = getPubKeyPoint(this.state.factorKey, factorKeyCurve); + if (fpp.equals(stateFpp)) { + throw CoreKitError.factorInUseCannotBeDeleted("Cannot delete current active factor"); + } + await this.tKey.deleteFactorPub({ + factorKey: this.state.factorKey, + deleteFactorPub: factorPub, + authSignatures: this.signatures + }); + const factorPubHex = fpp.toSEC1(factorKeyCurve, true).toString("hex"); + const allDesc = this.tKey.metadata.getShareDescription(); + const keyDesc = allDesc[factorPubHex]; + if (keyDesc) { + await Promise.all(keyDesc.map(async desc => { + var _this$tKey; + return (_this$tKey = this.tKey) === null || _this$tKey === void 0 ? void 0 : _this$tKey.metadata.deleteShareDescription(factorPubHex, desc); + })); + } + + // delete factorKey share metadata if factorkey is provided + if (factorKey) { + const factorKeyBN = new BN(factorKey, "hex"); + const derivedFactorPub = getPubKeyPoint(factorKeyBN, factorKeyCurve); + // only delete if factorPub matches + if (derivedFactorPub.equals(fpp)) { + await this.deleteMetadataShareBackup(factorKeyBN); + } + } + }); + } + async logout() { + var _this$sessionManager2; + if ((_this$sessionManager2 = this.sessionManager) !== null && _this$sessionManager2 !== void 0 && _this$sessionManager2.sessionId) { + await this.sessionManager.invalidateSession(); + } + // to accommodate async storage + await this.currentStorage.set("sessionId", ""); + this.resetState(); + await this.init({ + handleRedirectResult: false, + rehydrate: false + }); + } + getUserInfo() { + if (!this.state.userInfo) { + throw CoreKitError.userNotLoggedIn(); + } + return this.state.userInfo; + } + getKeyDetails() { + this.checkReady(); + const tkeyDetails = this.tKey.getKeyDetails(); + const tssPubKey = this.state.tssPubKey ? Point.fromSEC1(this.tkey.tssCurve, this.state.tssPubKey.toString("hex")) : undefined; + const factors = this.tKey.metadata.factorPubs ? this.tKey.metadata.factorPubs[this.tKey.tssTag] : []; + const keyDetails = { + // use tkey's for now + requiredFactors: tkeyDetails.requiredShares, + threshold: tkeyDetails.threshold, + totalFactors: factors.length + 1, + shareDescriptions: this.tKey.getMetadata().getShareDescription(), + metadataPubKey: tkeyDetails.pubKey, + tssPubKey, + keyType: this.keyType + }; + return keyDetails; + } + async commitChanges() { + this.checkReady(); + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when committing changes."); + } + try { + // in case for manualsync = true, _syncShareMetadata will not call syncLocalMetadataTransitions() + // it will not create a new LocalMetadataTransition + // manual call syncLocalMetadataTransitions() required to sync local transitions to storage + await this.tKey._syncShareMetadata(); + await this.tKey.syncLocalMetadataTransitions(); + } catch (error) { + log.error("sync metadata error", error); + throw error; + } + } + async setManualSync(manualSync) { + this.checkReady(); + // sync local transistion to storage before allow changes + await this.tKey.syncLocalMetadataTransitions(); + this.options.manualSync = manualSync; + this.tKey.manualSync = manualSync; + } + + // device factor + async setDeviceFactor(factorKey, replace = false) { + if (!replace) { + const existingFactor = await this.getDeviceFactor(); + if (existingFactor) { + throw CoreKitError.default("Device factor already exists"); + } + } + const metadata = this.tKey.getMetadata(); + const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); + await this.currentStorage.set(tkeyPubX, JSON.stringify({ + factorKey: factorKey.toString("hex").padStart(64, "0") + })); + } + async getDeviceFactor() { + const metadata = this.tKey.getMetadata(); + const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); + const tKeyLocalStoreString = await this.currentStorage.get(tkeyPubX); + const tKeyLocalStore = JSON.parse(tKeyLocalStoreString || "{}"); + return tKeyLocalStore.factorKey; + } + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Exports the private key scalar for the current account index. + * + * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. + */ + async _UNSAFE_exportTssKey() { + if (this.keyType !== KeyType.secp256k1) { + throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is secp256k1"); + } + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss key."); + } + if (!this.state.signatures) { + throw CoreKitError.signaturesNotPresent("Signatures not present in state when exporting tss key."); + } + const exportTssKey0 = await this.tKey._UNSAFE_exportTssKey({ + factorKey: this.state.factorKey, + authSignatures: this.state.signatures + }); + const accountNonce = this.getAccountNonce(); + const tssKey = exportTssKey0.add(accountNonce).umod(this.tKey.tssCurve.n); + return tssKey.toString("hex", FIELD_ELEMENT_HEX_LEN); + } + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Attempts to export the ed25519 private key seed. Only works if import key + * flow has been used. + */ + async _UNSAFE_exportTssEd25519Seed() { + if (this.keyType !== KeyType.ed25519) { + throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is ed25519"); + } + if (!this.state.factorKey) throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); + if (!this.state.signatures) throw CoreKitError.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed."); + try { + const exportEd25519Seed = await this.tKey._UNSAFE_exportTssEd25519Seed({ + factorKey: this.state.factorKey, + authSignatures: this.state.signatures + }); + return exportEd25519Seed; + } catch (error) { + throw CoreKitError.default(`Error exporting ed25519 seed: ${error}`); + } + } + updateState(newState) { + this.state = _objectSpread(_objectSpread({}, this.state), newState); + } + async atomicSync(f) { + this.atomicCallStackCounter += 1; + this.tkey.manualSync = true; + try { + const r = await f(); + if (this.atomicCallStackCounter === 1) { + if (!this.options.manualSync) { + await this.commitChanges(); + } + } + return r; + } catch (error) { + throw error; + } finally { + this.atomicCallStackCounter -= 1; + if (this.atomicCallStackCounter === 0) { + this.tkey.manualSync = this.options.manualSync; + } + } + } + async importTssKey(tssKey, factorPub, newTSSIndex = TssShareType.DEVICE) { + if (!this.state.signatures) { + throw CoreKitError.signaturesNotPresent("Signatures not present in state when importing tss key."); + } + await this.tKey.importTssKey({ + tag: this.tKey.tssTag, + importKey: Buffer.from(tssKey, "hex"), + factorPub, + newTSSIndex + }, { + authSignatures: this.state.signatures + }); + } + getTssNonce() { + if (!this.tKey.metadata.tssNonces || this.tKey.metadata.tssNonces[this.tKey.tssTag] === undefined) { + throw CoreKitError.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`); + } + const tssNonce = this.tKey.metadata.tssNonces[this.tKey.tssTag]; + return tssNonce; + } + async setupTkey(providedImportTssKey) { + if (!this.state.postBoxKey) { + throw CoreKitError.userNotLoggedIn(); + } + const existingUser = await this.isMetadataPresent(this.state.postBoxKey); + let importTssKey = providedImportTssKey; + if (!existingUser) { + if (!importTssKey && this.useClientGeneratedTSSKey) { + if (this.keyType === KeyType.ed25519) { + const k = generateEd25519Seed(); + importTssKey = k.toString("hex"); + } else if (this.keyType === KeyType.secp256k1) { + const k = secp256k1.genKeyPair().getPrivate(); + importTssKey = scalarBNToBufferSEC1(k).toString("hex"); + } else { + throw CoreKitError.default("Unsupported key type"); + } + } + await this.handleNewUser(importTssKey); + } else { + if (importTssKey) { + throw CoreKitError.tssKeyImportNotAllowed(); + } + await this.handleExistingUser(); + } + } + + // mutation function + async handleNewUser(importTssKey) { + await this.atomicSync(async () => { + // Generate or use hash factor and initialize tkey with it. + let factorKey; + if (this.options.disableHashedFactorKey) { + factorKey = generateFactorKey().private; + // delete previous hashed factorKey if present + const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + await this.deleteMetadataShareBackup(hashedFactorKey); + } else { + factorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + } + const deviceTSSIndex = TssShareType.DEVICE; + const factorPub = getPubKeyPoint(factorKey, factorKeyCurve); + if (!importTssKey) { + const ec$1 = new ec(this.keyType); + const deviceTSSShare = ec$1.genKeyPair().getPrivate(); + await this.tKey.initialize({ + factorPub, + deviceTSSShare, + deviceTSSIndex + }); + } else { + await this.tKey.initialize({ + skipTssInit: true + }); + await this.tKey.reconstructKey(); + await this.importTssKey(importTssKey, factorPub, deviceTSSIndex); + } + + // Finalize initialization. + await this.tKey.reconstructKey(); + await this.finalizeTkey(factorKey); + + // Store factor description. + await this.backupMetadataShare(factorKey); + if (this.options.disableHashedFactorKey) { + await this.addFactorDescription({ + factorKey, + shareDescription: FactorKeyTypeShareDescription.Other, + updateMetadata: false + }); + } else { + await this.addFactorDescription({ + factorKey, + shareDescription: FactorKeyTypeShareDescription.HashedShare, + updateMetadata: false + }); + } + }); + } + async handleExistingUser() { + await this.tKey.initialize({ + neverInitializeNewKey: true + }); + if (this.options.disableHashedFactorKey) { + return; + } + const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + this.state.factorKey = hashedFactorKey; + if (await this.checkIfFactorKeyValid(hashedFactorKey)) { + // Initialize tkey with existing hashed share if available. + const factorKeyMetadata = await this.getFactorKeyMetadata(hashedFactorKey); + try { + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + await this.tKey.reconstructKey(); + await this.finalizeTkey(hashedFactorKey); + } catch (err) { + log.error("error initializing tkey with hashed share", err); + } + } else { + var _this$tKey2; + const factorKeyMetadata = await ((_this$tKey2 = this.tKey) === null || _this$tKey2 === void 0 ? void 0 : _this$tKey2.readMetadata(hashedFactorKey)); + if (factorKeyMetadata.message === "SHARE_DELETED") { + // throw CoreKitError.hashedFactorDeleted(); + log.warn("hashed factor deleted"); + } + } + } + async finalizeTkey(factorKey) { + if (this.state.accountIndex !== 0) { + log.warn("AccountIndex should be 0"); + this.state.accountIndex = 0; + } + // Read tss meta data. + const { + tssIndex: tssShareIndex + } = await this.tKey.getTSSShare(factorKey); + const tssPubKey = this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve, false); + this.updateState({ + tssShareIndex, + tssPubKey, + factorKey + }); + await this.createSession(); + } + checkReady() { + if (!this.ready) { + throw CoreKitError.mpcCoreKitNotInitialized(); + } + } + async rehydrateSession(result) { + try { + this.checkReady(); + const factorKey = new BN(result.factorKey, "hex"); + if (!factorKey) { + throw CoreKitError.providedFactorKeyInvalid(); + } + const postBoxKey = result.postBoxKey || result.oAuthKey; + if (!postBoxKey) { + throw CoreKitError.default("postBoxKey or oAuthKey not present in session data"); + } + this.torusSp.postboxKey = new BN(postBoxKey, "hex"); + this.torusSp.verifierName = result.userInfo.aggregateVerifier || result.userInfo.verifier; + this.torusSp.verifierId = result.userInfo.verifierId; + const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); + await this.tKey.initialize({ + neverInitializeNewKey: true + }); + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + await this.tKey.reconstructKey(); + this.updateState({ + factorKey: new BN(result.factorKey, "hex"), + postBoxKey, + postboxKeyNodeIndexes: result.postboxKeyNodeIndexes || [], + tssShareIndex: result.tssShareIndex, + tssPubKey: this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve, false), + signatures: result.signatures, + userInfo: result.userInfo + }); + } catch (err) { + log.warn("failed to authorize session", err); + } + } + async createSession() { + if (!this.options.disableSessionManager && !this.sessionManager) { + throw new Error("sessionManager is not available"); + } + try { + const sessionId = SessionManager.generateRandomSessionKey(); + this.sessionManager.sessionId = sessionId; + const { + postBoxKey, + factorKey, + userInfo, + tssShareIndex, + tssPubKey, + postboxKeyNodeIndexes + } = this.state; + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when creating session."); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey, { + accountIndex: this.state.accountIndex + }); + if (!postBoxKey || !factorKey || !tssShare || !tssPubKey || !userInfo) { + throw CoreKitError.userNotLoggedIn(); + } + const payload = { + postBoxKey, + postboxKeyNodeIndexes: postboxKeyNodeIndexes || [], + factorKey: factorKey === null || factorKey === void 0 ? void 0 : factorKey.toString("hex"), + tssShareIndex: tssShareIndex, + tssPubKey: Buffer.from(tssPubKey).toString("hex"), + signatures: this.signatures, + userInfo + }; + await this.sessionManager.createSession(payload); + // to accommodate async storage + await this.currentStorage.set("sessionId", sessionId); + } catch (err) { + log.error("error creating session", err); + } + } + async isMetadataPresent(privateKey) { + var _this$tKey3; + const privateKeyBN = new BN(privateKey, "hex"); + const metadata = await ((_this$tKey3 = this.tKey) === null || _this$tKey3 === void 0 ? void 0 : _this$tKey3.readMetadata(privateKeyBN)); + if (metadata && metadata.message !== "KEY_NOT_FOUND") { + return true; + } + return false; + } + async checkIfFactorKeyValid(factorKey) { + var _this$tKey4; + this.checkReady(); + const factorKeyMetadata = await ((_this$tKey4 = this.tKey) === null || _this$tKey4 === void 0 ? void 0 : _this$tKey4.readMetadata(factorKey)); + if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND" || factorKeyMetadata.message === "SHARE_DELETED") { + return false; + } + return true; + } + async getFactorKeyMetadata(factorKey) { + var _this$tKey5; + this.checkReady(); + const factorKeyMetadata = await ((_this$tKey5 = this.tKey) === null || _this$tKey5 === void 0 ? void 0 : _this$tKey5.readMetadata(factorKey)); + if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND") { + throw CoreKitError.noMetadataFound(); + } + return ShareStore.fromJSON(factorKeyMetadata); + } + + /** + * Copies a share and makes it available under a new factor key. If no share + * exists at the specified share index, a new share is created. + * @param newFactorTSSIndex - The index of the share to copy. + * @param newFactorPub - The public key of the new share. + */ + async copyOrCreateShare(newFactorTSSIndex, newFactorPub) { + this.checkReady(); + if (!this.tKey.metadata.factorPubs || !Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag])) { + throw CoreKitError.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key."); + } + if (!this.tKey.metadata.factorEncs || typeof this.tKey.metadata.factorEncs[this.tKey.tssTag] !== "object") { + throw CoreKitError.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key."); + } + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when copying or creating a share."); + } + if (VALID_SHARE_INDICES.indexOf(newFactorTSSIndex) === -1) { + throw CoreKitError.newShareIndexInvalid(`Invalid share type provided (${newFactorTSSIndex}). Valid share types are ${VALID_SHARE_INDICES}.`); + } + if (this.tKey.metadata.factorPubs[this.tKey.tssTag].length >= MAX_FACTORS) { + throw CoreKitError.maximumFactorsReached(`The maximum number of allowable factors (${MAX_FACTORS}) has been reached.`); + } + + // Generate new share. + await this.tkey.addFactorPub({ + existingFactorKey: this.state.factorKey, + authSignatures: this.signatures, + newFactorPub, + newTSSIndex: newFactorTSSIndex, + refreshShares: this.state.tssShareIndex !== newFactorTSSIndex // Refresh shares if we have a new factor key index. + }); + } + async getMetadataShare() { + try { + var _this$tKey6, _this$tKey7; + const polyId = (_this$tKey6 = this.tKey) === null || _this$tKey6 === void 0 ? void 0 : _this$tKey6.metadata.getLatestPublicPolynomial().getPolynomialID(); + const shares = (_this$tKey7 = this.tKey) === null || _this$tKey7 === void 0 ? void 0 : _this$tKey7.shares[polyId]; + let share = null; + for (const shareIndex in shares) { + if (shareIndex !== SOCIAL_TKEY_INDEX.toString()) { + share = shares[shareIndex]; + } + } + if (!share) { + throw CoreKitError.noMetadataShareFound(); + } + return share; + } catch (err) { + log.error("create device share error", err); + throw CoreKitError.default(err.message); + } + } + async deleteMetadataShareBackup(factorKey) { + var _this$tkey, _this$tkey2; + await this.tKey.addLocalMetadataTransitions({ + input: [{ + message: SHARE_DELETED, + dateAdded: Date.now() + }], + privKey: [factorKey] + }); + if (!((_this$tkey = this.tkey) !== null && _this$tkey !== void 0 && _this$tkey.manualSync)) await ((_this$tkey2 = this.tkey) === null || _this$tkey2 === void 0 ? void 0 : _this$tkey2.syncLocalMetadataTransitions()); + } + async backupMetadataShare(factorKey) { + var _this$tKey8, _this$tkey3, _this$tkey4; + const metadataShare = await this.getMetadataShare(); + + // Set metadata for factor key backup + await ((_this$tKey8 = this.tKey) === null || _this$tKey8 === void 0 ? void 0 : _this$tKey8.addLocalMetadataTransitions({ + input: [metadataShare], + privKey: [factorKey] + })); + if (!((_this$tkey3 = this.tkey) !== null && _this$tkey3 !== void 0 && _this$tkey3.manualSync)) await ((_this$tkey4 = this.tkey) === null || _this$tkey4 === void 0 ? void 0 : _this$tkey4.syncLocalMetadataTransitions()); + } + async addFactorDescription(args) { + var _this$tKey9; + const { + factorKey, + shareDescription, + updateMetadata + } = args; + let { + additionalMetadata + } = args; + if (!additionalMetadata) { + additionalMetadata = {}; + } + const { + tssIndex + } = await this.tKey.getTSSShare(factorKey); + const factorPoint = getPubKeyPoint(factorKey, factorKeyCurve); + const factorPub = factorPoint.toSEC1(factorKeyCurve, true).toString("hex"); + const params = _objectSpread(_objectSpread({ + module: shareDescription, + dateAdded: Date.now() + }, additionalMetadata), {}, { + tssShareIndex: tssIndex + }); + await ((_this$tKey9 = this.tKey) === null || _this$tKey9 === void 0 ? void 0 : _this$tKey9.addShareDescription(factorPub, JSON.stringify(params), updateMetadata)); + } + resetState() { + this.ready = false; + this.tkey = null; + this.torusSp = null; + this.storageLayer = null; + this.state = { + accountIndex: 0 + }; + } + _getPostBoxKey(result) { + return Torus.getPostboxKey(result); + } + _getSignatures(sessionData) { + // There is a check in torus.js which pushes undefined to session data in case + // that particular node call fails. + // and before returning we are not filtering out undefined vals in torus.js + // TODO: fix this in torus.js + return sessionData.filter(session => !!session).map(session => JSON.stringify({ + data: session.token, + sig: session.signature + })); + } + isNodejsOrRN(params) { + const mode = params; + return mode === "nodejs" || mode === "react-native"; + } + async featureRequest() { + const accessUrl = SIGNER_MAP[this.options.web3AuthNetwork]; + const accessRequest = { + network: this.options.web3AuthNetwork, + client_id: this.options.web3AuthClientId, + is_mpc_core_kit: "true", + enable_gating: "true", + session_time: this.options.sessionTime.toString() + }; + const url = new URL(`${accessUrl}/api/feature-access`); + url.search = new URLSearchParams(accessRequest).toString(); + const result = await fetch(url); + if (result.status !== 200) { + // reset state on no mpc access + this.resetState(); + const errMessage = await result.json(); + throw CoreKitError.default(errMessage.error); + } + return result.json(); + } + getAccountNonce() { + return this.tkey.computeAccountNonce(this.state.accountIndex); + } + async sign_ECDSA_secp256k1(data, hashed = false, precomputedTssClient) { + const executeSign = async (client, serverCoeffs, hashedData, signatures) => { + const { + r, + s, + recoveryParam + } = await client.sign(hashedData.toString("base64"), true, "", "keccak256", { + signatures + }); + // skip await cleanup + client.cleanup({ + signatures, + server_coeffs: serverCoeffs + }); + return { + v: recoveryParam, + r: scalarBNToBufferSEC1(r), + s: scalarBNToBufferSEC1(s) + }; + }; + if (!hashed) { + data = keccak256(data); + } + const isAlreadyPrecomputed = (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.client) && (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.serverCoeffs); + const { + client, + serverCoeffs + } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); + const { + signatures + } = this; + if (!signatures) { + throw CoreKitError.signaturesNotPresent(); + } + try { + return await executeSign(client, serverCoeffs, data, signatures); + } catch (error) { + if (!isAlreadyPrecomputed) { + throw error; + } + // Retry with new client if precomputed client failed, this is to handle the case when precomputed session might have expired + const { + client: newClient, + serverCoeffs: newServerCoeffs + } = await this.precompute_secp256k1(); + const result = await executeSign(newClient, newServerCoeffs, data, signatures); + return result; + } + } + async sign_ed25519(data, hashed = false) { + if (hashed) { + throw CoreKitError.default("hashed data not supported for ed25519"); + } + const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, "ed25519"); + if (!nodeDetails.torusNodeTSSEndpoints) { + throw CoreKitError.default("could not fetch tss node endpoints"); + } + + // Endpoints must end with backslash, but URLs returned by + // `fetch-node-details` don't have it. + const ED25519_ENDPOINTS = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ + index: nodeDetails.torusIndexes[i], + url: `${ep}/` + })); + + // Select endpoints and derive party indices. + const serverThreshold = Math.floor(ED25519_ENDPOINTS.length / 2) + 1; + const endpoints = sampleEndpoints(ED25519_ENDPOINTS, serverThreshold); + const serverXCoords = endpoints.map(x => x.index); + const clientXCoord = Math.max(...endpoints.map(ep => ep.index)) + 1; + + // Derive share coefficients for flat hierarchy. + const ec = new Ed25519Curve(); + const { + serverCoefficients, + clientCoefficient + } = deriveShareCoefficients(ec, serverXCoords, clientXCoord, this.state.tssShareIndex); + + // Get pub key. + const tssPubKey = await this.getPubKey(); + const tssPubKeyPoint = ec.keyFromPublic(tssPubKey).getPublic(); + + // Get client key share and adjust by coefficient. + if (this.state.accountIndex !== 0) { + throw CoreKitError.default("Account index not supported for ed25519"); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey); + const clientShareAdjusted = tssShare.mul(clientCoefficient).umod(ec.n); + const clientShareAdjustedHex = ec.scalarToBuffer(clientShareAdjusted, Buffer).toString("hex"); + + // Generate session identifier. + const tssNonce = this.getTssNonce(); + const sessionNonce = generateSessionNonce(); + const session = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, sessionNonce); + + // Run signing protocol. + const serverURLs = endpoints.map(x => x.url); + const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); + const serverCoefficientsHex = serverCoefficients.map(c => ec.scalarToBuffer(c, Buffer).toString("hex")); + const signature = await sign(this.wasmLib, session, this.signatures, serverXCoords, serverURLs, clientXCoord, clientShareAdjustedHex, pubKeyHex, data, serverCoefficientsHex); + log.info(`signature: ${signature}`); + return Buffer.from(signature, "hex"); + } + async loadTssWasm() { + if (this.wasmLib) return this.wasmLib; + if (typeof this._tssLib.load === "function") { + // dont wait for wasm to be loaded, we can reload it during signing if not loaded + return this._tssLib.load(); + } else if (this._tssLib.lib) { + return this._tssLib.lib; + } + } +} + +export { Web3AuthMPCCoreKit }; diff --git a/package/dist/lib.esm/utils.js b/package/dist/lib.esm/utils.js new file mode 100644 index 00000000..8d989d61 --- /dev/null +++ b/package/dist/lib.esm/utils.js @@ -0,0 +1,192 @@ +import { Point, KeyType, secp256k1 } from '@tkey/common-types'; +import { generatePrivateBN } from '@tkey/core'; +import { factorKeyCurve } from '@tkey/tss'; +import { safeatob } from '@toruslabs/openlogin-utils'; +import { keccak256 } from '@toruslabs/torus.js'; +import BN from 'bn.js'; +import { eddsa } from 'elliptic'; +import loglevel from 'loglevel'; +import { SCALAR_LEN, DELIMITERS } from './constants.js'; + +const ed25519 = () => { + return new eddsa("ed25519"); +}; + +/** + * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. + */ +function randomBytes(bytesLength = 32) { + // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. + const crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : undefined; + if (crypto && typeof crypto.getRandomValues === "function") { + return crypto.getRandomValues(new Uint8Array(bytesLength)); + } + throw new Error("crypto.getRandomValues must be defined"); +} +function generateEd25519Seed() { + return Buffer.from(randomBytes(32)); +} +const generateFactorKey = () => { + const keyPair = factorKeyCurve.genKeyPair(); + const pub = Point.fromElliptic(keyPair.getPublic()); + return { + private: keyPair.getPrivate(), + pub + }; +}; +const generateTSSEndpoints = (tssNodeEndpoints, parties, clientIndex, nodeIndexes) => { + const endpoints = []; + const tssWSEndpoints = []; + const partyIndexes = []; + const nodeIndexesReturned = []; + for (let i = 0; i < parties; i++) { + partyIndexes.push(i); + if (i === clientIndex) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + endpoints.push(null); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + tssWSEndpoints.push(null); + } else { + const targetNodeIndex = nodeIndexes[i] - 1; + endpoints.push(tssNodeEndpoints[targetNodeIndex]); + tssWSEndpoints.push(new URL(tssNodeEndpoints[targetNodeIndex]).origin); + nodeIndexesReturned.push(nodeIndexes[i]); + } + } + return { + endpoints, + tssWSEndpoints, + partyIndexes, + nodeIndexesReturned + }; +}; +async function storageAvailable(storage) { + try { + const x = "__storage_test__"; + const rand = Math.random().toString(); + await storage.setItem(x, rand); + const value = await storage.getItem(rand); + if (value !== rand) { + throw new Error("Value mismatch"); + } + return true; + } catch (error) { + return false; + } +} + +// TODO think which conversion functions to keep and how to export them. + +/** + * Parses a JWT Token, without verifying the signature. + * @param token - JWT Token + * @returns Extracted JSON payload from the token + */ +function parseToken(token) { + const payload = token.split(".")[1]; + return JSON.parse(safeatob(payload)); +} +const getHashedPrivateKey = (postboxKey, clientId) => { + const uid = `${postboxKey}_${clientId}`; + let hashUid = keccak256(Buffer.from(uid, "utf8")); + hashUid = hashUid.replace("0x", ""); + return new BN(hashUid, "hex"); +}; + +/** + * Converts an elliptic curve scalar represented by a BN to a byte buffer in SEC1 + * format (i.e., padded to maximum length). + * @param s - The scalar of type BN. + * @returns The SEC1 encoded representation of the scalar. + */ +function scalarBNToBufferSEC1(s) { + return s.toArrayLike(Buffer, "be", SCALAR_LEN); +} +function sampleEndpoints(endpoints, n) { + if (n > endpoints.length) { + throw new Error("Invalid number of endpoints"); + } + const shuffledEndpoints = endpoints.slice().sort(() => Math.random() - 0.5); + return shuffledEndpoints.slice(0, n).sort((a, b) => a.index - b.index); +} +function fraction(curve, nom, denom) { + return nom.mul(denom.invm(curve.n)).umod(curve.n); +} +function lagrangeCoefficient(curve, xCoords, targetCoeff, targetX) { + return xCoords.filter((_, i) => i !== targetCoeff).reduce((prev, cur) => { + const frac = fraction(curve, targetX.sub(cur), xCoords[targetCoeff].sub(cur)); + return prev.mul(frac).umod(curve.n); + }, new BN(1)); +} +function lagrangeCoefficients(curve, xCoords, targetX) { + const xCoordsBN = xCoords.map(i => new BN(i)); + const targetXBN = new BN(targetX); + return xCoordsBN.map((_value, i) => lagrangeCoefficient(curve, xCoordsBN, i, targetXBN)); +} +const SERVER_XCOORD_L1 = 1; +const CLIENT_XCOORD_L1 = 2; + +/** + * Derive share coefficients for client and servers. + * + * @param curve - The curve to be used. + * @param serverXCoords - The source and target x-coordinates of the selected + * servers. + * @param targetClientXCoord - The target x-coordinate of the client. + * @param sourceClientXCoord - The source x-coordinate of the client in the L1 + * hierarchy. + * @returns - The share coefficients for the client and the servers. + */ +function deriveShareCoefficients(ec, serverXCoords, targetClientXCoord, sourceClientXCoord = CLIENT_XCOORD_L1) { + const l1Coefficients = lagrangeCoefficients(ec, [SERVER_XCOORD_L1, sourceClientXCoord], 0); + const l2Coefficients = lagrangeCoefficients(ec, serverXCoords, 0); + if (serverXCoords.includes(targetClientXCoord)) { + throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${serverXCoords} ${targetClientXCoord}`); + } + const targetCoefficients = lagrangeCoefficients(ec, [targetClientXCoord, ...serverXCoords], 0); + + // Derive server coefficients. + const serverCoefficients = l2Coefficients.map((coeff, i) => fraction(ec, l1Coefficients[0].mul(coeff), targetCoefficients[i + 1])); + + // Derive client coefficient. + const clientCoefficient = fraction(ec, l1Coefficients[1], targetCoefficients[0]); + return { + serverCoefficients, + clientCoefficient + }; +} +function generateSessionNonce() { + return keccak256(Buffer.from(generatePrivateBN().toString("hex") + Date.now(), "utf8")); +} +function getSessionId(verifier, verifierId, tssTag, tssNonce, sessionNonce) { + return `${verifier}${DELIMITERS.Delimiter1}${verifierId}${DELIMITERS.Delimiter2}${tssTag}${DELIMITERS.Delimiter3}${tssNonce}${DELIMITERS.Delimiter4}${sessionNonce}`; +} +function sigToRSV(sig) { + if (sig.length !== 65) { + throw new Error(`Invalid signature length: expected 65, got ${sig.length}`); + } + return { + r: sig.subarray(0, 32), + s: sig.subarray(32, 64), + v: sig[64] + }; +} +function makeEthereumSigner(kit) { + if (kit.keyType !== KeyType.secp256k1) { + throw new Error(`Invalid key type: expected secp256k1, got ${kit.keyType}`); + } + return { + sign: async msgHash => { + const sig = await kit.sign(msgHash, true); + return sigToRSV(sig); + }, + getPublic: async () => { + const pk = Point.fromSEC1(secp256k1, kit.getPubKey().toString("hex")); + return pk.toSEC1(secp256k1).subarray(1); + } + }; +} +const log = loglevel.getLogger("mpc-core-kit"); +log.disableAll(); + +export { deriveShareCoefficients, ed25519, fraction, generateEd25519Seed, generateFactorKey, generateSessionNonce, generateTSSEndpoints, getHashedPrivateKey, getSessionId, lagrangeCoefficient, lagrangeCoefficients, log, makeEthereumSigner, parseToken, randomBytes, sampleEndpoints, scalarBNToBufferSEC1, sigToRSV, storageAvailable }; diff --git a/package/dist/mpcCoreKit.cjs.js b/package/dist/mpcCoreKit.cjs.js new file mode 100644 index 00000000..64927735 --- /dev/null +++ b/package/dist/mpcCoreKit.cjs.js @@ -0,0 +1,2389 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + AsyncStorage: () => (/* reexport */ AsyncStorage), + COREKIT_STATUS: () => (/* reexport */ COREKIT_STATUS), + DELIMITERS: () => (/* reexport */ DELIMITERS), + ERRORS: () => (/* reexport */ ERRORS), + FIELD_ELEMENT_HEX_LEN: () => (/* reexport */ FIELD_ELEMENT_HEX_LEN), + FactorKeyTypeShareDescription: () => (/* reexport */ FactorKeyTypeShareDescription), + MAX_FACTORS: () => (/* reexport */ MAX_FACTORS), + MemoryStorage: () => (/* reexport */ MemoryStorage), + SCALAR_LEN: () => (/* reexport */ SCALAR_LEN), + SOCIAL_FACTOR_INDEX: () => (/* reexport */ SOCIAL_FACTOR_INDEX), + SOCIAL_TKEY_INDEX: () => (/* reexport */ SOCIAL_TKEY_INDEX), + TssSecurityQuestion: () => (/* reexport */ TssSecurityQuestion), + TssSecurityQuestionStore: () => (/* reexport */ TssSecurityQuestionStore), + TssShareType: () => (/* reexport */ TssShareType), + USER_PATH: () => (/* reexport */ USER_PATH), + VALID_SHARE_INDICES: () => (/* reexport */ VALID_SHARE_INDICES), + WEB3AUTH_NETWORK: () => (/* reexport */ WEB3AUTH_NETWORK), + Web3AuthMPCCoreKit: () => (/* reexport */ Web3AuthMPCCoreKit), + deriveShareCoefficients: () => (/* reexport */ deriveShareCoefficients), + ed25519: () => (/* reexport */ ed25519), + factorKeyCurve: () => (/* reexport */ tss_namespaceObject.factorKeyCurve), + fraction: () => (/* reexport */ fraction), + generateEd25519Seed: () => (/* reexport */ generateEd25519Seed), + generateFactorKey: () => (/* reexport */ generateFactorKey), + generateSessionNonce: () => (/* reexport */ generateSessionNonce), + generateTSSEndpoints: () => (/* reexport */ generateTSSEndpoints), + getHashedPrivateKey: () => (/* reexport */ getHashedPrivateKey), + getSessionId: () => (/* reexport */ getSessionId), + keyToMnemonic: () => (/* reexport */ keyToMnemonic), + lagrangeCoefficient: () => (/* reexport */ lagrangeCoefficient), + lagrangeCoefficients: () => (/* reexport */ lagrangeCoefficients), + log: () => (/* reexport */ log), + makeEthereumSigner: () => (/* reexport */ makeEthereumSigner), + mnemonicToKey: () => (/* reexport */ mnemonicToKey), + parseToken: () => (/* reexport */ parseToken), + randomBytes: () => (/* reexport */ randomBytes), + sampleEndpoints: () => (/* reexport */ sampleEndpoints), + scalarBNToBufferSEC1: () => (/* reexport */ scalarBNToBufferSEC1), + sigToRSV: () => (/* reexport */ sigToRSV), + storageAvailable: () => (/* reexport */ storageAvailable) +}); + +;// CONCATENATED MODULE: external "@toruslabs/constants" +const constants_namespaceObject = require("@toruslabs/constants"); +;// CONCATENATED MODULE: ./src/constants.ts + +const WEB3AUTH_NETWORK = { + MAINNET: constants_namespaceObject.TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET, + DEVNET: constants_namespaceObject.TORUS_SAPPHIRE_NETWORK.SAPPHIRE_DEVNET +}; +const USER_PATH = { + NEW: "NewAccount", + EXISTING: "ExistingAccount", + REHYDRATE: "RehydrateAccount", + RECOVER: "RecoverAccount" +}; +let FactorKeyTypeShareDescription = /*#__PURE__*/function (FactorKeyTypeShareDescription) { + FactorKeyTypeShareDescription["HashedShare"] = "hashedShare"; + FactorKeyTypeShareDescription["SecurityQuestions"] = "tssSecurityQuestions"; + FactorKeyTypeShareDescription["DeviceShare"] = "deviceShare"; + FactorKeyTypeShareDescription["SeedPhrase"] = "seedPhrase"; + FactorKeyTypeShareDescription["PasswordShare"] = "passwordShare"; + FactorKeyTypeShareDescription["SocialShare"] = "socialShare"; + FactorKeyTypeShareDescription["Other"] = "Other"; + return FactorKeyTypeShareDescription; +}({}); +const DELIMITERS = { + Delimiter1: "\u001c", + Delimiter2: "\u0015", + Delimiter3: "\u0016", + Delimiter4: "\u0017" +}; +const ERRORS = { + TKEY_SHARES_REQUIRED: "required more shares", + INVALID_BACKUP_SHARE: "invalid backup share" +}; +const SOCIAL_FACTOR_INDEX = 1; + +/** + * Defines the TSS Share Index in a simplified way for better implementation. + **/ +let TssShareType = /*#__PURE__*/function (TssShareType) { + TssShareType[TssShareType["DEVICE"] = 2] = "DEVICE"; + TssShareType[TssShareType["RECOVERY"] = 3] = "RECOVERY"; + return TssShareType; +}({}); +const VALID_SHARE_INDICES = [TssShareType.DEVICE, TssShareType.RECOVERY]; +const SCALAR_LEN = 32; // Length of secp256k1 scalar in bytes. +const FIELD_ELEMENT_HEX_LEN = 32 * 2; // Length of secp256k1 field element in hex form. + +const MAX_FACTORS = 10; // Maximum number of factors that can be added to an account. +const SOCIAL_TKEY_INDEX = 1; +;// CONCATENATED MODULE: external "@babel/runtime/helpers/defineProperty" +const defineProperty_namespaceObject = require("@babel/runtime/helpers/defineProperty"); +var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty_namespaceObject); +;// CONCATENATED MODULE: ./src/helper/errors.ts + +/** + * Fix the prototype chain of the error + * + * Use Object.setPrototypeOf + * Support ES6 environments + * + * Fallback setting __proto__ + * Support IE11+, see https://docs.microsoft.com/en-us/scripting/javascript/reference/javascript-version-information + */ +function fixProto(target, prototype) { + const { + setPrototypeOf + } = Object; + if (setPrototypeOf) { + setPrototypeOf(target, prototype); + } else { + // eslint-disable-next-line no-proto, @typescript-eslint/no-explicit-any + target.__proto__ = prototype; + } +} + +/** + * Capture and fix the error stack when available + * + * Use Error.captureStackTrace + * Support v8 environments + */ +function fixStack(target, fn = target.constructor) { + const { + captureStackTrace + } = Error; + if (captureStackTrace) { + captureStackTrace(target, fn); + } +} + +// copy from https://github.com/microsoft/TypeScript/blob/main/lib/lib.es2022.error.d.ts +// avoid typescript isue https://github.com/adriengibrat/ts-custom-error/issues/81 + +/** + * Allows to easily extend a base class to create custom applicative errors. + * + * example: + * ``` + * class HttpError extends CustomError { + * public constructor( + * public code: number, + * message?: string, + * cause?: Error, + * ) { + * super(message, { cause }) + * } + * } + * + * new HttpError(404, 'Not found') + * ``` + */ +class CustomError extends Error { + constructor(message, options) { + super(message, options); + // set error name as constructor name, make it not enumerable to keep native Error behavior + // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target#new.target_in_constructors + // see https://github.com/adriengibrat/ts-custom-error/issues/30 + defineProperty_default()(this, "name", void 0); + Object.defineProperty(this, "name", { + value: new.target.name, + enumerable: false, + configurable: true + }); + // fix the extended error prototype chain + // because typescript __extends implementation can't + // see https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work + fixProto(this, new.target.prototype); + // try to remove contructor from stack trace + fixStack(this); + } +} +class AbstractCoreKitError extends CustomError { + constructor(code, message) { + // takes care of stack and proto + super(message); + defineProperty_default()(this, "code", void 0); + defineProperty_default()(this, "message", void 0); + this.code = code; + this.message = message || ""; + // Set name explicitly as minification can mangle class names + Object.defineProperty(this, "name", { + value: "TkeyError" + }); + } + toJSON() { + return { + name: this.name, + code: this.code, + message: this.message + }; + } + toString() { + return JSON.stringify(this.toJSON()); + } +} + +/** + * CoreKitError, extension for Error using CustomError + * + * Usage: + * 1. throw CoreKitError.factorKeyNotPresent("Required factor key missing in the operation."); // Use a predefined method to throw a common error + * 2. throw CoreKitError.fromCode(1001); // Throw an error using a code for a common error + * 3. throw new CoreKitError(1102, "'tkey' instance has not been initialized."); // Throw a specific error with a custom message + * + * Guide: + * 1000 - Configuration errors + * 1100 - TSS and key management errors + * 1200 - Factor key and authentication errors + * 1300 - Initialization and session management + */ +class CoreKitError extends AbstractCoreKitError { + constructor(code, message) { + super(code, message); + Object.defineProperty(this, "name", { + value: "CoreKitError" + }); + } + static fromCode(code, extraMessage = "") { + return new CoreKitError(code, `${CoreKitError.messages[code]} ${extraMessage}`); + } + static default(extraMessage = "") { + return new CoreKitError(1000, `${CoreKitError.messages[1000]} ${extraMessage}`); + } + + // Configuration errors + static chainConfigInvalid(extraMessage = "") { + return CoreKitError.fromCode(1001, extraMessage); + } + static clientIdInvalid(extraMessage = "") { + return CoreKitError.fromCode(1002, extraMessage); + } + static storageTypeUnsupported(extraMessage = "") { + return CoreKitError.fromCode(1003, extraMessage); + } + static oauthLoginUnsupported(extraMessage = "") { + return CoreKitError.fromCode(1004, extraMessage); + } + static noValidStorageOptionFound(extraMessage = "") { + return CoreKitError.fromCode(1005, extraMessage); + } + static noDataFoundInStorage(extraMessage = "") { + return CoreKitError.fromCode(1006, extraMessage); + } + static invalidConfig(extraMessage = "") { + return CoreKitError.fromCode(1007, extraMessage); + } + + // TSS and key management errors + static tssLibRequired(extraMessage = "") { + return CoreKitError.fromCode(1101, extraMessage); + } + static tkeyInstanceUninitialized(extraMessage = "") { + return CoreKitError.fromCode(1102, extraMessage); + } + static duplicateTssIndex(extraMessage = "") { + return CoreKitError.fromCode(1103, extraMessage); + } + static nodeDetailsRetrievalFailed(extraMessage = "") { + return CoreKitError.fromCode(1104, extraMessage); + } + static prefetchValueExceeded(extraMessage = "") { + return CoreKitError.fromCode(1105, extraMessage); + } + static invalidTorusLoginResponse(extraMessage = "") { + return CoreKitError.fromCode(1106, extraMessage); + } + static invalidTorusAggregateLoginResponse(extraMessage = "") { + return CoreKitError.fromCode(1107, extraMessage); + } + static unsupportedRedirectMethod(extraMessage = "") { + return CoreKitError.fromCode(1108, extraMessage); + } + static postBoxKeyMissing(extraMessage = "") { + return CoreKitError.fromCode(1109, extraMessage); + } + static tssShareTypeIndexMissing(extraMessage = "") { + return CoreKitError.fromCode(1110, extraMessage); + } + static tssPublicKeyOrEndpointsMissing(extraMessage = "") { + return CoreKitError.fromCode(1111, extraMessage); + } + static activeSessionNotFound(extraMessage = "") { + return CoreKitError.fromCode(1112, extraMessage); + } + static tssNoncesMissing(extraMessage = "") { + return CoreKitError.fromCode(1113, extraMessage); + } + static tssKeyImportNotAllowed(extraMessage = "") { + return CoreKitError.fromCode(1114, extraMessage); + } + + // Factor key and authentication errors + static factorKeyNotPresent(extraMessage = "") { + return CoreKitError.fromCode(1201, extraMessage); + } + static factorKeyAlreadyExists(extraMessage = "") { + return CoreKitError.fromCode(1202, extraMessage); + } + static mfaAlreadyEnabled(extraMessage = "") { + return CoreKitError.fromCode(1203, extraMessage); + } + static cannotDeleteLastFactor(extraMessage = "") { + return CoreKitError.fromCode(1204, extraMessage); + } + static factorInUseCannotBeDeleted(extraMessage = "") { + return CoreKitError.fromCode(1205, extraMessage); + } + static userNotLoggedIn(extraMessage = "") { + return CoreKitError.fromCode(1206, extraMessage); + } + static providedFactorKeyInvalid(extraMessage = "") { + return CoreKitError.fromCode(1207, extraMessage); + } + static factorEncsMissing(extraMessage = "") { + return CoreKitError.fromCode(1208, extraMessage); + } + static noMetadataFound(extraMessage = "") { + return CoreKitError.fromCode(1209, extraMessage); + } + static newShareIndexInvalid(extraMessage = "") { + return CoreKitError.fromCode(1210, extraMessage); + } + static maximumFactorsReached(extraMessage = "") { + return CoreKitError.fromCode(1211, extraMessage); + } + static noMetadataShareFound(extraMessage = "") { + return CoreKitError.fromCode(1212, extraMessage); + } + static signaturesNotPresent(extraMessage = "") { + return CoreKitError.fromCode(1213, extraMessage); + } + static factorPubsMissing(extraMessage = "") { + return CoreKitError.fromCode(1214, extraMessage); + } + + // Initialization and session management + static commitChangesBeforeMFA(extraMessage = "") { + return CoreKitError.fromCode(1301, extraMessage); + } + static mpcCoreKitNotInitialized(extraMessage = "") { + return CoreKitError.fromCode(1302, extraMessage); + } +} +defineProperty_default()(CoreKitError, "messages", { + // Configuration errors + 1001: "You must specify a valid eip155 chain configuration in the options.", + 1002: "You must specify a web3auth clientId.", + 1003: "Unsupported storage type in this UX mode.", + 1004: "OAuth login is NOT supported in this UX mode.", + 1005: "No valid storage option found.", + 1006: "No data found in storage.", + 1007: "Invalid config.", + // TSS and key management errors + 1101: "'tssLib' is required when running in this UX mode.", + 1102: "'tkey' instance has not been initialized.", + 1103: "Duplicate TSS index found. Ensure that each TSS index is unique.", + 1104: "Failed to retrieve node details. Please check your network connection and try again.", + 1105: "The prefetch TSS public keys exceeds the maximum allowed limit of 3.", + 1106: "Invalid 'TorusLoginResponse' data provided.", + 1107: "Invalid 'TorusAggregateLoginResponse' data provided.", + 1108: "Unsupported method type encountered in redirect result.", + 1109: "OAuthKey not present in state.", + 1110: "TSS Share Type (Index) not present in state when getting current factor key.", + 1111: "'tssPubKey' or 'torusNodeTSSEndpoints' are missing.", + 1112: "No active session found.", + 1113: "tssNonces not present in metadata when getting tss nonce.", + 1114: "A TSS key cannot be imported for an existing user who already has a key configured.", + // Factor key and authentication errors + 1201: "factorKey not present in state when required.", + 1202: "A factor with the same key already exists.", + 1203: "MFA is already enabled.", + 1204: "Cannot delete the last remaining factor as at least one factor is required.", + 1205: "The factor currently in use cannot be deleted.", + 1206: "User is not logged in.", + 1207: "Provided factor key is invalid.", + 1208: "'factorEncs' mpt [resemt].", + 1209: "No metadata found for the provided factor key. Consider resetting your account if this error persists.", + 1210: "The new share index is not valid. It must be one of the valid share indices.", + 1211: "The maximum number of allowable factors (10) has been reached.", + 1212: "No metadata share found in the current polynomial.", + 1213: "No signatures found.", + 1214: "Factor public keys not present", + // Initialization and session management + 1301: "The 'CommitChanges' method must be called before enabling MFA.", + 1302: "The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations." +}); +/* harmony default export */ const errors = (CoreKitError); +;// CONCATENATED MODULE: ./src/helper/browserStorage.ts + + +class MemoryStorage { + constructor() { + defineProperty_default()(this, "_store", {}); + } + getItem(key) { + return this._store[key] || null; + } + setItem(key, value) { + this._store[key] = value; + } + removeItem(key) { + delete this._store[key]; + } + clear() { + this._store = {}; + } +} +class AsyncStorage { + constructor(storeKey, storage) { + defineProperty_default()(this, "storage", void 0); + defineProperty_default()(this, "_storeKey", void 0); + this.storage = storage; + this._storeKey = storeKey; + } + async toJSON() { + const result = await this.storage.getItem(this._storeKey); + if (!result) { + throw errors.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`); + } + return result; + } + async resetStore() { + const currStore = await this.getStore(); + await this.storage.setItem(this._storeKey, JSON.stringify({})); + return currStore; + } + async getStore() { + return JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + } + async get(key) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + return store[key]; + } + async set(key, value) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + store[key] = value; + await this.storage.setItem(this._storeKey, JSON.stringify(store)); + } + async remove(key) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + delete store[key]; + await this.storage.setItem(this._storeKey, JSON.stringify(store)); + } +} +;// CONCATENATED MODULE: external "@tkey/share-serialization" +const share_serialization_namespaceObject = require("@tkey/share-serialization"); +;// CONCATENATED MODULE: external "bn.js" +const external_bn_js_namespaceObject = require("bn.js"); +var external_bn_js_default = /*#__PURE__*/__webpack_require__.n(external_bn_js_namespaceObject); +;// CONCATENATED MODULE: ./src/helper/factorSerialization.ts + + + +/** + * Converts a mnemonic to a BN. + * @param shareMnemonic - The mnemonic to convert. + * @returns A BN respective to your mnemonic + */ +function mnemonicToKey(shareMnemonic) { + const factorKey = share_serialization_namespaceObject.ShareSerializationModule.deserializeMnemonic(shareMnemonic); + return factorKey.toString("hex"); +} + +/** + * Converts a BN to a mnemonic. + * @param shareBN - The BN to convert. + * @returns A mnemonic respective to your BN + */ +function keyToMnemonic(shareHex) { + const shareBN = new (external_bn_js_default())(shareHex, "hex"); + const mnemonic = share_serialization_namespaceObject.ShareSerializationModule.serializeMnemonic(shareBN); + return mnemonic; +} +;// CONCATENATED MODULE: external "@babel/runtime/helpers/objectSpread2" +const objectSpread2_namespaceObject = require("@babel/runtime/helpers/objectSpread2"); +var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2_namespaceObject); +;// CONCATENATED MODULE: external "@tkey/common-types" +const common_types_namespaceObject = require("@tkey/common-types"); +;// CONCATENATED MODULE: external "@tkey/tss" +const tss_namespaceObject = require("@tkey/tss"); +;// CONCATENATED MODULE: external "@toruslabs/torus.js" +const torus_js_namespaceObject = require("@toruslabs/torus.js"); +;// CONCATENATED MODULE: ./src/helper/securityQuestion.ts + + + + + + + +class TssSecurityQuestionStore { + constructor(shareIndex, factorPublicKey, question) { + defineProperty_default()(this, "shareIndex", void 0); + defineProperty_default()(this, "factorPublicKey", void 0); + defineProperty_default()(this, "question", void 0); + this.shareIndex = shareIndex; + this.factorPublicKey = factorPublicKey; + this.question = question; + } + static fromJSON(json) { + const { + shareIndex, + factorPublicKey, + question + } = json; + return new TssSecurityQuestionStore(shareIndex, factorPublicKey, question); + } + toJSON() { + return { + shareIndex: this.shareIndex, + factorPublicKey: this.factorPublicKey, + question: this.question + }; + } +} +class TssSecurityQuestion { + constructor() { + defineProperty_default()(this, "storeDomainName", "tssSecurityQuestion"); + } + async setSecurityQuestion(params) { + const { + mpcCoreKit, + question, + answer, + description + } = params; + let { + shareType + } = params; + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + if (!question || !answer) { + throw new Error("question and answer are required"); + } + const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; + + // default using recovery index + if (!shareType) { + shareType = TssShareType.RECOVERY; + } else if (!VALID_SHARE_INDICES.includes(shareType)) { + throw new Error(`invalid share type: must be one of ${VALID_SHARE_INDICES}`); + } + // Check for existing security question + const tkey = mpcCoreKit.tKey; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (storeDomain && storeDomain.question) { + throw new Error("Security question already exists"); + } + + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(common_types_namespaceObject.secp256k1, true).toString("hex") + tkey.tssTag; + let hash = (0,torus_js_namespaceObject.keccak256)(Buffer.from(answer + pubKey, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new (external_bn_js_default())(hash, "hex"); + const descriptionFinal = objectSpread2_default()({ + question + }, description); + await mpcCoreKit.createFactor({ + factorKey: factorKeyBN, + shareType, + shareDescription: FactorKeyTypeShareDescription.SecurityQuestions, + additionalMetadata: descriptionFinal + }); + // set store domain + const tkeyPt = (0,tss_namespaceObject.getPubKeyPoint)(factorKeyBN, tss_namespaceObject.factorKeyCurve); + const factorPub = tkeyPt.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex"); + const storeData = new TssSecurityQuestionStore(shareType.toString(), factorPub, question); + tkey.metadata.setGeneralStoreDomain(domainKey, storeData.toJSON()); + + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + return factorKeyBN.toString("hex").padStart(64, "0"); + } + async changeSecurityQuestion(params) { + const { + mpcCoreKit, + newQuestion, + newAnswer, + answer + } = params; + if (!newQuestion || !newAnswer || !answer) { + throw new Error("question and answer are required"); + } + // Check for existing security question + const tkey = mpcCoreKit.tKey; + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(common_types_namespaceObject.secp256k1, true).toString("hex") + tkey.tssTag; + const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + const preHash = answer + pubKey; + let hash = (0,torus_js_namespaceObject.keccak256)(Buffer.from(preHash, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new (external_bn_js_default())(hash, "hex"); + const factorKeyPt = (0,tss_namespaceObject.getPubKeyPoint)(factorKeyBN, tss_namespaceObject.factorKeyCurve); + if (factorKeyPt.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { + throw new Error("Invalid answer"); + } + + // create new factor key + const prenewHash = newAnswer + pubKey; + let newHash = (0,torus_js_namespaceObject.keccak256)(Buffer.from(prenewHash, "utf8")); + newHash = newHash.startsWith("0x") ? newHash.slice(2) : newHash; + const newAnswerBN = new (external_bn_js_default())(newHash, "hex"); + const newFactorPt = common_types_namespaceObject.Point.fromScalar(newAnswerBN, tss_namespaceObject.factorKeyCurve); + await mpcCoreKit.createFactor({ + factorKey: newAnswerBN, + shareType: parseInt(store.shareIndex), + shareDescription: FactorKeyTypeShareDescription.SecurityQuestions + }); + + // update mpcCoreKit state to use new factor key during change password if mpc factor key is security question factor + if (mpcCoreKit.state.factorKey.eq(factorKeyBN)) { + await mpcCoreKit.inputFactorKey(newAnswerBN); + } + // delete after create factor to prevent last key issue + // delete old factor key and device share + await mpcCoreKit.deleteFactor(factorKeyPt, factorKeyBN); + store.factorPublicKey = newFactorPt.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex"); + store.question = newQuestion; + tkey.metadata.setGeneralStoreDomain(domainKey, store.toJSON()); + + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + } + + // Should we check with answer before deleting? + async deleteSecurityQuestion(mpcCoreKit, deleteFactorKey = true) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const tkey = mpcCoreKit.tKey; + if (deleteFactorKey) { + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + if (store.factorPublicKey) { + await mpcCoreKit.deleteFactor(common_types_namespaceObject.Point.fromSEC1(tss_namespaceObject.factorKeyCurve, store.factorPublicKey)); + } + } + tkey.metadata.deleteGeneralStoreDomain(domainKey); + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + } + async recoverFactor(mpcCoreKit, answer) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + if (!answer) { + throw new Error("question and answer are required"); + } + const tkey = mpcCoreKit.tKey; + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(common_types_namespaceObject.secp256k1, true).toString("hex") + tkey.tssTag; + let hash = (0,torus_js_namespaceObject.keccak256)(Buffer.from(answer + pubKey, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new (external_bn_js_default())(hash, "hex"); + const factorKeyPt = common_types_namespaceObject.Point.fromScalar(factorKeyBN, tss_namespaceObject.factorKeyCurve); + if (factorKeyPt.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { + throw new Error("Invalid answer"); + } + return hash; + } + getQuestion(mpcCoreKit) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + const tkey = mpcCoreKit.tKey; + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + return store.question; + } +} +;// CONCATENATED MODULE: ./src/helper/index.ts + + + +;// CONCATENATED MODULE: ./src/interfaces.ts +// TODO: move the types to a base class for both dkls and frost in future + +let COREKIT_STATUS = /*#__PURE__*/function (COREKIT_STATUS) { + COREKIT_STATUS["NOT_INITIALIZED"] = "NOT_INITIALIZED"; + COREKIT_STATUS["INITIALIZED"] = "INITIALIZED"; + COREKIT_STATUS["REQUIRED_SHARE"] = "REQUIRED_SHARE"; + COREKIT_STATUS["LOGGED_IN"] = "LOGGED_IN"; + return COREKIT_STATUS; +}({}); +;// CONCATENATED MODULE: external "@tkey/core" +const core_namespaceObject = require("@tkey/core"); +;// CONCATENATED MODULE: external "@tkey/storage-layer-torus" +const storage_layer_torus_namespaceObject = require("@tkey/storage-layer-torus"); +;// CONCATENATED MODULE: external "@toruslabs/customauth" +const customauth_namespaceObject = require("@toruslabs/customauth"); +;// CONCATENATED MODULE: external "@toruslabs/elliptic-wrapper" +const elliptic_wrapper_namespaceObject = require("@toruslabs/elliptic-wrapper"); +;// CONCATENATED MODULE: external "@toruslabs/fnd-base" +const fnd_base_namespaceObject = require("@toruslabs/fnd-base"); +;// CONCATENATED MODULE: external "@toruslabs/metadata-helpers" +const metadata_helpers_namespaceObject = require("@toruslabs/metadata-helpers"); +;// CONCATENATED MODULE: external "@toruslabs/session-manager" +const session_manager_namespaceObject = require("@toruslabs/session-manager"); +;// CONCATENATED MODULE: external "@toruslabs/tss-client" +const tss_client_namespaceObject = require("@toruslabs/tss-client"); +;// CONCATENATED MODULE: external "@toruslabs/tss-frost-client" +const tss_frost_client_namespaceObject = require("@toruslabs/tss-frost-client"); +;// CONCATENATED MODULE: external "bowser" +const external_bowser_namespaceObject = require("bowser"); +var external_bowser_default = /*#__PURE__*/__webpack_require__.n(external_bowser_namespaceObject); +;// CONCATENATED MODULE: external "elliptic" +const external_elliptic_namespaceObject = require("elliptic"); +;// CONCATENATED MODULE: external "@toruslabs/openlogin-utils" +const openlogin_utils_namespaceObject = require("@toruslabs/openlogin-utils"); +;// CONCATENATED MODULE: external "loglevel" +const external_loglevel_namespaceObject = require("loglevel"); +var external_loglevel_default = /*#__PURE__*/__webpack_require__.n(external_loglevel_namespaceObject); +;// CONCATENATED MODULE: ./src/utils.ts + + + + + + + + + +const ed25519 = () => { + return new external_elliptic_namespaceObject.eddsa("ed25519"); +}; + +/** + * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. + */ +function randomBytes(bytesLength = 32) { + // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. + const crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : undefined; + if (crypto && typeof crypto.getRandomValues === "function") { + return crypto.getRandomValues(new Uint8Array(bytesLength)); + } + throw new Error("crypto.getRandomValues must be defined"); +} +function generateEd25519Seed() { + return Buffer.from(randomBytes(32)); +} +const generateFactorKey = () => { + const keyPair = tss_namespaceObject.factorKeyCurve.genKeyPair(); + const pub = common_types_namespaceObject.Point.fromElliptic(keyPair.getPublic()); + return { + private: keyPair.getPrivate(), + pub + }; +}; +const generateTSSEndpoints = (tssNodeEndpoints, parties, clientIndex, nodeIndexes) => { + const endpoints = []; + const tssWSEndpoints = []; + const partyIndexes = []; + const nodeIndexesReturned = []; + for (let i = 0; i < parties; i++) { + partyIndexes.push(i); + if (i === clientIndex) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + endpoints.push(null); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + tssWSEndpoints.push(null); + } else { + const targetNodeIndex = nodeIndexes[i] - 1; + endpoints.push(tssNodeEndpoints[targetNodeIndex]); + tssWSEndpoints.push(new URL(tssNodeEndpoints[targetNodeIndex]).origin); + nodeIndexesReturned.push(nodeIndexes[i]); + } + } + return { + endpoints, + tssWSEndpoints, + partyIndexes, + nodeIndexesReturned + }; +}; +async function storageAvailable(storage) { + try { + const x = "__storage_test__"; + const rand = Math.random().toString(); + await storage.setItem(x, rand); + const value = await storage.getItem(rand); + if (value !== rand) { + throw new Error("Value mismatch"); + } + return true; + } catch (error) { + return false; + } +} + +// TODO think which conversion functions to keep and how to export them. + +/** + * Parses a JWT Token, without verifying the signature. + * @param token - JWT Token + * @returns Extracted JSON payload from the token + */ +function parseToken(token) { + const payload = token.split(".")[1]; + return JSON.parse((0,openlogin_utils_namespaceObject.safeatob)(payload)); +} +const getHashedPrivateKey = (postboxKey, clientId) => { + const uid = `${postboxKey}_${clientId}`; + let hashUid = (0,torus_js_namespaceObject.keccak256)(Buffer.from(uid, "utf8")); + hashUid = hashUid.replace("0x", ""); + return new (external_bn_js_default())(hashUid, "hex"); +}; + +/** + * Converts an elliptic curve scalar represented by a BN to a byte buffer in SEC1 + * format (i.e., padded to maximum length). + * @param s - The scalar of type BN. + * @returns The SEC1 encoded representation of the scalar. + */ +function scalarBNToBufferSEC1(s) { + return s.toArrayLike(Buffer, "be", SCALAR_LEN); +} +function sampleEndpoints(endpoints, n) { + if (n > endpoints.length) { + throw new Error("Invalid number of endpoints"); + } + const shuffledEndpoints = endpoints.slice().sort(() => Math.random() - 0.5); + return shuffledEndpoints.slice(0, n).sort((a, b) => a.index - b.index); +} +function fraction(curve, nom, denom) { + return nom.mul(denom.invm(curve.n)).umod(curve.n); +} +function lagrangeCoefficient(curve, xCoords, targetCoeff, targetX) { + return xCoords.filter((_, i) => i !== targetCoeff).reduce((prev, cur) => { + const frac = fraction(curve, targetX.sub(cur), xCoords[targetCoeff].sub(cur)); + return prev.mul(frac).umod(curve.n); + }, new (external_bn_js_default())(1)); +} +function lagrangeCoefficients(curve, xCoords, targetX) { + const xCoordsBN = xCoords.map(i => new (external_bn_js_default())(i)); + const targetXBN = new (external_bn_js_default())(targetX); + return xCoordsBN.map((_value, i) => lagrangeCoefficient(curve, xCoordsBN, i, targetXBN)); +} +const SERVER_XCOORD_L1 = 1; +const CLIENT_XCOORD_L1 = 2; + +/** + * Derive share coefficients for client and servers. + * + * @param curve - The curve to be used. + * @param serverXCoords - The source and target x-coordinates of the selected + * servers. + * @param targetClientXCoord - The target x-coordinate of the client. + * @param sourceClientXCoord - The source x-coordinate of the client in the L1 + * hierarchy. + * @returns - The share coefficients for the client and the servers. + */ +function deriveShareCoefficients(ec, serverXCoords, targetClientXCoord, sourceClientXCoord = CLIENT_XCOORD_L1) { + const l1Coefficients = lagrangeCoefficients(ec, [SERVER_XCOORD_L1, sourceClientXCoord], 0); + const l2Coefficients = lagrangeCoefficients(ec, serverXCoords, 0); + if (serverXCoords.includes(targetClientXCoord)) { + throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${serverXCoords} ${targetClientXCoord}`); + } + const targetCoefficients = lagrangeCoefficients(ec, [targetClientXCoord, ...serverXCoords], 0); + + // Derive server coefficients. + const serverCoefficients = l2Coefficients.map((coeff, i) => fraction(ec, l1Coefficients[0].mul(coeff), targetCoefficients[i + 1])); + + // Derive client coefficient. + const clientCoefficient = fraction(ec, l1Coefficients[1], targetCoefficients[0]); + return { + serverCoefficients, + clientCoefficient + }; +} +function generateSessionNonce() { + return (0,torus_js_namespaceObject.keccak256)(Buffer.from((0,core_namespaceObject.generatePrivateBN)().toString("hex") + Date.now(), "utf8")); +} +function getSessionId(verifier, verifierId, tssTag, tssNonce, sessionNonce) { + return `${verifier}${DELIMITERS.Delimiter1}${verifierId}${DELIMITERS.Delimiter2}${tssTag}${DELIMITERS.Delimiter3}${tssNonce}${DELIMITERS.Delimiter4}${sessionNonce}`; +} +function sigToRSV(sig) { + if (sig.length !== 65) { + throw new Error(`Invalid signature length: expected 65, got ${sig.length}`); + } + return { + r: sig.subarray(0, 32), + s: sig.subarray(32, 64), + v: sig[64] + }; +} +function makeEthereumSigner(kit) { + if (kit.keyType !== common_types_namespaceObject.KeyType.secp256k1) { + throw new Error(`Invalid key type: expected secp256k1, got ${kit.keyType}`); + } + return { + sign: async msgHash => { + const sig = await kit.sign(msgHash, true); + return sigToRSV(sig); + }, + getPublic: async () => { + const pk = common_types_namespaceObject.Point.fromSEC1(common_types_namespaceObject.secp256k1, kit.getPubKey().toString("hex")); + return pk.toSEC1(common_types_namespaceObject.secp256k1).subarray(1); + } + }; +} +const log = external_loglevel_default().getLogger("mpc-core-kit"); +log.disableAll(); +;// CONCATENATED MODULE: ./src/mpcCoreKit.ts + + + + + + + + + + + + + + + + + + + + + + + + +class Web3AuthMPCCoreKit { + constructor(options) { + var _window; + defineProperty_default()(this, "state", { + accountIndex: 0 + }); + defineProperty_default()(this, "torusSp", null); + defineProperty_default()(this, "options", void 0); + defineProperty_default()(this, "storageLayer", null); + defineProperty_default()(this, "tkey", null); + defineProperty_default()(this, "sessionManager", void 0); + defineProperty_default()(this, "currentStorage", void 0); + defineProperty_default()(this, "_storageBaseKey", "corekit_store"); + defineProperty_default()(this, "enableLogging", false); + defineProperty_default()(this, "ready", false); + defineProperty_default()(this, "_tssLib", void 0); + defineProperty_default()(this, "wasmLib", void 0); + defineProperty_default()(this, "_keyType", void 0); + defineProperty_default()(this, "atomicCallStackCounter", 0); + defineProperty_default()(this, "getTssFactorPub", () => { + this.checkReady(); + if (!this.state.factorKey) { + throw errors.factorKeyNotPresent("factorKey not present in state when getting tss factor public key."); + } + const factorPubsList = this.tKey.metadata.factorPubs[this.tKey.tssTag]; + return factorPubsList.map(factorPub => factorPub.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex")); + }); + if (!options.web3AuthClientId) { + throw errors.clientIdInvalid(); + } + this._tssLib = options.tssLib; + this._keyType = options.tssLib.keyType; + const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); + if (options.enableLogging) { + log.enableAll(); + this.enableLogging = true; + } else log.setLevel("error"); + if (typeof options.manualSync !== "boolean") options.manualSync = false; + if (!options.web3AuthNetwork) options.web3AuthNetwork = WEB3AUTH_NETWORK.MAINNET; + // if sessionTime is not provided, it is defaulted to 86400 + if (!options.sessionTime) options.sessionTime = 86400; + if (!options.serverTimeOffset) options.serverTimeOffset = 0; + if (!options.uxMode) options.uxMode = customauth_namespaceObject.UX_MODE.REDIRECT; + if (!options.redirectPathName) options.redirectPathName = "redirect"; + if (!options.baseUrl) options.baseUrl = isNodejsOrRN ? "https://localhost" : `${(_window = window) === null || _window === void 0 ? void 0 : _window.location.origin}/serviceworker`; + if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; + if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; + if (options.disableSessionManager === undefined) options.disableSessionManager = false; + this.options = options; + this.currentStorage = new AsyncStorage(this._storageBaseKey, options.storage); + if (!options.disableSessionManager) { + this.sessionManager = new session_manager_namespaceObject.SessionManager({ + sessionTime: options.sessionTime + }); + } + torus_js_namespaceObject.Torus.setSessionTime(this.options.sessionTime); + } + get tKey() { + if (this.tkey === null) { + throw errors.tkeyInstanceUninitialized(); + } + return this.tkey; + } + get keyType() { + return this._keyType; + } + get signatures() { + var _this$state; + return (_this$state = this.state) !== null && _this$state !== void 0 && _this$state.signatures ? this.state.signatures : []; + } + get _storageKey() { + return this._storageBaseKey; + } + get status() { + try { + // metadata will be present if tkey is initialized (1 share) + // if 2 shares are present, then privKey will be present after metadatakey(tkey) reconstruction + const { + tkey + } = this; + if (!tkey) return COREKIT_STATUS.NOT_INITIALIZED; + if (!tkey.metadata) return COREKIT_STATUS.INITIALIZED; + if (!tkey.secp256k1Key || !this.state.factorKey) return COREKIT_STATUS.REQUIRED_SHARE; + return COREKIT_STATUS.LOGGED_IN; + } catch (e) {} + return COREKIT_STATUS.NOT_INITIALIZED; + } + get sessionId() { + var _this$sessionManager; + return (_this$sessionManager = this.sessionManager) === null || _this$sessionManager === void 0 ? void 0 : _this$sessionManager.sessionId; + } + get supportsAccountIndex() { + return this._keyType !== common_types_namespaceObject.KeyType.ed25519; + } + get verifier() { + var _this$state$userInfo, _this$state2; + if ((_this$state$userInfo = this.state.userInfo) !== null && _this$state$userInfo !== void 0 && _this$state$userInfo.aggregateVerifier) { + return this.state.userInfo.aggregateVerifier; + } + return (_this$state2 = this.state) !== null && _this$state2 !== void 0 && (_this$state2 = _this$state2.userInfo) !== null && _this$state2 !== void 0 && _this$state2.verifier ? this.state.userInfo.verifier : ""; + } + get verifierId() { + var _this$state3; + return (_this$state3 = this.state) !== null && _this$state3 !== void 0 && (_this$state3 = _this$state3.userInfo) !== null && _this$state3 !== void 0 && _this$state3.verifierId ? this.state.userInfo.verifierId : ""; + } + get isRedirectMode() { + return this.options.uxMode === customauth_namespaceObject.UX_MODE.REDIRECT; + } + get useClientGeneratedTSSKey() { + return this.keyType === common_types_namespaceObject.KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; + } + + // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : + // TssShareType.DEVICE and TssShareType.RECOVERY + // if the factors key provided is the same type recovery will not works + async _UNSAFE_recoverTssKey(factorKey) { + this.checkReady(); + const factorKeyBN = new (external_bn_js_default())(factorKey[0], "hex"); + const shareStore0 = await this.getFactorKeyMetadata(factorKeyBN); + await this.tKey.initialize({ + withShare: shareStore0 + }); + const tssShares = []; + const tssIndexes = []; + const tssIndexesBN = []; + for (let i = 0; i < factorKey.length; i++) { + const factorKeyBNInput = new (external_bn_js_default())(factorKey[i], "hex"); + const { + tssIndex, + tssShare + } = await this.tKey.getTSSShare(factorKeyBNInput); + if (tssIndexes.includes(tssIndex)) { + // reset instance before throw error + await this.init(); + throw errors.duplicateTssIndex(); + } + tssIndexes.push(tssIndex); + tssIndexesBN.push(new (external_bn_js_default())(tssIndex)); + tssShares.push(tssShare); + } + const finalKey = (0,tss_namespaceObject.lagrangeInterpolation)(this.tkey.tssCurve, tssShares, tssIndexesBN); + // reset instance after recovery completed + await this.init(); + return finalKey.toString("hex", 64); + } + async init(params = { + handleRedirectResult: true + }) { + var _window2, _window3; + this.resetState(); + if (params.rehydrate === undefined) params.rehydrate = true; + const nodeDetails = (0,fnd_base_namespaceObject.fetchLocalConfig)(this.options.web3AuthNetwork, this.keyType); + if (this.keyType === constants_namespaceObject.KEY_TYPE.ED25519 && this.options.useDKG) { + throw errors.invalidConfig("DKG is not supported for ed25519 key type"); + } + this.torusSp = new tss_namespaceObject.TSSTorusServiceProvider({ + customAuthArgs: { + web3AuthClientId: this.options.web3AuthClientId, + baseUrl: this.options.baseUrl, + uxMode: this.isNodejsOrRN(this.options.uxMode) ? customauth_namespaceObject.UX_MODE.REDIRECT : this.options.uxMode, + network: this.options.web3AuthNetwork, + redirectPathName: this.options.redirectPathName, + locationReplaceOnRedirect: true, + serverTimeOffset: this.options.serverTimeOffset, + keyType: this.keyType, + useDkg: this.options.useDKG + } + }); + this.storageLayer = new storage_layer_torus_namespaceObject.TorusStorageLayer({ + hostUrl: `${new URL(nodeDetails.torusNodeEndpoints[0]).origin}/metadata`, + enableLogging: this.enableLogging + }); + const shareSerializationModule = new share_serialization_namespaceObject.ShareSerializationModule(); + this.tkey = new tss_namespaceObject.TKeyTSS({ + enableLogging: this.enableLogging, + serviceProvider: this.torusSp, + storageLayer: this.storageLayer, + manualSync: this.options.manualSync, + modules: { + shareSerialization: shareSerializationModule + }, + tssKeyType: this.keyType + }); + if (this.isRedirectMode) { + await this.torusSp.init({ + skipSw: true, + skipPrefetch: true + }); + } else if (this.options.uxMode === customauth_namespaceObject.UX_MODE.POPUP) { + await this.torusSp.init({}); + } + this.ready = true; + + // try handle redirect flow if enabled and return(redirect) from oauth login + if (params.handleRedirectResult && this.options.uxMode === customauth_namespaceObject.UX_MODE.REDIRECT && ((_window2 = window) !== null && _window2 !== void 0 && _window2.location.hash.includes("#state") || (_window3 = window) !== null && _window3 !== void 0 && _window3.location.hash.includes("#access_token"))) { + // on failed redirect, instance is reseted. + // skip check feature gating on redirection as it was check before login + await this.handleRedirectResult(); + + // return early on successful redirect, the rest of the code will not be executed + return; + } else if (params.rehydrate && this.sessionManager) { + // if not redirect flow try to rehydrate session if available + const sessionId = await this.currentStorage.get("sessionId"); + if (sessionId) { + this.sessionManager.sessionId = sessionId; + + // swallowed, should not throw on rehydrate timed out session + const sessionResult = await this.sessionManager.authorizeSession().catch(async err => { + log.error("rehydrate session error", err); + }); + + // try rehydrate session + if (sessionResult) { + await this.rehydrateSession(sessionResult); + + // return early on success rehydration + return; + } + } + } + // feature gating if not redirect flow or session rehydration + await this.featureRequest(); + } + async loginWithOAuth(params) { + this.checkReady(); + if (this.isNodejsOrRN(this.options.uxMode)) { + throw errors.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`); + } + const { + importTssKey + } = params; + const tkeyServiceProvider = this.torusSp; + try { + // oAuth login. + const verifierParams = params; + const aggregateParams = params; + if (verifierParams.subVerifierDetails) { + var _loginResponse$nodesD; + // single verifier login. + const loginResponse = await tkeyServiceProvider.triggerLogin(params.subVerifierDetails); + if (this.isRedirectMode) return; + this.updateState({ + postBoxKey: this._getPostBoxKey(loginResponse), + postboxKeyNodeIndexes: (_loginResponse$nodesD = loginResponse.nodesData) === null || _loginResponse$nodesD === void 0 ? void 0 : _loginResponse$nodesD.nodeIndexes, + userInfo: loginResponse.userInfo, + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + } else if (aggregateParams.subVerifierDetailsArray) { + var _loginResponse$nodesD2; + const loginResponse = await tkeyServiceProvider.triggerAggregateLogin({ + aggregateVerifierType: aggregateParams.aggregateVerifierType || customauth_namespaceObject.AGGREGATE_VERIFIER.SINGLE_VERIFIER_ID, + verifierIdentifier: aggregateParams.aggregateVerifierIdentifier, + subVerifierDetailsArray: aggregateParams.subVerifierDetailsArray + }); + if (this.isRedirectMode) return; + this.updateState({ + postBoxKey: this._getPostBoxKey(loginResponse), + postboxKeyNodeIndexes: (_loginResponse$nodesD2 = loginResponse.nodesData) === null || _loginResponse$nodesD2 === void 0 ? void 0 : _loginResponse$nodesD2.nodeIndexes, + userInfo: loginResponse.userInfo[0], + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + } + await this.setupTkey(importTssKey); + } catch (err) { + log.error("login error", err); + if (err instanceof core_namespaceObject.CoreError) { + if (err.code === 1302) { + throw errors["default"](ERRORS.TKEY_SHARES_REQUIRED); + } + } + throw errors["default"](err.message); + } + } + async loginWithJWT(params) { + this.checkReady(); + const { + prefetchTssPublicKeys = 1 + } = params; + if (prefetchTssPublicKeys > 3) { + throw errors.prefetchValueExceeded(`The prefetch value '${prefetchTssPublicKeys}' exceeds the maximum allowed limit of 3.`); + } + const { + verifier, + verifierId, + idToken, + importTssKey + } = params; + this.torusSp.verifierName = verifier; + this.torusSp.verifierId = verifierId; + try { + var _loginResponse$nodesD3; + // prefetch tss pub keys. + const prefetchTssPubs = []; + for (let i = 0; i < prefetchTssPublicKeys; i++) { + prefetchTssPubs.push(this.torusSp.getTSSPubKey(this.tkey.tssTag, i)); + } + + // get postbox key. + let loginPromise; + if (!params.subVerifier) { + // single verifier login. + loginPromise = this.torusSp.customAuthInstance.getTorusKey(verifier, verifierId, { + verifier_id: verifierId + }, idToken, objectSpread2_default()(objectSpread2_default()({}, params.extraVerifierParams), params.additionalParams)); + } else { + // aggregate verifier login + loginPromise = this.torusSp.customAuthInstance.getAggregateTorusKey(verifier, verifierId, [{ + verifier: params.subVerifier, + idToken, + extraVerifierParams: params.extraVerifierParams + }]); + } + + // wait for prefetch completed before setup tkey + const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]); + const postBoxKey = this._getPostBoxKey(loginResponse); + this.torusSp.postboxKey = new (external_bn_js_default())(postBoxKey, "hex"); + this.updateState({ + postBoxKey, + postboxKeyNodeIndexes: ((_loginResponse$nodesD3 = loginResponse.nodesData) === null || _loginResponse$nodesD3 === void 0 ? void 0 : _loginResponse$nodesD3.nodeIndexes) || [], + userInfo: objectSpread2_default()(objectSpread2_default()({}, parseToken(idToken)), {}, { + verifier, + verifierId + }), + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + await this.setupTkey(importTssKey); + } catch (err) { + log.error("login error", err); + if (err instanceof core_namespaceObject.CoreError) { + if (err.code === 1302) { + const newError = errors["default"](ERRORS.TKEY_SHARES_REQUIRED); + newError.stack = err.stack; + throw newError; + } + } + const newError = errors["default"](err.message); + newError.stack = err.stack; + throw newError; + } + } + async handleRedirectResult() { + this.checkReady(); + try { + const result = await this.torusSp.customAuthInstance.getRedirectResult(); + if (result.method === customauth_namespaceObject.TORUS_METHOD.TRIGGER_LOGIN) { + var _data$nodesData; + const data = result.result; + if (!data) { + throw errors.invalidTorusLoginResponse(); + } + this.updateState({ + postBoxKey: this._getPostBoxKey(data), + postboxKeyNodeIndexes: ((_data$nodesData = data.nodesData) === null || _data$nodesData === void 0 ? void 0 : _data$nodesData.nodeIndexes) || [], + userInfo: data.userInfo, + signatures: this._getSignatures(data.sessionData.sessionTokenData) + }); + const userInfo = this.getUserInfo(); + this.torusSp.verifierName = userInfo.verifier; + } else if (result.method === customauth_namespaceObject.TORUS_METHOD.TRIGGER_AGGREGATE_LOGIN) { + var _data$nodesData2; + const data = result.result; + if (!data) { + throw errors.invalidTorusAggregateLoginResponse(); + } + this.updateState({ + postBoxKey: this._getPostBoxKey(data), + postboxKeyNodeIndexes: ((_data$nodesData2 = data.nodesData) === null || _data$nodesData2 === void 0 ? void 0 : _data$nodesData2.nodeIndexes) || [], + userInfo: data.userInfo[0], + signatures: this._getSignatures(data.sessionData.sessionTokenData) + }); + const userInfo = this.getUserInfo(); + this.torusSp.verifierName = userInfo.aggregateVerifier; + } else { + throw errors.unsupportedRedirectMethod(); + } + const userInfo = this.getUserInfo(); + if (!this.state.postBoxKey) { + throw errors.postBoxKeyMissing("postBoxKey not present in state after processing redirect result."); + } + this.torusSp.postboxKey = new (external_bn_js_default())(this.state.postBoxKey, "hex"); + this.torusSp.verifierId = userInfo.verifierId; + await this.setupTkey(); + } catch (error) { + this.resetState(); + log.error("error while handling redirect result", error); + throw errors["default"](error.message); + } + } + async inputFactorKey(factorKey) { + this.checkReady(); + try { + // input tkey device share when required share > 0 ( or not reconstructed ) + // assumption tkey shares will not changed + if (!this.tKey.secp256k1Key) { + const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + } + + // Finalize initialization. + await this.tKey.reconstructKey(); + await this.finalizeTkey(factorKey); + } catch (err) { + log.error("login error", err); + if (err instanceof core_namespaceObject.CoreError) { + if (err.code === 1302) { + throw errors["default"](ERRORS.TKEY_SHARES_REQUIRED); + } + } + throw errors["default"](err.message); + } + } + setTssWalletIndex(accountIndex) { + this.updateState({ + tssPubKey: this.tKey.getTSSPub(accountIndex).toSEC1(this.tkey.tssCurve, false), + accountIndex + }); + } + getCurrentFactorKey() { + this.checkReady(); + if (!this.state.factorKey) { + throw errors.factorKeyNotPresent("factorKey not present in state when getting current factor key."); + } + if (!this.state.tssShareIndex) { + throw errors.tssShareTypeIndexMissing("TSS Share Type (Index) not present in state when getting current factor key."); + } + try { + return { + factorKey: this.state.factorKey, + shareType: this.state.tssShareIndex + }; + } catch (err) { + log.error("state error", err); + throw errors["default"](err.message); + } + } + async enableMFA(enableMFAParams, recoveryFactor = true) { + this.checkReady(); + const { + postBoxKey + } = this.state; + const hashedFactorKey = getHashedPrivateKey(postBoxKey, this.options.hashedFactorNonce); + if (!(await this.checkIfFactorKeyValid(hashedFactorKey))) { + if (this.tKey._localMetadataTransitions[0].length) { + throw errors.commitChangesBeforeMFA(); + } + throw errors.mfaAlreadyEnabled(); + } + return this.atomicSync(async () => { + let browserData; + if (this.isNodejsOrRN(this.options.uxMode)) { + browserData = { + browserName: "Node Env", + browserVersion: "", + deviceName: "nodejs" + }; + } else { + // try { + const browserInfo = external_bowser_default().parse(navigator.userAgent); + const browserName = `${browserInfo.browser.name}`; + browserData = { + browserName, + browserVersion: browserInfo.browser.version, + deviceName: browserInfo.os.name + }; + } + const deviceFactorKey = new (external_bn_js_default())(await this.createFactor({ + shareType: TssShareType.DEVICE, + additionalMetadata: browserData + }), "hex"); + await this.setDeviceFactor(deviceFactorKey); + await this.inputFactorKey(new (external_bn_js_default())(deviceFactorKey, "hex")); + const hashedFactorPub = (0,tss_namespaceObject.getPubKeyPoint)(hashedFactorKey, tss_namespaceObject.factorKeyCurve); + await this.deleteFactor(hashedFactorPub, hashedFactorKey); + await this.deleteMetadataShareBackup(hashedFactorKey); + + // only recovery factor = true + let backupFactorKey; + if (recoveryFactor) { + backupFactorKey = await this.createFactor(objectSpread2_default()({ + shareType: TssShareType.RECOVERY + }, enableMFAParams)); + } + + // update to undefined for next major release + return backupFactorKey; + }).catch(reason => { + log.error("error enabling MFA:", reason.message); + const err = errors["default"](reason.message); + err.stack = reason.stack; + throw err; + }); + } + // mutation function + async createFactor(createFactorParams) { + this.checkReady(); + const { + shareType + } = createFactorParams; + let { + factorKey, + shareDescription, + additionalMetadata + } = createFactorParams; + if (!VALID_SHARE_INDICES.includes(shareType)) { + throw errors.newShareIndexInvalid(`Invalid share type provided (${shareType}). Valid share types are ${VALID_SHARE_INDICES}.`); + } + if (!factorKey) { + factorKey = generateFactorKey().private; + } + if (!shareDescription) { + shareDescription = FactorKeyTypeShareDescription.Other; + } + if (!additionalMetadata) { + additionalMetadata = {}; + } + const factorPub = (0,tss_namespaceObject.getPubKeyPoint)(factorKey, tss_namespaceObject.factorKeyCurve); + if (this.getTssFactorPub().includes(factorPub.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex"))) { + throw errors.factorKeyAlreadyExists(); + } + return this.atomicSync(async () => { + await this.copyOrCreateShare(shareType, factorPub); + await this.backupMetadataShare(factorKey); + await this.addFactorDescription({ + factorKey, + shareDescription, + additionalMetadata, + updateMetadata: false + }); + return scalarBNToBufferSEC1(factorKey).toString("hex"); + }).catch(reason => { + log.error("error creating factor:", reason.message); + const err = errors["default"](`error creating factor: ${reason.message}`); + err.stack = reason.stack; + throw err; + }); + } + + /** + * Get public key point in SEC1 format. + */ + getPubKey() { + const { + tssPubKey + } = this.state; + return Buffer.from(tssPubKey); + } + + /** + * Get public key point. + */ + getPubKeyPoint() { + const { + tssPubKey + } = this.state; + return common_types_namespaceObject.Point.fromSEC1(this.tkey.tssCurve, tssPubKey.toString("hex")); + } + + /** + * Get public key in ed25519 format. + * + * Throws an error if keytype is not compatible with ed25519. + */ + getPubKeyEd25519() { + const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); + return ed25519().keyFromPublic(p).getPublic(); + } + async precompute_secp256k1() { + this.wasmLib = await this.loadTssWasm(); + // PreSetup + const { + tssShareIndex + } = this.state; + const tssPubKey = this.getPubKeyPoint(); + const { + torusNodeTSSEndpoints + } = (0,fnd_base_namespaceObject.fetchLocalConfig)(this.options.web3AuthNetwork, this.keyType); + if (!this.state.factorKey) { + throw errors.factorKeyNotPresent("factorKey not present in state when signing."); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey, { + accountIndex: 0 + }); + const tssNonce = this.getTssNonce(); + if (!tssPubKey || !torusNodeTSSEndpoints) { + throw errors.tssPublicKeyOrEndpointsMissing(); + } + + // session is needed for authentication to the web3auth infrastructure holding the factor 1 + const randomSessionNonce = generateSessionNonce(); + const currentSession = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, randomSessionNonce); + const parties = 4; + const clientIndex = parties - 1; + // 1. setup + // generate endpoints for servers + const { + nodeIndexes + } = await this.torusSp.getTSSPubKey(this.tKey.tssTag, this.tKey.metadata.tssNonces[this.tKey.tssTag]); + const { + endpoints, + tssWSEndpoints, + partyIndexes, + nodeIndexesReturned: participatingServerDKGIndexes + } = generateTSSEndpoints(torusNodeTSSEndpoints, parties, clientIndex, nodeIndexes); + + // Setup sockets. + const sockets = await (0,tss_client_namespaceObject.setupSockets)(tssWSEndpoints, randomSessionNonce); + const dklsCoeff = (0,tss_client_namespaceObject.getDKLSCoeff)(true, participatingServerDKGIndexes, tssShareIndex); + const denormalisedShare = dklsCoeff.mul(tssShare).umod(common_types_namespaceObject.secp256k1.curve.n); + const accountNonce = this.tkey.computeAccountNonce(this.state.accountIndex); + const derivedShare = denormalisedShare.add(accountNonce).umod(common_types_namespaceObject.secp256k1.curve.n); + const share = scalarBNToBufferSEC1(derivedShare).toString("base64"); + if (!currentSession) { + throw errors.activeSessionNotFound(); + } + const { + signatures + } = this; + if (!signatures) { + throw errors.signaturesNotPresent(); + } + + // Client lib expects pub key in XY-format, base64-encoded. + const tssPubKeyBase64 = Buffer.from(tssPubKey.toSEC1(common_types_namespaceObject.secp256k1).subarray(1)).toString("base64"); + const client = new tss_client_namespaceObject.Client(currentSession, clientIndex, partyIndexes, endpoints, sockets, share, tssPubKeyBase64, true, this.wasmLib); + const serverCoeffs = {}; + for (let i = 0; i < participatingServerDKGIndexes.length; i++) { + const serverIndex = participatingServerDKGIndexes[i]; + serverCoeffs[serverIndex] = (0,tss_client_namespaceObject.getDKLSCoeff)(false, participatingServerDKGIndexes, tssShareIndex, serverIndex).toString("hex"); + } + client.precompute({ + signatures, + server_coeffs: serverCoeffs, + nonce: scalarBNToBufferSEC1(this.getAccountNonce()).toString("base64") + }); + await client.ready().catch(err => { + client.cleanup({ + signatures, + server_coeffs: serverCoeffs + }); + throw err; + }); + return { + client, + serverCoeffs + }; + } + async sign(data, hashed = false, secp256k1Precompute) { + this.wasmLib = await this.loadTssWasm(); + if (this.keyType === common_types_namespaceObject.KeyType.secp256k1) { + const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); + return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); + } else if (this.keyType === common_types_namespaceObject.KeyType.ed25519) { + return this.sign_ed25519(data, hashed); + } + throw errors["default"](`sign not supported for key type ${this.keyType}`); + } + + // mutation function + async deleteFactor(factorPub, factorKey) { + if (!this.state.factorKey) { + throw errors.factorKeyNotPresent("factorKey not present in state when deleting a factor."); + } + if (!this.tKey.metadata.factorPubs) { + throw errors.factorPubsMissing(); + } + await this.atomicSync(async () => { + const remainingFactors = this.tKey.metadata.factorPubs[this.tKey.tssTag].length || 0; + if (remainingFactors <= 1) { + throw errors.cannotDeleteLastFactor("Cannot delete last factor"); + } + const fpp = factorPub; + const stateFpp = (0,tss_namespaceObject.getPubKeyPoint)(this.state.factorKey, tss_namespaceObject.factorKeyCurve); + if (fpp.equals(stateFpp)) { + throw errors.factorInUseCannotBeDeleted("Cannot delete current active factor"); + } + await this.tKey.deleteFactorPub({ + factorKey: this.state.factorKey, + deleteFactorPub: factorPub, + authSignatures: this.signatures + }); + const factorPubHex = fpp.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex"); + const allDesc = this.tKey.metadata.getShareDescription(); + const keyDesc = allDesc[factorPubHex]; + if (keyDesc) { + await Promise.all(keyDesc.map(async desc => { + var _this$tKey; + return (_this$tKey = this.tKey) === null || _this$tKey === void 0 ? void 0 : _this$tKey.metadata.deleteShareDescription(factorPubHex, desc); + })); + } + + // delete factorKey share metadata if factorkey is provided + if (factorKey) { + const factorKeyBN = new (external_bn_js_default())(factorKey, "hex"); + const derivedFactorPub = (0,tss_namespaceObject.getPubKeyPoint)(factorKeyBN, tss_namespaceObject.factorKeyCurve); + // only delete if factorPub matches + if (derivedFactorPub.equals(fpp)) { + await this.deleteMetadataShareBackup(factorKeyBN); + } + } + }); + } + async logout() { + var _this$sessionManager2; + if ((_this$sessionManager2 = this.sessionManager) !== null && _this$sessionManager2 !== void 0 && _this$sessionManager2.sessionId) { + await this.sessionManager.invalidateSession(); + } + // to accommodate async storage + await this.currentStorage.set("sessionId", ""); + this.resetState(); + await this.init({ + handleRedirectResult: false, + rehydrate: false + }); + } + getUserInfo() { + if (!this.state.userInfo) { + throw errors.userNotLoggedIn(); + } + return this.state.userInfo; + } + getKeyDetails() { + this.checkReady(); + const tkeyDetails = this.tKey.getKeyDetails(); + const tssPubKey = this.state.tssPubKey ? common_types_namespaceObject.Point.fromSEC1(this.tkey.tssCurve, this.state.tssPubKey.toString("hex")) : undefined; + const factors = this.tKey.metadata.factorPubs ? this.tKey.metadata.factorPubs[this.tKey.tssTag] : []; + const keyDetails = { + // use tkey's for now + requiredFactors: tkeyDetails.requiredShares, + threshold: tkeyDetails.threshold, + totalFactors: factors.length + 1, + shareDescriptions: this.tKey.getMetadata().getShareDescription(), + metadataPubKey: tkeyDetails.pubKey, + tssPubKey, + keyType: this.keyType + }; + return keyDetails; + } + async commitChanges() { + this.checkReady(); + if (!this.state.factorKey) { + throw errors.factorKeyNotPresent("factorKey not present in state when committing changes."); + } + try { + // in case for manualsync = true, _syncShareMetadata will not call syncLocalMetadataTransitions() + // it will not create a new LocalMetadataTransition + // manual call syncLocalMetadataTransitions() required to sync local transitions to storage + await this.tKey._syncShareMetadata(); + await this.tKey.syncLocalMetadataTransitions(); + } catch (error) { + log.error("sync metadata error", error); + throw error; + } + } + async setManualSync(manualSync) { + this.checkReady(); + // sync local transistion to storage before allow changes + await this.tKey.syncLocalMetadataTransitions(); + this.options.manualSync = manualSync; + this.tKey.manualSync = manualSync; + } + + // device factor + async setDeviceFactor(factorKey, replace = false) { + if (!replace) { + const existingFactor = await this.getDeviceFactor(); + if (existingFactor) { + throw errors["default"]("Device factor already exists"); + } + } + const metadata = this.tKey.getMetadata(); + const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); + await this.currentStorage.set(tkeyPubX, JSON.stringify({ + factorKey: factorKey.toString("hex").padStart(64, "0") + })); + } + async getDeviceFactor() { + const metadata = this.tKey.getMetadata(); + const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); + const tKeyLocalStoreString = await this.currentStorage.get(tkeyPubX); + const tKeyLocalStore = JSON.parse(tKeyLocalStoreString || "{}"); + return tKeyLocalStore.factorKey; + } + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Exports the private key scalar for the current account index. + * + * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. + */ + async _UNSAFE_exportTssKey() { + if (this.keyType !== common_types_namespaceObject.KeyType.secp256k1) { + throw errors["default"]("Wrong KeyType. Method can only be used when KeyType is secp256k1"); + } + if (!this.state.factorKey) { + throw errors.factorKeyNotPresent("factorKey not present in state when exporting tss key."); + } + if (!this.state.signatures) { + throw errors.signaturesNotPresent("Signatures not present in state when exporting tss key."); + } + const exportTssKey0 = await this.tKey._UNSAFE_exportTssKey({ + factorKey: this.state.factorKey, + authSignatures: this.state.signatures + }); + const accountNonce = this.getAccountNonce(); + const tssKey = exportTssKey0.add(accountNonce).umod(this.tKey.tssCurve.n); + return tssKey.toString("hex", FIELD_ELEMENT_HEX_LEN); + } + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Attempts to export the ed25519 private key seed. Only works if import key + * flow has been used. + */ + async _UNSAFE_exportTssEd25519Seed() { + if (this.keyType !== common_types_namespaceObject.KeyType.ed25519) { + throw errors["default"]("Wrong KeyType. Method can only be used when KeyType is ed25519"); + } + if (!this.state.factorKey) throw errors.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); + if (!this.state.signatures) throw errors.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed."); + try { + const exportEd25519Seed = await this.tKey._UNSAFE_exportTssEd25519Seed({ + factorKey: this.state.factorKey, + authSignatures: this.state.signatures + }); + return exportEd25519Seed; + } catch (error) { + throw errors["default"](`Error exporting ed25519 seed: ${error}`); + } + } + updateState(newState) { + this.state = objectSpread2_default()(objectSpread2_default()({}, this.state), newState); + } + async atomicSync(f) { + this.atomicCallStackCounter += 1; + this.tkey.manualSync = true; + try { + const r = await f(); + if (this.atomicCallStackCounter === 1) { + if (!this.options.manualSync) { + await this.commitChanges(); + } + } + return r; + } catch (error) { + throw error; + } finally { + this.atomicCallStackCounter -= 1; + if (this.atomicCallStackCounter === 0) { + this.tkey.manualSync = this.options.manualSync; + } + } + } + async importTssKey(tssKey, factorPub, newTSSIndex = TssShareType.DEVICE) { + if (!this.state.signatures) { + throw errors.signaturesNotPresent("Signatures not present in state when importing tss key."); + } + await this.tKey.importTssKey({ + tag: this.tKey.tssTag, + importKey: Buffer.from(tssKey, "hex"), + factorPub, + newTSSIndex + }, { + authSignatures: this.state.signatures + }); + } + getTssNonce() { + if (!this.tKey.metadata.tssNonces || this.tKey.metadata.tssNonces[this.tKey.tssTag] === undefined) { + throw errors.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`); + } + const tssNonce = this.tKey.metadata.tssNonces[this.tKey.tssTag]; + return tssNonce; + } + async setupTkey(providedImportTssKey) { + if (!this.state.postBoxKey) { + throw errors.userNotLoggedIn(); + } + const existingUser = await this.isMetadataPresent(this.state.postBoxKey); + let importTssKey = providedImportTssKey; + if (!existingUser) { + if (!importTssKey && this.useClientGeneratedTSSKey) { + if (this.keyType === common_types_namespaceObject.KeyType.ed25519) { + const k = generateEd25519Seed(); + importTssKey = k.toString("hex"); + } else if (this.keyType === common_types_namespaceObject.KeyType.secp256k1) { + const k = common_types_namespaceObject.secp256k1.genKeyPair().getPrivate(); + importTssKey = scalarBNToBufferSEC1(k).toString("hex"); + } else { + throw errors["default"]("Unsupported key type"); + } + } + await this.handleNewUser(importTssKey); + } else { + if (importTssKey) { + throw errors.tssKeyImportNotAllowed(); + } + await this.handleExistingUser(); + } + } + + // mutation function + async handleNewUser(importTssKey) { + await this.atomicSync(async () => { + // Generate or use hash factor and initialize tkey with it. + let factorKey; + if (this.options.disableHashedFactorKey) { + factorKey = generateFactorKey().private; + // delete previous hashed factorKey if present + const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + await this.deleteMetadataShareBackup(hashedFactorKey); + } else { + factorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + } + const deviceTSSIndex = TssShareType.DEVICE; + const factorPub = (0,tss_namespaceObject.getPubKeyPoint)(factorKey, tss_namespaceObject.factorKeyCurve); + if (!importTssKey) { + const ec = new external_elliptic_namespaceObject.ec(this.keyType); + const deviceTSSShare = ec.genKeyPair().getPrivate(); + await this.tKey.initialize({ + factorPub, + deviceTSSShare, + deviceTSSIndex + }); + } else { + await this.tKey.initialize({ + skipTssInit: true + }); + await this.tKey.reconstructKey(); + await this.importTssKey(importTssKey, factorPub, deviceTSSIndex); + } + + // Finalize initialization. + await this.tKey.reconstructKey(); + await this.finalizeTkey(factorKey); + + // Store factor description. + await this.backupMetadataShare(factorKey); + if (this.options.disableHashedFactorKey) { + await this.addFactorDescription({ + factorKey, + shareDescription: FactorKeyTypeShareDescription.Other, + updateMetadata: false + }); + } else { + await this.addFactorDescription({ + factorKey, + shareDescription: FactorKeyTypeShareDescription.HashedShare, + updateMetadata: false + }); + } + }); + } + async handleExistingUser() { + await this.tKey.initialize({ + neverInitializeNewKey: true + }); + if (this.options.disableHashedFactorKey) { + return; + } + const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + this.state.factorKey = hashedFactorKey; + if (await this.checkIfFactorKeyValid(hashedFactorKey)) { + // Initialize tkey with existing hashed share if available. + const factorKeyMetadata = await this.getFactorKeyMetadata(hashedFactorKey); + try { + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + await this.tKey.reconstructKey(); + await this.finalizeTkey(hashedFactorKey); + } catch (err) { + log.error("error initializing tkey with hashed share", err); + } + } else { + var _this$tKey2; + const factorKeyMetadata = await ((_this$tKey2 = this.tKey) === null || _this$tKey2 === void 0 ? void 0 : _this$tKey2.readMetadata(hashedFactorKey)); + if (factorKeyMetadata.message === "SHARE_DELETED") { + // throw CoreKitError.hashedFactorDeleted(); + log.warn("hashed factor deleted"); + } + } + } + async finalizeTkey(factorKey) { + if (this.state.accountIndex !== 0) { + log.warn("AccountIndex should be 0"); + this.state.accountIndex = 0; + } + // Read tss meta data. + const { + tssIndex: tssShareIndex + } = await this.tKey.getTSSShare(factorKey); + const tssPubKey = this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve, false); + this.updateState({ + tssShareIndex, + tssPubKey, + factorKey + }); + await this.createSession(); + } + checkReady() { + if (!this.ready) { + throw errors.mpcCoreKitNotInitialized(); + } + } + async rehydrateSession(result) { + try { + this.checkReady(); + const factorKey = new (external_bn_js_default())(result.factorKey, "hex"); + if (!factorKey) { + throw errors.providedFactorKeyInvalid(); + } + const postBoxKey = result.postBoxKey || result.oAuthKey; + if (!postBoxKey) { + throw errors["default"]("postBoxKey or oAuthKey not present in session data"); + } + this.torusSp.postboxKey = new (external_bn_js_default())(postBoxKey, "hex"); + this.torusSp.verifierName = result.userInfo.aggregateVerifier || result.userInfo.verifier; + this.torusSp.verifierId = result.userInfo.verifierId; + const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); + await this.tKey.initialize({ + neverInitializeNewKey: true + }); + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + await this.tKey.reconstructKey(); + this.updateState({ + factorKey: new (external_bn_js_default())(result.factorKey, "hex"), + postBoxKey, + postboxKeyNodeIndexes: result.postboxKeyNodeIndexes || [], + tssShareIndex: result.tssShareIndex, + tssPubKey: this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve, false), + signatures: result.signatures, + userInfo: result.userInfo + }); + } catch (err) { + log.warn("failed to authorize session", err); + } + } + async createSession() { + if (!this.options.disableSessionManager && !this.sessionManager) { + throw new Error("sessionManager is not available"); + } + try { + const sessionId = session_manager_namespaceObject.SessionManager.generateRandomSessionKey(); + this.sessionManager.sessionId = sessionId; + const { + postBoxKey, + factorKey, + userInfo, + tssShareIndex, + tssPubKey, + postboxKeyNodeIndexes + } = this.state; + if (!this.state.factorKey) { + throw errors.factorKeyNotPresent("factorKey not present in state when creating session."); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey, { + accountIndex: this.state.accountIndex + }); + if (!postBoxKey || !factorKey || !tssShare || !tssPubKey || !userInfo) { + throw errors.userNotLoggedIn(); + } + const payload = { + postBoxKey, + postboxKeyNodeIndexes: postboxKeyNodeIndexes || [], + factorKey: factorKey === null || factorKey === void 0 ? void 0 : factorKey.toString("hex"), + tssShareIndex: tssShareIndex, + tssPubKey: Buffer.from(tssPubKey).toString("hex"), + signatures: this.signatures, + userInfo + }; + await this.sessionManager.createSession(payload); + // to accommodate async storage + await this.currentStorage.set("sessionId", sessionId); + } catch (err) { + log.error("error creating session", err); + } + } + async isMetadataPresent(privateKey) { + var _this$tKey3; + const privateKeyBN = new (external_bn_js_default())(privateKey, "hex"); + const metadata = await ((_this$tKey3 = this.tKey) === null || _this$tKey3 === void 0 ? void 0 : _this$tKey3.readMetadata(privateKeyBN)); + if (metadata && metadata.message !== "KEY_NOT_FOUND") { + return true; + } + return false; + } + async checkIfFactorKeyValid(factorKey) { + var _this$tKey4; + this.checkReady(); + const factorKeyMetadata = await ((_this$tKey4 = this.tKey) === null || _this$tKey4 === void 0 ? void 0 : _this$tKey4.readMetadata(factorKey)); + if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND" || factorKeyMetadata.message === "SHARE_DELETED") { + return false; + } + return true; + } + async getFactorKeyMetadata(factorKey) { + var _this$tKey5; + this.checkReady(); + const factorKeyMetadata = await ((_this$tKey5 = this.tKey) === null || _this$tKey5 === void 0 ? void 0 : _this$tKey5.readMetadata(factorKey)); + if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND") { + throw errors.noMetadataFound(); + } + return common_types_namespaceObject.ShareStore.fromJSON(factorKeyMetadata); + } + + /** + * Copies a share and makes it available under a new factor key. If no share + * exists at the specified share index, a new share is created. + * @param newFactorTSSIndex - The index of the share to copy. + * @param newFactorPub - The public key of the new share. + */ + async copyOrCreateShare(newFactorTSSIndex, newFactorPub) { + this.checkReady(); + if (!this.tKey.metadata.factorPubs || !Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag])) { + throw errors.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key."); + } + if (!this.tKey.metadata.factorEncs || typeof this.tKey.metadata.factorEncs[this.tKey.tssTag] !== "object") { + throw errors.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key."); + } + if (!this.state.factorKey) { + throw errors.factorKeyNotPresent("factorKey not present in state when copying or creating a share."); + } + if (VALID_SHARE_INDICES.indexOf(newFactorTSSIndex) === -1) { + throw errors.newShareIndexInvalid(`Invalid share type provided (${newFactorTSSIndex}). Valid share types are ${VALID_SHARE_INDICES}.`); + } + if (this.tKey.metadata.factorPubs[this.tKey.tssTag].length >= MAX_FACTORS) { + throw errors.maximumFactorsReached(`The maximum number of allowable factors (${MAX_FACTORS}) has been reached.`); + } + + // Generate new share. + await this.tkey.addFactorPub({ + existingFactorKey: this.state.factorKey, + authSignatures: this.signatures, + newFactorPub, + newTSSIndex: newFactorTSSIndex, + refreshShares: this.state.tssShareIndex !== newFactorTSSIndex // Refresh shares if we have a new factor key index. + }); + } + async getMetadataShare() { + try { + var _this$tKey6, _this$tKey7; + const polyId = (_this$tKey6 = this.tKey) === null || _this$tKey6 === void 0 ? void 0 : _this$tKey6.metadata.getLatestPublicPolynomial().getPolynomialID(); + const shares = (_this$tKey7 = this.tKey) === null || _this$tKey7 === void 0 ? void 0 : _this$tKey7.shares[polyId]; + let share = null; + for (const shareIndex in shares) { + if (shareIndex !== SOCIAL_TKEY_INDEX.toString()) { + share = shares[shareIndex]; + } + } + if (!share) { + throw errors.noMetadataShareFound(); + } + return share; + } catch (err) { + log.error("create device share error", err); + throw errors["default"](err.message); + } + } + async deleteMetadataShareBackup(factorKey) { + var _this$tkey, _this$tkey2; + await this.tKey.addLocalMetadataTransitions({ + input: [{ + message: common_types_namespaceObject.SHARE_DELETED, + dateAdded: Date.now() + }], + privKey: [factorKey] + }); + if (!((_this$tkey = this.tkey) !== null && _this$tkey !== void 0 && _this$tkey.manualSync)) await ((_this$tkey2 = this.tkey) === null || _this$tkey2 === void 0 ? void 0 : _this$tkey2.syncLocalMetadataTransitions()); + } + async backupMetadataShare(factorKey) { + var _this$tKey8, _this$tkey3, _this$tkey4; + const metadataShare = await this.getMetadataShare(); + + // Set metadata for factor key backup + await ((_this$tKey8 = this.tKey) === null || _this$tKey8 === void 0 ? void 0 : _this$tKey8.addLocalMetadataTransitions({ + input: [metadataShare], + privKey: [factorKey] + })); + if (!((_this$tkey3 = this.tkey) !== null && _this$tkey3 !== void 0 && _this$tkey3.manualSync)) await ((_this$tkey4 = this.tkey) === null || _this$tkey4 === void 0 ? void 0 : _this$tkey4.syncLocalMetadataTransitions()); + } + async addFactorDescription(args) { + var _this$tKey9; + const { + factorKey, + shareDescription, + updateMetadata + } = args; + let { + additionalMetadata + } = args; + if (!additionalMetadata) { + additionalMetadata = {}; + } + const { + tssIndex + } = await this.tKey.getTSSShare(factorKey); + const factorPoint = (0,tss_namespaceObject.getPubKeyPoint)(factorKey, tss_namespaceObject.factorKeyCurve); + const factorPub = factorPoint.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex"); + const params = objectSpread2_default()(objectSpread2_default()({ + module: shareDescription, + dateAdded: Date.now() + }, additionalMetadata), {}, { + tssShareIndex: tssIndex + }); + await ((_this$tKey9 = this.tKey) === null || _this$tKey9 === void 0 ? void 0 : _this$tKey9.addShareDescription(factorPub, JSON.stringify(params), updateMetadata)); + } + resetState() { + this.ready = false; + this.tkey = null; + this.torusSp = null; + this.storageLayer = null; + this.state = { + accountIndex: 0 + }; + } + _getPostBoxKey(result) { + return torus_js_namespaceObject.Torus.getPostboxKey(result); + } + _getSignatures(sessionData) { + // There is a check in torus.js which pushes undefined to session data in case + // that particular node call fails. + // and before returning we are not filtering out undefined vals in torus.js + // TODO: fix this in torus.js + return sessionData.filter(session => !!session).map(session => JSON.stringify({ + data: session.token, + sig: session.signature + })); + } + isNodejsOrRN(params) { + const mode = params; + return mode === "nodejs" || mode === "react-native"; + } + async featureRequest() { + const accessUrl = constants_namespaceObject.SIGNER_MAP[this.options.web3AuthNetwork]; + const accessRequest = { + network: this.options.web3AuthNetwork, + client_id: this.options.web3AuthClientId, + is_mpc_core_kit: "true", + enable_gating: "true", + session_time: this.options.sessionTime.toString() + }; + const url = new URL(`${accessUrl}/api/feature-access`); + url.search = new URLSearchParams(accessRequest).toString(); + const result = await fetch(url); + if (result.status !== 200) { + // reset state on no mpc access + this.resetState(); + const errMessage = await result.json(); + throw errors["default"](errMessage.error); + } + return result.json(); + } + getAccountNonce() { + return this.tkey.computeAccountNonce(this.state.accountIndex); + } + async sign_ECDSA_secp256k1(data, hashed = false, precomputedTssClient) { + const executeSign = async (client, serverCoeffs, hashedData, signatures) => { + const { + r, + s, + recoveryParam + } = await client.sign(hashedData.toString("base64"), true, "", "keccak256", { + signatures + }); + // skip await cleanup + client.cleanup({ + signatures, + server_coeffs: serverCoeffs + }); + return { + v: recoveryParam, + r: scalarBNToBufferSEC1(r), + s: scalarBNToBufferSEC1(s) + }; + }; + if (!hashed) { + data = (0,metadata_helpers_namespaceObject.keccak256)(data); + } + const isAlreadyPrecomputed = (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.client) && (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.serverCoeffs); + const { + client, + serverCoeffs + } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); + const { + signatures + } = this; + if (!signatures) { + throw errors.signaturesNotPresent(); + } + try { + return await executeSign(client, serverCoeffs, data, signatures); + } catch (error) { + if (!isAlreadyPrecomputed) { + throw error; + } + // Retry with new client if precomputed client failed, this is to handle the case when precomputed session might have expired + const { + client: newClient, + serverCoeffs: newServerCoeffs + } = await this.precompute_secp256k1(); + const result = await executeSign(newClient, newServerCoeffs, data, signatures); + return result; + } + } + async sign_ed25519(data, hashed = false) { + if (hashed) { + throw errors["default"]("hashed data not supported for ed25519"); + } + const nodeDetails = (0,fnd_base_namespaceObject.fetchLocalConfig)(this.options.web3AuthNetwork, "ed25519"); + if (!nodeDetails.torusNodeTSSEndpoints) { + throw errors["default"]("could not fetch tss node endpoints"); + } + + // Endpoints must end with backslash, but URLs returned by + // `fetch-node-details` don't have it. + const ED25519_ENDPOINTS = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ + index: nodeDetails.torusIndexes[i], + url: `${ep}/` + })); + + // Select endpoints and derive party indices. + const serverThreshold = Math.floor(ED25519_ENDPOINTS.length / 2) + 1; + const endpoints = sampleEndpoints(ED25519_ENDPOINTS, serverThreshold); + const serverXCoords = endpoints.map(x => x.index); + const clientXCoord = Math.max(...endpoints.map(ep => ep.index)) + 1; + + // Derive share coefficients for flat hierarchy. + const ec = new elliptic_wrapper_namespaceObject.Ed25519Curve(); + const { + serverCoefficients, + clientCoefficient + } = deriveShareCoefficients(ec, serverXCoords, clientXCoord, this.state.tssShareIndex); + + // Get pub key. + const tssPubKey = await this.getPubKey(); + const tssPubKeyPoint = ec.keyFromPublic(tssPubKey).getPublic(); + + // Get client key share and adjust by coefficient. + if (this.state.accountIndex !== 0) { + throw errors["default"]("Account index not supported for ed25519"); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey); + const clientShareAdjusted = tssShare.mul(clientCoefficient).umod(ec.n); + const clientShareAdjustedHex = ec.scalarToBuffer(clientShareAdjusted, Buffer).toString("hex"); + + // Generate session identifier. + const tssNonce = this.getTssNonce(); + const sessionNonce = generateSessionNonce(); + const session = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, sessionNonce); + + // Run signing protocol. + const serverURLs = endpoints.map(x => x.url); + const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); + const serverCoefficientsHex = serverCoefficients.map(c => ec.scalarToBuffer(c, Buffer).toString("hex")); + const signature = await (0,tss_frost_client_namespaceObject.sign)(this.wasmLib, session, this.signatures, serverXCoords, serverURLs, clientXCoord, clientShareAdjustedHex, pubKeyHex, data, serverCoefficientsHex); + log.info(`signature: ${signature}`); + return Buffer.from(signature, "hex"); + } + async loadTssWasm() { + if (this.wasmLib) return this.wasmLib; + if (typeof this._tssLib.load === "function") { + // dont wait for wasm to be loaded, we can reload it during signing if not loaded + return this._tssLib.load(); + } else if (this._tssLib.lib) { + return this._tssLib.lib; + } + } +} +;// CONCATENATED MODULE: ./src/index.ts + + + + + + +module.exports = __webpack_exports__; +/******/ })() +; \ No newline at end of file diff --git a/package/dist/mpcCoreKit.esm.js b/package/dist/mpcCoreKit.esm.js new file mode 100644 index 00000000..39f812dd --- /dev/null +++ b/package/dist/mpcCoreKit.esm.js @@ -0,0 +1,2209 @@ +import { TORUS_SAPPHIRE_NETWORK, KEY_TYPE, SIGNER_MAP } from '@toruslabs/constants'; +import _defineProperty from '@babel/runtime/helpers/defineProperty'; +import { ShareSerializationModule } from '@tkey/share-serialization'; +import BN from 'bn.js'; +import _objectSpread from '@babel/runtime/helpers/objectSpread2'; +import { secp256k1, Point, KeyType, ShareStore, SHARE_DELETED } from '@tkey/common-types'; +import { getPubKeyPoint, factorKeyCurve, lagrangeInterpolation, TSSTorusServiceProvider, TKeyTSS } from '@tkey/tss'; +export { factorKeyCurve } from '@tkey/tss'; +import { keccak256, Torus } from '@toruslabs/torus.js'; +import { generatePrivateBN, CoreError } from '@tkey/core'; +import { TorusStorageLayer } from '@tkey/storage-layer-torus'; +import { UX_MODE, AGGREGATE_VERIFIER, TORUS_METHOD } from '@toruslabs/customauth'; +import { Ed25519Curve } from '@toruslabs/elliptic-wrapper'; +import { fetchLocalConfig } from '@toruslabs/fnd-base'; +import { keccak256 as keccak256$1 } from '@toruslabs/metadata-helpers'; +import { SessionManager } from '@toruslabs/session-manager'; +import { setupSockets, getDKLSCoeff, Client } from '@toruslabs/tss-client'; +import { sign } from '@toruslabs/tss-frost-client'; +import bowser from 'bowser'; +import { eddsa, ec } from 'elliptic'; +import { safeatob } from '@toruslabs/openlogin-utils'; +import loglevel from 'loglevel'; + +const WEB3AUTH_NETWORK = { + MAINNET: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET, + DEVNET: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_DEVNET +}; +const USER_PATH = { + NEW: "NewAccount", + EXISTING: "ExistingAccount", + REHYDRATE: "RehydrateAccount", + RECOVER: "RecoverAccount" +}; +let FactorKeyTypeShareDescription = /*#__PURE__*/function (FactorKeyTypeShareDescription) { + FactorKeyTypeShareDescription["HashedShare"] = "hashedShare"; + FactorKeyTypeShareDescription["SecurityQuestions"] = "tssSecurityQuestions"; + FactorKeyTypeShareDescription["DeviceShare"] = "deviceShare"; + FactorKeyTypeShareDescription["SeedPhrase"] = "seedPhrase"; + FactorKeyTypeShareDescription["PasswordShare"] = "passwordShare"; + FactorKeyTypeShareDescription["SocialShare"] = "socialShare"; + FactorKeyTypeShareDescription["Other"] = "Other"; + return FactorKeyTypeShareDescription; +}({}); +const DELIMITERS = { + Delimiter1: "\u001c", + Delimiter2: "\u0015", + Delimiter3: "\u0016", + Delimiter4: "\u0017" +}; +const ERRORS = { + TKEY_SHARES_REQUIRED: "required more shares", + INVALID_BACKUP_SHARE: "invalid backup share" +}; +const SOCIAL_FACTOR_INDEX = 1; + +/** + * Defines the TSS Share Index in a simplified way for better implementation. + **/ +let TssShareType = /*#__PURE__*/function (TssShareType) { + TssShareType[TssShareType["DEVICE"] = 2] = "DEVICE"; + TssShareType[TssShareType["RECOVERY"] = 3] = "RECOVERY"; + return TssShareType; +}({}); +const VALID_SHARE_INDICES = [TssShareType.DEVICE, TssShareType.RECOVERY]; +const SCALAR_LEN = 32; // Length of secp256k1 scalar in bytes. +const FIELD_ELEMENT_HEX_LEN = 32 * 2; // Length of secp256k1 field element in hex form. + +const MAX_FACTORS = 10; // Maximum number of factors that can be added to an account. +const SOCIAL_TKEY_INDEX = 1; + +/** + * Fix the prototype chain of the error + * + * Use Object.setPrototypeOf + * Support ES6 environments + * + * Fallback setting __proto__ + * Support IE11+, see https://docs.microsoft.com/en-us/scripting/javascript/reference/javascript-version-information + */ +function fixProto(target, prototype) { + const { + setPrototypeOf + } = Object; + if (setPrototypeOf) { + setPrototypeOf(target, prototype); + } else { + // eslint-disable-next-line no-proto, @typescript-eslint/no-explicit-any + target.__proto__ = prototype; + } +} + +/** + * Capture and fix the error stack when available + * + * Use Error.captureStackTrace + * Support v8 environments + */ +function fixStack(target, fn = target.constructor) { + const { + captureStackTrace + } = Error; + if (captureStackTrace) { + captureStackTrace(target, fn); + } +} + +// copy from https://github.com/microsoft/TypeScript/blob/main/lib/lib.es2022.error.d.ts +// avoid typescript isue https://github.com/adriengibrat/ts-custom-error/issues/81 + +/** + * Allows to easily extend a base class to create custom applicative errors. + * + * example: + * ``` + * class HttpError extends CustomError { + * public constructor( + * public code: number, + * message?: string, + * cause?: Error, + * ) { + * super(message, { cause }) + * } + * } + * + * new HttpError(404, 'Not found') + * ``` + */ +class CustomError extends Error { + constructor(message, options) { + super(message, options); + // set error name as constructor name, make it not enumerable to keep native Error behavior + // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target#new.target_in_constructors + // see https://github.com/adriengibrat/ts-custom-error/issues/30 + _defineProperty(this, "name", void 0); + Object.defineProperty(this, "name", { + value: new.target.name, + enumerable: false, + configurable: true + }); + // fix the extended error prototype chain + // because typescript __extends implementation can't + // see https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work + fixProto(this, new.target.prototype); + // try to remove contructor from stack trace + fixStack(this); + } +} +class AbstractCoreKitError extends CustomError { + constructor(code, message) { + // takes care of stack and proto + super(message); + _defineProperty(this, "code", void 0); + _defineProperty(this, "message", void 0); + this.code = code; + this.message = message || ""; + // Set name explicitly as minification can mangle class names + Object.defineProperty(this, "name", { + value: "TkeyError" + }); + } + toJSON() { + return { + name: this.name, + code: this.code, + message: this.message + }; + } + toString() { + return JSON.stringify(this.toJSON()); + } +} + +/** + * CoreKitError, extension for Error using CustomError + * + * Usage: + * 1. throw CoreKitError.factorKeyNotPresent("Required factor key missing in the operation."); // Use a predefined method to throw a common error + * 2. throw CoreKitError.fromCode(1001); // Throw an error using a code for a common error + * 3. throw new CoreKitError(1102, "'tkey' instance has not been initialized."); // Throw a specific error with a custom message + * + * Guide: + * 1000 - Configuration errors + * 1100 - TSS and key management errors + * 1200 - Factor key and authentication errors + * 1300 - Initialization and session management + */ +class CoreKitError extends AbstractCoreKitError { + constructor(code, message) { + super(code, message); + Object.defineProperty(this, "name", { + value: "CoreKitError" + }); + } + static fromCode(code, extraMessage = "") { + return new CoreKitError(code, `${CoreKitError.messages[code]} ${extraMessage}`); + } + static default(extraMessage = "") { + return new CoreKitError(1000, `${CoreKitError.messages[1000]} ${extraMessage}`); + } + + // Configuration errors + static chainConfigInvalid(extraMessage = "") { + return CoreKitError.fromCode(1001, extraMessage); + } + static clientIdInvalid(extraMessage = "") { + return CoreKitError.fromCode(1002, extraMessage); + } + static storageTypeUnsupported(extraMessage = "") { + return CoreKitError.fromCode(1003, extraMessage); + } + static oauthLoginUnsupported(extraMessage = "") { + return CoreKitError.fromCode(1004, extraMessage); + } + static noValidStorageOptionFound(extraMessage = "") { + return CoreKitError.fromCode(1005, extraMessage); + } + static noDataFoundInStorage(extraMessage = "") { + return CoreKitError.fromCode(1006, extraMessage); + } + static invalidConfig(extraMessage = "") { + return CoreKitError.fromCode(1007, extraMessage); + } + + // TSS and key management errors + static tssLibRequired(extraMessage = "") { + return CoreKitError.fromCode(1101, extraMessage); + } + static tkeyInstanceUninitialized(extraMessage = "") { + return CoreKitError.fromCode(1102, extraMessage); + } + static duplicateTssIndex(extraMessage = "") { + return CoreKitError.fromCode(1103, extraMessage); + } + static nodeDetailsRetrievalFailed(extraMessage = "") { + return CoreKitError.fromCode(1104, extraMessage); + } + static prefetchValueExceeded(extraMessage = "") { + return CoreKitError.fromCode(1105, extraMessage); + } + static invalidTorusLoginResponse(extraMessage = "") { + return CoreKitError.fromCode(1106, extraMessage); + } + static invalidTorusAggregateLoginResponse(extraMessage = "") { + return CoreKitError.fromCode(1107, extraMessage); + } + static unsupportedRedirectMethod(extraMessage = "") { + return CoreKitError.fromCode(1108, extraMessage); + } + static postBoxKeyMissing(extraMessage = "") { + return CoreKitError.fromCode(1109, extraMessage); + } + static tssShareTypeIndexMissing(extraMessage = "") { + return CoreKitError.fromCode(1110, extraMessage); + } + static tssPublicKeyOrEndpointsMissing(extraMessage = "") { + return CoreKitError.fromCode(1111, extraMessage); + } + static activeSessionNotFound(extraMessage = "") { + return CoreKitError.fromCode(1112, extraMessage); + } + static tssNoncesMissing(extraMessage = "") { + return CoreKitError.fromCode(1113, extraMessage); + } + static tssKeyImportNotAllowed(extraMessage = "") { + return CoreKitError.fromCode(1114, extraMessage); + } + + // Factor key and authentication errors + static factorKeyNotPresent(extraMessage = "") { + return CoreKitError.fromCode(1201, extraMessage); + } + static factorKeyAlreadyExists(extraMessage = "") { + return CoreKitError.fromCode(1202, extraMessage); + } + static mfaAlreadyEnabled(extraMessage = "") { + return CoreKitError.fromCode(1203, extraMessage); + } + static cannotDeleteLastFactor(extraMessage = "") { + return CoreKitError.fromCode(1204, extraMessage); + } + static factorInUseCannotBeDeleted(extraMessage = "") { + return CoreKitError.fromCode(1205, extraMessage); + } + static userNotLoggedIn(extraMessage = "") { + return CoreKitError.fromCode(1206, extraMessage); + } + static providedFactorKeyInvalid(extraMessage = "") { + return CoreKitError.fromCode(1207, extraMessage); + } + static factorEncsMissing(extraMessage = "") { + return CoreKitError.fromCode(1208, extraMessage); + } + static noMetadataFound(extraMessage = "") { + return CoreKitError.fromCode(1209, extraMessage); + } + static newShareIndexInvalid(extraMessage = "") { + return CoreKitError.fromCode(1210, extraMessage); + } + static maximumFactorsReached(extraMessage = "") { + return CoreKitError.fromCode(1211, extraMessage); + } + static noMetadataShareFound(extraMessage = "") { + return CoreKitError.fromCode(1212, extraMessage); + } + static signaturesNotPresent(extraMessage = "") { + return CoreKitError.fromCode(1213, extraMessage); + } + static factorPubsMissing(extraMessage = "") { + return CoreKitError.fromCode(1214, extraMessage); + } + + // Initialization and session management + static commitChangesBeforeMFA(extraMessage = "") { + return CoreKitError.fromCode(1301, extraMessage); + } + static mpcCoreKitNotInitialized(extraMessage = "") { + return CoreKitError.fromCode(1302, extraMessage); + } +} +_defineProperty(CoreKitError, "messages", { + // Configuration errors + 1001: "You must specify a valid eip155 chain configuration in the options.", + 1002: "You must specify a web3auth clientId.", + 1003: "Unsupported storage type in this UX mode.", + 1004: "OAuth login is NOT supported in this UX mode.", + 1005: "No valid storage option found.", + 1006: "No data found in storage.", + 1007: "Invalid config.", + // TSS and key management errors + 1101: "'tssLib' is required when running in this UX mode.", + 1102: "'tkey' instance has not been initialized.", + 1103: "Duplicate TSS index found. Ensure that each TSS index is unique.", + 1104: "Failed to retrieve node details. Please check your network connection and try again.", + 1105: "The prefetch TSS public keys exceeds the maximum allowed limit of 3.", + 1106: "Invalid 'TorusLoginResponse' data provided.", + 1107: "Invalid 'TorusAggregateLoginResponse' data provided.", + 1108: "Unsupported method type encountered in redirect result.", + 1109: "OAuthKey not present in state.", + 1110: "TSS Share Type (Index) not present in state when getting current factor key.", + 1111: "'tssPubKey' or 'torusNodeTSSEndpoints' are missing.", + 1112: "No active session found.", + 1113: "tssNonces not present in metadata when getting tss nonce.", + 1114: "A TSS key cannot be imported for an existing user who already has a key configured.", + // Factor key and authentication errors + 1201: "factorKey not present in state when required.", + 1202: "A factor with the same key already exists.", + 1203: "MFA is already enabled.", + 1204: "Cannot delete the last remaining factor as at least one factor is required.", + 1205: "The factor currently in use cannot be deleted.", + 1206: "User is not logged in.", + 1207: "Provided factor key is invalid.", + 1208: "'factorEncs' mpt [resemt].", + 1209: "No metadata found for the provided factor key. Consider resetting your account if this error persists.", + 1210: "The new share index is not valid. It must be one of the valid share indices.", + 1211: "The maximum number of allowable factors (10) has been reached.", + 1212: "No metadata share found in the current polynomial.", + 1213: "No signatures found.", + 1214: "Factor public keys not present", + // Initialization and session management + 1301: "The 'CommitChanges' method must be called before enabling MFA.", + 1302: "The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations." +}); + +class MemoryStorage { + constructor() { + _defineProperty(this, "_store", {}); + } + getItem(key) { + return this._store[key] || null; + } + setItem(key, value) { + this._store[key] = value; + } + removeItem(key) { + delete this._store[key]; + } + clear() { + this._store = {}; + } +} +class AsyncStorage { + constructor(storeKey, storage) { + _defineProperty(this, "storage", void 0); + _defineProperty(this, "_storeKey", void 0); + this.storage = storage; + this._storeKey = storeKey; + } + async toJSON() { + const result = await this.storage.getItem(this._storeKey); + if (!result) { + throw CoreKitError.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`); + } + return result; + } + async resetStore() { + const currStore = await this.getStore(); + await this.storage.setItem(this._storeKey, JSON.stringify({})); + return currStore; + } + async getStore() { + return JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + } + async get(key) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + return store[key]; + } + async set(key, value) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + store[key] = value; + await this.storage.setItem(this._storeKey, JSON.stringify(store)); + } + async remove(key) { + const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); + delete store[key]; + await this.storage.setItem(this._storeKey, JSON.stringify(store)); + } +} + +/** + * Converts a mnemonic to a BN. + * @param shareMnemonic - The mnemonic to convert. + * @returns A BN respective to your mnemonic + */ +function mnemonicToKey(shareMnemonic) { + const factorKey = ShareSerializationModule.deserializeMnemonic(shareMnemonic); + return factorKey.toString("hex"); +} + +/** + * Converts a BN to a mnemonic. + * @param shareBN - The BN to convert. + * @returns A mnemonic respective to your BN + */ +function keyToMnemonic(shareHex) { + const shareBN = new BN(shareHex, "hex"); + const mnemonic = ShareSerializationModule.serializeMnemonic(shareBN); + return mnemonic; +} + +class TssSecurityQuestionStore { + constructor(shareIndex, factorPublicKey, question) { + _defineProperty(this, "shareIndex", void 0); + _defineProperty(this, "factorPublicKey", void 0); + _defineProperty(this, "question", void 0); + this.shareIndex = shareIndex; + this.factorPublicKey = factorPublicKey; + this.question = question; + } + static fromJSON(json) { + const { + shareIndex, + factorPublicKey, + question + } = json; + return new TssSecurityQuestionStore(shareIndex, factorPublicKey, question); + } + toJSON() { + return { + shareIndex: this.shareIndex, + factorPublicKey: this.factorPublicKey, + question: this.question + }; + } +} +class TssSecurityQuestion { + constructor() { + _defineProperty(this, "storeDomainName", "tssSecurityQuestion"); + } + async setSecurityQuestion(params) { + const { + mpcCoreKit, + question, + answer, + description + } = params; + let { + shareType + } = params; + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + if (!question || !answer) { + throw new Error("question and answer are required"); + } + const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; + + // default using recovery index + if (!shareType) { + shareType = TssShareType.RECOVERY; + } else if (!VALID_SHARE_INDICES.includes(shareType)) { + throw new Error(`invalid share type: must be one of ${VALID_SHARE_INDICES}`); + } + // Check for existing security question + const tkey = mpcCoreKit.tKey; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (storeDomain && storeDomain.question) { + throw new Error("Security question already exists"); + } + + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; + let hash = keccak256(Buffer.from(answer + pubKey, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new BN(hash, "hex"); + const descriptionFinal = _objectSpread({ + question + }, description); + await mpcCoreKit.createFactor({ + factorKey: factorKeyBN, + shareType, + shareDescription: FactorKeyTypeShareDescription.SecurityQuestions, + additionalMetadata: descriptionFinal + }); + // set store domain + const tkeyPt = getPubKeyPoint(factorKeyBN, factorKeyCurve); + const factorPub = tkeyPt.toSEC1(factorKeyCurve, true).toString("hex"); + const storeData = new TssSecurityQuestionStore(shareType.toString(), factorPub, question); + tkey.metadata.setGeneralStoreDomain(domainKey, storeData.toJSON()); + + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + return factorKeyBN.toString("hex").padStart(64, "0"); + } + async changeSecurityQuestion(params) { + const { + mpcCoreKit, + newQuestion, + newAnswer, + answer + } = params; + if (!newQuestion || !newAnswer || !answer) { + throw new Error("question and answer are required"); + } + // Check for existing security question + const tkey = mpcCoreKit.tKey; + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; + const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + const preHash = answer + pubKey; + let hash = keccak256(Buffer.from(preHash, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new BN(hash, "hex"); + const factorKeyPt = getPubKeyPoint(factorKeyBN, factorKeyCurve); + if (factorKeyPt.toSEC1(factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { + throw new Error("Invalid answer"); + } + + // create new factor key + const prenewHash = newAnswer + pubKey; + let newHash = keccak256(Buffer.from(prenewHash, "utf8")); + newHash = newHash.startsWith("0x") ? newHash.slice(2) : newHash; + const newAnswerBN = new BN(newHash, "hex"); + const newFactorPt = Point.fromScalar(newAnswerBN, factorKeyCurve); + await mpcCoreKit.createFactor({ + factorKey: newAnswerBN, + shareType: parseInt(store.shareIndex), + shareDescription: FactorKeyTypeShareDescription.SecurityQuestions + }); + + // update mpcCoreKit state to use new factor key during change password if mpc factor key is security question factor + if (mpcCoreKit.state.factorKey.eq(factorKeyBN)) { + await mpcCoreKit.inputFactorKey(newAnswerBN); + } + // delete after create factor to prevent last key issue + // delete old factor key and device share + await mpcCoreKit.deleteFactor(factorKeyPt, factorKeyBN); + store.factorPublicKey = newFactorPt.toSEC1(factorKeyCurve, true).toString("hex"); + store.question = newQuestion; + tkey.metadata.setGeneralStoreDomain(domainKey, store.toJSON()); + + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + } + + // Should we check with answer before deleting? + async deleteSecurityQuestion(mpcCoreKit, deleteFactorKey = true) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const tkey = mpcCoreKit.tKey; + if (deleteFactorKey) { + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + if (store.factorPublicKey) { + await mpcCoreKit.deleteFactor(Point.fromSEC1(factorKeyCurve, store.factorPublicKey)); + } + } + tkey.metadata.deleteGeneralStoreDomain(domainKey); + // check for auto commit + if (!tkey.manualSync) await tkey._syncShareMetadata(); + } + async recoverFactor(mpcCoreKit, answer) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + if (!answer) { + throw new Error("question and answer are required"); + } + const tkey = mpcCoreKit.tKey; + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + + // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); + const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; + let hash = keccak256(Buffer.from(answer + pubKey, "utf8")); + hash = hash.startsWith("0x") ? hash.slice(2) : hash; + const factorKeyBN = new BN(hash, "hex"); + const factorKeyPt = Point.fromScalar(factorKeyBN, factorKeyCurve); + if (factorKeyPt.toSEC1(factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { + throw new Error("Invalid answer"); + } + return hash; + } + getQuestion(mpcCoreKit) { + if (!mpcCoreKit.tKey) { + throw new Error("Tkey not initialized, call init first."); + } + const tkey = mpcCoreKit.tKey; + const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; + const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); + if (!storeDomain || !storeDomain.question) { + throw new Error("Security question does not exists"); + } + const store = TssSecurityQuestionStore.fromJSON(storeDomain); + return store.question; + } +} + +// TODO: move the types to a base class for both dkls and frost in future + +let COREKIT_STATUS = /*#__PURE__*/function (COREKIT_STATUS) { + COREKIT_STATUS["NOT_INITIALIZED"] = "NOT_INITIALIZED"; + COREKIT_STATUS["INITIALIZED"] = "INITIALIZED"; + COREKIT_STATUS["REQUIRED_SHARE"] = "REQUIRED_SHARE"; + COREKIT_STATUS["LOGGED_IN"] = "LOGGED_IN"; + return COREKIT_STATUS; +}({}); + +const ed25519 = () => { + return new eddsa("ed25519"); +}; + +/** + * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. + */ +function randomBytes(bytesLength = 32) { + // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. + const crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : undefined; + if (crypto && typeof crypto.getRandomValues === "function") { + return crypto.getRandomValues(new Uint8Array(bytesLength)); + } + throw new Error("crypto.getRandomValues must be defined"); +} +function generateEd25519Seed() { + return Buffer.from(randomBytes(32)); +} +const generateFactorKey = () => { + const keyPair = factorKeyCurve.genKeyPair(); + const pub = Point.fromElliptic(keyPair.getPublic()); + return { + private: keyPair.getPrivate(), + pub + }; +}; +const generateTSSEndpoints = (tssNodeEndpoints, parties, clientIndex, nodeIndexes) => { + const endpoints = []; + const tssWSEndpoints = []; + const partyIndexes = []; + const nodeIndexesReturned = []; + for (let i = 0; i < parties; i++) { + partyIndexes.push(i); + if (i === clientIndex) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + endpoints.push(null); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + tssWSEndpoints.push(null); + } else { + const targetNodeIndex = nodeIndexes[i] - 1; + endpoints.push(tssNodeEndpoints[targetNodeIndex]); + tssWSEndpoints.push(new URL(tssNodeEndpoints[targetNodeIndex]).origin); + nodeIndexesReturned.push(nodeIndexes[i]); + } + } + return { + endpoints, + tssWSEndpoints, + partyIndexes, + nodeIndexesReturned + }; +}; +async function storageAvailable(storage) { + try { + const x = "__storage_test__"; + const rand = Math.random().toString(); + await storage.setItem(x, rand); + const value = await storage.getItem(rand); + if (value !== rand) { + throw new Error("Value mismatch"); + } + return true; + } catch (error) { + return false; + } +} + +// TODO think which conversion functions to keep and how to export them. + +/** + * Parses a JWT Token, without verifying the signature. + * @param token - JWT Token + * @returns Extracted JSON payload from the token + */ +function parseToken(token) { + const payload = token.split(".")[1]; + return JSON.parse(safeatob(payload)); +} +const getHashedPrivateKey = (postboxKey, clientId) => { + const uid = `${postboxKey}_${clientId}`; + let hashUid = keccak256(Buffer.from(uid, "utf8")); + hashUid = hashUid.replace("0x", ""); + return new BN(hashUid, "hex"); +}; + +/** + * Converts an elliptic curve scalar represented by a BN to a byte buffer in SEC1 + * format (i.e., padded to maximum length). + * @param s - The scalar of type BN. + * @returns The SEC1 encoded representation of the scalar. + */ +function scalarBNToBufferSEC1(s) { + return s.toArrayLike(Buffer, "be", SCALAR_LEN); +} +function sampleEndpoints(endpoints, n) { + if (n > endpoints.length) { + throw new Error("Invalid number of endpoints"); + } + const shuffledEndpoints = endpoints.slice().sort(() => Math.random() - 0.5); + return shuffledEndpoints.slice(0, n).sort((a, b) => a.index - b.index); +} +function fraction(curve, nom, denom) { + return nom.mul(denom.invm(curve.n)).umod(curve.n); +} +function lagrangeCoefficient(curve, xCoords, targetCoeff, targetX) { + return xCoords.filter((_, i) => i !== targetCoeff).reduce((prev, cur) => { + const frac = fraction(curve, targetX.sub(cur), xCoords[targetCoeff].sub(cur)); + return prev.mul(frac).umod(curve.n); + }, new BN(1)); +} +function lagrangeCoefficients(curve, xCoords, targetX) { + const xCoordsBN = xCoords.map(i => new BN(i)); + const targetXBN = new BN(targetX); + return xCoordsBN.map((_value, i) => lagrangeCoefficient(curve, xCoordsBN, i, targetXBN)); +} +const SERVER_XCOORD_L1 = 1; +const CLIENT_XCOORD_L1 = 2; + +/** + * Derive share coefficients for client and servers. + * + * @param curve - The curve to be used. + * @param serverXCoords - The source and target x-coordinates of the selected + * servers. + * @param targetClientXCoord - The target x-coordinate of the client. + * @param sourceClientXCoord - The source x-coordinate of the client in the L1 + * hierarchy. + * @returns - The share coefficients for the client and the servers. + */ +function deriveShareCoefficients(ec, serverXCoords, targetClientXCoord, sourceClientXCoord = CLIENT_XCOORD_L1) { + const l1Coefficients = lagrangeCoefficients(ec, [SERVER_XCOORD_L1, sourceClientXCoord], 0); + const l2Coefficients = lagrangeCoefficients(ec, serverXCoords, 0); + if (serverXCoords.includes(targetClientXCoord)) { + throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${serverXCoords} ${targetClientXCoord}`); + } + const targetCoefficients = lagrangeCoefficients(ec, [targetClientXCoord, ...serverXCoords], 0); + + // Derive server coefficients. + const serverCoefficients = l2Coefficients.map((coeff, i) => fraction(ec, l1Coefficients[0].mul(coeff), targetCoefficients[i + 1])); + + // Derive client coefficient. + const clientCoefficient = fraction(ec, l1Coefficients[1], targetCoefficients[0]); + return { + serverCoefficients, + clientCoefficient + }; +} +function generateSessionNonce() { + return keccak256(Buffer.from(generatePrivateBN().toString("hex") + Date.now(), "utf8")); +} +function getSessionId(verifier, verifierId, tssTag, tssNonce, sessionNonce) { + return `${verifier}${DELIMITERS.Delimiter1}${verifierId}${DELIMITERS.Delimiter2}${tssTag}${DELIMITERS.Delimiter3}${tssNonce}${DELIMITERS.Delimiter4}${sessionNonce}`; +} +function sigToRSV(sig) { + if (sig.length !== 65) { + throw new Error(`Invalid signature length: expected 65, got ${sig.length}`); + } + return { + r: sig.subarray(0, 32), + s: sig.subarray(32, 64), + v: sig[64] + }; +} +function makeEthereumSigner(kit) { + if (kit.keyType !== KeyType.secp256k1) { + throw new Error(`Invalid key type: expected secp256k1, got ${kit.keyType}`); + } + return { + sign: async msgHash => { + const sig = await kit.sign(msgHash, true); + return sigToRSV(sig); + }, + getPublic: async () => { + const pk = Point.fromSEC1(secp256k1, kit.getPubKey().toString("hex")); + return pk.toSEC1(secp256k1).subarray(1); + } + }; +} +const log = loglevel.getLogger("mpc-core-kit"); +log.disableAll(); + +class Web3AuthMPCCoreKit { + constructor(options) { + var _window; + _defineProperty(this, "state", { + accountIndex: 0 + }); + _defineProperty(this, "torusSp", null); + _defineProperty(this, "options", void 0); + _defineProperty(this, "storageLayer", null); + _defineProperty(this, "tkey", null); + _defineProperty(this, "sessionManager", void 0); + _defineProperty(this, "currentStorage", void 0); + _defineProperty(this, "_storageBaseKey", "corekit_store"); + _defineProperty(this, "enableLogging", false); + _defineProperty(this, "ready", false); + _defineProperty(this, "_tssLib", void 0); + _defineProperty(this, "wasmLib", void 0); + _defineProperty(this, "_keyType", void 0); + _defineProperty(this, "atomicCallStackCounter", 0); + _defineProperty(this, "getTssFactorPub", () => { + this.checkReady(); + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when getting tss factor public key."); + } + const factorPubsList = this.tKey.metadata.factorPubs[this.tKey.tssTag]; + return factorPubsList.map(factorPub => factorPub.toSEC1(factorKeyCurve, true).toString("hex")); + }); + if (!options.web3AuthClientId) { + throw CoreKitError.clientIdInvalid(); + } + this._tssLib = options.tssLib; + this._keyType = options.tssLib.keyType; + const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); + if (options.enableLogging) { + log.enableAll(); + this.enableLogging = true; + } else log.setLevel("error"); + if (typeof options.manualSync !== "boolean") options.manualSync = false; + if (!options.web3AuthNetwork) options.web3AuthNetwork = WEB3AUTH_NETWORK.MAINNET; + // if sessionTime is not provided, it is defaulted to 86400 + if (!options.sessionTime) options.sessionTime = 86400; + if (!options.serverTimeOffset) options.serverTimeOffset = 0; + if (!options.uxMode) options.uxMode = UX_MODE.REDIRECT; + if (!options.redirectPathName) options.redirectPathName = "redirect"; + if (!options.baseUrl) options.baseUrl = isNodejsOrRN ? "https://localhost" : `${(_window = window) === null || _window === void 0 ? void 0 : _window.location.origin}/serviceworker`; + if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; + if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; + if (options.disableSessionManager === undefined) options.disableSessionManager = false; + this.options = options; + this.currentStorage = new AsyncStorage(this._storageBaseKey, options.storage); + if (!options.disableSessionManager) { + this.sessionManager = new SessionManager({ + sessionTime: options.sessionTime + }); + } + Torus.setSessionTime(this.options.sessionTime); + } + get tKey() { + if (this.tkey === null) { + throw CoreKitError.tkeyInstanceUninitialized(); + } + return this.tkey; + } + get keyType() { + return this._keyType; + } + get signatures() { + var _this$state; + return (_this$state = this.state) !== null && _this$state !== void 0 && _this$state.signatures ? this.state.signatures : []; + } + get _storageKey() { + return this._storageBaseKey; + } + get status() { + try { + // metadata will be present if tkey is initialized (1 share) + // if 2 shares are present, then privKey will be present after metadatakey(tkey) reconstruction + const { + tkey + } = this; + if (!tkey) return COREKIT_STATUS.NOT_INITIALIZED; + if (!tkey.metadata) return COREKIT_STATUS.INITIALIZED; + if (!tkey.secp256k1Key || !this.state.factorKey) return COREKIT_STATUS.REQUIRED_SHARE; + return COREKIT_STATUS.LOGGED_IN; + } catch (e) {} + return COREKIT_STATUS.NOT_INITIALIZED; + } + get sessionId() { + var _this$sessionManager; + return (_this$sessionManager = this.sessionManager) === null || _this$sessionManager === void 0 ? void 0 : _this$sessionManager.sessionId; + } + get supportsAccountIndex() { + return this._keyType !== KeyType.ed25519; + } + get verifier() { + var _this$state$userInfo, _this$state2; + if ((_this$state$userInfo = this.state.userInfo) !== null && _this$state$userInfo !== void 0 && _this$state$userInfo.aggregateVerifier) { + return this.state.userInfo.aggregateVerifier; + } + return (_this$state2 = this.state) !== null && _this$state2 !== void 0 && (_this$state2 = _this$state2.userInfo) !== null && _this$state2 !== void 0 && _this$state2.verifier ? this.state.userInfo.verifier : ""; + } + get verifierId() { + var _this$state3; + return (_this$state3 = this.state) !== null && _this$state3 !== void 0 && (_this$state3 = _this$state3.userInfo) !== null && _this$state3 !== void 0 && _this$state3.verifierId ? this.state.userInfo.verifierId : ""; + } + get isRedirectMode() { + return this.options.uxMode === UX_MODE.REDIRECT; + } + get useClientGeneratedTSSKey() { + return this.keyType === KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; + } + + // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : + // TssShareType.DEVICE and TssShareType.RECOVERY + // if the factors key provided is the same type recovery will not works + async _UNSAFE_recoverTssKey(factorKey) { + this.checkReady(); + const factorKeyBN = new BN(factorKey[0], "hex"); + const shareStore0 = await this.getFactorKeyMetadata(factorKeyBN); + await this.tKey.initialize({ + withShare: shareStore0 + }); + const tssShares = []; + const tssIndexes = []; + const tssIndexesBN = []; + for (let i = 0; i < factorKey.length; i++) { + const factorKeyBNInput = new BN(factorKey[i], "hex"); + const { + tssIndex, + tssShare + } = await this.tKey.getTSSShare(factorKeyBNInput); + if (tssIndexes.includes(tssIndex)) { + // reset instance before throw error + await this.init(); + throw CoreKitError.duplicateTssIndex(); + } + tssIndexes.push(tssIndex); + tssIndexesBN.push(new BN(tssIndex)); + tssShares.push(tssShare); + } + const finalKey = lagrangeInterpolation(this.tkey.tssCurve, tssShares, tssIndexesBN); + // reset instance after recovery completed + await this.init(); + return finalKey.toString("hex", 64); + } + async init(params = { + handleRedirectResult: true + }) { + var _window2, _window3; + this.resetState(); + if (params.rehydrate === undefined) params.rehydrate = true; + const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); + if (this.keyType === KEY_TYPE.ED25519 && this.options.useDKG) { + throw CoreKitError.invalidConfig("DKG is not supported for ed25519 key type"); + } + this.torusSp = new TSSTorusServiceProvider({ + customAuthArgs: { + web3AuthClientId: this.options.web3AuthClientId, + baseUrl: this.options.baseUrl, + uxMode: this.isNodejsOrRN(this.options.uxMode) ? UX_MODE.REDIRECT : this.options.uxMode, + network: this.options.web3AuthNetwork, + redirectPathName: this.options.redirectPathName, + locationReplaceOnRedirect: true, + serverTimeOffset: this.options.serverTimeOffset, + keyType: this.keyType, + useDkg: this.options.useDKG + } + }); + this.storageLayer = new TorusStorageLayer({ + hostUrl: `${new URL(nodeDetails.torusNodeEndpoints[0]).origin}/metadata`, + enableLogging: this.enableLogging + }); + const shareSerializationModule = new ShareSerializationModule(); + this.tkey = new TKeyTSS({ + enableLogging: this.enableLogging, + serviceProvider: this.torusSp, + storageLayer: this.storageLayer, + manualSync: this.options.manualSync, + modules: { + shareSerialization: shareSerializationModule + }, + tssKeyType: this.keyType + }); + if (this.isRedirectMode) { + await this.torusSp.init({ + skipSw: true, + skipPrefetch: true + }); + } else if (this.options.uxMode === UX_MODE.POPUP) { + await this.torusSp.init({}); + } + this.ready = true; + + // try handle redirect flow if enabled and return(redirect) from oauth login + if (params.handleRedirectResult && this.options.uxMode === UX_MODE.REDIRECT && ((_window2 = window) !== null && _window2 !== void 0 && _window2.location.hash.includes("#state") || (_window3 = window) !== null && _window3 !== void 0 && _window3.location.hash.includes("#access_token"))) { + // on failed redirect, instance is reseted. + // skip check feature gating on redirection as it was check before login + await this.handleRedirectResult(); + + // return early on successful redirect, the rest of the code will not be executed + return; + } else if (params.rehydrate && this.sessionManager) { + // if not redirect flow try to rehydrate session if available + const sessionId = await this.currentStorage.get("sessionId"); + if (sessionId) { + this.sessionManager.sessionId = sessionId; + + // swallowed, should not throw on rehydrate timed out session + const sessionResult = await this.sessionManager.authorizeSession().catch(async err => { + log.error("rehydrate session error", err); + }); + + // try rehydrate session + if (sessionResult) { + await this.rehydrateSession(sessionResult); + + // return early on success rehydration + return; + } + } + } + // feature gating if not redirect flow or session rehydration + await this.featureRequest(); + } + async loginWithOAuth(params) { + this.checkReady(); + if (this.isNodejsOrRN(this.options.uxMode)) { + throw CoreKitError.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`); + } + const { + importTssKey + } = params; + const tkeyServiceProvider = this.torusSp; + try { + // oAuth login. + const verifierParams = params; + const aggregateParams = params; + if (verifierParams.subVerifierDetails) { + var _loginResponse$nodesD; + // single verifier login. + const loginResponse = await tkeyServiceProvider.triggerLogin(params.subVerifierDetails); + if (this.isRedirectMode) return; + this.updateState({ + postBoxKey: this._getPostBoxKey(loginResponse), + postboxKeyNodeIndexes: (_loginResponse$nodesD = loginResponse.nodesData) === null || _loginResponse$nodesD === void 0 ? void 0 : _loginResponse$nodesD.nodeIndexes, + userInfo: loginResponse.userInfo, + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + } else if (aggregateParams.subVerifierDetailsArray) { + var _loginResponse$nodesD2; + const loginResponse = await tkeyServiceProvider.triggerAggregateLogin({ + aggregateVerifierType: aggregateParams.aggregateVerifierType || AGGREGATE_VERIFIER.SINGLE_VERIFIER_ID, + verifierIdentifier: aggregateParams.aggregateVerifierIdentifier, + subVerifierDetailsArray: aggregateParams.subVerifierDetailsArray + }); + if (this.isRedirectMode) return; + this.updateState({ + postBoxKey: this._getPostBoxKey(loginResponse), + postboxKeyNodeIndexes: (_loginResponse$nodesD2 = loginResponse.nodesData) === null || _loginResponse$nodesD2 === void 0 ? void 0 : _loginResponse$nodesD2.nodeIndexes, + userInfo: loginResponse.userInfo[0], + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + } + await this.setupTkey(importTssKey); + } catch (err) { + log.error("login error", err); + if (err instanceof CoreError) { + if (err.code === 1302) { + throw CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); + } + } + throw CoreKitError.default(err.message); + } + } + async loginWithJWT(params) { + this.checkReady(); + const { + prefetchTssPublicKeys = 1 + } = params; + if (prefetchTssPublicKeys > 3) { + throw CoreKitError.prefetchValueExceeded(`The prefetch value '${prefetchTssPublicKeys}' exceeds the maximum allowed limit of 3.`); + } + const { + verifier, + verifierId, + idToken, + importTssKey + } = params; + this.torusSp.verifierName = verifier; + this.torusSp.verifierId = verifierId; + try { + var _loginResponse$nodesD3; + // prefetch tss pub keys. + const prefetchTssPubs = []; + for (let i = 0; i < prefetchTssPublicKeys; i++) { + prefetchTssPubs.push(this.torusSp.getTSSPubKey(this.tkey.tssTag, i)); + } + + // get postbox key. + let loginPromise; + if (!params.subVerifier) { + // single verifier login. + loginPromise = this.torusSp.customAuthInstance.getTorusKey(verifier, verifierId, { + verifier_id: verifierId + }, idToken, _objectSpread(_objectSpread({}, params.extraVerifierParams), params.additionalParams)); + } else { + // aggregate verifier login + loginPromise = this.torusSp.customAuthInstance.getAggregateTorusKey(verifier, verifierId, [{ + verifier: params.subVerifier, + idToken, + extraVerifierParams: params.extraVerifierParams + }]); + } + + // wait for prefetch completed before setup tkey + const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]); + const postBoxKey = this._getPostBoxKey(loginResponse); + this.torusSp.postboxKey = new BN(postBoxKey, "hex"); + this.updateState({ + postBoxKey, + postboxKeyNodeIndexes: ((_loginResponse$nodesD3 = loginResponse.nodesData) === null || _loginResponse$nodesD3 === void 0 ? void 0 : _loginResponse$nodesD3.nodeIndexes) || [], + userInfo: _objectSpread(_objectSpread({}, parseToken(idToken)), {}, { + verifier, + verifierId + }), + signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) + }); + await this.setupTkey(importTssKey); + } catch (err) { + log.error("login error", err); + if (err instanceof CoreError) { + if (err.code === 1302) { + const newError = CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); + newError.stack = err.stack; + throw newError; + } + } + const newError = CoreKitError.default(err.message); + newError.stack = err.stack; + throw newError; + } + } + async handleRedirectResult() { + this.checkReady(); + try { + const result = await this.torusSp.customAuthInstance.getRedirectResult(); + if (result.method === TORUS_METHOD.TRIGGER_LOGIN) { + var _data$nodesData; + const data = result.result; + if (!data) { + throw CoreKitError.invalidTorusLoginResponse(); + } + this.updateState({ + postBoxKey: this._getPostBoxKey(data), + postboxKeyNodeIndexes: ((_data$nodesData = data.nodesData) === null || _data$nodesData === void 0 ? void 0 : _data$nodesData.nodeIndexes) || [], + userInfo: data.userInfo, + signatures: this._getSignatures(data.sessionData.sessionTokenData) + }); + const userInfo = this.getUserInfo(); + this.torusSp.verifierName = userInfo.verifier; + } else if (result.method === TORUS_METHOD.TRIGGER_AGGREGATE_LOGIN) { + var _data$nodesData2; + const data = result.result; + if (!data) { + throw CoreKitError.invalidTorusAggregateLoginResponse(); + } + this.updateState({ + postBoxKey: this._getPostBoxKey(data), + postboxKeyNodeIndexes: ((_data$nodesData2 = data.nodesData) === null || _data$nodesData2 === void 0 ? void 0 : _data$nodesData2.nodeIndexes) || [], + userInfo: data.userInfo[0], + signatures: this._getSignatures(data.sessionData.sessionTokenData) + }); + const userInfo = this.getUserInfo(); + this.torusSp.verifierName = userInfo.aggregateVerifier; + } else { + throw CoreKitError.unsupportedRedirectMethod(); + } + const userInfo = this.getUserInfo(); + if (!this.state.postBoxKey) { + throw CoreKitError.postBoxKeyMissing("postBoxKey not present in state after processing redirect result."); + } + this.torusSp.postboxKey = new BN(this.state.postBoxKey, "hex"); + this.torusSp.verifierId = userInfo.verifierId; + await this.setupTkey(); + } catch (error) { + this.resetState(); + log.error("error while handling redirect result", error); + throw CoreKitError.default(error.message); + } + } + async inputFactorKey(factorKey) { + this.checkReady(); + try { + // input tkey device share when required share > 0 ( or not reconstructed ) + // assumption tkey shares will not changed + if (!this.tKey.secp256k1Key) { + const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + } + + // Finalize initialization. + await this.tKey.reconstructKey(); + await this.finalizeTkey(factorKey); + } catch (err) { + log.error("login error", err); + if (err instanceof CoreError) { + if (err.code === 1302) { + throw CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); + } + } + throw CoreKitError.default(err.message); + } + } + setTssWalletIndex(accountIndex) { + this.updateState({ + tssPubKey: this.tKey.getTSSPub(accountIndex).toSEC1(this.tkey.tssCurve, false), + accountIndex + }); + } + getCurrentFactorKey() { + this.checkReady(); + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when getting current factor key."); + } + if (!this.state.tssShareIndex) { + throw CoreKitError.tssShareTypeIndexMissing("TSS Share Type (Index) not present in state when getting current factor key."); + } + try { + return { + factorKey: this.state.factorKey, + shareType: this.state.tssShareIndex + }; + } catch (err) { + log.error("state error", err); + throw CoreKitError.default(err.message); + } + } + async enableMFA(enableMFAParams, recoveryFactor = true) { + this.checkReady(); + const { + postBoxKey + } = this.state; + const hashedFactorKey = getHashedPrivateKey(postBoxKey, this.options.hashedFactorNonce); + if (!(await this.checkIfFactorKeyValid(hashedFactorKey))) { + if (this.tKey._localMetadataTransitions[0].length) { + throw CoreKitError.commitChangesBeforeMFA(); + } + throw CoreKitError.mfaAlreadyEnabled(); + } + return this.atomicSync(async () => { + let browserData; + if (this.isNodejsOrRN(this.options.uxMode)) { + browserData = { + browserName: "Node Env", + browserVersion: "", + deviceName: "nodejs" + }; + } else { + // try { + const browserInfo = bowser.parse(navigator.userAgent); + const browserName = `${browserInfo.browser.name}`; + browserData = { + browserName, + browserVersion: browserInfo.browser.version, + deviceName: browserInfo.os.name + }; + } + const deviceFactorKey = new BN(await this.createFactor({ + shareType: TssShareType.DEVICE, + additionalMetadata: browserData + }), "hex"); + await this.setDeviceFactor(deviceFactorKey); + await this.inputFactorKey(new BN(deviceFactorKey, "hex")); + const hashedFactorPub = getPubKeyPoint(hashedFactorKey, factorKeyCurve); + await this.deleteFactor(hashedFactorPub, hashedFactorKey); + await this.deleteMetadataShareBackup(hashedFactorKey); + + // only recovery factor = true + let backupFactorKey; + if (recoveryFactor) { + backupFactorKey = await this.createFactor(_objectSpread({ + shareType: TssShareType.RECOVERY + }, enableMFAParams)); + } + + // update to undefined for next major release + return backupFactorKey; + }).catch(reason => { + log.error("error enabling MFA:", reason.message); + const err = CoreKitError.default(reason.message); + err.stack = reason.stack; + throw err; + }); + } + // mutation function + async createFactor(createFactorParams) { + this.checkReady(); + const { + shareType + } = createFactorParams; + let { + factorKey, + shareDescription, + additionalMetadata + } = createFactorParams; + if (!VALID_SHARE_INDICES.includes(shareType)) { + throw CoreKitError.newShareIndexInvalid(`Invalid share type provided (${shareType}). Valid share types are ${VALID_SHARE_INDICES}.`); + } + if (!factorKey) { + factorKey = generateFactorKey().private; + } + if (!shareDescription) { + shareDescription = FactorKeyTypeShareDescription.Other; + } + if (!additionalMetadata) { + additionalMetadata = {}; + } + const factorPub = getPubKeyPoint(factorKey, factorKeyCurve); + if (this.getTssFactorPub().includes(factorPub.toSEC1(factorKeyCurve, true).toString("hex"))) { + throw CoreKitError.factorKeyAlreadyExists(); + } + return this.atomicSync(async () => { + await this.copyOrCreateShare(shareType, factorPub); + await this.backupMetadataShare(factorKey); + await this.addFactorDescription({ + factorKey, + shareDescription, + additionalMetadata, + updateMetadata: false + }); + return scalarBNToBufferSEC1(factorKey).toString("hex"); + }).catch(reason => { + log.error("error creating factor:", reason.message); + const err = CoreKitError.default(`error creating factor: ${reason.message}`); + err.stack = reason.stack; + throw err; + }); + } + + /** + * Get public key point in SEC1 format. + */ + getPubKey() { + const { + tssPubKey + } = this.state; + return Buffer.from(tssPubKey); + } + + /** + * Get public key point. + */ + getPubKeyPoint() { + const { + tssPubKey + } = this.state; + return Point.fromSEC1(this.tkey.tssCurve, tssPubKey.toString("hex")); + } + + /** + * Get public key in ed25519 format. + * + * Throws an error if keytype is not compatible with ed25519. + */ + getPubKeyEd25519() { + const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); + return ed25519().keyFromPublic(p).getPublic(); + } + async precompute_secp256k1() { + this.wasmLib = await this.loadTssWasm(); + // PreSetup + const { + tssShareIndex + } = this.state; + const tssPubKey = this.getPubKeyPoint(); + const { + torusNodeTSSEndpoints + } = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when signing."); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey, { + accountIndex: 0 + }); + const tssNonce = this.getTssNonce(); + if (!tssPubKey || !torusNodeTSSEndpoints) { + throw CoreKitError.tssPublicKeyOrEndpointsMissing(); + } + + // session is needed for authentication to the web3auth infrastructure holding the factor 1 + const randomSessionNonce = generateSessionNonce(); + const currentSession = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, randomSessionNonce); + const parties = 4; + const clientIndex = parties - 1; + // 1. setup + // generate endpoints for servers + const { + nodeIndexes + } = await this.torusSp.getTSSPubKey(this.tKey.tssTag, this.tKey.metadata.tssNonces[this.tKey.tssTag]); + const { + endpoints, + tssWSEndpoints, + partyIndexes, + nodeIndexesReturned: participatingServerDKGIndexes + } = generateTSSEndpoints(torusNodeTSSEndpoints, parties, clientIndex, nodeIndexes); + + // Setup sockets. + const sockets = await setupSockets(tssWSEndpoints, randomSessionNonce); + const dklsCoeff = getDKLSCoeff(true, participatingServerDKGIndexes, tssShareIndex); + const denormalisedShare = dklsCoeff.mul(tssShare).umod(secp256k1.curve.n); + const accountNonce = this.tkey.computeAccountNonce(this.state.accountIndex); + const derivedShare = denormalisedShare.add(accountNonce).umod(secp256k1.curve.n); + const share = scalarBNToBufferSEC1(derivedShare).toString("base64"); + if (!currentSession) { + throw CoreKitError.activeSessionNotFound(); + } + const { + signatures + } = this; + if (!signatures) { + throw CoreKitError.signaturesNotPresent(); + } + + // Client lib expects pub key in XY-format, base64-encoded. + const tssPubKeyBase64 = Buffer.from(tssPubKey.toSEC1(secp256k1).subarray(1)).toString("base64"); + const client = new Client(currentSession, clientIndex, partyIndexes, endpoints, sockets, share, tssPubKeyBase64, true, this.wasmLib); + const serverCoeffs = {}; + for (let i = 0; i < participatingServerDKGIndexes.length; i++) { + const serverIndex = participatingServerDKGIndexes[i]; + serverCoeffs[serverIndex] = getDKLSCoeff(false, participatingServerDKGIndexes, tssShareIndex, serverIndex).toString("hex"); + } + client.precompute({ + signatures, + server_coeffs: serverCoeffs, + nonce: scalarBNToBufferSEC1(this.getAccountNonce()).toString("base64") + }); + await client.ready().catch(err => { + client.cleanup({ + signatures, + server_coeffs: serverCoeffs + }); + throw err; + }); + return { + client, + serverCoeffs + }; + } + async sign(data, hashed = false, secp256k1Precompute) { + this.wasmLib = await this.loadTssWasm(); + if (this.keyType === KeyType.secp256k1) { + const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); + return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); + } else if (this.keyType === KeyType.ed25519) { + return this.sign_ed25519(data, hashed); + } + throw CoreKitError.default(`sign not supported for key type ${this.keyType}`); + } + + // mutation function + async deleteFactor(factorPub, factorKey) { + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when deleting a factor."); + } + if (!this.tKey.metadata.factorPubs) { + throw CoreKitError.factorPubsMissing(); + } + await this.atomicSync(async () => { + const remainingFactors = this.tKey.metadata.factorPubs[this.tKey.tssTag].length || 0; + if (remainingFactors <= 1) { + throw CoreKitError.cannotDeleteLastFactor("Cannot delete last factor"); + } + const fpp = factorPub; + const stateFpp = getPubKeyPoint(this.state.factorKey, factorKeyCurve); + if (fpp.equals(stateFpp)) { + throw CoreKitError.factorInUseCannotBeDeleted("Cannot delete current active factor"); + } + await this.tKey.deleteFactorPub({ + factorKey: this.state.factorKey, + deleteFactorPub: factorPub, + authSignatures: this.signatures + }); + const factorPubHex = fpp.toSEC1(factorKeyCurve, true).toString("hex"); + const allDesc = this.tKey.metadata.getShareDescription(); + const keyDesc = allDesc[factorPubHex]; + if (keyDesc) { + await Promise.all(keyDesc.map(async desc => { + var _this$tKey; + return (_this$tKey = this.tKey) === null || _this$tKey === void 0 ? void 0 : _this$tKey.metadata.deleteShareDescription(factorPubHex, desc); + })); + } + + // delete factorKey share metadata if factorkey is provided + if (factorKey) { + const factorKeyBN = new BN(factorKey, "hex"); + const derivedFactorPub = getPubKeyPoint(factorKeyBN, factorKeyCurve); + // only delete if factorPub matches + if (derivedFactorPub.equals(fpp)) { + await this.deleteMetadataShareBackup(factorKeyBN); + } + } + }); + } + async logout() { + var _this$sessionManager2; + if ((_this$sessionManager2 = this.sessionManager) !== null && _this$sessionManager2 !== void 0 && _this$sessionManager2.sessionId) { + await this.sessionManager.invalidateSession(); + } + // to accommodate async storage + await this.currentStorage.set("sessionId", ""); + this.resetState(); + await this.init({ + handleRedirectResult: false, + rehydrate: false + }); + } + getUserInfo() { + if (!this.state.userInfo) { + throw CoreKitError.userNotLoggedIn(); + } + return this.state.userInfo; + } + getKeyDetails() { + this.checkReady(); + const tkeyDetails = this.tKey.getKeyDetails(); + const tssPubKey = this.state.tssPubKey ? Point.fromSEC1(this.tkey.tssCurve, this.state.tssPubKey.toString("hex")) : undefined; + const factors = this.tKey.metadata.factorPubs ? this.tKey.metadata.factorPubs[this.tKey.tssTag] : []; + const keyDetails = { + // use tkey's for now + requiredFactors: tkeyDetails.requiredShares, + threshold: tkeyDetails.threshold, + totalFactors: factors.length + 1, + shareDescriptions: this.tKey.getMetadata().getShareDescription(), + metadataPubKey: tkeyDetails.pubKey, + tssPubKey, + keyType: this.keyType + }; + return keyDetails; + } + async commitChanges() { + this.checkReady(); + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when committing changes."); + } + try { + // in case for manualsync = true, _syncShareMetadata will not call syncLocalMetadataTransitions() + // it will not create a new LocalMetadataTransition + // manual call syncLocalMetadataTransitions() required to sync local transitions to storage + await this.tKey._syncShareMetadata(); + await this.tKey.syncLocalMetadataTransitions(); + } catch (error) { + log.error("sync metadata error", error); + throw error; + } + } + async setManualSync(manualSync) { + this.checkReady(); + // sync local transistion to storage before allow changes + await this.tKey.syncLocalMetadataTransitions(); + this.options.manualSync = manualSync; + this.tKey.manualSync = manualSync; + } + + // device factor + async setDeviceFactor(factorKey, replace = false) { + if (!replace) { + const existingFactor = await this.getDeviceFactor(); + if (existingFactor) { + throw CoreKitError.default("Device factor already exists"); + } + } + const metadata = this.tKey.getMetadata(); + const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); + await this.currentStorage.set(tkeyPubX, JSON.stringify({ + factorKey: factorKey.toString("hex").padStart(64, "0") + })); + } + async getDeviceFactor() { + const metadata = this.tKey.getMetadata(); + const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); + const tKeyLocalStoreString = await this.currentStorage.get(tkeyPubX); + const tKeyLocalStore = JSON.parse(tKeyLocalStoreString || "{}"); + return tKeyLocalStore.factorKey; + } + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Exports the private key scalar for the current account index. + * + * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. + */ + async _UNSAFE_exportTssKey() { + if (this.keyType !== KeyType.secp256k1) { + throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is secp256k1"); + } + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss key."); + } + if (!this.state.signatures) { + throw CoreKitError.signaturesNotPresent("Signatures not present in state when exporting tss key."); + } + const exportTssKey0 = await this.tKey._UNSAFE_exportTssKey({ + factorKey: this.state.factorKey, + authSignatures: this.state.signatures + }); + const accountNonce = this.getAccountNonce(); + const tssKey = exportTssKey0.add(accountNonce).umod(this.tKey.tssCurve.n); + return tssKey.toString("hex", FIELD_ELEMENT_HEX_LEN); + } + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Attempts to export the ed25519 private key seed. Only works if import key + * flow has been used. + */ + async _UNSAFE_exportTssEd25519Seed() { + if (this.keyType !== KeyType.ed25519) { + throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is ed25519"); + } + if (!this.state.factorKey) throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); + if (!this.state.signatures) throw CoreKitError.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed."); + try { + const exportEd25519Seed = await this.tKey._UNSAFE_exportTssEd25519Seed({ + factorKey: this.state.factorKey, + authSignatures: this.state.signatures + }); + return exportEd25519Seed; + } catch (error) { + throw CoreKitError.default(`Error exporting ed25519 seed: ${error}`); + } + } + updateState(newState) { + this.state = _objectSpread(_objectSpread({}, this.state), newState); + } + async atomicSync(f) { + this.atomicCallStackCounter += 1; + this.tkey.manualSync = true; + try { + const r = await f(); + if (this.atomicCallStackCounter === 1) { + if (!this.options.manualSync) { + await this.commitChanges(); + } + } + return r; + } catch (error) { + throw error; + } finally { + this.atomicCallStackCounter -= 1; + if (this.atomicCallStackCounter === 0) { + this.tkey.manualSync = this.options.manualSync; + } + } + } + async importTssKey(tssKey, factorPub, newTSSIndex = TssShareType.DEVICE) { + if (!this.state.signatures) { + throw CoreKitError.signaturesNotPresent("Signatures not present in state when importing tss key."); + } + await this.tKey.importTssKey({ + tag: this.tKey.tssTag, + importKey: Buffer.from(tssKey, "hex"), + factorPub, + newTSSIndex + }, { + authSignatures: this.state.signatures + }); + } + getTssNonce() { + if (!this.tKey.metadata.tssNonces || this.tKey.metadata.tssNonces[this.tKey.tssTag] === undefined) { + throw CoreKitError.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`); + } + const tssNonce = this.tKey.metadata.tssNonces[this.tKey.tssTag]; + return tssNonce; + } + async setupTkey(providedImportTssKey) { + if (!this.state.postBoxKey) { + throw CoreKitError.userNotLoggedIn(); + } + const existingUser = await this.isMetadataPresent(this.state.postBoxKey); + let importTssKey = providedImportTssKey; + if (!existingUser) { + if (!importTssKey && this.useClientGeneratedTSSKey) { + if (this.keyType === KeyType.ed25519) { + const k = generateEd25519Seed(); + importTssKey = k.toString("hex"); + } else if (this.keyType === KeyType.secp256k1) { + const k = secp256k1.genKeyPair().getPrivate(); + importTssKey = scalarBNToBufferSEC1(k).toString("hex"); + } else { + throw CoreKitError.default("Unsupported key type"); + } + } + await this.handleNewUser(importTssKey); + } else { + if (importTssKey) { + throw CoreKitError.tssKeyImportNotAllowed(); + } + await this.handleExistingUser(); + } + } + + // mutation function + async handleNewUser(importTssKey) { + await this.atomicSync(async () => { + // Generate or use hash factor and initialize tkey with it. + let factorKey; + if (this.options.disableHashedFactorKey) { + factorKey = generateFactorKey().private; + // delete previous hashed factorKey if present + const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + await this.deleteMetadataShareBackup(hashedFactorKey); + } else { + factorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + } + const deviceTSSIndex = TssShareType.DEVICE; + const factorPub = getPubKeyPoint(factorKey, factorKeyCurve); + if (!importTssKey) { + const ec$1 = new ec(this.keyType); + const deviceTSSShare = ec$1.genKeyPair().getPrivate(); + await this.tKey.initialize({ + factorPub, + deviceTSSShare, + deviceTSSIndex + }); + } else { + await this.tKey.initialize({ + skipTssInit: true + }); + await this.tKey.reconstructKey(); + await this.importTssKey(importTssKey, factorPub, deviceTSSIndex); + } + + // Finalize initialization. + await this.tKey.reconstructKey(); + await this.finalizeTkey(factorKey); + + // Store factor description. + await this.backupMetadataShare(factorKey); + if (this.options.disableHashedFactorKey) { + await this.addFactorDescription({ + factorKey, + shareDescription: FactorKeyTypeShareDescription.Other, + updateMetadata: false + }); + } else { + await this.addFactorDescription({ + factorKey, + shareDescription: FactorKeyTypeShareDescription.HashedShare, + updateMetadata: false + }); + } + }); + } + async handleExistingUser() { + await this.tKey.initialize({ + neverInitializeNewKey: true + }); + if (this.options.disableHashedFactorKey) { + return; + } + const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); + this.state.factorKey = hashedFactorKey; + if (await this.checkIfFactorKeyValid(hashedFactorKey)) { + // Initialize tkey with existing hashed share if available. + const factorKeyMetadata = await this.getFactorKeyMetadata(hashedFactorKey); + try { + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + await this.tKey.reconstructKey(); + await this.finalizeTkey(hashedFactorKey); + } catch (err) { + log.error("error initializing tkey with hashed share", err); + } + } else { + var _this$tKey2; + const factorKeyMetadata = await ((_this$tKey2 = this.tKey) === null || _this$tKey2 === void 0 ? void 0 : _this$tKey2.readMetadata(hashedFactorKey)); + if (factorKeyMetadata.message === "SHARE_DELETED") { + // throw CoreKitError.hashedFactorDeleted(); + log.warn("hashed factor deleted"); + } + } + } + async finalizeTkey(factorKey) { + if (this.state.accountIndex !== 0) { + log.warn("AccountIndex should be 0"); + this.state.accountIndex = 0; + } + // Read tss meta data. + const { + tssIndex: tssShareIndex + } = await this.tKey.getTSSShare(factorKey); + const tssPubKey = this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve, false); + this.updateState({ + tssShareIndex, + tssPubKey, + factorKey + }); + await this.createSession(); + } + checkReady() { + if (!this.ready) { + throw CoreKitError.mpcCoreKitNotInitialized(); + } + } + async rehydrateSession(result) { + try { + this.checkReady(); + const factorKey = new BN(result.factorKey, "hex"); + if (!factorKey) { + throw CoreKitError.providedFactorKeyInvalid(); + } + const postBoxKey = result.postBoxKey || result.oAuthKey; + if (!postBoxKey) { + throw CoreKitError.default("postBoxKey or oAuthKey not present in session data"); + } + this.torusSp.postboxKey = new BN(postBoxKey, "hex"); + this.torusSp.verifierName = result.userInfo.aggregateVerifier || result.userInfo.verifier; + this.torusSp.verifierId = result.userInfo.verifierId; + const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); + await this.tKey.initialize({ + neverInitializeNewKey: true + }); + await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); + await this.tKey.reconstructKey(); + this.updateState({ + factorKey: new BN(result.factorKey, "hex"), + postBoxKey, + postboxKeyNodeIndexes: result.postboxKeyNodeIndexes || [], + tssShareIndex: result.tssShareIndex, + tssPubKey: this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve, false), + signatures: result.signatures, + userInfo: result.userInfo + }); + } catch (err) { + log.warn("failed to authorize session", err); + } + } + async createSession() { + if (!this.options.disableSessionManager && !this.sessionManager) { + throw new Error("sessionManager is not available"); + } + try { + const sessionId = SessionManager.generateRandomSessionKey(); + this.sessionManager.sessionId = sessionId; + const { + postBoxKey, + factorKey, + userInfo, + tssShareIndex, + tssPubKey, + postboxKeyNodeIndexes + } = this.state; + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when creating session."); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey, { + accountIndex: this.state.accountIndex + }); + if (!postBoxKey || !factorKey || !tssShare || !tssPubKey || !userInfo) { + throw CoreKitError.userNotLoggedIn(); + } + const payload = { + postBoxKey, + postboxKeyNodeIndexes: postboxKeyNodeIndexes || [], + factorKey: factorKey === null || factorKey === void 0 ? void 0 : factorKey.toString("hex"), + tssShareIndex: tssShareIndex, + tssPubKey: Buffer.from(tssPubKey).toString("hex"), + signatures: this.signatures, + userInfo + }; + await this.sessionManager.createSession(payload); + // to accommodate async storage + await this.currentStorage.set("sessionId", sessionId); + } catch (err) { + log.error("error creating session", err); + } + } + async isMetadataPresent(privateKey) { + var _this$tKey3; + const privateKeyBN = new BN(privateKey, "hex"); + const metadata = await ((_this$tKey3 = this.tKey) === null || _this$tKey3 === void 0 ? void 0 : _this$tKey3.readMetadata(privateKeyBN)); + if (metadata && metadata.message !== "KEY_NOT_FOUND") { + return true; + } + return false; + } + async checkIfFactorKeyValid(factorKey) { + var _this$tKey4; + this.checkReady(); + const factorKeyMetadata = await ((_this$tKey4 = this.tKey) === null || _this$tKey4 === void 0 ? void 0 : _this$tKey4.readMetadata(factorKey)); + if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND" || factorKeyMetadata.message === "SHARE_DELETED") { + return false; + } + return true; + } + async getFactorKeyMetadata(factorKey) { + var _this$tKey5; + this.checkReady(); + const factorKeyMetadata = await ((_this$tKey5 = this.tKey) === null || _this$tKey5 === void 0 ? void 0 : _this$tKey5.readMetadata(factorKey)); + if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND") { + throw CoreKitError.noMetadataFound(); + } + return ShareStore.fromJSON(factorKeyMetadata); + } + + /** + * Copies a share and makes it available under a new factor key. If no share + * exists at the specified share index, a new share is created. + * @param newFactorTSSIndex - The index of the share to copy. + * @param newFactorPub - The public key of the new share. + */ + async copyOrCreateShare(newFactorTSSIndex, newFactorPub) { + this.checkReady(); + if (!this.tKey.metadata.factorPubs || !Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag])) { + throw CoreKitError.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key."); + } + if (!this.tKey.metadata.factorEncs || typeof this.tKey.metadata.factorEncs[this.tKey.tssTag] !== "object") { + throw CoreKitError.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key."); + } + if (!this.state.factorKey) { + throw CoreKitError.factorKeyNotPresent("factorKey not present in state when copying or creating a share."); + } + if (VALID_SHARE_INDICES.indexOf(newFactorTSSIndex) === -1) { + throw CoreKitError.newShareIndexInvalid(`Invalid share type provided (${newFactorTSSIndex}). Valid share types are ${VALID_SHARE_INDICES}.`); + } + if (this.tKey.metadata.factorPubs[this.tKey.tssTag].length >= MAX_FACTORS) { + throw CoreKitError.maximumFactorsReached(`The maximum number of allowable factors (${MAX_FACTORS}) has been reached.`); + } + + // Generate new share. + await this.tkey.addFactorPub({ + existingFactorKey: this.state.factorKey, + authSignatures: this.signatures, + newFactorPub, + newTSSIndex: newFactorTSSIndex, + refreshShares: this.state.tssShareIndex !== newFactorTSSIndex // Refresh shares if we have a new factor key index. + }); + } + async getMetadataShare() { + try { + var _this$tKey6, _this$tKey7; + const polyId = (_this$tKey6 = this.tKey) === null || _this$tKey6 === void 0 ? void 0 : _this$tKey6.metadata.getLatestPublicPolynomial().getPolynomialID(); + const shares = (_this$tKey7 = this.tKey) === null || _this$tKey7 === void 0 ? void 0 : _this$tKey7.shares[polyId]; + let share = null; + for (const shareIndex in shares) { + if (shareIndex !== SOCIAL_TKEY_INDEX.toString()) { + share = shares[shareIndex]; + } + } + if (!share) { + throw CoreKitError.noMetadataShareFound(); + } + return share; + } catch (err) { + log.error("create device share error", err); + throw CoreKitError.default(err.message); + } + } + async deleteMetadataShareBackup(factorKey) { + var _this$tkey, _this$tkey2; + await this.tKey.addLocalMetadataTransitions({ + input: [{ + message: SHARE_DELETED, + dateAdded: Date.now() + }], + privKey: [factorKey] + }); + if (!((_this$tkey = this.tkey) !== null && _this$tkey !== void 0 && _this$tkey.manualSync)) await ((_this$tkey2 = this.tkey) === null || _this$tkey2 === void 0 ? void 0 : _this$tkey2.syncLocalMetadataTransitions()); + } + async backupMetadataShare(factorKey) { + var _this$tKey8, _this$tkey3, _this$tkey4; + const metadataShare = await this.getMetadataShare(); + + // Set metadata for factor key backup + await ((_this$tKey8 = this.tKey) === null || _this$tKey8 === void 0 ? void 0 : _this$tKey8.addLocalMetadataTransitions({ + input: [metadataShare], + privKey: [factorKey] + })); + if (!((_this$tkey3 = this.tkey) !== null && _this$tkey3 !== void 0 && _this$tkey3.manualSync)) await ((_this$tkey4 = this.tkey) === null || _this$tkey4 === void 0 ? void 0 : _this$tkey4.syncLocalMetadataTransitions()); + } + async addFactorDescription(args) { + var _this$tKey9; + const { + factorKey, + shareDescription, + updateMetadata + } = args; + let { + additionalMetadata + } = args; + if (!additionalMetadata) { + additionalMetadata = {}; + } + const { + tssIndex + } = await this.tKey.getTSSShare(factorKey); + const factorPoint = getPubKeyPoint(factorKey, factorKeyCurve); + const factorPub = factorPoint.toSEC1(factorKeyCurve, true).toString("hex"); + const params = _objectSpread(_objectSpread({ + module: shareDescription, + dateAdded: Date.now() + }, additionalMetadata), {}, { + tssShareIndex: tssIndex + }); + await ((_this$tKey9 = this.tKey) === null || _this$tKey9 === void 0 ? void 0 : _this$tKey9.addShareDescription(factorPub, JSON.stringify(params), updateMetadata)); + } + resetState() { + this.ready = false; + this.tkey = null; + this.torusSp = null; + this.storageLayer = null; + this.state = { + accountIndex: 0 + }; + } + _getPostBoxKey(result) { + return Torus.getPostboxKey(result); + } + _getSignatures(sessionData) { + // There is a check in torus.js which pushes undefined to session data in case + // that particular node call fails. + // and before returning we are not filtering out undefined vals in torus.js + // TODO: fix this in torus.js + return sessionData.filter(session => !!session).map(session => JSON.stringify({ + data: session.token, + sig: session.signature + })); + } + isNodejsOrRN(params) { + const mode = params; + return mode === "nodejs" || mode === "react-native"; + } + async featureRequest() { + const accessUrl = SIGNER_MAP[this.options.web3AuthNetwork]; + const accessRequest = { + network: this.options.web3AuthNetwork, + client_id: this.options.web3AuthClientId, + is_mpc_core_kit: "true", + enable_gating: "true", + session_time: this.options.sessionTime.toString() + }; + const url = new URL(`${accessUrl}/api/feature-access`); + url.search = new URLSearchParams(accessRequest).toString(); + const result = await fetch(url); + if (result.status !== 200) { + // reset state on no mpc access + this.resetState(); + const errMessage = await result.json(); + throw CoreKitError.default(errMessage.error); + } + return result.json(); + } + getAccountNonce() { + return this.tkey.computeAccountNonce(this.state.accountIndex); + } + async sign_ECDSA_secp256k1(data, hashed = false, precomputedTssClient) { + const executeSign = async (client, serverCoeffs, hashedData, signatures) => { + const { + r, + s, + recoveryParam + } = await client.sign(hashedData.toString("base64"), true, "", "keccak256", { + signatures + }); + // skip await cleanup + client.cleanup({ + signatures, + server_coeffs: serverCoeffs + }); + return { + v: recoveryParam, + r: scalarBNToBufferSEC1(r), + s: scalarBNToBufferSEC1(s) + }; + }; + if (!hashed) { + data = keccak256$1(data); + } + const isAlreadyPrecomputed = (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.client) && (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.serverCoeffs); + const { + client, + serverCoeffs + } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); + const { + signatures + } = this; + if (!signatures) { + throw CoreKitError.signaturesNotPresent(); + } + try { + return await executeSign(client, serverCoeffs, data, signatures); + } catch (error) { + if (!isAlreadyPrecomputed) { + throw error; + } + // Retry with new client if precomputed client failed, this is to handle the case when precomputed session might have expired + const { + client: newClient, + serverCoeffs: newServerCoeffs + } = await this.precompute_secp256k1(); + const result = await executeSign(newClient, newServerCoeffs, data, signatures); + return result; + } + } + async sign_ed25519(data, hashed = false) { + if (hashed) { + throw CoreKitError.default("hashed data not supported for ed25519"); + } + const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, "ed25519"); + if (!nodeDetails.torusNodeTSSEndpoints) { + throw CoreKitError.default("could not fetch tss node endpoints"); + } + + // Endpoints must end with backslash, but URLs returned by + // `fetch-node-details` don't have it. + const ED25519_ENDPOINTS = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ + index: nodeDetails.torusIndexes[i], + url: `${ep}/` + })); + + // Select endpoints and derive party indices. + const serverThreshold = Math.floor(ED25519_ENDPOINTS.length / 2) + 1; + const endpoints = sampleEndpoints(ED25519_ENDPOINTS, serverThreshold); + const serverXCoords = endpoints.map(x => x.index); + const clientXCoord = Math.max(...endpoints.map(ep => ep.index)) + 1; + + // Derive share coefficients for flat hierarchy. + const ec = new Ed25519Curve(); + const { + serverCoefficients, + clientCoefficient + } = deriveShareCoefficients(ec, serverXCoords, clientXCoord, this.state.tssShareIndex); + + // Get pub key. + const tssPubKey = await this.getPubKey(); + const tssPubKeyPoint = ec.keyFromPublic(tssPubKey).getPublic(); + + // Get client key share and adjust by coefficient. + if (this.state.accountIndex !== 0) { + throw CoreKitError.default("Account index not supported for ed25519"); + } + const { + tssShare + } = await this.tKey.getTSSShare(this.state.factorKey); + const clientShareAdjusted = tssShare.mul(clientCoefficient).umod(ec.n); + const clientShareAdjustedHex = ec.scalarToBuffer(clientShareAdjusted, Buffer).toString("hex"); + + // Generate session identifier. + const tssNonce = this.getTssNonce(); + const sessionNonce = generateSessionNonce(); + const session = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, sessionNonce); + + // Run signing protocol. + const serverURLs = endpoints.map(x => x.url); + const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); + const serverCoefficientsHex = serverCoefficients.map(c => ec.scalarToBuffer(c, Buffer).toString("hex")); + const signature = await sign(this.wasmLib, session, this.signatures, serverXCoords, serverURLs, clientXCoord, clientShareAdjustedHex, pubKeyHex, data, serverCoefficientsHex); + log.info(`signature: ${signature}`); + return Buffer.from(signature, "hex"); + } + async loadTssWasm() { + if (this.wasmLib) return this.wasmLib; + if (typeof this._tssLib.load === "function") { + // dont wait for wasm to be loaded, we can reload it during signing if not loaded + return this._tssLib.load(); + } else if (this._tssLib.lib) { + return this._tssLib.lib; + } + } +} + +export { AsyncStorage, COREKIT_STATUS, DELIMITERS, ERRORS, FIELD_ELEMENT_HEX_LEN, FactorKeyTypeShareDescription, MAX_FACTORS, MemoryStorage, SCALAR_LEN, SOCIAL_FACTOR_INDEX, SOCIAL_TKEY_INDEX, TssSecurityQuestion, TssSecurityQuestionStore, TssShareType, USER_PATH, VALID_SHARE_INDICES, WEB3AUTH_NETWORK, Web3AuthMPCCoreKit, deriveShareCoefficients, ed25519, fraction, generateEd25519Seed, generateFactorKey, generateSessionNonce, generateTSSEndpoints, getHashedPrivateKey, getSessionId, keyToMnemonic, lagrangeCoefficient, lagrangeCoefficients, log, makeEthereumSigner, mnemonicToKey, parseToken, randomBytes, sampleEndpoints, scalarBNToBufferSEC1, sigToRSV, storageAvailable }; diff --git a/package/dist/mpcCoreKit.umd.min.js b/package/dist/mpcCoreKit.umd.min.js new file mode 100644 index 00000000..883a91dd --- /dev/null +++ b/package/dist/mpcCoreKit.umd.min.js @@ -0,0 +1,2 @@ +/*! For license information please see mpcCoreKit.umd.min.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.MpcCoreKit=t():e.MpcCoreKit=t()}(self,(()=>(()=>{var e={9090:(e,t)=>{var r;function i(e,t){navigator.onLine||e("offline"),e("error",t)}function n(e,t,r){navigator.serviceWorker.register(e,r).then((function(e){t("registered",e),e.waiting?t("updated",e):e.onupdatefound=function(){t("updatefound",e);var r=e.installing;r.onstatechange=function(){"installed"===r.state&&(navigator.serviceWorker.controller?t("updated",e):t("cached",e))}}})).catch((function(e){return i(t,e)}))}"undefined"!=typeof window&&(r="undefined"==typeof document||"interactive"!==document.readyState&&"complete"!==document.readyState?"undefined"!=typeof Promise?new Promise((function(e){return window.addEventListener("load",e)})):{then:function(e){return window.addEventListener("load",e)}}:Promise.resolve()),t.k=function(e,t){void 0===t&&(t={});var s=t.registrationOptions;void 0===s&&(s={}),delete t.registrationOptions;var o=function(e){for(var r=[],i=arguments.length-1;i-- >0;)r[i]=arguments[i+1];t&&t[e]&&t[e].apply(t,r)};"serviceWorker"in navigator&&r.then((function(){Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/))?(function(e,t,r){fetch(e).then((function(i){404===i.status?(t("error",new Error("Service worker not found at "+e)),unregister()):-1===i.headers.get("content-type").indexOf("javascript")?(t("error",new Error("Expected "+e+" to have javascript content-type, but received "+i.headers.get("content-type"))),unregister()):n(e,t,r)})).catch((function(e){return i(t,e)}))}(e,o,s),navigator.serviceWorker.ready.then((function(e){o("ready",e)})).catch((function(e){return i(o,e)}))):(n(e,o,s),navigator.serviceWorker.ready.then((function(e){o("ready",e)})).catch((function(e){return i(o,e)})))}))}},1352:(e,t,r)=>{"use strict";r.d(t,{BroadcastChannel:()=>je});var i={};r.r(i),r.d(i,{averageResponseTime:()=>x,canBeUsed:()=>_,close:()=>v,create:()=>b,microSeconds:()=>m,onMessage:()=>S,postMessage:()=>w,type:()=>g});var n={};r.r(n),r.d(n,{TRANSACTION_SETTINGS:()=>T,averageResponseTime:()=>Y,canBeUsed:()=>V,cleanOldMessages:()=>U,close:()=>z,commitIndexedDBTransaction:()=>K,create:()=>j,createDatabase:()=>C,getAllMessages:()=>R,getIdb:()=>N,getMessagesHigherThan:()=>B,getOldMessages:()=>D,microSeconds:()=>E,onMessage:()=>H,postMessage:()=>J,removeMessagesById:()=>F,type:()=>O,writeMessage:()=>L});var s={};r.r(s),r.d(s,{addStorageEventListener:()=>te,averageResponseTime:()=>ae,canBeUsed:()=>oe,close:()=>ne,create:()=>ie,getLocalStorage:()=>Q,microSeconds:()=>W,onMessage:()=>se,postMessage:()=>ee,removeStorageEventListener:()=>re,storageKey:()=>Z,type:()=>G});var o={};r.r(o),r.d(o,{averageResponseTime:()=>Ee,canBeUsed:()=>Me,close:()=>ke,create:()=>xe,getSocketInstance:()=>we,microSeconds:()=>le,onMessage:()=>Pe,postMessage:()=>ve,removeStorageEventListener:()=>_e,setupSocketConnection:()=>Se,storageKey:()=>be,type:()=>ye});var a={};r.r(a),r.d(a,{SIMULATE_DELAY_TIME:()=>Oe,averageResponseTime:()=>Be,canBeUsed:()=>Re,close:()=>Ke,create:()=>Ne,microSeconds:()=>Ie,onMessage:()=>Le,postMessage:()=>Ce,type:()=>Ae});var c=r(3065),h=r.n(c);Promise.resolve(!1),Promise.resolve(!0);const d=Promise.resolve();function u(e,t){return e||(e=0),new Promise((r=>setTimeout((()=>r(t)),e)))}function f(){return Math.random().toString(36).substring(2)}let l=0;function p(){let e=1e3*Date.now();return e<=l&&(e=l+1),l=e,e}const y=h().getLogger("broadcast-channel");y.setLevel("error");const m=p,g="native";function b(e){const t={time:p(),messagesCallback:null,bc:new BroadcastChannel(e),subFns:[]};return t.bc.onmessage=e=>{t.messagesCallback&&t.messagesCallback(e.data)},t}function v(e){e.bc.close(),e.subFns=[]}function w(e,t){try{return e.bc.postMessage(t,!1),d}catch(e){return Promise.reject(e)}}function S(e,t){e.messagesCallback=t}function _(){if("undefined"==typeof window)return!1;if("function"==typeof BroadcastChannel){if(BroadcastChannel._pubkey)throw new Error("BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill");return!0}return!1}function x(){return 150}class k{ttl;map=new Map;_to=!1;constructor(e){this.ttl=e}has(e){return this.map.has(e)}add(e){this.map.set(e,P()),this._to||(this._to=!0,setTimeout((()=>{this._to=!1,function(e){const t=P()-e.ttl,r=e.map[Symbol.iterator]();for(;;){const i=r.next().value;if(!i)return;const n=i[0];if(!(i[1]{e.target.result.createObjectStore(A,{keyPath:"id",autoIncrement:!0})},new Promise(((e,t)=>{i.onerror=e=>t(e),i.onsuccess=()=>{e(i.result)}}))}function L(e,t,r){const i={uuid:t,time:Date.now(),data:r},n=e.transaction([A],"readwrite",T);return new Promise(((e,t)=>{n.oncomplete=()=>e(),n.onerror=e=>t(e),n.objectStore(A).add(i),K(n)}))}function R(e){const t=e.transaction(A,"readonly",T),r=t.objectStore(A),i=[];return new Promise((e=>{r.openCursor().onsuccess=r=>{const n=r.target.result;n?(i.push(n.value),n.continue()):(K(t),e(i))}}))}function B(e,t){const r=e.transaction(A,"readonly",T),i=r.objectStore(A),n=[];let s=IDBKeyRange.bound(t+1,1/0);if(i.getAll){const e=i.getAll(s);return new Promise(((t,r)=>{e.onerror=e=>r(e),e.onsuccess=function(e){t(e.target.result)}}))}return new Promise(((e,o)=>{const a=function(){try{return s=IDBKeyRange.bound(t+1,1/0),i.openCursor(s)}catch(e){return i.openCursor()}}();a.onerror=e=>o(e),a.onsuccess=i=>{const s=i.target.result;s?s.value.id{const t=r.delete(e);return new Promise((e=>{t.onsuccess=()=>e()}))})))}function D(e,t){const r=Date.now()-t,i=e.transaction(A,"readonly",T),n=i.objectStore(A),s=[];return new Promise((e=>{n.openCursor().onsuccess=t=>{const n=t.target.result;if(n){const t=n.value;if(!(t.timeF(e,t.map((e=>e.id)))))}function j(e,t){return t=M(t),C(e).then((r=>{const i={closed:!1,lastCursorId:0,channelName:e,options:t,uuid:f(),eMIs:new k(2*t.idb.ttl),writeBlockPromise:d,messagesCallback:null,readQueuePromises:[],db:r,time:p()};return r.onclose=function(){i.closed=!0,t.idb.onclose&&t.idb.onclose()},q(i),i}))}function q(e){e.closed||$(e).then((()=>u(e.options.idb.fallbackInterval))).then((()=>q(e)))}function $(e){return e.closed?d:e.messagesCallback?B(e.db,e.lastCursorId).then((t=>{const r=t.filter((e=>!!e)).map((t=>(t.id>e.lastCursorId&&(e.lastCursorId=t.id),t))).filter((t=>function(e,t){return!(e.uuid===t.uuid||t.eMIs.has(e.id)||e.data.timee.time-t.time));return r.forEach((t=>{e.messagesCallback&&(e.eMIs.add(t.id),e.messagesCallback(t.data))})),d})):d}function z(e){e.closed=!0,e.db.close()}function J(e,t){return e.writeBlockPromise=e.writeBlockPromise.then((()=>L(e.db,e.uuid,t))).then((()=>{0===Math.floor(11*Math.random()+0)&&U(e.db,e.options.idb.ttl)})),e.writeBlockPromise}function H(e,t,r){e.messagesCallbackTime=r,e.messagesCallback=t,$(e)}function V(){return!!N()}function Y(e){return 2*e.idb.fallbackInterval}const W=p,X="pubkey.broadcastChannel-",G="localstorage";function Q(){let e;if("undefined"==typeof window)return null;try{e=window.localStorage,e=window["ie8-eventlistener/storage"]||window.localStorage}catch(e){}return e}function Z(e){return X+e}function ee(e,t){return new Promise((r=>{u().then((()=>{const i=Z(e.channelName),n={token:f(),time:Date.now(),data:t,uuid:e.uuid},s=JSON.stringify(n);Q().setItem(i,s);const o=document.createEvent("Event");o.initEvent("storage",!0,!0),o.key=i,o.newValue=s,window.dispatchEvent(o),r()}))}))}function te(e,t){const r=Z(e),i=e=>{e.key===r&&t(JSON.parse(e.newValue))};return window.addEventListener("storage",i),i}function re(e){window.removeEventListener("storage",e)}function ie(e,t){if(t=M(t),!oe())throw new Error("BroadcastChannel: localstorage cannot be used");const r=f(),i=new k(t.localstorage.removeTimeout),n={channelName:e,uuid:r,time:p(),eMIs:i};return n.listener=te(e,(e=>{n.messagesCallback&&e.uuid!==r&&e.token&&!i.has(e.token)&&(e.data.time&&e.data.time{u().then((async()=>{const n=be(e.channelName),s=(0,de.S)(fe.from(n,"utf8")),o=await(0,ue.yv)(s.toString("hex"),{token:f(),time:Date.now(),data:t,uuid:e.uuid}),a={sameOriginCheck:!0,sameIpCheck:!0,key:(0,he.qb)(s).toString("hex"),data:o,signature:(await(0,he._S)(s,(0,de.S)(fe.from(o,"utf8")))).toString("hex")};return e.timeout&&(a.timeout=e.timeout),fetch(e.serverUrl+"/channel/set",{method:"POST",body:JSON.stringify(a),headers:{"Content-Type":"application/json; charset=utf-8"}}).then(r).catch(i)}))}))}function we(e){if(me)return me;const t=(0,ce.io)(e,{transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:10});return t.on("connect_error",(e=>{t.io.opts.transports=["polling","websocket"],y.error("connect error",e)})),t.on("connect",(async()=>{const{engine:e}=t.io;y.debug("initially connected to",e.transport.name),e.once("upgrade",(()=>{y.debug("upgraded",e.transport.name)})),e.once("close",(e=>{y.debug("connection closed",e)}))})),t.on("error",(e=>{y.error("socket errored",e),t.disconnect()})),me=t,t}function Se(e,t,r){const i=we(e),n=be(t.channelName),s=(0,de.S)(fe.from(n,"utf8")),o=(0,he.qb)(s).toString("hex");i.connected?i.emit("check_auth_status",o,{sameOriginCheck:!0,sameIpCheck:!0}):i.once("connect",(()=>{y.debug("connected with socket"),i.emit("check_auth_status",o,{sameOriginCheck:!0,sameIpCheck:!0})}));const a=()=>{i.once("connect",(async()=>{ge.has(t.channelName)&&i.emit("check_auth_status",o,{sameOriginCheck:!0,sameIpCheck:!0})}))},c=()=>{i&&ge.has(t.channelName)?i.connected||"visible"!==document.visibilityState||a():document.removeEventListener("visibilitychange",c)};return i.on("disconnect",(()=>{y.debug("socket disconnected"),ge.has(t.channelName)&&(y.error("socket disconnected unexpectedly, reconnecting socket"),a())})),i.on(`${o}_success`,(async e=>{try{const t=await(0,ue.af)(s.toString("hex"),e);y.info(t),r(t)}catch(e){y.error(e)}})),"undefined"!=typeof document&&document.addEventListener("visibilitychange",c),i}function _e(){me&&me.disconnect()}function xe(e,t){t=M(t);const r={channelName:e,uuid:f(),eMIs:new k(t.server.removeTimeout),serverUrl:t.server.url,time:p()};return t.server.timeout&&(r.timeout=t.server.timeout),Se(t.server.url,r,(e=>{r.messagesCallback&&e.uuid!==r.uuid&&e.token&&!r.eMIs.has(e.token)&&(r.eMIs.add(e.token),r.messagesCallback(e.data))})),ge.add(e),r}function ke(e){ge.delete(e.channelName)}function Pe(e,t,r){e.messagesCallbackTime=r,e.messagesCallback=t}function Me(){return!0}function Ee(){return 500}const Ie=p,Ae="simulate",Te=new Set,Oe=5;function Ne(e){const t={time:p(),name:e,messagesCallback:null};return Te.add(t),t}function Ke(e){Te.delete(e)}function Ce(e,t){return new Promise((r=>setTimeout((()=>{Array.from(Te).forEach((r=>{r.name===e.name&&r!==e&&r.messagesCallback&&r.timet.type===e.type));if(r)return r;throw new Error("method-type "+e.type+" not found")}e.webWorkerSupport||(t=t.filter((e=>"idb"!==e.type)));const r=t.find((t=>t.canBeUsed(e)));if(r)return r;throw new Error(`No useable method found in ${JSON.stringify(Fe.map((e=>e.type)))}`)}(this.options),this._iL=!1,this._onML=null,this._addEL={message:[],internal:[]},this._uMP=new Set,this._befC=[],this._prepP=null,function(e){const t=e.method.create(e.name,e.options);var r;(r=t)&&"function"==typeof r.then?(e._prepP=t,t.then((t=>{e._state=t}))):e._state=t}(this)};function qe(e,t,r){const i={time:e.method.microSeconds(),type:t,data:r};return(e._prepP?e._prepP:d).then((()=>{const t=e.method.postMessage(e._state,i);return e._uMP.add(t),t.catch().then((()=>e._uMP.delete(t))),t}))}function $e(e){return e._addEL.message.length>0||e._addEL.internal.length>0}function ze(e,t,r){e._addEL[t].push(r),function(e){if(!e._iL&&$e(e)){const t=t=>{e._addEL[t.type].forEach((r=>{(t.time>=r.time||"server"===e.method.type)&&r.fn(t.data)}))},r=e.method.microSeconds();e._prepP?e._prepP.then((()=>{e._iL=!0,e.method.onMessage(e._state,t,r)})):(e._iL=!0,e.method.onMessage(e._state,t,r))}}(e)}function Je(e,t,r){e._addEL[t]=e._addEL[t].filter((e=>e!==r)),function(e){if(e._iL&&!$e(e)){e._iL=!1;const t=e.method.microSeconds();e.method.onMessage(e._state,null,t)}}(e)}je._pubkey=!0,je.prototype={postMessage(e){if(this.closed)throw new Error("BroadcastChannel.postMessage(): Cannot post message after channel has closed "+JSON.stringify(e));return qe(this,"message",e)},postInternal(e){return qe(this,"internal",e)},set onmessage(e){const t={time:this.method.microSeconds(),fn:e};Je(this,"message",this._onML),e&&"function"==typeof e?(this._onML=t,ze(this,"message",t)):this._onML=null},addEventListener(e,t){ze(this,e,{time:this.method.microSeconds(),fn:t})},removeEventListener(e,t){Je(this,e,this._addEL[e].find((e=>e.fn===t)))},close(){if(this.closed)return;De.delete(this),this.closed=!0;const e=this._prepP?this._prepP:d;return this._onML=null,this._addEL.message=[],e.then((()=>Promise.all(Array.from(this._uMP)))).then((()=>Promise.all(this._befC.map((e=>e()))))).then((()=>this.method.close(this._state)))},get type(){return this.method.type},get isClosed(){return this.closed}}},9024:(e,t,r)=>{"use strict";r.d(t,{F_:()=>b,Yc:()=>k,_S:()=>w,qb:()=>v,w:()=>x});var i=r(6729),n=r(8287).hp;const s=new i.ec("secp256k1"),o=globalThis.crypto||globalThis.msCrypto||{},a=o.subtle||o.webkitSubtle,c=n.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),h=n.alloc(32,0);function d(e,t){if(!e)throw new Error(t||"Assertion failed")}function u(e){return t=e,!(!n.isBuffer(t)||32!==t.length)&&e.compare(h)>0&&e.compare(c)<0;var t}function f(e){if(void 0===o.getRandomValues)return n.from(o.randomBytes(e));const t=new Uint8Array(e);return o.getRandomValues(t),n.from(t)}async function l(e){if(!o.createHash){const t=await a.digest("SHA-512",e);return new Uint8Array(t)}const t=o.createHash("sha512").update(e).digest();return new Uint8Array(t)}function p(e){return async function(t,r,i){if(a&&a[e]&&a.importKey){const s={name:"AES-CBC"},o=await a.importKey("raw",r,s,!1,[e]),c={name:"AES-CBC",iv:t},h=await a[e](c,o,i);return n.from(new Uint8Array(h))}if("encrypt"===e&&o.createCipheriv){const e=o.createCipheriv("aes-256-cbc",r,t),s=e.update(i),a=e.final();return n.concat([s,a])}if("decrypt"===e&&o.createDecipheriv){const e=o.createDecipheriv("aes-256-cbc",r,t),s=e.update(i),a=e.final();return n.concat([s,a])}throw new Error(`Unsupported operation: ${e}`)}}const y=p("encrypt"),m=p("decrypt");async function g(e,t){if(!o.createHmac){const r={name:"HMAC",hash:{name:"SHA-256"}},i=await a.importKey("raw",new Uint8Array(e),r,!1,["sign","verify"]),s=await a.sign("HMAC",i,t);return n.from(new Uint8Array(s))}const r=o.createHmac("sha256",n.from(e));return r.update(t),r.digest()}const b=function(){let e=f(32);for(;!u(e);)e=f(32);return e},v=function(e){return d(32===e.length,"Bad private key"),d(u(e),"Bad private key"),n.from(s.keyFromPrivate(e).getPublic("array"))},w=async function(e,t){return d(32===e.length,"Bad private key"),d(u(e),"Bad private key"),d(t.length>0,"Message should not be empty"),d(t.length<=32,"Message is too long"),n.from(s.sign(t,e,{canonical:!0}).toDER())},S=async function(e,t){d(n.isBuffer(e),"Bad private key"),d(n.isBuffer(t),"Bad public key"),d(32===e.length,"Bad private key"),d(u(e),"Bad private key"),d(65===t.length||33===t.length,"Bad public key"),65===t.length&&d(4===t[0],"Bad public key"),33===t.length&&d(2===t[0]||3===t[0],"Bad public key");const r=s.keyFromPrivate(e),i=s.keyFromPublic(t),o=r.derive(i.getPublic());return n.from(o.toArray())},_=async function(e,t){d(n.isBuffer(e),"Bad private key"),d(n.isBuffer(t),"Bad public key"),d(32===e.length,"Bad private key"),d(u(e),"Bad private key"),d(65===t.length||33===t.length,"Bad public key"),65===t.length&&d(4===t[0],"Bad public key"),33===t.length&&d(2===t[0]||3===t[0],"Bad public key");const r=s.keyFromPrivate(e),i=s.keyFromPublic(t),o=r.derive(i.getPublic());return n.from(o.toString(16,64),"hex")},x=async function(e,t,r){let i=(r=r||{}).ephemPrivateKey||f(32);for(;!u(i);)i=r.ephemPrivateKey||f(32);const s=v(i),o=await S(i,e),a=await l(o),c=r.iv||f(16),h=a.slice(0,32),d=a.slice(32),p=await y(c,n.from(h),t),m=n.concat([c,s,p]);return{iv:c,ephemPublicKey:s,ciphertext:p,mac:await g(n.from(d),m)}},k=async function(e,t,r){const i=null!=r&&r,s=i?_:S,o=await s(e,t.ephemPublicKey),a=await l(o),c=a.slice(0,32),h=a.slice(32),d=n.concat([t.iv,t.ephemPublicKey,t.ciphertext]),u=await async function(e,t,r){return function(e,t){if(e.length!==t.length)return!1;let r=0;for(let i=0;i{"use strict";r.d(t,{S:()=>o,ec:()=>a});var i=r(6729),n=r(9463),s=r(8287).hp;function o(e){return s.from((0,n.So)(e))}const a=new i.ec("secp256k1")},8303:(e,t,r)=>{"use strict";r.d(t,{af:()=>a,yv:()=>o});var i=r(9024),n=r(3077),s=r(8287).hp;async function o(e,t){const r=JSON.stringify(t),n=s.from(r,"utf-8"),o=(a=await(0,i.w)((0,i.qb)(s.from(e,"hex")),n),{iv:s.from(a.iv).toString("hex"),ephemPublicKey:s.from(a.ephemPublicKey).toString("hex"),ciphertext:s.from(a.ciphertext).toString("hex"),mac:s.from(a.mac).toString("hex")});var a;return JSON.stringify(o)}async function a(e,t){const r=(c=JSON.parse(t),{iv:s.from(c.iv,"hex"),ephemPublicKey:s.from(c.ephemPublicKey,"hex"),ciphertext:s.from(c.ciphertext,"hex"),mac:s.from(c.mac,"hex")}),o=n.ec.keyFromPrivate(e),a=(await(0,i.Yc)(s.from(o.getPrivate().toString("hex",64),"hex"),r)).toString("utf-8");var c;return JSON.parse(a)}},6674:(e,t,r)=>{(()=>{"use strict";var t={n:e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},d:(e,r)=>{for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},i={};t.r(i),t.d(i,{AwaitableMap:()=>o,MapQueue:()=>a,deriveShareCoefficients:()=>l,fraction:()=>d,lagrangeCoefficient:()=>u,lagrangeCoefficients:()=>f});const n=r(3693);var s=t.n(n);class o{constructor(){s()(this,"map",new Map),s()(this,"queue",new Map)}get size(){return this.map.size}getSync(e){return this.map.get(e)}async get(e,t=0){return this.map.get(e)||new Promise((r=>{const i={resolve:r,timeout:setTimeout((()=>{const t=this.queue.get(e);if(t){const e=t.indexOf(i);e>=0&&t.splice(e,1)}r(void 0)}),t)};let n=this.queue.get(e);n||(n=[],this.queue.set(e,n)),n.push(i)}))}set(e,t){this.map.set(e,t);const r=this.queue.get(e);if(r){for(const e of r)clearTimeout(e.timeout),e.resolve(t);this.queue.delete(e)}}delete(e){this.map.delete(e),this.queue.delete(e)}forEach(e){this.map.forEach(e)}clear(){this.map.clear(),this.queue.clear()}}class a{constructor(){s()(this,"buffer",new Map),s()(this,"queue",new Map)}async pop(e,t=0){const r=this.buffer.get(e);return r&&r.length>0?r.splice(0,1)[0]:new Promise((r=>{const i={resolve:r,timeout:setTimeout((()=>{const t=this.queue.get(e);if(t){const e=t.indexOf(i);e>=0&&t.splice(e,1)}r(void 0)}),t)};let n=this.queue.get(e);n||(n=[],this.queue.set(e,n)),n.push(i)}))}push(e,t){const r=this.queue.get(e);if(r&&r.length>0){const e=r.splice(0,1)[0];return clearTimeout(e.timeout),void e.resolve(t)}let i=this.buffer.get(e);i||(i=[],this.buffer.set(e,i)),i.push(t)}delete(e){this.buffer.delete(e),this.queue.delete(e)}forEach(e){this.buffer.forEach(((t,r)=>{t.forEach((t=>{e(t,r)}))}))}clear(){this.buffer.clear(),this.queue.clear()}}const c=r(9404);var h=t.n(c);function d(e,t,r){return e.mul(t.invm(r)).umod(r)}function u(e,t,r,i){return e.filter(((e,r)=>r!==t)).reduce(((n,s)=>{const o=d(r.sub(s),e[t].sub(s),i);return n.mul(o).umod(i)}),new(h())(1))}function f(e,t,r){const i=e.map((e=>new(h())(e))),n=new(h())(t);return i.map(((e,t)=>u(i,t,n,r)))}function l(e,t,r,i=1,n=2){const s=f([i,n],0,r),o=f(e,0,r);if(e.includes(t))throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${e} ${t}`);const a=f([t,...e],0,r);return{serverCoefficients:o.map(((e,t)=>d(s[0].mul(e),a[t+1],r))),clientCoefficient:d(s[1],a[0],r)}}e.exports=i})()},7526:(e,t)=>{"use strict";t.byteLength=function(e){var t=a(e),r=t[0],i=t[1];return 3*(r+i)/4-i},t.toByteArray=function(e){var t,r,s=a(e),o=s[0],c=s[1],h=new n(function(e,t,r){return 3*(t+r)/4-r}(0,o,c)),d=0,u=c>0?o-4:o;for(r=0;r>16&255,h[d++]=t>>8&255,h[d++]=255&t;return 2===c&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,h[d++]=255&t),1===c&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,h[d++]=t>>8&255,h[d++]=255&t),h},t.fromByteArray=function(e){for(var t,i=e.length,n=i%3,s=[],o=16383,a=0,h=i-n;ah?h:a+o));return 1===n?(t=e[i-1],s.push(r[t>>2]+r[t<<4&63]+"==")):2===n&&(t=(e[i-2]<<8)+e[i-1],s.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),s.join("")};for(var r=[],i=[],n="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)r[o]=s[o],i[s.charCodeAt(o)]=o;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,i){for(var n,s,o=[],a=t;a>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},2788:(e,t,r)=>{"use strict";var i=r(8287).hp,n=r(2931);function s(e,t){return void 0===t&&(t="utf8"),i.isBuffer(e)?a(e.toString("base64")):a(i.from(e,t).toString("base64"))}function o(e){return e=e.toString(),n.default(e).replace(/\-/g,"+").replace(/_/g,"/")}function a(e){return e.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}var c=s;c.encode=s,c.decode=function(e,t){return void 0===t&&(t="utf8"),i.from(o(e),"base64").toString(t)},c.toBase64=o,c.fromBase64=a,c.toBuffer=function(e){return i.from(o(e),"base64")},t.default=c},2931:(e,t,r)=>{"use strict";var i=r(8287).hp;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.length,r=t%4;if(!r)return e;var n=t,s=4-r,o=t+s,a=i.alloc(o);for(a.write(e);s--;)a.write("=",n++);return a.toString()}},4711:(e,t,r)=>{e.exports=r(2788).default,e.exports.default=e.exports},9404:function(e,t,r){!function(e,t){"use strict";function i(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function s(e,t,r){if(s.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=s:t.BN=s,s.BN=s,s.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(7790).Buffer}catch(e){}function a(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void i(!1,"Invalid character in "+e)}function c(e,t,r){var i=a(e,r);return r-1>=t&&(i|=a(e,r-1)<<4),i}function h(e,t,r,n){for(var s=0,o=0,a=Math.min(e.length,r),c=t;c=49?h-49+10:h>=17?h-17+10:h,i(h>=0&&o0?e:t},s.min=function(e,t){return e.cmp(t)<0?e:t},s.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),i(t===(0|t)&&t>=2&&t<=36);var n=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n=0;n-=3)o=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[s]|=o<>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===r)for(n=0,s=0;n>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},s.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var i=0;i=t;i-=2)n=c(e,t,i)<=18?(s-=18,o+=1,this.words[o]|=n>>>26):s+=8;else for(i=(e.length-t)%2==0?t+1:t;i=18?(s-=18,o+=1,this.words[o]|=n>>>26):s+=8;this._strip()},s.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=t)i++;i--,n=n/t|0;for(var s=e.length-r,o=s%i,a=Math.min(s,s-o)+r,c=0,d=r;d1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{s.prototype[Symbol.for("nodejs.util.inspect.custom")]=u}catch(e){s.prototype.inspect=u}else s.prototype.inspect=u;function u(){return(this.red?""}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function y(e,t,r){r.negative=t.negative^e.negative;var i=e.length+t.length|0;r.length=i,i=i-1|0;var n=0|e.words[0],s=0|t.words[0],o=n*s,a=67108863&o,c=o/67108864|0;r.words[0]=a;for(var h=1;h>>26,u=67108863&c,f=Math.min(h,t.length-1),l=Math.max(0,h-e.length+1);l<=f;l++){var p=h-l|0;d+=(o=(n=0|e.words[p])*(s=0|t.words[l])+u)/67108864|0,u=67108863&o}r.words[h]=0|u,c=0|d}return 0!==c?r.words[h]=0|c:r.length--,r._strip()}s.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var n=0,s=0,o=0;o>>24-n&16777215,(n+=2)>=26&&(n-=26,o--),r=0!==s||o!==this.length-1?f[6-c.length]+c+r:c+r}for(0!==s&&(r=s.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var h=l[e],d=p[e];r="";var u=this.clone();for(u.negative=0;!u.isZero();){var y=u.modrn(d).toString(e);r=(u=u.idivn(d)).isZero()?y+r:f[h-y.length]+y+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},s.prototype.toJSON=function(){return this.toString(16,2)},o&&(s.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),s.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},s.prototype.toArrayLike=function(e,t,r){this._strip();var n=this.byteLength(),s=r||Math.max(1,n);i(n<=s,"byte array longer than desired length"),i(s>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,n),o},s.prototype._toArrayLikeLE=function(e,t){for(var r=0,i=0,n=0,s=0;n>8&255),r>16&255),6===s?(r>24&255),i=0,s=0):(i=o>>>24,s+=2)}if(r=0&&(e[r--]=o>>8&255),r>=0&&(e[r--]=o>>16&255),6===s?(r>=0&&(e[r--]=o>>24&255),i=0,s=0):(i=o>>>24,s+=2)}if(r>=0)for(e[r--]=i;r>=0;)e[r--]=0},Math.clz32?s.prototype._countBits=function(e){return 32-Math.clz32(e)}:s.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},s.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},s.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},s.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},s.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},s.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},s.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var i=0;ie.length?this.clone().ixor(e):e.clone().ixor(this)},s.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},s.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this._strip()},s.prototype.notn=function(e){return this.clone().inotn(e)},s.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var r=e/26|0,n=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,i=e):(r=e,i=this);for(var n=0,s=0;s>>26;for(;0!==n&&s>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;se.length?this.clone().iadd(e):e.clone().iadd(this)},s.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,i,n=this.cmp(e);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=e):(r=e,i=this);for(var s=0,o=0;o>26,this.words[o]=67108863&t;for(;0!==s&&o>26,this.words[o]=67108863&t;if(0===s&&o>>13,l=0|o[1],p=8191&l,y=l>>>13,m=0|o[2],g=8191&m,b=m>>>13,v=0|o[3],w=8191&v,S=v>>>13,_=0|o[4],x=8191&_,k=_>>>13,P=0|o[5],M=8191&P,E=P>>>13,I=0|o[6],A=8191&I,T=I>>>13,O=0|o[7],N=8191&O,K=O>>>13,C=0|o[8],L=8191&C,R=C>>>13,B=0|o[9],F=8191&B,D=B>>>13,U=0|a[0],j=8191&U,q=U>>>13,$=0|a[1],z=8191&$,J=$>>>13,H=0|a[2],V=8191&H,Y=H>>>13,W=0|a[3],X=8191&W,G=W>>>13,Q=0|a[4],Z=8191&Q,ee=Q>>>13,te=0|a[5],re=8191&te,ie=te>>>13,ne=0|a[6],se=8191&ne,oe=ne>>>13,ae=0|a[7],ce=8191&ae,he=ae>>>13,de=0|a[8],ue=8191&de,fe=de>>>13,le=0|a[9],pe=8191&le,ye=le>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(h+(i=Math.imul(u,j))|0)+((8191&(n=(n=Math.imul(u,q))+Math.imul(f,j)|0))<<13)|0;h=((s=Math.imul(f,q))+(n>>>13)|0)+(me>>>26)|0,me&=67108863,i=Math.imul(p,j),n=(n=Math.imul(p,q))+Math.imul(y,j)|0,s=Math.imul(y,q);var ge=(h+(i=i+Math.imul(u,z)|0)|0)+((8191&(n=(n=n+Math.imul(u,J)|0)+Math.imul(f,z)|0))<<13)|0;h=((s=s+Math.imul(f,J)|0)+(n>>>13)|0)+(ge>>>26)|0,ge&=67108863,i=Math.imul(g,j),n=(n=Math.imul(g,q))+Math.imul(b,j)|0,s=Math.imul(b,q),i=i+Math.imul(p,z)|0,n=(n=n+Math.imul(p,J)|0)+Math.imul(y,z)|0,s=s+Math.imul(y,J)|0;var be=(h+(i=i+Math.imul(u,V)|0)|0)+((8191&(n=(n=n+Math.imul(u,Y)|0)+Math.imul(f,V)|0))<<13)|0;h=((s=s+Math.imul(f,Y)|0)+(n>>>13)|0)+(be>>>26)|0,be&=67108863,i=Math.imul(w,j),n=(n=Math.imul(w,q))+Math.imul(S,j)|0,s=Math.imul(S,q),i=i+Math.imul(g,z)|0,n=(n=n+Math.imul(g,J)|0)+Math.imul(b,z)|0,s=s+Math.imul(b,J)|0,i=i+Math.imul(p,V)|0,n=(n=n+Math.imul(p,Y)|0)+Math.imul(y,V)|0,s=s+Math.imul(y,Y)|0;var ve=(h+(i=i+Math.imul(u,X)|0)|0)+((8191&(n=(n=n+Math.imul(u,G)|0)+Math.imul(f,X)|0))<<13)|0;h=((s=s+Math.imul(f,G)|0)+(n>>>13)|0)+(ve>>>26)|0,ve&=67108863,i=Math.imul(x,j),n=(n=Math.imul(x,q))+Math.imul(k,j)|0,s=Math.imul(k,q),i=i+Math.imul(w,z)|0,n=(n=n+Math.imul(w,J)|0)+Math.imul(S,z)|0,s=s+Math.imul(S,J)|0,i=i+Math.imul(g,V)|0,n=(n=n+Math.imul(g,Y)|0)+Math.imul(b,V)|0,s=s+Math.imul(b,Y)|0,i=i+Math.imul(p,X)|0,n=(n=n+Math.imul(p,G)|0)+Math.imul(y,X)|0,s=s+Math.imul(y,G)|0;var we=(h+(i=i+Math.imul(u,Z)|0)|0)+((8191&(n=(n=n+Math.imul(u,ee)|0)+Math.imul(f,Z)|0))<<13)|0;h=((s=s+Math.imul(f,ee)|0)+(n>>>13)|0)+(we>>>26)|0,we&=67108863,i=Math.imul(M,j),n=(n=Math.imul(M,q))+Math.imul(E,j)|0,s=Math.imul(E,q),i=i+Math.imul(x,z)|0,n=(n=n+Math.imul(x,J)|0)+Math.imul(k,z)|0,s=s+Math.imul(k,J)|0,i=i+Math.imul(w,V)|0,n=(n=n+Math.imul(w,Y)|0)+Math.imul(S,V)|0,s=s+Math.imul(S,Y)|0,i=i+Math.imul(g,X)|0,n=(n=n+Math.imul(g,G)|0)+Math.imul(b,X)|0,s=s+Math.imul(b,G)|0,i=i+Math.imul(p,Z)|0,n=(n=n+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,s=s+Math.imul(y,ee)|0;var Se=(h+(i=i+Math.imul(u,re)|0)|0)+((8191&(n=(n=n+Math.imul(u,ie)|0)+Math.imul(f,re)|0))<<13)|0;h=((s=s+Math.imul(f,ie)|0)+(n>>>13)|0)+(Se>>>26)|0,Se&=67108863,i=Math.imul(A,j),n=(n=Math.imul(A,q))+Math.imul(T,j)|0,s=Math.imul(T,q),i=i+Math.imul(M,z)|0,n=(n=n+Math.imul(M,J)|0)+Math.imul(E,z)|0,s=s+Math.imul(E,J)|0,i=i+Math.imul(x,V)|0,n=(n=n+Math.imul(x,Y)|0)+Math.imul(k,V)|0,s=s+Math.imul(k,Y)|0,i=i+Math.imul(w,X)|0,n=(n=n+Math.imul(w,G)|0)+Math.imul(S,X)|0,s=s+Math.imul(S,G)|0,i=i+Math.imul(g,Z)|0,n=(n=n+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,s=s+Math.imul(b,ee)|0,i=i+Math.imul(p,re)|0,n=(n=n+Math.imul(p,ie)|0)+Math.imul(y,re)|0,s=s+Math.imul(y,ie)|0;var _e=(h+(i=i+Math.imul(u,se)|0)|0)+((8191&(n=(n=n+Math.imul(u,oe)|0)+Math.imul(f,se)|0))<<13)|0;h=((s=s+Math.imul(f,oe)|0)+(n>>>13)|0)+(_e>>>26)|0,_e&=67108863,i=Math.imul(N,j),n=(n=Math.imul(N,q))+Math.imul(K,j)|0,s=Math.imul(K,q),i=i+Math.imul(A,z)|0,n=(n=n+Math.imul(A,J)|0)+Math.imul(T,z)|0,s=s+Math.imul(T,J)|0,i=i+Math.imul(M,V)|0,n=(n=n+Math.imul(M,Y)|0)+Math.imul(E,V)|0,s=s+Math.imul(E,Y)|0,i=i+Math.imul(x,X)|0,n=(n=n+Math.imul(x,G)|0)+Math.imul(k,X)|0,s=s+Math.imul(k,G)|0,i=i+Math.imul(w,Z)|0,n=(n=n+Math.imul(w,ee)|0)+Math.imul(S,Z)|0,s=s+Math.imul(S,ee)|0,i=i+Math.imul(g,re)|0,n=(n=n+Math.imul(g,ie)|0)+Math.imul(b,re)|0,s=s+Math.imul(b,ie)|0,i=i+Math.imul(p,se)|0,n=(n=n+Math.imul(p,oe)|0)+Math.imul(y,se)|0,s=s+Math.imul(y,oe)|0;var xe=(h+(i=i+Math.imul(u,ce)|0)|0)+((8191&(n=(n=n+Math.imul(u,he)|0)+Math.imul(f,ce)|0))<<13)|0;h=((s=s+Math.imul(f,he)|0)+(n>>>13)|0)+(xe>>>26)|0,xe&=67108863,i=Math.imul(L,j),n=(n=Math.imul(L,q))+Math.imul(R,j)|0,s=Math.imul(R,q),i=i+Math.imul(N,z)|0,n=(n=n+Math.imul(N,J)|0)+Math.imul(K,z)|0,s=s+Math.imul(K,J)|0,i=i+Math.imul(A,V)|0,n=(n=n+Math.imul(A,Y)|0)+Math.imul(T,V)|0,s=s+Math.imul(T,Y)|0,i=i+Math.imul(M,X)|0,n=(n=n+Math.imul(M,G)|0)+Math.imul(E,X)|0,s=s+Math.imul(E,G)|0,i=i+Math.imul(x,Z)|0,n=(n=n+Math.imul(x,ee)|0)+Math.imul(k,Z)|0,s=s+Math.imul(k,ee)|0,i=i+Math.imul(w,re)|0,n=(n=n+Math.imul(w,ie)|0)+Math.imul(S,re)|0,s=s+Math.imul(S,ie)|0,i=i+Math.imul(g,se)|0,n=(n=n+Math.imul(g,oe)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,oe)|0,i=i+Math.imul(p,ce)|0,n=(n=n+Math.imul(p,he)|0)+Math.imul(y,ce)|0,s=s+Math.imul(y,he)|0;var ke=(h+(i=i+Math.imul(u,ue)|0)|0)+((8191&(n=(n=n+Math.imul(u,fe)|0)+Math.imul(f,ue)|0))<<13)|0;h=((s=s+Math.imul(f,fe)|0)+(n>>>13)|0)+(ke>>>26)|0,ke&=67108863,i=Math.imul(F,j),n=(n=Math.imul(F,q))+Math.imul(D,j)|0,s=Math.imul(D,q),i=i+Math.imul(L,z)|0,n=(n=n+Math.imul(L,J)|0)+Math.imul(R,z)|0,s=s+Math.imul(R,J)|0,i=i+Math.imul(N,V)|0,n=(n=n+Math.imul(N,Y)|0)+Math.imul(K,V)|0,s=s+Math.imul(K,Y)|0,i=i+Math.imul(A,X)|0,n=(n=n+Math.imul(A,G)|0)+Math.imul(T,X)|0,s=s+Math.imul(T,G)|0,i=i+Math.imul(M,Z)|0,n=(n=n+Math.imul(M,ee)|0)+Math.imul(E,Z)|0,s=s+Math.imul(E,ee)|0,i=i+Math.imul(x,re)|0,n=(n=n+Math.imul(x,ie)|0)+Math.imul(k,re)|0,s=s+Math.imul(k,ie)|0,i=i+Math.imul(w,se)|0,n=(n=n+Math.imul(w,oe)|0)+Math.imul(S,se)|0,s=s+Math.imul(S,oe)|0,i=i+Math.imul(g,ce)|0,n=(n=n+Math.imul(g,he)|0)+Math.imul(b,ce)|0,s=s+Math.imul(b,he)|0,i=i+Math.imul(p,ue)|0,n=(n=n+Math.imul(p,fe)|0)+Math.imul(y,ue)|0,s=s+Math.imul(y,fe)|0;var Pe=(h+(i=i+Math.imul(u,pe)|0)|0)+((8191&(n=(n=n+Math.imul(u,ye)|0)+Math.imul(f,pe)|0))<<13)|0;h=((s=s+Math.imul(f,ye)|0)+(n>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,i=Math.imul(F,z),n=(n=Math.imul(F,J))+Math.imul(D,z)|0,s=Math.imul(D,J),i=i+Math.imul(L,V)|0,n=(n=n+Math.imul(L,Y)|0)+Math.imul(R,V)|0,s=s+Math.imul(R,Y)|0,i=i+Math.imul(N,X)|0,n=(n=n+Math.imul(N,G)|0)+Math.imul(K,X)|0,s=s+Math.imul(K,G)|0,i=i+Math.imul(A,Z)|0,n=(n=n+Math.imul(A,ee)|0)+Math.imul(T,Z)|0,s=s+Math.imul(T,ee)|0,i=i+Math.imul(M,re)|0,n=(n=n+Math.imul(M,ie)|0)+Math.imul(E,re)|0,s=s+Math.imul(E,ie)|0,i=i+Math.imul(x,se)|0,n=(n=n+Math.imul(x,oe)|0)+Math.imul(k,se)|0,s=s+Math.imul(k,oe)|0,i=i+Math.imul(w,ce)|0,n=(n=n+Math.imul(w,he)|0)+Math.imul(S,ce)|0,s=s+Math.imul(S,he)|0,i=i+Math.imul(g,ue)|0,n=(n=n+Math.imul(g,fe)|0)+Math.imul(b,ue)|0,s=s+Math.imul(b,fe)|0;var Me=(h+(i=i+Math.imul(p,pe)|0)|0)+((8191&(n=(n=n+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;h=((s=s+Math.imul(y,ye)|0)+(n>>>13)|0)+(Me>>>26)|0,Me&=67108863,i=Math.imul(F,V),n=(n=Math.imul(F,Y))+Math.imul(D,V)|0,s=Math.imul(D,Y),i=i+Math.imul(L,X)|0,n=(n=n+Math.imul(L,G)|0)+Math.imul(R,X)|0,s=s+Math.imul(R,G)|0,i=i+Math.imul(N,Z)|0,n=(n=n+Math.imul(N,ee)|0)+Math.imul(K,Z)|0,s=s+Math.imul(K,ee)|0,i=i+Math.imul(A,re)|0,n=(n=n+Math.imul(A,ie)|0)+Math.imul(T,re)|0,s=s+Math.imul(T,ie)|0,i=i+Math.imul(M,se)|0,n=(n=n+Math.imul(M,oe)|0)+Math.imul(E,se)|0,s=s+Math.imul(E,oe)|0,i=i+Math.imul(x,ce)|0,n=(n=n+Math.imul(x,he)|0)+Math.imul(k,ce)|0,s=s+Math.imul(k,he)|0,i=i+Math.imul(w,ue)|0,n=(n=n+Math.imul(w,fe)|0)+Math.imul(S,ue)|0,s=s+Math.imul(S,fe)|0;var Ee=(h+(i=i+Math.imul(g,pe)|0)|0)+((8191&(n=(n=n+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;h=((s=s+Math.imul(b,ye)|0)+(n>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,i=Math.imul(F,X),n=(n=Math.imul(F,G))+Math.imul(D,X)|0,s=Math.imul(D,G),i=i+Math.imul(L,Z)|0,n=(n=n+Math.imul(L,ee)|0)+Math.imul(R,Z)|0,s=s+Math.imul(R,ee)|0,i=i+Math.imul(N,re)|0,n=(n=n+Math.imul(N,ie)|0)+Math.imul(K,re)|0,s=s+Math.imul(K,ie)|0,i=i+Math.imul(A,se)|0,n=(n=n+Math.imul(A,oe)|0)+Math.imul(T,se)|0,s=s+Math.imul(T,oe)|0,i=i+Math.imul(M,ce)|0,n=(n=n+Math.imul(M,he)|0)+Math.imul(E,ce)|0,s=s+Math.imul(E,he)|0,i=i+Math.imul(x,ue)|0,n=(n=n+Math.imul(x,fe)|0)+Math.imul(k,ue)|0,s=s+Math.imul(k,fe)|0;var Ie=(h+(i=i+Math.imul(w,pe)|0)|0)+((8191&(n=(n=n+Math.imul(w,ye)|0)+Math.imul(S,pe)|0))<<13)|0;h=((s=s+Math.imul(S,ye)|0)+(n>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,i=Math.imul(F,Z),n=(n=Math.imul(F,ee))+Math.imul(D,Z)|0,s=Math.imul(D,ee),i=i+Math.imul(L,re)|0,n=(n=n+Math.imul(L,ie)|0)+Math.imul(R,re)|0,s=s+Math.imul(R,ie)|0,i=i+Math.imul(N,se)|0,n=(n=n+Math.imul(N,oe)|0)+Math.imul(K,se)|0,s=s+Math.imul(K,oe)|0,i=i+Math.imul(A,ce)|0,n=(n=n+Math.imul(A,he)|0)+Math.imul(T,ce)|0,s=s+Math.imul(T,he)|0,i=i+Math.imul(M,ue)|0,n=(n=n+Math.imul(M,fe)|0)+Math.imul(E,ue)|0,s=s+Math.imul(E,fe)|0;var Ae=(h+(i=i+Math.imul(x,pe)|0)|0)+((8191&(n=(n=n+Math.imul(x,ye)|0)+Math.imul(k,pe)|0))<<13)|0;h=((s=s+Math.imul(k,ye)|0)+(n>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,i=Math.imul(F,re),n=(n=Math.imul(F,ie))+Math.imul(D,re)|0,s=Math.imul(D,ie),i=i+Math.imul(L,se)|0,n=(n=n+Math.imul(L,oe)|0)+Math.imul(R,se)|0,s=s+Math.imul(R,oe)|0,i=i+Math.imul(N,ce)|0,n=(n=n+Math.imul(N,he)|0)+Math.imul(K,ce)|0,s=s+Math.imul(K,he)|0,i=i+Math.imul(A,ue)|0,n=(n=n+Math.imul(A,fe)|0)+Math.imul(T,ue)|0,s=s+Math.imul(T,fe)|0;var Te=(h+(i=i+Math.imul(M,pe)|0)|0)+((8191&(n=(n=n+Math.imul(M,ye)|0)+Math.imul(E,pe)|0))<<13)|0;h=((s=s+Math.imul(E,ye)|0)+(n>>>13)|0)+(Te>>>26)|0,Te&=67108863,i=Math.imul(F,se),n=(n=Math.imul(F,oe))+Math.imul(D,se)|0,s=Math.imul(D,oe),i=i+Math.imul(L,ce)|0,n=(n=n+Math.imul(L,he)|0)+Math.imul(R,ce)|0,s=s+Math.imul(R,he)|0,i=i+Math.imul(N,ue)|0,n=(n=n+Math.imul(N,fe)|0)+Math.imul(K,ue)|0,s=s+Math.imul(K,fe)|0;var Oe=(h+(i=i+Math.imul(A,pe)|0)|0)+((8191&(n=(n=n+Math.imul(A,ye)|0)+Math.imul(T,pe)|0))<<13)|0;h=((s=s+Math.imul(T,ye)|0)+(n>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,i=Math.imul(F,ce),n=(n=Math.imul(F,he))+Math.imul(D,ce)|0,s=Math.imul(D,he),i=i+Math.imul(L,ue)|0,n=(n=n+Math.imul(L,fe)|0)+Math.imul(R,ue)|0,s=s+Math.imul(R,fe)|0;var Ne=(h+(i=i+Math.imul(N,pe)|0)|0)+((8191&(n=(n=n+Math.imul(N,ye)|0)+Math.imul(K,pe)|0))<<13)|0;h=((s=s+Math.imul(K,ye)|0)+(n>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,i=Math.imul(F,ue),n=(n=Math.imul(F,fe))+Math.imul(D,ue)|0,s=Math.imul(D,fe);var Ke=(h+(i=i+Math.imul(L,pe)|0)|0)+((8191&(n=(n=n+Math.imul(L,ye)|0)+Math.imul(R,pe)|0))<<13)|0;h=((s=s+Math.imul(R,ye)|0)+(n>>>13)|0)+(Ke>>>26)|0,Ke&=67108863;var Ce=(h+(i=Math.imul(F,pe))|0)+((8191&(n=(n=Math.imul(F,ye))+Math.imul(D,pe)|0))<<13)|0;return h=((s=Math.imul(D,ye))+(n>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=Se,c[6]=_e,c[7]=xe,c[8]=ke,c[9]=Pe,c[10]=Me,c[11]=Ee,c[12]=Ie,c[13]=Ae,c[14]=Te,c[15]=Oe,c[16]=Ne,c[17]=Ke,c[18]=Ce,0!==h&&(c[19]=h,r.length++),r};function g(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var i=0,n=0,s=0;s>>26)|0)>>>26,o&=67108863}r.words[s]=a,i=o,o=n}return 0!==i?r.words[s]=i:r.length--,r._strip()}function b(e,t,r){return g(e,t,r)}function v(e,t){this.x=e,this.y=t}Math.imul||(m=y),s.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?y(this,e,t):r<1024?g(this,e,t):b(this,e,t)},v.prototype.makeRBT=function(e){for(var t=new Array(e),r=s.prototype._countBits(e)-1,i=0;i>=1;return i},v.prototype.permute=function(e,t,r,i,n,s){for(var o=0;o>>=1)n++;return 1<>>=13,r[2*o+1]=8191&s,s>>>=13;for(o=2*t;o>=26,r+=s/67108864|0,r+=o>>>26,this.words[n]=67108863&o}return 0!==r&&(this.words[n]=r,this.length++),t?this.ineg():this},s.prototype.muln=function(e){return this.clone().imuln(e)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>n&1}return t}(e);if(0===t.length)return new s(1);for(var r=this,i=0;i=0);var t,r=e%26,n=(e-r)/26,s=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t=0),n=t?(t-t%26)/26:0;var s=e%26,o=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<o)for(this.length-=o,h=0;h=0&&(0!==d||h>=n);h--){var u=0|this.words[h];this.words[h]=d<<26-s|u>>>s,d=u&a}return c&&0!==d&&(c.words[c.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(e,t,r){return i(0===this.negative),this.iushrn(e,t,r)},s.prototype.shln=function(e){return this.clone().ishln(e)},s.prototype.ushln=function(e){return this.clone().iushln(e)},s.prototype.shrn=function(e){return this.clone().ishrn(e)},s.prototype.ushrn=function(e){return this.clone().iushrn(e)},s.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,n=1<=0);var t=e%26,r=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var n=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},s.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[n+r]=67108863&s}for(;n>26,this.words[n+r]=67108863&s;if(0===a)return this._strip();for(i(-1===a),a=0,n=0;n>26,this.words[n]=67108863&s;return this.negative=1,this._strip()},s.prototype._wordDiv=function(e,t){var r=(this.length,e.length),i=this.clone(),n=e,o=0|n.words[n.length-1];0!=(r=26-this._countBits(o))&&(n=n.ushln(r),i.iushln(r),o=0|n.words[n.length-1]);var a,c=i.length-n.length;if("mod"!==t){(a=new s(null)).length=c+1,a.words=new Array(a.length);for(var h=0;h=0;u--){var f=67108864*(0|i.words[n.length+u])+(0|i.words[n.length+u-1]);for(f=Math.min(f/o|0,67108863),i._ishlnsubmul(n,f,u);0!==i.negative;)f--,i.negative=0,i._ishlnsubmul(n,1,u),i.isZero()||(i.negative^=1);a&&(a.words[u]=f)}return a&&a._strip(),i._strip(),"div"!==t&&0!==r&&i.iushrn(r),{div:a||null,mod:i}},s.prototype.divmod=function(e,t,r){return i(!e.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(n=a.div.neg()),"div"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:n,mod:o}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(n=a.div.neg()),{div:n,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:a.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new s(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new s(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new s(this.modrn(e.words[0]))}:this._wordDiv(e,t);var n,o,a},s.prototype.div=function(e){return this.divmod(e,"div",!1).div},s.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},s.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},s.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,i=e.ushrn(1),n=e.andln(1),s=r.cmp(i);return s<0||1===n&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},s.prototype.modrn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=(1<<26)%e,n=0,s=this.length-1;s>=0;s--)n=(r*n+(0|this.words[s]))%e;return t?-n:n},s.prototype.modn=function(e){return this.modrn(e)},s.prototype.idivn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=0,n=this.length-1;n>=0;n--){var s=(0|this.words[n])+67108864*r;this.words[n]=s/e|0,r=s%e}return this._strip(),t?this.ineg():this},s.prototype.divn=function(e){return this.clone().idivn(e)},s.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new s(1),o=new s(0),a=new s(0),c=new s(1),h=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++h;for(var d=r.clone(),u=t.clone();!t.isZero();){for(var f=0,l=1;!(t.words[0]&l)&&f<26;++f,l<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(d),o.isub(u)),n.iushrn(1),o.iushrn(1);for(var p=0,y=1;!(r.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(d),c.isub(u)),a.iushrn(1),c.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(a),o.isub(c)):(r.isub(t),a.isub(n),c.isub(o))}return{a,b:c,gcd:r.iushln(h)}},s.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n,o=new s(1),a=new s(0),c=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var h=0,d=1;!(t.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(t.iushrn(h);h-- >0;)o.isOdd()&&o.iadd(c),o.iushrn(1);for(var u=0,f=1;!(r.words[0]&f)&&u<26;++u,f<<=1);if(u>0)for(r.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(a)):(r.isub(t),a.isub(o))}return(n=0===t.cmpn(1)?o:a).cmpn(0)<0&&n.iadd(e),n},s.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var i=0;t.isEven()&&r.isEven();i++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var n=t.cmp(r);if(n<0){var s=t;t=r,r=s}else if(0===n||0===r.cmpn(1))break;t.isub(r)}return r.iushln(i)},s.prototype.invm=function(e){return this.egcd(e).a.umod(e)},s.prototype.isEven=function(){return!(1&this.words[0])},s.prototype.isOdd=function(){return!(1&~this.words[0])},s.prototype.andln=function(e){return this.words[0]&e},s.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,r=(e-t)/26,n=1<>>26,a&=67108863,this.words[o]=a}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),i(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:ne.length)return 1;if(this.length=0;r--){var i=0|this.words[r],n=0|e.words[r];if(i!==n){in&&(t=1);break}}return t},s.prototype.gtn=function(e){return 1===this.cmpn(e)},s.prototype.gt=function(e){return 1===this.cmp(e)},s.prototype.gten=function(e){return this.cmpn(e)>=0},s.prototype.gte=function(e){return this.cmp(e)>=0},s.prototype.ltn=function(e){return-1===this.cmpn(e)},s.prototype.lt=function(e){return-1===this.cmp(e)},s.prototype.lten=function(e){return this.cmpn(e)<=0},s.prototype.lte=function(e){return this.cmp(e)<=0},s.prototype.eqn=function(e){return 0===this.cmpn(e)},s.prototype.eq=function(e){return 0===this.cmp(e)},s.red=function(e){return new M(e)},s.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},s.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(e){return this.red=e,this},s.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},s.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},s.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},s.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},s.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},s.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},s.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},s.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},s.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function S(e,t){this.name=e,this.p=new s(t,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){S.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){S.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){S.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P(){S.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(e){if("string"==typeof e){var t=s._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function E(e){M.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}S.prototype._tmp=function(){var e=new s(null);return e.words=new Array(Math.ceil(this.n/13)),e},S.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var i=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},S.prototype.split=function(e,t){e.iushrn(this.n,0,t)},S.prototype.imulK=function(e){return e.imul(this.k)},n(_,S),_.prototype.split=function(e,t){for(var r=4194303,i=Math.min(e.length,9),n=0;n>>22,s=o}s>>>=22,e.words[n-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},_.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=n,t=i}return 0!==t&&(e.words[e.length++]=t),e},s._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new _;else if("p224"===e)t=new x;else if("p192"===e)t=new k;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new P}return w[e]=t,t},M.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},M.prototype._verify2=function(e,t){i(!(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},M.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(d(e,e.umod(this.m)._forceRed(this)),e)},M.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},M.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},M.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},M.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},M.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},M.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},M.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},M.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},M.prototype.isqr=function(e){return this.imul(e,e.clone())},M.prototype.sqr=function(e){return this.mul(e,e)},M.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var r=this.m.add(new s(1)).iushrn(2);return this.pow(e,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var a=new s(1).toRed(this),c=a.redNeg(),h=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new s(2*d*d).toRed(this);0!==this.pow(d,h).cmp(c);)d.redIAdd(c);for(var u=this.pow(d,n),f=this.pow(e,n.addn(1).iushrn(1)),l=this.pow(e,n),p=o;0!==l.cmp(a);){for(var y=l,m=0;0!==y.cmp(a);m++)y=y.redSqr();i(m=0;i--){for(var h=t.words[i],d=c-1;d>=0;d--){var u=h>>d&1;n!==r[0]&&(n=this.sqr(n)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===i&&0===d)&&(n=this.mul(n,r[o]),a=0,o=0)):a=0}c=26}return n},M.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},M.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},s.mont=function(e){return new E(e)},n(E,M),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),s=n;return n.cmp(this.m)>=0?s=n.isub(this.m):n.cmpn(0)<0&&(s=n.iadd(this.m)),s._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new s(0)._forceRed(this);var r=e.mul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},6880:function(e){e.exports=function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=90)}({17:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var i=r(18),n=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||""},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||""},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,r,i){void 0===i&&(i=!1);var n=e.getVersionPrecision(t),s=e.getVersionPrecision(r),o=Math.max(n,s),a=0,c=e.map([t,r],(function(t){var r=o-e.getVersionPrecision(t),i=t+new Array(r+1).join(".0");return e.map(i.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(i&&(a=o-Math.min(n,s)),o-=1;o>=a;){if(c[0][o]>c[1][o])return 1;if(c[0][o]===c[1][o]){if(o===a)return 0;o-=1}else if(c[0][o]1?n-1:0),o=1;o0){var o=Object.keys(r),c=a.default.find(o,(function(e){return t.isOS(e)}));if(c){var h=this.satisfies(r[c]);if(void 0!==h)return h}var d=a.default.find(o,(function(e){return t.isPlatform(e)}));if(d){var u=this.satisfies(r[d]);if(void 0!==u)return u}}if(s>0){var f=Object.keys(n),l=a.default.find(f,(function(e){return t.isBrowser(e,!0)}));if(void 0!==l)return this.compareVersion(n[l])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),i=e.toLowerCase(),n=a.default.getBrowserTypeByAlias(i);return t&&n&&(i=n.toLowerCase()),i===r},t.compareVersion=function(e){var t=[0],r=e,i=!1,n=this.getBrowserVersion();if("string"==typeof n)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(i=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(i=!0,r=e.substr(1)),t.indexOf(a.default.compareVersions(n,r,i))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=h,e.exports=t.default},92:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=/version\/(\d+(\.?_?\d+)+)/i,o=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=n.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},r=n.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},r=n.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=n.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=n.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},r=n.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=n.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},r=n.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=n.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=n.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},r=n.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},r=n.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},r=n.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=n.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=n.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},r=n.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=n.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=n.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},r=n.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=n.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=n.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=n.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},r=n.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=n.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=n.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=n.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},r=n.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:"Android Browser"},r=n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:n.default.getFirstMatch(t,e),version:n.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=r(18),o=[{test:[/Roku\/DVP/],describe:function(e){var t=n.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=n.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=n.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=n.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=n.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=n.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=n.default.getMacOSVersionName(t),i={name:s.OS_MAP.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=n.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=n.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=n.default.getAndroidVersionName(t),i={name:s.OS_MAP.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=n.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=n.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||n.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||n.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=n.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=n.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=n.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=r(18),o=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=n.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:s.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=n.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=r(18),o=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=n.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=n.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=n.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=n.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=n.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=o,e.exports=t.default}})},5037:(e,t,r)=>{var i;function n(e){this.rand=e}if(e.exports=function(e){return i||(i=new n(null)),i.generate(e)},e.exports.Rand=n,n.prototype.generate=function(e){return this._rand(e)},n.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r{"use strict";const i=r(7526),n=r(251),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.hp=c,t.IS=50;const o=2147483647;function a(e){if(e>o)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,c.prototype),t}function c(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return u(e)}return h(e,t,r)}function h(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!c.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|y(e,t);let i=a(r);const n=i.write(e,t);return n!==r&&(i=i.slice(0,n)),i}(e,t);if(ArrayBuffer.isView(e))return function(e){if(W(e,Uint8Array)){const t=new Uint8Array(e);return l(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(W(e,ArrayBuffer)||e&&W(e.buffer,ArrayBuffer))return l(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(W(e,SharedArrayBuffer)||e&&W(e.buffer,SharedArrayBuffer)))return l(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const i=e.valueOf&&e.valueOf();if(null!=i&&i!==e)return c.from(i,t,r);const n=function(e){if(c.isBuffer(e)){const t=0|p(e.length),r=a(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||X(e.length)?a(0):f(e):"Buffer"===e.type&&Array.isArray(e.data)?f(e.data):void 0}(e);if(n)return n;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return c.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function d(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function u(e){return d(e),a(e<0?0:0|p(e))}function f(e){const t=e.length<0?0:0|p(e.length),r=a(t);for(let i=0;i=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|e}function y(e,t){if(c.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||W(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===r)return 0;let n=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(e).length;default:if(n)return i?-1:H(e).length;t=(""+t).toLowerCase(),n=!0}}function m(e,t,r){let i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return T(this,t,r);case"utf8":case"utf-8":return M(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return A(this,t,r);case"base64":return P(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,r);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function g(e,t,r){const i=e[t];e[t]=e[r],e[r]=i}function b(e,t,r,i,n){if(0===e.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),X(r=+r)&&(r=n?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(n)return-1;r=e.length-1}else if(r<0){if(!n)return-1;r=0}if("string"==typeof t&&(t=c.from(t,i)),c.isBuffer(t))return 0===t.length?-1:v(e,t,r,i,n);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,i,n);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,i,n){let s,o=1,a=e.length,c=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,r/=2}function h(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(n){let i=-1;for(s=r;sa&&(r=a-c),s=r;s>=0;s--){let r=!0;for(let i=0;in&&(i=n):i=n;const s=t.length;let o;for(i>s/2&&(i=s/2),o=0;o>8,n=r%256,s.push(n),s.push(i);return s}(t,e.length-r),e,r,i)}function P(e,t,r){return 0===t&&r===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,r))}function M(e,t,r){r=Math.min(e.length,r);const i=[];let n=t;for(;n239?4:t>223?3:t>191?2:1;if(n+o<=r){let r,i,a,c;switch(o){case 1:t<128&&(s=t);break;case 2:r=e[n+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(s=c));break;case 3:r=e[n+1],i=e[n+2],128==(192&r)&&128==(192&i)&&(c=(15&t)<<12|(63&r)<<6|63&i,c>2047&&(c<55296||c>57343)&&(s=c));break;case 4:r=e[n+1],i=e[n+2],a=e[n+3],128==(192&r)&&128==(192&i)&&128==(192&a)&&(c=(15&t)<<18|(63&r)<<12|(63&i)<<6|63&a,c>65535&&c<1114112&&(s=c))}}null===s?(s=65533,o=1):s>65535&&(s-=65536,i.push(s>>>10&1023|55296),s=56320|1023&s),i.push(s),n+=o}return function(e){const t=e.length;if(t<=E)return String.fromCharCode.apply(String,e);let r="",i=0;for(;ii.length?(c.isBuffer(t)||(t=c.from(t)),t.copy(i,n)):Uint8Array.prototype.set.call(i,t,n);else{if(!c.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(i,n)}n+=t.length}return i},c.byteLength=y,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(e+=" ... "),""},s&&(c.prototype[s]=c.prototype.inspect),c.prototype.compare=function(e,t,r,i,n){if(W(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===i&&(i=0),void 0===n&&(n=this.length),t<0||r>e.length||i<0||n>this.length)throw new RangeError("out of range index");if(i>=n&&t>=r)return 0;if(i>=n)return-1;if(t>=r)return 1;if(this===e)return 0;let s=(n>>>=0)-(i>>>=0),o=(r>>>=0)-(t>>>=0);const a=Math.min(s,o),h=this.slice(i,n),d=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===i&&(i="utf8")):(i=r,r=void 0)}const n=this.length-t;if((void 0===r||r>n)&&(r=n),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let s=!1;for(;;)switch(i){case"hex":return w(this,e,t,r);case"utf8":case"utf-8":return S(this,e,t,r);case"ascii":case"latin1":case"binary":return _(this,e,t,r);case"base64":return x(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const E=4096;function I(e,t,r){let i="";r=Math.min(e.length,r);for(let n=t;ni)&&(r=i);let n="";for(let i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function K(e,t,r,i,n,s){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>n||te.length)throw new RangeError("Index out of range")}function C(e,t,r,i,n){q(t,i,n,e,r,7);let s=Number(t&BigInt(4294967295));e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o,r}function L(e,t,r,i,n){q(t,i,n,e,r,7);let s=Number(t&BigInt(4294967295));e[r+7]=s,s>>=8,e[r+6]=s,s>>=8,e[r+5]=s,s>>=8,e[r+4]=s;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=o,o>>=8,e[r+2]=o,o>>=8,e[r+1]=o,o>>=8,e[r]=o,r+8}function R(e,t,r,i,n,s){if(r+i>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function B(e,t,r,i,s){return t=+t,r>>>=0,s||R(e,0,r,4),n.write(e,t,r,i,23,4),r+4}function F(e,t,r,i,s){return t=+t,r>>>=0,s||R(e,0,r,8),n.write(e,t,r,i,52,8),r+8}c.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||N(e,t,this.length);let i=this[e],n=1,s=0;for(;++s>>=0,t>>>=0,r||N(e,t,this.length);let i=this[e+--t],n=1;for(;t>0&&(n*=256);)i+=this[e+--t]*n;return i},c.prototype.readUint8=c.prototype.readUInt8=function(e,t){return e>>>=0,t||N(e,1,this.length),this[e]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(e,t){return e>>>=0,t||N(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(e,t){return e>>>=0,t||N(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(e,t){return e>>>=0,t||N(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(e,t){return e>>>=0,t||N(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readBigUInt64LE=Q((function(e){$(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const i=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,n=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(i)+(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const i=t*2**24+65536*this[++e]+256*this[++e]+this[++e],n=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(i)<>>=0,t>>>=0,r||N(e,t,this.length);let i=this[e],n=1,s=0;for(;++s=n&&(i-=Math.pow(2,8*t)),i},c.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||N(e,t,this.length);let i=t,n=1,s=this[e+--i];for(;i>0&&(n*=256);)s+=this[e+--i]*n;return n*=128,s>=n&&(s-=Math.pow(2,8*t)),s},c.prototype.readInt8=function(e,t){return e>>>=0,t||N(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){e>>>=0,t||N(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(e,t){e>>>=0,t||N(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(e,t){return e>>>=0,t||N(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return e>>>=0,t||N(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readBigInt64LE=Q((function(e){$(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const i=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(i)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const i=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(i)<>>=0,t||N(e,4,this.length),n.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return e>>>=0,t||N(e,4,this.length),n.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return e>>>=0,t||N(e,8,this.length),n.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return e>>>=0,t||N(e,8,this.length),n.read(this,e,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(e,t,r,i){e=+e,t>>>=0,r>>>=0,i||K(this,e,t,r,Math.pow(2,8*r)-1,0);let n=1,s=0;for(this[t]=255&e;++s>>=0,r>>>=0,i||K(this,e,t,r,Math.pow(2,8*r)-1,0);let n=r-1,s=1;for(this[t+n]=255&e;--n>=0&&(s*=256);)this[t+n]=e/s&255;return t+r},c.prototype.writeUint8=c.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,1,255,0),this[t]=255&e,t+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigUInt64LE=Q((function(e,t=0){return C(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeBigUInt64BE=Q((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeIntLE=function(e,t,r,i){if(e=+e,t>>>=0,!i){const i=Math.pow(2,8*r-1);K(this,e,t,r,i-1,-i)}let n=0,s=1,o=0;for(this[t]=255&e;++n>>=0,!i){const i=Math.pow(2,8*r-1);K(this,e,t,r,i-1,-i)}let n=r-1,s=1,o=0;for(this[t+n]=255&e;--n>=0&&(s*=256);)e<0&&0===o&&0!==this[t+n+1]&&(o=1),this[t+n]=(e/s|0)-o&255;return t+r},c.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},c.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigInt64LE=Q((function(e,t=0){return C(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeBigInt64BE=Q((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeFloatLE=function(e,t,r){return B(this,e,t,!0,r)},c.prototype.writeFloatBE=function(e,t,r){return B(this,e,t,!1,r)},c.prototype.writeDoubleLE=function(e,t,r){return F(this,e,t,!0,r)},c.prototype.writeDoubleBE=function(e,t,r){return F(this,e,t,!1,r)},c.prototype.copy=function(e,t,r,i){if(!c.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(n=t;n=i+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function q(e,t,r,i,n,s){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${i} and < 2${i} ** ${8*(s+1)}${i}`:`>= -(2${i} ** ${8*(s+1)-1}${i}) and < 2 ** ${8*(s+1)-1}${i}`:`>= ${t}${i} and <= ${r}${i}`,new D.ERR_OUT_OF_RANGE("value",n,e)}!function(e,t,r){$(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||z(t,e.length-(r+1))}(i,n,s)}function $(e,t){if("number"!=typeof e)throw new D.ERR_INVALID_ARG_TYPE(t,"number",e)}function z(e,t,r){if(Math.floor(e)!==e)throw $(e,r),new D.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new D.ERR_BUFFER_OUT_OF_BOUNDS;throw new D.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}U("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),U("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),U("ERR_OUT_OF_RANGE",(function(e,t,r){let i=`The value of "${e}" is out of range.`,n=r;return Number.isInteger(r)&&Math.abs(r)>2**32?n=j(String(r)):"bigint"==typeof r&&(n=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(n=j(n)),n+="n"),i+=` It must be ${t}. Received ${n}`,i}),RangeError);const J=/[^+/0-9A-Za-z-_]/g;function H(e,t){let r;t=t||1/0;const i=e.length;let n=null;const s=[];for(let o=0;o55295&&r<57344){if(!n){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===i){(t-=3)>-1&&s.push(239,191,189);continue}n=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),n=r;continue}r=65536+(n-55296<<10|r-56320)}else n&&(t-=3)>-1&&s.push(239,191,189);if(n=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function V(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(J,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Y(e,t,r,i){let n;for(n=0;n=t.length||n>=e.length);++n)t[n+r]=e[n];return n}function W(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function X(e){return e!=e}const G=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const i=16*r;for(let n=0;n<16;++n)t[i+n]=e[r]+e[n]}return t}();function Q(e){return"undefined"==typeof BigInt?Z:e}function Z(){throw new Error("BigInt not supported")}},8075:(e,t,r)=>{"use strict";var i=r(453),n=r(487),s=n(i("String.prototype.indexOf"));e.exports=function(e,t){var r=i(e,!!t);return"function"==typeof r&&s(e,".prototype.")>-1?n(r):r}},487:(e,t,r)=>{"use strict";var i=r(6743),n=r(453),s=r(6897),o=r(9675),a=n("%Function.prototype.apply%"),c=n("%Function.prototype.call%"),h=n("%Reflect.apply%",!0)||i.call(c,a),d=r(655),u=n("%Math.max%");e.exports=function(e){if("function"!=typeof e)throw new o("a function is required");var t=h(i,c,arguments);return s(t,1+u(0,e.length-(arguments.length-1)),!0)};var f=function(){return h(i,a,arguments)};d?d(e.exports,"apply",{value:f}):e.exports.apply=f},4744:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function n(e,t,r){return e.concat(t).map((function(e){return i(e,r)}))}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function a(e,r,c){(c=c||{}).arrayMerge=c.arrayMerge||n,c.isMergeableObject=c.isMergeableObject||t,c.cloneUnlessOtherwiseSpecified=i;var h=Array.isArray(r);return h===Array.isArray(e)?h?c.arrayMerge(e,r,c):function(e,t,r){var n={};return r.isMergeableObject(e)&&s(e).forEach((function(t){n[t]=i(e[t],r)})),s(t).forEach((function(s){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(o(e,s)&&r.isMergeableObject(t[s])?n[s]=function(e,t){if(!t.customMerge)return a;var r=t.customMerge(e);return"function"==typeof r?r:a}(s,r)(e[s],t[s],r):n[s]=i(t[s],r))})),n}(e,r,c):i(r,c)}a.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return a(e,r,t)}),{})};var c=a;e.exports=c},41:(e,t,r)=>{"use strict";var i=r(655),n=r(8068),s=r(9675),o=r(5795);e.exports=function(e,t,r){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new s("`obj` must be an object or a function`");if("string"!=typeof t&&"symbol"!=typeof t)throw new s("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new s("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new s("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new s("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new s("`loose`, if provided, must be a boolean");var a=arguments.length>3?arguments[3]:null,c=arguments.length>4?arguments[4]:null,h=arguments.length>5?arguments[5]:null,d=arguments.length>6&&arguments[6],u=!!o&&o(e,t);if(i)i(e,t,{configurable:null===h&&u?u.configurable:!h,enumerable:null===a&&u?u.enumerable:!a,value:r,writable:null===c&&u?u.writable:!c});else{if(!d&&(a||c||h))throw new n("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=r}}},6729:(e,t,r)=>{"use strict";var i=t;i.version=r(1636).rE,i.utils=r(7011),i.rand=r(5037),i.curve=r(894),i.curves=r(480),i.ec=r(7447),i.eddsa=r(8650)},6677:(e,t,r)=>{"use strict";var i=r(9404),n=r(7011),s=n.getNAF,o=n.getJSF,a=n.assert;function c(e,t){this.type=e,this.p=new i(t.p,16),this.red=t.prime?i.red(t.prime):i.mont(this.p),this.zero=new i(0).toRed(this.red),this.one=new i(1).toRed(this.red),this.two=new i(2).toRed(this.red),this.n=t.n&&new i(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function h(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var r=e._getDoubles(),i=s(t,1,this._bitLength),n=(1<=o;d--)c=(c<<1)+i[d];h.push(c)}for(var u=this.jpoint(null,null,null),f=this.jpoint(null,null,null),l=n;l>0;l--){for(o=0;o=0;h--){for(var d=0;h>=0&&0===o[h];h--)d++;if(h>=0&&d++,c=c.dblp(d),h<0)break;var u=o[h];a(0!==u),c="affine"===e.type?u>0?c.mixedAdd(n[u-1>>1]):c.mixedAdd(n[-u-1>>1].neg()):u>0?c.add(n[u-1>>1]):c.add(n[-u-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,r,i,n){var a,c,h,d=this._wnafT1,u=this._wnafT2,f=this._wnafT3,l=0;for(a=0;a=1;a-=2){var y=a-1,m=a;if(1===d[y]&&1===d[m]){var g=[t[y],null,null,t[m]];0===t[y].y.cmp(t[m].y)?(g[1]=t[y].add(t[m]),g[2]=t[y].toJ().mixedAdd(t[m].neg())):0===t[y].y.cmp(t[m].y.redNeg())?(g[1]=t[y].toJ().mixedAdd(t[m]),g[2]=t[y].add(t[m].neg())):(g[1]=t[y].toJ().mixedAdd(t[m]),g[2]=t[y].toJ().mixedAdd(t[m].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],v=o(r[y],r[m]);for(l=Math.max(v[0].length,l),f[y]=new Array(l),f[m]=new Array(l),c=0;c=0;a--){for(var k=0;a>=0;){var P=!0;for(c=0;c=0&&k++,_=_.dblp(k),a<0)break;for(c=0;c0?h=u[c][M-1>>1]:M<0&&(h=u[c][-M-1>>1].neg()),_="affine"===h.type?_.mixedAdd(h):_.add(h))}}for(a=0;a=Math.ceil((e.bitLength()+1)/t.step)},h.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],i=this,n=0;n{"use strict";var i=r(7011),n=r(9404),s=r(6698),o=r(6677),a=i.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new n(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new n(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new n(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function h(e,t,r,i,s){o.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===i?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new n(t,16),this.y=new n(r,16),this.z=i?new n(i,16):this.curve.one,this.t=s&&new n(s,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}s(c,o),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,r,i){return this.point(e,t,r,i)},c.prototype.pointFromX=function(e,t){(e=new n(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),i=this.c2.redSub(this.a.redMul(r)),s=this.one.redSub(this.c2.redMul(this.d).redMul(r)),o=i.redMul(s.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new n(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),i=r.redSub(this.c2),s=r.redMul(this.d).redMul(this.c2).redSub(this.a),o=i.redMul(s.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),i=t.redMul(this.a).redAdd(r),n=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===i.cmp(n)},s(h,o.BasePoint),c.prototype.pointFromJSON=function(e){return h.fromJSON(this,e)},c.prototype.point=function(e,t,r,i){return new h(this,e,t,r,i)},h.fromJSON=function(e,t){return new h(e,t[0],t[1],t[2])},h.prototype.inspect=function(){return this.isInfinity()?"":""},h.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},h.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var i=this.curve._mulA(e),n=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),s=i.redAdd(t),o=s.redSub(r),a=i.redSub(t),c=n.redMul(o),h=s.redMul(a),d=n.redMul(a),u=o.redMul(s);return this.curve.point(c,h,u,d)},h.prototype._projDbl=function(){var e,t,r,i,n,s,o=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var h=(i=this.curve._mulA(a)).redAdd(c);this.zOne?(e=o.redSub(a).redSub(c).redMul(h.redSub(this.curve.two)),t=h.redMul(i.redSub(c)),r=h.redSqr().redSub(h).redSub(h)):(n=this.z.redSqr(),s=h.redSub(n).redISub(n),e=o.redSub(a).redISub(c).redMul(s),t=h.redMul(i.redSub(c)),r=h.redMul(s))}else i=a.redAdd(c),n=this.curve._mulC(this.z).redSqr(),s=i.redSub(n).redSub(n),e=this.curve._mulC(o.redISub(i)).redMul(s),t=this.curve._mulC(i).redMul(a.redISub(c)),r=i.redMul(s);return this.curve.point(e,t,r)},h.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},h.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),i=this.t.redMul(this.curve.dd).redMul(e.t),n=this.z.redMul(e.z.redAdd(e.z)),s=r.redSub(t),o=n.redSub(i),a=n.redAdd(i),c=r.redAdd(t),h=s.redMul(o),d=a.redMul(c),u=s.redMul(c),f=o.redMul(a);return this.curve.point(h,d,f,u)},h.prototype._projAdd=function(e){var t,r,i=this.z.redMul(e.z),n=i.redSqr(),s=this.x.redMul(e.x),o=this.y.redMul(e.y),a=this.curve.d.redMul(s).redMul(o),c=n.redSub(a),h=n.redAdd(a),d=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(s).redISub(o),u=i.redMul(c).redMul(d);return this.curve.twisted?(t=i.redMul(h).redMul(o.redSub(this.curve._mulA(s))),r=c.redMul(h)):(t=i.redMul(h).redMul(o.redSub(s)),r=this.curve._mulC(c).redMul(h)),this.curve.point(u,t,r)},h.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},h.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},h.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},h.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},h.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},h.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},h.prototype.getX=function(){return this.normalize(),this.x.fromRed()},h.prototype.getY=function(){return this.normalize(),this.y.fromRed()},h.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},h.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(i),0===this.x.cmp(t))return!0}},h.prototype.toP=h.prototype.normalize,h.prototype.mixedAdd=h.prototype.add},894:(e,t,r)=>{"use strict";var i=t;i.base=r(6677),i.short=r(9188),i.mont=r(370),i.edwards=r(1298)},370:(e,t,r)=>{"use strict";var i=r(9404),n=r(6698),s=r(6677),o=r(7011);function a(e){s.call(this,"mont",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.i4=new i(4).toRed(this.red).redInvm(),this.two=new i(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,r){s.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new i(t,16),this.z=new i(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}n(a,s),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),i=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===i.redSqrt().redSqr().cmp(i)},n(c,s.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),i=e.redMul(t),n=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(i,n)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),i=this.x.redSub(this.z),n=e.x.redAdd(e.z),s=e.x.redSub(e.z).redMul(r),o=n.redMul(i),a=t.z.redMul(s.redAdd(o).redSqr()),c=t.x.redMul(s.redISub(o).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),r=this,i=this.curve.point(null,null),n=[];0!==t.cmpn(0);t.iushrn(1))n.push(t.andln(1));for(var s=n.length-1;s>=0;s--)0===n[s]?(r=r.diffAdd(i,this),i=i.dbl()):(i=r.diffAdd(i,this),r=r.dbl());return i},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},9188:(e,t,r)=>{"use strict";var i=r(7011),n=r(9404),s=r(6698),o=r(6677),a=i.assert;function c(e){o.call(this,"short",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function h(e,t,r,i){o.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new n(t,16),this.y=new n(r,16),i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function d(e,t,r,i){o.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===i?(this.x=this.curve.one,this.y=this.curve.one,this.z=new n(0)):(this.x=new n(t,16),this.y=new n(r,16),this.z=new n(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}s(c,o),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new n(e.beta,16).toRed(this.red);else{var i=this._getEndoRoots(this.p);t=(t=i[0].cmp(i[1])<0?i[0]:i[1]).toRed(this.red)}if(e.lambda)r=new n(e.lambda,16);else{var s=this._getEndoRoots(this.n);0===this.g.mul(s[0]).x.cmp(this.g.x.redMul(t))?r=s[0]:(r=s[1],a(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new n(e.a,16),b:new n(e.b,16)}})):this._getEndoBasis(r)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:n.mont(e),r=new n(2).toRed(t).redInvm(),i=r.redNeg(),s=new n(3).toRed(t).redNeg().redSqrt().redMul(r);return[i.redAdd(s).fromRed(),i.redSub(s).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,r,i,s,o,a,c,h,d,u=this.n.ushrn(Math.floor(this.n.bitLength()/2)),f=e,l=this.n.clone(),p=new n(1),y=new n(0),m=new n(0),g=new n(1),b=0;0!==f.cmpn(0);){var v=l.div(f);h=l.sub(v.mul(f)),d=m.sub(v.mul(p));var w=g.sub(v.mul(y));if(!i&&h.cmp(u)<0)t=c.neg(),r=p,i=h.neg(),s=d;else if(i&&2==++b)break;c=h,l=f,f=h,m=p,p=d,g=y,y=w}o=h.neg(),a=d;var S=i.sqr().add(s.sqr());return o.sqr().add(a.sqr()).cmp(S)>=0&&(o=t,a=r),i.negative&&(i=i.neg(),s=s.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:i,b:s},{a:o,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],i=t[1],n=i.b.mul(e).divRound(this.n),s=r.b.neg().mul(e).divRound(this.n),o=n.mul(r.a),a=s.mul(i.a),c=n.mul(r.b),h=s.mul(i.b);return{k1:e.sub(o).sub(a),k2:c.add(h).neg()}},c.prototype.pointFromX=function(e,t){(e=new n(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),i=r.redSqrt();if(0!==i.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var s=i.fromRed().isOdd();return(t&&!s||!t&&s)&&(i=i.redNeg()),this.point(e,i)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,i=this.a.redMul(t),n=t.redSqr().redMul(t).redIAdd(i).redIAdd(this.b);return 0===r.redSqr().redISub(n).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,r){for(var i=this._endoWnafT1,n=this._endoWnafT2,s=0;s":""},h.prototype.isInfinity=function(){return this.inf},h.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),i=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,i)},h.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),i=e.redInvm(),n=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(i),s=n.redSqr().redISub(this.x.redAdd(this.x)),o=n.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,o)},h.prototype.getX=function(){return this.x.fromRed()},h.prototype.getY=function(){return this.y.fromRed()},h.prototype.mul=function(e){return e=new n(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},h.prototype.mulAdd=function(e,t,r){var i=[this,t],n=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(i,n):this.curve._wnafMulAdd(1,i,n,2)},h.prototype.jmulAdd=function(e,t,r){var i=[this,t],n=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(i,n,!0):this.curve._wnafMulAdd(1,i,n,2,!0)},h.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},h.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,i=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(i)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(i)}}}return t},h.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},s(d,o.BasePoint),c.prototype.jpoint=function(e,t,r){return new d(this,e,t,r)},d.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),i=this.y.redMul(t).redMul(e);return this.curve.point(r,i)},d.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},d.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),i=this.x.redMul(t),n=e.x.redMul(r),s=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(r.redMul(this.z)),a=i.redSub(n),c=s.redSub(o);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h=a.redSqr(),d=h.redMul(a),u=i.redMul(h),f=c.redSqr().redIAdd(d).redISub(u).redISub(u),l=c.redMul(u.redISub(f)).redISub(s.redMul(d)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(f,l,p)},d.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,i=e.x.redMul(t),n=this.y,s=e.y.redMul(t).redMul(this.z),o=r.redSub(i),a=n.redSub(s);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=o.redSqr(),h=c.redMul(o),d=r.redMul(c),u=a.redSqr().redIAdd(h).redISub(d).redISub(d),f=a.redMul(d.redISub(u)).redISub(n.redMul(h)),l=this.z.redMul(o);return this.curve.jpoint(u,f,l)},d.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(n),0===this.x.cmp(r))return!0}},d.prototype.inspect=function(){return this.isInfinity()?"":""},d.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},480:(e,t,r)=>{"use strict";var i,n=t,s=r(7952),o=r(894),a=r(7011).assert;function c(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function h(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new c(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=c,h("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:s.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),h("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:s.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),h("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:s.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),h("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:s.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),h("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:s.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),h("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["9"]}),h("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{i=r(4011)}catch(e){i=void 0}h("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:s.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",i]})},7447:(e,t,r)=>{"use strict";var i=r(9404),n=r(2723),s=r(7011),o=r(480),a=r(5037),c=s.assert,h=r(1200),d=r(8545);function u(e){if(!(this instanceof u))return new u(e);"string"==typeof e&&(c(Object.prototype.hasOwnProperty.call(o,e),"Unknown curve "+e),e=o[e]),e instanceof o.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=u,u.prototype.keyPair=function(e){return new h(this,e)},u.prototype.keyFromPrivate=function(e,t){return h.fromPrivate(this,e,t)},u.prototype.keyFromPublic=function(e,t){return h.fromPublic(this,e,t)},u.prototype.genKeyPair=function(e){e||(e={});for(var t=new n({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),s=this.n.sub(new i(2));;){var o=new i(t.generate(r));if(!(o.cmp(s)>0))return o.iaddn(1),this.keyFromPrivate(o)}},u.prototype._truncateToN=function(e,t,r){var n;if(i.isBN(e)||"number"==typeof e)n=(e=new i(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new i(e,16);else{var s=e.toString();n=s.length+1>>>1,e=new i(s,16)}"number"!=typeof r&&(r=8*n);var o=r-this.n.bitLength();return o>0&&(e=e.ushrn(o)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},u.prototype.sign=function(e,t,r,s){if("object"==typeof r&&(s=r,r=null),s||(s={}),"string"!=typeof e&&"number"!=typeof e&&!i.isBN(e)){c("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),c(e.length>>>0===e.length);for(var o=0;o=0)){var m=this.g.mul(y);if(!m.isInfinity()){var g=m.getX(),b=g.umod(this.n);if(0!==b.cmpn(0)){var v=y.invm(this.n).mul(b.mul(t.getPrivate()).iadd(e));if(0!==(v=v.umod(this.n)).cmpn(0)){var w=(m.getY().isOdd()?1:0)|(0!==g.cmp(b)?2:0);return s.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),w^=1),new d({r:b,s:v,recoveryParam:w})}}}}}},u.prototype.verify=function(e,t,r,i,n){n||(n={}),e=this._truncateToN(e,!1,n.msgBitLength),r=this.keyFromPublic(r,i);var s=(t=new d(t,"hex")).r,o=t.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,c=o.invm(this.n),h=c.mul(e).umod(this.n),u=c.mul(s).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(h,r.getPublic(),u)).isInfinity()&&a.eqXToP(s):!(a=this.g.mulAdd(h,r.getPublic(),u)).isInfinity()&&0===a.getX().umod(this.n).cmp(s)},u.prototype.recoverPubKey=function(e,t,r,n){c((3&r)===r,"The recovery param is more than two bits"),t=new d(t,n);var s=this.n,o=new i(e),a=t.r,h=t.s,u=1&r,f=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error("Unable to find sencond key candinate");a=f?this.curve.pointFromX(a.add(this.curve.n),u):this.curve.pointFromX(a,u);var l=t.r.invm(s),p=s.sub(o).mul(l).umod(s),y=h.mul(l).umod(s);return this.g.mulAdd(p,a,y)},u.prototype.getKeyRecoveryParam=function(e,t,r,i){if(null!==(t=new d(t,i)).recoveryParam)return t.recoveryParam;for(var n=0;n<4;n++){var s;try{s=this.recoverPubKey(e,t,n)}catch(e){continue}if(s.eq(r))return n}throw new Error("Unable to find valid recovery factor")}},1200:(e,t,r)=>{"use strict";var i=r(9404),n=r(7011).assert;function s(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=s,s.fromPublic=function(e,t,r){return t instanceof s?t:new s(e,{pub:t,pubEnc:r})},s.fromPrivate=function(e,t,r){return t instanceof s?t:new s(e,{priv:t,privEnc:r})},s.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},s.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},s.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},s.prototype._importPrivate=function(e,t){this.priv=new i(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},s.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?n(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||n(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},s.prototype.derive=function(e){return e.validate()||n(e.validate(),"public point not validated"),e.mul(this.priv).getX()},s.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},s.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},s.prototype.inspect=function(){return""}},8545:(e,t,r)=>{"use strict";var i=r(9404),n=r(7011),s=n.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(s(e.r&&e.s,"Signature without r or s"),this.r=new i(e.r,16),this.s=new i(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var r=e[t.place++];if(!(128&r))return r;var i=15&r;if(0===i||i>4)return!1;if(0===e[t.place])return!1;for(var n=0,s=0,o=t.place;s>>=0;return!(n<=127)&&(t.place=o,n)}function h(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=n.toArray(e,t);var r=new a;if(48!==e[r.place++])return!1;var s=c(e,r);if(!1===s)return!1;if(s+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=c(e,r);if(!1===o)return!1;if(128&e[r.place])return!1;var h=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var d=c(e,r);if(!1===d)return!1;if(e.length!==d+r.place)return!1;if(128&e[r.place])return!1;var u=e.slice(r.place,d+r.place);if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}return this.r=new i(h),this.s=new i(u),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=h(t),r=h(r);!(r[0]||128&r[1]);)r=r.slice(1);var i=[2];d(i,t.length),(i=i.concat(t)).push(2),d(i,r.length);var s=i.concat(r),o=[48];return d(o,s.length),o=o.concat(s),n.encode(o,e)}},8650:(e,t,r)=>{"use strict";var i=r(7952),n=r(480),s=r(7011),o=s.assert,a=s.parseBytes,c=r(6661),h=r(220);function d(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof d))return new d(e);e=n[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=i.sha512}e.exports=d,d.prototype.sign=function(e,t){e=a(e);var r=this.keyFromSecret(t),i=this.hashInt(r.messagePrefix(),e),n=this.g.mul(i),s=this.encodePoint(n),o=this.hashInt(s,r.pubBytes(),e).mul(r.priv()),c=i.add(o).umod(this.curve.n);return this.makeSignature({R:n,S:c,Rencoded:s})},d.prototype.verify=function(e,t,r){if(e=a(e),(t=this.makeSignature(t)).S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var i=this.keyFromPublic(r),n=this.hashInt(t.Rencoded(),i.pubBytes(),e),s=this.g.mul(t.S());return t.R().add(i.pub().mul(n)).eq(s)},d.prototype.hashInt=function(){for(var e=this.hash(),t=0;t{"use strict";var i=r(7011),n=i.assert,s=i.parseBytes,o=i.cachedProperty;function a(e,t){this.eddsa=e,this._secret=s(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=s(t.pub)}a.fromPublic=function(e,t){return t instanceof a?t:new a(e,{pub:t})},a.fromSecret=function(e,t){return t instanceof a?t:new a(e,{secret:t})},a.prototype.secret=function(){return this._secret},o(a,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),o(a,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),o(a,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,i=t.slice(0,e.encodingLength);return i[0]&=248,i[r]&=127,i[r]|=64,i})),o(a,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),o(a,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),o(a,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),a.prototype.sign=function(e){return n(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},a.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},a.prototype.getSecret=function(e){return n(this._secret,"KeyPair is public only"),i.encode(this.secret(),e)},a.prototype.getPublic=function(e){return i.encode(this.pubBytes(),e)},e.exports=a},220:(e,t,r)=>{"use strict";var i=r(9404),n=r(7011),s=n.assert,o=n.cachedProperty,a=n.parseBytes;function c(e,t){this.eddsa=e,"object"!=typeof t&&(t=a(t)),Array.isArray(t)&&(s(t.length===2*e.encodingLength,"Signature has invalid size"),t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),s(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof i&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}o(c,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),o(c,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),o(c,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),o(c,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return n.encode(this.toBytes(),"hex").toUpperCase()},e.exports=c},4011:e=>{e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},7011:(e,t,r)=>{"use strict";var i=t,n=r(9404),s=r(3349),o=r(4367);i.assert=s,i.toArray=o.toArray,i.zero2=o.zero2,i.toHex=o.toHex,i.encode=o.encode,i.getNAF=function(e,t,r){var i,n=new Array(Math.max(e.bitLength(),r)+1);for(i=0;i(s>>1)-1?(s>>1)-c:c,o.isubn(a)):a=0,n[i]=a,o.iushrn(1)}return n},i.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var i,n=0,s=0;e.cmpn(-n)>0||t.cmpn(-s)>0;){var o,a,c=e.andln(3)+n&3,h=t.andln(3)+s&3;3===c&&(c=-1),3===h&&(h=-1),o=1&c?3!=(i=e.andln(7)+n&7)&&5!==i||2!==h?c:-c:0,r[0].push(o),a=1&h?3!=(i=t.andln(7)+s&7)&&5!==i||2!==c?h:-h:0,r[1].push(a),2*n===o+1&&(n=1-n),2*s===a+1&&(s=1-s),e.iushrn(1),t.iushrn(1)}return r},i.cachedProperty=function(e,t,r){var i="_"+t;e.prototype[t]=function(){return void 0!==this[i]?this[i]:this[i]=r.call(this)}},i.parseBytes=function(e){return"string"==typeof e?i.toArray(e,"hex"):e},i.intFromLE=function(e){return new n(e,"hex","le")}},655:(e,t,r)=>{"use strict";var i=r(453)("%Object.defineProperty%",!0)||!1;if(i)try{i({},"a",{value:1})}catch(e){i=!1}e.exports=i},1237:e=>{"use strict";e.exports=EvalError},9383:e=>{"use strict";e.exports=Error},9290:e=>{"use strict";e.exports=RangeError},9538:e=>{"use strict";e.exports=ReferenceError},8068:e=>{"use strict";e.exports=SyntaxError},9675:e=>{"use strict";e.exports=TypeError},5345:e=>{"use strict";e.exports=URIError},7007:e=>{"use strict";var t,r="object"==typeof Reflect?Reflect:null,i=r&&"function"==typeof r.apply?r.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};t=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var n=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,e.exports.once=function(e,t){return new Promise((function(r,i){function n(r){e.removeListener(t,s),i(r)}function s(){"function"==typeof e.removeListener&&e.removeListener("error",n),r([].slice.call(arguments))}y(e,t,s,{once:!0}),"error"!==t&&function(e,t){"function"==typeof e.on&&y(e,"error",t,{once:!0})}(e,n)}))},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var o=10;function a(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function h(e,t,r,i){var n,s,o,h;if(a(r),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),o=s[t]),void 0===o)o=s[t]=r,++e._eventsCount;else if("function"==typeof o?o=s[t]=i?[r,o]:[o,r]:i?o.unshift(r):o.push(r),(n=c(e))>0&&o.length>n&&!o.warned){o.warned=!0;var d=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");d.name="MaxListenersExceededWarning",d.emitter=e,d.type=t,d.count=o.length,h=d,console&&console.warn&&console.warn(h)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(e,t,r){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},n=d.bind(i);return n.listener=r,i.wrapFn=n,n}function f(e,t,r){var i=e._events;if(void 0===i)return[];var n=i[t];return void 0===n?[]:"function"==typeof n?r?[n.listener||n]:[n]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var h=c.length,d=p(c,h);for(r=0;r=0;s--)if(r[s]===t||r[s].listener===t){o=r[s].listener,n=s;break}if(n<0)return this;0===n?r.shift():function(e,t){for(;t+1=0;i--)this.removeListener(e,t[i]);return this},s.prototype.listeners=function(e){return f(this,e,!0)},s.prototype.rawListeners=function(e){return f(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):l.call(e,t)},s.prototype.listenerCount=l,s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},9353:e=>{"use strict";var t=Object.prototype.toString,r=Math.max,i=function(e,t){for(var r=[],i=0;i{"use strict";var i=r(9353);e.exports=Function.prototype.bind||i},453:(e,t,r)=>{"use strict";var i,n=r(9383),s=r(1237),o=r(9290),a=r(9538),c=r(8068),h=r(9675),d=r(5345),u=Function,f=function(e){try{return u('"use strict"; return ('+e+").constructor;")()}catch(e){}},l=Object.getOwnPropertyDescriptor;if(l)try{l({},"")}catch(e){l=null}var p=function(){throw new h},y=l?function(){try{return p}catch(e){try{return l(arguments,"callee").get}catch(e){return p}}}():p,m=r(4039)(),g=r(24)(),b=Object.getPrototypeOf||(g?function(e){return e.__proto__}:null),v={},w="undefined"!=typeof Uint8Array&&b?b(Uint8Array):i,S={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?i:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?i:ArrayBuffer,"%ArrayIteratorPrototype%":m&&b?b([][Symbol.iterator]()):i,"%AsyncFromSyncIteratorPrototype%":i,"%AsyncFunction%":v,"%AsyncGenerator%":v,"%AsyncGeneratorFunction%":v,"%AsyncIteratorPrototype%":v,"%Atomics%":"undefined"==typeof Atomics?i:Atomics,"%BigInt%":"undefined"==typeof BigInt?i:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?i:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?i:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?i:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":n,"%eval%":eval,"%EvalError%":s,"%Float32Array%":"undefined"==typeof Float32Array?i:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?i:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?i:FinalizationRegistry,"%Function%":u,"%GeneratorFunction%":v,"%Int8Array%":"undefined"==typeof Int8Array?i:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?i:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?i:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":m&&b?b(b([][Symbol.iterator]())):i,"%JSON%":"object"==typeof JSON?JSON:i,"%Map%":"undefined"==typeof Map?i:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&m&&b?b((new Map)[Symbol.iterator]()):i,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?i:Promise,"%Proxy%":"undefined"==typeof Proxy?i:Proxy,"%RangeError%":o,"%ReferenceError%":a,"%Reflect%":"undefined"==typeof Reflect?i:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?i:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&m&&b?b((new Set)[Symbol.iterator]()):i,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?i:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":m&&b?b(""[Symbol.iterator]()):i,"%Symbol%":m?Symbol:i,"%SyntaxError%":c,"%ThrowTypeError%":y,"%TypedArray%":w,"%TypeError%":h,"%Uint8Array%":"undefined"==typeof Uint8Array?i:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?i:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?i:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?i:Uint32Array,"%URIError%":d,"%WeakMap%":"undefined"==typeof WeakMap?i:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?i:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?i:WeakSet};if(b)try{null.error}catch(e){var _=b(b(e));S["%Error.prototype%"]=_}var x=function e(t){var r;if("%AsyncFunction%"===t)r=f("async function () {}");else if("%GeneratorFunction%"===t)r=f("function* () {}");else if("%AsyncGeneratorFunction%"===t)r=f("async function* () {}");else if("%AsyncGenerator%"===t){var i=e("%AsyncGeneratorFunction%");i&&(r=i.prototype)}else if("%AsyncIteratorPrototype%"===t){var n=e("%AsyncGenerator%");n&&b&&(r=b(n.prototype))}return S[t]=r,r},k={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},P=r(6743),M=r(9957),E=P.call(Function.call,Array.prototype.concat),I=P.call(Function.apply,Array.prototype.splice),A=P.call(Function.call,String.prototype.replace),T=P.call(Function.call,String.prototype.slice),O=P.call(Function.call,RegExp.prototype.exec),N=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,K=/\\(\\)?/g,C=function(e,t){var r,i=e;if(M(k,i)&&(i="%"+(r=k[i])[0]+"%"),M(S,i)){var n=S[i];if(n===v&&(n=x(i)),void 0===n&&!t)throw new h("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:r,name:i,value:n}}throw new c("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new h("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new h('"allowMissing" argument must be a boolean');if(null===O(/^%?[^%]*%?$/,e))throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(e){var t=T(e,0,1),r=T(e,-1);if("%"===t&&"%"!==r)throw new c("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==t)throw new c("invalid intrinsic syntax, expected opening `%`");var i=[];return A(e,N,(function(e,t,r,n){i[i.length]=r?A(n,K,"$1"):t||e})),i}(e),i=r.length>0?r[0]:"",n=C("%"+i+"%",t),s=n.name,o=n.value,a=!1,d=n.alias;d&&(i=d[0],I(r,E([0,1],d)));for(var u=1,f=!0;u=r.length){var g=l(o,p);o=(f=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:o[p]}else f=M(o,p),o=o[p];f&&!a&&(S[s]=o)}}return o}},5795:(e,t,r)=>{"use strict";var i=r(453)("%Object.getOwnPropertyDescriptor%",!0);if(i)try{i([],"length")}catch(e){i=null}e.exports=i},592:(e,t,r)=>{"use strict";var i=r(655),n=function(){return!!i};n.hasArrayLengthDefineBug=function(){if(!i)return null;try{return 1!==i([],"length",{value:1}).length}catch(e){return!0}},e.exports=n},24:e=>{"use strict";var t={__proto__:null,foo:{}},r=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!(t instanceof r)}},4039:(e,t,r)=>{"use strict";var i="undefined"!=typeof Symbol&&Symbol,n=r(1333);e.exports=function(){return"function"==typeof i&&"function"==typeof Symbol&&"symbol"==typeof i("foo")&&"symbol"==typeof Symbol("bar")&&n()}},1333:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var i=Object.getOwnPropertySymbols(e);if(1!==i.length||i[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var n=Object.getOwnPropertyDescriptor(e,t);if(42!==n.value||!0!==n.enumerable)return!1}return!0}},7952:(e,t,r)=>{var i=t;i.utils=r(7426),i.common=r(6166),i.sha=r(6229),i.ripemd=r(6784),i.hmac=r(8948),i.sha1=i.sha.sha1,i.sha256=i.sha.sha256,i.sha224=i.sha.sha224,i.sha384=i.sha.sha384,i.sha512=i.sha.sha512,i.ripemd160=i.ripemd.ripemd160},6166:(e,t,r)=>{"use strict";var i=r(7426),n=r(3349);function s(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=s,s.prototype.update=function(e,t){if(e=i.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=i.join32(e,0,e.length-r,this.endian);for(var n=0;n>>24&255,i[n++]=e>>>16&255,i[n++]=e>>>8&255,i[n++]=255&e}else for(i[n++]=255&e,i[n++]=e>>>8&255,i[n++]=e>>>16&255,i[n++]=e>>>24&255,i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=0,s=8;s{"use strict";var i=r(7426),n=r(3349);function s(e,t,r){if(!(this instanceof s))return new s(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(i.toArray(t,r))}e.exports=s,s.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),n(e.length<=this.blockSize);for(var t=e.length;t{"use strict";var i=r(7426),n=r(6166),s=i.rotl32,o=i.sum32,a=i.sum32_3,c=i.sum32_4,h=n.BlockHash;function d(){if(!(this instanceof d))return new d;h.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function u(e,t,r,i){return e<=15?t^r^i:e<=31?t&r|~t&i:e<=47?(t|~r)^i:e<=63?t&i|r&~i:t^(r|~i)}function f(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function l(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}i.inherits(d,h),t.ripemd160=d,d.blockSize=512,d.outSize=160,d.hmacStrength=192,d.padLength=64,d.prototype._update=function(e,t){for(var r=this.h[0],i=this.h[1],n=this.h[2],h=this.h[3],d=this.h[4],b=r,v=i,w=n,S=h,_=d,x=0;x<80;x++){var k=o(s(c(r,u(x,i,n,h),e[p[x]+t],f(x)),m[x]),d);r=d,d=h,h=s(n,10),n=i,i=k,k=o(s(c(b,u(79-x,v,w,S),e[y[x]+t],l(x)),g[x]),_),b=_,_=S,S=s(w,10),w=v,v=k}k=a(this.h[1],n,S),this.h[1]=a(this.h[2],h,_),this.h[2]=a(this.h[3],d,b),this.h[3]=a(this.h[4],r,v),this.h[4]=a(this.h[0],i,w),this.h[0]=k},d.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h,"little"):i.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],y=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],m=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],g=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},6229:(e,t,r)=>{"use strict";t.sha1=r(3917),t.sha224=r(7714),t.sha256=r(2287),t.sha384=r(1911),t.sha512=r(7766)},3917:(e,t,r)=>{"use strict";var i=r(7426),n=r(6166),s=r(6225),o=i.rotl32,a=i.sum32,c=i.sum32_5,h=s.ft_1,d=n.BlockHash,u=[1518500249,1859775393,2400959708,3395469782];function f(){if(!(this instanceof f))return new f;d.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}i.inherits(f,d),e.exports=f,f.blockSize=512,f.outSize=160,f.hmacStrength=80,f.padLength=64,f.prototype._update=function(e,t){for(var r=this.W,i=0;i<16;i++)r[i]=e[t+i];for(;i{"use strict";var i=r(7426),n=r(2287);function s(){if(!(this instanceof s))return new s;n.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}i.inherits(s,n),e.exports=s,s.blockSize=512,s.outSize=224,s.hmacStrength=192,s.padLength=64,s.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h.slice(0,7),"big"):i.split32(this.h.slice(0,7),"big")}},2287:(e,t,r)=>{"use strict";var i=r(7426),n=r(6166),s=r(6225),o=r(3349),a=i.sum32,c=i.sum32_4,h=i.sum32_5,d=s.ch32,u=s.maj32,f=s.s0_256,l=s.s1_256,p=s.g0_256,y=s.g1_256,m=n.BlockHash,g=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function b(){if(!(this instanceof b))return new b;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=g,this.W=new Array(64)}i.inherits(b,m),e.exports=b,b.blockSize=512,b.outSize=256,b.hmacStrength=192,b.padLength=64,b.prototype._update=function(e,t){for(var r=this.W,i=0;i<16;i++)r[i]=e[t+i];for(;i{"use strict";var i=r(7426),n=r(7766);function s(){if(!(this instanceof s))return new s;n.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}i.inherits(s,n),e.exports=s,s.blockSize=1024,s.outSize=384,s.hmacStrength=192,s.padLength=128,s.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h.slice(0,12),"big"):i.split32(this.h.slice(0,12),"big")}},7766:(e,t,r)=>{"use strict";var i=r(7426),n=r(6166),s=r(3349),o=i.rotr64_hi,a=i.rotr64_lo,c=i.shr64_hi,h=i.shr64_lo,d=i.sum64,u=i.sum64_hi,f=i.sum64_lo,l=i.sum64_4_hi,p=i.sum64_4_lo,y=i.sum64_5_hi,m=i.sum64_5_lo,g=n.BlockHash,b=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;g.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=b,this.W=new Array(160)}function w(e,t,r,i,n){var s=e&r^~e&n;return s<0&&(s+=4294967296),s}function S(e,t,r,i,n,s){var o=t&i^~t&s;return o<0&&(o+=4294967296),o}function _(e,t,r,i,n){var s=e&r^e&n^r&n;return s<0&&(s+=4294967296),s}function x(e,t,r,i,n,s){var o=t&i^t&s^i&s;return o<0&&(o+=4294967296),o}function k(e,t){var r=o(e,t,28)^o(t,e,2)^o(t,e,7);return r<0&&(r+=4294967296),r}function P(e,t){var r=a(e,t,28)^a(t,e,2)^a(t,e,7);return r<0&&(r+=4294967296),r}function M(e,t){var r=a(e,t,14)^a(e,t,18)^a(t,e,9);return r<0&&(r+=4294967296),r}function E(e,t){var r=o(e,t,1)^o(e,t,8)^c(e,t,7);return r<0&&(r+=4294967296),r}function I(e,t){var r=a(e,t,1)^a(e,t,8)^h(e,t,7);return r<0&&(r+=4294967296),r}function A(e,t){var r=a(e,t,19)^a(t,e,29)^h(e,t,6);return r<0&&(r+=4294967296),r}i.inherits(v,g),e.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var r=this.W,i=0;i<32;i++)r[i]=e[t+i];for(;i{"use strict";var i=r(7426).rotr32;function n(e,t,r){return e&t^~e&r}function s(e,t,r){return e&t^e&r^t&r}function o(e,t,r){return e^t^r}t.ft_1=function(e,t,r,i){return 0===e?n(t,r,i):1===e||3===e?o(t,r,i):2===e?s(t,r,i):void 0},t.ch32=n,t.maj32=s,t.p32=o,t.s0_256=function(e){return i(e,2)^i(e,13)^i(e,22)},t.s1_256=function(e){return i(e,6)^i(e,11)^i(e,25)},t.g0_256=function(e){return i(e,7)^i(e,18)^e>>>3},t.g1_256=function(e){return i(e,17)^i(e,19)^e>>>10}},7426:(e,t,r)=>{"use strict";var i=r(3349),n=r(6698);function s(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?"0"+e:e}function c(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=n,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n>6|192,r[i++]=63&o|128):s(e,n)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++n)),r[i++]=o>>18|240,r[i++]=o>>12&63|128,r[i++]=o>>6&63|128,r[i++]=63&o|128):(r[i++]=o>>12|224,r[i++]=o>>6&63|128,r[i++]=63&o|128)}else for(n=0;n>>0}return o},t.split32=function(e,t){for(var r=new Array(4*e.length),i=0,n=0;i>>24,r[n+1]=s>>>16&255,r[n+2]=s>>>8&255,r[n+3]=255&s):(r[n+3]=s>>>24,r[n+2]=s>>>16&255,r[n+1]=s>>>8&255,r[n]=255&s)}return r},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,r){return e+t+r>>>0},t.sum32_4=function(e,t,r,i){return e+t+r+i>>>0},t.sum32_5=function(e,t,r,i,n){return e+t+r+i+n>>>0},t.sum64=function(e,t,r,i){var n=e[t],s=i+e[t+1]>>>0,o=(s>>0,e[t+1]=s},t.sum64_hi=function(e,t,r,i){return(t+i>>>0>>0},t.sum64_lo=function(e,t,r,i){return t+i>>>0},t.sum64_4_hi=function(e,t,r,i,n,s,o,a){var c=0,h=t;return c+=(h=h+i>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,r,i,n,s,o,a){return t+i+s+a>>>0},t.sum64_5_hi=function(e,t,r,i,n,s,o,a,c,h){var d=0,u=t;return d+=(u=u+i>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,r,i,n,s,o,a,c,h){return t+i+s+a+h>>>0},t.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},t.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},t.shr64_hi=function(e,t,r){return e>>>r},t.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},9957:(e,t,r)=>{"use strict";var i=Function.prototype.call,n=Object.prototype.hasOwnProperty,s=r(6743);e.exports=s.call(i,n)},2723:(e,t,r)=>{"use strict";var i=r(7952),n=r(4367),s=r(3349);function o(e){if(!(this instanceof o))return new o(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=n.toArray(e.entropy,e.entropyEnc||"hex"),r=n.toArray(e.nonce,e.nonceEnc||"hex"),i=n.toArray(e.pers,e.persEnc||"hex");s(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,i)}e.exports=o,o.prototype._init=function(e,t,r){var i=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var n=0;n=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},o.prototype.generate=function(e,t,r,i){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(i=r,r=t,t=null),r&&(r=n.toArray(r,i||"hex"),this._update(r));for(var s=[];s.length{t.read=function(e,t,r,i,n){var s,o,a=8*n-i-1,c=(1<>1,d=-7,u=r?n-1:0,f=r?-1:1,l=e[t+u];for(u+=f,s=l&(1<<-d)-1,l>>=-d,d+=a;d>0;s=256*s+e[t+u],u+=f,d-=8);for(o=s&(1<<-d)-1,s>>=-d,d+=i;d>0;o=256*o+e[t+u],u+=f,d-=8);if(0===s)s=1-h;else{if(s===c)return o?NaN:1/0*(l?-1:1);o+=Math.pow(2,i),s-=h}return(l?-1:1)*o*Math.pow(2,s-i)},t.write=function(e,t,r,i,n,s){var o,a,c,h=8*s-n-1,d=(1<>1,f=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,l=i?0:s-1,p=i?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=d):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+u>=1?f/c:f*Math.pow(2,1-u))*c>=2&&(o++,c/=2),o+u>=d?(a=0,o=d):o+u>=1?(a=(t*c-1)*Math.pow(2,n),o+=u):(a=t*Math.pow(2,u-1)*Math.pow(2,n),o=0));n>=8;e[r+l]=255&a,l+=p,a/=256,n-=8);for(o=o<0;e[r+l]=255&o,l+=p,o/=256,h-=8);e[r+l-p]|=128*y}},6698:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},4634:e=>{var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},5473:(e,t,r)=>{"use strict";var i=("undefined"!=typeof JSON?JSON:r(4343)).stringify,n=r(4634),s=r(1189),o=r(487),a=r(8075),c=a("Array.prototype.join"),h=a("Array.prototype.push"),d=function(e,t){for(var r="",i=0;i1?arguments[1]:void 0,r=t&&t.space||"";"number"==typeof r&&(r=d(r," "));var a=!!t&&"boolean"==typeof t.cycles&&t.cycles,f=t&&t.replacer?o(t.replacer):u,l="function"==typeof t?t:t&&t.cmp,p=l&&function(e){var t=l.length>2&&function(t){return e[t]};return function(r,i){return l({key:r,value:e[r]},{key:i,value:e[i]},t?{__proto__:null,get:t}:void 0)}},y=[];return function e(t,o,u,l){var m=r?"\n"+d(l,r):"",g=r?": ":":";if(u&&u.toJSON&&"function"==typeof u.toJSON&&(u=u.toJSON()),void 0!==(u=f(t,o,u))){if("object"!=typeof u||null===u)return i(u);if(n(u)){for(var b=[],v=0;v{"use strict";t.parse=r(5776),t.stringify=r(9086)},5776:e=>{"use strict";var t,r,i,n={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"};function s(e){throw{name:"SyntaxError",message:e,at:t,text:i}}function o(e){return e&&e!==r&&s("Expected '"+e+"' instead of '"+r+"'"),r=i.charAt(t),t+=1,r}function a(){var e,t="";for("-"===r&&(t="-",o("-"));r>="0"&&r<="9";)t+=r,o();if("."===r)for(t+=".";o()&&r>="0"&&r<="9";)t+=r;if("e"===r||"E"===r)for(t+=r,o(),"-"!==r&&"+"!==r||(t+=r,o());r>="0"&&r<="9";)t+=r,o();return e=Number(t),isFinite(e)||s("Bad number"),e}function c(){var e,t,i,a="";if('"'===r)for(;o();){if('"'===r)return o(),a;if("\\"===r)if(o(),"u"===r){for(i=0,t=0;t<4&&(e=parseInt(o(),16),isFinite(e));t+=1)i=16*i+e;a+=String.fromCharCode(i)}else{if("string"!=typeof n[r])break;a+=n[r]}else a+=r}s("Bad string")}function h(){for(;r&&r<=" ";)o()}function d(){switch(h(),r){case"{":return function(){var e,t={};if("{"===r){if(o("{"),h(),"}"===r)return o("}"),t;for(;r;){if(e=c(),h(),o(":"),Object.prototype.hasOwnProperty.call(t,e)&&s('Duplicate key "'+e+'"'),t[e]=d(),h(),"}"===r)return o("}"),t;o(","),h()}}s("Bad object")}();case"[":return function(){var e=[];if("["===r){if(o("["),h(),"]"===r)return o("]"),e;for(;r;){if(e.push(d()),h(),"]"===r)return o("]"),e;o(","),h()}}s("Bad array")}();case'"':return c();case"-":return a();default:return r>="0"&&r<="9"?a():function(){switch(r){case"t":return o("t"),o("r"),o("u"),o("e"),!0;case"f":return o("f"),o("a"),o("l"),o("s"),o("e"),!1;case"n":return o("n"),o("u"),o("l"),o("l"),null;default:s("Unexpected '"+r+"'")}}()}}e.exports=function(e,n){var o;return i=e,t=0,r=" ",o=d(),h(),r&&s("Syntax error"),"function"==typeof n?function e(t,r){var i,s,o=t[r];if(o&&"object"==typeof o)for(i in d)Object.prototype.hasOwnProperty.call(o,i)&&(void 0===(s=e(o,i))?delete o[i]:o[i]=s);return n.call(t,r,o)}({"":o},""):o}},9086:e=>{"use strict";var t,r,i,n=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,s={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function o(e){return n.lastIndex=0,n.test(e)?'"'+e.replace(n,(function(e){var t=s[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)}))+'"':'"'+e+'"'}function a(e,n){var s,c,h,d,u,f=t,l=n[e];switch(l&&"object"==typeof l&&"function"==typeof l.toJSON&&(l=l.toJSON(e)),"function"==typeof i&&(l=i.call(n,e,l)),typeof l){case"string":return o(l);case"number":return isFinite(l)?String(l):"null";case"boolean":case"null":return String(l);case"object":if(!l)return"null";if(t+=r,u=[],"[object Array]"===Object.prototype.toString.apply(l)){for(d=l.length,s=0;s=0&&t<=u.levels.SILENT)return t;throw new TypeError("log.setLevel() called with invalid level: "+e)}"string"==typeof e?f+=":"+e:"symbol"==typeof e&&(f=void 0),u.name=e,u.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},u.methodFactory=r||d,u.getLevel=function(){return null!=h?h:null!=a?a:o},u.setLevel=function(e,r){return h=p(e),!1!==r&&function(e){var r=(i[e]||"silent").toUpperCase();if(typeof window!==t&&f){try{return void(window.localStorage[f]=r)}catch(e){}try{window.document.cookie=encodeURIComponent(f)+"="+r+";"}catch(e){}}}(h),c.call(u)},u.setDefaultLevel=function(e){a=p(e),l()||u.setLevel(e,!1)},u.resetLevel=function(){h=null,function(){if(typeof window!==t&&f){try{window.localStorage.removeItem(f)}catch(e){}try{window.document.cookie=encodeURIComponent(f)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}(),c.call(u)},u.enableAll=function(e){u.setLevel(u.levels.TRACE,e)},u.disableAll=function(e){u.setLevel(u.levels.SILENT,e)},u.rebuild=function(){if(s!==u&&(o=p(s.getLevel())),c.call(u),s===u)for(var e in n)n[e].rebuild()},o=p(s?s.getLevel():"WARN");var y=l();null!=y&&(h=p(y)),c.call(u)}(s=new u).getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=n[e];return t||(t=n[e]=new u(e,s.methodFactory)),t};var f=typeof window!==t?window.log:void 0;return s.noConflict=function(){return typeof window!==t&&window.log===s&&(window.log=f),s},s.getLoggers=function(){return n},s.default=s,s},void 0===(n=i.call(t,r,t,e))||(e.exports=n)}()},3349:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)}},4367:(e,t)=>{"use strict";var r=t;function i(e){return 1===e.length?"0"+e:e}function n(e){for(var t="",r=0;r>8,o=255&n;s?r.push(s,o):r.push(o)}return r},r.zero2=i,r.toHex=n,r.encode=function(e,t){return"hex"===t?n(e):e}},8875:(e,t,r)=>{"use strict";var i;if(!Object.keys){var n=Object.prototype.hasOwnProperty,s=Object.prototype.toString,o=r(1093),a=Object.prototype.propertyIsEnumerable,c=!a.call({toString:null},"toString"),h=a.call((function(){}),"prototype"),d=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(e){var t=e.constructor;return t&&t.prototype===e},f={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!f["$"+e]&&n.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{u(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();i=function(e){var t=null!==e&&"object"==typeof e,r="[object Function]"===s.call(e),i=o(e),a=t&&"[object String]"===s.call(e),f=[];if(!t&&!r&&!i)throw new TypeError("Object.keys called on a non-object");var p=h&&r;if(a&&e.length>0&&!n.call(e,0))for(var y=0;y0)for(var m=0;m{"use strict";var i=Array.prototype.slice,n=r(1093),s=Object.keys,o=s?function(e){return s(e)}:r(8875),a=Object.keys;o.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return n(e)?a(i.call(e)):a(e)})}else Object.keys=o;return Object.keys||o},e.exports=o},1093:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var r=t.call(e),i="[object Arguments]"===r;return i||(i="[object Array]"!==r&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),i}},6897:(e,t,r)=>{"use strict";var i=r(453),n=r(41),s=r(592)(),o=r(5795),a=r(9675),c=i("%Math.floor%");e.exports=function(e,t){if("function"!=typeof e)throw new a("`fn` is not a function");if("number"!=typeof t||t<0||t>4294967295||c(t)!==t)throw new a("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],i=!0,h=!0;if("length"in e&&o){var d=o(e,"length");d&&!d.configurable&&(i=!1),d&&!d.writable&&(h=!1)}return(i||h||!r)&&(s?n(e,"length",t,!0,!0):n(e,"length",t)),e}},7998:()=>{},7790:()=>{},3776:()=>{},3693:(e,t,r)=>{var i=r(7736);e.exports=function(e,t,r){return(t=i(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},9045:(e,t,r)=>{var i=r(3738).default;e.exports=function(e,t){if("object"!=i(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},7736:(e,t,r)=>{var i=r(3738).default,n=r(9045);e.exports=function(e){var t=n(e,"string");return"symbol"==i(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},3738:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},9190:(e,t,r)=>{"use strict";function i(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function n(e,...t){if(!((r=e)instanceof Uint8Array||null!=r&&"object"==typeof r&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function s(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function o(e,t){n(e);const r=t.outputLen;if(e.lengtha,CG:()=>o,ai:()=>i,ee:()=>n,t2:()=>s});const a={number:i,bool:function(e){if("boolean"!=typeof e)throw new Error(`boolean expected, not ${e}`)},bytes:n,hash:function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");i(e.outputLen),i(e.blockLen)},exists:s,output:o}},9271:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>u,B4:()=>c,P5:()=>a,WM:()=>h,im:()=>d,lD:()=>o});const i=BigInt(2**32-1),n=BigInt(32);function s(e,t=!1){return t?{h:Number(e&i),l:Number(e>>n&i)}:{h:0|Number(e>>n&i),l:0|Number(e&i)}}function o(e,t=!1){let r=new Uint32Array(e.length),i=new Uint32Array(e.length);for(let n=0;ne<>>32-r,c=(e,t,r)=>t<>>32-r,h=(e,t,r)=>t<>>64-r,d=(e,t,r)=>e<>>64-r,u={fromBig:s,split:o,toBig:(e,t)=>BigInt(e>>>0)<>>0),shrSH:(e,t,r)=>e>>>r,shrSL:(e,t,r)=>e<<32-r|t>>>r,rotrSH:(e,t,r)=>e>>>r|t<<32-r,rotrSL:(e,t,r)=>e<<32-r|t>>>r,rotrBH:(e,t,r)=>e<<64-r|t>>>r-32,rotrBL:(e,t,r)=>e>>>r-32|t<<64-r,rotr32H:(e,t)=>t,rotr32L:(e,t)=>e,rotlSH:a,rotlSL:c,rotlBH:h,rotlBL:d,add:function(e,t,r,i){const n=(t>>>0)+(i>>>0);return{h:e+r+(n/2**32|0)|0,l:0|n}},add3L:(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),add3H:(e,t,r,i)=>t+r+i+(e/2**32|0)|0,add4L:(e,t,r,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(i>>>0),add4H:(e,t,r,i,n)=>t+r+i+n+(e/2**32|0)|0,add5H:(e,t,r,i,n,s)=>t+r+i+n+s+(e/2**32|0)|0,add5L:(e,t,r,i,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(i>>>0)+(n>>>0)}},2531:(e,t,r)=>{"use strict";r.d(t,{Vw:()=>f,Fc:()=>d,O8:()=>o,qv:()=>c,po:()=>p,Ow:()=>a,ZJ:()=>u,DH:()=>s,ld:()=>l});const i="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;var n=r(9190);const s=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),o=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),a=(e,t)=>e<<32-t|e>>>t,c=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0],h=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;function d(e){for(let t=0;te().update(u(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function p(e=32){if(i&&"function"==typeof i.getRandomValues)return i.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}},9463:(e,t,r)=>{"use strict";r.d(t,{So:()=>M});var i=r(9190),n=r(9271),s=r(2531);const o=[],a=[],c=[],h=BigInt(0),d=BigInt(1),u=BigInt(2),f=BigInt(7),l=BigInt(256),p=BigInt(113);for(let e=0,t=d,r=1,i=0;e<24;e++){[r,i]=[i,(2*r+3*i)%5],o.push(2*(5*i+r)),a.push((e+1)*(e+2)/2%64);let n=h;for(let e=0;e<7;e++)t=(t<>f)*p)%l,t&u&&(n^=d<<(d<r>32?(0,n.WM)(e,t,r):(0,n.P5)(e,t,r),b=(e,t,r)=>r>32?(0,n.im)(e,t,r):(0,n.B4)(e,t,r);class v extends s.Vw{constructor(e,t,r,n=!1,o=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=o,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,(0,i.ai)(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=(0,s.DH)(this.state)}keccak(){s.qv||(0,s.Fc)(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let i=24-t;i<24;i++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const i=(t+8)%10,n=(t+2)%10,s=r[n],o=r[n+1],a=g(s,o,1)^r[i],c=b(s,o,1)^r[i+1];for(let r=0;r<50;r+=10)e[t+r]^=a,e[t+r+1]^=c}let t=e[2],n=e[3];for(let r=0;r<24;r++){const i=a[r],s=g(t,n,i),c=b(t,n,i),h=o[r];t=e[h],n=e[h+1],e[h]=s,e[h+1]=c}for(let t=0;t<50;t+=10){for(let i=0;i<10;i++)r[i]=e[t+i];for(let i=0;i<10;i++)e[t+i]^=~r[(i+2)%10]&r[(i+4)%10]}e[0]^=y[i],e[1]^=m[i]}r.fill(0)}(this.state32,this.rounds),s.qv||(0,s.Fc)(this.state32),this.posOut=0,this.pos=0}update(e){(0,i.t2)(this);const{blockLen:t,state:r}=this,n=(e=(0,s.ZJ)(e)).length;for(let i=0;i=r&&this.keccak();const s=Math.min(r-this.posOut,n-i);e.set(t.subarray(this.posOut,this.posOut+s),i),this.posOut+=s,i+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return(0,i.ai)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if((0,i.CG)(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:i,rounds:n,enableXOF:s}=this;return e||(e=new v(t,r,i,s,n)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=n,e.suffix=r,e.outputLen=i,e.enableXOF=s,e.destroyed=this.destroyed,e}}const w=(e,t,r)=>(0,s.ld)((()=>new v(t,e,r))),S=w(1,144,28),_=w(1,136,32),x=w(1,104,48),k=w(1,72,64);var P=r(651);(0,P.RS)(S);const M=(()=>{const e=(0,P.RS)(_);return e.create=_.create,e})();(0,P.RS)(x),(0,P.RS)(k)},651:(e,t,r)=>{"use strict";r.d(t,{RS:()=>n});var i=r(9190);function n(e){return t=>(i.Ay.bytes(t),e(t))}i.Ay.bool,i.Ay.bytes,(()=>{const e="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,t="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);t&&!e&&t("crypto")})()},7115:(e,t,r)=>{"use strict";r.d(t,{io:()=>ke});var i={};r.r(i),r.d(i,{Decoder:()=>me,Encoder:()=>pe,PacketType:()=>le,protocol:()=>fe});const n=Object.create(null);n.open="0",n.close="1",n.ping="2",n.pong="3",n.message="4",n.upgrade="5",n.noop="6";const s=Object.create(null);Object.keys(n).forEach((e=>{s[n[e]]=e}));const o={type:"error",data:"parser error"},a="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),c="function"==typeof ArrayBuffer,h=e=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,d=({type:e,data:t},r,i)=>a&&t instanceof Blob?r?i(t):u(t,i):c&&(t instanceof ArrayBuffer||h(t))?r?i(t):u(new Blob([t]),i):i(n[e]+(t||"")),u=(e,t)=>{const r=new FileReader;return r.onload=function(){const e=r.result.split(",")[1];t("b"+(e||""))},r.readAsDataURL(e)};function f(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let l;const p="undefined"==typeof Uint8Array?[]:new Uint8Array(256);for(let e=0;e<64;e++)p["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(e)]=e;const y="function"==typeof ArrayBuffer,m=(e,t)=>{if("string"!=typeof e)return{type:"message",data:b(e,t)};const r=e.charAt(0);return"b"===r?{type:"message",data:g(e.substring(1),t)}:s[r]?e.length>1?{type:s[r],data:e.substring(1)}:{type:s[r]}:o},g=(e,t)=>{if(y){const r=(e=>{let t,r,i,n,s,o=.75*e.length,a=e.length,c=0;"="===e[e.length-1]&&(o--,"="===e[e.length-2]&&o--);const h=new ArrayBuffer(o),d=new Uint8Array(h);for(t=0;t>4,d[c++]=(15&i)<<4|n>>2,d[c++]=(3&n)<<6|63&s;return h})(e);return b(r,t)}return{base64:!0,data:e}},b=(e,t)=>"blob"===t?e instanceof Blob?e:new Blob([e]):e instanceof ArrayBuffer?e:e.buffer,v=String.fromCharCode(30);let w;function S(e){return e.reduce(((e,t)=>e+t.length),0)}function _(e,t){if(e[0].length===t)return e.shift();const r=new Uint8Array(t);let i=0;for(let n=0;n(e.hasOwnProperty(r)&&(t[r]=e[r]),t)),{})}const M=k.setTimeout,E=k.clearTimeout;function I(e,t){t.useNativeTimers?(e.setTimeoutFn=M.bind(k),e.clearTimeoutFn=E.bind(k)):(e.setTimeoutFn=k.setTimeout.bind(k),e.clearTimeoutFn=k.clearTimeout.bind(k))}class A extends Error{constructor(e,t,r){super(e),this.description=t,this.context=r,this.type="TransportError"}}class T extends x{constructor(e){super(),this.writable=!1,I(this,e),this.opts=e,this.query=e.query,this.socket=e.socket}onError(e,t,r){return super.emitReserved("error",new A(e,t,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(e){"open"===this.readyState&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=m(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return-1===e.indexOf(":")?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(e){const t=function(e){let t="";for(let r in e)e.hasOwnProperty(r)&&(t.length&&(t+="&"),t+=encodeURIComponent(r)+"="+encodeURIComponent(e[r]));return t}(e);return t.length?"?"+t:""}}const O="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),N=64,K={};let C,L=0,R=0;function B(e){let t="";do{t=O[e%N]+t,e=Math.floor(e/N)}while(e>0);return t}function F(){const e=B(+new Date);return e!==C?(L=0,C=e):e+"."+B(L++)}for(;R{var e;3===r.readyState&&(null===(e=this.opts.cookieJar)||void 0===e||e.parseCookies(r)),4===r.readyState&&(200===r.status||1223===r.status?this.onLoad():this.setTimeoutFn((()=>{this.onError("number"==typeof r.status?r.status:0)}),0))},r.send(this.data)}catch(e){return void this.setTimeoutFn((()=>{this.onError(e)}),0)}"undefined"!=typeof document&&(this.index=z.requestsCount++,z.requests[this.index]=this)}onError(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}cleanup(e){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=q,e)try{this.xhr.abort()}catch(e){}"undefined"!=typeof document&&delete z.requests[this.index],this.xhr=null}}onLoad(){const e=this.xhr.responseText;null!==e&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}function J(){for(let e in z.requests)z.requests.hasOwnProperty(e)&&z.requests[e].abort()}z.requestsCount=0,z.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",J):"function"==typeof addEventListener&&addEventListener("onpagehide"in k?"pagehide":"unload",J,!1));const H="function"==typeof Promise&&"function"==typeof Promise.resolve?e=>Promise.resolve().then(e):(e,t)=>t(e,0),V=k.WebSocket||k.MozWebSocket;r(8287).hp;const Y="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),W={websocket:class extends T{constructor(e){super(e),this.supportsBinary=!e.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const e=this.uri(),t=this.opts.protocols,r=Y?{}:P(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=Y?new V(e,t,r):t?new V(e,t):new V(e)}catch(e){return this.emitReserved("error",e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t{try{this.ws.send(e)}catch(e){}i&&H((()=>{this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=F()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}check(){return!!V}},webtransport:class extends T{get name(){return"webtransport"}doOpen(){"function"==typeof WebTransport&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then((()=>{this.onClose()})).catch((e=>{this.onError("webtransport error",e)})),this.transport.ready.then((()=>{this.transport.createBidirectionalStream().then((e=>{const t=function(e,t){w||(w=new TextDecoder);const r=[];let i=0,n=-1,s=!1;return new TransformStream({transform(a,c){for(r.push(a);;){if(0===i){if(S(r)<1)break;const e=_(r,1);s=!(128&~e[0]),n=127&e[0],i=n<126?3:126===n?1:2}else if(1===i){if(S(r)<2)break;const e=_(r,2);n=new DataView(e.buffer,e.byteOffset,e.length).getUint16(0),i=3}else if(2===i){if(S(r)<8)break;const e=_(r,8),t=new DataView(e.buffer,e.byteOffset,e.length),s=t.getUint32(0);if(s>Math.pow(2,21)-1){c.enqueue(o);break}n=s*Math.pow(2,32)+t.getUint32(4),i=3}else{if(S(r)e){c.enqueue(o);break}}}})}(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=e.readable.pipeThrough(t).getReader(),i=new TransformStream({transform(e,t){!function(e,t){a&&e.data instanceof Blob?e.data.arrayBuffer().then(f).then(t):c&&(e.data instanceof ArrayBuffer||h(e.data))?t(f(e.data)):d(e,!1,(e=>{l||(l=new TextEncoder),t(l.encode(e))}))}(e,(r=>{const i=r.length;let n;if(i<126)n=new Uint8Array(1),new DataView(n.buffer).setUint8(0,i);else if(i<65536){n=new Uint8Array(3);const e=new DataView(n.buffer);e.setUint8(0,126),e.setUint16(1,i)}else{n=new Uint8Array(9);const e=new DataView(n.buffer);e.setUint8(0,127),e.setBigUint64(1,BigInt(i))}e.data&&"string"!=typeof e.data&&(n[0]|=128),t.enqueue(n),t.enqueue(r)}))}});i.readable.pipeTo(e.writable),this.writer=i.writable.getWriter();const n=()=>{r.read().then((({done:e,value:t})=>{e||(this.onPacket(t),n())})).catch((e=>{}))};n();const s={type:"open"};this.query.sid&&(s.data=`{"sid":"${this.query.sid}"}`),this.writer.write(s).then((()=>this.onOpen()))}))})))}write(e){this.writable=!1;for(let t=0;t{i&&H((()=>{this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){var e;null===(e=this.transport)||void 0===e||e.close()}},polling:class extends T{constructor(e){if(super(e),this.polling=!1,"undefined"!=typeof location){const t="https:"===location.protocol;let r=location.port;r||(r=t?"443":"80"),this.xd="undefined"!=typeof location&&e.hostname!==location.hostname||r!==e.port}const t=e&&e.forceBase64;this.supportsBinary=$&&!t,this.opts.withCredentials&&(this.cookieJar=void 0)}get name(){return"polling"}doOpen(){this.poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this.polling||!this.writable){let e=0;this.polling&&(e++,this.once("pollComplete",(function(){--e||t()}))),this.writable||(e++,this.once("drain",(function(){--e||t()})))}else t()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){((e,t)=>{const r=e.split(v),i=[];for(let e=0;e{if("opening"===this.readyState&&"open"===e.type&&this.onOpen(),"close"===e.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}doClose(){const e=()=>{this.write([{type:"close"}])};"open"===this.readyState?e():this.once("open",e)}write(e){this.writable=!1,((e,t)=>{const r=e.length,i=new Array(r);let n=0;e.forEach(((e,s)=>{d(e,!1,(e=>{i[s]=e,++n===r&&t(i.join(v))}))}))})(e,(e=>{this.doWrite(e,(()=>{this.writable=!0,this.emitReserved("drain")}))}))}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=F()),this.supportsBinary||t.sid||(t.b64=1),this.createUri(e,t)}request(e={}){return Object.assign(e,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new z(this.uri(),e)}doWrite(e,t){const r=this.request({method:"POST",data:e});r.on("success",t),r.on("error",((e,t)=>{this.onError("xhr post error",e,t)}))}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",((e,t)=>{this.onError("xhr poll error",e,t)})),this.pollXhr=e}}},X=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,G=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Q(e){if(e.length>2e3)throw"URI too long";const t=e,r=e.indexOf("["),i=e.indexOf("]");-1!=r&&-1!=i&&(e=e.substring(0,r)+e.substring(r,i).replace(/:/g,";")+e.substring(i,e.length));let n=X.exec(e||""),s={},o=14;for(;o--;)s[G[o]]=n[o]||"";return-1!=r&&-1!=i&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s.pathNames=function(e,t){const r=t.replace(/\/{2,9}/g,"/").split("/");return"/"!=t.slice(0,1)&&0!==t.length||r.splice(0,1),"/"==t.slice(-1)&&r.splice(r.length-1,1),r}(0,s.path),s.queryKey=function(e,t){const r={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(e,t,i){t&&(r[t]=i)})),r}(0,s.query),s}class Z extends x{constructor(e,t={}){super(),this.binaryType="arraybuffer",this.writeBuffer=[],e&&"object"==typeof e&&(t=e,e=null),e?(e=Q(e),t.hostname=e.host,t.secure="https"===e.protocol||"wss"===e.protocol,t.port=e.port,e.query&&(t.query=e.query)):t.host&&(t.hostname=Q(t.host).host),I(this,t),this.secure=null!=t.secure?t.secure:"undefined"!=typeof location&&"https:"===location.protocol,t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=t.port||("undefined"!=typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=t.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=function(e){let t={},r=e.split("&");for(let e=0,i=r.length;e{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);const r=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new W[e](r)}open(){let e;if(this.opts.rememberUpgrade&&Z.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((()=>{this.emitReserved("error","No transports available")}),0);e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(e=>this.onClose("transport close",e)))}probe(e){let t=this.createTransport(e),r=!1;Z.priorWebsocketSuccess=!1;const i=()=>{r||(t.send([{type:"ping",data:"probe"}]),t.once("packet",(e=>{if(!r)if("pong"===e.type&&"probe"===e.data){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;Z.priorWebsocketSuccess="websocket"===t.name,this.transport.pause((()=>{r||"closed"!==this.readyState&&(h(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())}))}else{const e=new Error("probe error");e.transport=t.name,this.emitReserved("upgradeError",e)}})))};function n(){r||(r=!0,h(),t.close(),t=null)}const s=e=>{const r=new Error("probe error: "+e);r.transport=t.name,n(),this.emitReserved("upgradeError",r)};function o(){s("transport closed")}function a(){s("socket closed")}function c(e){t&&e.name!==t.name&&n()}const h=()=>{t.removeListener("open",i),t.removeListener("error",s),t.removeListener("close",o),this.off("close",a),this.off("upgrading",c)};t.once("open",i),t.once("error",s),t.once("close",o),this.once("close",a),this.once("upgrading",c),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==e?this.setTimeoutFn((()=>{r||t.open()}),200):t.open()}onOpen(){if(this.readyState="open",Z.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade){let e=0;const t=this.upgrades.length;for(;e{this.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this.getWritablePackets();this.transport.send(e),this.prevBufferLen=e.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let e=1;for(let r=0;r=57344?r+=3:(i++,r+=4);return r}(t):Math.ceil(1.33*(t.byteLength||t.size))),r>0&&e>this.maxPayload)return this.writeBuffer.slice(0,r);e+=2}var t;return this.writeBuffer}write(e,t,r){return this.sendPacket("message",e,t,r),this}send(e,t,r){return this.sendPacket("message",e,t,r),this}sendPacket(e,t,r,i){if("function"==typeof t&&(i=t,t=void 0),"function"==typeof r&&(i=r,r=null),"closing"===this.readyState||"closed"===this.readyState)return;(r=r||{}).compress=!1!==r.compress;const n={type:e,data:t,options:r};this.emitReserved("packetCreate",n),this.writeBuffer.push(n),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this.onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},r=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(()=>{this.upgrading?r():e()})):this.upgrading?r():e()),this}onError(e){Z.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}onClose(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(e){const t=[];let r=0;const i=e.length;for(;r"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,re=Object.prototype.toString,ie="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===re.call(Blob),ne="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===re.call(File);function se(e){return ee&&(e instanceof ArrayBuffer||te(e))||ie&&e instanceof Blob||ne&&e instanceof File}function oe(e,t){if(!e||"object"!=typeof e)return!1;if(Array.isArray(e)){for(let t=0,r=e.length;t=0&&e.num{delete this.acks[e];for(let t=0;t{this.io.clearTimeoutFn(n),t.apply(this,e)};s.withError=!0,this.acks[e]=s}emitWithAck(e,...t){return new Promise(((r,i)=>{const n=(e,t)=>e?i(e):r(t);n.withError=!0,t.push(n),this.emit(e,...t)}))}_addToQueue(e){let t;"function"==typeof e[e.length-1]&&(t=e.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push(((e,...i)=>{if(r===this._queue[0])return null!==e?r.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(e)):(this._queue.shift(),t&&t(null,...i)),r.pending=!1,this._drainQueue()})),this._queue.push(r),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||0===this._queue.length)return;const t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){"function"==typeof this.auth?this.auth((e=>{this._sendConnectPacket(e)})):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:le.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach((e=>{if(!this.sendBuffer.some((t=>String(t.id)===e))){const t=this.acks[e];delete this.acks[e],t.withError&&t.call(this,new Error("socket has been disconnected"))}}))}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case le.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case le.EVENT:case le.BINARY_EVENT:this.onevent(e);break;case le.ACK:case le.BINARY_ACK:this.onack(e);break;case le.DISCONNECT:this.ondisconnect();break;case le.CONNECT_ERROR:this.destroy();const t=new Error(e.data.message);t.data=e.data.data,this.emitReserved("connect_error",t)}}onevent(e){const t=e.data||[];null!=e.id&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const r of t)r.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&"string"==typeof e[e.length-1]&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let r=!1;return function(...i){r||(r=!0,t.packet({type:le.ACK,id:e,data:i}))}}onack(e){const t=this.acks[e.id];"function"==typeof t&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach((e=>this.emitEvent(e))),this.receiveBuffer=[],this.sendBuffer.forEach((e=>{this.notifyOutgoingListeners(e),this.packet(e)})),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach((e=>e())),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:le.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let r=0;r0&&e.jitter<=1?e.jitter:0,this.attempts=0}Se.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),r=Math.floor(t*this.jitter*e);e=1&Math.floor(10*t)?e+r:e-r}return 0|Math.min(e,this.max)},Se.prototype.reset=function(){this.attempts=0},Se.prototype.setMin=function(e){this.ms=e},Se.prototype.setMax=function(e){this.max=e},Se.prototype.setJitter=function(e){this.jitter=e};class _e extends x{constructor(e,t){var r;super(),this.nsps={},this.subs=[],e&&"object"==typeof e&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.opts=t,I(this,t),this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(r=t.randomizationFactor)&&void 0!==r?r:.5),this.backoff=new Se({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this._readyState="closed",this.uri=e;const n=t.parser||i;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this._autoConnect=!1!==t.autoConnect,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}reconnectionAttempts(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}randomizationFactor(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new Z(this.uri,this.opts);const t=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const i=be(t,"open",(function(){r.onopen(),e&&e()})),n=t=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",t),e?e(t):this.maybeReconnectOnOpen()},s=be(t,"error",n);if(!1!==this._timeout){const e=this._timeout,r=this.setTimeoutFn((()=>{i(),n(new Error("timeout")),t.close()}),e);this.opts.autoUnref&&r.unref(),this.subs.push((()=>{this.clearTimeoutFn(r)}))}return this.subs.push(i),this.subs.push(s),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(be(e,"ping",this.onping.bind(this)),be(e,"data",this.ondata.bind(this)),be(e,"error",this.onerror.bind(this)),be(e,"close",this.onclose.bind(this)),be(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(e){this.onclose("parse error",e)}}ondecoded(e){H((()=>{this.emitReserved("packet",e)}),this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,t){let r=this.nsps[e];return r?this._autoConnect&&!r.active&&r.connect():(r=new we(this,e,t),this.nsps[e]=r),r}_destroy(e){const t=Object.keys(this.nsps);for(const e of t)if(this.nsps[e].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let r=0;re())),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(e,t){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn((()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),e.skipReconnect||e.open((t=>{t?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",t)):e.onreconnect()})))}),t);this.opts.autoUnref&&r.unref(),this.subs.push((()=>{this.clearTimeoutFn(r)}))}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const xe={};function ke(e,t){"object"==typeof e&&(t=e,e=void 0);const r=function(e,t="",r){let i=e;r=r||"undefined"!=typeof location&&location,null==e&&(e=r.protocol+"//"+r.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?r.protocol+e:r.host+e),/^(https?|wss?):\/\//.test(e)||(e=void 0!==r?r.protocol+"//"+e:"https://"+e),i=Q(e)),i.port||(/^(http|ws)$/.test(i.protocol)?i.port="80":/^(http|ws)s$/.test(i.protocol)&&(i.port="443")),i.path=i.path||"/";const n=-1!==i.host.indexOf(":")?"["+i.host+"]":i.host;return i.id=i.protocol+"://"+n+":"+i.port+t,i.href=i.protocol+"://"+n+(r&&r.port===i.port?"":":"+i.port),i}(e,(t=t||{}).path||"/socket.io"),i=r.source,n=r.id,s=r.path,o=xe[n]&&s in xe[n].nsps;let a;return t.forceNew||t["force new connection"]||!1===t.multiplex||o?a=new _e(i,t):(xe[n]||(xe[n]=new _e(i,t)),a=xe[n]),r.query&&!t.query&&(t.query=r.queryKey),a.socket(r.path,t)}Object.assign(ke,{Manager:_e,Socket:we,io:ke,connect:ke})},1636:e=>{"use strict";e.exports={rE:"6.6.1"}}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var s=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(s.exports,s,s.exports,r),s.loaded=!0,s.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var i={};return(()=>{"use strict";r.r(i),r.d(i,{AsyncStorage:()=>I,COREKIT_STATUS:()=>Xr,DELIMITERS:()=>f,ERRORS:()=>l,FIELD_ELEMENT_HEX_LEN:()=>b,FactorKeyTypeShareDescription:()=>u,MAX_FACTORS:()=>v,MemoryStorage:()=>E,SCALAR_LEN:()=>g,SOCIAL_FACTOR_INDEX:()=>p,SOCIAL_TKEY_INDEX:()=>w,TssSecurityQuestion:()=>Wr,TssSecurityQuestionStore:()=>Yr,TssShareType:()=>y,USER_PATH:()=>d,VALID_SHARE_INDICES:()=>m,WEB3AUTH_NETWORK:()=>h,Web3AuthMPCCoreKit:()=>Rs,deriveShareCoefficients:()=>As,ed25519:()=>ps,factorKeyCurve:()=>zr,fraction:()=>ks,generateEd25519Seed:()=>ms,generateFactorKey:()=>gs,generateSessionNonce:()=>Ts,generateTSSEndpoints:()=>bs,getHashedPrivateKey:()=>Ss,getSessionId:()=>Os,keyToMnemonic:()=>ie,lagrangeCoefficient:()=>Ps,lagrangeCoefficients:()=>Ms,log:()=>Cs,makeEthereumSigner:()=>Ks,mnemonicToKey:()=>re,parseToken:()=>ws,randomBytes:()=>ys,sampleEndpoints:()=>xs,scalarBNToBufferSEC1:()=>_s,sigToRSV:()=>Ns,storageAvailable:()=>vs});const e={MAINNET:"mainnet",TESTNET:"testnet",CYAN:"cyan",AQUA:"aqua",CELESTE:"celeste"},t={SAPPHIRE_DEVNET:"sapphire_devnet",SAPPHIRE_MAINNET:"sapphire_mainnet"},n=[],s={[e.AQUA]:{migrationCompleted:!0,networkIdentifier:"aqua",networkMigratedTo:t.SAPPHIRE_MAINNET},[e.CELESTE]:{migrationCompleted:!0,networkIdentifier:"celeste",networkMigratedTo:t.SAPPHIRE_MAINNET},[e.CYAN]:{migrationCompleted:!0,networkIdentifier:"cyan",networkMigratedTo:t.SAPPHIRE_MAINNET},[e.MAINNET]:{migrationCompleted:!0,networkIdentifier:"mainnet",networkMigratedTo:t.SAPPHIRE_MAINNET},[e.TESTNET]:{migrationCompleted:!0,networkIdentifier:"teal",networkMigratedTo:t.SAPPHIRE_DEVNET}},o={[t.SAPPHIRE_MAINNET]:"https://signer.web3auth.io",[t.SAPPHIRE_DEVNET]:"https://signer.web3auth.io",[e.MAINNET]:"https://signer.web3auth.io",[e.TESTNET]:"https://signer.web3auth.io",[e.CYAN]:"https://signer-polygon.web3auth.io",[e.AQUA]:"https://signer-polygon.web3auth.io",[e.CELESTE]:"https://signer-polygon.web3auth.io"},a={[e.MAINNET]:"https://metadata.web3auth.io",[e.TESTNET]:"https://metadata.web3auth.io",[e.CYAN]:"https://metadata.web3auth.io",[e.AQUA]:"https://metadata.web3auth.io",[e.CELESTE]:"https://metadata.web3auth.io"},c={SECP256K1:"secp256k1",ED25519:"ed25519"},h={MAINNET:t.SAPPHIRE_MAINNET,DEVNET:t.SAPPHIRE_DEVNET},d={NEW:"NewAccount",EXISTING:"ExistingAccount",REHYDRATE:"RehydrateAccount",RECOVER:"RecoverAccount"};let u=function(e){return e.HashedShare="hashedShare",e.SecurityQuestions="tssSecurityQuestions",e.DeviceShare="deviceShare",e.SeedPhrase="seedPhrase",e.PasswordShare="passwordShare",e.SocialShare="socialShare",e.Other="Other",e}({});const f={Delimiter1:"",Delimiter2:"",Delimiter3:"",Delimiter4:""},l={TKEY_SHARES_REQUIRED:"required more shares",INVALID_BACKUP_SHARE:"invalid backup share"},p=1;let y=function(e){return e[e.DEVICE=2]="DEVICE",e[e.RECOVERY=3]="RECOVERY",e}({});const m=[y.DEVICE,y.RECOVERY],g=32,b=64,v=10,w=1;function S(e){return S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},S(e)}function _(e,t,r){return(t=function(e){var t=function(e){if("object"!=S(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=S(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==S(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class x extends Error{constructor(e,t){super(e,t),_(this,"name",void 0),Object.defineProperty(this,"name",{value:new.target.name,enumerable:!1,configurable:!0}),function(e,t){const{setPrototypeOf:r}=Object;r?r(e,t):e.__proto__=t}(this,new.target.prototype),function(e,t=e.constructor){const{captureStackTrace:r}=Error;r&&r(e,t)}(this)}}class k extends x{constructor(e,t){super(t),_(this,"code",void 0),_(this,"message",void 0),this.code=e,this.message=t||"",Object.defineProperty(this,"name",{value:"TkeyError"})}toJSON(){return{name:this.name,code:this.code,message:this.message}}toString(){return JSON.stringify(this.toJSON())}}class P extends k{constructor(e,t){super(e,t),Object.defineProperty(this,"name",{value:"CoreKitError"})}static fromCode(e,t=""){return new P(e,`${P.messages[e]} ${t}`)}static default(e=""){return new P(1e3,`${P.messages[1e3]} ${e}`)}static chainConfigInvalid(e=""){return P.fromCode(1001,e)}static clientIdInvalid(e=""){return P.fromCode(1002,e)}static storageTypeUnsupported(e=""){return P.fromCode(1003,e)}static oauthLoginUnsupported(e=""){return P.fromCode(1004,e)}static noValidStorageOptionFound(e=""){return P.fromCode(1005,e)}static noDataFoundInStorage(e=""){return P.fromCode(1006,e)}static invalidConfig(e=""){return P.fromCode(1007,e)}static tssLibRequired(e=""){return P.fromCode(1101,e)}static tkeyInstanceUninitialized(e=""){return P.fromCode(1102,e)}static duplicateTssIndex(e=""){return P.fromCode(1103,e)}static nodeDetailsRetrievalFailed(e=""){return P.fromCode(1104,e)}static prefetchValueExceeded(e=""){return P.fromCode(1105,e)}static invalidTorusLoginResponse(e=""){return P.fromCode(1106,e)}static invalidTorusAggregateLoginResponse(e=""){return P.fromCode(1107,e)}static unsupportedRedirectMethod(e=""){return P.fromCode(1108,e)}static postBoxKeyMissing(e=""){return P.fromCode(1109,e)}static tssShareTypeIndexMissing(e=""){return P.fromCode(1110,e)}static tssPublicKeyOrEndpointsMissing(e=""){return P.fromCode(1111,e)}static activeSessionNotFound(e=""){return P.fromCode(1112,e)}static tssNoncesMissing(e=""){return P.fromCode(1113,e)}static tssKeyImportNotAllowed(e=""){return P.fromCode(1114,e)}static factorKeyNotPresent(e=""){return P.fromCode(1201,e)}static factorKeyAlreadyExists(e=""){return P.fromCode(1202,e)}static mfaAlreadyEnabled(e=""){return P.fromCode(1203,e)}static cannotDeleteLastFactor(e=""){return P.fromCode(1204,e)}static factorInUseCannotBeDeleted(e=""){return P.fromCode(1205,e)}static userNotLoggedIn(e=""){return P.fromCode(1206,e)}static providedFactorKeyInvalid(e=""){return P.fromCode(1207,e)}static factorEncsMissing(e=""){return P.fromCode(1208,e)}static noMetadataFound(e=""){return P.fromCode(1209,e)}static newShareIndexInvalid(e=""){return P.fromCode(1210,e)}static maximumFactorsReached(e=""){return P.fromCode(1211,e)}static noMetadataShareFound(e=""){return P.fromCode(1212,e)}static signaturesNotPresent(e=""){return P.fromCode(1213,e)}static factorPubsMissing(e=""){return P.fromCode(1214,e)}static commitChangesBeforeMFA(e=""){return P.fromCode(1301,e)}static mpcCoreKitNotInitialized(e=""){return P.fromCode(1302,e)}}_(P,"messages",{1001:"You must specify a valid eip155 chain configuration in the options.",1002:"You must specify a web3auth clientId.",1003:"Unsupported storage type in this UX mode.",1004:"OAuth login is NOT supported in this UX mode.",1005:"No valid storage option found.",1006:"No data found in storage.",1007:"Invalid config.",1101:"'tssLib' is required when running in this UX mode.",1102:"'tkey' instance has not been initialized.",1103:"Duplicate TSS index found. Ensure that each TSS index is unique.",1104:"Failed to retrieve node details. Please check your network connection and try again.",1105:"The prefetch TSS public keys exceeds the maximum allowed limit of 3.",1106:"Invalid 'TorusLoginResponse' data provided.",1107:"Invalid 'TorusAggregateLoginResponse' data provided.",1108:"Unsupported method type encountered in redirect result.",1109:"OAuthKey not present in state.",1110:"TSS Share Type (Index) not present in state when getting current factor key.",1111:"'tssPubKey' or 'torusNodeTSSEndpoints' are missing.",1112:"No active session found.",1113:"tssNonces not present in metadata when getting tss nonce.",1114:"A TSS key cannot be imported for an existing user who already has a key configured.",1201:"factorKey not present in state when required.",1202:"A factor with the same key already exists.",1203:"MFA is already enabled.",1204:"Cannot delete the last remaining factor as at least one factor is required.",1205:"The factor currently in use cannot be deleted.",1206:"User is not logged in.",1207:"Provided factor key is invalid.",1208:"'factorEncs' mpt [resemt].",1209:"No metadata found for the provided factor key. Consider resetting your account if this error persists.",1210:"The new share index is not valid. It must be one of the valid share indices.",1211:"The maximum number of allowable factors (10) has been reached.",1212:"No metadata share found in the current polynomial.",1213:"No signatures found.",1214:"Factor public keys not present",1301:"The 'CommitChanges' method must be called before enabling MFA.",1302:"The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations."});const M=P;class E{constructor(){_(this,"_store",{})}getItem(e){return this._store[e]||null}setItem(e,t){this._store[e]=t}removeItem(e){delete this._store[e]}clear(){this._store={}}}class I{constructor(e,t){_(this,"storage",void 0),_(this,"_storeKey",void 0),this.storage=t,this._storeKey=e}async toJSON(){const e=await this.storage.getItem(this._storeKey);if(!e)throw M.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`);return e}async resetStore(){const e=await this.getStore();return await this.storage.setItem(this._storeKey,JSON.stringify({})),e}async getStore(){return JSON.parse(await this.storage.getItem(this._storeKey)||"{}")}async get(e){return JSON.parse(await this.storage.getItem(this._storeKey)||"{}")[e]}async set(e,t){const r=JSON.parse(await this.storage.getItem(this._storeKey)||"{}");r[e]=t,await this.storage.setItem(this._storeKey,JSON.stringify(r))}async remove(e){const t=JSON.parse(await this.storage.getItem(this._storeKey)||"{}");delete t[e],await this.storage.setItem(this._storeKey,JSON.stringify(t))}}var A=r(9404),T=r.n(A);const O=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];var N,K=(N=function(e,t){return N=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},N(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}N(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),C=function(e){function t(t,r){var i,n,s,o=this.constructor,a=e.call(this,t,r)||this;return Object.defineProperty(a,"name",{value:o.name,enumerable:!1,configurable:!0}),i=a,n=o.prototype,(s=Object.setPrototypeOf)?s(i,n):i.__proto__=n,function(e,t){void 0===t&&(t=e.constructor);var r=Error.captureStackTrace;r&&r(e,t)}(a),a}return K(t,e),t}(Error);class L extends C{constructor(e,t){super(t),_(this,"code",void 0),_(this,"message",void 0),this.code=e,this.message=t||"",Object.defineProperty(this,"name",{value:"TkeyError"})}toJSON(){return{name:this.name,code:this.code,message:this.message}}toString(){return JSON.stringify(this.toJSON())}}class R extends L{constructor(e,t){super(e,t),Object.defineProperty(this,"name",{value:"ShareSerializationError"})}static fromCode(e,t=""){return new R(e,`${R.messages[e]}${t}`)}static default(e=""){return new R(7e3,`${R.messages[7e3]}${e}`)}static typeNotSupported(e=""){return R.fromCode(7010,e)}static invalidEntropy(e=""){return R.fromCode(7011,e)}static invalidChecksum(e=""){return R.fromCode(7012,e)}static invalidMnemonic(e=""){return R.fromCode(7013,e)}}_(R,"messages",{7e3:"Custom",7010:"Type is not supported",7011:"Invalid Entropy",7012:"Invalid Checksum",7013:"Invalid mnemonic"});var B=R,F=r(9190),D=r(2531);const U=(e,t,r)=>e&t^e&r^t&r;class j extends D.Vw{constructor(e,t,r,i){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=(0,D.O8)(this.buffer)}update(e){(0,F.t2)(this);const{view:t,buffer:r,blockLen:i}=this,n=(e=(0,D.ZJ)(e)).length;for(let s=0;si-s&&(this.process(r,0),s=0);for(let e=s;e>n&s),a=Number(r&s),c=i?4:0,h=i?0:4;e.setUint32(t+c,o,i),e.setUint32(t+h,a,i)}(r,i-8,BigInt(8*this.length),n),this.process(r,0);const o=(0,D.O8)(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=a/4,h=this.get();if(c>h.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e>>3,n=(0,D.Ow)(r,17)^(0,D.Ow)(r,19)^r>>>10;z[e]=n+z[e-7]+i+z[e-16]|0}let{A:r,B:i,C:n,D:s,E:o,F:a,G:c,H:h}=this;for(let e=0;e<64;e++){const t=h+((0,D.Ow)(o,6)^(0,D.Ow)(o,11)^(0,D.Ow)(o,25))+((d=o)&a^~d&c)+q[e]+z[e]|0,u=((0,D.Ow)(r,2)^(0,D.Ow)(r,13)^(0,D.Ow)(r,22))+U(r,i,n)|0;h=c,c=a,a=o,o=s+t|0,s=n,n=i,i=r,r=t+u|0}var d;r=r+this.A|0,i=i+this.B|0,n=n+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,c=c+this.G|0,h=h+this.H|0,this.set(r,i,n,s,o,a,c,h)}roundClean(){z.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const H=(0,D.ld)((()=>new J));var V=r(651);const Y=(0,V.RS)(H);var W=r(8287).hp;function X(e){return parseInt(e,2)}function G(e,t,r){let i=e;for(;i.lengthG(e.toString(2),"0",8))).join("")}function Z(e){const t=8*e.length/32,r=Y(e);return Q(Array.from(r)).slice(0,t)}class ee{constructor(){_(this,"moduleName",void 0),_(this,"tbSDK",void 0),this.moduleName="shareSerialization"}static serializeMnemonic(e){return function(e,t){let r;if(W.isBuffer(e)||(r=W.from(e,"hex")),r.length<16)throw B.invalidEntropy();if(r.length>32)throw B.invalidEntropy();if(r.length%4!=0)throw B.invalidEntropy();const i=(Q(Array.from(r))+Z(r)).match(/(.{1,11})/g).map((e=>{const r=X(e);return t[r]}));return"あいこくしん"===t[0]?i.join(" "):i.join(" ")}(e.toString("hex").padStart(64,"0"),O)}static deserializeMnemonic(e){return new(T())(function(e,t){const r=(i=e,(i||"").normalize("NFKD")).split(" ");var i;if(r.length%3!=0)throw B.invalidMnemonic();const n=r.map((e=>{const r=t.indexOf(e);if(-1===r)throw B.invalidMnemonic();return G(r.toString(2),"0",11)})).join(""),s=32*Math.floor(n.length/33),o=n.slice(0,s),a=n.slice(s),c=o.match(/(.{1,8})/g).map(X);if(c.length<16)throw B.invalidEntropy();if(c.length>32)throw B.invalidEntropy();if(c.length%4!=0)throw B.invalidEntropy();const h=W.from(c);if(Z(h)!==a)throw B.invalidChecksum();return h.toString("hex")}(e,O),"hex")}setModuleReferences(e){this.tbSDK=e,this.tbSDK._addShareSerializationMiddleware(this.serialize.bind(this),this.deserialize.bind(this))}async initialize(){}async serialize(e,t){if("mnemonic"===t)return ee.serializeMnemonic(e);throw B.typeNotSupported()}async deserialize(e,t){if("mnemonic"===t)return ee.deserializeMnemonic(e);throw B.typeNotSupported()}}var te=ee;function re(e){return te.deserializeMnemonic(e).toString("hex")}function ie(e){const t=new(T())(e,"hex");return te.serializeMnemonic(t)}function ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function se(e){for(var t=1;t{const t=e instanceof Error,r="string"==typeof e;let i;if(e&&"object"==typeof e&&"status"in e&&"type"in e){const t=e,r=t.headers.get("content-type");if(r.includes("application/json")){const e=await t.json();i=new Error((null==e?void 0:e.error)||(null==e?void 0:e.message)||JSON.stringify(e))}else i=r.includes("text/plain")?new Error(await t.text()):new Error(`${t.status} ${t.type.toString()} ${t.statusText}`)}else i=r?new Error(e):t?e:new Error("Unknown error");return i};var ae=r(9024),ce=r(6729),he=r.n(ce),de=r(8287).hp;const ue=new ce.ec("secp256k1");async function fe(e,t){const r=await(0,ae.w)(e,t);return{ciphertext:r.ciphertext.toString("hex"),ephemPublicKey:r.ephemPublicKey.toString("hex"),iv:r.iv.toString("hex"),mac:r.mac.toString("hex")}}async function le(e,t){const r={ciphertext:de.from(t.ciphertext,"hex"),ephemPublicKey:de.from(t.ephemPublicKey,"hex"),iv:de.from(t.iv,"hex"),mac:de.from(t.mac,"hex")};return(0,ae.Yc)(e,r)}async function pe(e){return(t=e)&&t.stack&&""!==t.message?e:oe(e);var t}function ye(e){const t=new(T())((0,ae.F_)());return e.find((e=>e.eq(t)))?ye(e):t}const me="KEY_NOT_FOUND",ge="SHARE_DELETED";function be(e){return"0x"===e.slice(0,2)?e.slice(2):e}var ve=r(8287).hp;class we{constructor(e,t){_(this,"x",void 0),_(this,"y",void 0),this.x=new(T())(e,"hex"),this.y=new(T())(t,"hex")}static fromScalar(e,t){const r=t.g.mul(e);return we.fromElliptic(r)}static fromCompressedPub(e){const t=ue.keyFromPublic(e,"hex").getPublic();return new we(t.getX(),t.getY())}static fromJSON(e){const{x:t,y:r}=e;return new we(t,r)}static fromElliptic(e){return e.isInfinity()?new we(null,null):new we(e.getX(),e.getY())}static fromSEC1(e,t){if(2===t.length&&"00"===t){const t=e.g.mul(new(T())(0));return we.fromElliptic(t)}const r=e.keyFromPublic(t,"hex").getPublic();return we.fromElliptic(r)}encode(e){switch(e){case"arr":return ve.concat([ve.from("0x04","hex"),ve.from(this.x.toString("hex"),"hex"),ve.from(this.y.toString("hex"),"hex")]);case"elliptic-compressed":{const e=ue.keyFromPublic({x:this.x.toString("hex"),y:this.y.toString("hex")},"hex");return ve.from(e.getPublic(!0,"hex"))}default:throw new Error("encoding doesnt exist in Point")}}toEllipticPoint(e){return this.isIdentity()?e.g.mul(new(T())(0)):e.keyFromPublic({x:this.x.toString("hex"),y:this.y.toString("hex")},"hex").getPublic()}toSEC1(e,t=!1){if(this.isIdentity())return ve.from("00","hex");const r=this.toEllipticPoint(e);return ve.from(r.encode("hex",t),"hex")}toJSON(){return{x:this.x.toString("hex"),y:this.y.toString("hex")}}isIdentity(){return null===this.x&&null===this.y}equals(e){return this.isIdentity()?e.isIdentity():this.x.eq(e.x)&&this.y.eq(e.y)}}var Se=we;const _e=(e,t)=>{let r=e;if("number"==typeof r&&(r=Array.from({length:r},((e,t)=>t))),t>r.length||t<=0)return[];if(t===r.length)return[r];if(1===t)return r.reduce(((e,t)=>[...e,[t]]),[]);const i=[];let n=[];for(let e=0;e<=r.length-t+1;e+=1){n=_e(r.slice(e+1),t-1);for(let t=0;tnew(T())(e))),s=new(T())(r),o=new(T())(i);let a=new(T())(1),c=new(T())(1);for(let t=0;tue.keyFromPrivate(e.toString("hex",64)),Ke=e=>{const t=new(T())(e,"hex");return Oe.from(t.toString("hex",64),"hex")},Ce=e=>(0,ae.qb)(Ke(e)),Le=e=>{const t=(e=>ue.keyFromPrivate(e.toString("hex",64)).getPublic())(e);return new Se(t.getX().toString("hex"),t.getY().toString("hex"))};class Re{constructor(e,t){_(this,"shareCommitment",void 0),_(this,"shareIndex",void 0),this.shareCommitment=new Se(t.x,t.y),this.shareIndex=new(T())(e,"hex")}static fromJSON(e){const{shareCommitment:t,shareIndex:r}=e;return new Re(r,Se.fromJSON(t))}toJSON(){return{shareCommitment:this.shareCommitment,shareIndex:this.shareIndex.toString("hex")}}}var Be=Re;class Fe{constructor(e,t){_(this,"share",void 0),_(this,"shareIndex",void 0),this.share=new(T())(t,"hex"),this.shareIndex=new(T())(e,"hex")}static fromJSON(e){const{share:t,shareIndex:r}=e;return new Fe(r,t)}getPublicShare(){return new Be(this.shareIndex,Le(this.share))}toJSON(){return{share:this.share.toString("hex"),shareIndex:this.shareIndex.toString("hex")}}}var De=Fe;class Ue{constructor(e,t){_(this,"share",void 0),_(this,"polynomialID",void 0),this.share=e,this.polynomialID=t}static fromJSON(e){const{share:t,polynomialID:r}=e;return new Ue(De.fromJSON(t),r)}toJSON(){return{share:this.share,polynomialID:this.polynomialID.toString()}}}var je=Ue;const qe="__ONE_KEY_DELETE_NONCE__",$e=(e=>{const t=new Uint8Array(256);for(let e=0;e>>0,h=new Uint8Array(c);for(;e[s];){let i=t[e.charCodeAt(s)];if(255===i)return;let n=0;for(let e=c-1;(0!==i||n>>0,h[e]=i%256>>>0,i=i/256>>>0;if(0!==i)throw new Error("Non-zero carry");a=n,s++}let d=c-a;for(;d!==c&&0===h[d];)d++;const u=new Uint8Array(o+(c-d));let f=o;for(;d!==c;)u[f++]=h[d++];return u}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let n=0,o=0,a=0;const c=t.length;for(;a!==c&&0===t[a];)a++,n++;const h=(c-a)*s+1>>>0,d=new Uint8Array(h);for(;a!==c;){let e=t[a],i=0;for(let t=h-1;(0!==e||i>>0,d[t]=e%r>>>0,e=e/r>>>0;if(0!==e)throw new Error("Non-zero carry");o=i,a++}let u=h-o;for(;u!==h&&0===d[u];)u++;let f=i.repeat(n);for(;uJe.Ay.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((e=>BigInt(e)))))(),Ye=new Uint32Array(80),We=new Uint32Array(80);class Xe extends j{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:r,Bl:i,Ch:n,Cl:s,Dh:o,Dl:a,Eh:c,El:h,Fh:d,Fl:u,Gh:f,Gl:l,Hh:p,Hl:y}=this;return[e,t,r,i,n,s,o,a,c,h,d,u,f,l,p,y]}set(e,t,r,i,n,s,o,a,c,h,d,u,f,l,p,y){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|i,this.Ch=0|n,this.Cl=0|s,this.Dh=0|o,this.Dl=0|a,this.Eh=0|c,this.El=0|h,this.Fh=0|d,this.Fl=0|u,this.Gh=0|f,this.Gl=0|l,this.Hh=0|p,this.Hl=0|y}process(e,t){for(let r=0;r<16;r++,t+=4)Ye[r]=e.getUint32(t),We[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|Ye[e-15],r=0|We[e-15],i=Je.Ay.rotrSH(t,r,1)^Je.Ay.rotrSH(t,r,8)^Je.Ay.shrSH(t,r,7),n=Je.Ay.rotrSL(t,r,1)^Je.Ay.rotrSL(t,r,8)^Je.Ay.shrSL(t,r,7),s=0|Ye[e-2],o=0|We[e-2],a=Je.Ay.rotrSH(s,o,19)^Je.Ay.rotrBH(s,o,61)^Je.Ay.shrSH(s,o,6),c=Je.Ay.rotrSL(s,o,19)^Je.Ay.rotrBL(s,o,61)^Je.Ay.shrSL(s,o,6),h=Je.Ay.add4L(n,c,We[e-7],We[e-16]),d=Je.Ay.add4H(h,i,a,Ye[e-7],Ye[e-16]);Ye[e]=0|d,We[e]=0|h}let{Ah:r,Al:i,Bh:n,Bl:s,Ch:o,Cl:a,Dh:c,Dl:h,Eh:d,El:u,Fh:f,Fl:l,Gh:p,Gl:y,Hh:m,Hl:g}=this;for(let e=0;e<80;e++){const t=Je.Ay.rotrSH(d,u,14)^Je.Ay.rotrSH(d,u,18)^Je.Ay.rotrBH(d,u,41),b=Je.Ay.rotrSL(d,u,14)^Je.Ay.rotrSL(d,u,18)^Je.Ay.rotrBL(d,u,41),v=d&f^~d&p,w=u&l^~u&y,S=Je.Ay.add5L(g,b,w,Ve[e],We[e]),_=Je.Ay.add5H(S,m,t,v,He[e],Ye[e]),x=0|S,k=Je.Ay.rotrSH(r,i,28)^Je.Ay.rotrBH(r,i,34)^Je.Ay.rotrBH(r,i,39),P=Je.Ay.rotrSL(r,i,28)^Je.Ay.rotrBL(r,i,34)^Je.Ay.rotrBL(r,i,39),M=r&n^r&o^n&o,E=i&s^i&a^s&a;m=0|p,g=0|y,p=0|f,y=0|l,f=0|d,l=0|u,({h:d,l:u}=Je.Ay.add(0|c,0|h,0|_,0|x)),c=0|o,h=0|a,o=0|n,a=0|s,n=0|r,s=0|i;const I=Je.Ay.add3L(x,P,E);r=Je.Ay.add3H(I,_,k,M),i=0|I}({h:r,l:i}=Je.Ay.add(0|this.Ah,0|this.Al,0|r,0|i)),({h:n,l:s}=Je.Ay.add(0|this.Bh,0|this.Bl,0|n,0|s)),({h:o,l:a}=Je.Ay.add(0|this.Ch,0|this.Cl,0|o,0|a)),({h:c,l:h}=Je.Ay.add(0|this.Dh,0|this.Dl,0|c,0|h)),({h:d,l:u}=Je.Ay.add(0|this.Eh,0|this.El,0|d,0|u)),({h:f,l}=Je.Ay.add(0|this.Fh,0|this.Fl,0|f,0|l)),({h:p,l:y}=Je.Ay.add(0|this.Gh,0|this.Gl,0|p,0|y)),({h:m,l:g}=Je.Ay.add(0|this.Hh,0|this.Hl,0|m,0|g)),this.set(r,i,n,s,o,a,c,h,d,u,f,l,p,y,m,g)}roundClean(){Ye.fill(0),We.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Ge=(0,D.ld)((()=>new Xe)),Qe=(0,V.RS)(Ge);var Ze=r(5473),et=r.n(Ze),tt=r(3065),rt=r.n(tt),it=r(8287).hp;function nt(e){return`0x${it.from((0,ze.So)(e)).toString("hex")}`}const st=(e,t)=>e.genKeyPair().getPrivate().toArrayLike(t),ot=e=>{if(e===c.ED25519)return new ce.ec(c.ED25519);if(e===c.SECP256K1)return new ce.ec(c.SECP256K1);throw new Error(`Invalid keyType: ${e}`)},at=(e,t)=>{let r=e;if("number"==typeof r&&(r=Array.from({length:r},((e,t)=>t))),t>r.length||t<=0)return[];if(t===r.length)return[r];if(1===t)return r.reduce(((e,t)=>[...e,[t]]),[]);const i=[];let n=[];for(let e=0;e<=r.length-t+1;e+=1){n=at(r.slice(e+1),t-1);for(let t=0;t{const r={};for(let i=0;i0){const e=2**i*100;await(n=e,new Promise(((e,t)=>{n>0?setTimeout(e,n):t(new Error("value of milliseconds must be greater than 0"))})))}return await e()}catch(e){const n=e.message;if(i"number"==typeof e?new(T())(e):e instanceof T()?e:"string"==typeof e?new(T())(e,"hex"):e)),r={};for(let e=0;ee.eq(r)))?vt(e,t):r}const wt=e=>Array.from({length:e},(()=>new(T())(0))),St=(e,t,r)=>{let i=wt(r.length);const n=((e,t,r)=>{let i=new(T())(1);const n=r[t].x;for(let s=r.length-1;s>=0;s-=1)if(t!==s){let t=new(T())(n);t=t.sub(r[s].x),t=t.umod(e.n),i=i.mul(t),i=i.umod(e.n)}return i})(e,t,r);if(0===n.cmp(new(T())(0)))throw new Error("Denominator for interpolationPoly is 0");i[0]=n.invm(e.n);for(let n=0;n=0;o-=1){s[o+1]=s[o+1].add(i[o]).umod(e.n);let t=new(T())(r[n].x);t=t.mul(i[o]).umod(e.n),s[o]=s[o].sub(t).umod(e.n)}i=s}}return i};function _t(e,t,r){if(t.length!==r.length)throw new Error("shares not equal to nodeIndex length in lagrangeInterpolation");let i=new(T())(0);for(let n=0;nt)throw new Error("deterministicShares in generateRandomPolynomial should be less or equal than degree to ensure an element of randomness");const s={};i.forEach((t=>{s[t.shareIndex.toString("hex",64)]=new yt(t.shareIndex,t.share,e)}));for(let r=0;r{const r=(e=>{const t=[...e];return t.sort(((e,t)=>e.x.cmp(t.x))),t})(t),i=wt(r.length);for(let t=0;t{const i={mode:"cors",headers:{}};r.useAPIKey&&(i.headers=se(se({},i.headers),Nt())),t.method="GET";const n=Pt()(i,t),s=await Ot(e,n);if(s.ok){const e=s.headers.get("content-type");return null!=e&&e.includes("application/json")?s.json():s.text()}throw Kt(s),s},Lt=(e,t={},r={},i={})=>{const n={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};i.useAPIKey&&(n.headers=se(se({},n.headers),Nt())),r.method="POST";const s=Pt()(n,r);return i.isUrlEncodedData?(s.body=t,"application/json; charset=utf-8"===s.headers["Content-Type"]&&delete s.headers["Content-Type"]):s.body=JSON.stringify(t),(async(e,t)=>{let r=null;try{const i=new Promise(((t,i)=>{r=setTimeout((()=>{i(new Error(`Timed out in ${e}ms`))}),e)})),n=await Promise.race([t,i]);return null!=r&&clearTimeout(r),n}catch(e){throw null!=r&&clearTimeout(r),e}})(i.timeout||6e4,Ot(e,s).then((e=>{if(i.logTracingHeader&&function(e){const t=e.headers.get("x-web3-correlation-id");t&&Mt.info(`Request tracing with traceID = ${t}`)}(e),e.ok){const t=e.headers.get("content-type");return null!=t&&t.includes("application/json")?e.json():e.text()}throw Kt(e),e})))},Rt=async(e,t={},r={},i={})=>{const n={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};i.useAPIKey&&(n.headers=se(se({},n.headers),Nt())),r.method="PATCH";const s=Pt()(n,r);i.isUrlEncodedData?(s.body=t,"application/json; charset=utf-8"===s.headers["Content-Type"]&&delete s.headers["Content-Type"]):s.body=JSON.stringify(t);const o=await Ot(e,s);if(o.ok){const e=o.headers.get("content-type");return null!=e&&e.includes("application/json")?o.json():o.text()}throw Kt(o),o},Bt=async(e,t={},r={},i={})=>{const n={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};i.useAPIKey&&(n.headers=se(se({},n.headers),Nt())),r.method="PUT";const s=Pt()(n,r);i.isUrlEncodedData?(s.body=t,"application/json; charset=utf-8"===s.headers["Content-Type"]&&delete s.headers["Content-Type"]):s.body=JSON.stringify(t);const o=await Ot(e,s);if(o.ok){const e=o.headers.get("content-type");return null!=e&&e.includes("application/json")?o.json():o.text()}throw Kt(o),o},Ft=(e,t)=>({jsonrpc:"2.0",method:e,id:10,params:t}),Dt="GetPubKeyOrKeyAssign",Ut="https://node-1.node.web3auth.io/metadata",jt="https://node-1.dev-node.web3auth.io/metadata";var qt=r(8287).hp;const $t=e=>{const t=ot(c.SECP256K1),r=e.toString("hex",64),i=(0,ze.So)(qt.from(r,"hex")),n=new(T())(i).umod(t.n).toString("hex",64),s=qt.from(n,"hex"),o=t.keyFromPrivate(s);if(32!==s.length)throw new Error(`Key length must be equal to 32. got ${s.length}`);return{scalar:o.getPrivate(),point:o.getPublic()}};async function zt(e,t,r){const i=dt(e);return await(0,ae.Yc)(r,se(se({},i),{},{ciphertext:qt.from(t,"hex")}))}async function Jt(e,t,r){const i=dt(e);try{return await(0,ae.Yc)(r,se(se({},i),{},{ciphertext:qt.from(t,"hex")}))}catch(e){const n=t.padStart(64,"0");return rt().warn("Failed to decrypt padded share cipher",e),(0,ae.Yc)(r,se(se({},i),{},{ciphertext:qt.from(n,"hex")}))}}async function Ht(e,t,r={}){try{const i=await Lt(`${e}/get`,t,r,{useAPIKey:!0});return i&&i.message?new(T())(i.message,16):new(T())(0)}catch(e){return rt().error("get metadata error",e),new(T())(0)}}function Vt(e,t,r,i,n,s){const o=ot(c.SECP256K1).keyFromPrivate(r.toString("hex",64),"hex"),a={operation:t,timestamp:new(T())(~~(e+Date.now()/1e3)).toString(16)};n&&(a.data=n.toString("hex",64)),a.seed=s||"";const h=o.sign(nt(qt.from(et()(a),"utf8")).slice(2));return{pub_key_X:o.getPublic().getX().toString("hex",64),pub_key_Y:o.getPublic().getY().toString("hex",64),set_data:a,key_type:i,signature:qt.from(h.r.toString(16,64)+h.s.toString(16,64)+new(T())("").toString(16,2),"hex").toString("base64")}}async function Yt(e,t,r,i,n,s,o=!1,a=!0,h=new(T())(0),d="secp256k1",u=""){if(a){let a;const c=o?"getNonce":"getOrSetNonce";return a=s?function(e,t,r,i){const n=e.keyFromPrivate(i.toString("hex",64),"hex"),s={data:r,timestamp:new(T())(~~(t+Date.now()/1e3)).toString(16)},o=n.sign(nt(qt.from(et()(s),"utf8")).slice(2));return{pub_key_X:n.getPublic().getX().toString("hex"),pub_key_Y:n.getPublic().getY().toString("hex"),set_data:s,signature:qt.from(o.r.toString(16,64)+o.s.toString(16,64)+new(T())("").toString(16,2),"hex").toString("base64")}}(t,r,c,s):{pub_key_X:i,pub_key_Y:n,set_data:{data:c}},Lt(`${e}/get_or_set_nonce`,a,void 0,{useAPIKey:!0})}const f=o?"getNonce":"getOrSetNonce";if("getOrSetNonce"===f){if(!s)throw new Error("privKey is required while `getOrSetNonce` for non legacy metadata");if(0===h.cmp(new(T())(0)))throw new Error("nonce is required while `getOrSetNonce` for non legacy metadata");if(d===c.ED25519&&!u)throw new Error("seed is required while `getOrSetNonce` for non legacy metadata for ed25519 key type");const t=Vt(r,f,s,d,h,u);return Lt(`${e}/get_or_set_nonce`,t,void 0,{useAPIKey:!0})}return Lt(`${e}/get_or_set_nonce`,{pub_key_X:i,pub_key_Y:n,set_data:{operation:f},key_type:d},void 0,{useAPIKey:!0})}const Wt=async(e,t)=>{const r=$t(t),i=qt.from(e,"base64").toString("utf-8"),n=JSON.parse(i),s=se(se({},dt(n.metadata)),{},{mode:"AES256"}),o=r.scalar.toArrayLike(qt,"be",32);return await(0,ae.Yc)(o,se(se({},s),{},{ciphertext:qt.from(n.enc_text,"hex")}))};async function Xt(e,r,i,n,o){if(s[e])throw new Error("getOrSetSapphireMetadataNonce should only be used for sapphire networks");let a={pub_key_X:r,pub_key_Y:i,key_type:"secp256k1",set_data:{operation:"getOrSetNonce"}};if(o){const e=ot(c.SECP256K1).keyFromPrivate(o.toString("hex",64),"hex"),t={operation:"getOrSetNonce",timestamp:new(T())(~~(n+Date.now()/1e3)).toString(16)},r=e.sign(nt(qt.from(et()(t),"utf8")).slice(2));a=se(se({},a),{},{set_data:t,signature:qt.from(r.r.toString(16,64)+r.s.toString(16,64)+new(T())("").toString(16,2),"hex").toString("base64")})}const h=e===t.SAPPHIRE_DEVNET?jt:Ut;return Lt(`${h}/get_or_set_nonce`,a,void 0,{useAPIKey:!0})}var Gt=r(8287).hp;function Qt(e){const t=ot(c.ED25519),r=t.g,i=t.n;if(32!==e.length)throw rt().error("Invalid seed for ed25519 key derivation",e.length),new Error("Invalid seed for ed25519 key derivation");const n=Qe(e);if(64!==n.length)throw new Error("Invalid hash length for ed25519 seed");const s=new(T())(((o=Gt.from(n.slice(0,32)))[0]&=248,o[31]&=127,o[31]|=64,o),"le");var o;const a=new(T())(s.umod(i),"le");return{scalar:a,point:r.mul(a)}}function Zt(e){const t=ot(c.ED25519),r=Math.ceil(t.n.bitLength()/8),i=e.getY().toArrayLike(Gt,"le",r);return i[r-1]|=e.getX().isOdd()?128:0,i}function er(e,t){if(e===c.SECP256K1){const e=t.getPublic().encode("hex",!1).slice(2);return function(e){const t=(r=e,r.startsWith("0x")?r.slice(2):r).toLowerCase();var r;const i=Gt.from(t,"utf8"),n=Gt.from((0,ze.So)(i)).toString("hex");let s="0x";for(let e=0;e=8?s+=t[e].toUpperCase():s+=t[e];return s}(`0x${nt(Gt.from(e,"hex")).slice(26)}`)}if(e===c.ED25519){const e=Zt(t.getPublic());return $e.encode(e)}throw new Error(`Invalid keyType: ${e}`)}function tr(e,t,r){return er(e,ot(e).keyFromPublic({x:t.toString("hex",64),y:r.toString("hex",64)}))}function rr(e,t){const r=t.toString(16,64);return e.keyFromPrivate(r,"hex").getPublic()}const ir=async(e,t,r,i,n,s)=>{const o=t===c.ED25519?await(async e=>{const t=ot(c.ED25519),r=Qt(e),i=$t(r.scalar),n=await(0,ae.w)(Gt.from(i.point.encodeCompressed("hex"),"hex"),e),s={enc_text:n.ciphertext.toString("hex"),metadata:ht(n),public_key:Zt(r.point).toString("hex")},o=Gt.from(JSON.stringify(s),"utf-8").toString("base64"),a=t.genKeyPair().getPrivate(),h=r.scalar.sub(a).umod(t.n),d=t.keyFromPrivate(h.toArrayLike(Gt)),u=$t(d.getPrivate());return{oAuthKeyScalar:d.getPrivate(),oAuthPubX:d.getPublic().getX(),oAuthPubY:d.getPublic().getY(),SigningPubX:u.point.getX(),SigningPubY:u.point.getY(),metadataNonce:a,metadataSigningKey:u.scalar,encryptedSeed:o,finalUserPubKeyPoint:r.point}})(s):await(async e=>{const t=ot(c.SECP256K1),r=new(T())(e),i=new(T())(st(t,Gt)),n=r.sub(i).umod(t.n),s=t.keyFromPrivate(n.toArrayLike(Gt)),o=s.getPublic(),a=t.keyFromPrivate(r.toString("hex",64),"hex");return{oAuthKeyScalar:s.getPrivate(),oAuthPubX:o.getX(),oAuthPubY:o.getY(),SigningPubX:o.getX(),SigningPubY:o.getY(),metadataNonce:i,encryptedSeed:"",metadataSigningKey:s.getPrivate(),finalUserPubKeyPoint:a.getPublic()}})(s),{metadataNonce:a,oAuthKeyScalar:h,encryptedSeed:d,metadataSigningKey:u}=o,f=1+~~(n.length/2)-1,l=[];for(const e of i)l.push(new(T())(e));const p=e.keyFromPrivate(h.toString("hex",64),"hex").getPublic(),y=xt(e,f,h).generateShares(l),m=Vt(r,"getOrSetNonce",u,t,a,d),g=Gt.from(et()(m.set_data),"utf8").toString("base64"),b=[],v=[];for(let e=0;eSe.fromJSON(e)));return new ar(t)}getThreshold(){return this.polynomialCommitments.length}getPolynomialID(){let e="";for(let t=0;tnew(T())(e,"hex"))))}getThreshold(){return this.polynomial.length}polyEval(e){const t=new(T())(e,"hex");let r=new(T())(t),i=new(T())(0);i=i.add(this.polynomial[0]);for(let e=1;e"number"==typeof e?new(T())(e):e instanceof T()?e:"string"==typeof e?new(T())(e,"hex"):e)),r={};for(let e=0;ee.toString("hex")))}}}var dr=hr;function ur(){return ue.genKeyPair().getPrivate()}const fr=e=>Array.from({length:e},(()=>new(T())(0))),lr=(e,t)=>{let r=fr(t.length);const i=((e,t)=>{let r=new(T())(1);const i=t[e].x;for(let n=t.length-1;n>=0;n-=1)if(e!==n){let e=new(T())(i);e=e.sub(t[n].x),e=e.umod(ue.curve.n),r=r.mul(e),r=r.umod(ue.curve.n)}return r})(e,t);if(0===i.cmp(new(T())(0)))throw or.default("Denominator for interpolationPoly is 0");r[0]=i.invm(ue.curve.n);for(let i=0;i=0;s-=1){n[s+1]=n[s+1].add(r[s]),n[s+1]=n[s+1].umod(ue.curve.n);let e=new(T())(t[i].x);e=e.mul(r[s]),e=e.umod(ue.curve.n),n[s]=n[s].sub(e),n[s]=n[s].umod(ue.curve.n)}r=n}}return r},pr=e=>{const t=(e=>{const t=[...e];return t.sort(((e,t)=>e.x.cmp(t.x))),t})(e),r=fr(t.length);for(let e=0;ee)throw or.default("deterministicShares in generateRandomPolynomial should be less or equal than degree to ensure an element of randomness");const n={};r.forEach((e=>{n[e.shareIndex.toString("hex")]=new Se(e.shareIndex,e.share)}));for(let t=0;tnew Se(e.x,e.y)))}if(h){l.tssNonces={};for(const e in h)l.tssNonces[e]=h[e]}if(d){l.factorPubs={};for(const e in d)l.factorPubs[e]=d[e].map((e=>new Se(e.x,e.y)))}u&&(l.factorEncs=u);for(let e=0;e"0x0"===e)),n=t.slice(0,i),s=t.slice(i+1,t.length),o=n.join("|"),a=[];n.forEach((e=>{a.push(Se.fromCompressedPub(e))}));const c=new cr(a);l.publicPolynomials[o]=c,p.push([o,s])}return l.polyIDList=p,l}getShareIndexesForPolynomial(e){const t=this.polyIDList.filter((t=>t[0]===e));if(t.length<1)throw or.default("there is no matching polyID");if(t.length>1)throw or.default("there is more than one matching polyID");return t[0][1]}getLatestPublicPolynomial(){return this.publicPolynomials[this.polyIDList[this.polyIDList.length-1][0]]}addPublicShare(e,t){e in this.publicShares||(this.publicShares[e]={}),this.publicShares[e][t.shareIndex.toString("hex")]=t}setGeneralStoreDomain(e,t){this.generalStore[e]=t}getGeneralStoreDomain(e){return this.generalStore[e]}deleteGeneralStoreDomain(e){delete this.generalStore[e]}setTkeyStoreDomain(e,t){this.tkeyStore[e]=t}getTkeyStoreDomain(e){return this.tkeyStore[e]}addFromPolynomialAndShares(e,t){const r=e.getPublicPolynomial(),i=r.getPolynomialID();this.publicPolynomials[i]=r;const n=[];if(Array.isArray(t))for(let e=0;e-1))throw or.default(`No share description found for the given shareIndex: ${e} \n and description: ${t}`);r[e].splice(i,1)}updateShareDescription(e,t,r){const i=this.getGeneralStoreDomain("shareDescriptions"),n=i[e].indexOf(t);if(!(n>-1))throw or.default(`No share description found for the given shareIndex:\n ${e} and description: ${t}`);i[e][n]=r}shareToShareStore(e){const t=Le(e);for(let r=this.polyIDList.length-1;r>=0;r-=1){const i=this.polyIDList[r][0];for(let n=0;nnew(T())(e,"hex").cmp(new(T())(t,"hex")))),n=r.split("|").concat("0x0").concat(...i).join("|");e.push(n)}return se(se(se(se(se({pubKey:this.pubKey.toSEC1(ue,!0).toString("hex"),polyIDList:e,scopedStore:this.scopedStore,generalStore:this.generalStore,tkeyStore:this.tkeyStore,nonce:this.nonce},this.tssKeyTypes&&{tssKeyTypes:this.tssKeyTypes}),this.tssNonces&&{tssNonces:this.tssNonces}),this.tssPolyCommits&&{tssPolyCommits:this.tssPolyCommits}),this.factorPubs&&{factorPubs:this.factorPubs}),this.factorEncs&&{factorEncs:this.factorEncs})}updateTSSData(e){const{tssKeyType:t,tssTag:r,tssNonce:i,tssPolyCommits:n,factorPubs:s,factorEncs:o}=e;t&&(this.tssKeyTypes[r]=t),void 0!==i&&(this.tssNonces[r]=i),n&&(this.tssPolyCommits[r]=n),s&&(this.factorPubs[r]=s),o&&(this.factorEncs[r]=o)}}var vr=br,wr=r(8287).hp;class Sr{constructor(e,t){_(this,"metadata",void 0),_(this,"privKey",void 0),this.metadata=e,this.privKey=t}static fromJSON(e){const{data:t,sig:r}=e;if(!t)throw or.metadataUndefined();const i=vr.fromJSON(t);if(!i.pubKey)throw or.metadataPubKeyUnavailable();if(!ue.keyFromPublic(i.pubKey.toSEC1(ue)).verify(be(nt(wr.from(et()(t),"utf8"))),r))throw or.default("Signature not valid for returning metadata");return new Sr(i)}toJSON(){const e=this.metadata;if(!this.privKey)throw or.privKeyUnavailable();return{data:e,sig:Ne(this.privKey).sign(be(nt(wr.from(et()(e),"utf8")))).toDER("hex")}}}var _r=Sr,xr=r(8287).hp;const kr="ed25519Seed";class Pr{constructor(e){_(this,"modules",void 0),_(this,"enableLogging",void 0),_(this,"serviceProvider",void 0),_(this,"storageLayer",void 0),_(this,"shares",void 0),_(this,"lastFetchedCloudMetadata",void 0),_(this,"metadata",void 0),_(this,"manualSync",void 0),_(this,"_localMetadataTransitions",void 0),_(this,"_refreshMiddleware",void 0),_(this,"_reconstructKeyMiddleware",void 0),_(this,"_shareSerializationMiddleware",void 0),_(this,"storeDeviceShare",void 0),_(this,"haveWriteMetadataLock",void 0),_(this,"serverTimeOffset",0),_(this,"privKey",void 0),_(this,"_ed25519Seed",void 0);const{enableLogging:t=!1,modules:r={},serviceProvider:i,storageLayer:n,manualSync:s=!1,serverTimeOffset:o}=e||{};this.enableLogging=t,this.serviceProvider=i,this.storageLayer=n,this.modules=r,this.shares={},this.privKey=void 0,this.manualSync=s,this._refreshMiddleware={},this._reconstructKeyMiddleware={},this._shareSerializationMiddleware=void 0,this.storeDeviceShare=void 0,this._localMetadataTransitions=[[],[]],this.setModuleReferences(),this.haveWriteMetadataLock="",this.serverTimeOffset=o}get secp256k1Key(){return void 0!==this.privKey?this.privKey:null}get ed25519Key(){return void 0!==this._ed25519Seed?this._ed25519Seed:null}set secp256k1Key(e){this.privKey=e}set ed25519Key(e){this._ed25519Seed=e}static async fromJSON(e,t){const{enableLogging:r,privKey:i,metadata:n,shares:s,_localMetadataTransitions:o,manualSync:a,lastFetchedCloudMetadata:c,serverTimeOffset:h}=e,{storageLayer:d,serviceProvider:u,modules:f}=t,l=new Pr({enableLogging:r,storageLayer:d,serviceProvider:u,modules:f,manualSync:a,serverTimeOffset:h});i&&(l.privKey=new(T())(i,"hex"));for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e)){const t=s[e];for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e)){const r=t[e];t[e]=je.fromJSON(r)}}l.shares=s;const p=Object.keys(JSON.parse(et()(new _r(new vr(new Se("0","0")),new(T())("0","hex"))))),y=Object.keys(JSON.parse(et()(new je(new De("0","0"),"")))),m={message:"Sample message",dateAdded:Date.now()},g=Object.keys(m),b=[],v=[];if(o[0].forEach(((e,t)=>{e?b.push(new(T())(e,"hex")):b.push(void 0);const r=Object.keys(o[1][t]);if(r.length===p.length&&r.every((e=>p.includes(e)))){const e=_r.fromJSON(o[1][t]);e.privKey=i,v.push(e)}else if(r.length===y.length&&r.every((e=>y.includes(e))))v.push(je.fromJSON(o[1][t]));else{if(r.length!==g.length||!r.every((e=>g.includes(e))))throw or.default("fromJSON failed. Could not deserialise _localMetadataTransitions");v.push(o[1][t])}})),n||c){let e,t,r;if("0"===l.serviceProvider.postboxKey.toString("hex")){const e=vr.fromJSON(c).getLatestPublicPolynomial().getPolynomialID(),t=Object.keys(s[e]),i=t[Math.floor(Math.random()*(t.length-1))];t.length>=1&&(r=s[e][i])}n&&(e=vr.fromJSON(n)),c&&(t=vr.fromJSON(c)),await l.initialize({neverInitializeNewKey:!0,transitionMetadata:e,previouslyFetchedCloudMetadata:t,previousLocalMetadataTransitions:[b,v],withShare:r})}else await l.initialize({neverInitializeNewKey:!0});return l}getStorageLayer(){return this.storageLayer}getMetadata(){if(void 0!==this.metadata)return this.metadata;throw or.metadataUndefined()}async initialize(e){const t=e||{};if(t.delete1OutOf1&&!this.manualSync)throw or.delete1OutOf1OnlyManualSync();const{withShare:r,importKey:i,importEd25519Seed:n,neverInitializeNewKey:s,transitionMetadata:o,previouslyFetchedCloudMetadata:a,previousLocalMetadataTransitions:c}=t,h=c&&c[0].length>0&&c[1].length>0,d=o&&h,u=d&&void 0===a;let f,l,p,y;if(r instanceof je)f=r;else if("object"==typeof r)f=je.fromJSON(r);else{if(r)throw or.default("Input is not supported");{const e=u,r=u?c:void 0,o=await this.getGenericMetadataWithTransitionStates({serviceProvider:this.serviceProvider,includeLocalMetadataTransitions:e,_localMetadataTransitions:r,fromJSONConstructor:{fromJSON:e=>e}});if(o.message===me){if(s)throw or.default("key has not been generated yet");if(!this.serviceProvider.migratableKey||i||n)await this._initializeNewKey({initializeModules:!0,importedKey:i,delete1OutOf1:t.delete1OutOf1,importEd25519Seed:n});else{const e=this.manualSync;this.manualSync=!0,await this._initializeNewKey({initializeModules:!0,importedKey:this.serviceProvider.migratableKey,delete1OutOf1:!0}),e||await this.syncLocalMetadataTransitions(),this.manualSync=e}return this.getKeyDetails()}f=je.fromJSON(o)}}try{y=await this.catchupToLatestShare({shareStore:f})}catch(e){const t=e;if(1503!==t.code||!d)throw t}if(d&&!u){if(a.noncey.shareMetadata.nonce)throw or.fromCode(1105);p=a}else p=y?y.shareMetadata.clone():void 0;d?(l=o,this._localMetadataTransitions=c):l=y.shareMetadata,this.lastFetchedCloudMetadata=p,this.metadata=l;const m=y?y.latestShare:f;if(this.inputShareStore(m),n&&this.getEd25519PublicKey())throw or.default("Ed25119 key already exists");return await this.initializeModules(),this.getKeyDetails()}async catchupToLatestShare(e){const{shareStore:t,polyID:r,includeLocalMetadataTransitions:i}=e;let n;try{n=await this.getAuthMetadata({privKey:t.share.share,includeLocalMetadataTransitions:i})}catch(e){const t=e;if(t&&1308===t.code)throw t;const r=await pe(t);throw or.authMetadataGetUnavailable(`, ${r.message}`)}try{if(r&&t.polynomialID===r)return{latestShare:t,shareMetadata:n};const e=await n.getEncryptedShare(t);return await this.catchupToLatestShare({shareStore:e,polyID:r,includeLocalMetadataTransitions:i})}catch(e){const r=e;if(r&&1308===r.code)throw r;return{latestShare:t,shareMetadata:n}}}async reconstructKey(e=!0){if(!this.metadata)throw or.metadataUndefined();const t=this.metadata.getLatestPublicPolynomial(),r=t.getThreshold(),i=t.getPolynomialID();let n=r;const s=this.metadata.getShareIndexesForPolynomial(i),o={};for(let e=0;e=0&&n>0;e-=1){const t=this.shares[this.metadata.polyIDList[e][0]];if(t){const e=Object.keys(t);for(let r=0;r0;r+=1)if(e[r]in o){const s=t[e[r]];if(s.polynomialID===i)a.push(s);else{const e=await this.catchupToLatestShare({shareStore:s,polyID:i,includeLocalMetadataTransitions:!0});if(e.latestShare.polynomialID!==i)throw new or(1304,"Share found in unexpected polynomial");a.push(e.latestShare)}delete o[e[r]],n-=1}}}if(a.forEach((e=>{this.inputShareStore(e)})),n>0)throw or.unableToReconstruct(` require ${r} but have ${r-n}`);const c=Object.keys(this.shares[i]),h=[],d=[];for(let e=0;e0&&await Promise.all(Object.keys(this._reconstructKeyMiddleware).map((async e=>{if(Object.prototype.hasOwnProperty.call(this._reconstructKeyMiddleware,e)){const t=await this._reconstructKeyMiddleware[e]();l[e]=t,l.allKeys.push(...t)}}))),this.getEd25519PublicKey()){const e=await this.retrieveEd25519Seed();if(!e)throw or.default("Ed25519 seed not found");this._ed25519Seed=e}return se({secp256k1Key:u,ed25519Seed:this._ed25519Seed},l)}reconstructLatestPoly(){if(!this.metadata)throw or.metadataUndefined();const e=this.metadata.getLatestPublicPolynomial(),t=e.getPolynomialID(),r=e.getThreshold(),i=[],n=Object.keys(this.shares[t]);if(n.length{const r=new(T())(e,"hex");0!==r.cmp(t)&&o.push(r.toString("hex"))})),s.length===o.length)throw or.default("Share index does not exist in latest polynomial");if(o.lengthnew(T())(e,"hex"))),n=new(T())(ye(i));return{newShareStores:(await this._refreshShares(e.getThreshold(),[...r,n.toString("hex")],t)).shareStores,newShareIndex:n}}getEd25519PublicKey(){if(!this.metadata)throw or.metadataUndefined();const e=this.metadata.getGeneralStoreDomain(kr);return null==e?void 0:e.publicKey}async retrieveEd25519Seed(){if(!this.metadata)throw or.metadataUndefined();if(!this.privKey)throw or.privateKeyUnavailable();const e=this.metadata.getGeneralStoreDomain(kr),t=await this.decrypt(e.message);return this._ed25519Seed=t,t}async addLocalMetadataTransitions(e){const{privKey:t,input:r}=e;this._localMetadataTransitions[0]=[...this._localMetadataTransitions[0],...t],this._localMetadataTransitions[1]=[...this._localMetadataTransitions[1],...r],this.manualSync||await this.syncLocalMetadataTransitions()}async syncLocalMetadataTransitions(){if(!this.metadata)throw or.metadataUndefined();if(!(Array.isArray(this._localMetadataTransitions[0])&&this._localMetadataTransitions[0].length>0))return;let e=!1;this.lastFetchedCloudMetadata&&(await this.acquireWriteMetadataLock(),e=!0);try{await this.storageLayer.setMetadataStream({input:this._localMetadataTransitions[1],privKey:this._localMetadataTransitions[0],serviceProvider:this.serviceProvider}),this._localMetadataTransitions=[[],[]],this.lastFetchedCloudMetadata=this.metadata.clone()}catch(e){const t=await pe(e);throw or.metadataPostFailed(t.message)}finally{e&&await this.releaseWriteMetadataLock()}}async readMetadata(e){return this.storageLayer.getMetadata({privKey:e})}async updateSDK(e){const t=new Pr({enableLogging:this.enableLogging,modules:this.modules,serviceProvider:this.serviceProvider,storageLayer:this.storageLayer,manualSync:this.manualSync});try{await t.initialize({neverInitializeNewKey:!0,withShare:e&&e.withShare})}catch(e){throw or.fromCode(1103,`${e.message}`)}const r=t.metadata.polyIDList;let i;Object.keys(this.shares).forEach((e=>{r.find((t=>t[0]===e))?i=e:delete this.shares[e]}));const n=Object.keys(this.shares[i]).map((e=>t.inputShareStoreSafe(this.outputShareStore(e,i))));return await Promise.all(n),t}inputShareStore(e){let t;if(e instanceof je)t=e;else{if("object"!=typeof e)throw or.default("can only add type ShareStore into shares");t=je.fromJSON(e)}t.polynomialID in this.shares||(this.shares[t.polynomialID]={}),this.shares[t.polynomialID][t.share.shareIndex.toString("hex")]=t}async inputShareStoreSafe(e,t=!1){if(!this.metadata)throw or.metadataUndefined();let r;if(e instanceof je)r=e;else{if("object"!=typeof e)throw or.default("can only add type ShareStore into shares");r=je.fromJSON(e)}const i=this.metadata.getLatestPublicPolynomial().getPolynomialID();if(r.polynomialID!==i){const e=await this.catchupToLatestShare({shareStore:r,includeLocalMetadataTransitions:!0});if(!e.shareMetadata.polyIDList.find((e=>e[0]===i)))throw or.fromCode(1307);if(i!==e.latestShare.polynomialID){if(!t)throw or.default(`TKey SDK metadata seems to be outdated because shareIndex: ${e.latestShare.share.shareIndex.toString("hex")} has a more recent metadata. Please call updateSDK first`);this.metadata=e.shareMetadata}e.latestShare.polynomialID in this.shares||(this.shares[e.latestShare.polynomialID]={}),this.shares[e.latestShare.polynomialID][e.latestShare.share.shareIndex.toString("hex")]=e.latestShare}else r.polynomialID in this.shares||(this.shares[r.polynomialID]={}),this.shares[r.polynomialID][r.share.shareIndex.toString("hex")]=r}outputShareStore(e,t){if(!this.metadata)throw or.metadataUndefined();let r,i;if("number"==typeof e?r=new(T())(e):T().isBN(e)?r=e:"string"==typeof e&&(r=new(T())(e,"hex")),i=t||this.metadata.getLatestPublicPolynomial().getPolynomialID(),!this.metadata.getShareIndexesForPolynomial(i).includes(r.toString("hex")))throw new or(1002,"no such share index created");const n=this.shares[i][r.toString("hex")];if(n)return n;const s=this.reconstructLatestPoly().generateShares([r]);return new je(s[r.toString("hex")],i)}getCurrentShareIndexes(){if(!this.metadata)throw or.metadataUndefined();const e=this.metadata.getLatestPublicPolynomial().getPolynomialID();return Object.keys(this.shares[e])}getKeyDetails(){if(!this.metadata)throw or.metadataUndefined();const e=this.metadata.getLatestPublicPolynomial(),t=e.getPolynomialID(),r=e.getThreshold()-Object.keys(this.shares[t]).length;let i=this.metadata.getShareDescription();if(i){const e=this.metadata.getShareIndexesForPolynomial(t);i=Object.keys(i).reduce(((t,r)=>(e.indexOf(r)>=0&&(t[r]=i[r]),t)),{})}return{pubKey:this.metadata.pubKey,ed25519PublicKey:this.getEd25519PublicKey(),requiredShares:r,threshold:e.getThreshold(),totalShares:this.metadata.getShareIndexesForPolynomial(t).length,shareDescriptions:i}}generateAuthMetadata(e){const{input:t}=e,r=[];for(let e=0;e=0;i-=1){const n=t[0][i];if((e.privKey&&n&&0===n.cmp(e.privKey)||e.serviceProvider&&!n)&&(r=i),null!==r)break}if(null!==r)return t[1][r]}let t;try{t=await this.storageLayer.getMetadata(e)}catch(e){const t=await pe(e);throw or.metadataGetFailed(t.message)}if(t.message===ge)throw or.fromCode(1308);return e.fromJSONConstructor.fromJSON(t)}async acquireWriteMetadataLock(){if(this.haveWriteMetadataLock)return this.metadata.nonce;if(!this.privKey)throw or.privateKeyUnavailable();let e;const t=this.lastFetchedCloudMetadata.getLatestPublicPolynomial().getPolynomialID(),r=Object.keys(this.shares[t]),i=r[Math.floor(Math.random()*(r.length-1))];e=r.length>=1?this.shares[t][i]:this.outputShareStore(i,t);const n=(await this.catchupToLatestShare({shareStore:e})).shareMetadata;if(n.nonce>this.lastFetchedCloudMetadata.nonce)throw or.acquireLockFailed(`unable to acquire write access for metadata due to \n lastFetchedCloudMetadata (${this.lastFetchedCloudMetadata.nonce})\n being lower than last written metadata nonce (${n.nonce}). perhaps update metadata SDK (create new tKey and init)`);if(n.noncee.share.share));await this.syncMultipleShareMetadata(t,e)}async syncMultipleShareMetadata(e,t){if(!this.metadata)throw or.metadataUndefined();this.metadata.nonce+=1;const r=e.map((async e=>{const r=this.metadata.clone();let i,n;try{i=await this.getAuthMetadata({privKey:e,includeLocalMetadataTransitions:!0})}catch(e){const t=await pe(e);throw or.authMetadataGetUnavailable(t.message)}return n=t?t(i.scopedStore):i.scopedStore,r.scopedStore=n,r})),i=await Promise.all(r);return this.setAuthMetadataBulk({input:i,privKey:e})}_addRefreshMiddleware(e,t){this._refreshMiddleware[e]=t}_addReconstructKeyMiddleware(e,t){this._reconstructKeyMiddleware[e]=t}_addShareSerializationMiddleware(e,t){this._shareSerializationMiddleware={serialize:e,deserialize:t}}_setDeviceStorage(e){if(this.storeDeviceShare)throw or.default("storeDeviceShare already set");this.storeDeviceShare=e}async addShareDescription(e,t,r){if(!this.metadata)throw or.metadataUndefined();this.metadata.addShareDescription(e,t),r&&await this._syncShareMetadata()}async deleteShareDescription(e,t,r){if(!this.metadata)throw or.metadataUndefined();this.metadata.deleteShareDescription(e,t),r&&await this._syncShareMetadata()}async updateShareDescription(e,t,r,i){if(!this.metadata)throw or.metadataUndefined();this.metadata.updateShareDescription(e,t,r),i&&await this._syncShareMetadata()}async encrypt(e){if(!this.privKey)throw or.privateKeyUnavailable();return fe(Ce(this.privKey),e)}async decrypt(e){if(!this.privKey)throw or.privateKeyUnavailable();return le(Ke(this.privKey),e)}async _setTKeyStoreItem(e,t){if(!this.metadata)throw or.metadataUndefined();const r=this.metadata.getTkeyStoreDomain(e)||[],i=await Promise.all(r.map((async e=>{const t=await this.decrypt(e);return JSON.parse(t.toString())}))),n=await this.encrypt(xr.from(et()(t))),s=i.findIndex((e=>e.id===t.id));s>-1?r[s]=n:r.push(n),this.metadata.setTkeyStoreDomain(e,r),await this._syncShareMetadata()}async _deleteTKeyStoreItem(e,t){if(!this.metadata)throw or.metadataUndefined();const r=this.metadata.getTkeyStoreDomain(e)||[],i=(await Promise.all(r.map((async e=>{const t=await this.decrypt(e);return JSON.parse(t.toString())})))).filter((e=>e.id!==t));this.metadata.setTkeyStoreDomain(e,i),await this._syncShareMetadata()}async getTKeyStore(e){if(!this.metadata)throw or.metadataUndefined();const t=this.metadata.getTkeyStoreDomain(e)||[];return await Promise.all(t.map((async e=>{const t=await this.decrypt(e);return JSON.parse(t.toString())})))}async getTKeyStoreItem(e,t){if(!this.metadata)throw or.metadataUndefined();const r=this.metadata.getTkeyStoreDomain(e)||[];return(await Promise.all(r.map((async e=>{const t=await this.decrypt(e);return JSON.parse(t.toString())})))).find((e=>e.id===t))}async outputShare(e,t){const{share:r}=this.outputShareStore(e).share;return t?this._shareSerializationMiddleware.serialize(r,t):r}async inputShare(e,t){if(!this.metadata)throw or.metadataUndefined();let r;if(t){const i=await this._shareSerializationMiddleware.deserialize(e,t);r=this.metadata.shareToShareStore(i)}else r=this.metadata.shareToShareStore(e);const i=this.metadata.getLatestPublicPolynomial().getPolynomialID();if(!this.metadata.getShareIndexesForPolynomial(i).includes(r.share.shareIndex.toString("hex")))throw or.default("Latest poly doesn't include this share");await this.inputShareStoreSafe(r)}toJSON(){return{shares:this.shares,enableLogging:this.enableLogging,privKey:this.privKey?this.privKey.toString("hex"):void 0,metadata:this.metadata,lastFetchedCloudMetadata:this.lastFetchedCloudMetadata,_localMetadataTransitions:this._localMetadataTransitions,manualSync:this.manualSync,serviceProvider:this.serviceProvider,storageLayer:this.storageLayer}}getAllShareStoresForLatestPolynomial(){const e=this.metadata.getLatestPublicPolynomial(),t=e.getPolynomialID(),r=this.metadata.getShareIndexesForPolynomial(t),i=e.getThreshold(),n=[],s=Object.keys(this.shares[t]);if(s.lengththis.metadata.shareToShareStore(o[e].share)))}async CRITICAL_deleteTkey(){if(!this.metadata)throw or.metadataUndefined();if(!this.privKey)throw or.privateKeyUnavailable();if(this._localMetadataTransitions[0].length>0||this._localMetadataTransitions[1].length>0)throw or.default("Please sync all local state before calling this function");const e=this.getAllShareStoresForLatestPolynomial();await this.addLocalMetadataTransitions({input:[...Array(e.length).fill({message:ge,dateAdded:Date.now()}),{message:me}],privKey:[...e.map((e=>e.share.share)),void 0]}),await this.syncLocalMetadataTransitions(),this.privKey=void 0,this.metadata=void 0,this.shares={},this.lastFetchedCloudMetadata=void 0}getApi(){return{getMetadata:this.getMetadata.bind(this),getStorageLayer:this.getStorageLayer.bind(this),initialize:this.initialize.bind(this),catchupToLatestShare:this.catchupToLatestShare.bind(this),_syncShareMetadata:this._syncShareMetadata.bind(this),_addRefreshMiddleware:this._addRefreshMiddleware.bind(this),_addReconstructKeyMiddleware:this._addReconstructKeyMiddleware.bind(this),_addShareSerializationMiddleware:this._addShareSerializationMiddleware.bind(this),addShareDescription:this.addShareDescription.bind(this),generateNewShare:this.generateNewShare.bind(this),inputShareStore:this.inputShareStore.bind(this),inputShareStoreSafe:this.inputShareStoreSafe.bind(this),outputShareStore:this.outputShareStore.bind(this),inputShare:this.inputShare.bind(this),outputShare:this.outputShare.bind(this),_setDeviceStorage:this._setDeviceStorage.bind(this),encrypt:this.encrypt.bind(this),decrypt:this.decrypt.bind(this),getTKeyStore:this.getTKeyStore.bind(this),getTKeyStoreItem:this.getTKeyStoreItem.bind(this),_setTKeyStoreItem:this._setTKeyStoreItem.bind(this),_deleteTKeyStoreItem:this._deleteTKeyStoreItem.bind(this),deleteShare:this.deleteShare.bind(this)}}setModuleReferences(){Object.keys(this.modules).map((e=>this.modules[e].setModuleReferences(this.getApi())))}async initializeModules(){return Promise.all(Object.keys(this.modules).map((e=>this.modules[e].initialize())))}async _refreshShares(e,t,r){if(!this.metadata)throw or.metadataUndefined();if(!this.privKey)throw or.privateKeyUnavailable();if(e>t.length)throw or.default(`threshold should not be greater than share indexes. ${e} > ${t.length}`);this.metadata.nonce+=1;const i=mr(e-1,this.privKey),n=i.generateShares(t),s=this.metadata.getShareIndexesForPolynomial(r),o=[],a=Object.keys(this.shares[r]);if(a.length{u[e]=new je(n[e],f)}));const l=this.metadata.clone(),p={},y=await Promise.all(h.map((async e=>{const t=c.polyEval(new(T())(e,"hex")),i=await fe(Ce(t),xr.from(JSON.stringify(u[e])));return p[Le(t).x.toString("hex")]=i,d[e]=new je(new De(e,t),r),t})));l.setScopedStore("encryptedShares",p);const m=Array(y.length).fill(l);for(const e in this._refreshMiddleware)if(Object.prototype.hasOwnProperty.call(this._refreshMiddleware,e)){const t=this._refreshMiddleware[e](this.metadata.getGeneralStoreDomain(e),d,u);t?this.metadata.setGeneralStoreDomain(e,t):this.metadata.deleteGeneralStoreDomain(e)}const g=[],b=t.map((e=>{const t=this.metadata.clone();return g.push(t),u[e].share.share})),v=this.generateAuthMetadata({input:[...m,...g]});await this.addLocalMetadataTransitions({input:[...v,u[1]],privKey:[...y,...b,void 0]});for(let e=0;e(f.push(this.metadata),c[e.toString("hex")].share))),p=this.generateAuthMetadata({input:f});await this.addLocalMetadataTransitions({input:[...p,u],privKey:[...l,void 0]}),n&&await this.addLocalMetadataTransitions({input:[{message:qe}],privKey:[this.serviceProvider.postboxKey]});for(let e=0;ee.length)throw new Error("trying to select more elements than available");const r=[],i=e.slice();for(;r.lengthnew(T())(e))),s=new(T())(t),o=new(T())(r);let a=new(T())(1),c=new(T())(1);for(let e=0;eDr(this.serverEndpoints[e-1],"/rss_round_1",{round_name:"rss_round_1",server_set:"new",server_index:e,new_servers_info:c,user_temp_pubkey:Or(this.tempPubKey),target_index:s,auth:{label:r,sigs:i},key_type:this.keyType}))),d=s.map((e=>Br([0,1],0,e,this.ecCurve.n).umod(this.ecCurve.n))),u=[],f=[],l=[],p=[],y=()=>this.ecCurve.genKeyPair().getPrivate();for(let e=0;eOr(this.ecCurve.g.mul(e)))));const i=Cr(c.threshold-1,Lr(r,1,this.ecCurve.n),y);l.push(i),p.push(i.map((e=>Or(this.ecCurve.g.mul(e)))))}const m=[],g=[];for(let e=0;e{e({target_index:s,data:b})})));const v=await Promise.all(h),w=s.map(((e,t)=>{for(let e=0;eTr(this.ecCurve,s[t]).add(e))),i=i.map(((e,t)=>Tr(this.ecCurve,o[t]).add(e)))):(r=s.map((e=>Tr(this.ecCurve,e))),i=o.map((e=>Tr(this.ecCurve,e))))}return{mc:r,sc:i}}));s.map(((e,t)=>{const{mc:r,sc:i}=w[t],s=Tr(this.ecCurve,n).mul(Br([1,e],1,0,this.ecCurve.n)),o=r[0].mul(Br([1,e],e,0,this.ecCurve.n));if(!s.add(o).eq(this.tssPubKey))throw new Error("master poly commits inconsistent with tssPubKey");if(!r[0].add(r[1]).eq(i[0]))throw new Error("server poly commits inconsistent with master poly commits");return null}));const S=Fr.from(this.tempPrivKey.toString(16,64),"hex"),_=[];for(let e=0;et.data[e].target_encryptions.user_enc)),r=(await Promise.all(t.map((e=>Kr(S,e))))).map((e=>new(T())(e))).reduce(((e,t)=>e.add(t).umod(this.ecCurve.n)),new(T())(0)),{mc:i}=w[e],n=this.ecCurve.g.mul(r),s=i[0].add(i[1].mul(new(T())(99)));if(!n.eq(s))throw new Error("decrypted user shares inconsistent with poly commits");_.push(r)}const x=await Promise.all(_.map(((e,t)=>{const r=a[t];return Nr(Fr.from(`04${r.x.padStart(64,"0")}${r.y.padStart(64,"0")}`,"hex"),Fr.from(e.toString(16,64),"hex"))}))),k=s.map(((e,t)=>{const r=v.map((e=>e.data[t].target_encryptions.server_encs)),i=[];for(let e=0;et+1)),M=await Promise.all(P.map((e=>{const t=[];return s.map(((r,i)=>{const{mc:n,sc:s}=w[i],o={master_commits:n.map(Or),server_commits:s.map(Or),server_encs:k[i][e-1],factor_pubkeys:[a[i]]};return t.push(o),null})),Dr(this.serverEndpoints[e-1],"/rss_round_2",{round_name:"rss_round_2",server_index:e,target_index:s,data:t,key_type:this.keyType}).catch((e=>rt().error(e)))})));if(M.filter((e=>e)).lengtht&&t.data[e].encs[0])),userFactorEnc:x[e]});return E}async refresh(e){const{targetIndexes:t,inputIndex:r,selectedServers:i,oldLabel:n,newLabel:s,sigs:o,dkgNewPub:a,inputShare:c,factorPubs:h}=e;if(h.length!==t.length)throw new Error("inconsistent factorPubs and targetIndexes lengths");const d={pubkeys:this.serverPubKeys,selected:i,threshold:this.serverThreshold},u=i.map((e=>Dr(this.serverEndpoints[e-1],"/rss_round_1",{round_name:"rss_round_1",server_set:"old",server_index:e,old_servers_info:d,new_servers_info:d,old_user_share_index:r,user_temp_pubkey:Or(this.tempPubKey),target_index:t,auth:{label:n,sigs:o},key_type:this.keyType}))).concat(i.map((e=>Dr(this.serverEndpoints[e-1],"/rss_round_1",{round_name:"rss_round_1",server_set:"new",server_index:e,old_servers_info:d,new_servers_info:d,old_user_share_index:r,user_temp_pubkey:Or(this.tempPubKey),target_index:t,auth:{label:s,sigs:o},key_type:this.keyType})))),f=Br([1,r],r,0,this.ecCurve.n),l=t.map((e=>f.mul(Br([0,1],0,e,this.ecCurve.n)).umod(this.ecCurve.n))),p=[],y=[],m=[],g=[],b=()=>this.ecCurve.genKeyPair().getPrivate();for(let e=0;eOr(this.ecCurve.g.mul(e)))));const r=Cr(d.threshold-1,Lr(t,1,this.ecCurve.n),b);m.push(r),g.push(r.map((e=>Or(this.ecCurve.g.mul(e)))))}const v=[],w=[];for(let e=0;e{e({target_index:t,data:S})})));const _=await Promise.all(u),x=t.map(((e,t)=>{for(let e=0;e<_.length;e++){const r=_[e].data[t],{master_poly_commits:i,server_poly_commits:n}=r;if(2!==i.length)throw new Error("incorrect number of coeffs for master poly commits");if(n.length!==this.serverThreshold)throw new Error("incorrect number of coeffs for server poly commits")}let r=[],i=[];for(let e=0;e<_.length;e++){const n=_[e].data[t],{master_poly_commits:s,server_poly_commits:o}=n;0!==r.length||0!==i.length?(r=r.map(((e,t)=>Tr(this.ecCurve,s[t]).add(e))),i=i.map(((e,t)=>Tr(this.ecCurve,o[t]).add(e)))):(r=s.map((e=>Tr(this.ecCurve,e))),i=o.map((e=>Tr(this.ecCurve,e))))}return{mc:r,sc:i}}));t.map(((e,t)=>{const{mc:r,sc:i}=x[t],n=Tr(this.ecCurve,a).mul(Br([1,e],1,0,this.ecCurve.n)),s=r[0].mul(Br([1,e],e,0,this.ecCurve.n));if(!n.add(s).eq(this.tssPubKey))throw new Error("master poly commits inconsistent with tssPubKey");if(!r[0].add(r[1]).eq(i[0]))throw new Error("server poly commits inconsistent with master poly commits");return null}));const k=Fr.from(this.tempPrivKey.toString(16,64),"hex"),P=[];for(let e=0;et.data[e].target_encryptions.user_enc)),r=(await Promise.all(t.map((e=>Kr(k,e))))).map((e=>new(T())(e))).reduce(((e,t)=>e.add(t).umod(this.ecCurve.n)),new(T())(0)),{mc:i}=x[e],n=this.ecCurve.g.mul(r),s=i[0].add(i[1].mul(new(T())(99)));if(!n.eq(s))throw new Error("decrypted user shares inconsistent with poly commits");P.push(r)}const M=await Promise.all(P.map(((e,t)=>{const r=h[t];return Nr(Fr.from(`04${r.x.padStart(64,"0")}${r.y.padStart(64,"0")}`,"hex"),Fr.from(e.toString(16,64),"hex"))}))),E=t.map(((e,t)=>{const r=_.map((e=>e.data[t].target_encryptions.server_encs)),i=[];for(let e=0;et+1)),A=await Promise.all(I.map((e=>{const r=[];return t.map(((t,i)=>{const{mc:n,sc:s}=x[i],o={master_commits:n.map(Or),server_commits:s.map(Or),server_encs:E[i][e-1],factor_pubkeys:[h[i]]};return r.push(o),null})),Dr(this.serverEndpoints[e-1],"/rss_round_2",{round_name:"rss_round_2",server_index:e,target_index:t,data:r,key_type:this.keyType}).catch((e=>rt().error(e)))})));if(A.filter((e=>e)).lengtht&&t.data[e].encs[0])),userFactorEnc:M[e]});return O}}var jr=r(8287).hp;const qr="tssModule",$r="default",zr=new ce.ec("secp256k1"),Jr="secp256k1";class Hr extends Mr{constructor(e){super(e),_(this,"serviceProvider",null),_(this,"_tssKeyType",void 0),_(this,"_tssCurve",void 0),_(this,"_tssTag",void 0),_(this,"_accountSalt",void 0);const{serviceProvider:t,storageLayer:r,tssTag:i="default",tssKeyType:n}=e;if(t.customAuthArgs.keyType!==n)throw or.default(`service provider keyType mismatch: ${t.customAuthArgs.keyType} !== ${n}`);this.serviceProvider=t,this.storageLayer=r,this._tssTag=i,this._tssKeyType=n,this._tssCurve=new ce.ec(n)}get tssTag(){return this._tssTag}get tssKeyType(){return this._tssKeyType}get tssCurve(){return this._tssCurve}set tssTag(e){if((this.metadata.tssKeyTypes[this.tssTag]||Jr)!==this.tssKeyType)throw or.default(`tssKeyType mismatch: ${this.metadata.tssKeyTypes[this.tssTag]} !== ${this.tssKeyType}`);this._tssTag=e}async initialize(e){const t=await super.initialize(e);if(!this.metadata.tssPolyCommits[this.tssTag]&&!(null!=e&&e.skipTssInit||null!=e&&e.neverInitializeNewKey)){const{factorEncs:t,factorPubs:r,tssPolyCommits:i}=await this._initializeNewTSSKey(this.tssTag,e.deviceTSSShare,e.factorPub,e.deviceTSSIndex);this.metadata.updateTSSData({tssKeyType:this._tssKeyType,tssTag:this.tssTag,tssNonce:0,tssPolyCommits:i,factorPubs:r,factorEncs:t});const n=xe(this._tssCurve);await this._setTKeyStoreItem(qr,{id:"accountSalt",value:n}),this._accountSalt=n}if(this.metadata.tssPolyCommits[this.tssTag]&&(this.metadata.tssKeyTypes[this.tssTag]||Jr)!==this.tssKeyType)throw or.default(`tssKeyType mismatch: ${this.metadata.tssKeyTypes[this.tssTag]} !== ${this.tssKeyType}`);return t}getFactorEncs(e){if(!this.metadata)throw or.metadataUndefined();if(!this.metadata.factorEncs)throw or.default("no factor encs mapping");if(!this.metadata.factorPubs)throw or.default("no factor pubs mapping");const t=this.metadata.factorPubs[this.tssTag];if(!t)throw or.default(`no factor pubs for this tssTag ${this.tssTag}`);if(0===t.filter((t=>0===t.x.cmp(e.x)&&0===t.y.cmp(e.y))).length)throw or.default(`factor pub ${e} not found for tssTag ${this.tssTag}`);if(!this.metadata.factorEncs[this.tssTag])throw or.default(`no factor encs for tssTag ${this.tssTag}`);const r=e.x.toString(16,64);return this.metadata.factorEncs[this.tssTag][r]}async getTSSShare(e,t){const r=Ee(e,zr),i=this.getFactorEncs(r),{userEnc:n,serverEncs:s,tssIndex:o,type:a}=i,c=await le(jr.from(e.toString(16,64),"hex"),n),h=await Promise.all(s.map((t=>null===t?null:le(jr.from(e.toString(16,64),"hex"),t)))),d=[c].concat(h).map((e=>null===e?null:new(T())(e))),u=this._tssCurve,f=this.getTSSCommits().map((e=>u.keyFromPublic({x:e.x.toString(16,64),y:e.y.toString(16,64)}).getPublic())),l=d[0],p=(null==t?void 0:t.accountIndex)||0,y=(null==t?void 0:t.coefficient)||new(T())(1);if("direct"===a){const e=u.g.mul(l),t=f[0],r=f[1],i=t.add(r.mul(new(T())(o)));if(e.eq(i))return{tssIndex:o,tssShare:this.adjustTssShare(l,p,y)};throw new Error("user decryption does not match tss commitments...")}const m=d.slice(1),g=new Array(m.length).fill(null).map(((e,t)=>t+1)),b=(null==t?void 0:t.threshold)||Math.ceil(m.length/2),v=_e(m.length,b);for(let e=0;et.indexOf(r)>-1));if(r.includes(null))continue;const i=g.filter(((e,r)=>t.indexOf(r)>-1)),n=Rr(i.map((e=>ke(u,i,e))),r,u.n),s=Rr([ke(u,[1,99],1),ke(u,[1,99],99)],[n,l],u.n),a=u.g.mul(s),c=f[0],h=f[1];let d=c;for(let e=0;e0){const i=this.computeAccountNonce(e),n=t.keyFromPrivate(i.toString("hex")).getPublic(),s=r[0].toEllipticPoint(t).add(n);return Se.fromElliptic(s)}return r[0]}async _getRssNodeDetails(){const{serverEndpoints:e,serverPubKeys:t,serverThreshold:r}=await this.serviceProvider.getRSSNodeDetails();if(!Array.isArray(e)||0===e.length)throw new Error("service provider tss server endpoints are missing");if(!Array.isArray(t)||0===t.length)throw new Error("service provider pub keys are missing");return{serverEndpoints:e,serverPubKeys:t,serverThreshold:r||Math.floor(e.length/2)+1}}async importTssKey(e,t){const r=this._tssCurve;if(!this.secp256k1Key)throw or.privateKeyUnavailable();if(!this.metadata)throw or.metadataUndefined();const{importKey:i,factorPub:n,newTSSIndex:s,tag:o}=e,a=this.tssTag;this._tssTag=o;try{const{selectedServers:e=[],authSignatures:a=[]}=t||{};if(!o)throw or.default("invalid param, tag is required");if(!n)throw or.default("invalid param, newFactorPub is required");if(!s)throw or.default("invalid param, newTSSIndex is required");if(0===a.length)throw or.default("invalid param, authSignatures is required");const c=this.metadata.factorPubs[o];if((null==c?void 0:c.length)>0)throw or.default("Duplicate account tag, please use a unique tag for importing key");const h=[n],d=await(async()=>{if(this._tssKeyType===Te.secp256k1)return new(T())(i);if(this._tssKeyType===Te.ed25519){const e=Ae(this.tssTag||$r);if(this.metadata.getGeneralStoreDomain(e))throw new Error("Seed already exists");const{scalar:t}=Qt(i),r=jr.from($t(t).point.encodeCompressed("hex"),"hex"),n=await fe(r,i);return this.metadata.setGeneralStoreDomain(e,{message:n}),t}throw new Error("Invalid key type")})();if(!d||d.eq(new(T())("0")))throw new Error("Invalid importedKey");const u=[s],f=this.metadata.tssNonces[this.tssTag],l=f&&f>0?f+1:0,p=`${this.serviceProvider.getVerifierNameVerifierId()}${this.tssTag}${l}`,y=Or(r.g.mul(d)),m=await this._getRssNodeDetails(),{pubKey:g,nodeIndexes:b}=await this.serviceProvider.getTSSPubKey(this.tssTag,l);let v=e;(null==b?void 0:b.length)>0?v=e.length?b.slice(0,Math.min(e.length,b.length)):b.slice(0,3):0===(null==e?void 0:e.length)&&(v=Ar(new Array(m.serverEndpoints.length).fill(null).map(((e,t)=>t+1)),Math.ceil(m.serverEndpoints.length/2)));const{serverEndpoints:w,serverPubKeys:S,serverThreshold:_}=m,x=new Ur({serverEndpoints:w,serverPubKeys:S,serverThreshold:_,tssPubKey:y,keyType:this._tssKeyType}),k=await x.import({importKey:d,dkgNewPub:Me(g),selectedServers:v,factorPubs:h.map((e=>Me(e))),targetIndexes:u,newLabel:p,sigs:a}),P=g.toEllipticPoint(r).add(Tr(r,y).neg()),M=[Se.fromJSON(y),Se.fromJSON({x:P.getX().toString(16,64),y:P.getY().toString(16,64)})],E={};for(let e=0;e0&&(w=v.slice(0,Math.min(f.length,v.length)));const S=await p.refresh({factorPubs:i.map((e=>Me(e))),targetIndexes:n,oldLabel:m,newLabel:g,sigs:l,dkgNewPub:Me(b),inputShare:t,inputIndex:r,selectedServers:w}),_=b.toEllipticPoint(this._tssCurve).add(Tr(this._tssCurve,c).neg()),x=[Se.fromJSON(c),Se.fromJSON({x:_.getX().toString(16,64),y:_.getY().toString(16,64)})],k={};for(let e=0;et+1)),Math.ceil(h.serverEndpoints.length/2)),u=n||d,f=e.map((e=>this.getFactorEncs(e).tssIndex)).concat([i]);await this._refreshTSSShares(!1,a,c,t,f,o,se(se({},h),{},{selectedServers:u,authSignatures:s}))}else{if(c!==i)throw or.default("newTSSIndex does not match existing tssIndex, set refreshShares to true to refresh shares");const e=this.metadata.factorPubs[this.tssTag].concat([r]),t=JSON.parse(JSON.stringify(this.metadata.factorEncs[this.tssTag]));t[r.x.toString(16,64)]={tssIndex:c,type:"direct",userEnc:await fe(r.toSEC1(ue,!1),a.toArrayLike(jr,"be",32)),serverEncs:[]},this.metadata.updateTSSData({tssKeyType:this.tssKeyType,tssTag:this.tssTag,factorPubs:e,factorEncs:t})}await this._syncShareMetadata()}async deleteFactorPub(e){if(!this.metadata)throw or.metadataUndefined("metadata is undefined");if(!this.secp256k1Key)throw new Error("Tkey is not reconstructed");if(!this.metadata.tssPolyCommits[this.tssTag])throw new Error(`tss key has not been initialized for tssTag ${this.tssTag}`);const{factorKey:t,deleteFactorPub:r,selectedServers:i,authSignatures:n}=e,s=this.metadata.factorPubs[this.tssTag],{tssShare:o,tssIndex:a}=await this.getTSSShare(t),c=s.filter((e=>e.x.eq(r.x)&&e.y.eq(r.y)));if(0===c.length)throw or.default("could not find factorPub to delete");if(c.length>1)throw or.default("found two or more factorPubs that match, error in metadata");const h=s.filter((e=>!e.x.eq(r.x)||!e.y.eq(r.y)));this.metadata.updateTSSData({tssKeyType:this._tssKeyType,tssTag:this.tssTag,factorPubs:h});const d=await this._getRssNodeDetails(),u=Ar(new Array(d.serverEndpoints.length).fill(null).map(((e,t)=>t+1)),Math.ceil(d.serverEndpoints.length/2)),f=i||u,l=h.map((e=>this.getFactorEncs(e).tssIndex));await this._refreshTSSShares(!1,o,a,h,l,this.serviceProvider.getVerifierNameVerifierId(),se(se({},d),{},{selectedServers:f,authSignatures:n})),await this._syncShareMetadata()}adjustTssShare(e,t,r){const i=this.computeAccountNonce(t);return e.mul(r).add(i).umod(this._tssCurve.n)}async _initializeNewTSSKey(e,t,r,i){const n=this._tssCurve;let s;const o=i||2;s=t||this._tssCurve.genKeyPair().getPrivate();const{pubKey:a}=await this.serviceProvider.getTSSPubKey(e,0),c=a.toEllipticPoint(n),h=this._tssCurve.g.mul(s),d=ke(n,[1,o],1,0),u=ke(n,[1,o],o,0),f=c.mul(d).add(h.mul(u)),l=c.add(f.neg()),p=[Se.fromElliptic(f),Se.fromElliptic(l)],y=[r],m={};for(let e=0;ethis.generateMetadataParams(await ti.serializeMetadataParamsInput(e,t,r[i]),t,r[i])))),o=new FormData;s.forEach(((e,t)=>{o.append(t.toString(),JSON.stringify(e))}));const a={mode:"cors",method:"POST",headers:{}},c={isUrlEncodedData:!0,timeout:6e5};return await Lt(`${this.hostUrl}/bulk_set_stream`,o,a,c)}catch(e){throw await pe(e)}}generateMetadataParams(e,t,r){let i,n,s,o="tkey";const a={data:e,timestamp:new(T())(~~(this.serverTimeOffset+Date.now()/1e3)).toString(16)};e===qe&&(o="noncev2",a.data="");const c=(0,ze.So)(Zr.from(et()(a),"utf8"));if(r){const e=Ne(r).sign(c);i=Zr.from(e.r.toString(16,64)+e.s.toString(16,64)+new(T())(0).toString(16,2),"hex").toString("base64");const t=Le(r);n=t.x.toString("hex"),s=t.y.toString("hex")}else{const e=t.retrievePubKeyPoint();i=t.sign(new(T())(c)),n=e.getX().toString("hex"),s=e.getY().toString("hex")}return{pub_key_X:n,pub_key_Y:s,set_data:a,signature:i,namespace:o}}async acquireWriteLock(e){const{serviceProvider:t,privKey:r}=e,i={timestamp:Math.floor(this.serverTimeOffset+Date.now()/1e3)};let n;n=r?ei(i,r):t.sign(new(T())((0,ze.So)(Zr.from(et()(i),"utf8"))));const s={key:Ne(r).getPublic("hex"),data:i,signature:n};return Lt(`${this.hostUrl}/acquireLock`,s)}async releaseWriteLock(e){const{serviceProvider:t,privKey:r,id:i}=e,n={timestamp:Math.floor(this.serverTimeOffset+Date.now()/1e3)};let s;s=r?ei(n,r):t.sign(new(T())((0,ze.So)(Zr.from(et()(n),"utf8"))));const o={key:Ne(r).getPublic("hex"),data:n,signature:s,id:i};return Lt(`${this.hostUrl}/releaseLock`,o)}toJSON(){return{enableLogging:this.enableLogging,hostUrl:this.hostUrl,storageLayerName:this.storageLayerName}}}var ri=ti,ii=r(8287).hp;class ni{constructor({enableLogging:e=!1,postboxKey:t}){_(this,"enableLogging",void 0),_(this,"postboxKey",void 0),_(this,"serviceProviderName",void 0),_(this,"migratableKey",null),this.enableLogging=e,this.postboxKey=new(T())(t,"hex"),this.serviceProviderName="ServiceProviderBase"}static fromJSON(e){const{enableLogging:t,postboxKey:r,serviceProviderName:i}=e;if("ServiceProviderBase"===i)return new ni({enableLogging:t,postboxKey:r})}async encrypt(e){return fe(this.retrievePubKey("ecc"),e)}async decrypt(e){return le(Ke(this.postboxKey),e)}retrievePubKeyPoint(){return Ne(this.postboxKey).getPublic()}retrievePubKey(e){if("ecc"===e)return Ce(this.postboxKey);throw new Error("Unsupported pub key type")}sign(e){const t=new(T())(e,"hex"),r=Ne(this.postboxKey).sign(t.toString("hex"));return ii.from(r.r.toString(16,64)+r.s.toString(16,64)+new(T())(0).toString(16,2),"hex").toString("base64")}toJSON(){return{enableLogging:this.enableLogging,postboxKey:this.postboxKey.toString("hex"),serviceProviderName:this.serviceProviderName}}}var si=ni;function oi(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.includes(i))continue;r[i]=e[i]}return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i{const r=ai[e];if(!r||0===r.length)throw new Error(`Unsupported network: ${e}`);const i=s[t];return r.map((e=>i&&i.networkIdentifier?`${e}/sss/${i.networkIdentifier}/jrpc`:`${e}/sss/jrpc`))},hi=(e,t)=>{const r=ai[e];if(!r||0===r.length)throw new Error(`Unsupported network: ${e}`);const i=s[t];return r.map((e=>i&&i.networkIdentifier?`${e}/rss/${i.networkIdentifier}`:`${e}/rss`))},di=(e,t,r=c.SECP256K1)=>{const i=ai[e];if(!i||0===i.length)throw new Error(`Unsupported network: ${e}`);const n=r===c.ED25519?"tss-frost":"tss",o=s[t];return i.map((e=>o&&o.networkIdentifier?`${e}/${n}/${o.networkIdentifier}`:`${e}/${n}`))},ui={[t.SAPPHIRE_MAINNET]:[{X:"e0925898fee0e9e941fdca7ee88deec99939ae9407e923535c4d4a3a3ff8b052",Y:"54b9fea924e3f3e40791f9987f4234ae4222412d65b74068032fa5d8b63375c1"},{X:"9124cf1e280aab32ba50dffd2de81cecabc13d82d2c1fe9de82f3b3523f9b637",Y:"fca939a1ceb42ce745c55b21ef094f543b457630cb63a94ef4f1afeee2b1f107"},{X:"555f681a63d469cc6c3a58a97e29ebd277425f0e6159708e7c7bf05f18f89476",Y:"606f2bcc0884fa5b64366fc3e8362e4939841b56acd60d5f4553cf36b891ac4e"},{X:"2b5f58d8e340f1ab922e89b3a69a68930edfe51364644a456335e179bc130128",Y:"4b4daa05939426e3cbe7d08f0e773d2bf36f64c00d04620ee6df2a7af4d2247"},{X:"3ecbb6a68afe72cf34ec6c0a12b5cb78a0d2e83ba402983b6adbc5f36219861a",Y:"dc1031c5cc8f0472bd521a62a64ebca9e163902c247bf05937daf4ae835091e4"}],[t.SAPPHIRE_DEVNET]:[{X:"f74389b0a4c8d10d2a687ae575f69b20f412d41ab7f1fe6b358aa14871327247",Y:"54e3a73098ed9bced3ef8821736e9794f9264a1420c0c7ad15d2fa617ba35ef7"},{X:"bc38813a6873e526087918507c78fc3a61624670ee851ecfb4f3bef55d027b5a",Y:"ac4b21229f662a0aefdfdac21cf17c3261a392c74a8790db218b34e3e4c1d56a"},{X:"b56541684ea5fa40c8337b7688d502f0e9e092098962ad344c34e94f06d293fb",Y:"759a998cef79d389082f9a75061a29190eec0cac99b8c25ddcf6b58569dad55c"},{X:"7bcb058d4c6ffc6ba4bfdfd93d141af35a66338a62c7c27cdad2ae3f8289b767",Y:"336ab1935e41ed4719e162587f0ab55518db4207a1eb36cc72303f1b86689d2b"},{X:"bf12a136ef94399ea098f926f04e26a4ec4ac70f69cce274e8893704c4951773",Y:"bdd44828020f52ce510e026338216ada184a6867eb4e19fb4c2d495d4a7e15e4"}]},fi=(e,t,r)=>({currentEpoch:"1",torusNodeEndpoints:ci(e,t),torusNodeSSSEndpoints:ci(e,t),torusNodeRSSEndpoints:hi(e,t),torusNodeTSSEndpoints:di(e,t,r),torusIndexes:[1,2,3,4,5],torusNodePub:ui[e]});function li(r,i){if(Object.values(t).includes(r))return fi(r,void 0,i);if(Object.values(e).includes(r)){const e=s[r];if(e.migrationCompleted)return fi(e.networkMigratedTo,r,i)}}const pi=rt().getLogger("fnd");var yi=class{constructor({network:e=t.SAPPHIRE_MAINNET,keyType:r=c.SECP256K1,fndServerEndpoint:i,enableLogging:n=!1}={}){_(this,"fndServerEndpoint","https://fnd.web3auth.io/node-details"),_(this,"_currentEpoch","1"),_(this,"_keyType",void 0),_(this,"_torusNodeEndpoints",[]),_(this,"_torusNodeRSSEndpoints",[]),_(this,"_torusNodeSSSEndpoints",[]),_(this,"_torusNodeTSSEndpoints",[]),_(this,"_torusNodePub",[]),_(this,"_torusIndexes",[]),_(this,"updated",void 0),_(this,"network",void 0),this.network=e,this._keyType=r,this.updated=!1,i&&(this.fndServerEndpoint=i),n?pi.enableAll():pi.disableAll()}get _nodeDetails(){return{currentEpoch:this._currentEpoch,torusNodeEndpoints:this._torusNodeEndpoints,torusNodeSSSEndpoints:this._torusNodeSSSEndpoints,torusNodeRSSEndpoints:this._torusNodeRSSEndpoints,torusNodeTSSEndpoints:this._torusNodeTSSEndpoints,torusNodePub:this._torusNodePub,torusIndexes:this._torusIndexes,updated:this.updated}}async getNodeDetails({verifier:e,verifierId:t}){try{if(this.updated&&!n.includes(this.network))return this._nodeDetails;try{const{nodeDetails:r}=await Ct(`${this.fndServerEndpoint}?network=${this.network}&verifier=${e}&verifierId=${t}&keyType=${this._keyType}`);return this.setNodeDetails(r),this._nodeDetails}catch(e){pi.error("Failed to fetch node details from server, using local.",e)}const r=li(this.network,this._keyType);if(!r)throw new Error("Failed to fetch node details");return this.setNodeDetails(r),this._nodeDetails}catch(e){throw pi.error("Failed to fetch node details",e),e}}async getMetadataUrl(){return Object.values(e).includes(this.network)?a[this.network]:(await this.getNodeDetails({verifier:"test-verifier",verifierId:"test-verifier-id"})).torusNodeEndpoints[0].replace("/sss/jrpc","/metadata")}setNodeDetails(e){const{currentEpoch:t,torusNodeEndpoints:r,torusNodeSSSEndpoints:i,torusNodeRSSEndpoints:n,torusNodeTSSEndpoints:s,torusNodePub:o,torusIndexes:a}=e;this._torusNodeEndpoints=r,this._torusNodeSSSEndpoints=i||[],this._torusNodeRSSEndpoints=n||[],this._torusNodeTSSEndpoints=s||[],this._torusNodePub=o,this._torusIndexes=a,this._currentEpoch=t,this.updated=!0}};const mi={logRequestTracing:!1},gi=rt().getLogger("torus.js");gi.disableAll();class bi extends Error{}class vi extends Error{constructor({errors:e,responses:t,predicate:r}){super(`Unable to resolve enough promises. \n errors: ${e.map((e=>(null==e?void 0:e.message)||e)).join(", ")}, \n predicate error: ${r},\n ${t.length} responses,\n responses: ${JSON.stringify(t)}`),_(this,"errors",void 0),_(this,"responses",void 0),_(this,"predicate",void 0),this.errors=e,this.responses=t,this.predicate=r}get message(){return`${super.message}. errors: ${this.errors.map((e=>(null==e?void 0:e.message)||e)).join(", ")} and ${this.responses.length} responses: ${JSON.stringify(this.responses)},\n predicate error: ${this.predicate}`}toString(){return this.message}}const wi=(e,t)=>new Promise(((r,i)=>{let n=0;const s={resolved:!1},o=new Array(e.length).fill(void 0),a=new Array(e.length).fill(void 0);let c;e.forEach(((h,d)=>{h.then((e=>{a[d]=e})).catch((e=>{o[d]=e})).finally((()=>{if(!s.resolved)return t(a.slice(0),s).then((e=>{s.resolved=!0,r(e)})).catch((e=>{c=e})).finally((()=>{if(n+=1,n===e.length){const e=Object.values(a.reduce(((e,t)=>{if(t){var r;const{id:n,error:s}=t;(null==s||null===(r=s.data)||void 0===r?void 0:r.length)>0&&(s.data.startsWith("Error occurred while verifying params")?e[n]=(i=s.data).charAt(0).toUpperCase()+i.slice(1):e[n]=s.data)}var i;return e}),{}));if(e.length>0){const t=e.length>1?`\n${e.map((e=>`• ${e}`)).join("\n")}`:e[0];i(new Error(t))}else{var t;i(new vi({errors:o,responses:a,predicate:(null===(t=c)||void 0===t?void 0:t.message)||c}))}}}))}))}))}));var Si=r(8287).hp;async function _i(e,t){const{legacyMetadataHost:r,serverTimeOffset:i,sessionAuthKey:n,enableOneKey:o,ecCurve:a,keyType:h,network:d,verifierParams:u,verifier:f,endpoints:l,isImportedShares:p}=e,y=1+~~(l.length/2);return wi(t,(async(e,t)=>{let r,s=[];if(1===e.length&&e[0]&&Array.isArray(e[0].result)){const t=e[0];e[0].result.forEach((e=>{s.push({id:t.id,jsonrpc:"2.0",result:e,error:t.error})}))}else s=e;const o=s.filter((e=>!(!e||"object"!=typeof e||e.error))),c=s.map((e=>{if(e&&e.result&&e.result.keys[0].public_key)return e.result.keys[0].public_key})),h=ct(c,y);if(!h)throw new Error("invalid result from nodes, threshold number of public key results are not matching");s.forEach((e=>{const t=e&&e.result&&e.result.keys[0].public_key&&e.result.keys[0];if(t&&!r&&!u.extended_verifier_id){var i;const e=t.public_key;(null===(i=t.nonce_data)||void 0===i||null===(i=i.pubNonce)||void 0===i?void 0:i.x)&&e.X===h.X&&(r=t.nonce_data)}}));const d=p?l.length:y;if(o.length>=d&&h){const e=[],s=[],c=[],d=[],l=[],p=[],b=[];for(let t=0;t0?u&&null!==(m=u[0])&&void 0!==m&&m.ephemPublicKey?s.push(zt(u[0],h[0],n).catch((e=>gi.error("session sig decryption",e)))):s.push(Promise.resolve(Si.from(h[0],"hex"))):s.push(Promise.resolve(void 0)),(null==i?void 0:i.length)>0?a&&null!==(g=a[0])&&void 0!==g&&g.ephemPublicKey?c.push(zt(a[0],i[0],n).catch((e=>gi.error("session token sig decryption",e)))):c.push(Promise.resolve(Si.from(i[0],"base64"))):c.push(Promise.resolve(void 0)),(null==l?void 0:l.length)>0){const t=r.result.keys[0];d.push(new(T())(t.node_index)),t.share_metadata&&e.push(Jt(t.share_metadata,Si.from(t.share,"base64").toString("binary"),n).catch((e=>gi.error("share decryption",e))))}else d.push(void 0),e.push(Promise.resolve(void 0))}const v=await Promise.all(e.concat(s).concat(c)),w=v.slice(0,e.length),S=v.slice(e.length,e.length+s.length),_=v.slice(e.length+s.length,v.length),x=S.filter((e=>!!e));if(!u.extended_verifier_id&&x.length!!e));if(!u.extended_verifier_id&&k.length{e&&S[t]?l.push({token:e.toString("base64"),signature:S[t].toString("hex"),node_pubx:o[t].result.node_pubx,node_puby:o[t].result.node_puby}):l.push(void 0)})),t.resolved)return;const P=w.reduce(((e,t,r)=>(t&&e.push({index:d[r],value:new(T())(t)}),e)),[]),M=at(P.length,y);let E=null;for(let e=0;et.includes(r))),i=r.map((e=>e.value)),n=r.map((e=>e.index)),s=_t(a,i,n);if(!s)continue;const o=rr(a,s),c=o.getX(),d=o.getY();if(0===c.cmp(new(T())(h.X,16))&&0===d.cmp(new(T())(h.Y,16))){E=s;break}}if(null==E)throw new Error("could not derive private key");let I=!1;p.forEach((e=>{"true"===e.isNewKey&&e.publicKey.toLowerCase()===h.X.toLowerCase()&&(I=!0)}));const A=b.map((e=>Number.parseInt(e,10)));return{privateKey:E,sessionTokenData:l,thresholdNonceData:r,nodeIndexes:d,thresholdPubKey:h,isNewKey:I,serverTimeOffsetResponse:i||ft(A)}}if(o.length{var t;const{privateKey:l,thresholdPubKey:p,sessionTokenData:y,nodeIndexes:m,thresholdNonceData:g,isNewKey:b,serverTimeOffsetResponse:v}=e;let w=g;if(!l)throw new Error("Invalid private key returned");const S=l,_=rr(a,S),x=_.getX().toString("hex",64),k=_.getY().toString("hex",64);if(!w&&!u.extended_verifier_id&&!s[d]){const e=await Xt(d,p.X,p.Y,i,S);if(!e||g)throw new Error(`invalid metadata result from nodes, nonce metadata is empty for verifier: ${f} and verifierId: ${u.verifier_id}`);w=e}let P,M,E=new(T())(null!==(t=w)&&void 0!==t&&t.nonce?w.nonce.padStart(64,"0"):"0","hex"),I="v1";if(u.extended_verifier_id)I="v2",P=a.keyFromPublic({x,y:k}).getPublic();else if(s[d])if(o)if(w=await Yt(r,a,v,x,k,S,!b),E=new(T())(w.nonce||"0",16),I=w.typeOfUser,"v2"===I)M={X:w.pubNonce.x,Y:w.pubNonce.y},P=a.keyFromPublic({x,y:k}).getPublic().add(a.keyFromPublic({x:w.pubNonce.x,y:w.pubNonce.y}).getPublic());else{I="v1",E=await Ht(r,{pub_key_X:x,pub_key_Y:k});const e=S.add(E).umod(a.n);P=a.keyFromPrivate(e.toString(16,64),"hex").getPublic()}else{I="v1",E=await Ht(r,{pub_key_X:x,pub_key_Y:k});const e=S.add(E).umod(a.n);P=a.keyFromPrivate(e.toString(16,64),"hex").getPublic()}else I="v2",P=a.keyFromPublic({x,y:k}).getPublic().add(a.keyFromPublic({x:w.pubNonce.x,y:w.pubNonce.y}).getPublic()),M={X:w.pubNonce.x,Y:w.pubNonce.y};if(!P)throw new Error("Invalid public key, this might be a bug, please report this to web3auth team");let A="",O=!1;const N=function(e,t){return er(e,ot(e).keyFromPrivate(t.toString("hex",64),"hex"))}(h,S),K=tr(h,P.getX(),P.getY());let C="";if("v1"===I?O=null:"v2"===I&&(O=E.eq(new(T())("0"))),("v1"===I||"v2"===I&&E.gt(new(T())(0)))&&(C=S.add(E).umod(a.n).toString("hex",64)),h===c.SECP256K1)A=C;else{if(h!==c.ED25519)throw new Error(`Invalid keyType: ${h}`);if(C&&!w.seed)throw new Error("Invalid data, seed data is missing for ed25519 key, Please report this bug");C&&w.seed&&(A=(await Wt(w.seed,new(T())(C,"hex"))).toString("hex"))}let L=S,R=x,B=k;if(h===c.ED25519){const{scalar:e,point:t}=$t(l);if(L=e,R=t.getX().toString(16,64),B=t.getY().toString(16,64),p.SignerX.padStart(64,"0")!==R||p.SignerY.padStart(64,"0")!==B)throw new Error("Invalid postbox key")}return{finalKeyData:{walletAddress:K,X:P.getX().toString(16,64),Y:P.getY().toString(16,64),privKey:A},oAuthKeyData:{walletAddress:N,X:x,Y:k,privKey:S.toString("hex",64)},postboxKeyData:{privKey:L.toString("hex",64),X:R,Y:B},sessionData:{sessionTokenData:y,sessionAuthKey:n.toString("hex").padStart(64,"0")},metadata:{pubNonce:M,nonce:E,typeOfUser:I,upgraded:O,serverTimeOffset:v},nodesData:{nodeIndexes:m.map((e=>e.toNumber()))}}}))}async function xi(e){const{legacyMetadataHost:t,enableOneKey:r,ecCurve:i,keyType:n,allowHost:s,network:o,clientId:a,endpoints:h,nodePubkeys:d,indexes:u,verifier:f,verifierParams:l,idToken:p,overrideExistingKey:y,newImportedShares:m,extraParams:g,useDkg:b=!0,serverTimeOffset:v,checkCommitment:w=!0}=e;await Ct(s,{headers:{verifier:f,verifierid:l.verifier_id,network:o,clientid:a,enablegating:"true"}},{useAPIKey:!0});const S=(0,ae.F_)(),_=(0,ae.qb)(S).toString("hex"),x=_.slice(2,66),k=_.slice(66);let P=[];const M=1+~~(h.length/2);if((null==m?void 0:m.length)>0){if(m.length!==h.length)throw new Error("Invalid imported shares length");P=m}else if(!b){const e=n===c.SECP256K1?st(i,Si):await nr(32),t=await ir(i,n,v,u,d,Si.from(e));P=[...P,...t]}let E,I=[];const A=[];if(w){I=await(async e=>{const{idToken:t,endpoints:r,indexes:i,keyType:n,verifier:s,verifierParams:o,pubKeyX:a,pubKeyY:c,finalImportedShares:h,overrideExistingKey:d}=e,u=nt(Si.from(t,"utf8")),f=1+~~(3*r.length/4),l=1+~~(r.length/2),p=[];for(let e=0;eLt(r[e],Ft("CommitmentRequest",{messageprefix:"mug00",keytype:n,tokencommitment:u.slice(2),temppubx:a,temppuby:c,verifieridentifier:s,verifier_id:o.verifier_id,extended_verifier_id:o.extended_verifier_id,is_import_key_flow:h.length>0}),{},{logTracingHeader:mi.logRequestTracing})),4);p.push(t)}return new Promise(((e,t)=>{wi(p,(e=>{const t=e.filter((e=>!(!e||"object"!=typeof e||e.error)));if(h.length>0){if(d&&t.length===r.length){if(t.find((e=>!!e)))return Promise.resolve(e)}else if(!d&&t.length>=f){const n=[];for(let e=0;ee&&e.pub_key_x)),l),c=ut(r,s,o.verifier_id),h=i[c].toString(10);if((a||!a&&t.length===r.length)&&t.find((e=>{var t;return!(!e||(null===(t=e.result)||void 0===t?void 0:t.nodeindex)!==h)})))return Promise.resolve(e)}}else if(t.length>=f&&t.find((e=>!!e)))return Promise.resolve(e);return Promise.reject(new Error(`invalid commitment results ${JSON.stringify(e)}`))})).then((t=>e(t))).catch(t)}))})({idToken:p,endpoints:h,indexes:u,keyType:n,verifier:f,verifierParams:l,pubKeyX:x,pubKeyY:k,finalImportedShares:P,overrideExistingKey:y});for(let e=0;ee&&e.pub_key_x)),M)}else if(!w&&P.length>0&&!y){var T,O;const e=await(async e=>{const{endpoints:t,verifier:r,verifierId:i,keyType:n}=e,s=1+~~(t.length/2),o=t.map((e=>Lt(e,Ft("VerifierLookupRequest",{verifier:r,verifier_id:i.toString(),key_type:n,client_time:Math.floor(Date.now()/1e3).toString()}),{},{logTracingHeader:mi.logRequestTracing}).catch((e=>gi.error(`${Dt} request failed`,e)))));return await wi(o,(async e=>{const t=e.filter((e=>!(!e||e.error)&&e)),n=ct(e.map((e=>e&&e.error)),s),o=ct(t.map((e=>e&&(e=>{const t={keys:[]};if(e&&e.keys&&e.keys.length>0){const r=e.keys[0];t.keys=[{pub_key_X:r.pub_key_X,pub_key_Y:r.pub_key_Y,address:r.address}]}return t})(e.result))),s);if(o||n){const e=o?ft([]):0;return Promise.resolve({keyResult:o,serverTimeOffset:e,errorResult:n})}return Promise.reject(new Error(`invalid lookup result: ${JSON.stringify(e)}\n )} for verifier: ${r}, verifierId: ${i}`))}))})({endpoints:h,verifier:f,verifierId:l.verifier_id,keyType:n});if(e.errorResult&&(null===(T=e.errorResult)||void 0===T||null===(T=T.data)||void 0===T||!T.includes("Verifier + VerifierID has not yet been assigned")))throw new Error(`node results do not match at first lookup ${JSON.stringify(e.keyResult||{})}, ${JSON.stringify(e.errorResult||{})}`);(null===(O=e.keyResult)||void 0===O||null===(O=O.keys)||void 0===O?void 0:O.length)>0&&(E=!!e.keyResult.keys[0])}const N=[],K=y||!b&&!E;if(K){const e=ut(h,f,l.verifier_id),t=[];for(let e=0;egi.error("share req",e)));N.push(r)}else for(let e=0;e{const{endpoints:t,network:r,verifier:i,verifierId:n,extendedVerifierId:o,keyType:a}=e,c=1+~~(t.length/2),h=t.map((e=>Lt(e,Ft(Dt,{distributed_metadata:!0,verifier:i,verifier_id:n.toString(),extended_verifier_id:o,one_key_flow:!0,key_type:a,fetch_node_index:!0,client_time:Math.floor(Date.now()/1e3).toString()}),{},{logTracingHeader:mi.logRequestTracing}).catch((e=>gi.error(`${Dt} request failed`,e)))));let d;const u=[];return await wi(h,(async e=>{const t=e.filter((e=>!(!e||e.error)&&e)),a=ct(e.map((e=>e&&e.error)),c),h=ct(t.map((e=>e&&(e=>{const t={keys:[],is_new_key:e.is_new_key};if(e&&e.keys&&e.keys.length>0){const r=e.keys[0];t.keys=[{pub_key_X:r.pub_key_X,pub_key_Y:r.pub_key_Y,address:r.address}]}return t})(e.result))),c);if(h&&!d&&!o&&!s[r]){for(let t=0;t{if(e&&e.result){if(e.result.keys[0].pub_key_X.toLowerCase()===h.keys[0].pub_key_X.toLowerCase()){const t=Number.parseInt(e.result.node_index);t&&u.push(t)}const t=e.result.server_time_offset?Number.parseInt(e.result.server_time_offset,10):0;l.push(t)}}));const t=h?ft(l):0;return Promise.resolve({keyResult:h,serverTimeOffset:t,nodeIndexes:u,errorResult:a,nonceResult:d})}return Promise.reject(new Error(`invalid public key result: ${JSON.stringify(e)} and nonce result:${JSON.stringify(d||{})} for verifier: ${i}, verifierId: ${n} and extendedVerifierId: ${o} `))}))})({endpoints:e,network:this.network,verifier:t,verifierId:r,keyType:this.keyType,extendedVerifierId:i}),{errorResult:a,keyResult:c,nodeIndexes:h=[],serverTimeOffset:d}=o,u=this.serverTimeOffset||d,{nonceResult:f}=o;if(a&&JSON.stringify(a).toLowerCase().includes("verifier not supported"))throw new Error("Verifier not supported. Check if you: \n\n 1. Are on the right network (Torus testnet/mainnet) \n\n 2. Have setup a verifier on dashboard.web3auth.io?");if(a)throw new Error(`node results do not match at first lookup ${JSON.stringify(c||{})}, ${JSON.stringify(a||{})}`);if(null==c||!c.keys)throw new Error(`node results do not match at final lookup ${JSON.stringify(c||{})}, ${JSON.stringify(a||{})}`);if(!f&&!i&&!s[this.network])throw new bi("metadata nonce is missing in share response");const{pub_key_X:l,pub_key_Y:p}=c.keys[0];let y;const m=new(T())((null==f?void 0:f.nonce)||"0",16);let g,b;if(i)b=this.ec.keyFromPublic({x:l,y:p}).getPublic(),g=b;else{if(s[this.network])return this.formatLegacyPublicKeyData({isNewKey:c.is_new_key,enableOneKey:n,finalKeyResult:{keys:c.keys},serverTimeOffset:u});{const e=f;g=this.ec.keyFromPublic({x:l,y:p}).getPublic(),b=this.ec.keyFromPublic({x:l,y:p}).getPublic().add(this.ec.keyFromPublic({x:e.pubNonce.x,y:e.pubNonce.y}).getPublic()),y={X:e.pubNonce.x,Y:e.pubNonce.y}}}if(!g)throw new Error("Unable to derive oAuthPubKey");const v=g.getX().toString(16,64),w=g.getY().toString(16,64),S=tr(this.keyType,g.getX(),g.getY());if(!b)throw new Error("Unable to derive finalPubKey");const _=b?b.getX().toString(16,64):"",x=b?b.getY().toString(16,64):"";return{oAuthKeyData:{walletAddress:S,X:v,Y:w},finalKeyData:{walletAddress:b?tr(this.keyType,b.getX(),b.getY()):"",X:_,Y:x},metadata:{pubNonce:y,nonce:m,upgraded:(null==f?void 0:f.upgraded)||!1,typeOfUser:"v2",serverTimeOffset:u},nodesData:{nodeIndexes:h}}}async formatLegacyPublicKeyData(e){var t;const{finalKeyResult:r,enableOneKey:i,isNewKey:n,serverTimeOffset:s}=e,{pub_key_X:o,pub_key_Y:a}=r.keys[0];let c,h,d,u,f;const l=this.ec.keyFromPublic({x:o,y:a}).getPublic(),p=this.serverTimeOffset||s;if(i){try{c=await Yt(this.legacyMetadataHost,this.ec,p,o,a,void 0,!n),h=new(T())(c.nonce||"0",16),u=c.typeOfUser}catch{throw new bi}if("v1"===c.typeOfUser)h=await Ht(this.legacyMetadataHost,{pub_key_X:o,pub_key_Y:a}),d=this.ec.keyFromPublic({x:o,y:a}).getPublic().add(this.ec.keyFromPrivate(h.toString(16,64),"hex").getPublic());else{if("v2"!==c.typeOfUser)throw new Error("getOrSetNonce should always return typeOfUser.");d=this.ec.keyFromPublic({x:o,y:a}).getPublic().add(this.ec.keyFromPublic({x:c.pubNonce.x,y:c.pubNonce.y}).getPublic()),f={X:c.pubNonce.x,Y:c.pubNonce.y}}}else u="v1",h=await Ht(this.legacyMetadataHost,{pub_key_X:o,pub_key_Y:a}),d=this.ec.keyFromPublic({x:o,y:a}).getPublic().add(this.ec.keyFromPrivate(h.toString(16,64),"hex").getPublic());if(!l)throw new Error("Unable to derive oAuthPubKey");const y=l.getX().toString(16,64),m=l.getY().toString(16,64),g=tr(this.keyType,l.getX(),l.getY());if("v2"===u&&!d)throw new Error("Unable to derive finalPubKey");const b=d?d.getX().toString(16,64):"",v=d?d.getY().toString(16,64):"";return{oAuthKeyData:{walletAddress:g,X:y,Y:m},finalKeyData:{walletAddress:d?tr(this.keyType,d.getX(),d.getY()):"",X:b,Y:v},metadata:{pubNonce:f,nonce:h,upgraded:(null===(t=c)||void 0===t?void 0:t.upgraded)||!1,typeOfUser:u,serverTimeOffset:p},nodesData:{nodeIndexes:[]}}}}_(Pi,"sessionTime",86400);const Mi="facebook",Ei="apple",Ii="github",Ai="linkedin",Ti="twitter",Oi="weibo",Ni="line",Ki="email_password",Ci="passwordless",Li="email_passwordless",Ri="sms_passwordless",Bi="single_id_verifier",Fi="popup",Di="redirect",Ui="localStorage",ji="server",qi="triggerLogin",$i="triggerAggregateLogin";var zi=r(6880),Ji=r.n(zi),Hi=rt().getLogger("customauth");const Vi={[Ei]:"apple",[Ii]:"github",[Ai]:"linkedin",[Ti]:"twitter",[Oi]:"weibo",[Ni]:"line",[Ki]:"Username-Password-Authentication",[Ci]:"email",[Li]:"email",[Ri]:"sms"},Yi=e=>e.href.endsWith("/")?e.href:`${e.href}/`,Wi={webWorkerSupport:!1};function Xi(e,t){return t?e:e.toLowerCase()}const Gi=(e,t,r,i=!0)=>{const{name:n,sub:s}=e;if(r)return Xi(e[r],i);switch(t){case Ci:case Ki:case Li:case Ri:return Xi(n,i);case Oi:case Ii:case Ti:case Ei:case Ai:case Ni:case"jwt":return Xi(s,i);default:throw new Error("Invalid login type to get verifier id")}},Qi=(e,t)=>{const r=e.split("&").reduce(((e,t)=>{const[r,i]=t.split("=");return e[r]=i,e}),{});Hi.info(r,t);let i={},n="";return Object.keys(r).length>0&&r.state?(i=JSON.parse(Qr().decode(decodeURIComponent(decodeURIComponent(r.state))))||{},n=r.error_description||r.error||n):Object.keys(t).length>0&&t.state&&(i=JSON.parse(Qr().decode(decodeURIComponent(decodeURIComponent(t.state))))||{},t.error&&(n=t.error)),{error:n,instanceParameters:i,hashParameters:r}};function Zi(e){const{baseURL:t,query:r,hash:i}=e,n=new URL(t);if(r&&Object.keys(r).forEach((e=>{n.searchParams.append(e,r[e])})),i){const e=new URL(Zi({baseURL:t,query:i})).searchParams.toString();n.hash=e}return n.toString()}const en=e=>{try{return new URL(decodeURIComponent(e))}catch(t){throw new Error(`${(null==t?void 0:t.message)||""}, Note: Your jwt domain: (i.e ${e}) must have http:// or https:// prefix`)}};function tn(e){const[t,r]=e.split(".");return{header:JSON.parse(Qr().decode(t)),payload:JSON.parse(Qr().decode(r))}}var rn=r(7007);class nn extends rn.EventEmitter{constructor({url:e,target:t,features:r,timeout:i=3e4}){super(),_(this,"url",void 0),_(this,"target",void 0),_(this,"features",void 0),_(this,"window",void 0),_(this,"windowTimer",void 0),_(this,"iClosedWindow",void 0),_(this,"timeout",void 0),this.url=e,this.target=t||"_blank",this.features=r||function(){const e=void 0!==window.screenLeft?window.screenLeft:window.screenX,t=void 0!==window.screenTop?window.screenTop:window.screenY,r=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:window.screen.width,i=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:window.screen.height,n=Math.abs((r-1200)/2/1+e);return`titlebar=0,toolbar=0,status=0,location=0,menubar=0,height=700,width=1200,top=${Math.abs((i-700)/2/1+t)},left=${n}`}(),this.window=void 0,this.windowTimer=void 0,this.iClosedWindow=!1,this.timeout=i,this._setupTimer()}_setupTimer(){this.windowTimer=Number(setInterval((()=>{this.window&&this.window.closed&&(clearInterval(this.windowTimer),setTimeout((()=>{this.iClosedWindow||this.emit("close"),this.iClosedWindow=!1,this.window=void 0}),this.timeout)),void 0===this.window&&clearInterval(this.windowTimer)}),500))}open(){var e;if(this.window=window.open(this.url.href,this.target,this.features),!this.window)throw new Error("popup window is blocked");return null!==(e=this.window)&&void 0!==e&&e.focus&&this.window.focus(),Promise.resolve()}close(){this.iClosedWindow=!0,this.window&&this.window.close()}redirect(e){e?window.location.replace(this.url.href):window.location.href=this.url.href}}const sn=["access_token","id_token"];class on{constructor(e){_(this,"nonce",Math.random().toString(36).slice(2)),_(this,"finalURL",void 0),_(this,"params",void 0),this.params=e}get state(){return encodeURIComponent(Qr().encode(JSON.stringify(se(se({},this.params.customState||{}),{},{instanceId:this.nonce,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin,redirectToOpener:this.params.redirectToOpener||!1}))))}async handleLoginWindow(e){const t=new nn({url:this.finalURL,features:e.popupFeatures,timeout:(i=this.params.typeOfLogin,i!==Mi&&i!==Ni||!function(){const e=Ji().getParser(navigator.userAgent).getPlatform();return e.type===Ji().PLATFORMS_MAP.tablet||e.type===Ji().PLATFORMS_MAP.mobile}()?1e4:6e4)});var i;if(this.params.uxMode!==Di){const{BroadcastChannel:e}=await Promise.resolve().then(r.bind(r,1352));return new Promise(((r,i)=>{let n;const s=async e=>{try{const{error:t,data:s}=e,o=s||{},{instanceParams:a,hashParams:{access_token:c,id_token:h}}=o,d=oi(o.hashParams,sn);if(t)return Hi.error(e),void i(new Error(`Error: ${t}. Info: ${JSON.stringify(e.data||{})}`));e.data&&a.verifier===this.params.verifier&&(Hi.info(e.data),!this.params.redirectToOpener&&n&&await n.postMessage({success:!0}),r(se(se({accessToken:c,idToken:h||""},d),{},{state:a})))}catch(e){Hi.error(e),i(e)}};if(this.params.redirectToOpener){const e=async r=>{if(!r.data)return;const i=r.data;i.channel===`redirect_channel_${this.nonce}`&&(window.removeEventListener("message",e),s(i),t.close())};window.addEventListener("message",e)}else n=new e(`redirect_channel_${this.nonce}`,Wi),n.addEventListener("message",(async e=>{await s(e),n.close(),t.close()}));try{t.open()}catch(e){return Hi.error(e),void i(e)}t.once("close",(()=>{n&&n.close(),i(new Error("user closed popup"))}))}))}return t.redirect(e.locationReplaceOnRedirect),null}}class an extends on{constructor(e){super(e),_(this,"RESPONSE_TYPE","token"),_(this,"SCOPE","identify email"),this.setFinalUrl()}setFinalUrl(){const e=new URL("https://discord.com/api/oauth2/authorize"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),r=Pt()({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE},t);Object.keys(r).forEach((t=>{const i=t;r[i]&&e.searchParams.append(i,r[i])})),this.finalURL=e}async getUserInfo(e){const{accessToken:t}=e,r=await Ct("https://discord.com/api/users/@me",{headers:{Authorization:`Bearer ${t}`}}),{id:i,avatar:n,email:s="",username:o="",discriminator:a=""}=r;return{profileImage:null===n?`https://cdn.discordapp.com/embed/avatars/${Number(a)%5}.png`:`https://cdn.discordapp.com/avatars/${i}/${n}.png?size=2048`,name:`${o}#${a}`,email:s,verifierId:i,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}class cn extends on{constructor(e){super(e),_(this,"RESPONSE_TYPE","token"),_(this,"SCOPE","public_profile email"),this.setFinalUrl()}setFinalUrl(){const e=new URL("https://www.facebook.com/v20.0/dialog/oauth"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),r=Pt()({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE},t);Object.keys(r).forEach((t=>{const i=t;r[i]&&e.searchParams.append(i,r[i])})),this.finalURL=e}async getUserInfo(e){const{accessToken:t}=e,r=await Ct("https://graph.facebook.com/me?fields=name,email,picture.type(large)",{headers:{Authorization:`Bearer ${t}`}}),{name:i="",id:n,picture:s,email:o=""}=r;return{email:o,name:i,profileImage:s.data.url||"",verifier:this.params.verifier,verifierId:n,typeOfLogin:this.params.typeOfLogin}}}class hn extends on{constructor(e){super(e),_(this,"RESPONSE_TYPE","token id_token"),_(this,"SCOPE","profile email openid"),_(this,"PROMPT","select_account"),this.setFinalUrl()}setFinalUrl(){const e=new URL("https://accounts.google.com/o/oauth2/v2/auth"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),r=Pt()({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,prompt:this.PROMPT,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,nonce:this.nonce},t);Object.keys(r).forEach((t=>{const i=t;r[i]&&e.searchParams.append(i,r[i])})),this.finalURL=e}async getUserInfo(e){const{accessToken:t}=e,r=await Ct("https://www.googleapis.com/userinfo/v2/me",{headers:{Authorization:`Bearer ${t}`}}),{picture:i="",email:n="",name:s=""}=r;return{email:n,name:s,profileImage:i,verifier:this.params.verifier,verifierId:n.toLowerCase(),typeOfLogin:this.params.typeOfLogin}}}class dn extends on{constructor(e){super(e),_(this,"SCOPE","openid profile email"),_(this,"RESPONSE_TYPE","token id_token"),_(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:e}=this.params.jwtParams,t=en(e);t.pathname+=t.pathname.endsWith("/")?"authorize":"/authorize";const r=JSON.parse(JSON.stringify(this.params.jwtParams));delete r.domain;const i=Pt()({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,prompt:this.PROMPT,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,connection:Vi[this.params.typeOfLogin],nonce:this.nonce},r);Object.keys(i).forEach((e=>{const r=e;i[r]&&t.searchParams.append(r,i[r])})),this.finalURL=t}async getUserInfo(e){const{idToken:t,accessToken:r}=e,{domain:i,verifierIdField:n,isVerifierIdCaseSensitive:s,user_info_route:o="userinfo"}=this.params.jwtParams;if(r)try{const e=new URL(i),t=await Ct(`${Yi(e)}${o}`,{headers:{Authorization:`Bearer ${r}`}}),{picture:a,name:c,email:h}=t;return{email:h,name:c,profileImage:a,verifierId:Gi(t,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(e){rt().warn(e,"Unable to get userinfo from endpoint")}if(t){const e=tn(t).payload,{name:r,email:i,picture:o}=e;return{profileImage:o,name:r,email:i,verifierId:Gi(e,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}throw new Error("Access/id token not available")}}class un extends on{constructor(e){super(e),this.setFinalUrl()}setFinalUrl(){const e=JSON.parse(JSON.stringify(this.params.jwtParams));delete e.domain;const t=Pt()({state:this.state,client_id:this.params.clientId,nonce:this.nonce},e);this.finalURL=new URL(Zi({baseURL:this.params.redirect_uri,query:null,hash:t}))}async getUserInfo(e){const{idToken:t,accessToken:r}=e,{domain:i,verifierIdField:n,isVerifierIdCaseSensitive:s,user_info_route:o="userinfo"}=this.params.jwtParams;if(r)try{const e=new URL(i),t=await Ct(`${Yi(e)}${o}`,{headers:{Authorization:`Bearer ${r}`}}),{picture:a,name:c,email:h}=t;return{email:h,name:c,profileImage:a,verifierId:Gi(t,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(e){rt().warn(e,"Unable to get userinfo from endpoint")}if(t){const e=tn(t).payload,{name:r,email:i,picture:o}=e;return{profileImage:o,name:r,email:i,verifierId:Gi(e,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}throw new Error("Access/id token not available")}handleLoginWindow(e){const{id_token:t,access_token:r}=this.params.jwtParams,i=new nn({url:this.finalURL,features:e.popupFeatures});return this.params.uxMode!==Di?Promise.resolve({state:{},idToken:t,accessToken:r}):(i.redirect(e.locationReplaceOnRedirect),null)}}var fn=r(8303),ln=r(3077);class pn{constructor(){_(this,"sessionId",void 0)}checkSessionParams(){if(!this.sessionId)throw new Error("Session id is required");this.sessionId=this.sessionId.padStart(64,"0")}request({method:e="GET",url:t,data:r={},headers:i={}}){const n={headers:i};switch(e){case"GET":return Ct(t,n);case"POST":return Lt(t,r,n);case"PUT":return Bt(t,r,n);case"PATCH":return Rt(t,r,n)}throw new Error("Invalid method type")}}var yn=r(8287).hp;class mn extends pn{constructor({sessionServerBaseUrl:e,sessionNamespace:t,sessionTime:r,sessionId:i,allowedOrigin:n}={}){super(),_(this,"sessionServerBaseUrl","https://session.web3auth.io"),_(this,"sessionNamespace",void 0),_(this,"allowedOrigin",void 0),_(this,"sessionTime",86400),_(this,"sessionId",""),e&&(this.sessionServerBaseUrl=e),t&&(this.sessionNamespace=t),r&&(this.sessionTime=r),i&&(this.sessionId=i.padStart(64,"0")),n&&(this.allowedOrigin=n||"*")}static generateRandomSessionKey(){return(0,ae.F_)().toString("hex").padStart(64,"0")}async createSession(e,t={}){super.checkSessionParams();const r=yn.from(this.sessionId,"hex"),i=(0,ae.qb)(r).toString("hex"),n=await(0,fn.yv)(this.sessionId,e),s={key:i,data:n,signature:(await(0,ae._S)(r,(0,ln.S)(yn.from(n,"utf8")))).toString("hex"),namespace:this.sessionNamespace,timeout:this.sessionTime,allowedOrigin:this.allowedOrigin};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:s,headers:t}),this.sessionId}async authorizeSession({headers:e}={headers:{}}){super.checkSessionParams();const t={key:(0,ae.qb)(yn.from(this.sessionId,"hex")).toString("hex"),namespace:this.sessionNamespace},r=await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/get`,data:t,headers:e});if(!r.message)throw new Error("Session Expired or Invalid public key");const i=await(0,fn.af)(this.sessionId,r.message);if(i.error)throw new Error("There was an error decrypting data.");return i}async updateSession(e,t={}){super.checkSessionParams();const r=yn.from(this.sessionId,"hex"),i=(0,ae.qb)(r).toString("hex"),n=await(0,fn.yv)(this.sessionId,e),s={key:i,data:n,signature:(await(0,ae._S)(r,(0,ln.S)(yn.from(n,"utf8")))).toString("hex"),namespace:this.sessionNamespace,allowedOrigin:this.allowedOrigin};await super.request({method:"PUT",url:`${this.sessionServerBaseUrl}/v2/store/update`,data:s,headers:t})}async invalidateSession(e={}){super.checkSessionParams();const t=yn.from(this.sessionId,"hex"),r=(0,ae.qb)(t).toString("hex"),i=await(0,fn.yv)(this.sessionId,{}),n={key:r,data:i,signature:(await(0,ae._S)(t,(0,ln.S)(yn.from(i,"utf8")))).toString("hex"),namespace:this.sessionNamespace,timeout:1};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:n,headers:e}),this.sessionId="",!0}}class gn extends on{constructor(e){super(e),this.setFinalUrl()}setFinalUrl(){const{passkeysHostUrl:e}=this.params.customState||{};if(!e)throw new Error("Invalid passkeys url.");const t=new URL(e),r=JSON.parse(JSON.stringify(this.params.jwtParams||{})),i=Pt()({state:this.state,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri},r);Object.keys(i).forEach((e=>{const r=e;i[r]&&t.searchParams.append(r,i[r])})),this.finalURL=t}async getUserInfo(e,t){const{idToken:r,extraParams:i}=e,{sessionId:n}=JSON.parse(Qr().decode(i))||{};if(!n)throw new Error("sessionId not found");const{verifier_id:s,signature:o,clientDataJSON:a,authenticatorData:c,publicKey:h,challenge:d,rpOrigin:u,rpId:f,credId:l,transports:p,username:y}=await async function(e,t){try{const r=new mn({sessionId:e,sessionServerBaseUrl:t,allowedOrigin:!0});return await r.authorizeSession()}catch(e){throw rt().error("fetch data from storage server error",e),new Error("Unable to retrieve data from storage server, invalid key or key expired.")}}(n,t);if(o!==r)throw new Error("idtoken should be equal to signature");return{email:"",name:"Passkeys Login",profileImage:"",verifier:this.params.verifier,verifierId:s,typeOfLogin:this.params.typeOfLogin,extraVerifierParams:{signature:o,clientDataJSON:a,authenticatorData:c,publicKey:h,challenge:d,rpOrigin:u,rpId:f,credId:l,transports:p,username:y}}}}const bn=["access_token","id_token"];class vn extends on{constructor(e){super(e),_(this,"SCOPE","openid profile email"),_(this,"RESPONSE_TYPE","token id_token"),_(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:e}=this.params.jwtParams,t=en(e);t.pathname="/passwordless/start",this.finalURL=t}async getUserInfo(e){const{idToken:t,accessToken:r}=e,{domain:i,verifierIdField:n,isVerifierIdCaseSensitive:s}=this.params.jwtParams;try{const e=new URL(i),t=await Ct(`${Yi(e)}userinfo`,{headers:{Authorization:`Bearer ${r}`}}),{picture:o,name:a,email:c}=t;return{email:c,name:a,profileImage:o,verifierId:Gi(t,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(e){Hi.error(e);const r=tn(t).payload,{name:i,email:o,picture:a}=r;return{profileImage:a,name:i,email:o,verifierId:Gi(r,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}async handleLoginWindow(){const{BroadcastChannel:e}=await Promise.resolve().then(r.bind(r,1352));return new Promise(((t,r)=>{if(this.params.redirectToOpener)return void r(new Error("Cannot use redirect to opener for passwordless"));const i=e=>{try{const{error:i,data:n}=e,s=n||{},{instanceParams:o,hashParams:{access_token:a,id_token:c}}=s,h=oi(s.hashParams,bn);if(i)return Hi.error(e.error),void r(new Error(i));e.data&&o.verifier===this.params.verifier&&(Hi.info(e.data),t(se(se({accessToken:a,idToken:c||""},h),{},{state:o})))}catch(e){Hi.error(e),r(e)}},n=new e(`redirect_channel_${this.nonce}`,Wi);n.addEventListener("message",(async e=>{i(e),n.close()}));try{const{connection:e="email",login_hint:t}=this.params.jwtParams,i=Pt()({client_id:this.params.clientId,connection:e,email:"email"===e?t:void 0,phone_number:"sms"===e?t:void 0,send:"link",authParams:{scope:this.SCOPE,state:this.state,response_type:this.RESPONSE_TYPE,redirect_uri:this.params.redirect_uri,nonce:this.nonce,prompt:this.PROMPT}},{authParams:this.params.jwtParams});Lt(this.finalURL.href,JSON.parse(JSON.stringify(i))).then((e=>{Hi.info("posted",e)})).catch((e=>{Hi.error(e),r(e)}))}catch(e){Hi.error(e),r(e)}}))}}class wn extends on{constructor(e){super(e),_(this,"RESPONSE_TYPE","token"),_(this,"SCOPE","user:read:email"),this.setFinalUrl()}setFinalUrl(){const e=new URL("https://id.twitch.tv/oauth2/authorize"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),r=Pt()({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,force_verify:"true"},t);Object.keys(r).forEach((t=>{const i=t;r[i]&&e.searchParams.append(i,r[i])})),this.finalURL=e}async getUserInfo(e){const{accessToken:t}=e,r=await Ct("https://api.twitch.tv/helix/users",{headers:{Authorization:`Bearer ${t}`,"Client-ID":this.params.clientId}}),[{profile_image_url:i="",display_name:n="",email:s="",id:o}]=r.data||[];return{profileImage:i,name:n,email:s,verifierId:o,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}class Sn extends on{constructor(e){super(e),_(this,"SCOPE","openid profile email"),_(this,"RESPONSE_TYPE","token id_token"),_(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:e}=this.params.jwtParams||{},t=en(e||"https://passwordless.web3auth.io/v6");t.pathname+=t.pathname.endsWith("/")?"authorize":"/authorize";const r=JSON.parse(JSON.stringify(this.params.jwtParams||{}));delete r.domain,this.params.customState=se(se({},this.params.customState||{}),{},{client:this.params.web3AuthClientId});const i=Pt()({state:this.state,client_id:this.params.clientId||this.params.web3AuthClientId,redirect_uri:this.params.redirect_uri,nonce:this.nonce,network:this.params.web3AuthNetwork,connection:Vi[this.params.typeOfLogin],scope:this.SCOPE,response_type:this.RESPONSE_TYPE,prompt:this.PROMPT,flow_type:(null==r?void 0:r.flow_type)||"code"},r);Object.keys(i).forEach((e=>{const r=e;i[r]&&t.searchParams.append(r,i[r])})),this.finalURL=t}async getUserInfo(e){const{idToken:t}=e,r=tn(t).payload,{name:i,email:n,picture:s}=r;return{profileImage:s,name:i,email:n,verifierId:i.toLowerCase(),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}var _n=e=>{const{verifier:t,typeOfLogin:r,clientId:i,jwtParams:n}=e;if(!t||!r||!i)throw new Error("Invalid params. Missing verifier, typeOfLogin or clientId");const{domain:s,login_hint:o,id_token:a,access_token:c}=n||{};switch(r){case"google":return new hn(e);case Mi:return new cn(e);case"twitch":return new wn(e);case"discord":return new an(e);case Li:case Ri:if(!o)throw new Error("Invalid params. Missing login_hint for web3auth passwordless login");return new Sn(e);case Ci:if(!s||!o)throw new Error("Invalid params. Missing domain or login_hint for passwordless login");return new vn(e);case Ei:case Ii:case Ai:case Ti:case Oi:case Ni:case Ki:case"jwt":case"reddit":if(a||c)return new un(e);if(!s)throw new Error("Invalid params for jwt login. Missing domain");return new dn(e);case"passkeys":return new gn(e);default:throw new Error("Unsupported login type")}},xn=r(9090);class kn{constructor(e){_(this,"sentry",null),this.sentry=e}startSpan(e,t){return this.sentry?this.sentry.startSpan(e,t):t(null)}}var Pn=r(8287).hp;class Mn{constructor(e){_(this,"currentStorageMethod",Ui),_(this,"isInitialized",!1),_(this,"storageServerUrl","https://session.web3auth.io"),_(this,"localStorageAvailable",!0),this.storageServerUrl=e}get storageMethodUsed(){return this.currentStorageMethod}init(){const e=function(){var e;const t=Ji().parse(navigator.userAgent);Hi.info(JSON.stringify(t),"current browser info");let r=!0;return null!==(e=navigator)&&void 0!==e&&e.brave&&(r=!1),t.engine.name!==Ji().ENGINE_MAP.WebKit&&t.engine.name!==Ji().ENGINE_MAP.Gecko||(r=!1),r}(),t=function(e){let t;try{t=window[e];const r="__storage_test__";return t.setItem(r,r),t.removeItem(r),!0}catch(e){const r=e;return r&&(22===r.code||1014===r.code||"QuotaExceededError"===r.name||"NS_ERROR_DOM_QUOTA_REACHED"===r.name)&&t&&0!==t.length}}(Ui);this.localStorageAvailable=t,this.currentStorageMethod=e&&t?Ui:ji,this.isInitialized=!0}async storeLoginDetails(e,t){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");if(this.currentStorageMethod===ji){const r=(0,ln.S)(Pn.from(t,"utf8")),i=r.toString("hex"),n=(0,ae.qb)(r).toString("hex"),s=await(0,fn.yv)(i,e),o=(await(0,ae._S)(r,(0,ln.S)(Pn.from(s,"utf8")))).toString("hex");await Lt(`${this.storageServerUrl}/store/set`,{key:n,data:s,signature:o})}this.localStorageAvailable&&window.localStorage.setItem(`torus_login_${t}`,JSON.stringify(e))}async retrieveLoginDetails(e){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");if(this.localStorageAvailable){const t=window.localStorage.getItem(`torus_login_${e}`);if(t)return JSON.parse(t||"{}")}if(this.currentStorageMethod===ji){const t=(0,ln.S)(Pn.from(e,"utf8")),r=t.toString("hex"),i=(0,ae.qb)(t).toString("hex");try{const e=await Ct(`${this.storageServerUrl}/store/get?key=${i}`);if(e.message)return await(0,fn.af)(r,e.message)}catch(e){if(404!==e.status)throw e;Hi.warn(e,"Session likely expired")}}}clearLoginDetailsStorage(e){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");this.localStorageAvailable&&window.localStorage.removeItem(`torus_login_${e}`)}clearOrphanedLoginDetails(){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");this.localStorageAvailable&&Object.keys(window.localStorage).forEach((e=>{e.startsWith("torus_login_")&&window.localStorage.removeItem(e)}))}}var En=r(8287).hp;const In=["access_token","id_token"],An=["access_token","id_token"],Tn=["args","method"];var On=class{constructor({baseUrl:e,network:t,enableLogging:r=!1,redirectToOpener:i=!1,redirectPathName:n="redirect",apiKey:s="torus-default",uxMode:o=Fi,locationReplaceOnRedirect:a=!1,popupFeatures:c,storageServerUrl:h="https://session.web3auth.io",sentry:d,enableOneKey:u=!1,web3AuthClientId:f,useDkg:l,metadataUrl:p="https://metadata.tor.us",keyType:y="secp256k1",serverTimeOffset:m=0,nodeDetails:g,checkCommitment:b=!0}){if(_(this,"isInitialized",void 0),_(this,"config",void 0),_(this,"torus",void 0),_(this,"nodeDetailManager",void 0),_(this,"storageHelper",void 0),_(this,"sentryHandler",void 0),!f)throw new Error("Please provide a valid web3AuthClientId in constructor");if(!t)throw new Error("Please provide a valid network in constructor");this.isInitialized=!1;const v=new URL(e);this.config={baseUrl:Yi(v),get redirect_uri(){return`${this.baseUrl}${n}`},redirectToOpener:i,uxMode:o,locationReplaceOnRedirect:a,popupFeatures:c,useDkg:l,web3AuthClientId:f,web3AuthNetwork:t,keyType:y,nodeDetails:g,checkCommitment:b};const w=new Pi({network:t,enableOneKey:u,serverTimeOffset:m,clientId:f,legacyMetadataHost:p,keyType:y});Pi.setAPIKey(s),this.torus=w,this.nodeDetailManager=new yi({network:t}),r?Hi.enableAll():Hi.disableAll(),this.storageHelper=new Mn(h),this.sentryHandler=new kn(d)}async init({skipSw:e=!1,skipInit:t=!1,skipPrefetch:r=!1}={}){if(this.storageHelper.init(),t)this.isInitialized=!0;else{if(!e){if(!(await fetch(`${this.config.baseUrl}sw.js`,{cache:"reload"})).ok)throw new Error("Service worker is not being served. Please serve it");try{return await(i=this.config.baseUrl,new Promise(((e,t)=>{const r=`${i}sw.js`;"serviceWorker"in window.navigator?(0,xn.k)(r,{ready(){Hi.info("App is being served from cache by a service worker.\n For more details, visit https://goo.gl/AFskqB"),e(void 0)},registered(){Hi.info("Service worker has been registered."),e(void 0)},cached(){Hi.info("Content has been cached for offline use."),e(void 0)},updatefound(){Hi.info("New content is downloading.")},updated(){Hi.info("New content is available; please refresh.")},offline(){Hi.info("No internet connection found. App is running in offline mode."),t(new Error("App is offline"))},error(e){Hi.error("Error during service worker registration:",e),t(e)}}):t(new Error("Service workers are not supported"))}))),void(this.isInitialized=!0)}catch(e){Hi.warn(e)}}var i,n;if(!r)return(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.userAgent.toLowerCase().indexOf("firefox"))>-1?void(this.isInitialized=!0):void await this.handlePrefetchRedirectUri();this.isInitialized=!0}}async triggerLogin(e){const{verifier:t,typeOfLogin:r,clientId:i,jwtParams:n,hash:s,queryParameters:o,customState:a}=e;if(Hi.info("Verifier: ",t),!this.isInitialized)throw new Error("Not initialized yet");const c=_n({typeOfLogin:r,clientId:i,verifier:t,redirect_uri:this.config.redirect_uri,redirectToOpener:this.config.redirectToOpener,jwtParams:n,uxMode:this.config.uxMode,customState:a,web3AuthClientId:this.config.web3AuthClientId,web3AuthNetwork:this.config.web3AuthNetwork});let h;if(s&&o){const{error:e,hashParameters:t,instanceParameters:r}=Qi(s,o);if(e)throw new Error(e);const{access_token:i,id_token:n}=t;h=se(se({accessToken:i,idToken:n},oi(t,In)),{},{state:r})}else if(this.storageHelper.clearOrphanedLoginDetails(),this.config.uxMode===Di&&await this.storageHelper.storeLoginDetails({method:qi,args:e},c.nonce),h=await c.handleLoginWindow({locationReplaceOnRedirect:this.config.locationReplaceOnRedirect,popupFeatures:this.config.popupFeatures}),this.config.uxMode===Di)return null;const d=await c.getUserInfo(h);return se(se({},await this.getTorusKey(t,d.verifierId,{verifier_id:d.verifierId},h.idToken||h.accessToken,d.extraVerifierParams)),{},{userInfo:se(se({},d),h)})}async triggerAggregateLogin(e){const{aggregateVerifierType:t,verifierIdentifier:r,subVerifierDetailsArray:i}=e;if(!this.isInitialized)throw new Error("Not initialized yet");if(!t||!r||!Array.isArray(i))throw new Error("Invalid params. Missing aggregateVerifierType, verifierIdentifier or subVerifierDetailsArray");if(t===Bi&&1!==i.length)throw new Error("Single id verifier can only have one sub verifier");const n=[],s=[];for(const t of i){const{clientId:r,typeOfLogin:i,verifier:o,jwtParams:a,hash:c,queryParameters:h,customState:d}=t,u=_n({typeOfLogin:i,clientId:r,verifier:o,redirect_uri:this.config.redirect_uri,redirectToOpener:this.config.redirectToOpener,jwtParams:a,uxMode:this.config.uxMode,customState:d,web3AuthClientId:this.config.web3AuthClientId,web3AuthNetwork:this.config.web3AuthNetwork});let f;if(c&&h){const{error:e,hashParameters:t,instanceParameters:r}=Qi(c,h);if(e)throw new Error(e);const{access_token:i,id_token:n}=t;f=se(se({accessToken:i,idToken:n},oi(t,An)),{},{state:r})}else if(this.storageHelper.clearOrphanedLoginDetails(),this.config.uxMode===Di&&await this.storageHelper.storeLoginDetails({method:$i,args:e},u.nonce),f=await u.handleLoginWindow({locationReplaceOnRedirect:this.config.locationReplaceOnRedirect,popupFeatures:this.config.popupFeatures}),this.config.uxMode===Di)return null;n.push(u.getUserInfo(f)),s.push(f)}const o=(await Promise.all(n)).map((e=>se(se({},e),{},{aggregateVerifier:r}))),a={verify_params:[],sub_verifier_ids:[],verifier_id:""},c=[];let h="",d={};for(let e=0;ese(se({},e),s[t])))})}async getTorusKey(e,t,r,i,n){const s=await this.sentryHandler.startSpan({name:"fetchNodeDetails"},(async()=>this.config.nodeDetails?this.config.nodeDetails:this.nodeDetailManager.getNodeDetails({verifier:e,verifierId:t})));Hi.debug("torus-direct/getTorusKey",{torusNodeEndpoints:s.torusNodeEndpoints});const o=await this.sentryHandler.startSpan({name:"fetchShares"},(async()=>this.torus.retrieveShares({endpoints:s.torusNodeEndpoints,indexes:s.torusIndexes,verifier:e,verifierParams:r,idToken:i,nodePubkeys:s.torusNodePub,extraParams:se({},n),useDkg:this.config.useDkg,checkCommitment:this.config.checkCommitment})));return Hi.debug("torus-direct/getTorusKey",{retrieveShares:o}),o}async getAggregateTorusKey(e,t,r){const i={verify_params:[],sub_verifier_ids:[],verifier_id:""},n=[];let s={};for(let e=0;e{n[t]=e})),!i&&0===Object.keys(n).length)throw new Error("Found Empty hash and query parameters. This can happen if user reloads the page");const{error:s,instanceParameters:o,hashParameters:a}=Qi(i,n),{instanceId:c}=o;Hi.info(c,"instanceId");const h=await this.storageHelper.retrieveLoginDetails(c)||{},{args:d,method:u}=h,f=oi(h,Tn);if(Hi.info(d,u),s)return{error:s,state:o||{},method:u,result:{},hashParameters:a,args:d};let l;try{if(u===qi){const e=d;e.hash=i,e.queryParameters=n,l=await this.triggerLogin(e)}else if(u===$i){const e=d;e.subVerifierDetailsArray.forEach((e=>{e.hash=i,e.queryParameters=n})),l=await this.triggerAggregateLogin(e)}}catch(e){const r=await oe(e);return Hi.error(r),t&&this.storageHelper.clearLoginDetailsStorage(c),se({error:`${r.message||""}`,state:o||{},method:u,result:{},hashParameters:a,args:d},f)}if(!l)return se({error:`Init parameters not found. It might be because storage is not available. Please retry the login in a different browser. Used storage method: ${this.storageHelper.storageMethodUsed}`,state:o||{},method:u,result:{},hashParameters:a,args:d},f);if(e){const e=window.location.origin+window.location.pathname;window.history.replaceState(se(se({},window.history.state),{},{as:e,url:e}),"",e)}return t&&this.storageHelper.clearLoginDetailsStorage(c),se({method:u,result:l,state:o||{},hashParameters:a,args:d},f)}async handlePrefetchRedirectUri(){return document?new Promise(((e,t)=>{const r=document.createElement("link");r.href=this.config.redirect_uri,window.location.origin!==new URL(this.config.redirect_uri).origin&&(r.crossOrigin="anonymous"),r.type="text/html",r.rel="prefetch";const i=()=>{this.isInitialized=!0,e()};try{r.relList&&r.relList.supports&&r.relList.supports("prefetch")?(r.onload=i,r.onerror=()=>{t(new Error(`Please serve redirect.html present in serviceworker folder of this package on ${this.config.redirect_uri}`))},document.head.appendChild(r)):i()}catch(e){i()}})):Promise.resolve()}};class Nn extends si{constructor({enableLogging:e=!1,postboxKey:t,customAuthArgs:r}){super({enableLogging:e,postboxKey:t}),_(this,"customAuthInstance",void 0),_(this,"singleLoginKey",void 0),_(this,"torusKey",void 0),_(this,"migratableKey",null),_(this,"customAuthArgs",void 0),this.customAuthArgs=r,this.customAuthInstance=new On(r),this.serviceProviderName="TorusServiceProvider"}static fromJSON(e){const{enableLogging:t,postboxKey:r,customAuthArgs:i,serviceProviderName:n}=e;if("TorusServiceProvider"===n)return new Nn({enableLogging:t,postboxKey:r,customAuthArgs:i})}async init(e){return this.customAuthInstance.init(e)}async triggerLogin(e){const t=await this.customAuthInstance.triggerLogin(e);if(t){const e=Pi.getPostboxKey(t);if(this.torusKey=t,!t.metadata.upgraded){const{finalKeyData:e,oAuthKeyData:r}=t,i=e.privKey||r.privKey;this.migratableKey=new(T())(i,"hex")}this.postboxKey=new(T())(e,"hex")}return t}async triggerAggregateLogin(e){const t=await this.customAuthInstance.triggerAggregateLogin(e);if(t){const e=Pi.getPostboxKey(t);if(this.torusKey=t,!t.metadata.upgraded){const{finalKeyData:e,oAuthKeyData:r}=t,i=e.privKey||r.privKey;this.migratableKey=new(T())(i,"hex")}this.postboxKey=new(T())(e,"hex")}return t}toJSON(){return se(se({},super.toJSON()),{},{serviceProviderName:this.serviceProviderName,customAuthArgs:this.customAuthArgs})}}var Kn=Nn;class Cn extends Kn{constructor(...e){super(...e),_(this,"verifierName",void 0),_(this,"verifierId",void 0)}async getRSSNodeDetails(){if(!this.verifierId)throw new Error("no verifierId, not logged in");if(!this.verifierName)throw new Error("no verifierName, not logged in");const{torusNodeRSSEndpoints:e,torusNodePub:t}=await this.customAuthInstance.nodeDetailManager.getNodeDetails({verifier:this.verifierName,verifierId:this.verifierId});return{serverEndpoints:e,serverPubKeys:t.map((e=>({x:e.X,y:e.Y}))),serverThreshold:Math.ceil(e.length/2)}}async getTSSPubKey(e,t){if(!this.verifierName||!this.verifierId)throw new Error("verifier userinfo not found, not logged in yet");const r=await this.customAuthInstance.nodeDetailManager.getNodeDetails({verifier:this.verifierName,verifierId:this.verifierId}),i=await this.customAuthInstance.torus.getPublicAddress(r.torusNodeSSSEndpoints,r.torusNodePub,{verifier:this.verifierName,verifierId:this.verifierId,extendedVerifierId:Ie(this.verifierId,e,t)});return{pubKey:new Se(i.finalKeyData.X,i.finalKeyData.Y),nodeIndexes:i.nodesData.nodeIndexes||[]}}getVerifierNameVerifierId(){return`${this.verifierName}${this.verifierId}`}async triggerLogin(e){const t=await super.triggerLogin(e);if(t){const{verifier:e,verifierId:r}=t.userInfo;this.verifierName=e,this.verifierId=r}return t}async triggerAggregateLogin(e){const t=await super.triggerAggregateLogin(e);if(t){const{verifier:e,verifierId:r}=t.userInfo[0];this.verifierName=e,this.verifierId=r}return t}}class Ln extends he().ec{constructor(){super("ed25519")}bufferToScalar(e){return new(T())(e,"le")}generateScalar(){return this.genKeyPair().getPrivate()}scalarToBuffer(e,t){return e.toString("hex"),e.toArrayLike(t,"le",32)}pointToBuffer(e,t){const r=e.getX(),i=e.getY().toArrayLike(t,"le",32);return i[i.length-1]|=r.and(new(T())(1)).eqn(1)?128:0,i}}class Rn{constructor(){_(this,"sessionId",void 0)}checkSessionParams(){if(!this.sessionId)throw new Error("Session id is required");this.sessionId=this.sessionId.padStart(64,"0")}request({method:e="GET",url:t,data:r={},headers:i={}}){const n={headers:i};switch(e){case"GET":return Ct(t,n);case"POST":return Lt(t,r,n);case"PUT":return Bt(t,r,n);case"PATCH":return Rt(t,r,n)}throw new Error("Invalid method type")}}var Bn=r(8287).hp;class Fn extends Rn{constructor({sessionServerBaseUrl:e,sessionNamespace:t,sessionTime:r,sessionId:i,allowedOrigin:n}={}){super(),_(this,"sessionServerBaseUrl","https://session.web3auth.io"),_(this,"sessionNamespace",void 0),_(this,"allowedOrigin",void 0),_(this,"sessionTime",86400),_(this,"sessionId",""),e&&(this.sessionServerBaseUrl=e),t&&(this.sessionNamespace=t),r&&(this.sessionTime=r),i&&(this.sessionId=i.padStart(64,"0")),n&&(this.allowedOrigin=n||"*")}static generateRandomSessionKey(){return(0,ae.F_)().toString("hex").padStart(64,"0")}async createSession(e,t={}){super.checkSessionParams();const r=Bn.from(this.sessionId,"hex"),i=(0,ae.qb)(r).toString("hex"),n=await(0,fn.yv)(this.sessionId,e),s={key:i,data:n,signature:(await(0,ae._S)(r,(0,ln.S)(Bn.from(n,"utf8")))).toString("hex"),namespace:this.sessionNamespace,timeout:this.sessionTime,allowedOrigin:this.allowedOrigin};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:s,headers:t}),this.sessionId}async authorizeSession({headers:e}={headers:{}}){super.checkSessionParams();const t={key:(0,ae.qb)(Bn.from(this.sessionId,"hex")).toString("hex"),namespace:this.sessionNamespace},r=await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/get`,data:t,headers:e});if(!r.message)throw new Error("Session Expired or Invalid public key");const i=await(0,fn.af)(this.sessionId,r.message);if(i.error)throw new Error("There was an error decrypting data.");return i}async updateSession(e,t={}){super.checkSessionParams();const r=Bn.from(this.sessionId,"hex"),i=(0,ae.qb)(r).toString("hex"),n=await(0,fn.yv)(this.sessionId,e),s={key:i,data:n,signature:(await(0,ae._S)(r,(0,ln.S)(Bn.from(n,"utf8")))).toString("hex"),namespace:this.sessionNamespace,allowedOrigin:this.allowedOrigin};await super.request({method:"PUT",url:`${this.sessionServerBaseUrl}/v2/store/update`,data:s,headers:t})}async invalidateSession(e={}){super.checkSessionParams();const t=Bn.from(this.sessionId,"hex"),r=(0,ae.qb)(t).toString("hex"),i=await(0,fn.yv)(this.sessionId,{}),n={key:r,data:i,signature:(await(0,ae._S)(t,(0,ln.S)(Bn.from(i,"utf8")))).toString("hex"),namespace:this.sessionNamespace,timeout:1};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:n,headers:e}),this.sessionId="",!0}}var Dn=r(7998),Un=r.n(Dn),jn=r(8287).hp;new ce.ec("secp256k1");const qn=r.g.crypto||r.g.msCrypto||{},$n=qn.subtle||qn.webkitSubtle,zn=jn.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),Jn=jn.alloc(32,0);function Hn(e){return t=e,!(!jn.isBuffer(t)||32!==t.length)&&e.compare(Jn)>0&&e.compare(zn)<0;var t}function Vn(e){const t=new Uint8Array(e);return void 0===qn.getRandomValues?jn.from(Un().randomBytes(e)):(qn.getRandomValues(t),jn.from(t))}function Yn(e){return async function(t,r,i){if($n){const n={name:"AES-CBC"},s=await $n.importKey("raw",r,n,!1,[e]),o={name:"AES-CBC",iv:t},a=await $n[e](o,s,i);return jn.from(new Uint8Array(a))}if("encrypt"===e){const e=Un().createCipheriv("aes-256-cbc",r,t),n=e.update(i),s=e.final();return jn.concat([n,s])}if("decrypt"===e){const e=Un().createDecipheriv("aes-256-cbc",r,t),n=e.update(i),s=e.final();return jn.concat([n,s])}throw new Error(`Unsupported operation: ${e}`)}}Yn("encrypt"),Yn("decrypt");var Wn=r(7115),Xn=r(8287).hp;const Gn="x-web3-session-id";function Qn(){return new ce.ec("secp256k1")}function Zn(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const i=Qn(),n=e.map((e=>new(T())(e))),s=new(T())(t),o=new(T())(r);let a=new(T())(1),c=new(T())(1);for(let e=0;e{const n=Qn();if(e)return Zn([1,r],r);const s=Zn(t,i),o=Zn([1,r],1);return s.mul(o).umod(n.curve.n)},ts=(e,t)=>{if(-1===t.indexOf(e))throw new Error(`party ${e} not found in parties ${t}`);const r=Qn();return Zn(t,e).invm(r.curve.n).umod(r.curve.n)},rs=(e,t,r,i)=>{const n=t.sort(((e,t)=>e-t));for(let e=0;ee.sender===r&&e.recipient===t&&e.msg_type===i));return s?s.msg_data:new Promise(((e,s)=>{let o=0;const a=setInterval((()=>{const c=n.msgQueue.find((e=>e.sender===r&&e.recipient===t&&e.msg_type===i));void 0!==c&&(clearInterval(a),e(c.msg_data)),o>=1e3&&(clearInterval(a),s("Message not received in a reasonable time")),o++}),10)}))}),void 0===globalThis.js_send_msg&&(globalThis.js_send_msg=async function(e,t,r,i,n){const s=globalThis.tss_clients.get(e);if(s.log(`sending msg, ${i}`),i.indexOf("ga1_data_unprocessed")>-1)throw new Error("ga1_data_unprocessed should not be sent directly");if(s.websocketOnly)s.sockets[r].emit("send_msg",{session:e,sender:t,recipient:r,msg_type:i,msg_data:n});else{const o=e.split("")[1],a=s.lookupEndpoint(e,r);fetch(`${a}/send`,{method:"POST",headers:{[Gn]:o,"Content-Type":"application/json"},body:JSON.stringify({session:e,sender:t,recipient:r,msg_type:i,msg_data:n})})}return!0});class is{constructor(e,t,r,i,n,s,o,a,c){if(_(this,"session",void 0),_(this,"index",void 0),_(this,"parties",void 0),_(this,"msgQueue",[]),_(this,"sockets",void 0),_(this,"endpoints",void 0),_(this,"share",void 0),_(this,"pubKey",void 0),_(this,"websocketOnly",void 0),_(this,"tssLib",void 0),_(this,"_startPrecomputeTime",void 0),_(this,"_endPrecomputeTime",void 0),_(this,"_startSignTime",void 0),_(this,"_endSignTime",void 0),_(this,"log",void 0),_(this,"_consumed",void 0),_(this,"_sLessThanHalf",void 0),_(this,"_precomputeComplete",[]),_(this,"_precomputeFailed",[]),_(this,"precomputed_value",null),_(this,"_ready",!1),_(this,"_signer",void 0),_(this,"_rng",void 0),_(this,"_readyResolve",null),r.length!==n.length)throw new Error("parties and sockets length must be equal, add null for client if necessary");if(r.length!==i.length)throw new Error("parties and endpoints length must be equal, add null for client if necessary");this.session=e,this.index=t,this.parties=r,this.endpoints=i,this.sockets=n,this.share=s,this.pubKey=o,this.websocketOnly=a,this.log=console.log,this._consumed=!1,this._sLessThanHalf=!0,this.tssLib=c,n.forEach((e=>{e&&(e.hasListeners("send")&&e.off("send"),e.on("send",(async(e,t)=>{const{session:r,sender:i,recipient:n,msg_type:s,msg_data:o}=e;r===this.session?(this.msgQueue.push({session:r,sender:i,recipient:n,msg_type:s,msg_data:o}),t&&t()):this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${r}`)})),e.on("precompute_complete",(async(e,t)=>{const{session:r,party:i}=e;r===this.session?(this._precomputeComplete.push(i),t&&t()):this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${r}`)})),e.on("precompute_failed",(async(e,t)=>{const{session:r,party:i}=e;r===this.session?(this._precomputeFailed.push(i),t&&t()):this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${r}`)})))})),globalThis.tss_clients.set(this.session,this)}get sid(){return this.session.split("")[1]}async ready(){if(null==this._readyResolve)throw new Error("Precompute needs to be called before ready");await this._readyResolve,await new Promise(((e,t)=>{let r=0;const i=setInterval((()=>{0===this._precomputeFailed.length&&this._precomputeComplete.filter(((e,t,r)=>r.indexOf(e)===t)).length===this.parties.length&&null!=this.precomputed_value?(clearInterval(i),this._ready=!0,e()):this._precomputeFailed.length>0&&t(new Error("Peer failure detected, please try again")),r>=500&&(clearInterval(i),t(new Error("Client is not ready"))),r++}),10)}))}precompute(e){this.sockets.forEach(((e,t)=>{if(null!==e&&void 0===e.id)throw new Error(`socket not connected yet, session: ${this.session}, party: ${t}`)}));const t=[];for(let r=0;r{fetch(`${this.lookupEndpoint(this.session,i)}/precompute`,{method:"POST",headers:{"Content-Type":"application/json",[Gn]:this.sid},body:JSON.stringify(se({endpoints:this.endpoints.map(((e,t)=>t!==this.index?e:`websocket:${this.sockets[i].id}`)),session:this.session,parties:this.parties,player_index:i,threshold:this.parties.length,pubkey:this.pubKey,notifyWebsocketId:this.sockets[i].id,sendWebsocket:this.sockets[i].id},e))}).then((async e=>{const r=await e.json();if(200!==e.status)throw new Error(`precompute route failed on ${this.lookupEndpoint(this.session,i)} with status ${e.status} \n ${JSON.stringify(r)} `);return t(e)})).catch((e=>{r(e)}))})))}this._readyResolve=(async()=>{this._startPrecomputeTime=Date.now(),await Promise.all(t),this._signer=await this.tssLib.threshold_signer(this.session,this.index,this.parties.length,this.parties.length,this.share,this.pubKey),this._rng=await this.tssLib.random_generator(Xn.from(function(){let e=Vn(32);for(;!Hn(e);)e=Vn(32);return e}()).toString("base64")),await this.tssLib.setup(this._signer,this._rng);const e=await this.tssLib.precompute(new Uint8Array(this.parties),this._signer,this._rng);this.precomputed_value=e,this._precomputeComplete.push(this.index),this._consumed=!1,this._endPrecomputeTime=Date.now()})().catch((e=>{this._precomputeFailed.push(this.index),console.error(e)}))}async sign(e,t,r,i,n){if(!0===this._consumed)throw new Error("This instance has already signed a message and cannot be reused");if(!1===this._ready)throw new Error("client is not ready");if(!t){if("keccak256"!==i)throw new Error(`hash algo ${i} not supported`);if(Xn.from((0,ze.So)(Xn.from(r))).toString("base64")!==e)throw new Error("hash of original message does not match msg")}this._startSignTime=Date.now();const s=[],o=[];for(let a=0;a{const a=this.lookupEndpoint(this.session,c);fetch(`${a}/sign`,{method:"POST",headers:{"Content-Type":"application/json",[Gn]:this.sid},body:JSON.stringify(se({session:this.session,sender:this.index,recipient:c,msg:e,hash_only:t,original_message:r,hash_algo:i},n))}).then((e=>e.json())).then((e=>s(e.sig))).catch((e=>{o(e)}))})))}(await Promise.all(o)).forEach((e=>{s.push(e)}));const a=await this.tssLib.get_r_from_precompute(this.precomputed_value),c=await this.tssLib.local_verify(e,t,a,s,this.pubKey);this._endSignTime=Date.now();const h=Xn.from(c,"base64").toString("hex"),d=new(T())(h.slice(0,64),16);let u=new(T())(h.slice(64),16),f=Xn.from(a,"base64")[63]%2;if(this._sLessThanHalf){const e=Qn(),t=e.n.div(new(T())(2));u.gt(t)&&(u=e.n.sub(u),f=(f+1)%2)}return this._consumed=!0,this._ready=!1,this._readyResolve=null,{r:d,s:u,recoveryParam:f}}lookupEndpoint(e,t){if(e!==this.session)throw new Error("incorrect session when looking up endpoint");return this.endpoints[t]}async cleanup(e){this.tssLib.random_generator_free(this._rng),this.tssLib.threshold_signer_free(this._signer),this._precomputeComplete=[],this._precomputeFailed=[],this.precomputed_value=null,this._endPrecomputeTime=null,this._startPrecomputeTime=null,this._endSignTime=null,this._startSignTime=null,this._consumed=!1,this._ready=!1,this._readyResolve=null,globalThis.tss_clients.delete(this.session),this.sockets.forEach((e=>{e&&e.connected&&e.close()})),await Promise.all(this.parties.map((async t=>(t!==this.index&&await fetch(`${this.lookupEndpoint(this.session,t)}/cleanup`,{method:"POST",headers:{"Content-Type":"application/json",[Gn]:this.sid},body:JSON.stringify(se({session:this.session},e))}),Promise.resolve(!0)))))}}function ns(e){const t=atob(e);return Uint8Array.from(t,(e=>e.codePointAt(0)))}function ss(e){const t=String.fromCodePoint(...e);return btoa(t)}new class{constructor(){_(this,"get",(e=>new Promise((t=>{if(null!==globalThis&&void 0!==globalThis&&globalThis.localStorage){const r=globalThis.localStorage.getItem(e);t(r)}else chrome.storage.local.get(e,(r=>(t(r[e]),r)))})))),_(this,"set",((e,t)=>new Promise((r=>{null!==globalThis&&void 0!==globalThis&&globalThis.localStorage?(globalThis.localStorage.setItem(e,t),r()):chrome.storage.local.set({[e]:t},(()=>{r()}))})))),_(this,"delete",(e=>new Promise((t=>{null!==globalThis&&void 0!==globalThis&&globalThis.localStorage?(globalThis.localStorage.removeItem(e),t()):(chrome.storage.local.remove(e),t())}))))}};class os{constructor(){_(this,"items",void 0),this.items=[]}add(e){return this.items.push(e),e}free(){this.items.forEach((e=>{try{e.free()}catch(e){console.log(`Warning: freeing value: ${e}`)}})),this.items=[]}}var as=r(6674);function cs(e,t,r){return JSON.stringify([e,t,r])}class hs{constructor(e,t){_(this,"session_id",void 0),_(this,"sender_id",void 0),_(this,"messages",new as.MapQueue),_(this,"sockets",new Map),this.session_id=e,this.sender_id=t}getSocket(e){return this.sockets.get(e)}async connect(e,t){if(e.length!==t.length)throw new Error("ids must have same length as endpoints");this.close();const r=t.map((e=>{const t=new URL("socket.io",e);return(0,Wn.io)(t.origin,{path:t.pathname,transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:3})})),i=r.map((e=>new Promise(((t,r)=>{e.on("connect",t),setTimeout((()=>{r(new Error("Connection timeout"))}),1e4)}))));await Promise.all(i),r.forEach(((t,r)=>{const i=e[r];t.on("send",(async(e,t)=>{if(e.sender!==i)return void console.log(`ignoring message: wrong sender: expected ${i}, got ${e.sender}`);if(e.session!==this.session_id)return void console.log(`ignoring message: wrong session: expected ${this.session_id}, got ${e.session}`);const r={sender:e.sender,data:ns(e.msg_data),receiver:e.recipient,type:e.msg_type},n=cs(r.sender,r.receiver,r.type);this.messages.push(n,r),t&&t()})),this.sockets.set(i,t)}))}close(){this.sockets.forEach((e=>e.disconnect())),this.sockets.clear()}async send(e,t,r){const i=this.sockets.get(e);if(!i)throw new Error("Socket not found");const n={msg_data:ss(r),msg_type:t,recipient:e,sender:this.sender_id,session:this.session_id};i.emit("send_msg",n)}async receive(e,t){const r=cs(e,this.sender_id,t),i=await this.messages.pop(r,1e4);if(!i)throw new Error("Timeout");return i.data}}const ds=Qr();function us(e){let t,r=!1,i=0;try{t=window[e],r=!0,i=t.length;const n="__storage_test__";return t.setItem(n,n),t.removeItem(n),!0}catch(e){const t=e;return t&&(22===t.code||1014===t.code||"QuotaExceededError"===t.name||"NS_ERROR_DOM_QUOTA_REACHED"===t.name)&&r&&0!==i}}class fs{constructor(){_(this,"store",new Map)}getItem(e){return this.store.get(e)||null}setItem(e,t){this.store.set(e,t)}removeItem(e){this.store.delete(e)}}_(class{constructor(e,t){_(this,"storage",void 0),_(this,"_storeKey",void 0),this.storage=t,this._storeKey=e;try{t.getItem(e)||this.resetStore()}catch(e){}}static getInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"local";if(!this.instanceMap.has(e)){let r;r="local"===t&&us("localStorage")?window.localStorage:"session"===t&&us("sessionStorage")?window.sessionStorage:new fs,this.instanceMap.set(e,new this(e,r))}return this.instanceMap.get(e)}toJSON(){return this.storage.getItem(this._storeKey)}resetStore(){const e=this.getStore();return this.storage.removeItem(this._storeKey),e}getStore(){return JSON.parse(this.storage.getItem(this._storeKey)||"{}")}get(e){return JSON.parse(this.storage.getItem(this._storeKey)||"{}")[e]}set(e,t){const r=JSON.parse(this.storage.getItem(this._storeKey)||"{}");r[e]=t,this.storage.setItem(this._storeKey,JSON.stringify(r))}},"instanceMap",new Map),se(se({},{SAPPHIRE_DEVNET:"sapphire_devnet",SAPPHIRE_MAINNET:"sapphire_mainnet"}),{MAINNET:"mainnet",TESTNET:"testnet",CYAN:"cyan",AQUA:"aqua",CELESTE:"celeste"});var ls=r(8287).hp;const ps=()=>new ce.eddsa("ed25519");function ys(e=32){const t="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;if(t&&"function"==typeof t.getRandomValues)return t.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function ms(){return ls.from(ys(32))}const gs=()=>{const e=zr.genKeyPair(),t=Se.fromElliptic(e.getPublic());return{private:e.getPrivate(),pub:t}},bs=(e,t,r,i)=>{const n=[],s=[],o=[],a=[];for(let c=0;c{const r=`${e}_${t}`;let i=nt(ls.from(r,"utf8"));return i=i.replace("0x",""),new(T())(i,"hex")};function _s(e){return e.toArrayLike(ls,"be",g)}function xs(e,t){if(t>e.length)throw new Error("Invalid number of endpoints");return e.slice().sort((()=>Math.random()-.5)).slice(0,t).sort(((e,t)=>e.index-t.index))}function ks(e,t,r){return t.mul(r.invm(e.n)).umod(e.n)}function Ps(e,t,r,i){return t.filter(((e,t)=>t!==r)).reduce(((n,s)=>{const o=ks(e,i.sub(s),t[r].sub(s));return n.mul(o).umod(e.n)}),new(T())(1))}function Ms(e,t,r){const i=t.map((e=>new(T())(e))),n=new(T())(r);return i.map(((t,r)=>Ps(e,i,r,n)))}const Es=1,Is=2;function As(e,t,r,i=Is){const n=Ms(e,[Es,i],0),s=Ms(e,t,0);if(t.includes(r))throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${t} ${r}`);const o=Ms(e,[r,...t],0);return{serverCoefficients:s.map(((t,r)=>ks(e,n[0].mul(t),o[r+1]))),clientCoefficient:ks(e,n[1],o[0])}}function Ts(){return nt(ls.from(ur().toString("hex")+Date.now(),"utf8"))}function Os(e,t,r,i,n){return`${e}${f.Delimiter1}${t}${f.Delimiter2}${r}${f.Delimiter3}${i}${f.Delimiter4}${n}`}function Ns(e){if(65!==e.length)throw new Error(`Invalid signature length: expected 65, got ${e.length}`);return{r:e.subarray(0,32),s:e.subarray(32,64),v:e[64]}}function Ks(e){if(e.keyType!==Te.secp256k1)throw new Error(`Invalid key type: expected secp256k1, got ${e.keyType}`);return{sign:async t=>Ns(await e.sign(t,!0)),getPublic:async()=>Se.fromSEC1(ue,e.getPubKey().toString("hex")).toSEC1(ue).subarray(1)}}const Cs=rt().getLogger("mpc-core-kit");Cs.disableAll();var Ls=r(8287).hp;class Rs{constructor(e){var t;if(_(this,"state",{accountIndex:0}),_(this,"torusSp",null),_(this,"options",void 0),_(this,"storageLayer",null),_(this,"tkey",null),_(this,"sessionManager",void 0),_(this,"currentStorage",void 0),_(this,"_storageBaseKey","corekit_store"),_(this,"enableLogging",!1),_(this,"ready",!1),_(this,"_tssLib",void 0),_(this,"wasmLib",void 0),_(this,"_keyType",void 0),_(this,"atomicCallStackCounter",0),_(this,"getTssFactorPub",(()=>{if(this.checkReady(),!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when getting tss factor public key.");return this.tKey.metadata.factorPubs[this.tKey.tssTag].map((e=>e.toSEC1(zr,!0).toString("hex")))})),!e.web3AuthClientId)throw M.clientIdInvalid();this._tssLib=e.tssLib,this._keyType=e.tssLib.keyType;const r=this.isNodejsOrRN(e.uxMode);e.enableLogging?(Cs.enableAll(),this.enableLogging=!0):Cs.setLevel("error"),"boolean"!=typeof e.manualSync&&(e.manualSync=!1),e.web3AuthNetwork||(e.web3AuthNetwork=h.MAINNET),e.sessionTime||(e.sessionTime=86400),e.serverTimeOffset||(e.serverTimeOffset=0),e.uxMode||(e.uxMode=Di),e.redirectPathName||(e.redirectPathName="redirect"),e.baseUrl||(e.baseUrl=r?"https://localhost":`${null===(t=window)||void 0===t?void 0:t.location.origin}/serviceworker`),e.disableHashedFactorKey||(e.disableHashedFactorKey=!1),e.hashedFactorNonce||(e.hashedFactorNonce=e.web3AuthClientId),void 0===e.disableSessionManager&&(e.disableSessionManager=!1),this.options=e,this.currentStorage=new I(this._storageBaseKey,e.storage),e.disableSessionManager||(this.sessionManager=new Fn({sessionTime:e.sessionTime})),Pi.setSessionTime(this.options.sessionTime)}get tKey(){if(null===this.tkey)throw M.tkeyInstanceUninitialized();return this.tkey}get keyType(){return this._keyType}get signatures(){var e;return null!==(e=this.state)&&void 0!==e&&e.signatures?this.state.signatures:[]}get _storageKey(){return this._storageBaseKey}get status(){try{const{tkey:e}=this;return e?e.metadata?e.secp256k1Key&&this.state.factorKey?Xr.LOGGED_IN:Xr.REQUIRED_SHARE:Xr.INITIALIZED:Xr.NOT_INITIALIZED}catch(e){}return Xr.NOT_INITIALIZED}get sessionId(){var e;return null===(e=this.sessionManager)||void 0===e?void 0:e.sessionId}get supportsAccountIndex(){return this._keyType!==Te.ed25519}get verifier(){var e,t;return null!==(e=this.state.userInfo)&&void 0!==e&&e.aggregateVerifier?this.state.userInfo.aggregateVerifier:null!==(t=this.state)&&void 0!==t&&null!==(t=t.userInfo)&&void 0!==t&&t.verifier?this.state.userInfo.verifier:""}get verifierId(){var e;return null!==(e=this.state)&&void 0!==e&&null!==(e=e.userInfo)&&void 0!==e&&e.verifierId?this.state.userInfo.verifierId:""}get isRedirectMode(){return this.options.uxMode===Di}get useClientGeneratedTSSKey(){return this.keyType===Te.ed25519&&void 0===this.options.useClientGeneratedTSSKey||!!this.options.useClientGeneratedTSSKey}async _UNSAFE_recoverTssKey(e){this.checkReady();const t=new(T())(e[0],"hex"),r=await this.getFactorKeyMetadata(t);await this.tKey.initialize({withShare:r});const i=[],n=[],s=[];for(let t=0;t{Cs.error("rehydrate session error",e)}));if(t)return void await this.rehydrateSession(t)}}await this.featureRequest()}}async loginWithOAuth(e){if(this.checkReady(),this.isNodejsOrRN(this.options.uxMode))throw M.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`);const{importTssKey:t}=e,r=this.torusSp;try{const s=e;if(e.subVerifierDetails){var i;const t=await r.triggerLogin(e.subVerifierDetails);if(this.isRedirectMode)return;this.updateState({postBoxKey:this._getPostBoxKey(t),postboxKeyNodeIndexes:null===(i=t.nodesData)||void 0===i?void 0:i.nodeIndexes,userInfo:t.userInfo,signatures:this._getSignatures(t.sessionData.sessionTokenData)})}else if(s.subVerifierDetailsArray){var n;const e=await r.triggerAggregateLogin({aggregateVerifierType:s.aggregateVerifierType||Bi,verifierIdentifier:s.aggregateVerifierIdentifier,subVerifierDetailsArray:s.subVerifierDetailsArray});if(this.isRedirectMode)return;this.updateState({postBoxKey:this._getPostBoxKey(e),postboxKeyNodeIndexes:null===(n=e.nodesData)||void 0===n?void 0:n.nodeIndexes,userInfo:e.userInfo[0],signatures:this._getSignatures(e.sessionData.sessionTokenData)})}await this.setupTkey(t)}catch(e){if(Cs.error("login error",e),e instanceof or&&1302===e.code)throw M.default(l.TKEY_SHARES_REQUIRED);throw M.default(e.message)}}async loginWithJWT(e){this.checkReady();const{prefetchTssPublicKeys:t=1}=e;if(t>3)throw M.prefetchValueExceeded(`The prefetch value '${t}' exceeds the maximum allowed limit of 3.`);const{verifier:r,verifierId:i,idToken:n,importTssKey:s}=e;this.torusSp.verifierName=r,this.torusSp.verifierId=i;try{var o;const a=[];for(let e=0;e{let r;if(this.isNodejsOrRN(this.options.uxMode))r={browserName:"Node Env",browserVersion:"",deviceName:"nodejs"};else{const e=Ji().parse(navigator.userAgent);r={browserName:`${e.browser.name}`,browserVersion:e.browser.version,deviceName:e.os.name}}const n=new(T())(await this.createFactor({shareType:y.DEVICE,additionalMetadata:r}),"hex");await this.setDeviceFactor(n),await this.inputFactorKey(new(T())(n,"hex"));const s=Ee(i,zr);let o;return await this.deleteFactor(s,i),await this.deleteMetadataShareBackup(i),t&&(o=await this.createFactor(se({shareType:y.RECOVERY},e))),o})).catch((e=>{Cs.error("error enabling MFA:",e.message);const t=M.default(e.message);throw t.stack=e.stack,t}))}async createFactor(e){this.checkReady();const{shareType:t}=e;let{factorKey:r,shareDescription:i,additionalMetadata:n}=e;if(!m.includes(t))throw M.newShareIndexInvalid(`Invalid share type provided (${t}). Valid share types are ${m}.`);r||(r=gs().private),i||(i=u.Other),n||(n={});const s=Ee(r,zr);if(this.getTssFactorPub().includes(s.toSEC1(zr,!0).toString("hex")))throw M.factorKeyAlreadyExists();return this.atomicSync((async()=>(await this.copyOrCreateShare(t,s),await this.backupMetadataShare(r),await this.addFactorDescription({factorKey:r,shareDescription:i,additionalMetadata:n,updateMetadata:!1}),_s(r).toString("hex")))).catch((e=>{Cs.error("error creating factor:",e.message);const t=M.default(`error creating factor: ${e.message}`);throw t.stack=e.stack,t}))}getPubKey(){const{tssPubKey:e}=this.state;return Ls.from(e)}getPubKeyPoint(){const{tssPubKey:e}=this.state;return Se.fromSEC1(this.tkey.tssCurve,e.toString("hex"))}getPubKeyEd25519(){const e=this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic();return ps().keyFromPublic(e).getPublic()}async precompute_secp256k1(){this.wasmLib=await this.loadTssWasm();const{tssShareIndex:e}=this.state,t=this.getPubKeyPoint(),{torusNodeTSSEndpoints:r}=li(this.options.web3AuthNetwork,this.keyType);if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when signing.");const{tssShare:i}=await this.tKey.getTSSShare(this.state.factorKey,{accountIndex:0}),n=this.getTssNonce();if(!t||!r)throw M.tssPublicKeyOrEndpointsMissing();const s=Ts(),o=Os(this.verifier,this.verifierId,this.tKey.tssTag,n,s),{nodeIndexes:a}=await this.torusSp.getTSSPubKey(this.tKey.tssTag,this.tKey.metadata.tssNonces[this.tKey.tssTag]),{endpoints:c,tssWSEndpoints:h,partyIndexes:d,nodeIndexesReturned:u}=bs(r,4,3,a),f=await(async(e,t)=>{const r=await(async(e,t)=>e.map((e=>null==e?null:(0,Wn.io)(e,{path:"/tss/socket.io",query:{sessionId:t},transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:5}))))(e,t);return await new Promise((e=>{const t=setInterval((()=>{for(let e=0;e{throw b.cleanup({signatures:m,server_coeffs:v}),e})),{client:b,serverCoeffs:v}}async sign(e,t=!1,r){if(this.wasmLib=await this.loadTssWasm(),this.keyType===Te.secp256k1){const i=await this.sign_ECDSA_secp256k1(e,t,r);return Ls.concat([i.r,i.s,Ls.from([i.v])])}if(this.keyType===Te.ed25519)return this.sign_ed25519(e,t);throw M.default(`sign not supported for key type ${this.keyType}`)}async deleteFactor(e,t){if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when deleting a factor.");if(!this.tKey.metadata.factorPubs)throw M.factorPubsMissing();await this.atomicSync((async()=>{if((this.tKey.metadata.factorPubs[this.tKey.tssTag].length||0)<=1)throw M.cannotDeleteLastFactor("Cannot delete last factor");const r=e,i=Ee(this.state.factorKey,zr);if(r.equals(i))throw M.factorInUseCannotBeDeleted("Cannot delete current active factor");await this.tKey.deleteFactorPub({factorKey:this.state.factorKey,deleteFactorPub:e,authSignatures:this.signatures});const n=r.toSEC1(zr,!0).toString("hex"),s=this.tKey.metadata.getShareDescription()[n];if(s&&await Promise.all(s.map((async e=>{var t;return null===(t=this.tKey)||void 0===t?void 0:t.metadata.deleteShareDescription(n,e)}))),t){const e=new(T())(t,"hex");Ee(e,zr).equals(r)&&await this.deleteMetadataShareBackup(e)}}))}async logout(){var e;null!==(e=this.sessionManager)&&void 0!==e&&e.sessionId&&await this.sessionManager.invalidateSession(),await this.currentStorage.set("sessionId",""),this.resetState(),await this.init({handleRedirectResult:!1,rehydrate:!1})}getUserInfo(){if(!this.state.userInfo)throw M.userNotLoggedIn();return this.state.userInfo}getKeyDetails(){this.checkReady();const e=this.tKey.getKeyDetails(),t=this.state.tssPubKey?Se.fromSEC1(this.tkey.tssCurve,this.state.tssPubKey.toString("hex")):void 0,r=this.tKey.metadata.factorPubs?this.tKey.metadata.factorPubs[this.tKey.tssTag]:[];return{requiredFactors:e.requiredShares,threshold:e.threshold,totalFactors:r.length+1,shareDescriptions:this.tKey.getMetadata().getShareDescription(),metadataPubKey:e.pubKey,tssPubKey:t,keyType:this.keyType}}async commitChanges(){if(this.checkReady(),!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when committing changes.");try{await this.tKey._syncShareMetadata(),await this.tKey.syncLocalMetadataTransitions()}catch(e){throw Cs.error("sync metadata error",e),e}}async setManualSync(e){this.checkReady(),await this.tKey.syncLocalMetadataTransitions(),this.options.manualSync=e,this.tKey.manualSync=e}async setDeviceFactor(e,t=!1){if(!t&&await this.getDeviceFactor())throw M.default("Device factor already exists");const r=this.tKey.getMetadata().pubKey.x.toString(16,b);await this.currentStorage.set(r,JSON.stringify({factorKey:e.toString("hex").padStart(64,"0")}))}async getDeviceFactor(){const e=this.tKey.getMetadata().pubKey.x.toString(16,b),t=await this.currentStorage.get(e);return JSON.parse(t||"{}").factorKey}async _UNSAFE_exportTssKey(){if(this.keyType!==Te.secp256k1)throw M.default("Wrong KeyType. Method can only be used when KeyType is secp256k1");if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when exporting tss key.");if(!this.state.signatures)throw M.signaturesNotPresent("Signatures not present in state when exporting tss key.");const e=await this.tKey._UNSAFE_exportTssKey({factorKey:this.state.factorKey,authSignatures:this.state.signatures}),t=this.getAccountNonce();return e.add(t).umod(this.tKey.tssCurve.n).toString("hex",b)}async _UNSAFE_exportTssEd25519Seed(){if(this.keyType!==Te.ed25519)throw M.default("Wrong KeyType. Method can only be used when KeyType is ed25519");if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed.");if(!this.state.signatures)throw M.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed.");try{return await this.tKey._UNSAFE_exportTssEd25519Seed({factorKey:this.state.factorKey,authSignatures:this.state.signatures})}catch(e){throw M.default(`Error exporting ed25519 seed: ${e}`)}}updateState(e){this.state=se(se({},this.state),e)}async atomicSync(e){this.atomicCallStackCounter+=1,this.tkey.manualSync=!0;try{const t=await e();return 1===this.atomicCallStackCounter&&(this.options.manualSync||await this.commitChanges()),t}catch(e){throw e}finally{this.atomicCallStackCounter-=1,0===this.atomicCallStackCounter&&(this.tkey.manualSync=this.options.manualSync)}}async importTssKey(e,t,r=y.DEVICE){if(!this.state.signatures)throw M.signaturesNotPresent("Signatures not present in state when importing tss key.");await this.tKey.importTssKey({tag:this.tKey.tssTag,importKey:Ls.from(e,"hex"),factorPub:t,newTSSIndex:r},{authSignatures:this.state.signatures})}getTssNonce(){if(!this.tKey.metadata.tssNonces||void 0===this.tKey.metadata.tssNonces[this.tKey.tssTag])throw M.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`);return this.tKey.metadata.tssNonces[this.tKey.tssTag]}async setupTkey(e){if(!this.state.postBoxKey)throw M.userNotLoggedIn();let t=e;if(await this.isMetadataPresent(this.state.postBoxKey)){if(t)throw M.tssKeyImportNotAllowed();await this.handleExistingUser()}else{if(!t&&this.useClientGeneratedTSSKey)if(this.keyType===Te.ed25519)t=ms().toString("hex");else{if(this.keyType!==Te.secp256k1)throw M.default("Unsupported key type");t=_s(ue.genKeyPair().getPrivate()).toString("hex")}await this.handleNewUser(t)}}async handleNewUser(e){await this.atomicSync((async()=>{let t;if(this.options.disableHashedFactorKey){t=gs().private;const e=Ss(this.state.postBoxKey,this.options.hashedFactorNonce);await this.deleteMetadataShareBackup(e)}else t=Ss(this.state.postBoxKey,this.options.hashedFactorNonce);const r=y.DEVICE,i=Ee(t,zr);if(e)await this.tKey.initialize({skipTssInit:!0}),await this.tKey.reconstructKey(),await this.importTssKey(e,i,r);else{const e=new ce.ec(this.keyType).genKeyPair().getPrivate();await this.tKey.initialize({factorPub:i,deviceTSSShare:e,deviceTSSIndex:r})}await this.tKey.reconstructKey(),await this.finalizeTkey(t),await this.backupMetadataShare(t),this.options.disableHashedFactorKey?await this.addFactorDescription({factorKey:t,shareDescription:u.Other,updateMetadata:!1}):await this.addFactorDescription({factorKey:t,shareDescription:u.HashedShare,updateMetadata:!1})}))}async handleExistingUser(){if(await this.tKey.initialize({neverInitializeNewKey:!0}),this.options.disableHashedFactorKey)return;const e=Ss(this.state.postBoxKey,this.options.hashedFactorNonce);if(this.state.factorKey=e,await this.checkIfFactorKeyValid(e)){const t=await this.getFactorKeyMetadata(e);try{await this.tKey.inputShareStoreSafe(t,!0),await this.tKey.reconstructKey(),await this.finalizeTkey(e)}catch(e){Cs.error("error initializing tkey with hashed share",e)}}else{var t;"SHARE_DELETED"===(await(null===(t=this.tKey)||void 0===t?void 0:t.readMetadata(e))).message&&Cs.warn("hashed factor deleted")}}async finalizeTkey(e){0!==this.state.accountIndex&&(Cs.warn("AccountIndex should be 0"),this.state.accountIndex=0);const{tssIndex:t}=await this.tKey.getTSSShare(e),r=this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve,!1);this.updateState({tssShareIndex:t,tssPubKey:r,factorKey:e}),await this.createSession()}checkReady(){if(!this.ready)throw M.mpcCoreKitNotInitialized()}async rehydrateSession(e){try{this.checkReady();const t=new(T())(e.factorKey,"hex");if(!t)throw M.providedFactorKeyInvalid();const r=e.postBoxKey||e.oAuthKey;if(!r)throw M.default("postBoxKey or oAuthKey not present in session data");this.torusSp.postboxKey=new(T())(r,"hex"),this.torusSp.verifierName=e.userInfo.aggregateVerifier||e.userInfo.verifier,this.torusSp.verifierId=e.userInfo.verifierId;const i=await this.getFactorKeyMetadata(t);await this.tKey.initialize({neverInitializeNewKey:!0}),await this.tKey.inputShareStoreSafe(i,!0),await this.tKey.reconstructKey(),this.updateState({factorKey:new(T())(e.factorKey,"hex"),postBoxKey:r,postboxKeyNodeIndexes:e.postboxKeyNodeIndexes||[],tssShareIndex:e.tssShareIndex,tssPubKey:this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve,!1),signatures:e.signatures,userInfo:e.userInfo})}catch(e){Cs.warn("failed to authorize session",e)}}async createSession(){if(!this.options.disableSessionManager&&!this.sessionManager)throw new Error("sessionManager is not available");try{const e=Fn.generateRandomSessionKey();this.sessionManager.sessionId=e;const{postBoxKey:t,factorKey:r,userInfo:i,tssShareIndex:n,tssPubKey:s,postboxKeyNodeIndexes:o}=this.state;if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when creating session.");const{tssShare:a}=await this.tKey.getTSSShare(this.state.factorKey,{accountIndex:this.state.accountIndex});if(!(t&&r&&a&&s&&i))throw M.userNotLoggedIn();const c={postBoxKey:t,postboxKeyNodeIndexes:o||[],factorKey:null==r?void 0:r.toString("hex"),tssShareIndex:n,tssPubKey:Ls.from(s).toString("hex"),signatures:this.signatures,userInfo:i};await this.sessionManager.createSession(c),await this.currentStorage.set("sessionId",e)}catch(e){Cs.error("error creating session",e)}}async isMetadataPresent(e){var t;const r=new(T())(e,"hex"),i=await(null===(t=this.tKey)||void 0===t?void 0:t.readMetadata(r));return!(!i||"KEY_NOT_FOUND"===i.message)}async checkIfFactorKeyValid(e){var t;this.checkReady();const r=await(null===(t=this.tKey)||void 0===t?void 0:t.readMetadata(e));return!(!r||"KEY_NOT_FOUND"===r.message||"SHARE_DELETED"===r.message)}async getFactorKeyMetadata(e){var t;this.checkReady();const r=await(null===(t=this.tKey)||void 0===t?void 0:t.readMetadata(e));if(!r||"KEY_NOT_FOUND"===r.message)throw M.noMetadataFound();return je.fromJSON(r)}async copyOrCreateShare(e,t){if(this.checkReady(),!this.tKey.metadata.factorPubs||!Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag]))throw M.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key.");if(!this.tKey.metadata.factorEncs||"object"!=typeof this.tKey.metadata.factorEncs[this.tKey.tssTag])throw M.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key.");if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when copying or creating a share.");if(-1===m.indexOf(e))throw M.newShareIndexInvalid(`Invalid share type provided (${e}). Valid share types are ${m}.`);if(this.tKey.metadata.factorPubs[this.tKey.tssTag].length>=v)throw M.maximumFactorsReached(`The maximum number of allowable factors (${v}) has been reached.`);await this.tkey.addFactorPub({existingFactorKey:this.state.factorKey,authSignatures:this.signatures,newFactorPub:t,newTSSIndex:e,refreshShares:this.state.tssShareIndex!==e})}async getMetadataShare(){try{var e,t;const r=null===(e=this.tKey)||void 0===e?void 0:e.metadata.getLatestPublicPolynomial().getPolynomialID(),i=null===(t=this.tKey)||void 0===t?void 0:t.shares[r];let n=null;for(const e in i)e!==w.toString()&&(n=i[e]);if(!n)throw M.noMetadataShareFound();return n}catch(e){throw Cs.error("create device share error",e),M.default(e.message)}}async deleteMetadataShareBackup(e){var t,r;await this.tKey.addLocalMetadataTransitions({input:[{message:ge,dateAdded:Date.now()}],privKey:[e]}),null!==(t=this.tkey)&&void 0!==t&&t.manualSync||await(null===(r=this.tkey)||void 0===r?void 0:r.syncLocalMetadataTransitions())}async backupMetadataShare(e){var t,r,i;const n=await this.getMetadataShare();await(null===(t=this.tKey)||void 0===t?void 0:t.addLocalMetadataTransitions({input:[n],privKey:[e]})),null!==(r=this.tkey)&&void 0!==r&&r.manualSync||await(null===(i=this.tkey)||void 0===i?void 0:i.syncLocalMetadataTransitions())}async addFactorDescription(e){var t;const{factorKey:r,shareDescription:i,updateMetadata:n}=e;let{additionalMetadata:s}=e;s||(s={});const{tssIndex:o}=await this.tKey.getTSSShare(r),a=Ee(r,zr).toSEC1(zr,!0).toString("hex"),c=se(se({module:i,dateAdded:Date.now()},s),{},{tssShareIndex:o});await(null===(t=this.tKey)||void 0===t?void 0:t.addShareDescription(a,JSON.stringify(c),n))}resetState(){this.ready=!1,this.tkey=null,this.torusSp=null,this.storageLayer=null,this.state={accountIndex:0}}_getPostBoxKey(e){return Pi.getPostboxKey(e)}_getSignatures(e){return e.filter((e=>!!e)).map((e=>JSON.stringify({data:e.token,sig:e.signature})))}isNodejsOrRN(e){return"nodejs"===e||"react-native"===e}async featureRequest(){const e=o[this.options.web3AuthNetwork],t={network:this.options.web3AuthNetwork,client_id:this.options.web3AuthClientId,is_mpc_core_kit:"true",enable_gating:"true",session_time:this.options.sessionTime.toString()},r=new URL(`${e}/api/feature-access`);r.search=new URLSearchParams(t).toString();const i=await fetch(r);if(200!==i.status){this.resetState();const e=await i.json();throw M.default(e.error)}return i.json()}getAccountNonce(){return this.tkey.computeAccountNonce(this.state.accountIndex)}async sign_ECDSA_secp256k1(e,t=!1,r){const i=async(e,t,r,i)=>{const{r:n,s,recoveryParam:o}=await e.sign(r.toString("base64"),!0,"","keccak256",{signatures:i});return e.cleanup({signatures:i,server_coeffs:t}),{v:o,r:_s(n),s:_s(s)}};t||(e=(0,ln.S)(e));const n=(null==r?void 0:r.client)&&(null==r?void 0:r.serverCoeffs),{client:s,serverCoeffs:o}=n?r:await this.precompute_secp256k1(),{signatures:a}=this;if(!a)throw M.signaturesNotPresent();try{return await i(s,o,e,a)}catch(t){if(!n)throw t;const{client:r,serverCoeffs:s}=await this.precompute_secp256k1();return await i(r,s,e,a)}}async sign_ed25519(e,t=!1){if(t)throw M.default("hashed data not supported for ed25519");const r=li(this.options.web3AuthNetwork,"ed25519");if(!r.torusNodeTSSEndpoints)throw M.default("could not fetch tss node endpoints");const i=r.torusNodeTSSEndpoints.map(((e,t)=>({index:r.torusIndexes[t],url:`${e}/`}))),n=xs(i,Math.floor(i.length/2)+1),s=n.map((e=>e.index)),o=Math.max(...n.map((e=>e.index)))+1,a=new Ln,{serverCoefficients:c,clientCoefficient:h}=As(a,s,o,this.state.tssShareIndex),d=await this.getPubKey(),u=a.keyFromPublic(d).getPublic();if(0!==this.state.accountIndex)throw M.default("Account index not supported for ed25519");const{tssShare:f}=await this.tKey.getTSSShare(this.state.factorKey),l=f.mul(h).umod(a.n),p=a.scalarToBuffer(l,Ls).toString("hex"),y=this.getTssNonce(),m=Ts(),g=Os(this.verifier,this.verifierId,this.tKey.tssTag,y,m),b=n.map((e=>e.url)),v=a.pointToBuffer(u,Ls).toString("hex"),w=c.map((e=>a.scalarToBuffer(e,Ls).toString("hex"))),S=await async function(e,t,r,i,n,s,o,a,c,h){const d=new hs(t,s);await d.connect(i,n),i.forEach(((e,o)=>{const u=d.getSocket(e);if(void 0===u)throw new Error(`socket not found: party ${e}`);(async function(e,t,r,i,n,s,o,a,c,h,d){const u=n.slice(),f=s.slice().map((e=>e.endsWith("/")?e.slice(0,-1):e));u.push(o),f.push(`websocket:${a.id}`);const l={session:t,msg:ss(c),player_index:r,pubkey:i,parties:u,endpoints:f,signatures:h,share_coefficient:d},p=new URL("sign",e),y=await fetch(p,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!y.ok){const e=(await y.json()).message;throw new Error(e)}})(new URL(n[o]),t,e,a,i,n,s,u,c,r,h?h[o]:void 0).catch((e=>{console.error(`Server ${o}: ${e}`)}))}));const u=function(){const e=new Uint8Array(32);return crypto.getRandomValues(e),e}(),f=new os;try{const t=f.add(new e.RngSeed(u)),r=f.add(e.KeyShare.from_raw(s,o,a));return f.add(await e.sign(t,d,new Uint32Array(i),r,c)).to_hex()}finally{f.free(),d.close()}}(this.wasmLib,g,this.signatures,s,b,o,p,v,e,w);return Cs.info(`signature: ${S}`),Ls.from(S,"hex")}async loadTssWasm(){return this.wasmLib?this.wasmLib:"function"==typeof this._tssLib.load?this._tssLib.load():this._tssLib.lib?this._tssLib.lib:void 0}}})(),i})())); \ No newline at end of file diff --git a/package/dist/mpcCoreKit.umd.min.js.LICENSE.txt b/package/dist/mpcCoreKit.umd.min.js.LICENSE.txt new file mode 100644 index 00000000..df537c53 --- /dev/null +++ b/package/dist/mpcCoreKit.umd.min.js.LICENSE.txt @@ -0,0 +1,8 @@ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ diff --git a/package/dist/types/constants.d.ts b/package/dist/types/constants.d.ts new file mode 100644 index 00000000..e99d8339 --- /dev/null +++ b/package/dist/types/constants.d.ts @@ -0,0 +1,42 @@ +export declare const WEB3AUTH_NETWORK: { + readonly MAINNET: "sapphire_mainnet"; + readonly DEVNET: "sapphire_devnet"; +}; +export declare const USER_PATH: { + readonly NEW: "NewAccount"; + readonly EXISTING: "ExistingAccount"; + readonly REHYDRATE: "RehydrateAccount"; + readonly RECOVER: "RecoverAccount"; +}; +export declare enum FactorKeyTypeShareDescription { + HashedShare = "hashedShare", + SecurityQuestions = "tssSecurityQuestions", + DeviceShare = "deviceShare", + SeedPhrase = "seedPhrase", + PasswordShare = "passwordShare", + SocialShare = "socialShare", + Other = "Other" +} +export declare const DELIMITERS: { + Delimiter1: string; + Delimiter2: string; + Delimiter3: string; + Delimiter4: string; +}; +export declare const ERRORS: { + TKEY_SHARES_REQUIRED: string; + INVALID_BACKUP_SHARE: string; +}; +export declare const SOCIAL_FACTOR_INDEX = 1; +/** + * Defines the TSS Share Index in a simplified way for better implementation. + **/ +export declare enum TssShareType { + DEVICE = 2, + RECOVERY = 3 +} +export declare const VALID_SHARE_INDICES: TssShareType[]; +export declare const SCALAR_LEN = 32; +export declare const FIELD_ELEMENT_HEX_LEN: number; +export declare const MAX_FACTORS = 10; +export declare const SOCIAL_TKEY_INDEX = 1; diff --git a/package/dist/types/helper/browserStorage.d.ts b/package/dist/types/helper/browserStorage.d.ts new file mode 100644 index 00000000..ef5809ac --- /dev/null +++ b/package/dist/types/helper/browserStorage.d.ts @@ -0,0 +1,19 @@ +import { IAsyncStorage, IStorage } from "../interfaces"; +export declare class MemoryStorage implements IStorage { + private _store; + getItem(key: string): string | null; + setItem(key: string, value: string): void; + removeItem(key: string): void; + clear(): void; +} +export declare class AsyncStorage { + storage: IAsyncStorage | IStorage; + private _storeKey; + constructor(storeKey: string, storage: IAsyncStorage | IStorage); + toJSON(): Promise; + resetStore(): Promise>; + getStore(): Promise>; + get(key: string): Promise; + set(key: string, value: T): Promise; + remove(key: string): Promise; +} diff --git a/package/dist/types/helper/errors.d.ts b/package/dist/types/helper/errors.d.ts new file mode 100644 index 00000000..aa9b8657 --- /dev/null +++ b/package/dist/types/helper/errors.d.ts @@ -0,0 +1,98 @@ +interface ErrorOptions { + cause?: unknown; +} +/** + * Allows to easily extend a base class to create custom applicative errors. + * + * example: + * ``` + * class HttpError extends CustomError { + * public constructor( + * public code: number, + * message?: string, + * cause?: Error, + * ) { + * super(message, { cause }) + * } + * } + * + * new HttpError(404, 'Not found') + * ``` + */ +export declare class CustomError extends Error { + name: string; + constructor(message?: string, options?: ErrorOptions); +} +interface ICoreKitError extends CustomError { + name: string; + code: number; + message: string; + toString(): string; +} +declare abstract class AbstractCoreKitError extends CustomError implements ICoreKitError { + code: number; + message: string; + constructor(code?: number, message?: string); + toJSON(): ICoreKitError; + toString(): string; +} +/** + * CoreKitError, extension for Error using CustomError + * + * Usage: + * 1. throw CoreKitError.factorKeyNotPresent("Required factor key missing in the operation."); // Use a predefined method to throw a common error + * 2. throw CoreKitError.fromCode(1001); // Throw an error using a code for a common error + * 3. throw new CoreKitError(1102, "'tkey' instance has not been initialized."); // Throw a specific error with a custom message + * + * Guide: + * 1000 - Configuration errors + * 1100 - TSS and key management errors + * 1200 - Factor key and authentication errors + * 1300 - Initialization and session management + */ +declare class CoreKitError extends AbstractCoreKitError { + protected static messages: { + [key: number]: string; + }; + constructor(code: number, message: string); + static fromCode(code: number, extraMessage?: string): ICoreKitError; + static default(extraMessage?: string): ICoreKitError; + static chainConfigInvalid(extraMessage?: string): ICoreKitError; + static clientIdInvalid(extraMessage?: string): ICoreKitError; + static storageTypeUnsupported(extraMessage?: string): ICoreKitError; + static oauthLoginUnsupported(extraMessage?: string): ICoreKitError; + static noValidStorageOptionFound(extraMessage?: string): ICoreKitError; + static noDataFoundInStorage(extraMessage?: string): ICoreKitError; + static invalidConfig(extraMessage?: string): ICoreKitError; + static tssLibRequired(extraMessage?: string): ICoreKitError; + static tkeyInstanceUninitialized(extraMessage?: string): ICoreKitError; + static duplicateTssIndex(extraMessage?: string): ICoreKitError; + static nodeDetailsRetrievalFailed(extraMessage?: string): ICoreKitError; + static prefetchValueExceeded(extraMessage?: string): ICoreKitError; + static invalidTorusLoginResponse(extraMessage?: string): ICoreKitError; + static invalidTorusAggregateLoginResponse(extraMessage?: string): ICoreKitError; + static unsupportedRedirectMethod(extraMessage?: string): ICoreKitError; + static postBoxKeyMissing(extraMessage?: string): ICoreKitError; + static tssShareTypeIndexMissing(extraMessage?: string): ICoreKitError; + static tssPublicKeyOrEndpointsMissing(extraMessage?: string): ICoreKitError; + static activeSessionNotFound(extraMessage?: string): ICoreKitError; + static tssNoncesMissing(extraMessage?: string): ICoreKitError; + static tssKeyImportNotAllowed(extraMessage?: string): ICoreKitError; + static factorKeyNotPresent(extraMessage?: string): ICoreKitError; + static factorKeyAlreadyExists(extraMessage?: string): ICoreKitError; + static mfaAlreadyEnabled(extraMessage?: string): ICoreKitError; + static cannotDeleteLastFactor(extraMessage?: string): ICoreKitError; + static factorInUseCannotBeDeleted(extraMessage?: string): ICoreKitError; + static userNotLoggedIn(extraMessage?: string): ICoreKitError; + static providedFactorKeyInvalid(extraMessage?: string): ICoreKitError; + static factorEncsMissing(extraMessage?: string): ICoreKitError; + static noMetadataFound(extraMessage?: string): ICoreKitError; + static newShareIndexInvalid(extraMessage?: string): ICoreKitError; + static maximumFactorsReached(extraMessage?: string): ICoreKitError; + static noMetadataShareFound(extraMessage?: string): ICoreKitError; + static signaturesNotPresent(extraMessage?: string): ICoreKitError; + static factorPubsMissing(extraMessage?: string): ICoreKitError; + static commitChangesBeforeMFA(extraMessage?: string): ICoreKitError; + static mpcCoreKitNotInitialized(extraMessage?: string): ICoreKitError; +} +export default CoreKitError; diff --git a/package/dist/types/helper/factorSerialization.d.ts b/package/dist/types/helper/factorSerialization.d.ts new file mode 100644 index 00000000..e6ac16f5 --- /dev/null +++ b/package/dist/types/helper/factorSerialization.d.ts @@ -0,0 +1,12 @@ +/** + * Converts a mnemonic to a BN. + * @param shareMnemonic - The mnemonic to convert. + * @returns A BN respective to your mnemonic + */ +export declare function mnemonicToKey(shareMnemonic: string): string; +/** + * Converts a BN to a mnemonic. + * @param shareBN - The BN to convert. + * @returns A mnemonic respective to your BN + */ +export declare function keyToMnemonic(shareHex: string): string; diff --git a/package/dist/types/helper/index.d.ts b/package/dist/types/helper/index.d.ts new file mode 100644 index 00000000..1e50092b --- /dev/null +++ b/package/dist/types/helper/index.d.ts @@ -0,0 +1,3 @@ +export * from "./browserStorage"; +export * from "./factorSerialization"; +export * from "./securityQuestion"; diff --git a/package/dist/types/helper/securityQuestion.d.ts b/package/dist/types/helper/securityQuestion.d.ts new file mode 100644 index 00000000..db62049b --- /dev/null +++ b/package/dist/types/helper/securityQuestion.d.ts @@ -0,0 +1,33 @@ +import { StringifiedType } from "@tkey/common-types"; +import { TssShareType } from "../constants"; +import type { Web3AuthMPCCoreKit } from "../mpcCoreKit"; +export declare class TssSecurityQuestionStore { + shareIndex: string; + factorPublicKey: string; + question: string; + constructor(shareIndex: string, factorPublicKey: string, question: string); + static fromJSON(json: StringifiedType): TssSecurityQuestionStore; + toJSON(): StringifiedType; +} +export interface setSecurityQuestionParams { + mpcCoreKit: Web3AuthMPCCoreKit; + question: string; + answer: string; + shareType?: TssShareType; + description?: Record; + tssIndex?: TssShareType; +} +export interface changeSecurityQuestionParams { + mpcCoreKit: Web3AuthMPCCoreKit; + newQuestion: string; + newAnswer: string; + answer: string; +} +export declare class TssSecurityQuestion { + storeDomainName: string; + setSecurityQuestion(params: setSecurityQuestionParams): Promise; + changeSecurityQuestion(params: changeSecurityQuestionParams): Promise; + deleteSecurityQuestion(mpcCoreKit: Web3AuthMPCCoreKit, deleteFactorKey?: boolean): Promise; + recoverFactor(mpcCoreKit: Web3AuthMPCCoreKit, answer: string): Promise; + getQuestion(mpcCoreKit: Web3AuthMPCCoreKit): string; +} diff --git a/package/dist/types/index.d.ts b/package/dist/types/index.d.ts new file mode 100644 index 00000000..3e41424a --- /dev/null +++ b/package/dist/types/index.d.ts @@ -0,0 +1,6 @@ +export * from "./constants"; +export * from "./helper"; +export * from "./interfaces"; +export * from "./mpcCoreKit"; +export * from "./utils"; +export { factorKeyCurve } from "@tkey/tss"; diff --git a/package/dist/types/interfaces.d.ts b/package/dist/types/interfaces.d.ts new file mode 100644 index 00000000..64168dc0 --- /dev/null +++ b/package/dist/types/interfaces.d.ts @@ -0,0 +1,407 @@ +import { KeyType, Point as TkeyPoint, ShareDescriptionMap } from "@tkey/common-types"; +import { TKeyTSS } from "@tkey/tss"; +import type { AGGREGATE_VERIFIER_TYPE, ExtraParams, LoginWindowResponse, PasskeyExtraParams, SubVerifierDetails, TorusVerifierResponse, UX_MODE_TYPE } from "@toruslabs/customauth"; +import { Client } from "@toruslabs/tss-client"; +import type { tssLib as TssDklsLib } from "@toruslabs/tss-dkls-lib"; +import type { tssLib as TssFrostLib } from "@toruslabs/tss-frost-lib"; +import BN from "bn.js"; +import { FactorKeyTypeShareDescription, TssShareType, USER_PATH, WEB3AUTH_NETWORK } from "./constants"; +export type CoreKitMode = UX_MODE_TYPE | "nodejs" | "react-native"; +export type V3TSSLibType = { + keyType: string; + lib: unknown; +}; +export type V4TSSLibType = typeof TssFrostLib | typeof TssDklsLib; +export type TssLibType = V4TSSLibType | V3TSSLibType; +export interface IStorage { + getItem(key: string): string | null; + setItem(key: string, value: string): void; +} +export interface IAsyncStorage { + async?: boolean; + getItem(key: string): Promise; + setItem(key: string, value: string): Promise; +} +export type SupportedStorageType = "local" | "session" | "memory" | IStorage; +export interface InitParams { + /** + * @defaultValue `true` + * handle the redirect result during init() + */ + handleRedirectResult: boolean; + /** + * @defaultValue `true` + * rehydrate the session during init() + */ + rehydrate?: boolean; +} +export interface BaseLoginParams { + serverTimeOffset?: number; +} +export interface SubVerifierDetailsParams extends BaseLoginParams { + subVerifierDetails: SubVerifierDetails; +} +export interface AggregateVerifierLoginParams extends BaseLoginParams { + aggregateVerifierIdentifier: string; + subVerifierDetailsArray: SubVerifierDetails[]; + aggregateVerifierType?: AGGREGATE_VERIFIER_TYPE; +} +export interface IFactorKey { + factorKey: BN; + shareType: TssShareType; +} +export declare enum COREKIT_STATUS { + NOT_INITIALIZED = "NOT_INITIALIZED", + INITIALIZED = "INITIALIZED", + REQUIRED_SHARE = "REQUIRED_SHARE", + LOGGED_IN = "LOGGED_IN" +} +export type MPCKeyDetails = { + metadataPubKey: TkeyPoint; + threshold: number; + requiredFactors: number; + totalFactors: number; + shareDescriptions: ShareDescriptionMap; + keyType: KeyType; + tssPubKey?: TkeyPoint; +}; +export type OAuthLoginParams = (SubVerifierDetailsParams | AggregateVerifierLoginParams) & { + importTssKey?: string; +}; +export type UserInfo = TorusVerifierResponse & LoginWindowResponse; +export interface EnableMFAParams { + /** + * A BN used for encrypting your Device/ Recovery TSS Key Share. You can generate it using `generateFactorKey()` function or use an existing one. + */ + factorKey?: BN; + /** + * Setting the Description of Share - Security Questions, Device Share, Seed Phrase, Password Share, Social Share, Other. Default is Other. + */ + shareDescription?: FactorKeyTypeShareDescription; + /** + * Additional metadata information you want to be stored alongside this factor for easy identification. + */ + additionalMetadata?: Record; +} +export interface CreateFactorParams extends EnableMFAParams { + /** + * Setting the Type of Share - Device or Recovery. + **/ + shareType: TssShareType; +} +export interface JWTLoginParams { + /** + * Name of the verifier created on Web3Auth Dashboard. In case of Aggregate Verifier, the name of the top level aggregate verifier. + */ + verifier: string; + /** + * Unique Identifier for the User. The verifier identifier field set for the verifier/ sub verifier. E.g. "sub" field in your on jwt id token. + */ + verifierId: string; + /** + * The idToken received from the Auth Provider. + */ + idToken: string; + /** + * Name of the sub verifier in case of aggregate verifier setup. This field should only be provided in case of an aggregate verifier. + */ + subVerifier?: string; + /** + * Extra verifier params in case of a WebAuthn verifier type. + */ + extraVerifierParams?: PasskeyExtraParams; + /** + * Any additional parameter (key value pair) you'd like to pass to the login function. + */ + additionalParams?: ExtraParams; + /** + * Key to import key into Tss during first time login. + */ + importTssKey?: string; + /** + * Number of TSS public keys to prefetch. For the best performance, set it to + * the number of factors you want to create. Set it to 0 for an existing user. + * Default is 1, maximum is 3. + */ + prefetchTssPublicKeys?: number; +} +export interface Web3AuthState { + postBoxKey?: string; + signatures?: string[]; + postboxKeyNodeIndexes?: number[]; + userInfo?: UserInfo; + tssShareIndex?: number; + tssPubKey?: Buffer; + accountIndex: number; + factorKey?: BN; +} +export interface ICoreKit { + /** + * The tKey instance, if initialized. + * TKey is the core module on which this wrapper SDK sits for easy integration. + **/ + tKey: TKeyTSS | null; + /** + * Signatures generated from the OAuth Login. + **/ + signatures: string[] | null; + /** + * Status of the current MPC Core Kit Instance + **/ + status: COREKIT_STATUS; + /** + * The current sdk state. + */ + state: Web3AuthState; + /** + * The current session id. + */ + sessionId: string; + /** + * The function used to initailise the state of MPCCoreKit + * Also is useful to resume an existing session. + * @param initParams - Contains flag for handleRedirectResult. Default is true. + */ + init(initParams?: InitParams): Promise; + /** + * Login using OAuth flow and initialize all relevant components. + * @param loginParams - Parameters for OAuth-based Login. + */ + loginWithOAuth(loginParams: OAuthLoginParams): Promise; + /** + * Login using JWT Token and initialize all relevant components. + * @param loginParams - Parameters for JWT-based Login. + */ + loginWithJWT(loginParams: JWTLoginParams): Promise; + /** + * Enable MFA for the user. Deletes the Cloud factor and generates a new + * factor key and a backup factor key. Recommended for Non Custodial Flow. + * Stores the factor key in browser storage and returns the backup factor key. + * + * ** NOTE before enableMFA, you will need to commitChanges if manualSync is true. + * + * @param enableMFAParams - Parameters for recovery factor for MFA. + * @param recoveryFactor - Default is true. If false, recovery factor will NOT be created. + * @returns The backup factor key if if recoveryFacort is true else empty string. + */ + enableMFA(enableMFAParams: EnableMFAParams, recoveryFactor?: boolean): Promise; + /** + * Second step for login where the user inputs their factor key. + * @param factorKey - A BN used for encrypting your Device/ Recovery TSS Key + * Share. You can generate it using `generateFactorKey()` function or use an + * existing one. + */ + inputFactorKey(factorKey: BN): Promise; + /** + * Returns the current Factor Key and TssShareType in MPC Core Kit State + **/ + getCurrentFactorKey(): IFactorKey; + /** + * Creates a new factor for authentication. Generates and returns a new factor + * key if no factor key is provided in `params`. + * @param createFactorParams - Parameters for creating a new factor. + * @returns The factor key. + */ + createFactor(createFactorParams: CreateFactorParams): Promise; + /** + * Deletes the factor identified by the given public key, including all + * associated metadata. + * @param factorPub - The public key of the factor to delete. + */ + deleteFactor(factorPub: TkeyPoint): Promise; + /** + * Logs out the user, terminating the session. + */ + logout(): Promise; + /** + * Get user information provided by the OAuth provider. + */ + getUserInfo(): UserInfo; + /** + * Get information about how the keys of the user is managed according to the information in the metadata server. + */ + getKeyDetails(): MPCKeyDetails; + /** + * Commit the changes made to the user's account when in manual sync mode. + */ + commitChanges(): Promise; + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Exports the private key scalar for the current account index. + * + * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. + */ + _UNSAFE_exportTssKey(): Promise; + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Attempts to export the ed25519 private key seed. Only works if import key + * flow has been used. + */ + _UNSAFE_exportTssEd25519Seed(): Promise; +} +export type WEB3AUTH_NETWORK_TYPE = (typeof WEB3AUTH_NETWORK)[keyof typeof WEB3AUTH_NETWORK]; +export type USER_PATH_TYPE = (typeof USER_PATH)[keyof typeof USER_PATH]; +export interface Web3AuthOptions { + /** + * The Web3Auth Client ID for your application. Find one at https://dashboard.web3auth.io + */ + web3AuthClientId: string; + /** + * The threshold signing library to use. + */ + tssLib: TssLibType; + /** + * @defaultValue `false` + */ + manualSync?: boolean; + /** + * @defaultValue `${window.location.origin}/serviceworker` + */ + baseUrl?: string; + /** + * + * @defaultValue `'sapphire_mainnet'` + */ + web3AuthNetwork?: WEB3AUTH_NETWORK_TYPE; + /** + * storage for mpc-core-kit's local state. + * storage replaces previous' storageKey and asyncStorage options. + * + * Migration from storageKey and asyncStorage to storage guide. + * + * For StorageKey, please replace + * - undefined with localStorage + * - "local" with localStorage + * - "session" with sessionStorage + * - "memory" with new MemoryStorage() + * + * For asyncStorage, provide instance of IAsyncStorage. + * + */ + storage: IAsyncStorage | IStorage; + /** + * @defaultValue false + * disable session manager creation + * signatures from web3auth newtorks will still expired after sessionTime if session manager is disabled + */ + disableSessionManager?: boolean; + /** + * @defaultValue 86400 + */ + sessionTime?: number; + /** + * @defaultValue `'POPUP'` + */ + uxMode?: CoreKitMode; + /** + * @defaultValue `false` + * enables logging of the internal packages. + */ + enableLogging?: boolean; + /** + * This option is used to specify the url path where user will be + * redirected after login. Redirect Uri for OAuth is baseUrl/redirectPathName. + * + * + * @defaultValue `"redirect"` + * + * @remarks + * At verifier's interface (where you obtain client id), please use baseUrl/redirectPathName + * as the redirect_uri + * + * Torus Direct SDK installs a service worker relative to baseUrl to capture + * the auth redirect at `redirectPathName` path. + * + * For ex: While using serviceworker if `baseUrl` is "http://localhost:3000/serviceworker" and + * `redirectPathName` is 'redirect' (which is default) + * then user will be redirected to http://localhost:3000/serviceworker/redirect page after login + * where service worker will capture the results and send it back to original window where login + * was initiated. + * + * For browsers where service workers are not supported or if you wish to not use + * service workers,create and serve redirect page (i.e redirect.html file which is + * available in serviceworker folder of this package) + * + * If you are using redirect uxMode, you can get the results directly on your `redirectPathName` + * path using `getRedirectResult` function. + * + * For ex: if baseUrl is "http://localhost:3000" and `redirectPathName` is 'auth' + * then user will be redirected to http://localhost:3000/auth page after login + * where you can get login result by calling `getRedirectResult` on redirected page mount. + * + * Please refer to examples https://github.com/torusresearch/customauth/tree/master/examples + * for more understanding. + * + */ + redirectPathName?: string; + /** + * @defaultValue `false` + * Disables the cloud factor key, enabling the one key semi custodial flow. + * Recommended for Non Custodial Flow. + */ + disableHashedFactorKey?: boolean; + /** + * @defaultValue `Web3AuthOptions.web3AuthClientId` + * Overwrites the default value ( clientId ) used as nonce for hashing the hash factor key. + * + * If you want to aggregate the mfa status of client id 1 and client id 2 apps + * set hashedFactorNonce to some common clientID, which can be either client id 1 or client id 2 or any other unique string + * #PR 72 + * Do not use this unless you know what you are doing. + */ + hashedFactorNonce?: string; + serverTimeOffset?: number; + /** + * Set this flag to false to generate keys on client side + * by default keys are generated on using dkg protocol on a distributed network + * Note: This option is not supported for ed25519 key type + * @defaultValue `true` + */ + useDKG?: boolean; + /** + * @defaultValue `false` for secp256k1 and `true` for ed25519 + * Set this flag to true to use the client generated key for signing + * Note: This option is set to true for ed25519 key type by default to ensure ed25519 mpc key seed exportablity. + * The seed thn can be used for importing user's key other wallets like phantom etc + * If you set this flag to false for ed25519 key type, you will not be able to export the seed for ed25519 keys and + * only scalar will be exported, scalar can be used for signing outside of this sdk but not for importing the key in other wallets. + */ + useClientGeneratedTSSKey?: boolean; +} +export type Web3AuthOptionsWithDefaults = Required; +export interface SessionData { + /** + * @deprecated Use `postBoxKey` instead. + */ + oAuthKey?: string; + postBoxKey?: string; + postboxKeyNodeIndexes?: number[]; + factorKey: string; + tssShareIndex: number; + tssPubKey: string; + signatures: string[]; + userInfo: UserInfo; +} +export interface TkeyLocalStoreData { + factorKey: string; +} +export interface CoreKitSigner { + keyType: KeyType; + sign(data: Buffer, hashed?: boolean): Promise; + getPubKey(): Buffer; +} +export interface EthSig { + v: number; + r: Buffer; + s: Buffer; +} +export interface EthereumSigner { + sign: (msgHash: Buffer) => Promise; + getPublic: () => Promise; +} +export interface Secp256k1PrecomputedClient { + client: Client; + serverCoeffs: Record; +} diff --git a/package/dist/types/mpcCoreKit.d.ts b/package/dist/types/mpcCoreKit.d.ts new file mode 100644 index 00000000..42c5b2bd --- /dev/null +++ b/package/dist/types/mpcCoreKit.d.ts @@ -0,0 +1,120 @@ +import { BNString, KeyType, Point } from "@tkey/common-types"; +import { TKeyTSS, TSSTorusServiceProvider } from "@tkey/tss"; +import { Client } from "@toruslabs/tss-client"; +import BN from "bn.js"; +import { COREKIT_STATUS, CreateFactorParams, EnableMFAParams, ICoreKit, IFactorKey, InitParams, JWTLoginParams, MPCKeyDetails, OAuthLoginParams, Secp256k1PrecomputedClient, UserInfo, Web3AuthOptions, Web3AuthState } from "./interfaces"; +export declare class Web3AuthMPCCoreKit implements ICoreKit { + state: Web3AuthState; + torusSp: TSSTorusServiceProvider | null; + private options; + private storageLayer; + private tkey; + private sessionManager?; + private currentStorage; + private _storageBaseKey; + private enableLogging; + private ready; + private _tssLib; + private wasmLib; + private _keyType; + private atomicCallStackCounter; + constructor(options: Web3AuthOptions); + get tKey(): TKeyTSS; + get keyType(): KeyType; + get signatures(): string[]; + get _storageKey(): string; + get status(): COREKIT_STATUS; + get sessionId(): string; + get supportsAccountIndex(): boolean; + private get verifier(); + private get verifierId(); + private get isRedirectMode(); + private get useClientGeneratedTSSKey(); + _UNSAFE_recoverTssKey(factorKey: string[]): Promise; + init(params?: InitParams): Promise; + loginWithOAuth(params: OAuthLoginParams): Promise; + loginWithJWT(params: JWTLoginParams): Promise; + handleRedirectResult(): Promise; + inputFactorKey(factorKey: BN): Promise; + setTssWalletIndex(accountIndex: number): void; + getCurrentFactorKey(): IFactorKey; + enableMFA(enableMFAParams: EnableMFAParams, recoveryFactor?: boolean): Promise; + getTssFactorPub: () => string[]; + createFactor(createFactorParams: CreateFactorParams): Promise; + /** + * Get public key point in SEC1 format. + */ + getPubKey(): Buffer; + /** + * Get public key point. + */ + getPubKeyPoint(): Point; + /** + * Get public key in ed25519 format. + * + * Throws an error if keytype is not compatible with ed25519. + */ + getPubKeyEd25519(): Buffer; + precompute_secp256k1(): Promise<{ + client: Client; + serverCoeffs: Record; + }>; + sign(data: Buffer, hashed?: boolean, secp256k1Precompute?: Secp256k1PrecomputedClient): Promise; + deleteFactor(factorPub: Point, factorKey?: BNString): Promise; + logout(): Promise; + getUserInfo(): UserInfo; + getKeyDetails(): MPCKeyDetails; + commitChanges(): Promise; + setManualSync(manualSync: boolean): Promise; + setDeviceFactor(factorKey: BN, replace?: boolean): Promise; + getDeviceFactor(): Promise; + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Exports the private key scalar for the current account index. + * + * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. + */ + _UNSAFE_exportTssKey(): Promise; + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Attempts to export the ed25519 private key seed. Only works if import key + * flow has been used. + */ + _UNSAFE_exportTssEd25519Seed(): Promise; + updateState(newState: Partial): void; + protected atomicSync(f: () => Promise): Promise; + private importTssKey; + private getTssNonce; + private setupTkey; + private handleNewUser; + private handleExistingUser; + private finalizeTkey; + private checkReady; + private rehydrateSession; + private createSession; + private isMetadataPresent; + private checkIfFactorKeyValid; + private getFactorKeyMetadata; + /** + * Copies a share and makes it available under a new factor key. If no share + * exists at the specified share index, a new share is created. + * @param newFactorTSSIndex - The index of the share to copy. + * @param newFactorPub - The public key of the new share. + */ + private copyOrCreateShare; + private getMetadataShare; + private deleteMetadataShareBackup; + private backupMetadataShare; + private addFactorDescription; + private resetState; + private _getPostBoxKey; + private _getSignatures; + private isNodejsOrRN; + private featureRequest; + private getAccountNonce; + private sign_ECDSA_secp256k1; + private sign_ed25519; + private loadTssWasm; +} diff --git a/package/dist/types/utils.d.ts b/package/dist/types/utils.d.ts new file mode 100644 index 00000000..c45e1def --- /dev/null +++ b/package/dist/types/utils.d.ts @@ -0,0 +1,69 @@ +import { Point as TkeyPoint } from "@tkey/common-types"; +import { EllipticCurve } from "@toruslabs/elliptic-wrapper"; +import BN from "bn.js"; +import { eddsa as EDDSA } from "elliptic"; +import loglevel from "loglevel"; +import { CoreKitSigner, EthereumSigner, IAsyncStorage, IStorage } from "./interfaces"; +export declare const ed25519: () => EDDSA; +/** + * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. + */ +export declare function randomBytes(bytesLength?: number): Uint8Array; +export declare function generateEd25519Seed(): Buffer; +export declare const generateFactorKey: () => { + private: BN; + pub: TkeyPoint; +}; +export declare const generateTSSEndpoints: (tssNodeEndpoints: string[], parties: number, clientIndex: number, nodeIndexes: number[]) => { + endpoints: string[]; + tssWSEndpoints: string[]; + partyIndexes: number[]; + nodeIndexesReturned: number[]; +}; +export declare function storageAvailable(storage: IStorage | IAsyncStorage): Promise; +/** + * Parses a JWT Token, without verifying the signature. + * @param token - JWT Token + * @returns Extracted JSON payload from the token + */ +export declare function parseToken(token: string): any; +export declare const getHashedPrivateKey: (postboxKey: string, clientId: string) => BN; +/** + * Converts an elliptic curve scalar represented by a BN to a byte buffer in SEC1 + * format (i.e., padded to maximum length). + * @param s - The scalar of type BN. + * @returns The SEC1 encoded representation of the scalar. + */ +export declare function scalarBNToBufferSEC1(s: BN): Buffer; +export interface ServerEndpoint { + index: number; + url: string; +} +export declare function sampleEndpoints(endpoints: ServerEndpoint[], n: number): ServerEndpoint[]; +export declare function fraction(curve: EllipticCurve, nom: BN, denom: BN): BN; +export declare function lagrangeCoefficient(curve: EllipticCurve, xCoords: BN[], targetCoeff: number, targetX: BN): BN; +export declare function lagrangeCoefficients(curve: EllipticCurve, xCoords: BN[] | number[], targetX: BN | number): BN[]; +/** + * Derive share coefficients for client and servers. + * + * @param curve - The curve to be used. + * @param serverXCoords - The source and target x-coordinates of the selected + * servers. + * @param targetClientXCoord - The target x-coordinate of the client. + * @param sourceClientXCoord - The source x-coordinate of the client in the L1 + * hierarchy. + * @returns - The share coefficients for the client and the servers. + */ +export declare function deriveShareCoefficients(ec: EllipticCurve, serverXCoords: number[], targetClientXCoord: number, sourceClientXCoord?: number): { + serverCoefficients: BN[]; + clientCoefficient: BN; +}; +export declare function generateSessionNonce(): string; +export declare function getSessionId(verifier: string, verifierId: string, tssTag: string, tssNonce: number, sessionNonce: string): string; +export declare function sigToRSV(sig: Buffer): { + r: Buffer; + s: Buffer; + v: number; +}; +export declare function makeEthereumSigner(kit: CoreKitSigner): EthereumSigner; +export declare const log: loglevel.Logger; diff --git a/package/package.json b/package/package.json new file mode 100644 index 00000000..829eb6c5 --- /dev/null +++ b/package/package.json @@ -0,0 +1,117 @@ +{ + "name": "@web3auth/mpc-core-kit", + "version": "3.2.6", + "description": "MPC CoreKit SDK for web3Auth", + "keywords": [ + "web3Auth/mpc-core-kit", + "web3Auth", + "MPC", + "blockchain", + "ethereum" + ], + "main": "dist/lib.cjs/index.js", + "module": "dist/lib.esm/index.js", + "unpkg": "dist/mpcCoreKit.umd.min.js", + "jsdelivr": "dist/mpcCoreKit.umd.min.js", + "types": "dist/types/index.d.ts", + "author": "Torus Labs", + "homepage": "https://github.com/Web3Auth/mpc-core-kit/tree/master#readme", + "license": "ISC", + "scripts": { + "test": "node --test -r esbuild-register tests/*.spec.ts", + "dev": "torus-scripts start", + "build": "torus-scripts build", + "release": "torus-scripts release", + "lint": "eslint --fix 'src/**/*.ts'", + "prepack": "npm run build", + "pre-commit": "lint-staged --cwd ." + }, + "files": [ + "dist" + ], + "peerDependencies": { + "@babel/runtime": "^7.x", + "@toruslabs/tss-dkls-lib": "^4.0.0", + "@toruslabs/tss-frost-lib": "^1.0.0" + }, + "peerDependenciesMeta": { + "@toruslabs/tss-dkls-lib": { + "optional": true + }, + "@toruslabs/tss-frost-lib": { + "optional": true + } + }, + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@tkey/core": "^15.1.0", + "@tkey/share-serialization": "^15.1.0", + "@tkey/storage-layer-torus": "^15.1.0", + "@tkey/tss": "^15.1.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/customauth": "^20.3.0", + "@toruslabs/elliptic-wrapper": "^0.1.0", + "@toruslabs/fetch-node-details": "^14.0.1", + "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "@toruslabs/session-manager": "^3.1.0", + "@toruslabs/openlogin-utils": "^8.2.1", + "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.3.tgz", + "@toruslabs/tss-client": "^3.1.0", + "@toruslabs/tss-frost-client": "0.3.1", + "@toruslabs/tss-frost-common": "^1.0.1", + "bn.js": "^5.2.1", + "bowser": "^2.11.0", + "elliptic": "^6.5.7", + "loglevel": "^1.9.2" + }, + "devDependencies": { + "@babel/register": "^7.25.7", + "@toruslabs/config": "^2.2.0", + "@toruslabs/eslint-config-typescript": "^3.3.3", + "@toruslabs/torus-scripts": "^6.1.2", + "@toruslabs/tss-dkls-lib": "^4.0.0", + "@toruslabs/tss-frost-lib": "^1.0.0", + "@types/chai": "^4.3.16", + "@types/elliptic": "^6.4.18", + "@types/jsonwebtoken": "^9.0.7", + "@types/node": "^20.14.0", + "@typescript-eslint/eslint-plugin": "^6.7.0", + "chai": "^5.1.1", + "cross-env": "^7.0.3", + "dotenv": "^16.4.5", + "esbuild-register": "^3.6.0", + "eslint": "^8.56.0", + "husky": "^9.1.6", + "jsonwebtoken": "^9.0.2", + "lint-staged": "^15.2.10", + "mocha": "^10.7.3", + "node-fetch": "^3.3.2", + "prettier": "^3.3.3", + "rimraf": "^6.0.1", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "tsconfig-paths-webpack-plugin": "^4.1.0", + "tslib": "^2.7.0", + "typescript": "^5.6.3" + }, + "engines": { + "node": ">=20.x" + }, + "lint-staged": { + "!(*d).ts": [ + "eslint --cache --fix", + "prettier --write" + ] + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Web3Auth/mpc-core-kit" + }, + "bugs": { + "url": "https://github.com/Web3Auth/mpc-core-kit/issues" + } +} From f4f81eef2ac09a3224d585fb8aef2012a64356c2 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 28 Nov 2024 12:59:27 +0530 Subject: [PATCH 09/37] demo updates --- demo/redirect-flow-example/package-lock.json | 12 +- demo/redirect-flow-example/src/App.tsx | 143 ++++++++++++------- package-lock.json | 32 +++-- package.json | 9 +- src/constants.ts | 4 +- 5 files changed, 128 insertions(+), 72 deletions(-) diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index 6f6e85ee..36836f63 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -63,15 +63,15 @@ "@tkey/share-serialization": "^15.1.0", "@tkey/storage-layer-torus": "^15.1.0", "@tkey/tss": "^15.1.0", - "@toruslabs/constants": "^14.0.0", + "@toruslabs/constants": "^14.2.0", "@toruslabs/customauth": "^20.3.0", "@toruslabs/elliptic-wrapper": "^0.1.1", - "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/fetch-node-details": "^14.2.0", + "@toruslabs/fnd-base": "^14.2.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "^15.1.0", + "@toruslabs/torus.js": "^15.1.1", "@toruslabs/tss-client": "^3.3.0-alpha.0", "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", "@toruslabs/tss-frost-common": "^1.0.1", @@ -82,6 +82,7 @@ }, "devDependencies": { "@babel/register": "^7.25.7", + "@noble/curves": "^1.6.0", "@toruslabs/config": "^2.2.0", "@toruslabs/eslint-config-typescript": "^3.3.3", "@toruslabs/torus-scripts": "^6.1.2", @@ -125,6 +126,9 @@ }, "@toruslabs/tss-frost-lib": { "optional": true + }, + "@toruslabs/tss-frost-lib-bip340": { + "optional": true } } }, diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index 7375123d..1094251b 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -12,21 +12,23 @@ import { parseToken, factorKeyCurve, makeEthereumSigner, - SigType, + SIG_TYPE, } from "@web3auth/mpc-core-kit"; -import Web3 from "web3"; +import Web3, { core } from "web3"; import { CHAIN_NAMESPACES, CustomChainConfig, IProvider } from "@web3auth/base"; import { EthereumSigningProvider } from "@web3auth/ethereum-mpc-provider"; import { BN } from "bn.js"; import { KeyType, Point } from "@tkey/common-types"; -// import { tssLib } from "@toruslabs/tss-dkls-lib"; -// import{ tssLib } from "@toruslabs/tss-frost-lib"; -import{ tssLib } from "@toruslabs/tss-frost-lib-bip340"; +import { tssLib as tssLibDkls } from "@toruslabs/tss-dkls-lib"; +import{ tssLib as tssLibFrost } from "@toruslabs/tss-frost-lib"; +import{ tssLib as tssLibFrostBip340 } from "@toruslabs/tss-frost-lib-bip340"; import "./App.css"; import jwt, { Algorithm } from "jsonwebtoken"; import { flow } from "./flow"; +type TssLib = typeof tssLibDkls | typeof tssLibFrost | typeof tssLibFrostBip340; + const uiConsole = (...args: any[]): void => { const el = document.querySelector("#console>p"); if (el) { @@ -48,16 +50,6 @@ const DEFAULT_CHAIN_CONFIG: CustomChainConfig = { decimals: 18, }; -const coreKitInstance = new Web3AuthMPCCoreKit({ - web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", - web3AuthNetwork: selectedNetwork, - uxMode: "redirect", - manualSync: true, - storage: window.localStorage, - // sessionTime: 3600, // <== can provide variable session time based on user subscribed plan - tssLib, - useDKG: false, -}); const privateKey = "MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCCD7oLrcKae+jVZPGx52Cb/lKhdKxpXjl9eGNa1MlY57A=="; const jwtPrivateKey = `-----BEGIN PRIVATE KEY-----\n${privateKey}\n-----END PRIVATE KEY-----`; @@ -99,7 +91,18 @@ function App() { const [question, setQuestion] = useState(undefined); const [newQuestion, setNewQuestion] = useState(undefined); const securityQuestion = useMemo(() => new TssSecurityQuestion(), []); - + const [selectedTssLib, setSelectedTssLib] = useState(tssLibDkls); + const [coreKitInstance, setCoreKitInstance] = useState( + new Web3AuthMPCCoreKit({ + web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", + web3AuthNetwork: selectedNetwork, + uxMode: "redirect", + manualSync: true, + storage: window.localStorage, + tssLib: selectedTssLib, + useDKG: false, + }) + ); async function setupProvider(chainConfig?: CustomChainConfig) { if (coreKitInstance.keyType !== KeyType.secp256k1) { console.warn(`Ethereum requires keytype ${KeyType.secp256k1}, skipping provider setup`); @@ -112,44 +115,58 @@ function App() { // decide whether to rehydrate session const rehydrate = true; - const initialized = useRef(false); - useEffect(() => { - const init = async () => { - // Example config to handle redirect result manually - if (coreKitInstance.status === COREKIT_STATUS.NOT_INITIALIZED) { - await coreKitInstance.init({ handleRedirectResult: false, rehydrate }); - if (window.location.hash.includes("#state")) { - await coreKitInstance.handleRedirectResult(); - } - } - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { - await setupProvider(); - } - if (coreKitInstance.status === COREKIT_STATUS.REQUIRED_SHARE) { - uiConsole( - "required more shares, please enter your backup/ device factor key, or reset account unrecoverable once reset, please use it with caution]" - ); + + const init = async (newCoreKitInstance: Web3AuthMPCCoreKit) => { + // Example config to handle redirect result manually + if (newCoreKitInstance.status === COREKIT_STATUS.NOT_INITIALIZED) { + await newCoreKitInstance.init({ handleRedirectResult: false, rehydrate }); + if (window.location.hash.includes("#state")) { + await newCoreKitInstance.handleRedirectResult(); } + } + if (newCoreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + await setupProvider(); + } - console.log("coreKitInstance.status", coreKitInstance.status); - setCoreKitStatus(coreKitInstance.status); + if (newCoreKitInstance.status === COREKIT_STATUS.REQUIRED_SHARE) { + uiConsole( + "required more shares, please enter your backup/ device factor key, or reset account unrecoverable once reset, please use it with caution]" + ); + } - try { - let result = securityQuestion.getQuestion(coreKitInstance!); - setQuestion(result); - uiConsole("security question set"); - } catch (e) { - uiConsole("security question not set"); - } - }; - if (!initialized.current) + console.log("newCoreKitInstance.status", newCoreKitInstance.status); + setCoreKitStatus(newCoreKitInstance.status); + + try { + let result = securityQuestion.getQuestion(newCoreKitInstance!); + setQuestion(result); + uiConsole("security question set"); + } catch (e) { + uiConsole("security question not set"); + } + }; + + + useEffect(() => { + const instance = new Web3AuthMPCCoreKit({ + web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", + web3AuthNetwork: selectedNetwork, + uxMode: "redirect", + manualSync: true, + storage: window.localStorage, + tssLib: selectedTssLib, + useDKG: false, + }) + setCoreKitInstance( + instance + ) + if (instance.status === COREKIT_STATUS.NOT_INITIALIZED) { - init(); - initialized.current = true; + init(instance); } - }, []); + }, [selectedTssLib]); useEffect(() => { if (provider) { @@ -367,19 +384,18 @@ function App() { }; const signMessage = async (): Promise => { - if (coreKitInstance.sigType === SigType.ecdsa_secp256k1) { + if (coreKitInstance.sigType === SIG_TYPE.ECDSA_SECP256K1) { if (!web3) { uiConsole("web3 not initialized yet"); return; } const fromAddress = (await web3.eth.getAccounts())[0]; - const message = "hello"; const signedMessage = await web3.eth.personal.sign(message, fromAddress, ""); uiConsole(signedMessage); - } else if (coreKitInstance.sigType === SigType.ed25519 || coreKitInstance.sigType === SigType.bip340) { + } else if (coreKitInstance.sigType === SIG_TYPE.ED25519 || coreKitInstance.sigType === SIG_TYPE.BIP340) { const msg = Buffer.from("hello signer!"); const sig = await coreKitInstance.sign(msg); uiConsole(sig.toString("hex")); @@ -575,6 +591,32 @@ function App() { await coreKitInstance.commitChanges(); }; + const tssLibSelector = ( +
+ + +
+ ); + const loggedInView = ( <>

Account Details

@@ -733,6 +775,7 @@ function App() { const unloggedInView = ( <> + {tssLibSelector} setMockEmail(e.target.value)}>
+ +

Manual Factors Manipulation

diff --git a/package-lock.json b/package-lock.json index 4f7a9157..c24b5e80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "file:../torus.js", + "@toruslabs/torus.js": "15.2.0-alpha.0", "@toruslabs/tss-client": "^3.1.0", "@toruslabs/tss-frost-client": "0.3.1", "@toruslabs/tss-frost-common": "^1.0.1", @@ -78,57 +78,6 @@ } } }, - "../torus.js": { - "name": "@toruslabs/torus.js", - "version": "15.1.1", - "license": "MIT", - "dependencies": { - "@toruslabs/bs58": "^1.0.0", - "@toruslabs/constants": "^14.0.0", - "@toruslabs/eccrypto": "^5.0.4", - "@toruslabs/http-helpers": "^7.0.0", - "bn.js": "^5.2.1", - "elliptic": "^6.5.7", - "ethereum-cryptography": "^2.2.1", - "json-stable-stringify": "^1.1.1", - "loglevel": "^1.9.2" - }, - "devDependencies": { - "@babel/register": "^7.25.7", - "@babel/runtime": "^7.25.7", - "@faker-js/faker": "^9.0.3", - "@toruslabs/config": "^2.2.0", - "@toruslabs/eslint-config-typescript": "^3.3.4", - "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/torus-scripts": "^6.1.5", - "@types/chai": "^5.0.0", - "@types/elliptic": "^6.4.18", - "@types/json-stable-stringify": "^1.0.36", - "@types/jsonwebtoken": "^9.0.7", - "@types/mocha": "^10.0.9", - "@types/sinon": "^17.0.3", - "chai": "^5.1.1", - "cross-env": "^7.0.3", - "dotenv": "^16.4.5", - "eslint": "^8.57.0", - "husky": "^9.1.6", - "jsonwebtoken": "^9.0.2", - "lint-staged": "^15.2.10", - "mocha": "^10.7.3", - "prettier": "^3.3.3", - "rimraf": "^6.0.1", - "sinon": "^19.0.2", - "tsx": "^4.19.1", - "typescript": "^5.6.3" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -144,13 +93,14 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -158,9 +108,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "license": "MIT", "engines": { @@ -168,22 +118,22 @@ } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -199,58 +149,59 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", - "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -259,18 +210,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", - "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", "semver": "^6.3.1" }, "engines": { @@ -281,14 +232,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", - "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", "semver": "^6.3.1" }, "engines": { @@ -299,9 +250,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "dev": true, "license": "MIT", "dependencies": { @@ -316,44 +267,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", - "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -363,22 +313,22 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", - "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "license": "MIT", "engines": { @@ -386,15 +336,15 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", - "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-wrap-function": "^7.25.0", - "@babel/traverse": "^7.25.0" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -404,15 +354,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", - "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -422,37 +372,37 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", - "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", "engines": { @@ -460,9 +410,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", "engines": { @@ -470,9 +420,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "license": "MIT", "engines": { @@ -480,58 +430,42 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", - "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", - "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -541,14 +475,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", - "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -558,13 +492,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", - "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -574,13 +508,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", - "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -590,15 +524,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", - "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -608,14 +542,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", - "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -637,19 +571,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", @@ -663,69 +584,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", - "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -735,13 +601,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", - "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -750,150 +616,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -903,13 +633,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz", - "integrity": "sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -936,13 +666,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", - "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -952,16 +682,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz", - "integrity": "sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-remap-async-to-generator": "^7.25.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.4" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -971,15 +700,15 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", - "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -989,13 +718,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", - "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1005,13 +734,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", - "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1021,14 +750,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", - "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1038,15 +767,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", - "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1056,17 +784,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", - "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", "globals": "^11.1.0" }, "engines": { @@ -1077,14 +805,14 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", - "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/template": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1094,13 +822,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", - "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1110,14 +838,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", - "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1127,13 +855,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", - "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1143,14 +871,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", - "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1160,14 +888,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", - "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1177,14 +904,14 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", - "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1194,14 +921,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", - "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1211,14 +937,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", - "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1228,15 +954,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", - "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.1" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1246,14 +972,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", - "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1263,13 +988,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", - "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1279,14 +1004,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", - "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1296,13 +1020,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", - "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1312,14 +1036,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", - "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1329,15 +1053,15 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", - "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1347,16 +1071,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", - "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1366,14 +1090,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", - "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1383,14 +1107,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", - "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1400,13 +1124,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", - "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1416,14 +1140,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", - "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1433,14 +1156,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", - "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1450,16 +1172,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", - "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.7" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1469,14 +1190,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", - "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1486,14 +1207,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", - "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1503,15 +1223,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", - "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1521,13 +1240,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", - "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1537,14 +1256,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", - "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1554,16 +1273,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", - "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1573,13 +1291,13 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", - "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1589,13 +1307,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", - "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.9", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1605,14 +1323,31 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", - "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1622,14 +1357,14 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz", - "integrity": "sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", @@ -1643,13 +1378,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", - "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1659,14 +1394,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", - "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1676,13 +1411,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", - "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1692,13 +1427,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", - "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1708,13 +1443,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", - "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1724,17 +1459,17 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", - "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-typescript": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1744,13 +1479,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", - "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1760,14 +1495,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", - "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1777,14 +1512,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", - "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1794,14 +1529,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", - "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1811,94 +1546,80 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.4.tgz", - "integrity": "sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.4", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.7", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.4", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.25.4", - "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.4", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-dotall-regex": "^7.24.7", - "@babel/plugin-transform-duplicate-keys": "^7.24.7", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", - "@babel/plugin-transform-dynamic-import": "^7.24.7", - "@babel/plugin-transform-exponentiation-operator": "^7.24.7", - "@babel/plugin-transform-export-namespace-from": "^7.24.7", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-member-expression-literals": "^7.24.7", - "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-modules-systemjs": "^7.25.0", - "@babel/plugin-transform-modules-umd": "^7.24.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-new-target": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-object-super": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.25.4", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-property-literals": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-reserved-words": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.8", - "@babel/plugin-transform-unicode-escapes": "^7.24.7", - "@babel/plugin-transform-unicode-property-regex": "^7.24.7", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.4", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", + "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, "engines": { @@ -1924,17 +1645,17 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", - "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", - "@babel/plugin-transform-typescript": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1944,9 +1665,9 @@ } }, "node_modules/@babel/register": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.25.7.tgz", - "integrity": "sha512-qHTd2Rhn/rKhSUwdY6+n98FmwXN+N+zxSVx3zWqRe9INyvTpv+aQ5gDV2+43ACd3VtMBzPPljbb0gZb8u5ma6Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.25.9.tgz", + "integrity": "sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA==", "dev": true, "license": "MIT", "dependencies": { @@ -1963,17 +1684,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/runtime": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -1983,32 +1697,32 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2017,15 +1731,14 @@ } }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2072,9 +1785,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", - "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", "cpu": [ "ppc64" ], @@ -2090,9 +1803,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", - "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", "cpu": [ "arm" ], @@ -2108,9 +1821,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", - "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", "cpu": [ "arm64" ], @@ -2126,9 +1839,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", - "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", "cpu": [ "x64" ], @@ -2144,9 +1857,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", - "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", "cpu": [ "arm64" ], @@ -2162,9 +1875,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", - "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", "cpu": [ "x64" ], @@ -2180,9 +1893,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", - "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", "cpu": [ "arm64" ], @@ -2198,9 +1911,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", - "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", "cpu": [ "x64" ], @@ -2216,9 +1929,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", - "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", "cpu": [ "arm" ], @@ -2234,9 +1947,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", - "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", "cpu": [ "arm64" ], @@ -2252,9 +1965,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", - "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", "cpu": [ "ia32" ], @@ -2270,9 +1983,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", - "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", "cpu": [ "loong64" ], @@ -2288,9 +2001,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", - "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", "cpu": [ "mips64el" ], @@ -2306,9 +2019,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", - "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", "cpu": [ "ppc64" ], @@ -2324,9 +2037,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", - "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", "cpu": [ "riscv64" ], @@ -2342,9 +2055,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", - "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", "cpu": [ "s390x" ], @@ -2360,9 +2073,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", - "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", "cpu": [ "x64" ], @@ -2378,9 +2091,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", - "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", "cpu": [ "x64" ], @@ -2396,9 +2109,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", - "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", "cpu": [ "arm64" ], @@ -2414,9 +2127,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", - "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", "cpu": [ "x64" ], @@ -2432,9 +2145,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", - "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", "cpu": [ "x64" ], @@ -2450,9 +2163,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", - "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", "cpu": [ "arm64" ], @@ -2468,9 +2181,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", - "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", "cpu": [ "ia32" ], @@ -2486,9 +2199,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", - "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", "cpu": [ "x64" ], @@ -2504,24 +2217,27 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -2600,22 +2316,22 @@ } }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "deprecated": "Use @eslint/config-array instead", "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", + "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", "minimatch": "^3.0.5" }, @@ -2673,9 +2389,9 @@ "license": "ISC" }, "node_modules/@inquirer/figures": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.5.tgz", - "integrity": "sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.8.tgz", + "integrity": "sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==", "dev": true, "license": "MIT", "engines": { @@ -2701,9 +2417,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -2713,19 +2429,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -2849,36 +2552,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/types/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2996,6 +2669,18 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, + "node_modules/@noble/ciphers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.0.0.tgz", + "integrity": "sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@noble/curves": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", @@ -3213,26 +2898,15 @@ } }, "node_modules/@octokit/types": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", - "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.2.tgz", + "integrity": "sha512-WpbZfZUcZU77DrSW4wbsSgTPfKcp286q3ItaIgvSbBpZJlu6mnYXAkjZz6LVZPXkEvLIM8McanyZejKTYUHipA==", "dev": true, "license": "MIT", "dependencies": { "@octokit/openapi-types": "^22.2.0" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@pkgr/core": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", @@ -3291,9 +2965,9 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.25", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", - "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", "dev": true, "license": "MIT" }, @@ -3325,16 +2999,15 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", - "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz", + "integrity": "sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==", "dev": true, "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", "is-module": "^1.0.0", "resolve": "^1.22.1" }, @@ -3351,15 +3024,15 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", + "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -3374,9 +3047,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.3.tgz", - "integrity": "sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.4.tgz", + "integrity": "sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==", "cpu": [ "arm" ], @@ -3388,9 +3061,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.3.tgz", - "integrity": "sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.4.tgz", + "integrity": "sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==", "cpu": [ "arm64" ], @@ -3402,9 +3075,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.3.tgz", - "integrity": "sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.4.tgz", + "integrity": "sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==", "cpu": [ "arm64" ], @@ -3416,9 +3089,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.3.tgz", - "integrity": "sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.4.tgz", + "integrity": "sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==", "cpu": [ "x64" ], @@ -3430,9 +3103,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.3.tgz", - "integrity": "sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.4.tgz", + "integrity": "sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==", "cpu": [ "arm64" ], @@ -3444,9 +3117,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.3.tgz", - "integrity": "sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.4.tgz", + "integrity": "sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==", "cpu": [ "x64" ], @@ -3458,9 +3131,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.3.tgz", - "integrity": "sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.4.tgz", + "integrity": "sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==", "cpu": [ "arm" ], @@ -3472,9 +3145,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.3.tgz", - "integrity": "sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.4.tgz", + "integrity": "sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==", "cpu": [ "arm" ], @@ -3486,9 +3159,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.3.tgz", - "integrity": "sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.4.tgz", + "integrity": "sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==", "cpu": [ "arm64" ], @@ -3500,9 +3173,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.3.tgz", - "integrity": "sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.4.tgz", + "integrity": "sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==", "cpu": [ "arm64" ], @@ -3514,9 +3187,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.3.tgz", - "integrity": "sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.4.tgz", + "integrity": "sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==", "cpu": [ "ppc64" ], @@ -3528,9 +3201,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.3.tgz", - "integrity": "sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.4.tgz", + "integrity": "sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==", "cpu": [ "riscv64" ], @@ -3542,9 +3215,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.3.tgz", - "integrity": "sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.4.tgz", + "integrity": "sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==", "cpu": [ "s390x" ], @@ -3556,9 +3229,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.3.tgz", - "integrity": "sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.4.tgz", + "integrity": "sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==", "cpu": [ "x64" ], @@ -3569,9 +3242,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.3.tgz", - "integrity": "sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.4.tgz", + "integrity": "sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==", "cpu": [ "x64" ], @@ -3583,9 +3256,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.3.tgz", - "integrity": "sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.4.tgz", + "integrity": "sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==", "cpu": [ "arm64" ], @@ -3597,9 +3270,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.3.tgz", - "integrity": "sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.4.tgz", + "integrity": "sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==", "cpu": [ "ia32" ], @@ -3611,9 +3284,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.3.tgz", - "integrity": "sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.4.tgz", + "integrity": "sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==", "cpu": [ "x64" ], @@ -3624,6 +3297,12 @@ "win32" ] }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "license": "MIT" + }, "node_modules/@rushstack/eslint-patch": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", @@ -3631,9 +3310,9 @@ "license": "MIT" }, "node_modules/@scure/base": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", - "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" @@ -3673,19 +3352,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, "node_modules/@sindresorhus/merge-streams": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", @@ -3705,19 +3371,6 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "license": "MIT" }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, "node_modules/@tkey/common-types": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/@tkey/common-types/-/common-types-15.1.0.tgz", @@ -3739,6 +3392,30 @@ "@babel/runtime": "7.x" } }, + "node_modules/@tkey/common-types/node_modules/@toruslabs/torus.js": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.1.tgz", + "integrity": "sha512-sLaXA1/R8KTTjU4t+teL3PPaJr2+j01QLYn5IY/t5uTD+1G2nzzfVWpkMDYrk9EfQYw0u4aKJ1lT7j9uKafMlg==", + "license": "MIT", + "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@tkey/core": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/@tkey/core/-/core-15.1.0.tgz", @@ -3762,6 +3439,30 @@ "@babel/runtime": "7.x" } }, + "node_modules/@tkey/core/node_modules/@toruslabs/torus.js": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.1.tgz", + "integrity": "sha512-sLaXA1/R8KTTjU4t+teL3PPaJr2+j01QLYn5IY/t5uTD+1G2nzzfVWpkMDYrk9EfQYw0u4aKJ1lT7j9uKafMlg==", + "license": "MIT", + "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@tkey/service-provider-base": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/@tkey/service-provider-base/-/service-provider-base-15.1.0.tgz", @@ -3801,6 +3502,30 @@ "@babel/runtime": "7.x" } }, + "node_modules/@tkey/service-provider-torus/node_modules/@toruslabs/torus.js": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.1.tgz", + "integrity": "sha512-sLaXA1/R8KTTjU4t+teL3PPaJr2+j01QLYn5IY/t5uTD+1G2nzzfVWpkMDYrk9EfQYw0u4aKJ1lT7j9uKafMlg==", + "license": "MIT", + "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@tkey/share-serialization": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/@tkey/share-serialization/-/share-serialization-15.1.0.tgz", @@ -3858,6 +3583,30 @@ "ethereum-cryptography": "^2.1.3" } }, + "node_modules/@tkey/tss/node_modules/@toruslabs/torus.js": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.1.tgz", + "integrity": "sha512-sLaXA1/R8KTTjU4t+teL3PPaJr2+j01QLYn5IY/t5uTD+1G2nzzfVWpkMDYrk9EfQYw0u4aKJ1lT7j9uKafMlg==", + "license": "MIT", + "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", @@ -3884,6 +3633,19 @@ "npm": ">=9.x" } }, + "node_modules/@toruslabs/bs58": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@toruslabs/bs58/-/bs58-1.0.0.tgz", + "integrity": "sha512-osqIgm1MzEB6+fkaQeEUg4tuZXmhhXTn+K7+nZU7xDBcy+8Yr3eGNqJcQ4jds82g+dhkk2cBkge9sffv38iDQQ==", + "license": "MIT", + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@toruslabs/config": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@toruslabs/config/-/config-2.2.0.tgz", @@ -3898,9 +3660,9 @@ } }, "node_modules/@toruslabs/constants": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.0.0.tgz", - "integrity": "sha512-c0lrqxxiR0FL+XdtbX+77PWTeB8izFUrnPwkF2pjjfXlMJLukAWPLhALpmZmqlGmJApT8kJbMN7be2LurAGa1g==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.2.0.tgz", + "integrity": "sha512-Mb5EfYNSPyvvw5s1JXnpZwritCgp4NmLni1imTqrSKGV3yikYhUn1ufyLMAHGnBBgv4AuMIXBIe3EpJJ+SpA0g==", "license": "MIT", "engines": { "node": ">=18.x", @@ -3911,9 +3673,9 @@ } }, "node_modules/@toruslabs/customauth": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-20.3.0.tgz", - "integrity": "sha512-PxRd71s8WYvkp6Mpph8aUiU/vfq46adJOt+a/22JCRMOUMgiS1TzVAs8Eks5dpOS+FGjdowFLaJg+/UcBBoLrA==", + "version": "20.3.1", + "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-20.3.1.tgz", + "integrity": "sha512-oqzJh0WFf4rSwnXshEfh8c1ZqPhVjEvGuzI6LIUlot1OSrNituPLHWhzNW3OYw29+69jgolDBcOuSCN/Tq//Sw==", "license": "MIT", "dependencies": { "@chaitanyapotti/register-service-worker": "^1.7.4", @@ -3924,11 +3686,11 @@ "@toruslabs/http-helpers": "^7.0.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "^15.1.0", + "@toruslabs/torus.js": "^15.1.1", "base64url": "^3.0.1", "bowser": "^2.11.0", "deepmerge": "^4.3.1", - "eventemitter3": "^5.0.1", + "events": "^3.3.0", "loglevel": "^1.9.2" }, "engines": { @@ -3945,22 +3707,28 @@ } } }, - "node_modules/@toruslabs/customauth/node_modules/@toruslabs/session-manager": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.1.0.tgz", - "integrity": "sha512-VTaYjTTGTqpUm14YWRsSmY0Tt5z7evC0aOdVW7Ahw/jzyb1witNL4Va2+7XzunziEkLJS3luH+LkziHx67jyQg==", + "node_modules/@toruslabs/customauth/node_modules/@toruslabs/torus.js": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.1.tgz", + "integrity": "sha512-sLaXA1/R8KTTjU4t+teL3PPaJr2+j01QLYn5IY/t5uTD+1G2nzzfVWpkMDYrk9EfQYw0u4aKJ1lT7j9uKafMlg==", "license": "MIT", "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", - "@toruslabs/metadata-helpers": "^6.0.0" + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", "npm": ">=9.x" }, - "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.22.4" + "peerDependencies": { + "@babel/runtime": "7.x" } }, "node_modules/@toruslabs/eccrypto": { @@ -3977,9 +3745,9 @@ } }, "node_modules/@toruslabs/elliptic-wrapper": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.0.tgz", - "integrity": "sha512-h9H2GfLLihSCDJiaTiePLLsrW/i9xupmn8pLE7XaKNyHUlujVFGWyk/ySZK9rlHjVRhLddy4ylb59BCdP81KMg==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.1.tgz", + "integrity": "sha512-2IehQMK+OfRnJPcwNuM5b+je3+8XlPqjbQVPm85vjsSoliWO23G/2OK1635melTZYcjbxa+88l2m0wWuK/YTSg==", "license": "ISC", "dependencies": { "@toruslabs/config": "^2.0.2", @@ -3989,9 +3757,9 @@ } }, "node_modules/@toruslabs/eslint-config-typescript": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@toruslabs/eslint-config-typescript/-/eslint-config-typescript-3.3.3.tgz", - "integrity": "sha512-qq0xyyfgh4RoVszivGSHc3/mfwSoRl++MjAWEAvEDBUkmE1CRLz9QAcLBmPwpPf72M1DC4k5ey00wRVQwVnjKA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@toruslabs/eslint-config-typescript/-/eslint-config-typescript-3.3.4.tgz", + "integrity": "sha512-i1nowtYX9Yq+mCYrPj3vY/yoIKouJT7j+wqhrFoBF6el/3rDYQgz09cwdWlh7B+BGYeuJ+Nf9RSuC1bPc0egvg==", "license": "MIT", "dependencies": { "@rushstack/eslint-patch": "^1.10.4", @@ -4001,11 +3769,11 @@ "eslint-config-airbnb-typescript": "^18.0.0", "eslint-config-prettier": "^9.1.0", "eslint-config-problems": "^8.0.0", - "eslint-plugin-import": "^2.29.1", + "eslint-plugin-import": "^2.31.0", "eslint-plugin-mocha": "^10.5.0", - "eslint-plugin-n": "^17.10.1", + "eslint-plugin-n": "^17.11.1", "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-promise": "^7.0.0", + "eslint-plugin-promise": "^7.1.0", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-tsdoc": "^0.3.0" }, @@ -4246,15 +4014,15 @@ } }, "node_modules/@toruslabs/fetch-node-details": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.0.1.tgz", - "integrity": "sha512-cV/X8d97W9kU/ibycV/4rfkDSjl+MIgwbKhsVqvgDtoE1mdjMSeCxJTfEDgjxqzUcVlHjcbeUpzCe8qa/Gvs6A==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.2.0.tgz", + "integrity": "sha512-k14RazfY4wKIUtdpfrSoUJasRNp2EMgv6ky4bGT1HYMPGU2JUNhvb6XTw5ISxfMrZuk04dLOhC4/XOtynFeFmQ==", "license": "MIT", "dependencies": { - "@toruslabs/constants": "^14.0.0", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/fnd-base": "^14.2.0", "@toruslabs/http-helpers": "^7.0.0", - "loglevel": "^1.9.1" + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", @@ -4265,12 +4033,12 @@ } }, "node_modules/@toruslabs/fnd-base": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.0.0.tgz", - "integrity": "sha512-zaYrm/HHHU4Evj/Et1HrVT8hmMaUpVw3Rcx2Gvp1W5pWZybbdEVoa0uqIANYxcr/NH7PUIU3DoRbk+bXx0kkYg==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.2.0.tgz", + "integrity": "sha512-nqfcigOuz3pQJi+Q+tdCaDUVCaSUkGqqmw0bGnaKK2/PyXBlZhnEDzReM3aUbApJn3xitfrJEhnRvOJhzog/og==", "license": "MIT", "dependencies": { - "@toruslabs/constants": "^14.0.0" + "@toruslabs/constants": "^14.2.0" }, "engines": { "node": ">=18.x", @@ -4355,16 +4123,15 @@ } }, "node_modules/@toruslabs/rss-client": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@toruslabs/rss-client/-/rss-client-2.0.1.tgz", - "integrity": "sha512-EBqAX7LK8ZBy4fiGTGQhI3wVvLvfUyfwREbNkfAxP/iwevgCA2EKLXGWtVsvJj/wXF8HkfjqOcorVeHwP2vvWw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@toruslabs/rss-client/-/rss-client-2.0.2.tgz", + "integrity": "sha512-kmtl7KaxTOdrftxtv/hTzz6k2RJbVFq6oPs5Vg4u4iybdQYdRzyP1HqQ3wMu9ADhiItbZAg80VP4gOCCmjao4w==", "license": "MIT", "dependencies": { "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "bn.js": "^5.2.1", "elliptic": "^6.5.7", - "fetch": "^1.1.0", "loglevel": "^1.9.2" }, "engines": { @@ -4376,11 +4143,12 @@ } }, "node_modules/@toruslabs/session-manager": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.1.0.tgz", - "integrity": "sha512-VTaYjTTGTqpUm14YWRsSmY0Tt5z7evC0aOdVW7Ahw/jzyb1witNL4Va2+7XzunziEkLJS3luH+LkziHx67jyQg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.2.0.tgz", + "integrity": "sha512-t+EGFZhn8pxZ5Gjhxr99qNmK20zZD/RYEMRROBuwsETyy/QU17H6dKhqIb306GjmwUPkz2VKKTtJcOg9Ifijuw==", "license": "MIT", "dependencies": { + "@toruslabs/constants": "^14.1.1", "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "@toruslabs/metadata-helpers": "^6.0.0" @@ -4390,55 +4158,55 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.22.4" + "@rollup/rollup-linux-x64-gnu": "^4.24.4" } }, "node_modules/@toruslabs/torus-scripts": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@toruslabs/torus-scripts/-/torus-scripts-6.1.2.tgz", - "integrity": "sha512-G7L/FUmZZY/a11PaZSoJNLAcGmdm0UboqmhsCbeGjHY8rB0ecC/TnSu+MQzf9d51wnNCgxs+H3AQFWSi1O516g==", + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@toruslabs/torus-scripts/-/torus-scripts-6.1.6.tgz", + "integrity": "sha512-dS5A86VsW+h/8ETXYcGBzHmjwhIQoQrZ1RGMMKOgBXtVBgj1Ea4D34poKp0Cg+4dwCpAFce+wogqj/a4C9oZaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", + "@babel/core": "^7.26.0", "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-transform-class-properties": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-runtime": "^7.24.7", - "@babel/preset-env": "^7.25.2", - "@babel/preset-typescript": "^7.24.7", - "@babel/runtime": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.26.0", + "@babel/preset-typescript": "^7.26.0", + "@babel/runtime": "^7.26.0", "@rollup/plugin-babel": "^6.0.4", - "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-node-resolve": "^15.3.0", "@toruslabs/config": "^2.2.0", "assert": "^2.1.0", - "babel-loader": "^9.1.3", + "babel-loader": "^9.2.1", "browserify-zlib": "^0.2.0", "buffer": "^6.0.3", "chalk": "^5.3.0", "cliui": "^8.0.1", - "crypto-browserify": "^3.12.0", + "crypto-browserify": "^3.12.1", "deepmerge": "^4.3.1", "dotenv": "^16.4.5", "eslint-webpack-plugin": "^4.2.0", "fork-ts-checker-webpack-plugin": "^9.0.2", "https-browserify": "^1.0.0", - "listr2": "^8.2.4", + "listr2": "^8.2.5", "lodash.mergewith": "^4.6.2", "object.omit": "^3.0.0", "os-browserify": "^0.3.0", "process": "^0.11.10", - "release-it": "^17.6.0", + "release-it": "^17.10.0", "rimraf": "^6.0.1", - "rollup": "^4.19.1", + "rollup": "^4.24.4", "rxjs": "^7.8.1", "stream-browserify": "^3.0.0", "stream-http": "^3.2.0", - "typescript": "^5.5.4", - "update-notifier": "^7.2.0", + "typescript": "^5.6.3", + "update-notifier": "^7.3.1", "url": "^0.11.4", - "webpack": "^5.93.0", + "webpack": "^5.96.1", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", "webpack-node-externals": "^3.0.0", @@ -4455,35 +4223,41 @@ "eslint": "^8.x" } }, - "node_modules/@toruslabs/torus-scripts/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, + "node_modules/@toruslabs/torus.js": { + "version": "15.2.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.2.0-alpha.0.tgz", + "integrity": "sha512-W0HXmffYTbA9pFC3gdj6ON+FsmzJlSksT6hW5mDkRLZp1qSprYppjHnnnelq5n46yOs+290En8LP5s/U5viluw==", "license": "MIT", + "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" + }, "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "node": ">=18.x", + "npm": ">=9.x" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/torus.js": { - "resolved": "../torus.js", - "link": true - }, "node_modules/@toruslabs/tss-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-client/-/tss-client-3.1.0.tgz", - "integrity": "sha512-XhQG0lkbWS6KQ5mn9Mr+73c7HUE8RhbIPrkjZso2Bd9SJV4fwHgSLjDMPkvvTCBhrr3Fumw17akfL9tEvTLJZw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-client/-/tss-client-3.2.0.tgz", + "integrity": "sha512-hDJdKOUFN7UhvojoDIiVT1rsLcGjU5SdTJFcJlrKpVZxmB+NuMWkjJvZK/SoYY6mFTnyod7/NYTCsyfrIOagvg==", "license": "ISC", "dependencies": { - "@toruslabs/eccrypto": "^4.0.0", - "@types/chrome": "^0.0.268", + "@toruslabs/eccrypto": "^5.0.4", "bn.js": "^5.2.1", - "elliptic": "^6.5.4", - "ethereum-cryptography": "^2.1.3", - "socket.io-client": "^4.7.4" + "elliptic": "^6.5.7", + "ethereum-cryptography": "^3.0.0", + "socket.io-client": "^4.8.0" } }, "node_modules/@toruslabs/tss-client-util": { @@ -4495,23 +4269,81 @@ "bn.js": "^5.2.1" } }, - "node_modules/@toruslabs/tss-client/node_modules/@toruslabs/eccrypto": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/eccrypto/-/eccrypto-4.0.0.tgz", - "integrity": "sha512-Z3EINkbsgJx1t6jCDVIJjLSUEGUtNIeDjhMWmeDGOWcP/+v/yQ1hEvd1wfxEz4q5WqIHhevacmPiVxiJ4DljGQ==", - "license": "CC0-1.0", + "node_modules/@toruslabs/tss-client/node_modules/@noble/curves": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", + "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "license": "MIT", "dependencies": { - "elliptic": "^6.5.4" + "@noble/hashes": "1.5.0" }, "engines": { - "node": ">=18.x", - "npm": ">=9.x" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@noble/hashes": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@scure/bip32": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz", + "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.6.0", + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.7" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@scure/bip39": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz", + "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.8" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/ethereum-cryptography": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.0.0.tgz", + "integrity": "sha512-Ij7U9OgVZc4MAui8BttPCEaWUrAXy+eo2IbVfIxZyfzfFxMQrbIWXRUbrsRBqRrIhJ75T8P+KQRKpKTaG0Du8Q==", + "license": "MIT", + "dependencies": { + "@noble/ciphers": "1.0.0", + "@noble/curves": "1.6.0", + "@noble/hashes": "1.5.0", + "@scure/bip32": "1.5.0", + "@scure/bip39": "1.4.0" + }, + "engines": { + "node": "^14.21.3 || >=16", + "npm": ">=9" } }, "node_modules/@toruslabs/tss-dkls-lib": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-4.0.0.tgz", - "integrity": "sha512-XIYv4M6el0wlX/I4WEJjxDS/TcUKRrG/+PTljNumh3UrchfkNpm4uW4+d4aOHclAXbX42pi1SkRpz81+YM+Gsg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-4.1.0.tgz", + "integrity": "sha512-Iirs3uNigaYFSek/AqwSzsQovRzJaLVnmoGU5wC3/gpMTU9ZM4hLIconztRlSgfFmqcvxZWj+0JX1DnXyMmdXw==", "dev": true }, "node_modules/@toruslabs/tss-frost-client": { @@ -4566,31 +4398,21 @@ "license": "MIT" }, "node_modules/@types/bn.js": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", - "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", + "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/chai": { - "version": "4.3.19", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.19.tgz", - "integrity": "sha512-2hHHvQBVE2FiSK4eN0Br6snX9MtolHaTo/batnLjlGRhoQzlCL61iVpxoqO7SfFyOw+P/pwv+0zNHzKoGWz9Cw==", + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", "dev": true, "license": "MIT" }, - "node_modules/@types/chrome": { - "version": "0.0.268", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.268.tgz", - "integrity": "sha512-7N1QH9buudSJ7sI8Pe4mBHJr5oZ48s0hcanI9w3wgijAlv1OZNUZve9JR4x42dn5lJ5Sm87V1JNfnoh10EnQlA==", - "license": "MIT", - "dependencies": { - "@types/filesystem": "*", - "@types/har-format": "*" - } - }, "node_modules/@types/elliptic": { "version": "6.4.18", "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.18.tgz", @@ -4612,6 +4434,17 @@ "@types/json-schema": "*" } }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -4619,39 +4452,11 @@ "devOptional": true, "license": "MIT" }, - "node_modules/@types/filesystem": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz", - "integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==", - "license": "MIT", - "dependencies": { - "@types/filewriter": "*" - } - }, - "node_modules/@types/filewriter": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz", - "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==", - "license": "MIT" - }, - "node_modules/@types/har-format": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.15.tgz", - "integrity": "sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==", - "license": "MIT" - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { @@ -4698,9 +4503,9 @@ } }, "node_modules/@types/node": { - "version": "20.16.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.3.tgz", - "integrity": "sha512-/wdGiWRkMOm53gAsSyFMXFZHbVg7C6CbkrzHNpaHoYfsUWPg7m6ZRKtvQjgvQ9i8WT540a3ydRlRQbxjY30XxQ==", + "version": "20.17.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.9.tgz", + "integrity": "sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==", "license": "MIT", "dependencies": { "undici-types": "~6.19.2" @@ -4982,73 +4787,73 @@ "license": "ISC" }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, "license": "MIT", "dependencies": { @@ -5056,9 +4861,9 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5066,79 +4871,79 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -5204,9 +5009,9 @@ "license": "Apache-2.0" }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -5215,16 +5020,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -5235,9 +5030,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", - "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", "dependencies": { @@ -5374,16 +5169,16 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { @@ -5400,6 +5195,19 @@ "node": ">= 8" } }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -5549,9 +5357,9 @@ } }, "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -5628,9 +5436,9 @@ } }, "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", "dev": true, "license": "MIT", "dependencies": { @@ -5767,14 +5575,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", + "@babel/helper-define-polyfill-provider": "^0.6.3", "semver": "^6.3.1" }, "peerDependencies": { @@ -5796,13 +5604,13 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" + "@babel/helper-define-polyfill-provider": "^0.6.3" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5874,18 +5682,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/biskviit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/biskviit/-/biskviit-1.0.1.tgz", - "integrity": "sha512-VGCXdHbdbpEkFgtjkeoBN8vRlbj1ZRX2/mxhE8asCCRalUx2nBzOomLJv8Aw/nRt5+ccDb+tPKidg4XxcfGW4w==", - "license": "MIT", - "dependencies": { - "psl": "^1.1.7" - }, - "engines": { - "node": ">=1.0.0" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -5974,9 +5770,9 @@ } }, "node_modules/boxen/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -5986,32 +5782,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/boxen/node_modules/emoji-regex": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", @@ -6054,9 +5824,9 @@ } }, "node_modules/boxen/node_modules/type-fest": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.0.tgz", - "integrity": "sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.29.0.tgz", + "integrity": "sha512-RPYt6dKyemXJe7I6oNstcH24myUGSReicxcHTvCLgzm4e0n8y05dGvcGB15/SoPRBmhlMthWQ9pvKyL81ko8nQ==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -6159,14 +5929,18 @@ } }, "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, "node_modules/browserify-sign": { @@ -6202,9 +5976,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -6222,10 +5996,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -6280,19 +6054,6 @@ "dev": true, "license": "MIT" }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -6316,48 +6077,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -6400,9 +6119,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001655", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", - "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", + "version": "1.0.30001684", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", + "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", "dev": true, "funding": [ { @@ -6421,9 +6140,9 @@ "license": "CC-BY-4.0" }, "node_modules/chai": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", - "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, "license": "MIT", "dependencies": { @@ -6438,18 +6157,16 @@ } }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, "engines": { - "node": ">=4" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chardet": { @@ -6534,14 +6251,17 @@ } }, "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, "node_modules/cli-boxes": { @@ -6604,9 +6324,9 @@ } }, "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -6721,19 +6441,21 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/color-string": { @@ -6746,24 +6468,6 @@ "simple-swizzle": "^0.2.2" } }, - "node_modules/color/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -6852,13 +6556,13 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", - "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.23.3" + "browserslist": "^4.24.2" }, "funding": { "type": "opencollective", @@ -6911,9 +6615,9 @@ } }, "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -6987,55 +6691,30 @@ } }, "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">= 0.10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/data-uri-to-buffer": { @@ -7107,12 +6786,12 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -7136,35 +6815,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/deep-eql": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", @@ -7243,16 +6893,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -7356,9 +6996,9 @@ } }, "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -7403,9 +7043,9 @@ } }, "node_modules/dot-prop/node_modules/type-fest": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.0.tgz", - "integrity": "sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.29.0.tgz", + "integrity": "sha512-RPYt6dKyemXJe7I6oNstcH24myUGSReicxcHTvCLgzm4e0n8y05dGvcGB15/SoPRBmhlMthWQ9pvKyL81ko8nQ==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -7453,9 +7093,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", - "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "version": "1.5.67", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz", + "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==", "dev": true, "license": "ISC" }, @@ -7475,9 +7115,9 @@ } }, "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "license": "MIT" }, "node_modules/emoji-regex": { @@ -7487,26 +7127,17 @@ "dev": true, "license": "MIT" }, - "node_modules/encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha512-bl1LAgiQc4ZWr++pNYUdRe/alecaHFeHxIJ/pNciqGdKXghaTCOwKkbKp6ye7pKZGu/GcaSXFk8PBVhgs+dJdA==", - "license": "MIT", - "dependencies": { - "iconv-lite": "~0.4.13" - } - }, "node_modules/engine.io-client": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz", - "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.2.tgz", + "integrity": "sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.0.0" + "xmlhttprequest-ssl": "~2.1.1" } }, "node_modules/engine.io-parser": { @@ -7542,9 +7173,9 @@ } }, "node_modules/envinfo": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", - "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", "dev": true, "license": "MIT", "bin": { @@ -7578,9 +7209,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -7598,7 +7229,7 @@ "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.4", "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", + "globalthis": "^1.0.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", @@ -7614,10 +7245,10 @@ "is-string": "^1.0.7", "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", + "regexp.prototype.flags": "^1.5.3", "safe-array-concat": "^1.1.2", "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.9", @@ -7701,14 +7332,14 @@ } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -7718,9 +7349,9 @@ } }, "node_modules/esbuild": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", - "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -7732,30 +7363,30 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.1", - "@esbuild/android-arm": "0.23.1", - "@esbuild/android-arm64": "0.23.1", - "@esbuild/android-x64": "0.23.1", - "@esbuild/darwin-arm64": "0.23.1", - "@esbuild/darwin-x64": "0.23.1", - "@esbuild/freebsd-arm64": "0.23.1", - "@esbuild/freebsd-x64": "0.23.1", - "@esbuild/linux-arm": "0.23.1", - "@esbuild/linux-arm64": "0.23.1", - "@esbuild/linux-ia32": "0.23.1", - "@esbuild/linux-loong64": "0.23.1", - "@esbuild/linux-mips64el": "0.23.1", - "@esbuild/linux-ppc64": "0.23.1", - "@esbuild/linux-riscv64": "0.23.1", - "@esbuild/linux-s390x": "0.23.1", - "@esbuild/linux-x64": "0.23.1", - "@esbuild/netbsd-x64": "0.23.1", - "@esbuild/openbsd-arm64": "0.23.1", - "@esbuild/openbsd-x64": "0.23.1", - "@esbuild/sunos-x64": "0.23.1", - "@esbuild/win32-arm64": "0.23.1", - "@esbuild/win32-ia32": "0.23.1", - "@esbuild/win32-x64": "0.23.1" + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" } }, "node_modules/esbuild-register": { @@ -7795,13 +7426,15 @@ } }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/escodegen": { @@ -7827,16 +7460,17 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -7969,9 +7603,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.2.tgz", - "integrity": "sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "license": "MIT", "dependencies": { "debug": "^3.2.7" @@ -8016,34 +7650,36 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { @@ -8158,19 +7794,19 @@ } }, "node_modules/eslint-plugin-n": { - "version": "17.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.10.2.tgz", - "integrity": "sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw==", + "version": "17.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.14.0.tgz", + "integrity": "sha512-maxPLMEA0rPmRpoOlxEclKng4UpDe+N5BJS4t24I3UKnN109Qcivnfs37KMy84G0af3bxjog5lKctP5ObsvcTA==", "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "enhanced-resolve": "^5.17.0", - "eslint-plugin-es-x": "^7.5.0", - "get-tsconfig": "^4.7.0", - "globals": "^15.8.0", - "ignore": "^5.2.4", + "@eslint-community/eslint-utils": "^4.4.1", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "ignore": "^5.3.2", "minimatch": "^9.0.5", - "semver": "^7.5.3" + "semver": "^7.6.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8183,9 +7819,9 @@ } }, "node_modules/eslint-plugin-n/node_modules/globals": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", - "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", + "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", "license": "MIT", "engines": { "node": ">=18" @@ -8252,10 +7888,13 @@ } }, "node_modules/eslint-plugin-promise": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.1.0.tgz", - "integrity": "sha512-8trNmPxdAy3W620WKDpaS65NlM5yAumod6XeC4LOb+jxlkG4IVcp68c6dXY2ev+uT4U1PtG57YDV6EGAXN0GbQ==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.2.1.tgz", + "integrity": "sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==", "license": "ISC", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -8406,36 +8045,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -8451,15 +8060,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -8592,13 +8192,13 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.x" @@ -8707,11 +8307,11 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -8732,16 +8332,6 @@ "reusify": "^1.0.4" } }, - "node_modules/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-5O8TwrGzoNblBG/jtK4NFuZwNCkZX6s5GfRNOaGtm+QGJEuNakSC/i2RW0R93KX6E0jVjNXm6O3CRN4Ql3K+yA==", - "license": "MIT", - "dependencies": { - "biskviit": "1.0.1", - "encoding": "0.1.12" - } - }, "node_modules/fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", @@ -8905,9 +8495,9 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "license": "ISC" }, "node_modules/for-each": { @@ -9009,36 +8599,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -9097,16 +8657,6 @@ "node": ">=8" } }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.17" - } - }, "node_modules/formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -9220,9 +8770,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "dev": true, "license": "MIT", "engines": { @@ -9232,16 +8782,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -9292,9 +8832,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.0.tgz", - "integrity": "sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -9492,45 +9032,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", - "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -9569,13 +9070,12 @@ } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-property-descriptors": { @@ -9630,17 +9130,17 @@ } }, "node_modules/hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" }, "engines": { - "node": ">=4" + "node": ">= 0.10" } }, "node_modules/hash.js": { @@ -9693,13 +9193,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", @@ -9714,20 +9207,6 @@ "node": ">= 14" } }, - "node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -9760,9 +9239,9 @@ } }, "node_modules/husky": { - "version": "9.1.6", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz", - "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, "license": "MIT", "bin": { @@ -9779,6 +9258,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" @@ -9833,16 +9313,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -10054,36 +9524,6 @@ "node": ">=8" } }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/inquirer/node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -10284,6 +9724,21 @@ "dev": true, "license": "MIT" }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -10325,22 +9780,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "license": "MIT", - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -10353,19 +9792,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-core-module": { "version": "2.15.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", @@ -10449,6 +9875,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", + "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", @@ -10466,7 +9907,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -10568,6 +10008,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -10641,16 +10093,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -10699,6 +10141,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", @@ -10782,13 +10236,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "license": "MIT" - }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -10802,18 +10249,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "license": "MIT", - "dependencies": { + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "license": "MIT", + "dependencies": { "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-wsl": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", @@ -10870,9 +10345,9 @@ } }, "node_modules/jackspeak": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", - "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -10883,9 +10358,6 @@ }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jest-util": { @@ -10939,34 +10411,17 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-util/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/jest-util/node_modules/supports-color": { @@ -10998,32 +10453,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -11057,16 +10486,16 @@ "license": "MIT" }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -11226,9 +10655,9 @@ } }, "node_modules/ky": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ky/-/ky-1.7.1.tgz", - "integrity": "sha512-KJ/IXXkFhTDqxcN8wKqMXk1/UoOpc0UnOB6H7QcqlPInh/M2B5Mlj+i9exez1w4RSwJhNFmHiUDPriAYFwb5VA==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/ky/-/ky-1.7.2.tgz", + "integrity": "sha512-OzIvbHKKDpi60TnF9t7UUVAF1B4mcqc02z5PIvrm08Wyb+yOcz63GRvEuVxNT18a9E1SrNouhB4W2NNLeD7Ykg==", "dev": true, "license": "MIT", "engines": { @@ -11315,23 +10744,10 @@ "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/listr2": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", - "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11347,9 +10763,9 @@ } }, "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -11359,19 +10775,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/listr2/node_modules/emoji-regex": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", @@ -11603,36 +11006,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11667,9 +11040,9 @@ } }, "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -11679,19 +11052,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/log-update/node_modules/emoji-regex": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", @@ -11798,27 +11158,11 @@ } }, "node_modules/loupe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.1.tgz", - "integrity": "sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "node_modules/lru-cache": { "version": "5.1.1", @@ -11928,6 +11272,18 @@ "node": ">=8.6" } }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", @@ -11943,9 +11299,9 @@ } }, "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -11998,19 +11354,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -12059,9 +11402,9 @@ } }, "node_modules/mocha": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.7.3.tgz", - "integrity": "sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "dev": true, "license": "MIT", "dependencies": { @@ -12094,29 +11437,6 @@ "node": ">= 14.0.0" } }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/mocha/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -12130,29 +11450,6 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/mocha/node_modules/yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", @@ -12174,9 +11471,9 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/mute-stream": { @@ -12291,19 +11588,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", @@ -12334,9 +11618,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -12546,20 +11830,20 @@ } }, "node_modules/ora": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.0.1.tgz", - "integrity": "sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.1.0.tgz", + "integrity": "sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==", "dev": true, "license": "MIT", "dependencies": { "chalk": "^5.3.0", - "cli-cursor": "^4.0.0", + "cli-cursor": "^5.0.0", "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", "is-unicode-supported": "^2.0.0", "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.1", - "string-width": "^7.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", "strip-ansi": "^7.1.0" }, "engines": { @@ -12570,9 +11854,9 @@ } }, "node_modules/ora/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -12582,35 +11866,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/ora/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ora/node_modules/emoji-regex": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", @@ -12619,9 +11874,9 @@ "license": "MIT" }, "node_modules/ora/node_modules/is-unicode-supported": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", - "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, "license": "MIT", "engines": { @@ -12661,56 +11916,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/ora/node_modules/string-width": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", @@ -12779,16 +11984,6 @@ "node": ">=0.10.0" } }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -12883,9 +12078,9 @@ } }, "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, "license": "BlueOak-1.0.0" }, @@ -13029,9 +12224,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, "license": "ISC", "engines": { @@ -13075,19 +12270,20 @@ } }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -13224,9 +12420,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -13318,12 +12514,6 @@ "dev": true, "license": "MIT" }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "license": "MIT" - }, "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -13340,9 +12530,9 @@ } }, "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -13372,9 +12562,9 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -13407,19 +12597,6 @@ ], "license": "MIT" }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/rambda": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", @@ -13523,6 +12700,19 @@ "node": ">=8.10.0" } }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -13535,6 +12725,27 @@ "node": ">= 0.10" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", + "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "which-builtin-type": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -13543,9 +12754,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, "license": "MIT", "dependencies": { @@ -13572,15 +12783,15 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -13590,16 +12801,16 @@ } }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -13608,9 +12819,9 @@ } }, "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz", + "integrity": "sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA==", "dev": true, "license": "MIT", "dependencies": { @@ -13636,32 +12847,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/release-it": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/release-it/-/release-it-17.6.0.tgz", - "integrity": "sha512-EE34dtRPL7BHpYQC7E+zAU8kjkyxFHxLk5Iqnmn/5nGcjgOQu34Au29M2V9YvxiP3tZbIlEn4gItEzu7vAPRbw==", + "version": "17.10.0", + "resolved": "https://registry.npmjs.org/release-it/-/release-it-17.10.0.tgz", + "integrity": "sha512-00cXYEl7RFD5NnjXpwaH9JFjpwe8w3NcfUd4XPxrKQkszp1xppPo42zK9eSbxStKyPA5CVk2KmKPDPDiAKVJTA==", "dev": true, "funding": [ { @@ -13679,25 +12888,23 @@ "@octokit/rest": "20.1.1", "async-retry": "1.3.3", "chalk": "5.3.0", + "ci-info": "^4.0.0", "cosmiconfig": "9.0.0", - "execa": "8.0.1", + "execa": "8.0.0", "git-url-parse": "14.0.0", "globby": "14.0.2", - "got": "13.0.0", "inquirer": "9.3.2", - "is-ci": "3.0.1", "issue-parser": "7.0.1", "lodash": "4.17.21", "mime-types": "2.1.35", "new-github-release-url": "2.0.0", - "node-fetch": "3.3.2", "open": "10.1.0", - "ora": "8.0.1", + "ora": "8.1.0", "os-name": "5.1.0", "proxy-agent": "6.4.0", - "semver": "7.6.2", + "semver": "7.6.3", "shelljs": "0.8.5", - "update-notifier": "7.1.0", + "update-notifier": "7.3.1", "url-join": "5.0.0", "wildcard-match": "5.1.3", "yargs-parser": "21.1.1" @@ -13709,99 +12916,20 @@ "node": "^18.18.0 || ^20.9.0 || ^22.0.0" } }, - "node_modules/release-it/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/release-it/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/release-it/node_modules/boxen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/release-it/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/release-it/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "node_modules/release-it/node_modules/ci-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", + "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "license": "MIT", "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/release-it/node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" + "node": ">=8" } }, "node_modules/release-it/node_modules/cosmiconfig": { @@ -13831,29 +12959,30 @@ } } }, - "node_modules/release-it/node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "node_modules/release-it/node_modules/execa": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.0.tgz", + "integrity": "sha512-CTNS0BcKBcoOsawKBlpcKNmK4Kjuyz5jVLhf+PUsHGMqiKMVTa4cN3U7r7bRY8KTpfOGpXMo27fdy0dYVg2pqA==", "dev": true, "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=16.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/release-it/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, "node_modules/release-it/node_modules/globby": { "version": "14.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", @@ -13875,22 +13004,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/release-it/node_modules/is-in-ci": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-0.1.0.tgz", - "integrity": "sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-in-ci": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/release-it/node_modules/path-type": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", @@ -13905,9 +13018,9 @@ } }, "node_modules/release-it/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "bin": { @@ -13930,101 +13043,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/release-it/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/release-it/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/release-it/node_modules/update-notifier": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.1.0.tgz", - "integrity": "sha512-8SV3rIqVY6EFC1WxH6L0j55s0MO79MFBS1pivmInRJg3pCEDgWHBj1Q6XByTtCLOZIFA0f6zoG9ZWf2Ks9lvTA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^7.1.1", - "chalk": "^5.3.0", - "configstore": "^6.0.0", - "import-lazy": "^4.0.0", - "is-in-ci": "^0.1.0", - "is-installed-globally": "^1.0.0", - "is-npm": "^6.0.0", - "latest-version": "^9.0.0", - "pupa": "^3.1.0", - "semver": "^7.6.2", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/release-it/node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "dev": true, - "license": "MIT", - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/release-it/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -14061,13 +13079,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true, - "license": "MIT" - }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -14100,29 +13111,13 @@ "node": ">=4" } }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "license": "MIT", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/restore-cursor": { @@ -14257,9 +13252,9 @@ } }, "node_modules/rollup": { - "version": "4.27.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.3.tgz", - "integrity": "sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==", + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.4.tgz", + "integrity": "sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==", "dev": true, "license": "MIT", "dependencies": { @@ -14273,24 +13268,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.27.3", - "@rollup/rollup-android-arm64": "4.27.3", - "@rollup/rollup-darwin-arm64": "4.27.3", - "@rollup/rollup-darwin-x64": "4.27.3", - "@rollup/rollup-freebsd-arm64": "4.27.3", - "@rollup/rollup-freebsd-x64": "4.27.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.27.3", - "@rollup/rollup-linux-arm-musleabihf": "4.27.3", - "@rollup/rollup-linux-arm64-gnu": "4.27.3", - "@rollup/rollup-linux-arm64-musl": "4.27.3", - "@rollup/rollup-linux-powerpc64le-gnu": "4.27.3", - "@rollup/rollup-linux-riscv64-gnu": "4.27.3", - "@rollup/rollup-linux-s390x-gnu": "4.27.3", - "@rollup/rollup-linux-x64-gnu": "4.27.3", - "@rollup/rollup-linux-x64-musl": "4.27.3", - "@rollup/rollup-win32-arm64-msvc": "4.27.3", - "@rollup/rollup-win32-ia32-msvc": "4.27.3", - "@rollup/rollup-win32-x64-msvc": "4.27.3", + "@rollup/rollup-android-arm-eabi": "4.27.4", + "@rollup/rollup-android-arm64": "4.27.4", + "@rollup/rollup-darwin-arm64": "4.27.4", + "@rollup/rollup-darwin-x64": "4.27.4", + "@rollup/rollup-freebsd-arm64": "4.27.4", + "@rollup/rollup-freebsd-x64": "4.27.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.4", + "@rollup/rollup-linux-arm-musleabihf": "4.27.4", + "@rollup/rollup-linux-arm64-gnu": "4.27.4", + "@rollup/rollup-linux-arm64-musl": "4.27.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.4", + "@rollup/rollup-linux-riscv64-gnu": "4.27.4", + "@rollup/rollup-linux-s390x-gnu": "4.27.4", + "@rollup/rollup-linux-x64-gnu": "4.27.4", + "@rollup/rollup-linux-x64-musl": "4.27.4", + "@rollup/rollup-win32-arm64-msvc": "4.27.4", + "@rollup/rollup-win32-ia32-msvc": "4.27.4", + "@rollup/rollup-win32-x64-msvc": "4.27.4", "fsevents": "~2.3.2" } }, @@ -14410,6 +13405,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, "license": "MIT" }, "node_modules/schema-utils": { @@ -14478,35 +13474,6 @@ "semver": "bin/semver.js" } }, - "node_modules/semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -14748,19 +13715,6 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -14773,14 +13727,14 @@ } }, "node_modules/socket.io-client": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", - "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", + "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io-client": "~6.5.2", + "engine.io-client": "~6.6.1", "socket.io-parser": "~4.2.4" }, "engines": { @@ -15119,16 +14073,19 @@ "dev": true }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -15144,9 +14101,9 @@ } }, "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "license": "MIT", "dependencies": { "@pkgr/core": "^0.1.0", @@ -15169,9 +14126,9 @@ } }, "node_modules/terser": { - "version": "5.31.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", - "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -15222,16 +14179,6 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -15266,22 +14213,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -15308,16 +14239,6 @@ "node": ">=0.6.0" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -15341,9 +14262,9 @@ } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "license": "MIT", "engines": { "node": ">=16" @@ -15431,14 +14352,15 @@ } }, "node_modules/tsconfig-paths-webpack-plugin": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.1.0.tgz", - "integrity": "sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.2.0.tgz", + "integrity": "sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==", "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.7.0", + "tapable": "^2.2.1", "tsconfig-paths": "^4.1.2" }, "engines": { @@ -15478,36 +14400,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/tsconfig-paths-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -15522,9 +14414,9 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/type-check": { @@ -15586,9 +14478,9 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", + "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -15596,7 +14488,8 @@ "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.13", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -15606,17 +14499,17 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -15625,20 +14518,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -15670,9 +14553,9 @@ "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, "license": "MIT", "engines": { @@ -15694,9 +14577,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, "license": "MIT", "engines": { @@ -15726,22 +14609,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/universal-user-agent": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", @@ -15769,9 +14636,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -15789,8 +14656,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -15800,13 +14667,13 @@ } }, "node_modules/update-notifier": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.3.0.tgz", - "integrity": "sha512-nA5Zoy3rahYd/Lx1s6jZYHfrKKYOgw0kThkLdwgJtXEFsXqEbMnwdVNPT9D+HELlEXqTR7Iq8rjg/NjenGLIvg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.3.1.tgz", + "integrity": "sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "boxen": "^8.0.0", + "boxen": "^8.0.1", "chalk": "^5.3.0", "configstore": "^7.0.0", "is-in-ci": "^1.0.0", @@ -15824,19 +14691,6 @@ "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/update-notifier/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -15953,19 +14807,19 @@ } }, "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.5", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", @@ -16036,19 +14890,6 @@ "node": ">= 10" } }, - "node_modules/webpack-bundle-analyzer/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/webpack-bundle-analyzer/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -16265,10 +15106,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", + "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", + "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -16301,9 +15187,9 @@ } }, "node_modules/widest-line/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -16569,26 +15455,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -16605,52 +15471,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/ws": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", @@ -16686,9 +15512,9 @@ } }, "node_modules/xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", "engines": { "node": ">=0.4.0" } @@ -16721,9 +15547,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", "dev": true, "license": "ISC", "bin": { diff --git a/package.json b/package.json index 6822b52d..5a91af6a 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/session-manager": "^3.1.0", "@toruslabs/openlogin-utils": "^8.2.1", - "@toruslabs/torus.js": "file:../torus.js", + "@toruslabs/torus.js": "15.2.0-alpha.0", "@toruslabs/tss-client": "^3.1.0", "@toruslabs/tss-frost-client": "0.3.1", "@toruslabs/tss-frost-common": "^1.0.1", diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index ae7e60d8..c9cc6a75 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -476,7 +476,16 @@ export class Web3AuthMPCCoreKit implements ICoreKit { userInfo, signatures: persistSessionSigs ? this._getSignatures(loginResponse.sessionData.sessionTokenData) : [], }); - + const sp = this.tkey.serviceProvider; + if (!sp) { + throw new Error("Oauth Service provider is missing in tkey"); + } + if (!sp?.verifierId) { + sp.verifierId = userInfo.verifierId; + } + if (!sp?.verifierName) { + sp.verifierName = userInfo.aggregateVerifier || userInfo.verifier; + } await this.setupTkey(importTssKey); } From 1401cb174a6758cde550e046f331ebe740576f11 Mon Sep 17 00:00:00 2001 From: himanshu Date: Mon, 2 Dec 2024 11:22:50 +0530 Subject: [PATCH 12/37] 4.1.0-alpha.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 12e78e82..6f83ddb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.0.0-alpha.0", + "version": "4.1.0-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@web3auth/mpc-core-kit", - "version": "4.0.0-alpha.0", + "version": "4.1.0-alpha.0", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", diff --git a/package.json b/package.json index bc7fcac0..747b04be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.0.0-alpha.0", + "version": "4.1.0-alpha.0", "description": "MPC CoreKit SDK for web3Auth", "keywords": [ "web3Auth/mpc-core-kit", From 6b6330761188d2d05a03af6965becd6673463036 Mon Sep 17 00:00:00 2001 From: himanshu Date: Mon, 2 Dec 2024 14:30:25 +0530 Subject: [PATCH 13/37] example fixes --- demo/redirect-flow-example/package-lock.json | 4442 ++++++++++++++---- demo/redirect-flow-example/package.json | 8 +- demo/redirect-flow-example/src/App.tsx | 9 + demo/redirect-flow-example/src/index.tsx | 4 +- 4 files changed, 3503 insertions(+), 960 deletions(-) diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index 4db21182..7792d158 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "@tkey/common-types": "^15.1.0", + "@toruslabs/torus.js": "15.2.0-alpha.0", "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0", @@ -19,8 +20,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "file:../../", - "@web3auth/mpc-passkey-plugin": "file:../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin/", + "@web3auth/mpc-core-kit": "4.1.0-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.3-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", @@ -54,108 +55,6 @@ "url": "^0.11.4" } }, - "../..": { - "name": "@web3auth/mpc-core-kit", - "version": "4.0.0-alpha.0", - "license": "ISC", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "@tkey/core": "^15.1.0", - "@tkey/share-serialization": "^15.1.0", - "@tkey/storage-layer-torus": "^15.1.0", - "@tkey/tss": "^15.1.0", - "@toruslabs/constants": "^14.2.0", - "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.1", - "@toruslabs/fetch-node-details": "^14.2.0", - "@toruslabs/fnd-base": "^14.2.0", - "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/openlogin-utils": "^8.2.1", - "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "15.2.0-alpha.0", - "@toruslabs/tss-client": "^3.3.0-alpha.0", - "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", - "@toruslabs/tss-frost-common": "^1.0.1", - "bn.js": "^5.2.1", - "bowser": "^2.11.0", - "elliptic": "^6.5.7", - "loglevel": "^1.9.2" - }, - "devDependencies": { - "@babel/register": "^7.25.7", - "@noble/curves": "^1.6.0", - "@toruslabs/config": "^2.2.0", - "@toruslabs/eslint-config-typescript": "^3.3.3", - "@toruslabs/torus-scripts": "^6.1.2", - "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", - "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", - "@types/chai": "^4.3.16", - "@types/elliptic": "^6.4.18", - "@types/jsonwebtoken": "^9.0.7", - "@types/node": "^20.14.0", - "@typescript-eslint/eslint-plugin": "^6.7.0", - "chai": "^5.1.1", - "cross-env": "^7.0.3", - "dotenv": "^16.4.5", - "esbuild-register": "^3.6.0", - "eslint": "^8.56.0", - "husky": "^9.1.6", - "jsonwebtoken": "^9.0.2", - "lint-staged": "^15.2.10", - "mocha": "^10.7.3", - "node-fetch": "^3.3.2", - "prettier": "^3.3.3", - "rimraf": "^6.0.1", - "ts-node": "^10.9.2", - "tsconfig-paths": "^4.2.0", - "tsconfig-paths-webpack-plugin": "^4.1.0", - "tslib": "^2.7.0", - "typescript": "^5.6.3" - }, - "engines": { - "node": ">=20.x" - }, - "peerDependencies": { - "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", - "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", - "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0" - }, - "peerDependenciesMeta": { - "@toruslabs/tss-dkls-lib": { - "optional": true - }, - "@toruslabs/tss-frost-lib": { - "optional": true - }, - "@toruslabs/tss-frost-lib-bip340": { - "optional": true - } - } - }, - "../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin": { - "name": "@web3auth/mpc-passkey-plugin", - "version": "0.0.0", - "license": "ISC", - "dependencies": { - "@simplewebauthn/browser": "^11.0.0", - "@simplewebauthn/types": "^11.0.0", - "@toruslabs/eccrypto": "^5.0.4", - "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/http-helpers": "^7.0.0", - "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.2.tgz", - "@web3auth/auth": "^9.4.1", - "@web3auth/mpc-core-kit": "file:../../../mpc-core-kit", - "base64url": "^3.0.1", - "cbor-x": "^1.6.0", - "loglevel": "^1.9.2" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - } - }, "node_modules/@adraffy/ens-normalize": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", @@ -441,444 +340,229 @@ "node": ">=6.9.0" } }, + "node_modules/@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz", + "integrity": "sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "node_modules/@chaitanyapotti/register-service-worker": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/@chaitanyapotti/register-service-worker/-/register-service-worker-1.7.4.tgz", "integrity": "sha512-+u78X4ljCleLy1okQMtYLTXGLHdFQcwai822xu3oHRTviKEIVkQTMNhCmbYTCiP24thY6AbH9g+c6p2LNU0pnA==", "license": "MIT" }, - "node_modules/@esbuild/aix-ppc64": { + "node_modules/@esbuild/darwin-arm64": { "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", - "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", "cpu": [ - "ppc64" + "arm64" ], "license": "MIT", "optional": true, "os": [ - "aix" + "darwin" ], "peer": true, "engines": { "node": ">=18" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", - "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", - "cpu": [ - "arm" - ], + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, "engines": { - "node": ">=18" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", - "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, "engines": { - "node": ">=18" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", - "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], "peer": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=18" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", - "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "peer": true, - "engines": { - "node": ">=18" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", - "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "peer": true, + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=18" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", - "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=18" + "node": "*" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", - "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], "peer": true, "engines": { - "node": ">=18" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", - "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, + "node_modules/@ethereumjs/rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", + "integrity": "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" + }, "engines": { "node": ">=18" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", - "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, + "node_modules/@ethereumjs/util": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-9.1.0.tgz", + "integrity": "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^5.0.2", + "ethereum-cryptography": "^2.2.1" + }, "engines": { "node": ">=18" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", - "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "license": "Apache-2.0", "peer": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, "engines": { - "node": ">=18" + "node": ">=10.10.0" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", - "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", - "cpu": [ - "loong64" - ], + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "peer": true, - "engines": { - "node": ">=18" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", - "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=18" + "node": "*" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", - "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "license": "Apache-2.0", "peer": true, "engines": { - "node": ">=18" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", - "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", - "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", - "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", - "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", - "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", - "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", - "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", - "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", - "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", - "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@ethereumjs/rlp": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", - "integrity": "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==", - "license": "MPL-2.0", - "bin": { - "rlp": "bin/rlp.cjs" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@ethereumjs/util": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-9.1.0.tgz", - "integrity": "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==", - "license": "MPL-2.0", - "dependencies": { - "@ethereumjs/rlp": "^5.0.2", - "ethereum-cryptography": "^2.2.1" - }, - "engines": { - "node": ">=18" - } + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "license": "BSD-3-Clause", + "peer": true }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", @@ -939,6 +623,58 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@microsoft/tsdoc": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", + "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", + "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.15.0", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/@noble/ciphers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.0.0.tgz", + "integrity": "sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@noble/curves": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", @@ -979,7 +715,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -993,7 +728,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -1003,7 +737,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -1013,54 +746,22 @@ "node": ">= 8" } }, - "node_modules/@nx/nx-linux-x64-gnu": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.1.3.tgz", - "integrity": "sha512-RKNm7RnTgCSl2HstDb/qMKO9r8o81EUe+UZB5fgjNR89PB757iHUX30kM0xbkiRZui1vIkMAvWcNsidxBnGGfg==", - "cpu": [ - "x64" - ], + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">= 10" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.4.tgz", - "integrity": "sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.4.tgz", - "integrity": "sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true - }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.4.tgz", - "integrity": "sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "cpu": [ "arm64" ], @@ -1071,237 +772,40 @@ ], "peer": true }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.4.tgz", - "integrity": "sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "license": "MIT" }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.4.tgz", - "integrity": "sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "license": "MIT" }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.4.tgz", - "integrity": "sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==", - "cpu": [ - "x64" - ], + "node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.4.tgz", - "integrity": "sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==", - "cpu": [ - "arm" - ], + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.4.tgz", - "integrity": "sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.4.tgz", - "integrity": "sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.4.tgz", - "integrity": "sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.4.tgz", - "integrity": "sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.4.tgz", - "integrity": "sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.4.tgz", - "integrity": "sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.4.tgz", - "integrity": "sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.4.tgz", - "integrity": "sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.4.tgz", - "integrity": "sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.4.tgz", - "integrity": "sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.4.tgz", - "integrity": "sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", - "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.4.0", - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, "node_modules/@scure/bip32/node_modules/@noble/hashes": { "version": "1.4.0", @@ -1340,6 +844,21 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@simplewebauthn/browser": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@simplewebauthn/browser/-/browser-11.0.0.tgz", + "integrity": "sha512-KEGCStrl08QC2I561BzxqGiwoknblP6O1YW7jApdXLPtIqZ+vgJYAv8ssLCdm1wD8HGAHd49CJLkUF8X70x/pg==", + "license": "MIT", + "dependencies": { + "@simplewebauthn/types": "^11.0.0" + } + }, + "node_modules/@simplewebauthn/types": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@simplewebauthn/types/-/types-11.0.0.tgz", + "integrity": "sha512-b2o0wC5u2rWts31dTgBkAtSNKGX0cvL6h8QedNsKmj8O4QoLFQFR3DBVBUlpyVEhYKA+mXGUaXbcOc4JdQ3HzA==", + "license": "MIT" + }, "node_modules/@sindresorhus/merge-streams": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", @@ -1380,10 +899,129 @@ "@babel/runtime": "7.x" } }, + "node_modules/@tkey/core": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/core/-/core-15.1.0.tgz", + "integrity": "sha512-JaFprczHR8fBEw1LrwKs87ASgpZagxQ9VZ6lAfAAI8jEh1yhz8djh9l2wzJbaFuLEOQskh7GoxpKfgB+YtBSmw==", + "license": "MIT", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "@toruslabs/torus.js": "^15.1.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.5", + "ethereum-cryptography": "^2.1.3", + "json-stable-stringify": "^1.1.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@tkey/service-provider-base": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/service-provider-base/-/service-provider-base-15.1.0.tgz", + "integrity": "sha512-MruUxiWwyRczZ8KlhhGJ2TQ/p+VFPMOQZ089B5SIi7UsTOBMlzRqJWP3lM2fBSyQsfJCzpzXkj9a29ecpRZe0g==", + "license": "MIT", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.5" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@tkey/service-provider-torus": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/service-provider-torus/-/service-provider-torus-15.1.0.tgz", + "integrity": "sha512-7tA/1ALPo4ToXvwTwMj9OF0wh97S3p1sCeilwRcfyxBMJGpaDW8MSbiAbPqaSkK/DT3AFxlkHwAXWYYZ4+ZueQ==", + "license": "MIT", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@tkey/service-provider-base": "^15.1.0", + "@toruslabs/customauth": "^20.3.0", + "@toruslabs/torus.js": "^15.1.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.5" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@tkey/share-serialization": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/share-serialization/-/share-serialization-15.1.0.tgz", + "integrity": "sha512-n8jf6WDAWcWKFUr/nSnBURxX8vlXCQjJOfQUchiqvvUFlExeDqXqJq8I5icn2hjxKqANNcXVf1vKSvOCxPCAng==", + "license": "MIT", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "bn.js": "^5.2.1", + "ethereum-cryptography": "^2.2.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@tkey/storage-layer-torus": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/storage-layer-torus/-/storage-layer-torus-15.1.0.tgz", + "integrity": "sha512-ZRk1FclOEomd7KAE3evKc/4Nk9I//RW20Bq2UrSPyKGf5YeTbDTaglAK0GrcG5CPtCpVLqh348Bw6hvGzjArag==", + "license": "MIT", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@toruslabs/http-helpers": "^7.0.0", + "base64url": "3.0.1", + "bn.js": "^5.2.1", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@tkey/tss": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@tkey/tss/-/tss-15.1.0.tgz", + "integrity": "sha512-UcbJbWscIL83Zh1/i6M+X/xhN4EOimGV8JoWZ3D23Ji2pHPo8BgveUZA9i1DK4Y3YqqZ9aS8PvhSHt+KVnNluw==", + "license": "ISC", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@tkey/core": "^15.1.0", + "@tkey/service-provider-torus": "^15.1.0", + "@toruslabs/customauth": "^20.3.0", + "@toruslabs/rss-client": "^2.0.1", + "@toruslabs/torus.js": "^15.1.0", + "@types/bn.js": "^5.1.5", + "bn.js": "^5.2.1", + "elliptic": "^6.5.5", + "ethereum-cryptography": "^2.1.3" + } + }, "node_modules/@toruslabs/base-controllers": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-6.3.1.tgz", - "integrity": "sha512-7kqaoXL32xJnrGEb8Rd5V/WLjTovzKjRMg/Tw3NFYz5lxVLVf+ydK83hgAWp7fYRRjnUyZZ5aHyIbagTkj1NVQ==", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-6.3.2.tgz", + "integrity": "sha512-YnRAtEM9jVR71ZDPSJtb1P1biAz322hv9R3jKh7SttfI//JPvtw8UdSCCQjSF5cAWLqgOupqq15p+p9Ka0bSPA==", "license": "ISC", "dependencies": { "@ethereumjs/util": "^9.1.0", @@ -1436,6 +1074,19 @@ "@babel/runtime": "7.x" } }, + "node_modules/@toruslabs/config": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/config/-/config-2.2.0.tgz", + "integrity": "sha512-gH69an6qIVEP9W/YkPmroBrqoPfIf8aoBSGC6ZAcc4ihXDeyByXtdpThZ+wm9TSWMYsjewhZVstRAZeaE3zp9w==", + "license": "MIT", + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.16" + } + }, "node_modules/@toruslabs/constants": { "version": "14.2.0", "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.2.0.tgz", @@ -1497,6 +1148,49 @@ "npm": ">=9.x" } }, + "node_modules/@toruslabs/elliptic-wrapper": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.1.tgz", + "integrity": "sha512-2IehQMK+OfRnJPcwNuM5b+je3+8XlPqjbQVPm85vjsSoliWO23G/2OK1635melTZYcjbxa+88l2m0wWuK/YTSg==", + "license": "ISC", + "dependencies": { + "@toruslabs/config": "^2.0.2", + "@toruslabs/eslint-config-typescript": "^3.0.3", + "bn.js": "^5.2.1", + "elliptic": "^6.5.4" + } + }, + "node_modules/@toruslabs/eslint-config-typescript": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@toruslabs/eslint-config-typescript/-/eslint-config-typescript-3.3.4.tgz", + "integrity": "sha512-i1nowtYX9Yq+mCYrPj3vY/yoIKouJT7j+wqhrFoBF6el/3rDYQgz09cwdWlh7B+BGYeuJ+Nf9RSuC1bPc0egvg==", + "license": "MIT", + "dependencies": { + "@rushstack/eslint-patch": "^1.10.4", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^18.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-config-problems": "^8.0.0", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-mocha": "^10.5.0", + "eslint-plugin-n": "^17.11.1", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-promise": "^7.1.0", + "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-tsdoc": "^0.3.0" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "eslint": "^8.x", + "prettier": "^3.x", + "typescript": "^5.x" + } + }, "node_modules/@toruslabs/fetch-node-details": { "version": "14.2.0", "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.2.0.tgz", @@ -1585,18 +1279,15 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/secure-pub-sub": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/secure-pub-sub/-/secure-pub-sub-1.1.0.tgz", - "integrity": "sha512-OFN0Zsa37+c9aStHd4wzau+IYPY+gve9fBPDuPSIuS06cz/bov39DvCP0LaTQUKxK4eQMZENcPu6PeyBvQYQQA==", - "license": "MIT", + "node_modules/@toruslabs/openlogin-utils": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@toruslabs/openlogin-utils/-/openlogin-utils-8.2.1.tgz", + "integrity": "sha512-NSOtj61NZe7w9qbd92cYwMlE/1UwPGtDH02NfUjoEEc3p1yD5U2cLZjdSwsnAgjGNgRqVomXpND4hii12lI/ew==", + "license": "ISC", "dependencies": { - "@toruslabs/constants": "^14.1.1", - "@toruslabs/eccrypto": "^5.0.0", - "@toruslabs/http-helpers": "^7.0.0", - "@toruslabs/metadata-helpers": "^6.0.0", - "loglevel": "^1.9.1", - "socket.io-client": "^4.7.5" + "@toruslabs/constants": "^13.2.0", + "base64url": "^3.0.1", + "color": "^4.2.3" }, "engines": { "node": ">=18.x", @@ -1606,13 +1297,67 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/session-manager": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.2.0.tgz", - "integrity": "sha512-t+EGFZhn8pxZ5Gjhxr99qNmK20zZD/RYEMRROBuwsETyy/QU17H6dKhqIb306GjmwUPkz2VKKTtJcOg9Ifijuw==", + "node_modules/@toruslabs/openlogin-utils/node_modules/@toruslabs/constants": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-13.4.0.tgz", + "integrity": "sha512-CjmnMQ5Oj0bqSBGkhv7Xm3LciGJDHwe4AJ1LF6mijlP+QcCnUM5I6kVp60j7zZ/r0DT7nIEiuHHHczGpCZor0A==", "license": "MIT", - "dependencies": { - "@toruslabs/constants": "^14.1.1", + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@toruslabs/rss-client": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@toruslabs/rss-client/-/rss-client-2.0.2.tgz", + "integrity": "sha512-kmtl7KaxTOdrftxtv/hTzz6k2RJbVFq6oPs5Vg4u4iybdQYdRzyP1HqQ3wMu9ADhiItbZAg80VP4gOCCmjao4w==", + "license": "MIT", + "dependencies": { + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@toruslabs/secure-pub-sub": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/secure-pub-sub/-/secure-pub-sub-1.1.0.tgz", + "integrity": "sha512-OFN0Zsa37+c9aStHd4wzau+IYPY+gve9fBPDuPSIuS06cz/bov39DvCP0LaTQUKxK4eQMZENcPu6PeyBvQYQQA==", + "license": "MIT", + "dependencies": { + "@toruslabs/constants": "^14.1.1", + "@toruslabs/eccrypto": "^5.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "loglevel": "^1.9.1", + "socket.io-client": "^4.7.5" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@toruslabs/session-manager": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.2.0.tgz", + "integrity": "sha512-t+EGFZhn8pxZ5Gjhxr99qNmK20zZD/RYEMRROBuwsETyy/QU17H6dKhqIb306GjmwUPkz2VKKTtJcOg9Ifijuw==", + "license": "MIT", + "dependencies": { + "@toruslabs/constants": "^14.1.1", "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "@toruslabs/metadata-helpers": "^6.0.0" @@ -1648,9 +1393,9 @@ } }, "node_modules/@toruslabs/torus.js": { - "version": "15.1.1", - "resolved": "file:toruslabs-torus.js-15.1.3.tgz", - "integrity": "sha512-c4MGlbutISBA8IZd9tMuC5+WqnMv12oPpGvf/yxrR1u/YSnZLdd9obobBLgeyVQtlfM6H7GcvJoa8xFzK52ITQ==", + "version": "15.2.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.2.0-alpha.0.tgz", + "integrity": "sha512-W0HXmffYTbA9pFC3gdj6ON+FsmzJlSksT6hW5mDkRLZp1qSprYppjHnnnelq5n46yOs+290En8LP5s/U5viluw==", "license": "MIT", "dependencies": { "@toruslabs/bs58": "^1.0.0", @@ -1671,11 +1416,122 @@ "@babel/runtime": "7.x" } }, + "node_modules/@toruslabs/tss-client": { + "version": "3.3.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-client/-/tss-client-3.3.0-alpha.0.tgz", + "integrity": "sha512-osExXxucMAlQQnyYS9el870xeILPj1Cv7QFCy2Nk+NsJQ9DW9uK9F3/n9Do8mn5C8POOEyXSwrobxGdypN1MxQ==", + "license": "ISC", + "dependencies": { + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/tss-client-util": "^0.1.1", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^3.0.0", + "socket.io-client": "^4.8.0" + } + }, + "node_modules/@toruslabs/tss-client-util": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-client-util/-/tss-client-util-0.1.1.tgz", + "integrity": "sha512-ePhhn8DuYI0E07Aec7tGc6XbdbizytJBhU2NFwzQ70DsyHLy0UK1Q2EdtVqp2fm8Y+8ArScVq6HqRxPE2fd0CQ==", + "license": "ISC", + "dependencies": { + "bn.js": "^5.2.1" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@noble/curves": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", + "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.5.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@noble/hashes": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@scure/bip32": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz", + "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.6.0", + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.7" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@scure/bip39": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz", + "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.8" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/ethereum-cryptography": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.0.0.tgz", + "integrity": "sha512-Ij7U9OgVZc4MAui8BttPCEaWUrAXy+eo2IbVfIxZyfzfFxMQrbIWXRUbrsRBqRrIhJ75T8P+KQRKpKTaG0Du8Q==", + "license": "MIT", + "dependencies": { + "@noble/ciphers": "1.0.0", + "@noble/curves": "1.6.0", + "@noble/hashes": "1.5.0", + "@scure/bip32": "1.5.0", + "@scure/bip39": "1.4.0" + }, + "engines": { + "node": "^14.21.3 || >=16", + "npm": ">=9" + } + }, "node_modules/@toruslabs/tss-dkls-lib": { "version": "5.0.0-alpha.0", "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-5.0.0-alpha.0.tgz", "integrity": "sha512-htUWzL2JZoKTtw++WLdQ1AK3wPTe0yezv/twWjpQIzLFkkfoO9Urnl5n9S6jFx98Z1dDRJRBWSED9PSuqY/x7w==" }, + "node_modules/@toruslabs/tss-frost-client": { + "version": "1.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-client/-/tss-frost-client-1.0.0-alpha.0.tgz", + "integrity": "sha512-MvWl8Qt+/DIrNP+vqozYssXlWD1Ofo8jgRmUkiODuOew/wpePhIQv41XTcir7vdv2UU2SsG8N4L0FLU9O69Guw==", + "license": "ISC", + "dependencies": { + "@toruslabs/tss-client-util": "^0.1.1", + "@toruslabs/tss-frost-common": "^1.0.1", + "socket.io-client": "^4.7.2" + } + }, + "node_modules/@toruslabs/tss-frost-common": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-common/-/tss-frost-common-1.0.1.tgz", + "integrity": "sha512-WmunNSH9XOM/oHQ/CjsTCn4KN9eqxo4keTRV6Yf6roq/S5hzKjOoowWM86vpwPJ6mfa2Qho9bndE2CCS11nKwg==", + "license": "ISC" + }, "node_modules/@toruslabs/tss-frost-lib": { "version": "2.0.0-alpha.0", "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-2.0.0-alpha.0.tgz", @@ -1737,7 +1593,6 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -1768,7 +1623,7 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "dev": true, + "devOptional": true, "license": "MIT", "peer": true, "dependencies": { @@ -1823,20 +1678,26 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "license": "MIT" }, "node_modules/@types/jsrsasign": { - "version": "10.5.14", - "resolved": "https://registry.npmjs.org/@types/jsrsasign/-/jsrsasign-10.5.14.tgz", - "integrity": "sha512-lppSlfK6etu+cuKs40K4rg8As79PH6hzIB+v55zSqImbSH3SE6Fm8MBHCiI91cWlAP3Z4igtJK1VL3fSN09blQ==", + "version": "10.5.15", + "resolved": "https://registry.npmjs.org/@types/jsrsasign/-/jsrsasign-10.5.15.tgz", + "integrity": "sha512-3stUTaSRtN09PPzVWR6aySD9gNnuymz+WviNHoTb85dKu+BjaV4uBbWWGykBBJkfwPtcNZVfTn2lbX00U+yhpQ==", "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "18.19.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.66.tgz", - "integrity": "sha512-14HmtUdGxFUalGRfLLn9Gc1oNWvWh5zNbsyOLo5JV6WARSeN1QcEBKRnZm9QqNfrutgsl/hY4eJW63aZ44aBCg==", + "version": "18.19.67", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.67.tgz", + "integrity": "sha512-wI8uHusga+0ZugNp0Ol/3BqQfEcCCNfojtO6Oou9iVNGPTL6QNSdnUdqq85fRgIorLhLMuPIKpsN98QE9Nh+KQ==", "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -1879,6 +1740,210 @@ "@types/node": "*" } }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "license": "ISC", + "peer": true + }, "node_modules/@vitejs/plugin-react": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", @@ -1942,13 +2007,13 @@ } }, "node_modules/@web3auth/base": { - "version": "9.4.4", - "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.4.4.tgz", - "integrity": "sha512-tL5TxPzuJyIyoQBAKm7k1lWsdp2/i+FWShQiQJKf131FgE50akGzL/a/eCXf04qrggR5BEzEVDUz3DNwfprojQ==", + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.4.5.tgz", + "integrity": "sha512-ETyrRnsJIV9Xab9lkUL6EUVP1FKzal49yDFrZIOv1mtZhafhXNcmo5aOxLXF/LbUCDs37CereqQovujGUWzZXQ==", "license": "ISC", "dependencies": { - "@toruslabs/base-controllers": "^6.3.1", - "@toruslabs/constants": "^14.1.1", + "@toruslabs/base-controllers": "^6.3.2", + "@toruslabs/constants": "^14.2.0", "@toruslabs/http-helpers": "^7.0.0", "@web3auth/auth": "^9.5.3", "jwt-decode": "^4.0.0", @@ -1964,14 +2029,14 @@ } }, "node_modules/@web3auth/base-provider": { - "version": "9.4.4", - "resolved": "https://registry.npmjs.org/@web3auth/base-provider/-/base-provider-9.4.4.tgz", - "integrity": "sha512-eG+dNEfZOFWYbUBBYu7G5xmxtxS8wLqD6VE1sA4AqKXgTFKmDvijjeeWH/q7fUX5KA7bPMqMV5U22FPaeAMMwQ==", + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/@web3auth/base-provider/-/base-provider-9.4.5.tgz", + "integrity": "sha512-Q+1HnG0bQFOHNhiw0BnuRLKpOh3O/iicl1kp4K8TtUOQC/4JTsY0odehQ1phBOr1IxROTjmDl/QW3coST3CSVA==", "license": "ISC", "dependencies": { - "@toruslabs/base-controllers": "^6.3.1", + "@toruslabs/base-controllers": "^6.3.2", "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.4", + "@web3auth/base": "^9.4.5", "json-rpc-random-id": "^1.0.1" }, "engines": { @@ -1983,17 +2048,17 @@ } }, "node_modules/@web3auth/ethereum-mpc-provider": { - "version": "9.4.4", - "resolved": "https://registry.npmjs.org/@web3auth/ethereum-mpc-provider/-/ethereum-mpc-provider-9.4.4.tgz", - "integrity": "sha512-fImmpuK73mIS0pP8DFQ/ZwPyBNjD5xEjWMmy/WCIMibdwqPDkzAObxBqiQs2p4qaAxlGn4/E0fIoRY4fwpebfA==", + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/@web3auth/ethereum-mpc-provider/-/ethereum-mpc-provider-9.4.5.tgz", + "integrity": "sha512-2MoIt87RaW5DCmQEi/53yjIr+geWTSX0jCYJ9ELBMDT858gNV3du3rz4F3E8UMZGmLpD4PIgQOu4kMpiUpnDOQ==", "license": "ISC", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/base-controllers": "^6.3.1", + "@toruslabs/base-controllers": "^6.3.2", "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.4", - "@web3auth/base-provider": "^9.4.4", - "@web3auth/ethereum-provider": "^9.4.4", + "@web3auth/base": "^9.4.5", + "@web3auth/base-provider": "^9.4.5", + "@web3auth/ethereum-provider": "^9.4.5", "ethers": "^6.13.4" }, "engines": { @@ -2005,18 +2070,18 @@ } }, "node_modules/@web3auth/ethereum-provider": { - "version": "9.4.4", - "resolved": "https://registry.npmjs.org/@web3auth/ethereum-provider/-/ethereum-provider-9.4.4.tgz", - "integrity": "sha512-+vQ5I9cC63DI0/UGz3VgqIV0VlqaZG1Kp71Ir2hghSdFr33mxYq90wD2h8vKZ09d/N+LoK69YiSeNqqFEemsuw==", + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/@web3auth/ethereum-provider/-/ethereum-provider-9.4.5.tgz", + "integrity": "sha512-5oZKvZKtmTvInre4Z5flup3gG4vFDXf4PMf9/3ZZ/PBOUhDezW9T4/1K194IQ9QuyFHCZGBBJ5cDliBp6vonpA==", "license": "ISC", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/base-controllers": "^6.3.1", + "@toruslabs/base-controllers": "^6.3.2", "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.4", - "@web3auth/base-provider": "^9.4.4", + "@web3auth/base": "^9.4.5", + "@web3auth/base-provider": "^9.4.5", "assert": "^2.1.0", "bignumber.js": "^9.1.2", "bn.js": "^5.2.1", @@ -2032,37 +2097,104 @@ } }, "node_modules/@web3auth/mpc-core-kit": { - "resolved": "../..", - "link": true - }, - "node_modules/@web3auth/mpc-passkey-plugin": { - "resolved": "../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin", - "link": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "dev": true, - "license": "MIT", - "peer": true, + "version": "4.1.0-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.0-alpha.0.tgz", + "integrity": "sha512-xVCJFJdtazsyLE7aj6IAaTtLTg29+ybazeq2KBXM6iIX+2owNN9L2kG9gd7IY34UTE9151UQ9VfMOX4FVaz0PA==", + "license": "ISC", "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "@tkey/common-types": "^15.1.0", + "@tkey/core": "^15.1.0", + "@tkey/share-serialization": "^15.1.0", + "@tkey/storage-layer-torus": "^15.1.0", + "@tkey/tss": "^15.1.0", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/customauth": "^20.3.0", + "@toruslabs/elliptic-wrapper": "^0.1.1", + "@toruslabs/fetch-node-details": "^14.2.0", + "@toruslabs/fnd-base": "^14.2.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "@toruslabs/openlogin-utils": "^8.2.1", + "@toruslabs/session-manager": "^3.1.0", + "@toruslabs/torus.js": "15.2.0-alpha.0", + "@toruslabs/tss-client": "^3.3.0-alpha.0", + "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", + "@toruslabs/tss-frost-common": "^1.0.1", + "bn.js": "^5.2.1", + "bowser": "^2.11.0", + "elliptic": "^6.5.7", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=20.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0" + }, + "peerDependenciesMeta": { + "@toruslabs/tss-dkls-lib": { + "optional": true + }, + "@toruslabs/tss-frost-lib": { + "optional": true + }, + "@toruslabs/tss-frost-lib-bip340": { + "optional": true + } + } + }, + "node_modules/@web3auth/mpc-passkey-plugin": { + "version": "0.1.3-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.3-alpha.0.tgz", + "integrity": "sha512-TW+KvKYgf7J8j9IZkjEzMW9ghlJxShKOBBbLoi/ZF/mpIqjlwuIc5gsWku6gf7nu9NF1cipWeGOeRXonJjiYtA==", + "license": "ISC", + "dependencies": { + "@simplewebauthn/browser": "^11.0.0", + "@simplewebauthn/types": "^11.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/fetch-node-details": "^14.0.1", + "@toruslabs/http-helpers": "^7.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "@toruslabs/torus.js": "15.2.0-alpha.0", + "@web3auth/auth": "^9.4.1", + "base64url": "^3.0.1", + "cbor-x": "^1.6.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@web3auth/mpc-core-kit": "~4.1.0-alpha.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, "license": "MIT", "peer": true @@ -2262,7 +2394,6 @@ "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "devOptional": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -2271,6 +2402,16 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/aes-js": { "version": "4.0.0-beta.5", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", @@ -2281,7 +2422,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -2372,6 +2512,136 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0", + "peer": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asn1.js": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", @@ -2428,6 +2698,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -2494,11 +2770,19 @@ "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", "license": "MIT" }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -2749,6 +3033,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/camel-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", @@ -2761,9 +3055,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001684", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", - "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", + "version": "1.0.30001685", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001685.tgz", + "integrity": "sha512-e/kJN1EMyHQzgcMEEgoo+YTCO1NGCmIYHk5Qk8jT6AazWemS5QFKJ5ShCJlH3GZrNIdZofcNCEwZqbMjjKzmnA==", "funding": [ { "type": "opencollective", @@ -2780,6 +3074,37 @@ ], "license": "CC-BY-4.0" }, + "node_modules/cbor-extract": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz", + "integrity": "sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.1.1" + }, + "bin": { + "download-cbor-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@cbor-extract/cbor-extract-darwin-arm64": "2.2.0", + "@cbor-extract/cbor-extract-darwin-x64": "2.2.0", + "@cbor-extract/cbor-extract-linux-arm": "2.2.0", + "@cbor-extract/cbor-extract-linux-arm64": "2.2.0", + "@cbor-extract/cbor-extract-linux-x64": "2.2.0", + "@cbor-extract/cbor-extract-win32-x64": "2.2.0" + } + }, + "node_modules/cbor-x": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz", + "integrity": "sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==", + "license": "MIT", + "optionalDependencies": { + "cbor-extract": "^2.2.0" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2808,9 +3133,9 @@ } }, "node_modules/cipher-base": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.5.tgz", - "integrity": "sha512-xq7ICKB4TMHUx7Tz1L9O2SGKOhYMOTR32oir45Bq28/AQTpHogKgHcoYFSdRbMtddl+ozNXfXY9jWcgYKmde0w==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", "dev": true, "license": "MIT", "dependencies": { @@ -2885,6 +3210,18 @@ "node": ">= 12" } }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "license": "MIT" + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -3038,6 +3375,21 @@ "node-fetch": "^2.6.12" } }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "peer": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/crypto-browserify": { "version": "3.12.1", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", @@ -3102,33 +3454,91 @@ "dev": true, "license": "MIT" }, - "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-data-property": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT", + "peer": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", @@ -3173,6 +3583,16 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -3201,6 +3621,31 @@ "dev": true, "license": "MIT" }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -3291,9 +3736,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.65", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.65.tgz", - "integrity": "sha512-PWVzBjghx7/wop6n22vS2MLU8tKGd4Q91aCEGhG/TYmW6PP5OcSXcdnxTe1NNt0T66N8D6jxh4kC8UsdzOGaIw==", + "version": "1.5.67", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz", + "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==", "license": "ISC" }, "node_modules/elliptic": { @@ -3362,9 +3807,7 @@ "version": "5.17.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", - "dev": true, "license": "MIT", - "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -3383,6 +3826,66 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/es-abstract": { + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -3412,6 +3915,58 @@ "license": "MIT", "peer": true }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esbuild": { "version": "0.24.0", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", @@ -3461,11 +4016,579 @@ "node": ">=6" } }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "license": "MIT", + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-typescript": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz", + "integrity": "sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==", + "license": "MIT", + "dependencies": { + "eslint-config-airbnb-base": "^15.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^7.0.0", + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-problems": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-problems/-/eslint-config-problems-8.0.0.tgz", + "integrity": "sha512-bvZKVXwFe1pPmFNPc0KTr14K89GHo3H/EytD7Ig/MEmlyNEdqC8QlBguPcS/QWvOWDgVqkJiGwmmTljkAV/qpg==", + "license": "ISC", + "peerDependencies": { + "eslint": "^8.27.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", + "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.11.0", + "eslint-compat-utils": "^0.5.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-mocha": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz", + "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==", + "license": "MIT", + "dependencies": { + "eslint-utils": "^3.0.0", + "globals": "^13.24.0", + "rambda": "^7.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-mocha/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-n": { + "version": "17.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.14.0.tgz", + "integrity": "sha512-maxPLMEA0rPmRpoOlxEclKng4UpDe+N5BJS4t24I3UKnN109Qcivnfs37KMy84G0af3bxjog5lKctP5ObsvcTA==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.1", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "ignore": "^5.3.2", + "minimatch": "^9.0.5", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": ">=8.23.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "15.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", + "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-promise": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.2.1.tgz", + "integrity": "sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==", + "license": "ISC", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-simple-import-sort": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz", + "integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==", + "license": "MIT", + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-tsdoc": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.3.0.tgz", + "integrity": "sha512-0MuFdBrrJVBjT/gyhkP2BqpD0np1NxNLfQ38xXDlSs/KVVpKI2A6vN7jx2Rve/CyUsvOsMGwp9KKrinv7q9g3A==", + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.15.0", + "@microsoft/tsdoc-config": "0.17.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { @@ -3479,11 +4602,19 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "license": "BSD-2-Clause", - "peer": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, "node_modules/ethereum-cryptography": { @@ -3622,14 +4753,18 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT" }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "license": "Apache-2.0" + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -3646,7 +4781,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -3659,7 +4793,13 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "license": "MIT", "peer": true }, @@ -3680,17 +4820,28 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "license": "MIT", + "peer": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -3699,6 +4850,45 @@ "node": ">=8" } }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "license": "MIT", + "peer": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "license": "ISC", + "peer": true + }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -3708,20 +4898,12 @@ "is-callable": "^1.1.3" } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC", + "peer": true }, "node_modules/function-bind": { "version": "1.1.2", @@ -3732,6 +4914,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3760,11 +4969,61 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -3781,6 +5040,30 @@ "license": "BSD-2-Clause", "peer": true }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -3790,13 +5073,52 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz", + "integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==", "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3" + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3806,9 +5128,22 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/has-flag": { "version": "4.0.0", @@ -3832,10 +5167,13 @@ } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.1.0.tgz", + "integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==", "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, "engines": { "node": ">= 0.4" }, @@ -4033,22 +5371,139 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", + "peer": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "peer": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -4061,12 +5516,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT" - }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -4079,16 +5528,75 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", + "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -4108,7 +5616,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -4117,6 +5624,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -4133,16 +5652,129 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.0.tgz", + "integrity": "sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.0.tgz", + "integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "gopd": "^1.1.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.0.tgz", + "integrity": "sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", @@ -4164,12 +5796,59 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "license": "MIT" }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT" }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC", + "peer": true + }, "node_modules/isomorphic-ws": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", @@ -4251,12 +5930,31 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "license": "MIT" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "peer": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -4269,6 +5967,13 @@ "node": ">=6" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT", + "peer": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -4287,7 +5992,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, "license": "MIT", "peer": true }, @@ -4309,6 +6013,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "license": "MIT", + "peer": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -4409,6 +6120,30 @@ "node": ">=18" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "peer": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -4420,6 +6155,22 @@ "node": ">=6.11.5" } }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -4463,6 +6214,13 @@ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "license": "MIT" }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT", + "peer": true + }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", @@ -4537,7 +6295,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -4547,7 +6304,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -4615,6 +6371,30 @@ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "license": "MIT" }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -4640,6 +6420,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "license": "MIT" + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -4679,6 +6465,21 @@ } } }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", + "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -4712,7 +6513,6 @@ "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4764,6 +6564,69 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/oblivious-set": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.4.0.tgz", @@ -4782,6 +6645,24 @@ "wrappy": "1" } }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "license": "MIT", + "peer": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -4789,6 +6670,38 @@ "dev": true, "license": "MIT" }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -4807,6 +6720,19 @@ "tslib": "^2.0.3" } }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "peer": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parse-asn1": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", @@ -4843,6 +6769,51 @@ "dev": true, "license": "MIT" }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -4870,7 +6841,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -4917,6 +6887,44 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", @@ -5006,9 +7014,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -5033,7 +7039,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -5050,6 +7055,12 @@ ], "license": "MIT" }, + "node_modules/rambda": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", + "license": "MIT" + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -5127,12 +7138,51 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", + "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "which-builtin-type": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "license": "MIT" }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -5161,23 +7211,74 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -5190,9 +7291,9 @@ } }, "node_modules/rollup": { - "version": "4.27.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.4.tgz", - "integrity": "sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "license": "MIT", "peer": true, "dependencies": { @@ -5206,24 +7307,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.27.4", - "@rollup/rollup-android-arm64": "4.27.4", - "@rollup/rollup-darwin-arm64": "4.27.4", - "@rollup/rollup-darwin-x64": "4.27.4", - "@rollup/rollup-freebsd-arm64": "4.27.4", - "@rollup/rollup-freebsd-x64": "4.27.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.27.4", - "@rollup/rollup-linux-arm-musleabihf": "4.27.4", - "@rollup/rollup-linux-arm64-gnu": "4.27.4", - "@rollup/rollup-linux-arm64-musl": "4.27.4", - "@rollup/rollup-linux-powerpc64le-gnu": "4.27.4", - "@rollup/rollup-linux-riscv64-gnu": "4.27.4", - "@rollup/rollup-linux-s390x-gnu": "4.27.4", - "@rollup/rollup-linux-x64-gnu": "4.27.4", - "@rollup/rollup-linux-x64-musl": "4.27.4", - "@rollup/rollup-win32-arm64-msvc": "4.27.4", - "@rollup/rollup-win32-ia32-msvc": "4.27.4", - "@rollup/rollup-win32-x64-msvc": "4.27.4", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", "fsevents": "~2.3.2" } }, @@ -5231,7 +7332,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -5261,6 +7361,24 @@ "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -5281,6 +7399,23 @@ ], "license": "MIT" }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -5383,6 +7518,21 @@ "node": ">= 0.4" } }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -5396,18 +7546,40 @@ "dev": true, "license": "(MIT AND BSD-3-Clause)", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "peer": true, + "dependencies": { + "shebang-regex": "^3.0.0" }, - "bin": { - "sha.js": "bin.js" + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -5431,6 +7603,15 @@ "is-arrayish": "^0.3.1" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/socket.io-client": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", @@ -5553,11 +7734,59 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -5566,6 +7795,28 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5578,11 +7829,38 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -5670,11 +7948,17 @@ "devOptional": true, "license": "MIT" }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT", + "peer": true + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -5689,6 +7973,18 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT" }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-custom-error": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz", @@ -5698,12 +7994,135 @@ "node": ">=14.0.0" } }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", + "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", @@ -5735,6 +8154,21 @@ "node": ">=14.17" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -5797,9 +8231,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -5853,9 +8285,9 @@ "license": "MIT" }, "node_modules/vite": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.0.tgz", - "integrity": "sha512-Q2+5yQV79EdnpbNxjD3/QHVMCBaQ3Kpd4/uL51UGuh38bIIM+s4o3FqyCzRvTRwFb+cWIUeZvaWwS9y2LD2qeQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.2.tgz", + "integrity": "sha512-XdQ+VsY2tJpBsKGs0wf3U/+azx8BBpYRHFAyKm5VeEZNOJZRB63q7Sc8Iup3k0TrN3KO6QgyzFf+opSbfY1y0g==", "license": "MIT", "peer": true, "dependencies": { @@ -6414,10 +8846,87 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", + "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", + "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -6433,6 +8942,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -6484,6 +9003,19 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "license": "ISC" }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zod": { "version": "3.23.8", "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index 16615cf9..64fafcb4 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -14,8 +14,9 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "file:../../", - "@web3auth/mpc-passkey-plugin": "file:../../../mpc-core-kit-plugins/packages/mpc-passkey-plugin/", + "@web3auth/mpc-core-kit": "4.1.0-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.3-alpha.0", + "@toruslabs/torus.js": "15.2.0-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", @@ -52,6 +53,9 @@ "react-app/jest" ] }, + "overrides": { + "@toruslabs/torus.js": "15.2.0-alpha.0" + }, "devDependencies": { "@types/eccrypto": "^1.1.6", "@types/elliptic": "^6.4.18", diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index d6890402..ccadb8a4 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -122,6 +122,8 @@ function App() { // Example config to handle redirect result manually if (newCoreKitInstance.status === COREKIT_STATUS.NOT_INITIALIZED) { await newCoreKitInstance.init({ handleRedirectResult: false, rehydrate }); + debugger + await passkeyPlugin.initWithMpcCoreKit(newCoreKitInstance); if (window.location.hash.includes("#state")) { await newCoreKitInstance.handleRedirectResult(); } @@ -305,6 +307,7 @@ function App() { throw new Error("coreKitInstance not found"); } await coreKitInstance.logout(); + await passkeyPlugin.logout(); // TODO: remove this after adding event emitter in mpc core kit uiConsole("Log out"); setProvider(null); setCoreKitStatus(coreKitInstance.status); @@ -604,6 +607,7 @@ function App() { if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(); } + debugger; setCoreKitStatus(coreKitInstance.status); }; const listPasskeys = async () => { @@ -627,6 +631,11 @@ function App() { uiConsole("Strict Passkey Auth Enabled") }; const disableStrictPasskey = async () => { + const isEnabled = await passkeyPlugin.isStrictPasskeyEnabled() + if (!isEnabled) { + uiConsole("Strict Passkey Auth is not enabled") + return + } if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } diff --git a/demo/redirect-flow-example/src/index.tsx b/demo/redirect-flow-example/src/index.tsx index c333ebd2..0b480ef8 100644 --- a/demo/redirect-flow-example/src/index.tsx +++ b/demo/redirect-flow-example/src/index.tsx @@ -7,7 +7,5 @@ import App from "./App"; const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement); root.render( - - - + ); From a86878b8d2ce38ba3d5cdb69a8906b1b358d8657 Mon Sep 17 00:00:00 2001 From: himanshu Date: Mon, 2 Dec 2024 14:30:36 +0530 Subject: [PATCH 14/37] remove debugger --- demo/redirect-flow-example/src/App.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index ccadb8a4..728721ab 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -607,7 +607,6 @@ function App() { if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(); } - debugger; setCoreKitStatus(coreKitInstance.status); }; const listPasskeys = async () => { From a1f814951e2eb5975f225874d2414d0b89878ac2 Mon Sep 17 00:00:00 2001 From: himanshu Date: Mon, 2 Dec 2024 15:38:33 +0530 Subject: [PATCH 15/37] browser support check added --- demo/redirect-flow-example/src/App.tsx | 87 +++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 2 deletions(-) diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index 728721ab..b0d6b0b7 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -24,12 +24,74 @@ import { tssLib as tssLibDkls } from "@toruslabs/tss-dkls-lib"; import{ tssLib as tssLibFrost } from "@toruslabs/tss-frost-lib"; import{ tssLib as tssLibFrostBip340 } from "@toruslabs/tss-frost-lib-bip340"; +import bowser from "bowser"; + + + import "./App.css"; import jwt, { Algorithm } from "jsonwebtoken"; import { flow } from "./flow"; type TssLib = typeof tssLibDkls | typeof tssLibFrost | typeof tssLibFrostBip340; +const PASSKEYS_ALLOWED_MAP = [bowser.OS_MAP.iOS, bowser.OS_MAP.MacOS, bowser.OS_MAP.Android, bowser.OS_MAP.Windows]; + +const getWindowsVersion = (osVersion: string) => { + const windowsVersionRegex = /NT (\d+\.\d+)/; + const match = osVersion.match(windowsVersionRegex); + if (match) return parseInt(match[1], 10); + return 0; +}; + +const checkIfOSIsSupported = (osName: string, osVersion: string) => { + if (!PASSKEYS_ALLOWED_MAP.includes(osName)) return false; + if (osName === bowser.OS_MAP.MacOS) return true; + switch (osName) { + case bowser.OS_MAP.iOS: { + const version = parseInt(osVersion.split(".")[0], 10); + return version >= 16; + } + case bowser.OS_MAP.Android: { + const version = parseInt(osVersion.split(".")[0], 10); + return version >= 9; + } + case bowser.OS_MAP.Windows: { + const version = getWindowsVersion(osVersion); + return version >= 10; + } + default: + return false; + } +}; + +export function shouldSupportPasskey(): { isBrowserSupported: boolean; isOsSupported: boolean; supportedBrowser?: Record } { + const browser = bowser.getParser(navigator.userAgent); + const osDetails = browser.parseOS(); + if (!osDetails) return { isBrowserSupported: false, isOsSupported: false }; + const osName = osDetails.name || ""; + const result = checkIfOSIsSupported(osName, osDetails.version || ""); + if (!result) return { isBrowserSupported: false, isOsSupported: false }; + const browserData: Record> = { + iOS: { + safari: ">=16", + chrome: ">=108", + }, + macOS: { + safari: ">=16", + chrome: ">=108", + firefox: ">=122", + }, + Android: { + chrome: ">=108", + }, + Windows: { + edge: ">=108", + chrome: ">=108", + }, + }; + const isBrowserSupported = browser.satisfies({ ...browserData }) || false; + return { isBrowserSupported, isOsSupported: true, supportedBrowser: browserData[osName] }; +} const uiConsole = (...args: any[]): void => { const el = document.querySelector("#console>p"); if (el) { @@ -52,7 +114,9 @@ const DEFAULT_CHAIN_CONFIG: CustomChainConfig = { }; -const passkeyPlugin = new PasskeysPlugin(); +const passkeyPlugin = new PasskeysPlugin({ + baseURL: "https://testing-mpc-passkeys.web3auth.io/api/v1" +}); const privateKey = "MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCCD7oLrcKae+jVZPGx52Cb/lKhdKxpXjl9eGNa1MlY57A=="; const jwtPrivateKey = `-----BEGIN PRIVATE KEY-----\n${privateKey}\n-----END PRIVATE KEY-----`; @@ -122,7 +186,6 @@ function App() { // Example config to handle redirect result manually if (newCoreKitInstance.status === COREKIT_STATUS.NOT_INITIALIZED) { await newCoreKitInstance.init({ handleRedirectResult: false, rehydrate }); - debugger await passkeyPlugin.initWithMpcCoreKit(newCoreKitInstance); if (window.location.hash.includes("#state")) { await newCoreKitInstance.handleRedirectResult(); @@ -593,6 +656,11 @@ function App() { if (!passkeyPlugin) { throw new Error("passkeyPlugin is not set"); } + const result = shouldSupportPasskey(); + if (!result.isBrowserSupported) { + uiConsole("Browser not supported"); + return; + } await passkeyPlugin.registerPasskey() }; @@ -603,6 +671,11 @@ function App() { if (!passkeyPlugin) { throw new Error("passkeyPlugin is not set"); } + const result = shouldSupportPasskey(); + if (!result.isBrowserSupported) { + uiConsole("Browser not supported"); + return; + } await passkeyPlugin.authenticateWithPasskey() if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(); @@ -626,6 +699,11 @@ function App() { if (!passkeyPlugin) { throw new Error("passkeyPlugin is not set"); } + const result = shouldSupportPasskey(); + if (!result.isBrowserSupported) { + uiConsole("Browser not supported"); + return; + } await passkeyPlugin.enableStrictPasskeyAuth() uiConsole("Strict Passkey Auth Enabled") }; @@ -641,6 +719,11 @@ function App() { if (!passkeyPlugin) { throw new Error("passkeyPlugin is not set"); } + const result = shouldSupportPasskey(); + if (!result.isBrowserSupported) { + uiConsole("Browser not supported"); + return; + } await passkeyPlugin.disableStrictPasskeyAuth() uiConsole("Strict Passkey Auth Disabled") }; From 3aab39ba509e97d8bf4a356b31e77ec314c843d2 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 10:16:50 +0530 Subject: [PATCH 16/37] 4.1.1-alpha.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6f83ddb6..b5494bab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.0-alpha.0", + "version": "4.1.1-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@web3auth/mpc-core-kit", - "version": "4.1.0-alpha.0", + "version": "4.1.1-alpha.0", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", diff --git a/package.json b/package.json index 747b04be..a9c6d1b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.0-alpha.0", + "version": "4.1.1-alpha.0", "description": "MPC CoreKit SDK for web3Auth", "keywords": [ "web3Auth/mpc-core-kit", From 94044efec984bc70f11960b0394d973b0cd49644 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 10:37:08 +0530 Subject: [PATCH 17/37] expose config on context --- src/index.ts | 1 + src/interfaces.ts | 288 +++++++++++++++++++++---------------------- src/mpcCoreKit.ts | 1 + src/plugins/index.ts | 2 + 4 files changed, 148 insertions(+), 144 deletions(-) create mode 100644 src/plugins/index.ts diff --git a/src/index.ts b/src/index.ts index 3e41424a..3a4bd8d6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,5 +2,6 @@ export * from "./constants"; export * from "./helper"; export * from "./interfaces"; export * from "./mpcCoreKit"; +export * from "./plugins"; export * from "./utils"; export { factorKeyCurve } from "@tkey/tss"; diff --git a/src/interfaces.ts b/src/interfaces.ts index e3086955..7d14c339 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -187,149 +187,6 @@ export interface Web3AuthState { factorKey?: BN; } -export interface IContext { - status: COREKIT_STATUS; - state: Web3AuthState; - sessionId: string; - serviceProvider: TSSTorusServiceProvider | null; - updateState: (newState: Partial) => void; - getUserInfo: () => UserInfo; - logout: () => Promise; - setupTkey: (params?: { - providedImportKey?: string; - sfaLoginResponse?: TorusKey | TorusLoginResponse | TorusAggregateLoginResponse; - userInfo?: UserInfo; - importingSFAKey?: boolean; - persistSessionSigs?: boolean; - }) => Promise; - setCustomSessionSigGenerator: (sessionSigGenerator: ISessionSigGenerator) => void; -} - -export interface ICoreKit { - /** - * The tKey instance, if initialized. - * TKey is the core module on which this wrapper SDK sits for easy integration. - **/ - tKey: TKeyTSS | null; - - /** - * Status of the current MPC Core Kit Instance - **/ - status: COREKIT_STATUS; - - /** - * The current sdk state. - */ - state: Web3AuthState; - - /** - * The current session id. - */ - sessionId: string; - - getContext(): IContext; - /** - * The function used to initailise the state of MPCCoreKit - * Also is useful to resume an existing session. - * @param initParams - Contains flag for handleRedirectResult. Default is true. - */ - init(initParams?: InitParams): Promise; - - /** - * Login using OAuth flow and initialize all relevant components. - * @param loginParams - Parameters for OAuth-based Login. - */ - loginWithOAuth(loginParams: OAuthLoginParams): Promise; - - /** - * Login using JWT Token and initialize all relevant components. - * @param loginParams - Parameters for JWT-based Login. - */ - loginWithJWT(loginParams: JWTLoginParams): Promise; - - /** - * Enable MFA for the user. Deletes the Cloud factor and generates a new - * factor key and a backup factor key. Recommended for Non Custodial Flow. - * Stores the factor key in browser storage and returns the backup factor key. - * - * ** NOTE before enableMFA, you will need to commitChanges if manualSync is true. - * - * @param enableMFAParams - Parameters for recovery factor for MFA. - * @param recoveryFactor - Default is true. If false, recovery factor will NOT be created. - * @returns The backup factor key if if recoveryFacort is true else empty string. - */ - enableMFA(enableMFAParams: EnableMFAParams, recoveryFactor?: boolean): Promise; - - /** - * Second step for login where the user inputs their factor key. - * @param factorKey - A BN used for encrypting your Device/ Recovery TSS Key - * Share. You can generate it using `generateFactorKey()` function or use an - * existing one. - */ - inputFactorKey(factorKey: BN): Promise; - - /** - * Returns the current Factor Key and TssShareType in MPC Core Kit State - **/ - getCurrentFactorKey(): IFactorKey; - - /** - * Creates a new factor for authentication. Generates and returns a new factor - * key if no factor key is provided in `params`. - * @param createFactorParams - Parameters for creating a new factor. - * @returns The factor key. - */ - createFactor(createFactorParams: CreateFactorParams): Promise; - - /** - * Deletes the factor identified by the given public key, including all - * associated metadata. - * @param factorPub - The public key of the factor to delete. - */ - deleteFactor(factorPub: TkeyPoint): Promise; - - /** - * Logs out the user, terminating the session. - */ - logout(): Promise; - - /** - * Get user information provided by the OAuth provider. - */ - getUserInfo(): UserInfo; - - /** - * Get information about how the keys of the user is managed according to the information in the metadata server. - */ - getKeyDetails(): MPCKeyDetails; - - getSessionSignatures(): Promise; - - setCustomSessionSigGenerator(sessionSigGenerator: ISessionSigGenerator): void; - - /** - * Commit the changes made to the user's account when in manual sync mode. - */ - commitChanges(): Promise; - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Exports the private key scalar for the current account index. - * - * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. - */ - _UNSAFE_exportTssKey(): Promise; - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Attempts to export the ed25519 private key seed. Only works if import key - * flow has been used. - */ - _UNSAFE_exportTssEd25519Seed(): Promise; -} - export type WEB3AUTH_NETWORK_TYPE = (typeof WEB3AUTH_NETWORK)[keyof typeof WEB3AUTH_NETWORK]; export type USER_PATH_TYPE = (typeof USER_PATH)[keyof typeof USER_PATH]; @@ -476,9 +333,152 @@ export interface Web3AuthOptions { */ useClientGeneratedTSSKey?: boolean; } - export type Web3AuthOptionsWithDefaults = Required; +export interface IContext { + config: Web3AuthOptionsWithDefaults; + status: COREKIT_STATUS; + state: Web3AuthState; + sessionId: string; + serviceProvider: TSSTorusServiceProvider | null; + updateState: (newState: Partial) => void; + getUserInfo: () => UserInfo; + logout: () => Promise; + setupTkey: (params?: { + providedImportKey?: string; + sfaLoginResponse?: TorusKey | TorusLoginResponse | TorusAggregateLoginResponse; + userInfo?: UserInfo; + importingSFAKey?: boolean; + persistSessionSigs?: boolean; + }) => Promise; + setCustomSessionSigGenerator: (sessionSigGenerator: ISessionSigGenerator) => void; +} + +export interface ICoreKit { + /** + * The tKey instance, if initialized. + * TKey is the core module on which this wrapper SDK sits for easy integration. + **/ + tKey: TKeyTSS | null; + + /** + * Status of the current MPC Core Kit Instance + **/ + status: COREKIT_STATUS; + + /** + * The current sdk state. + */ + state: Web3AuthState; + + /** + * The current session id. + */ + sessionId: string; + + getContext(): IContext; + /** + * The function used to initailise the state of MPCCoreKit + * Also is useful to resume an existing session. + * @param initParams - Contains flag for handleRedirectResult. Default is true. + */ + init(initParams?: InitParams): Promise; + + /** + * Login using OAuth flow and initialize all relevant components. + * @param loginParams - Parameters for OAuth-based Login. + */ + loginWithOAuth(loginParams: OAuthLoginParams): Promise; + + /** + * Login using JWT Token and initialize all relevant components. + * @param loginParams - Parameters for JWT-based Login. + */ + loginWithJWT(loginParams: JWTLoginParams): Promise; + + /** + * Enable MFA for the user. Deletes the Cloud factor and generates a new + * factor key and a backup factor key. Recommended for Non Custodial Flow. + * Stores the factor key in browser storage and returns the backup factor key. + * + * ** NOTE before enableMFA, you will need to commitChanges if manualSync is true. + * + * @param enableMFAParams - Parameters for recovery factor for MFA. + * @param recoveryFactor - Default is true. If false, recovery factor will NOT be created. + * @returns The backup factor key if if recoveryFacort is true else empty string. + */ + enableMFA(enableMFAParams: EnableMFAParams, recoveryFactor?: boolean): Promise; + + /** + * Second step for login where the user inputs their factor key. + * @param factorKey - A BN used for encrypting your Device/ Recovery TSS Key + * Share. You can generate it using `generateFactorKey()` function or use an + * existing one. + */ + inputFactorKey(factorKey: BN): Promise; + + /** + * Returns the current Factor Key and TssShareType in MPC Core Kit State + **/ + getCurrentFactorKey(): IFactorKey; + + /** + * Creates a new factor for authentication. Generates and returns a new factor + * key if no factor key is provided in `params`. + * @param createFactorParams - Parameters for creating a new factor. + * @returns The factor key. + */ + createFactor(createFactorParams: CreateFactorParams): Promise; + + /** + * Deletes the factor identified by the given public key, including all + * associated metadata. + * @param factorPub - The public key of the factor to delete. + */ + deleteFactor(factorPub: TkeyPoint): Promise; + + /** + * Logs out the user, terminating the session. + */ + logout(): Promise; + + /** + * Get user information provided by the OAuth provider. + */ + getUserInfo(): UserInfo; + + /** + * Get information about how the keys of the user is managed according to the information in the metadata server. + */ + getKeyDetails(): MPCKeyDetails; + + getSessionSignatures(): Promise; + + setCustomSessionSigGenerator(sessionSigGenerator: ISessionSigGenerator): void; + + /** + * Commit the changes made to the user's account when in manual sync mode. + */ + commitChanges(): Promise; + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Exports the private key scalar for the current account index. + * + * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. + */ + _UNSAFE_exportTssKey(): Promise; + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Attempts to export the ed25519 private key seed. Only works if import key + * flow has been used. + */ + _UNSAFE_exportTssEd25519Seed(): Promise; +} + export interface SessionData { /** * @deprecated Use `postBoxKey` instead. diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 3185d9e7..5baaf711 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -212,6 +212,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { public getContext(): IContext { return { status: this.status, + config: this.options, state: this.state, sessionId: this.sessionId, serviceProvider: this.torusSp, diff --git a/src/plugins/index.ts b/src/plugins/index.ts new file mode 100644 index 00000000..789c86a3 --- /dev/null +++ b/src/plugins/index.ts @@ -0,0 +1,2 @@ +export * from "./DefaultSessionSigGenerator"; +export * from "./ISessionSigGenerator"; From 96b1b996bca84592060d6aa38c5372d8a1d51922 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 10:37:17 +0530 Subject: [PATCH 18/37] 4.1.2-alpha.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b5494bab..59e1d859 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.1-alpha.0", + "version": "4.1.2-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@web3auth/mpc-core-kit", - "version": "4.1.1-alpha.0", + "version": "4.1.2-alpha.0", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", diff --git a/package.json b/package.json index a9c6d1b8..fbfbf514 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.1-alpha.0", + "version": "4.1.2-alpha.0", "description": "MPC CoreKit SDK for web3Auth", "keywords": [ "web3Auth/mpc-core-kit", From 97a01e15094d0f76ccf1a0ce421fc6c50bef4496 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 16:29:48 +0530 Subject: [PATCH 19/37] make context read only --- demo/redirect-flow-example/package-lock.json | 18 +- demo/redirect-flow-example/package.json | 4 +- demo/redirect-flow-example/src/App.tsx | 173 +++++++++++-------- src/interfaces.ts | 1 - src/mpcCoreKit.ts | 29 ++-- 5 files changed, 127 insertions(+), 98 deletions(-) diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index 7792d158..eb86cda7 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -20,8 +20,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.0-alpha.0", - "@web3auth/mpc-passkey-plugin": "0.1.3-alpha.0", + "@web3auth/mpc-core-kit": "4.1.2-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.7-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", @@ -2097,9 +2097,9 @@ } }, "node_modules/@web3auth/mpc-core-kit": { - "version": "4.1.0-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.0-alpha.0.tgz", - "integrity": "sha512-xVCJFJdtazsyLE7aj6IAaTtLTg29+ybazeq2KBXM6iIX+2owNN9L2kG9gd7IY34UTE9151UQ9VfMOX4FVaz0PA==", + "version": "4.1.2-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.2-alpha.0.tgz", + "integrity": "sha512-nPNRnEVniXpMqyODKLXfBcfZWUO++n795MWlMwpSLHBnuvoAfyQqbL8C7rSwJNIFfSK+pYNflPcXw8t1J3OJhg==", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", @@ -2146,9 +2146,9 @@ } }, "node_modules/@web3auth/mpc-passkey-plugin": { - "version": "0.1.3-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.3-alpha.0.tgz", - "integrity": "sha512-TW+KvKYgf7J8j9IZkjEzMW9ghlJxShKOBBbLoi/ZF/mpIqjlwuIc5gsWku6gf7nu9NF1cipWeGOeRXonJjiYtA==", + "version": "0.1.7-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.7-alpha.0.tgz", + "integrity": "sha512-qPoYm03VLLTWsOLr6hiN3xdR0dm2F/Jd0dG6X8gqea7KqQ1d++zMkq7QeAdfsuc27GLsdrHrcP8NbOWE1J5sVw==", "license": "ISC", "dependencies": { "@simplewebauthn/browser": "^11.0.0", @@ -2168,7 +2168,7 @@ "npm": ">=9.x" }, "peerDependencies": { - "@web3auth/mpc-core-kit": "~4.1.0-alpha.0" + "@web3auth/mpc-core-kit": "~4.1.2-alpha.0" } }, "node_modules/@webassemblyjs/ast": { diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index 64fafcb4..a40008d1 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -14,8 +14,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.0-alpha.0", - "@web3auth/mpc-passkey-plugin": "0.1.3-alpha.0", + "@web3auth/mpc-core-kit": "4.1.2-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.7-alpha.0", "@toruslabs/torus.js": "15.2.0-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index b0d6b0b7..6c4780bc 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -13,6 +13,7 @@ import { factorKeyCurve, makeEthereumSigner, SIG_TYPE, + IContext, } from "@web3auth/mpc-core-kit"; import { PasskeysPlugin } from "@web3auth/mpc-passkey-plugin"; import Web3 from "web3"; @@ -114,10 +115,6 @@ const DEFAULT_CHAIN_CONFIG: CustomChainConfig = { }; -const passkeyPlugin = new PasskeysPlugin({ - baseURL: "https://testing-mpc-passkeys.web3auth.io/api/v1" -}); - const privateKey = "MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCCD7oLrcKae+jVZPGx52Cb/lKhdKxpXjl9eGNa1MlY57A=="; const jwtPrivateKey = `-----BEGIN PRIVATE KEY-----\n${privateKey}\n-----END PRIVATE KEY-----`; const alg: Algorithm = "ES256"; @@ -159,7 +156,7 @@ function App() { const [newQuestion, setNewQuestion] = useState(undefined); const securityQuestion = useMemo(() => new TssSecurityQuestion(), []); const [selectedTssLib, setSelectedTssLib] = useState(tssLibDkls); - const [coreKitInstance, setCoreKitInstance] = useState( + const coreKitInstance = useRef( new Web3AuthMPCCoreKit({ web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", web3AuthNetwork: selectedNetwork, @@ -170,23 +167,46 @@ function App() { useDKG: false, }) ); + const mpcCoreKitContext = useRef(undefined); + const passkeyPlugin = useRef( + undefined + // new PasskeysPlugin( + // coreKitInstance.getContext(), + // { + // baseURL: "https://testing-mpc-passkeys.web3auth.io/api/v1" + // } + // ) + ) async function setupProvider(chainConfig?: CustomChainConfig) { - if (coreKitInstance.keyType !== KeyType.secp256k1) { + if (coreKitInstance.current.keyType !== KeyType.secp256k1) { console.warn(`Ethereum requires keytype ${KeyType.secp256k1}, skipping provider setup`); return; } let localProvider = new EthereumSigningProvider({ config: { chainConfig: chainConfig || DEFAULT_CHAIN_CONFIG } }); - localProvider.setupProvider(makeEthereumSigner(coreKitInstance)); + localProvider.setupProvider(makeEthereumSigner(coreKitInstance.current)); setProvider(localProvider); } // decide whether to rehydrate session const rehydrate = true; const init = async (newCoreKitInstance: Web3AuthMPCCoreKit) => { + coreKitInstance.current = newCoreKitInstance; + mpcCoreKitContext.current = newCoreKitInstance.getContext(); + // Example config to handle redirect result manually if (newCoreKitInstance.status === COREKIT_STATUS.NOT_INITIALIZED) { await newCoreKitInstance.init({ handleRedirectResult: false, rehydrate }); - await passkeyPlugin.initWithMpcCoreKit(newCoreKitInstance); + if (!mpcCoreKitContext.current) { + throw new Error("mpcCoreKitContext not found"); + } + const pkeyPlugin = new PasskeysPlugin( + mpcCoreKitContext.current, + { + baseURL: "https://testing-mpc-passkeys.web3auth.io/api/v1" + }); + await pkeyPlugin.init(); + passkeyPlugin.current = pkeyPlugin; + debugger; if (window.location.hash.includes("#state")) { await newCoreKitInstance.handleRedirectResult(); } @@ -223,9 +243,8 @@ function App() { tssLib: selectedTssLib, useDKG: false, }) - setCoreKitInstance( - instance - ) + + if (instance.status === COREKIT_STATUS.NOT_INITIALIZED) { init(instance); @@ -244,18 +263,18 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance not found"); } - uiConsole(coreKitInstance.getKeyDetails()); + uiConsole(coreKitInstance.current.getKeyDetails()); }; const listFactors = async () => { if (!coreKitInstance) { throw new Error("coreKitInstance not found"); } - const factorPubs = coreKitInstance.tKey.metadata.factorPubs; + const factorPubs = coreKitInstance.current.tKey.metadata.factorPubs; if (!factorPubs) { throw new Error("factorPubs not found"); } - const pubsHex = factorPubs[coreKitInstance.tKey.tssTag].map(pub => { + const pubsHex = factorPubs[coreKitInstance.current.tKey.tssTag].map(pub => { return pub.toSEC1(factorKeyCurve, true).toString("hex"); }); uiConsole(pubsHex); @@ -267,17 +286,17 @@ function App() { throw new Error("mockEmail not found"); } const { idToken, parsedToken } = await mockLogin(mockEmail); - await coreKitInstance.loginWithJWT({ + await coreKitInstance.current.loginWithJWT({ verifier: "torus-test-health", verifierId: parsedToken.email, idToken, prefetchTssPublicKeys: 1, }); - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + if (coreKitInstance.current.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(); } - setCoreKitStatus(coreKitInstance.status); + setCoreKitStatus(coreKitInstance.current.status); } catch (error: unknown) { console.error(error); } @@ -316,15 +335,15 @@ function App() { }, } as SubVerifierDetailsParams; - await coreKitInstance.loginWithOAuth(verifierConfig); - setCoreKitStatus(coreKitInstance.status); + await coreKitInstance.current.loginWithOAuth(verifierConfig); + setCoreKitStatus(coreKitInstance.current.status); } catch (error: unknown) { console.error(error); } }; const getDeviceShare = async () => { - const factorKey = await coreKitInstance!.getDeviceFactor(); + const factorKey = await coreKitInstance.current.getDeviceFactor(); setBackupFactorKey(factorKey); uiConsole("Device share: ", factorKey); }; @@ -337,30 +356,30 @@ function App() { throw new Error("backupFactorKey not found"); } const factorKey = new BN(backupFactorKey, "hex"); - await coreKitInstance.inputFactorKey(factorKey); + await coreKitInstance.current.inputFactorKey(factorKey); - if (coreKitInstance.status === COREKIT_STATUS.REQUIRED_SHARE) { + if (coreKitInstance.current.status === COREKIT_STATUS.REQUIRED_SHARE) { uiConsole( "required more shares even after inputing backup factor key, please enter your backup/ device factor key, or reset account [unrecoverable once reset, please use it with caution]" ); } - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + if (coreKitInstance.current.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(); } - setCoreKitStatus(coreKitInstance.status); + setCoreKitStatus(coreKitInstance.current.status); }; const recoverSecurityQuestionFactor = async () => { - if (!coreKitInstance) { + if (!coreKitInstance.current) { throw new Error("coreKitInstance not found"); } if (!answer) { throw new Error("backupFactorKey not found"); } - let factorKey = await securityQuestion.recoverFactor(coreKitInstance, answer); + let factorKey = await securityQuestion.recoverFactor(coreKitInstance.current, answer); setBackupFactorKey(factorKey); uiConsole("Security Question share: ", factorKey); }; @@ -369,15 +388,18 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance not found"); } - await coreKitInstance.logout(); - await passkeyPlugin.logout(); // TODO: remove this after adding event emitter in mpc core kit + if (!passkeyPlugin?.current) { + throw new Error("passkeyPlugin not found"); + } + await coreKitInstance.current.logout(); + await passkeyPlugin.current.logout(); // TODO: remove this after adding event emitter in mpc core kit uiConsole("Log out"); setProvider(null); - setCoreKitStatus(coreKitInstance.status); + setCoreKitStatus(coreKitInstance.current.status); }; const getUserInfo = (): void => { - const user = coreKitInstance?.getUserInfo(); + const user = coreKitInstance?.current.getUserInfo(); uiConsole(user); }; @@ -387,7 +409,7 @@ function App() { } uiConsole("export share type: ", exportTssShareType); const factorKey = generateFactorKey(); - await coreKitInstance.createFactor({ + await coreKitInstance.current.createFactor({ shareType: exportTssShareType, factorKey: factorKey.private, }); @@ -405,7 +427,7 @@ function App() { } const pubBuffer = Buffer.from(factorPubToDelete, "hex"); const pub = Point.fromSEC1(factorKeyCurve, pubBuffer.toString("hex")); - await coreKitInstance.deleteFactor(pub); + await coreKitInstance.current.deleteFactor(pub); uiConsole("factor deleted"); }; @@ -420,7 +442,7 @@ function App() { }; const setTSSWalletIndex = async (index = 0) => { - await coreKitInstance.setTssWalletIndex(index); + await coreKitInstance.current.setTssWalletIndex(index); // log new account details await getAccounts(); }; @@ -450,7 +472,7 @@ function App() { }; const signMessage = async (): Promise => { - if (coreKitInstance.sigType === SIG_TYPE.ECDSA_SECP256K1) { + if (coreKitInstance.current.sigType === SIG_TYPE.ECDSA_SECP256K1) { if (!web3) { uiConsole("web3 not initialized yet"); return; @@ -461,38 +483,38 @@ function App() { uiConsole(signedMessage); - } else if (coreKitInstance.sigType === SIG_TYPE.ED25519 || coreKitInstance.sigType === SIG_TYPE.BIP340) { + } else if (coreKitInstance.current.sigType === SIG_TYPE.ED25519 || coreKitInstance.current.sigType === SIG_TYPE.BIP340) { const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.sign(msg); + const sig = await coreKitInstance.current.sign(msg); uiConsole(sig.toString("hex")); } }; const signMessageWithPrecomputedTss = async (): Promise => { - if (coreKitInstance.keyType === "secp256k1") { - const precomputedTssClient = await coreKitInstance.precompute_secp256k1(); + if (coreKitInstance.current.keyType === "secp256k1") { + const precomputedTssClient = await coreKitInstance.current.precompute_secp256k1(); const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.sign(msg, false, precomputedTssClient); + const sig = await coreKitInstance.current.sign(msg, false, precomputedTssClient); uiConsole(sig.toString("hex")); - } else if (coreKitInstance.keyType === "ed25519") { + } else if (coreKitInstance.current.keyType === "ed25519") { const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.sign(msg); + const sig = await coreKitInstance.current.sign(msg); uiConsole(sig.toString("hex")); } }; const signMultipleMessagesWithPrecomputedTss = async (): Promise => { - if (coreKitInstance.keyType === "secp256k1") { - const [precomputedTssClient, precomputedTssClient2] = await Promise.all([coreKitInstance.precompute_secp256k1(), coreKitInstance.precompute_secp256k1()]); + if (coreKitInstance.current.keyType === "secp256k1") { + const [precomputedTssClient, precomputedTssClient2] = await Promise.all([coreKitInstance.current.precompute_secp256k1(), coreKitInstance.current.precompute_secp256k1()]); const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.sign(msg, false, precomputedTssClient); + const sig = await coreKitInstance.current.sign(msg, false, precomputedTssClient); const msg2 = Buffer.from("hello signer2!"); - const sig2 = await coreKitInstance.sign(msg2, false, precomputedTssClient2); + const sig2 = await coreKitInstance.current.sign(msg2, false, precomputedTssClient2); uiConsole("Sig1: ", sig.toString("hex"), "Sig2: ", sig2.toString("hex")); - } else if (coreKitInstance.keyType === "ed25519") { + } else if (coreKitInstance.current.keyType === "ed25519") { const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.sign(msg); + const sig = await coreKitInstance.current.sign(msg); uiConsole(sig.toString("hex")); } }; @@ -513,7 +535,7 @@ function App() { logo: "https://cryptologos.cc/logos/ethereum-eth-logo.png", }; - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + if (coreKitInstance.current.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(newChainConfig); } uiConsole("Changed to Sepolia Network"); @@ -535,7 +557,7 @@ function App() { ticker: "MATIC", tickerName: "MATIC", }; - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + if (coreKitInstance.current.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(newChainConfig); } uiConsole("Changed to Sepolia Network"); @@ -581,8 +603,8 @@ function App() { // if (selectedNetwork === WEB3AUTH_NETWORK.MAINNET) { // throw new Error("reset account is not recommended on mainnet"); // } - await coreKitInstance.tKey.storageLayer.setMetadata({ - privKey: new BN(coreKitInstance.state.postBoxKey!, "hex"), + await coreKitInstance.current.tKey.storageLayer.setMetadata({ + privKey: new BN(coreKitInstance.current.state.postBoxKey!, "hex"), input: { message: "KEY_NOT_FOUND" }, }); uiConsole("reset"); @@ -613,9 +635,9 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - await securityQuestion.setSecurityQuestion({ mpcCoreKit: coreKitInstance, question, answer, shareType: TssShareType.RECOVERY }); + await securityQuestion.setSecurityQuestion({ mpcCoreKit: coreKitInstance.current, question, answer, shareType: TssShareType.RECOVERY }); setNewQuestion(undefined); - let result = await securityQuestion.getQuestion(coreKitInstance); + let result = await securityQuestion.getQuestion(coreKitInstance.current); if (result) { setQuestion(question); } @@ -625,8 +647,8 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - await securityQuestion.changeSecurityQuestion({ mpcCoreKit: coreKitInstance, newQuestion, newAnswer, answer }); - let result = await securityQuestion.getQuestion(coreKitInstance); + await securityQuestion.changeSecurityQuestion({ mpcCoreKit: coreKitInstance.current, newQuestion, newAnswer, answer }); + let result = await securityQuestion.getQuestion(coreKitInstance.current); if (result) { setQuestion(question); } @@ -636,7 +658,7 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - await securityQuestion.deleteSecurityQuestion(coreKitInstance); + await securityQuestion.deleteSecurityQuestion(coreKitInstance.current); setQuestion(undefined); }; @@ -644,7 +666,7 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - const factorKey = await coreKitInstance.enableMFA({}); + const factorKey = await coreKitInstance.current.enableMFA({}); const factorKeyMnemonic = await keyToMnemonic(factorKey); uiConsole("MFA enabled, device factor stored in local store, deleted hashed cloud key, your backup factor key: ", factorKeyMnemonic); @@ -653,7 +675,7 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - if (!passkeyPlugin) { + if (!passkeyPlugin?.current) { throw new Error("passkeyPlugin is not set"); } const result = shouldSupportPasskey(); @@ -661,14 +683,14 @@ function App() { uiConsole("Browser not supported"); return; } - await passkeyPlugin.registerPasskey() + await passkeyPlugin.current.registerPasskey() }; const loginWithPasskey = async () => { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - if (!passkeyPlugin) { + if (!passkeyPlugin?.current) { throw new Error("passkeyPlugin is not set"); } const result = shouldSupportPasskey(); @@ -676,27 +698,29 @@ function App() { uiConsole("Browser not supported"); return; } - await passkeyPlugin.authenticateWithPasskey() - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + await passkeyPlugin.current.authenticateWithPasskey() + if (coreKitInstance.current.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(); } - setCoreKitStatus(coreKitInstance.status); + setCoreKitStatus(coreKitInstance.current.status); }; const listPasskeys = async () => { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - if (!passkeyPlugin) { + if (!passkeyPlugin?.current) { throw new Error("passkeyPlugin is not set"); } - const passkeys = await passkeyPlugin.listPasskeys() + const context = coreKitInstance.current.getContext() + console.log("coreKitInstance", context.state) + const passkeys = await passkeyPlugin.current.listPasskeys() uiConsole(passkeys) }; const enableStrictPasskey = async () => { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - if (!passkeyPlugin) { + if (!passkeyPlugin?.current) { throw new Error("passkeyPlugin is not set"); } const result = shouldSupportPasskey(); @@ -704,11 +728,14 @@ function App() { uiConsole("Browser not supported"); return; } - await passkeyPlugin.enableStrictPasskeyAuth() + await passkeyPlugin.current.enableStrictPasskeyAuth() uiConsole("Strict Passkey Auth Enabled") }; const disableStrictPasskey = async () => { - const isEnabled = await passkeyPlugin.isStrictPasskeyEnabled() + if (!passkeyPlugin?.current) { + throw new Error("passkeyPlugin not found"); + } + const isEnabled = await passkeyPlugin.current.isStrictPasskeyEnabled() if (!isEnabled) { uiConsole("Strict Passkey Auth is not enabled") return @@ -716,7 +743,7 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - if (!passkeyPlugin) { + if (!passkeyPlugin?.current) { throw new Error("passkeyPlugin is not set"); } const result = shouldSupportPasskey(); @@ -724,14 +751,14 @@ function App() { uiConsole("Browser not supported"); return; } - await passkeyPlugin.disableStrictPasskeyAuth() + await passkeyPlugin.current.disableStrictPasskeyAuth() uiConsole("Strict Passkey Auth Disabled") }; const commit = async () => { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - await coreKitInstance.commitChanges(); + await coreKitInstance.current.commitChanges(); }; const tssLibSelector = ( @@ -768,7 +795,7 @@ function App() { Get User Info - @@ -789,7 +816,7 @@ function App() { [CRITICAL] Reset Account - diff --git a/src/interfaces.ts b/src/interfaces.ts index 7d14c339..d30c9db0 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -339,7 +339,6 @@ export interface IContext { config: Web3AuthOptionsWithDefaults; status: COREKIT_STATUS; state: Web3AuthState; - sessionId: string; serviceProvider: TSSTorusServiceProvider | null; updateState: (newState: Partial) => void; getUserInfo: () => UserInfo; diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 5baaf711..4900cd91 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -106,6 +106,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { private sessionSigGenerator: ISessionSigGenerator; + private readonly context: IContext; + constructor(options: Web3AuthOptions) { if (!options.web3AuthClientId) { throw CoreKitError.clientIdInvalid(); @@ -144,6 +146,18 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } TorusUtils.setSessionTime(this.options.sessionTime); + + this.context = { + status: this.status, + config: this.options, + state: this.state, + serviceProvider: this.torusSp, + updateState: this.updateState.bind(this), + getUserInfo: this.getUserInfo.bind(this), + logout: this.logout.bind(this), + setupTkey: this.setupTkey.bind(this), + setCustomSessionSigGenerator: this.setCustomSessionSigGenerator.bind(this), + } as const; } get tKey(): TKeyTSS { @@ -209,19 +223,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { return this._sigType === "ed25519" && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; } - public getContext(): IContext { - return { - status: this.status, - config: this.options, - state: this.state, - sessionId: this.sessionId, - serviceProvider: this.torusSp, - updateState: this.updateState.bind(this), - getUserInfo: this.getUserInfo.bind(this), - logout: this.logout.bind(this), - setupTkey: this.setupTkey.bind(this), - setCustomSessionSigGenerator: this.setCustomSessionSigGenerator.bind(this), - }; + public getContext(): Readonly { + return this.context; } public setCustomSessionSigGenerator(sessionSigGenerator: ISessionSigGenerator) { From d837e1496f4c53726459bc52686f6f91d9d67be1 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 16:30:03 +0530 Subject: [PATCH 20/37] 4.1.3-alpha.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 59e1d859..9816bf93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.2-alpha.0", + "version": "4.1.3-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@web3auth/mpc-core-kit", - "version": "4.1.2-alpha.0", + "version": "4.1.3-alpha.0", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", diff --git a/package.json b/package.json index fbfbf514..ff101582 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.2-alpha.0", + "version": "4.1.3-alpha.0", "description": "MPC CoreKit SDK for web3Auth", "keywords": [ "web3Auth/mpc-core-kit", From 2717db1838b251f8ef0f78c75b5ad2593c745017 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 17:22:33 +0530 Subject: [PATCH 21/37] switch to context based interface --- demo/redirect-flow-example/package-lock.json | 18 ++-- demo/redirect-flow-example/package.json | 4 +- demo/redirect-flow-example/src/App.tsx | 6 +- src/interfaces.ts | 1 - src/mpcCoreKit.ts | 108 ++++++++----------- 5 files changed, 58 insertions(+), 79 deletions(-) diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index eb86cda7..36c9939f 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -20,8 +20,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.2-alpha.0", - "@web3auth/mpc-passkey-plugin": "0.1.7-alpha.0", + "@web3auth/mpc-core-kit": "4.1.3-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.10-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", @@ -2097,9 +2097,9 @@ } }, "node_modules/@web3auth/mpc-core-kit": { - "version": "4.1.2-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.2-alpha.0.tgz", - "integrity": "sha512-nPNRnEVniXpMqyODKLXfBcfZWUO++n795MWlMwpSLHBnuvoAfyQqbL8C7rSwJNIFfSK+pYNflPcXw8t1J3OJhg==", + "version": "4.1.3-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.3-alpha.0.tgz", + "integrity": "sha512-ibU1zBW1CnaaEBVE9QVRmKcwWYSU9hqlvvG1NA17o2RLBfBuQJNVXea5caecaZvQHblHSKRrZcXSzowFRSWJuA==", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", @@ -2146,9 +2146,9 @@ } }, "node_modules/@web3auth/mpc-passkey-plugin": { - "version": "0.1.7-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.7-alpha.0.tgz", - "integrity": "sha512-qPoYm03VLLTWsOLr6hiN3xdR0dm2F/Jd0dG6X8gqea7KqQ1d++zMkq7QeAdfsuc27GLsdrHrcP8NbOWE1J5sVw==", + "version": "0.1.10-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.10-alpha.0.tgz", + "integrity": "sha512-SV3ZL1R5MheCsDAwwwiIapS7ICSRMwa8l0geP96gRy+uB14dFW6rQv50q5kbi65dr/WPnIYZp1LFfShTJ1Wv9Q==", "license": "ISC", "dependencies": { "@simplewebauthn/browser": "^11.0.0", @@ -2168,7 +2168,7 @@ "npm": ">=9.x" }, "peerDependencies": { - "@web3auth/mpc-core-kit": "~4.1.2-alpha.0" + "@web3auth/mpc-core-kit": "~4.1.3-alpha.0" } }, "node_modules/@webassemblyjs/ast": { diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index a40008d1..ba918d0f 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -14,8 +14,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.2-alpha.0", - "@web3auth/mpc-passkey-plugin": "0.1.7-alpha.0", + "@web3auth/mpc-core-kit": "4.1.3-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.10-alpha.0", "@toruslabs/torus.js": "15.2.0-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index 6c4780bc..e2b64d95 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -191,16 +191,12 @@ function App() { const rehydrate = true; const init = async (newCoreKitInstance: Web3AuthMPCCoreKit) => { coreKitInstance.current = newCoreKitInstance; - mpcCoreKitContext.current = newCoreKitInstance.getContext(); // Example config to handle redirect result manually if (newCoreKitInstance.status === COREKIT_STATUS.NOT_INITIALIZED) { await newCoreKitInstance.init({ handleRedirectResult: false, rehydrate }); - if (!mpcCoreKitContext.current) { - throw new Error("mpcCoreKitContext not found"); - } const pkeyPlugin = new PasskeysPlugin( - mpcCoreKitContext.current, + coreKitInstance.current.getContext, { baseURL: "https://testing-mpc-passkeys.web3auth.io/api/v1" }); diff --git a/src/interfaces.ts b/src/interfaces.ts index d30c9db0..50f5b890 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -375,7 +375,6 @@ export interface ICoreKit { */ sessionId: string; - getContext(): IContext; /** * The function used to initailise the state of MPCCoreKit * Also is useful to resume an existing session. diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 4900cd91..55a6589d 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -73,11 +73,13 @@ import { scalarBNToBufferSEC1, } from "./utils"; -export class Web3AuthMPCCoreKit implements ICoreKit { +export class Web3AuthMPCCoreKit implements ICoreKit, IContext { public state: Web3AuthState = { accountIndex: 0 }; public torusSp: TSSTorusServiceProvider | null = null; + serviceProvider: TSSTorusServiceProvider; + private options: Web3AuthOptionsWithDefaults; private storageLayer: TorusStorageLayer | null = null; @@ -106,8 +108,6 @@ export class Web3AuthMPCCoreKit implements ICoreKit { private sessionSigGenerator: ISessionSigGenerator; - private readonly context: IContext; - constructor(options: Web3AuthOptions) { if (!options.web3AuthClientId) { throw CoreKitError.clientIdInvalid(); @@ -134,7 +134,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; if (options.disableSessionManager === undefined) options.disableSessionManager = false; - this.sessionSigGenerator = new DefaultSessionSigGeneratorPlugin(this.getContext()); + this.sessionSigGenerator = new DefaultSessionSigGeneratorPlugin(this); this.options = options as Web3AuthOptionsWithDefaults; this.currentStorage = new AsyncStorage(this._storageBaseKey, options.storage); @@ -146,18 +146,6 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } TorusUtils.setSessionTime(this.options.sessionTime); - - this.context = { - status: this.status, - config: this.options, - state: this.state, - serviceProvider: this.torusSp, - updateState: this.updateState.bind(this), - getUserInfo: this.getUserInfo.bind(this), - logout: this.logout.bind(this), - setupTkey: this.setupTkey.bind(this), - setCustomSessionSigGenerator: this.setCustomSessionSigGenerator.bind(this), - } as const; } get tKey(): TKeyTSS { @@ -223,10 +211,6 @@ export class Web3AuthMPCCoreKit implements ICoreKit { return this._sigType === "ed25519" && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; } - public getContext(): Readonly { - return this.context; - } - public setCustomSessionSigGenerator(sessionSigGenerator: ISessionSigGenerator) { this.sessionSigGenerator = sessionSigGenerator; } @@ -1018,48 +1002,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { this.state = { ...this.state, ...newState }; } - protected async atomicSync(f: () => Promise): Promise { - this.atomicCallStackCounter += 1; - - this.tkey.manualSync = true; - try { - const r = await f(); - if (this.atomicCallStackCounter === 1) { - if (!this.options.manualSync) { - await this.commitChanges(); - } - } - return r; - } catch (error) { - throw error as Error; - } finally { - this.atomicCallStackCounter -= 1; - if (this.atomicCallStackCounter === 0) { - this.tkey.manualSync = this.options.manualSync; - } - } - } - - private async importTssKey(tssKey: string, factorPub: Point, newTSSIndex: TssShareType = TssShareType.DEVICE): Promise { - if (!this.state.signatures) { - throw CoreKitError.signaturesNotPresent("Signatures not present in state when importing tss key."); - } - - await this.tKey.importTssKey( - { tag: this.tKey.tssTag, importKey: Buffer.from(tssKey, "hex"), factorPub, newTSSIndex }, - { authSignatures: this.state.signatures } - ); - } - - private getTssNonce(): number { - if (!this.tKey.metadata.tssNonces || this.tKey.metadata.tssNonces[this.tKey.tssTag] === undefined) { - throw CoreKitError.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`); - } - const tssNonce = this.tKey.metadata.tssNonces[this.tKey.tssTag]; - return tssNonce; - } - - private async setupTkey(params?: { + public async setupTkey(params?: { providedImportKey?: string; sfaLoginResponse?: TorusKey | TorusLoginResponse | TorusAggregateLoginResponse; userInfo?: UserInfo; @@ -1115,6 +1058,47 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } } + protected async atomicSync(f: () => Promise): Promise { + this.atomicCallStackCounter += 1; + + this.tkey.manualSync = true; + try { + const r = await f(); + if (this.atomicCallStackCounter === 1) { + if (!this.options.manualSync) { + await this.commitChanges(); + } + } + return r; + } catch (error) { + throw error as Error; + } finally { + this.atomicCallStackCounter -= 1; + if (this.atomicCallStackCounter === 0) { + this.tkey.manualSync = this.options.manualSync; + } + } + } + + private async importTssKey(tssKey: string, factorPub: Point, newTSSIndex: TssShareType = TssShareType.DEVICE): Promise { + if (!this.state.signatures) { + throw CoreKitError.signaturesNotPresent("Signatures not present in state when importing tss key."); + } + + await this.tKey.importTssKey( + { tag: this.tKey.tssTag, importKey: Buffer.from(tssKey, "hex"), factorPub, newTSSIndex }, + { authSignatures: this.state.signatures } + ); + } + + private getTssNonce(): number { + if (!this.tKey.metadata.tssNonces || this.tKey.metadata.tssNonces[this.tKey.tssTag] === undefined) { + throw CoreKitError.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`); + } + const tssNonce = this.tKey.metadata.tssNonces[this.tKey.tssTag]; + return tssNonce; + } + // mutation function private async handleNewUser(importTssKey?: string, isSfaKey?: boolean) { await this.atomicSync(async () => { From 7e07d42cd3a0ab9c79fb2750f8ab291fe1c7ecc0 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 17:22:36 +0530 Subject: [PATCH 22/37] 4.1.4-alpha.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9816bf93..1d2c79ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.3-alpha.0", + "version": "4.1.4-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@web3auth/mpc-core-kit", - "version": "4.1.3-alpha.0", + "version": "4.1.4-alpha.0", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", diff --git a/package.json b/package.json index ff101582..dfff2a27 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.3-alpha.0", + "version": "4.1.4-alpha.0", "description": "MPC CoreKit SDK for web3Auth", "keywords": [ "web3Auth/mpc-core-kit", From b2c8446d0b49ab1a322e296060fd74f69628f4ee Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 17:39:56 +0530 Subject: [PATCH 23/37] minor cleanup --- demo/redirect-flow-example/package-lock.json | 18 +++++++++--------- demo/redirect-flow-example/package.json | 4 ++-- demo/redirect-flow-example/src/App.tsx | 2 +- src/interfaces.ts | 4 ++-- src/mpcCoreKit.ts | 8 ++++---- src/plugins/DefaultSessionSigGenerator.ts | 6 +++--- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index 36c9939f..58ecfc02 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -20,8 +20,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.3-alpha.0", - "@web3auth/mpc-passkey-plugin": "0.1.10-alpha.0", + "@web3auth/mpc-core-kit": "4.1.4-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.11-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", @@ -2097,9 +2097,9 @@ } }, "node_modules/@web3auth/mpc-core-kit": { - "version": "4.1.3-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.3-alpha.0.tgz", - "integrity": "sha512-ibU1zBW1CnaaEBVE9QVRmKcwWYSU9hqlvvG1NA17o2RLBfBuQJNVXea5caecaZvQHblHSKRrZcXSzowFRSWJuA==", + "version": "4.1.4-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.4-alpha.0.tgz", + "integrity": "sha512-FZeEOw2sHd58B9jWBXQSF6OBiRp79JtdBkCL7Yco0lG3Av+wU/rrH1K/HaeRzkTytJ/Uuh2UUB8fde6NmxUHeA==", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", @@ -2146,9 +2146,9 @@ } }, "node_modules/@web3auth/mpc-passkey-plugin": { - "version": "0.1.10-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.10-alpha.0.tgz", - "integrity": "sha512-SV3ZL1R5MheCsDAwwwiIapS7ICSRMwa8l0geP96gRy+uB14dFW6rQv50q5kbi65dr/WPnIYZp1LFfShTJ1Wv9Q==", + "version": "0.1.11-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.11-alpha.0.tgz", + "integrity": "sha512-YIdmnx84ru62SCiHC0FPBbOoErd+eSnEq7D56wu4VEUqMF8xS/hz8yMayp8La+8TcILb9/9HibWEFoIq/3OteQ==", "license": "ISC", "dependencies": { "@simplewebauthn/browser": "^11.0.0", @@ -2168,7 +2168,7 @@ "npm": ">=9.x" }, "peerDependencies": { - "@web3auth/mpc-core-kit": "~4.1.3-alpha.0" + "@web3auth/mpc-core-kit": "~4.1.4-alpha.0" } }, "node_modules/@webassemblyjs/ast": { diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index ba918d0f..2af45ccb 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -14,8 +14,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.3-alpha.0", - "@web3auth/mpc-passkey-plugin": "0.1.10-alpha.0", + "@web3auth/mpc-core-kit": "4.1.4-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.11-alpha.0", "@toruslabs/torus.js": "15.2.0-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index e2b64d95..82bc5e30 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -196,7 +196,7 @@ function App() { if (newCoreKitInstance.status === COREKIT_STATUS.NOT_INITIALIZED) { await newCoreKitInstance.init({ handleRedirectResult: false, rehydrate }); const pkeyPlugin = new PasskeysPlugin( - coreKitInstance.current.getContext, + newCoreKitInstance, { baseURL: "https://testing-mpc-passkeys.web3auth.io/api/v1" }); diff --git a/src/interfaces.ts b/src/interfaces.ts index 50f5b890..7f20cf79 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -335,11 +335,11 @@ export interface Web3AuthOptions { } export type Web3AuthOptionsWithDefaults = Required; -export interface IContext { +export interface IMPCContext { config: Web3AuthOptionsWithDefaults; status: COREKIT_STATUS; state: Web3AuthState; - serviceProvider: TSSTorusServiceProvider | null; + torusSp: TSSTorusServiceProvider | null; updateState: (newState: Partial) => void; getUserInfo: () => UserInfo; logout: () => Promise; diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 55a6589d..058f6e6e 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -38,9 +38,9 @@ import { CoreKitMode, CreateFactorParams, EnableMFAParams, - IContext, ICoreKit, IFactorKey, + IMPCContext, InitParams, JWTLoginParams, MPCKeyDetails, @@ -73,13 +73,11 @@ import { scalarBNToBufferSEC1, } from "./utils"; -export class Web3AuthMPCCoreKit implements ICoreKit, IContext { +export class Web3AuthMPCCoreKit implements ICoreKit, IMPCContext { public state: Web3AuthState = { accountIndex: 0 }; public torusSp: TSSTorusServiceProvider | null = null; - serviceProvider: TSSTorusServiceProvider; - private options: Web3AuthOptionsWithDefaults; private storageLayer: TorusStorageLayer | null = null; @@ -148,6 +146,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit, IContext { TorusUtils.setSessionTime(this.options.sessionTime); } + serviceProvider: TSSTorusServiceProvider; + get tKey(): TKeyTSS { if (this.tkey === null) { throw CoreKitError.tkeyInstanceUninitialized(); diff --git a/src/plugins/DefaultSessionSigGenerator.ts b/src/plugins/DefaultSessionSigGenerator.ts index 72d53c75..a0e40894 100644 --- a/src/plugins/DefaultSessionSigGenerator.ts +++ b/src/plugins/DefaultSessionSigGenerator.ts @@ -1,10 +1,10 @@ -import { IContext } from "../interfaces"; +import { IMPCContext } from "../interfaces"; import { ISessionSigGenerator } from "./ISessionSigGenerator"; export class DefaultSessionSigGeneratorPlugin implements ISessionSigGenerator { - private context: IContext; + private context: IMPCContext; - constructor(readonly mpcCorekitContext: IContext) { + constructor(readonly mpcCorekitContext: IMPCContext) { this.context = mpcCorekitContext; } From a7a7bcc35e6a7e984128508ad283cd8b35e369f8 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 17:39:58 +0530 Subject: [PATCH 24/37] 4.1.5-alpha.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d2c79ef..a8aed2d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.4-alpha.0", + "version": "4.1.5-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@web3auth/mpc-core-kit", - "version": "4.1.4-alpha.0", + "version": "4.1.5-alpha.0", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", diff --git a/package.json b/package.json index dfff2a27..0b4bfbd1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.4-alpha.0", + "version": "4.1.5-alpha.0", "description": "MPC CoreKit SDK for web3Auth", "keywords": [ "web3Auth/mpc-core-kit", From 4935a3665c94127c8b3e27eac9dfe14c1d648867 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 17:47:37 +0530 Subject: [PATCH 25/37] update demo --- demo/redirect-flow-example/package-lock.json | 18 +++++++++--------- demo/redirect-flow-example/package.json | 4 ++-- demo/redirect-flow-example/src/App.tsx | 4 ---- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index 58ecfc02..e6187b5d 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -20,8 +20,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.4-alpha.0", - "@web3auth/mpc-passkey-plugin": "0.1.11-alpha.0", + "@web3auth/mpc-core-kit": "4.1.5-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.12-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", @@ -2097,9 +2097,9 @@ } }, "node_modules/@web3auth/mpc-core-kit": { - "version": "4.1.4-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.4-alpha.0.tgz", - "integrity": "sha512-FZeEOw2sHd58B9jWBXQSF6OBiRp79JtdBkCL7Yco0lG3Av+wU/rrH1K/HaeRzkTytJ/Uuh2UUB8fde6NmxUHeA==", + "version": "4.1.5-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.5-alpha.0.tgz", + "integrity": "sha512-elZS2S/HcHYASz5HcPUckOOdzLf4IQiEK5JFMD433SMluroaCoGRIbFvt4pwNkZ53719EH7gGbybxOg6fwjenw==", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", @@ -2146,9 +2146,9 @@ } }, "node_modules/@web3auth/mpc-passkey-plugin": { - "version": "0.1.11-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.11-alpha.0.tgz", - "integrity": "sha512-YIdmnx84ru62SCiHC0FPBbOoErd+eSnEq7D56wu4VEUqMF8xS/hz8yMayp8La+8TcILb9/9HibWEFoIq/3OteQ==", + "version": "0.1.12-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.12-alpha.0.tgz", + "integrity": "sha512-eCaPsJYpOo4iMpsxLaaTSI8tt8Au8JbPRfJpM9whFfBY23pTE3ojIPSLGjG7RRY+/wK2tpCo6jpvX22EIN2cuQ==", "license": "ISC", "dependencies": { "@simplewebauthn/browser": "^11.0.0", @@ -2168,7 +2168,7 @@ "npm": ">=9.x" }, "peerDependencies": { - "@web3auth/mpc-core-kit": "~4.1.4-alpha.0" + "@web3auth/mpc-core-kit": "~4.1.5-alpha.0" } }, "node_modules/@webassemblyjs/ast": { diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index 2af45ccb..ec5a1b6c 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -14,8 +14,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.4-alpha.0", - "@web3auth/mpc-passkey-plugin": "0.1.11-alpha.0", + "@web3auth/mpc-core-kit": "4.1.5-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.12-alpha.0", "@toruslabs/torus.js": "15.2.0-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index 82bc5e30..3a7980e8 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -13,7 +13,6 @@ import { factorKeyCurve, makeEthereumSigner, SIG_TYPE, - IContext, } from "@web3auth/mpc-core-kit"; import { PasskeysPlugin } from "@web3auth/mpc-passkey-plugin"; import Web3 from "web3"; @@ -167,7 +166,6 @@ function App() { useDKG: false, }) ); - const mpcCoreKitContext = useRef(undefined); const passkeyPlugin = useRef( undefined // new PasskeysPlugin( @@ -707,8 +705,6 @@ function App() { if (!passkeyPlugin?.current) { throw new Error("passkeyPlugin is not set"); } - const context = coreKitInstance.current.getContext() - console.log("coreKitInstance", context.state) const passkeys = await passkeyPlugin.current.listPasskeys() uiConsole(passkeys) }; From 80ee266596b30745cfc3de6ff5e2ab82a6935a34 Mon Sep 17 00:00:00 2001 From: himanshu Date: Thu, 12 Dec 2024 18:09:42 +0530 Subject: [PATCH 26/37] reuse session sigs --- src/mpcCoreKit.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 058f6e6e..85262f86 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -714,11 +714,12 @@ export class Web3AuthMPCCoreKit implements ICoreKit, IMPCContext { return p.getX().toBuffer("be", 32); } - public async precompute_secp256k1(): Promise<{ + public async precompute_secp256k1(params?: { sessionSignatures?: string[] }): Promise<{ client: Client; serverCoeffs: Record; signatures: string[]; }> { + const { sessionSignatures } = params || {}; this.wasmLib = await this.loadTssWasm(); // PreSetup const { tssShareIndex } = this.state; @@ -767,7 +768,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit, IMPCContext { throw CoreKitError.activeSessionNotFound(); } - const signatures = await this.getSessionSignatures(); + const signatures = sessionSignatures || (await this.getSessionSignatures()); if (!signatures) { throw CoreKitError.signaturesNotPresent(); } @@ -1254,7 +1255,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit, IMPCContext { if (!postBoxKey || !factorKey || !tssShare || !tssPubKey || !userInfo) { throw CoreKitError.userNotLoggedIn(); } - const sessionSigs = await this.getSessionSignatures(); + const sessionSigs = this.state.signatures; const payload: SessionData = { postBoxKey, postboxKeyNodeIndexes: postboxKeyNodeIndexes || [], @@ -1475,7 +1476,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit, IMPCContext { throw error; } // Retry with new client if precomputed client failed, this is to handle the case when precomputed session might have expired - const { client: newClient, serverCoeffs: newServerCoeffs } = await this.precompute_secp256k1(); + const { client: newClient, serverCoeffs: newServerCoeffs } = await this.precompute_secp256k1({ sessionSignatures: signatures }); const result = await executeSign(newClient, newServerCoeffs, data, signatures); return result; From eea06ae6fc25217a3e3899c7c6a1186a2b28ca18 Mon Sep 17 00:00:00 2001 From: himanshu Date: Fri, 13 Dec 2024 12:57:19 +0530 Subject: [PATCH 27/37] add event emitter --- package-lock.json | 283 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 1 + src/interfaces.ts | 6 + src/mpcCoreKit.ts | 9 +- 4 files changed, 285 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index a8aed2d3..989a6db2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,7 @@ "@toruslabs/tss-client": "^3.3.0-alpha.0", "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", "@toruslabs/tss-frost-common": "^1.0.1", + "@web3auth/auth": "^9.6.1", "bn.js": "^5.2.1", "bowser": "^2.11.0", "elliptic": "^6.5.7", @@ -2329,6 +2330,31 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@ethereumjs/rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", + "integrity": "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ethereumjs/util": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-9.1.0.tgz", + "integrity": "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^5.0.2", + "ethereum-cryptography": "^2.2.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.13.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", @@ -2760,6 +2786,22 @@ "node": ">= 8" } }, + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.2.2.tgz", + "integrity": "sha512-K1Z2DVTnyCGl4nolhZ8fvHEixoe1pZOY256LD6D0lGca4Fsi3mHQ7lDU237Pzyc91+cfLva/OAvrivRPeU+DMA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@octokit/auth-token": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", @@ -4064,6 +4106,16 @@ "@babel/runtime": "7.x" } }, + "node_modules/@toruslabs/ffjavascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@toruslabs/ffjavascript/-/ffjavascript-4.0.0.tgz", + "integrity": "sha512-sGPKK0xZ7KDLOsVc8/rCb83iCT1xD12+yfl3eoVNppr4vMcPJcXGwqpw4r1nP3Ln10UHvTCduxjUr3axdoxOSw==", + "license": "GPL-3.0", + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + } + }, "node_modules/@toruslabs/fnd-base": { "version": "14.2.0", "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.2.0.tgz", @@ -4174,6 +4226,27 @@ "@babel/runtime": "7.x" } }, + "node_modules/@toruslabs/secure-pub-sub": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/secure-pub-sub/-/secure-pub-sub-1.1.0.tgz", + "integrity": "sha512-OFN0Zsa37+c9aStHd4wzau+IYPY+gve9fBPDuPSIuS06cz/bov39DvCP0LaTQUKxK4eQMZENcPu6PeyBvQYQQA==", + "license": "MIT", + "dependencies": { + "@toruslabs/constants": "^14.1.1", + "@toruslabs/eccrypto": "^5.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "loglevel": "^1.9.1", + "socket.io-client": "^4.7.5" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@toruslabs/session-manager": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.2.0.tgz", @@ -4193,6 +4266,28 @@ "@rollup/rollup-linux-x64-gnu": "^4.24.4" } }, + "node_modules/@toruslabs/starkware-crypto": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/starkware-crypto/-/starkware-crypto-4.0.1.tgz", + "integrity": "sha512-AhnXUscFN2+oLeQuOEbi8vvrQnxUKnE0USWpg7eFHmqUBV8kg6+PAFiWsvJ01+GMQPTMKhKZHyMysxW5AFHc6Q==", + "license": "MIT", + "dependencies": { + "assert": "^2.1.0", + "bip39": "^3.1.0", + "bn.js": "^5.2.1", + "elliptic": "^6.6.1", + "enc-utils": "^3.0.0", + "ethereum-cryptography": "^2.2.1", + "hash.js": "^1.1.7" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@toruslabs/torus-scripts": { "version": "6.1.6", "resolved": "https://registry.npmjs.org/@toruslabs/torus-scripts/-/torus-scripts-6.1.6.tgz", @@ -4394,6 +4489,12 @@ "optional": true, "peer": true }, + "node_modules/@toruslabs/tweetnacl-js": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@toruslabs/tweetnacl-js/-/tweetnacl-js-1.0.4.tgz", + "integrity": "sha512-h8fVemW5pstsKbm/fTx+y61dZkh5Pepy/92lsyKp83KErf96jT+w4LGx4nEgeAVrdYQDTLg2tO7vu/boEb23Iw==", + "license": "Unlicense" + }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", @@ -4811,6 +4912,87 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "license": "ISC" }, + "node_modules/@web3auth/auth": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.6.1.tgz", + "integrity": "sha512-6iYmjhDtZcXGph3pPTVLShMv/xN+eLnc/+g04rqM34pfb85CK2OsvnufCxWcNpEuS/n5yo5voALPE4s/s2BXWw==", + "license": "MIT", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/ffjavascript": "^4.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "@toruslabs/secure-pub-sub": "^1.1.0", + "@toruslabs/session-manager": "^3.2.0", + "@toruslabs/starkware-crypto": "^4.0.1", + "@toruslabs/tweetnacl-js": "^1.0.4", + "base64url": "^3.0.1", + "bip39": "^3.1.0", + "bn.js": "^5.2.1", + "bowser": "^2.11.0", + "color": "^4.2.3", + "enc-utils": "^3.0.0", + "end-of-stream": "^1.4.4", + "events": "^3.3.0", + "fast-safe-stringify": "^2.1.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2", + "once": "^1.4.0", + "pump": "^3.0.2", + "readable-stream": "^4.5.2", + "ts-custom-error": "^3.3.1", + "typed-emitter": "^2.1.0" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "optionalDependencies": { + "@nx/nx-linux-x64-gnu": "^20.2.2", + "@rollup/rollup-linux-x64-gnu": "^4.28.1" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@web3auth/auth/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz", + "integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@web3auth/auth/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@web3auth/auth/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -5033,6 +5215,18 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", @@ -5392,7 +5586,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -5651,7 +5844,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -5707,6 +5899,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "license": "ISC", + "dependencies": { + "@noble/hashes": "^1.2.0" + } + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -6037,7 +6238,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, "funding": [ { "type": "github", @@ -7152,6 +7352,25 @@ "dev": true, "license": "MIT" }, + "node_modules/enc-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/enc-utils/-/enc-utils-3.0.0.tgz", + "integrity": "sha512-e57t/Z2HzWOLwOp7DZcV0VMEY8t7ptWwsxyp6kM2b2zrk6JqIpXxzkruHAMiBsy5wg9jp/183GdiRXCvBtzsYg==", + "license": "MIT", + "dependencies": { + "is-typedarray": "1.0.0", + "typedarray-to-buffer": "3.1.5" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/engine.io-client": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.2.tgz", @@ -8225,6 +8444,15 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", @@ -8343,6 +8571,12 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "license": "MIT" }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" + }, "node_modules/fast-uri": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", @@ -9308,7 +9542,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -9725,7 +9958,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -10068,7 +10300,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.0", @@ -10273,6 +10504,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -11670,7 +11907,6 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -12487,7 +12723,6 @@ "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6.0" @@ -12573,6 +12808,16 @@ "dev": true, "license": "MIT" }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -13376,7 +13621,7 @@ "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" @@ -13404,7 +13649,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -14555,6 +14799,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", + "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", + "license": "MIT", + "optionalDependencies": { + "rxjs": "*" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, "node_modules/typescript": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", @@ -14785,7 +15047,6 @@ "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", diff --git a/package.json b/package.json index 0b4bfbd1..5bcf0a7e 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,7 @@ "@toruslabs/tss-client": "^3.3.0-alpha.0", "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", "@toruslabs/tss-frost-common": "^1.0.1", + "@web3auth/auth": "^9.6.1", "bn.js": "^5.2.1", "bowser": "^2.11.0", "elliptic": "^6.5.7", diff --git a/src/interfaces.ts b/src/interfaces.ts index 7f20cf79..2a7baf8b 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -18,6 +18,7 @@ import { Client } from "@toruslabs/tss-client"; import type { tssLib as TssDklsLib } from "@toruslabs/tss-dkls-lib"; import type { tssLib as TssFrostLibEd25519 } from "@toruslabs/tss-frost-lib"; import type { tssLib as TssFrostLibBip340 } from "@toruslabs/tss-frost-lib-bip340"; +import { SafeEventEmitter } from "@web3auth/auth"; import BN from "bn.js"; import { FactorKeyTypeShareDescription, TssShareType, USER_PATH, WEB3AUTH_NETWORK } from "./constants"; @@ -336,6 +337,7 @@ export interface Web3AuthOptions { export type Web3AuthOptionsWithDefaults = Required; export interface IMPCContext { + stateEmitter: SafeEventEmitter; config: Web3AuthOptionsWithDefaults; status: COREKIT_STATUS; state: Web3AuthState; @@ -520,3 +522,7 @@ export interface Secp256k1PrecomputedClient { serverCoeffs: Record; signatures: string[]; } + +export type StateEmitterEvents = { + LOGOUT: () => void; +}; diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 85262f86..ed16d918 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -16,6 +16,7 @@ import type { WasmLib as DKLSWasmLib } from "@toruslabs/tss-dkls-lib"; import { sign as signFrost } from "@toruslabs/tss-frost-client"; import type { WasmLib as FrostWasmLibEd25519 } from "@toruslabs/tss-frost-lib"; import type { WasmLib as FrostWasmLibBip340 } from "@toruslabs/tss-frost-lib-bip340"; +import { SafeEventEmitter } from "@web3auth/auth"; import BN from "bn.js"; import bowser from "bowser"; import { ec as EC } from "elliptic"; @@ -48,6 +49,7 @@ import { Secp256k1PrecomputedClient, SessionData, SigType, + StateEmitterEvents, SubVerifierDetailsParams, TkeyLocalStoreData, TssLibType, @@ -78,6 +80,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit, IMPCContext { public torusSp: TSSTorusServiceProvider | null = null; + public stateEmitter: SafeEventEmitter; + private options: Web3AuthOptionsWithDefaults; private storageLayer: TorusStorageLayer | null = null; @@ -136,7 +140,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit, IMPCContext { this.options = options as Web3AuthOptionsWithDefaults; this.currentStorage = new AsyncStorage(this._storageBaseKey, options.storage); - + this.stateEmitter = new SafeEventEmitter(); if (!options.disableSessionManager) { this.sessionManager = new SessionManager({ sessionTime: options.sessionTime, @@ -146,8 +150,6 @@ export class Web3AuthMPCCoreKit implements ICoreKit, IMPCContext { TorusUtils.setSessionTime(this.options.sessionTime); } - serviceProvider: TSSTorusServiceProvider; - get tKey(): TKeyTSS { if (this.tkey === null) { throw CoreKitError.tkeyInstanceUninitialized(); @@ -866,6 +868,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit, IMPCContext { this.resetState(); await this.init({ handleRedirectResult: false, rehydrate: false }); + this.stateEmitter.emit("LOGOUT"); } public getUserInfo(): UserInfo { From 52388afe4fa021c2094f6d2b5c50b21f45113bc7 Mon Sep 17 00:00:00 2001 From: himanshu Date: Fri, 13 Dec 2024 13:18:19 +0530 Subject: [PATCH 28/37] 4.1.6-alpha.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 989a6db2..b5c6e1cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.5-alpha.0", + "version": "4.1.6-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@web3auth/mpc-core-kit", - "version": "4.1.5-alpha.0", + "version": "4.1.6-alpha.0", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", diff --git a/package.json b/package.json index 5bcf0a7e..c08eab3d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@web3auth/mpc-core-kit", - "version": "4.1.5-alpha.0", + "version": "4.1.6-alpha.0", "description": "MPC CoreKit SDK for web3Auth", "keywords": [ "web3Auth/mpc-core-kit", From 965f009df7e797949106295a34e41160a4aff4b4 Mon Sep 17 00:00:00 2001 From: himanshu Date: Fri, 13 Dec 2024 15:14:42 +0530 Subject: [PATCH 29/37] event emitter added --- demo/redirect-flow-example/package-lock.json | 314 ++++++++++++++++++- demo/redirect-flow-example/package.json | 4 +- demo/redirect-flow-example/src/App.tsx | 66 +--- src/interfaces.ts | 1 - 4 files changed, 304 insertions(+), 81 deletions(-) diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index e6187b5d..235004d8 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -20,8 +20,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.5-alpha.0", - "@web3auth/mpc-passkey-plugin": "0.1.12-alpha.0", + "@web3auth/mpc-core-kit": "4.1.6-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.15-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", @@ -746,6 +746,22 @@ "node": ">= 8" } }, + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.2.2.tgz", + "integrity": "sha512-K1Z2DVTnyCGl4nolhZ8fvHEixoe1pZOY256LD6D0lGca4Fsi3mHQ7lDU237Pzyc91+cfLva/OAvrivRPeU+DMA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@pkgr/core": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", @@ -758,6 +774,34 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true + }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.28.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", @@ -772,6 +816,215 @@ ], "peer": true }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz", + "integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -1964,13 +2217,13 @@ } }, "node_modules/@web3auth/auth": { - "version": "9.5.3", - "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.5.3.tgz", - "integrity": "sha512-774DFBzuq/mO9y5Zf0ICdK9pZ/YgYgnRVo3CYiayuknA4/wTxosK+xvhlcP6fGRKVgoaYa6bP+gBGmqoFCGUzQ==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.6.1.tgz", + "integrity": "sha512-6iYmjhDtZcXGph3pPTVLShMv/xN+eLnc/+g04rqM34pfb85CK2OsvnufCxWcNpEuS/n5yo5voALPE4s/s2BXWw==", "license": "MIT", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/constants": "^14.1.1", + "@toruslabs/constants": "^14.2.0", "@toruslabs/ffjavascript": "^4.0.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/secure-pub-sub": "^1.1.0", @@ -1999,8 +2252,8 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@nx/nx-linux-x64-gnu": "^20.1.2", - "@rollup/rollup-linux-x64-gnu": "^4.27.3" + "@nx/nx-linux-x64-gnu": "^20.2.2", + "@rollup/rollup-linux-x64-gnu": "^4.28.1" }, "peerDependencies": { "@babel/runtime": "7.x" @@ -2097,9 +2350,9 @@ } }, "node_modules/@web3auth/mpc-core-kit": { - "version": "4.1.5-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.5-alpha.0.tgz", - "integrity": "sha512-elZS2S/HcHYASz5HcPUckOOdzLf4IQiEK5JFMD433SMluroaCoGRIbFvt4pwNkZ53719EH7gGbybxOg6fwjenw==", + "version": "4.1.6-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.6-alpha.0.tgz", + "integrity": "sha512-/OAF/xxlisEcsYuHheyuxZkParq7OVY+LUVGr7hvRU+bKIuMS1KrVc0RZFoQKfR2Q0CfZbgFO+jKJWa0meBuAg==", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", @@ -2119,6 +2372,7 @@ "@toruslabs/tss-client": "^3.3.0-alpha.0", "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", "@toruslabs/tss-frost-common": "^1.0.1", + "@web3auth/auth": "^9.6.1", "bn.js": "^5.2.1", "bowser": "^2.11.0", "elliptic": "^6.5.7", @@ -2146,9 +2400,9 @@ } }, "node_modules/@web3auth/mpc-passkey-plugin": { - "version": "0.1.12-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.12-alpha.0.tgz", - "integrity": "sha512-eCaPsJYpOo4iMpsxLaaTSI8tt8Au8JbPRfJpM9whFfBY23pTE3ojIPSLGjG7RRY+/wK2tpCo6jpvX22EIN2cuQ==", + "version": "0.1.15-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.15-alpha.0.tgz", + "integrity": "sha512-gmUCFD3XQScpG+PXT6I7ZUBG0Y/UwMKdJgx9bCVBBQ79lJWQfkPhQ377xamvKcXLbJd629de2lKM+JwRb3t0Bw==", "license": "ISC", "dependencies": { "@simplewebauthn/browser": "^11.0.0", @@ -2160,6 +2414,7 @@ "@toruslabs/torus.js": "15.2.0-alpha.0", "@web3auth/auth": "^9.4.1", "base64url": "^3.0.1", + "bowser": "^2.11.0", "cbor-x": "^1.6.0", "loglevel": "^1.9.2" }, @@ -2168,7 +2423,7 @@ "npm": ">=9.x" }, "peerDependencies": { - "@web3auth/mpc-core-kit": "~4.1.5-alpha.0" + "@web3auth/mpc-core-kit": "~4.1.6-alpha.0" } }, "node_modules/@webassemblyjs/ast": { @@ -4905,6 +5160,21 @@ "license": "ISC", "peer": true }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -7328,6 +7598,20 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index ec5a1b6c..912aae8a 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -14,8 +14,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.5-alpha.0", - "@web3auth/mpc-passkey-plugin": "0.1.12-alpha.0", + "@web3auth/mpc-core-kit": "4.1.6-alpha.0", + "@web3auth/mpc-passkey-plugin": "0.1.15-alpha.0", "@toruslabs/torus.js": "15.2.0-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index 3a7980e8..13deb977 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -14,7 +14,7 @@ import { makeEthereumSigner, SIG_TYPE, } from "@web3auth/mpc-core-kit"; -import { PasskeysPlugin } from "@web3auth/mpc-passkey-plugin"; +import { PasskeysPlugin, shouldSupportPasskey } from "@web3auth/mpc-passkey-plugin"; import Web3 from "web3"; import { CHAIN_NAMESPACES, CustomChainConfig, IProvider } from "@web3auth/base"; import { EthereumSigningProvider } from "@web3auth/ethereum-mpc-provider"; @@ -24,7 +24,6 @@ import { tssLib as tssLibDkls } from "@toruslabs/tss-dkls-lib"; import{ tssLib as tssLibFrost } from "@toruslabs/tss-frost-lib"; import{ tssLib as tssLibFrostBip340 } from "@toruslabs/tss-frost-lib-bip340"; -import bowser from "bowser"; @@ -33,65 +32,7 @@ import jwt, { Algorithm } from "jsonwebtoken"; import { flow } from "./flow"; type TssLib = typeof tssLibDkls | typeof tssLibFrost | typeof tssLibFrostBip340; -const PASSKEYS_ALLOWED_MAP = [bowser.OS_MAP.iOS, bowser.OS_MAP.MacOS, bowser.OS_MAP.Android, bowser.OS_MAP.Windows]; -const getWindowsVersion = (osVersion: string) => { - const windowsVersionRegex = /NT (\d+\.\d+)/; - const match = osVersion.match(windowsVersionRegex); - if (match) return parseInt(match[1], 10); - return 0; -}; - - -const checkIfOSIsSupported = (osName: string, osVersion: string) => { - if (!PASSKEYS_ALLOWED_MAP.includes(osName)) return false; - if (osName === bowser.OS_MAP.MacOS) return true; - switch (osName) { - case bowser.OS_MAP.iOS: { - const version = parseInt(osVersion.split(".")[0], 10); - return version >= 16; - } - case bowser.OS_MAP.Android: { - const version = parseInt(osVersion.split(".")[0], 10); - return version >= 9; - } - case bowser.OS_MAP.Windows: { - const version = getWindowsVersion(osVersion); - return version >= 10; - } - default: - return false; - } -}; - -export function shouldSupportPasskey(): { isBrowserSupported: boolean; isOsSupported: boolean; supportedBrowser?: Record } { - const browser = bowser.getParser(navigator.userAgent); - const osDetails = browser.parseOS(); - if (!osDetails) return { isBrowserSupported: false, isOsSupported: false }; - const osName = osDetails.name || ""; - const result = checkIfOSIsSupported(osName, osDetails.version || ""); - if (!result) return { isBrowserSupported: false, isOsSupported: false }; - const browserData: Record> = { - iOS: { - safari: ">=16", - chrome: ">=108", - }, - macOS: { - safari: ">=16", - chrome: ">=108", - firefox: ">=122", - }, - Android: { - chrome: ">=108", - }, - Windows: { - edge: ">=108", - chrome: ">=108", - }, - }; - const isBrowserSupported = browser.satisfies({ ...browserData }) || false; - return { isBrowserSupported, isOsSupported: true, supportedBrowser: browserData[osName] }; -} const uiConsole = (...args: any[]): void => { const el = document.querySelector("#console>p"); if (el) { @@ -200,7 +141,6 @@ function App() { }); await pkeyPlugin.init(); passkeyPlugin.current = pkeyPlugin; - debugger; if (window.location.hash.includes("#state")) { await newCoreKitInstance.handleRedirectResult(); } @@ -232,7 +172,7 @@ function App() { web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", web3AuthNetwork: selectedNetwork, uxMode: "redirect", - manualSync: true, + manualSync: false, storage: window.localStorage, tssLib: selectedTssLib, useDKG: false, @@ -291,6 +231,7 @@ function App() { await setupProvider(); } setCoreKitStatus(coreKitInstance.current.status); + await coreKitInstance.current.commitChanges(); } catch (error: unknown) { console.error(error); } @@ -386,7 +327,6 @@ function App() { throw new Error("passkeyPlugin not found"); } await coreKitInstance.current.logout(); - await passkeyPlugin.current.logout(); // TODO: remove this after adding event emitter in mpc core kit uiConsole("Log out"); setProvider(null); setCoreKitStatus(coreKitInstance.current.status); diff --git a/src/interfaces.ts b/src/interfaces.ts index 2a7baf8b..b683fef0 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -344,7 +344,6 @@ export interface IMPCContext { torusSp: TSSTorusServiceProvider | null; updateState: (newState: Partial) => void; getUserInfo: () => UserInfo; - logout: () => Promise; setupTkey: (params?: { providedImportKey?: string; sfaLoginResponse?: TorusKey | TorusLoginResponse | TorusAggregateLoginResponse; From 9729f9ca3b4421c195beeceb47b478750f241554 Mon Sep 17 00:00:00 2001 From: himanshu Date: Mon, 16 Dec 2024 09:38:47 +0530 Subject: [PATCH 30/37] cleanup --- package/README.md | 113 - package/dist/lib.cjs/constants.js | 63 - package/dist/lib.cjs/helper/browserStorage.js | 62 - package/dist/lib.cjs/helper/errors.js | 301 --- .../lib.cjs/helper/factorSerialization.js | 28 - .../dist/lib.cjs/helper/securityQuestion.js | 214 -- package/dist/lib.cjs/index.js | 56 - package/dist/lib.cjs/interfaces.js | 13 - package/dist/lib.cjs/mpcCoreKit.js | 1404 ---------- package/dist/lib.cjs/utils.js | 212 -- package/dist/lib.esm/constants.js | 50 - package/dist/lib.esm/helper/browserStorage.js | 59 - package/dist/lib.esm/helper/errors.js | 296 -- .../lib.esm/helper/factorSerialization.js | 25 - .../dist/lib.esm/helper/securityQuestion.js | 211 -- package/dist/lib.esm/index.js | 8 - package/dist/lib.esm/interfaces.js | 11 - package/dist/lib.esm/mpcCoreKit.js | 1402 ---------- package/dist/lib.esm/utils.js | 192 -- package/dist/mpcCoreKit.cjs.js | 2389 ----------------- package/dist/mpcCoreKit.esm.js | 2209 --------------- package/dist/mpcCoreKit.umd.min.js | 2 - .../dist/mpcCoreKit.umd.min.js.LICENSE.txt | 8 - package/dist/types/constants.d.ts | 42 - package/dist/types/helper/browserStorage.d.ts | 19 - package/dist/types/helper/errors.d.ts | 98 - .../types/helper/factorSerialization.d.ts | 12 - package/dist/types/helper/index.d.ts | 3 - .../dist/types/helper/securityQuestion.d.ts | 33 - package/dist/types/index.d.ts | 6 - package/dist/types/interfaces.d.ts | 407 --- package/dist/types/mpcCoreKit.d.ts | 120 - package/dist/types/utils.d.ts | 69 - package/package.json | 117 - 34 files changed, 10254 deletions(-) delete mode 100644 package/README.md delete mode 100644 package/dist/lib.cjs/constants.js delete mode 100644 package/dist/lib.cjs/helper/browserStorage.js delete mode 100644 package/dist/lib.cjs/helper/errors.js delete mode 100644 package/dist/lib.cjs/helper/factorSerialization.js delete mode 100644 package/dist/lib.cjs/helper/securityQuestion.js delete mode 100644 package/dist/lib.cjs/index.js delete mode 100644 package/dist/lib.cjs/interfaces.js delete mode 100644 package/dist/lib.cjs/mpcCoreKit.js delete mode 100644 package/dist/lib.cjs/utils.js delete mode 100644 package/dist/lib.esm/constants.js delete mode 100644 package/dist/lib.esm/helper/browserStorage.js delete mode 100644 package/dist/lib.esm/helper/errors.js delete mode 100644 package/dist/lib.esm/helper/factorSerialization.js delete mode 100644 package/dist/lib.esm/helper/securityQuestion.js delete mode 100644 package/dist/lib.esm/index.js delete mode 100644 package/dist/lib.esm/interfaces.js delete mode 100644 package/dist/lib.esm/mpcCoreKit.js delete mode 100644 package/dist/lib.esm/utils.js delete mode 100644 package/dist/mpcCoreKit.cjs.js delete mode 100644 package/dist/mpcCoreKit.esm.js delete mode 100644 package/dist/mpcCoreKit.umd.min.js delete mode 100644 package/dist/mpcCoreKit.umd.min.js.LICENSE.txt delete mode 100644 package/dist/types/constants.d.ts delete mode 100644 package/dist/types/helper/browserStorage.d.ts delete mode 100644 package/dist/types/helper/errors.d.ts delete mode 100644 package/dist/types/helper/factorSerialization.d.ts delete mode 100644 package/dist/types/helper/index.d.ts delete mode 100644 package/dist/types/helper/securityQuestion.d.ts delete mode 100644 package/dist/types/index.d.ts delete mode 100644 package/dist/types/interfaces.d.ts delete mode 100644 package/dist/types/mpcCoreKit.d.ts delete mode 100644 package/dist/types/utils.d.ts delete mode 100644 package/package.json diff --git a/package/README.md b/package/README.md deleted file mode 100644 index 8a2652d8..00000000 --- a/package/README.md +++ /dev/null @@ -1,113 +0,0 @@ -# Web3Auth MPC Core Kit - -[![npm version](https://img.shields.io/npm/v/@web3auth/mpc-core-kit?label=%22%22)](https://www.npmjs.com/package/@web3auth/mpc-core-kit/v/latest) -[![minzip](https://img.shields.io/bundlephobia/minzip/@web3auth/mpc-core-kit?label=%22%22)](https://bundlephobia.com/result?p=@web3auth/mpc-core-kit@latest) - -> Web3Auth is where passwordless auth meets non-custodial key infrastructure for Web3 apps and wallets. By aggregating OAuth (Google, Twitter, Discord) logins, different wallets and innovative Multi Party Computation (MPC) - Web3Auth provides a seamless login experience to every user on your application. - -Web3Auth MPC Core Kit Beta is a wrapper SDK that gives you all the needed functionalities for implementing the Web3Auth MPC features, giving you the flexibility of implementing your own UI and UX flows end to end. - -## 📖 Documentation - -Checkout the official [Web3Auth Documentation](https://web3auth.io/docs/sdk/) to get started. - -...and a lot more - -## 🔗 Installation - -```shell -npm install --save @web3auth/mpc-core-kit -``` - -## ⚡ Quick Start - -### Get your Client ID from Web3Auth Dashboard - -Hop on to the [Web3Auth Dashboard](https://dashboard.web3auth.io/) and create a new project. Use the Client ID of the project to start your integration. - -![Web3Auth Dashboard](https://github-production-user-asset-6210df.s3.amazonaws.com/6962565/272779464-043f6383-e671-4aa5-80fb-ec87c569e5ab.png) - -### Initialize Web3Auth for your preferred blockchain - -Web3Auth needs to initialise as soon as your app loads up to enable the user to log in. Preferably done within a constructor, initialisation is the step where you can pass on all the configurations for Web3Auth you want. A simple integration for Ethereum blockchain will look like this: - -```js -import { Web3AuthMPCCoreKit } from "@web3auth/mpc-core-kit"; - -const DEFAULT_CHAIN_CONFIG: CustomChainConfig = { - chainNamespace: CHAIN_NAMESPACES.EIP155, - chainId: "0x5", - rpcTarget: "https://rpc.ankr.com/eth_goerli", - displayName: "Goerli Testnet", - blockExplorer: "https://goerli.etherscan.io", - ticker: "ETH", - tickerName: "Ethereum", - decimals: 18, -}; - -//Initialize within your constructor -const web3auth = new Web3AuthMPCCoreKit({ - web3AuthClientId: 'YOUR_CLIENT_ID', - web3AuthNetwork: WEB3AUTH_NETWORK.DEVNET - chainConfig: DEFAULT_CHAIN_CONFIG -}); - - -await web3auth.init(); -``` - -### Login your User - -Once you're done initialising, just create a button that triggers login for your preferred social channel for the user on their request. You can further use the returned provider for making RPC calls to the blockchain. - - -```js - const verifierConfig = { - subVerifierDetails: { - typeOfLogin: 'google', - verifier: 'w3a-google-demo', - clientId: - '519228911939-cri01h55lsjbsia1k7ll6qpalrus75ps.apps.googleusercontent.com', - } - } as SubVerifierDetailsParams; - - await coreKitInstance.loginWithOAuth(verifierConfig); -``` - -For JWT(idToken) login -```js - const idTokenLoginParams = { - verifier: "torus-test-health", - verifierId: parsedToken.email, - idToken, - } as IdTokenLoginParams; - - await coreKitInstance.loginWithJWT(idTokenLoginParams); -``` - - - -## 🩹 Examples - -Checkout the examples for your preferred blockchain and platform in our [examples repository](https://github.com/Web3Auth/web3auth-core-kit-examples) - -## 🌐 Demo - -Checkout the [Web3Auth Demo](https://demo-app.web3auth.io/) to see how Web3Auth can be used in your application. - -## 💬 Troubleshooting and Support - -- Have a look at our [Community Portal](https://community.web3auth.io/) to see if anyone has any questions or issues you might be having. Feel free to reate new topics and we'll help you out as soon as possible. -- Checkout our [Troubleshooting Documentation Page](https://web3auth.io/docs/troubleshooting) to know the common issues and solutions. -- For Priority Support, please have a look at our [Pricing Page](https://web3auth.io/pricing.html) for the plan that suits your needs. - - -### Development steps:- - #### Install dependencies: - npm i - - #### Run tests: - npm run test - - #### Build: - npm run build diff --git a/package/dist/lib.cjs/constants.js b/package/dist/lib.cjs/constants.js deleted file mode 100644 index 9bf83928..00000000 --- a/package/dist/lib.cjs/constants.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var constants = require('@toruslabs/constants'); - -const WEB3AUTH_NETWORK = { - MAINNET: constants.TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET, - DEVNET: constants.TORUS_SAPPHIRE_NETWORK.SAPPHIRE_DEVNET -}; -const USER_PATH = { - NEW: "NewAccount", - EXISTING: "ExistingAccount", - REHYDRATE: "RehydrateAccount", - RECOVER: "RecoverAccount" -}; -let FactorKeyTypeShareDescription = /*#__PURE__*/function (FactorKeyTypeShareDescription) { - FactorKeyTypeShareDescription["HashedShare"] = "hashedShare"; - FactorKeyTypeShareDescription["SecurityQuestions"] = "tssSecurityQuestions"; - FactorKeyTypeShareDescription["DeviceShare"] = "deviceShare"; - FactorKeyTypeShareDescription["SeedPhrase"] = "seedPhrase"; - FactorKeyTypeShareDescription["PasswordShare"] = "passwordShare"; - FactorKeyTypeShareDescription["SocialShare"] = "socialShare"; - FactorKeyTypeShareDescription["Other"] = "Other"; - return FactorKeyTypeShareDescription; -}({}); -const DELIMITERS = { - Delimiter1: "\u001c", - Delimiter2: "\u0015", - Delimiter3: "\u0016", - Delimiter4: "\u0017" -}; -const ERRORS = { - TKEY_SHARES_REQUIRED: "required more shares", - INVALID_BACKUP_SHARE: "invalid backup share" -}; -const SOCIAL_FACTOR_INDEX = 1; - -/** - * Defines the TSS Share Index in a simplified way for better implementation. - **/ -let TssShareType = /*#__PURE__*/function (TssShareType) { - TssShareType[TssShareType["DEVICE"] = 2] = "DEVICE"; - TssShareType[TssShareType["RECOVERY"] = 3] = "RECOVERY"; - return TssShareType; -}({}); -const VALID_SHARE_INDICES = [TssShareType.DEVICE, TssShareType.RECOVERY]; -const SCALAR_LEN = 32; // Length of secp256k1 scalar in bytes. -const FIELD_ELEMENT_HEX_LEN = 32 * 2; // Length of secp256k1 field element in hex form. - -const MAX_FACTORS = 10; // Maximum number of factors that can be added to an account. -const SOCIAL_TKEY_INDEX = 1; - -exports.DELIMITERS = DELIMITERS; -exports.ERRORS = ERRORS; -exports.FIELD_ELEMENT_HEX_LEN = FIELD_ELEMENT_HEX_LEN; -exports.FactorKeyTypeShareDescription = FactorKeyTypeShareDescription; -exports.MAX_FACTORS = MAX_FACTORS; -exports.SCALAR_LEN = SCALAR_LEN; -exports.SOCIAL_FACTOR_INDEX = SOCIAL_FACTOR_INDEX; -exports.SOCIAL_TKEY_INDEX = SOCIAL_TKEY_INDEX; -exports.TssShareType = TssShareType; -exports.USER_PATH = USER_PATH; -exports.VALID_SHARE_INDICES = VALID_SHARE_INDICES; -exports.WEB3AUTH_NETWORK = WEB3AUTH_NETWORK; diff --git a/package/dist/lib.cjs/helper/browserStorage.js b/package/dist/lib.cjs/helper/browserStorage.js deleted file mode 100644 index 1b857465..00000000 --- a/package/dist/lib.cjs/helper/browserStorage.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; - -var _defineProperty = require('@babel/runtime/helpers/defineProperty'); -var errors = require('./errors.js'); - -class MemoryStorage { - constructor() { - _defineProperty(this, "_store", {}); - } - getItem(key) { - return this._store[key] || null; - } - setItem(key, value) { - this._store[key] = value; - } - removeItem(key) { - delete this._store[key]; - } - clear() { - this._store = {}; - } -} -class AsyncStorage { - constructor(storeKey, storage) { - _defineProperty(this, "storage", void 0); - _defineProperty(this, "_storeKey", void 0); - this.storage = storage; - this._storeKey = storeKey; - } - async toJSON() { - const result = await this.storage.getItem(this._storeKey); - if (!result) { - throw errors.default.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`); - } - return result; - } - async resetStore() { - const currStore = await this.getStore(); - await this.storage.setItem(this._storeKey, JSON.stringify({})); - return currStore; - } - async getStore() { - return JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - } - async get(key) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - return store[key]; - } - async set(key, value) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - store[key] = value; - await this.storage.setItem(this._storeKey, JSON.stringify(store)); - } - async remove(key) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - delete store[key]; - await this.storage.setItem(this._storeKey, JSON.stringify(store)); - } -} - -exports.AsyncStorage = AsyncStorage; -exports.MemoryStorage = MemoryStorage; diff --git a/package/dist/lib.cjs/helper/errors.js b/package/dist/lib.cjs/helper/errors.js deleted file mode 100644 index 08e0b758..00000000 --- a/package/dist/lib.cjs/helper/errors.js +++ /dev/null @@ -1,301 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var _defineProperty = require('@babel/runtime/helpers/defineProperty'); - -/** - * Fix the prototype chain of the error - * - * Use Object.setPrototypeOf - * Support ES6 environments - * - * Fallback setting __proto__ - * Support IE11+, see https://docs.microsoft.com/en-us/scripting/javascript/reference/javascript-version-information - */ -function fixProto(target, prototype) { - const { - setPrototypeOf - } = Object; - if (setPrototypeOf) { - setPrototypeOf(target, prototype); - } else { - // eslint-disable-next-line no-proto, @typescript-eslint/no-explicit-any - target.__proto__ = prototype; - } -} - -/** - * Capture and fix the error stack when available - * - * Use Error.captureStackTrace - * Support v8 environments - */ -function fixStack(target, fn = target.constructor) { - const { - captureStackTrace - } = Error; - if (captureStackTrace) { - captureStackTrace(target, fn); - } -} - -// copy from https://github.com/microsoft/TypeScript/blob/main/lib/lib.es2022.error.d.ts -// avoid typescript isue https://github.com/adriengibrat/ts-custom-error/issues/81 - -/** - * Allows to easily extend a base class to create custom applicative errors. - * - * example: - * ``` - * class HttpError extends CustomError { - * public constructor( - * public code: number, - * message?: string, - * cause?: Error, - * ) { - * super(message, { cause }) - * } - * } - * - * new HttpError(404, 'Not found') - * ``` - */ -class CustomError extends Error { - constructor(message, options) { - super(message, options); - // set error name as constructor name, make it not enumerable to keep native Error behavior - // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target#new.target_in_constructors - // see https://github.com/adriengibrat/ts-custom-error/issues/30 - _defineProperty(this, "name", void 0); - Object.defineProperty(this, "name", { - value: new.target.name, - enumerable: false, - configurable: true - }); - // fix the extended error prototype chain - // because typescript __extends implementation can't - // see https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work - fixProto(this, new.target.prototype); - // try to remove contructor from stack trace - fixStack(this); - } -} -class AbstractCoreKitError extends CustomError { - constructor(code, message) { - // takes care of stack and proto - super(message); - _defineProperty(this, "code", void 0); - _defineProperty(this, "message", void 0); - this.code = code; - this.message = message || ""; - // Set name explicitly as minification can mangle class names - Object.defineProperty(this, "name", { - value: "TkeyError" - }); - } - toJSON() { - return { - name: this.name, - code: this.code, - message: this.message - }; - } - toString() { - return JSON.stringify(this.toJSON()); - } -} - -/** - * CoreKitError, extension for Error using CustomError - * - * Usage: - * 1. throw CoreKitError.factorKeyNotPresent("Required factor key missing in the operation."); // Use a predefined method to throw a common error - * 2. throw CoreKitError.fromCode(1001); // Throw an error using a code for a common error - * 3. throw new CoreKitError(1102, "'tkey' instance has not been initialized."); // Throw a specific error with a custom message - * - * Guide: - * 1000 - Configuration errors - * 1100 - TSS and key management errors - * 1200 - Factor key and authentication errors - * 1300 - Initialization and session management - */ -class CoreKitError extends AbstractCoreKitError { - constructor(code, message) { - super(code, message); - Object.defineProperty(this, "name", { - value: "CoreKitError" - }); - } - static fromCode(code, extraMessage = "") { - return new CoreKitError(code, `${CoreKitError.messages[code]} ${extraMessage}`); - } - static default(extraMessage = "") { - return new CoreKitError(1000, `${CoreKitError.messages[1000]} ${extraMessage}`); - } - - // Configuration errors - static chainConfigInvalid(extraMessage = "") { - return CoreKitError.fromCode(1001, extraMessage); - } - static clientIdInvalid(extraMessage = "") { - return CoreKitError.fromCode(1002, extraMessage); - } - static storageTypeUnsupported(extraMessage = "") { - return CoreKitError.fromCode(1003, extraMessage); - } - static oauthLoginUnsupported(extraMessage = "") { - return CoreKitError.fromCode(1004, extraMessage); - } - static noValidStorageOptionFound(extraMessage = "") { - return CoreKitError.fromCode(1005, extraMessage); - } - static noDataFoundInStorage(extraMessage = "") { - return CoreKitError.fromCode(1006, extraMessage); - } - static invalidConfig(extraMessage = "") { - return CoreKitError.fromCode(1007, extraMessage); - } - - // TSS and key management errors - static tssLibRequired(extraMessage = "") { - return CoreKitError.fromCode(1101, extraMessage); - } - static tkeyInstanceUninitialized(extraMessage = "") { - return CoreKitError.fromCode(1102, extraMessage); - } - static duplicateTssIndex(extraMessage = "") { - return CoreKitError.fromCode(1103, extraMessage); - } - static nodeDetailsRetrievalFailed(extraMessage = "") { - return CoreKitError.fromCode(1104, extraMessage); - } - static prefetchValueExceeded(extraMessage = "") { - return CoreKitError.fromCode(1105, extraMessage); - } - static invalidTorusLoginResponse(extraMessage = "") { - return CoreKitError.fromCode(1106, extraMessage); - } - static invalidTorusAggregateLoginResponse(extraMessage = "") { - return CoreKitError.fromCode(1107, extraMessage); - } - static unsupportedRedirectMethod(extraMessage = "") { - return CoreKitError.fromCode(1108, extraMessage); - } - static postBoxKeyMissing(extraMessage = "") { - return CoreKitError.fromCode(1109, extraMessage); - } - static tssShareTypeIndexMissing(extraMessage = "") { - return CoreKitError.fromCode(1110, extraMessage); - } - static tssPublicKeyOrEndpointsMissing(extraMessage = "") { - return CoreKitError.fromCode(1111, extraMessage); - } - static activeSessionNotFound(extraMessage = "") { - return CoreKitError.fromCode(1112, extraMessage); - } - static tssNoncesMissing(extraMessage = "") { - return CoreKitError.fromCode(1113, extraMessage); - } - static tssKeyImportNotAllowed(extraMessage = "") { - return CoreKitError.fromCode(1114, extraMessage); - } - - // Factor key and authentication errors - static factorKeyNotPresent(extraMessage = "") { - return CoreKitError.fromCode(1201, extraMessage); - } - static factorKeyAlreadyExists(extraMessage = "") { - return CoreKitError.fromCode(1202, extraMessage); - } - static mfaAlreadyEnabled(extraMessage = "") { - return CoreKitError.fromCode(1203, extraMessage); - } - static cannotDeleteLastFactor(extraMessage = "") { - return CoreKitError.fromCode(1204, extraMessage); - } - static factorInUseCannotBeDeleted(extraMessage = "") { - return CoreKitError.fromCode(1205, extraMessage); - } - static userNotLoggedIn(extraMessage = "") { - return CoreKitError.fromCode(1206, extraMessage); - } - static providedFactorKeyInvalid(extraMessage = "") { - return CoreKitError.fromCode(1207, extraMessage); - } - static factorEncsMissing(extraMessage = "") { - return CoreKitError.fromCode(1208, extraMessage); - } - static noMetadataFound(extraMessage = "") { - return CoreKitError.fromCode(1209, extraMessage); - } - static newShareIndexInvalid(extraMessage = "") { - return CoreKitError.fromCode(1210, extraMessage); - } - static maximumFactorsReached(extraMessage = "") { - return CoreKitError.fromCode(1211, extraMessage); - } - static noMetadataShareFound(extraMessage = "") { - return CoreKitError.fromCode(1212, extraMessage); - } - static signaturesNotPresent(extraMessage = "") { - return CoreKitError.fromCode(1213, extraMessage); - } - static factorPubsMissing(extraMessage = "") { - return CoreKitError.fromCode(1214, extraMessage); - } - - // Initialization and session management - static commitChangesBeforeMFA(extraMessage = "") { - return CoreKitError.fromCode(1301, extraMessage); - } - static mpcCoreKitNotInitialized(extraMessage = "") { - return CoreKitError.fromCode(1302, extraMessage); - } -} -_defineProperty(CoreKitError, "messages", { - // Configuration errors - 1001: "You must specify a valid eip155 chain configuration in the options.", - 1002: "You must specify a web3auth clientId.", - 1003: "Unsupported storage type in this UX mode.", - 1004: "OAuth login is NOT supported in this UX mode.", - 1005: "No valid storage option found.", - 1006: "No data found in storage.", - 1007: "Invalid config.", - // TSS and key management errors - 1101: "'tssLib' is required when running in this UX mode.", - 1102: "'tkey' instance has not been initialized.", - 1103: "Duplicate TSS index found. Ensure that each TSS index is unique.", - 1104: "Failed to retrieve node details. Please check your network connection and try again.", - 1105: "The prefetch TSS public keys exceeds the maximum allowed limit of 3.", - 1106: "Invalid 'TorusLoginResponse' data provided.", - 1107: "Invalid 'TorusAggregateLoginResponse' data provided.", - 1108: "Unsupported method type encountered in redirect result.", - 1109: "OAuthKey not present in state.", - 1110: "TSS Share Type (Index) not present in state when getting current factor key.", - 1111: "'tssPubKey' or 'torusNodeTSSEndpoints' are missing.", - 1112: "No active session found.", - 1113: "tssNonces not present in metadata when getting tss nonce.", - 1114: "A TSS key cannot be imported for an existing user who already has a key configured.", - // Factor key and authentication errors - 1201: "factorKey not present in state when required.", - 1202: "A factor with the same key already exists.", - 1203: "MFA is already enabled.", - 1204: "Cannot delete the last remaining factor as at least one factor is required.", - 1205: "The factor currently in use cannot be deleted.", - 1206: "User is not logged in.", - 1207: "Provided factor key is invalid.", - 1208: "'factorEncs' mpt [resemt].", - 1209: "No metadata found for the provided factor key. Consider resetting your account if this error persists.", - 1210: "The new share index is not valid. It must be one of the valid share indices.", - 1211: "The maximum number of allowable factors (10) has been reached.", - 1212: "No metadata share found in the current polynomial.", - 1213: "No signatures found.", - 1214: "Factor public keys not present", - // Initialization and session management - 1301: "The 'CommitChanges' method must be called before enabling MFA.", - 1302: "The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations." -}); - -exports.CustomError = CustomError; -exports.default = CoreKitError; diff --git a/package/dist/lib.cjs/helper/factorSerialization.js b/package/dist/lib.cjs/helper/factorSerialization.js deleted file mode 100644 index ac2d7b10..00000000 --- a/package/dist/lib.cjs/helper/factorSerialization.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var shareSerialization = require('@tkey/share-serialization'); -var BN = require('bn.js'); - -/** - * Converts a mnemonic to a BN. - * @param shareMnemonic - The mnemonic to convert. - * @returns A BN respective to your mnemonic - */ -function mnemonicToKey(shareMnemonic) { - const factorKey = shareSerialization.ShareSerializationModule.deserializeMnemonic(shareMnemonic); - return factorKey.toString("hex"); -} - -/** - * Converts a BN to a mnemonic. - * @param shareBN - The BN to convert. - * @returns A mnemonic respective to your BN - */ -function keyToMnemonic(shareHex) { - const shareBN = new BN(shareHex, "hex"); - const mnemonic = shareSerialization.ShareSerializationModule.serializeMnemonic(shareBN); - return mnemonic; -} - -exports.keyToMnemonic = keyToMnemonic; -exports.mnemonicToKey = mnemonicToKey; diff --git a/package/dist/lib.cjs/helper/securityQuestion.js b/package/dist/lib.cjs/helper/securityQuestion.js deleted file mode 100644 index ff6ef721..00000000 --- a/package/dist/lib.cjs/helper/securityQuestion.js +++ /dev/null @@ -1,214 +0,0 @@ -'use strict'; - -var _objectSpread = require('@babel/runtime/helpers/objectSpread2'); -var _defineProperty = require('@babel/runtime/helpers/defineProperty'); -var commonTypes = require('@tkey/common-types'); -var tss = require('@tkey/tss'); -var torus_js = require('@toruslabs/torus.js'); -var BN = require('bn.js'); -var constants = require('../constants.js'); - -class TssSecurityQuestionStore { - constructor(shareIndex, factorPublicKey, question) { - _defineProperty(this, "shareIndex", void 0); - _defineProperty(this, "factorPublicKey", void 0); - _defineProperty(this, "question", void 0); - this.shareIndex = shareIndex; - this.factorPublicKey = factorPublicKey; - this.question = question; - } - static fromJSON(json) { - const { - shareIndex, - factorPublicKey, - question - } = json; - return new TssSecurityQuestionStore(shareIndex, factorPublicKey, question); - } - toJSON() { - return { - shareIndex: this.shareIndex, - factorPublicKey: this.factorPublicKey, - question: this.question - }; - } -} -class TssSecurityQuestion { - constructor() { - _defineProperty(this, "storeDomainName", "tssSecurityQuestion"); - } - async setSecurityQuestion(params) { - const { - mpcCoreKit, - question, - answer, - description - } = params; - let { - shareType - } = params; - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - if (!question || !answer) { - throw new Error("question and answer are required"); - } - const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; - - // default using recovery index - if (!shareType) { - shareType = constants.TssShareType.RECOVERY; - } else if (!constants.VALID_SHARE_INDICES.includes(shareType)) { - throw new Error(`invalid share type: must be one of ${constants.VALID_SHARE_INDICES}`); - } - // Check for existing security question - const tkey = mpcCoreKit.tKey; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (storeDomain && storeDomain.question) { - throw new Error("Security question already exists"); - } - - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(commonTypes.secp256k1, true).toString("hex") + tkey.tssTag; - let hash = torus_js.keccak256(Buffer.from(answer + pubKey, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new BN(hash, "hex"); - const descriptionFinal = _objectSpread({ - question - }, description); - await mpcCoreKit.createFactor({ - factorKey: factorKeyBN, - shareType, - shareDescription: constants.FactorKeyTypeShareDescription.SecurityQuestions, - additionalMetadata: descriptionFinal - }); - // set store domain - const tkeyPt = tss.getPubKeyPoint(factorKeyBN, tss.factorKeyCurve); - const factorPub = tkeyPt.toSEC1(tss.factorKeyCurve, true).toString("hex"); - const storeData = new TssSecurityQuestionStore(shareType.toString(), factorPub, question); - tkey.metadata.setGeneralStoreDomain(domainKey, storeData.toJSON()); - - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - return factorKeyBN.toString("hex").padStart(64, "0"); - } - async changeSecurityQuestion(params) { - const { - mpcCoreKit, - newQuestion, - newAnswer, - answer - } = params; - if (!newQuestion || !newAnswer || !answer) { - throw new Error("question and answer are required"); - } - // Check for existing security question - const tkey = mpcCoreKit.tKey; - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(commonTypes.secp256k1, true).toString("hex") + tkey.tssTag; - const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - const preHash = answer + pubKey; - let hash = torus_js.keccak256(Buffer.from(preHash, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new BN(hash, "hex"); - const factorKeyPt = tss.getPubKeyPoint(factorKeyBN, tss.factorKeyCurve); - if (factorKeyPt.toSEC1(tss.factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { - throw new Error("Invalid answer"); - } - - // create new factor key - const prenewHash = newAnswer + pubKey; - let newHash = torus_js.keccak256(Buffer.from(prenewHash, "utf8")); - newHash = newHash.startsWith("0x") ? newHash.slice(2) : newHash; - const newAnswerBN = new BN(newHash, "hex"); - const newFactorPt = commonTypes.Point.fromScalar(newAnswerBN, tss.factorKeyCurve); - await mpcCoreKit.createFactor({ - factorKey: newAnswerBN, - shareType: parseInt(store.shareIndex), - shareDescription: constants.FactorKeyTypeShareDescription.SecurityQuestions - }); - - // update mpcCoreKit state to use new factor key during change password if mpc factor key is security question factor - if (mpcCoreKit.state.factorKey.eq(factorKeyBN)) { - await mpcCoreKit.inputFactorKey(newAnswerBN); - } - // delete after create factor to prevent last key issue - // delete old factor key and device share - await mpcCoreKit.deleteFactor(factorKeyPt, factorKeyBN); - store.factorPublicKey = newFactorPt.toSEC1(tss.factorKeyCurve, true).toString("hex"); - store.question = newQuestion; - tkey.metadata.setGeneralStoreDomain(domainKey, store.toJSON()); - - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - } - - // Should we check with answer before deleting? - async deleteSecurityQuestion(mpcCoreKit, deleteFactorKey = true) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const tkey = mpcCoreKit.tKey; - if (deleteFactorKey) { - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - if (store.factorPublicKey) { - await mpcCoreKit.deleteFactor(commonTypes.Point.fromSEC1(tss.factorKeyCurve, store.factorPublicKey)); - } - } - tkey.metadata.deleteGeneralStoreDomain(domainKey); - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - } - async recoverFactor(mpcCoreKit, answer) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - if (!answer) { - throw new Error("question and answer are required"); - } - const tkey = mpcCoreKit.tKey; - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(commonTypes.secp256k1, true).toString("hex") + tkey.tssTag; - let hash = torus_js.keccak256(Buffer.from(answer + pubKey, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new BN(hash, "hex"); - const factorKeyPt = commonTypes.Point.fromScalar(factorKeyBN, tss.factorKeyCurve); - if (factorKeyPt.toSEC1(tss.factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { - throw new Error("Invalid answer"); - } - return hash; - } - getQuestion(mpcCoreKit) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - const tkey = mpcCoreKit.tKey; - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - return store.question; - } -} - -exports.TssSecurityQuestion = TssSecurityQuestion; -exports.TssSecurityQuestionStore = TssSecurityQuestionStore; diff --git a/package/dist/lib.cjs/index.js b/package/dist/lib.cjs/index.js deleted file mode 100644 index f88c21be..00000000 --- a/package/dist/lib.cjs/index.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -var constants = require('./constants.js'); -var browserStorage = require('./helper/browserStorage.js'); -var factorSerialization = require('./helper/factorSerialization.js'); -var securityQuestion = require('./helper/securityQuestion.js'); -var interfaces = require('./interfaces.js'); -var mpcCoreKit = require('./mpcCoreKit.js'); -var utils = require('./utils.js'); -var tss = require('@tkey/tss'); - - - -exports.DELIMITERS = constants.DELIMITERS; -exports.ERRORS = constants.ERRORS; -exports.FIELD_ELEMENT_HEX_LEN = constants.FIELD_ELEMENT_HEX_LEN; -exports.FactorKeyTypeShareDescription = constants.FactorKeyTypeShareDescription; -exports.MAX_FACTORS = constants.MAX_FACTORS; -exports.SCALAR_LEN = constants.SCALAR_LEN; -exports.SOCIAL_FACTOR_INDEX = constants.SOCIAL_FACTOR_INDEX; -exports.SOCIAL_TKEY_INDEX = constants.SOCIAL_TKEY_INDEX; -exports.TssShareType = constants.TssShareType; -exports.USER_PATH = constants.USER_PATH; -exports.VALID_SHARE_INDICES = constants.VALID_SHARE_INDICES; -exports.WEB3AUTH_NETWORK = constants.WEB3AUTH_NETWORK; -exports.AsyncStorage = browserStorage.AsyncStorage; -exports.MemoryStorage = browserStorage.MemoryStorage; -exports.keyToMnemonic = factorSerialization.keyToMnemonic; -exports.mnemonicToKey = factorSerialization.mnemonicToKey; -exports.TssSecurityQuestion = securityQuestion.TssSecurityQuestion; -exports.TssSecurityQuestionStore = securityQuestion.TssSecurityQuestionStore; -exports.COREKIT_STATUS = interfaces.COREKIT_STATUS; -exports.Web3AuthMPCCoreKit = mpcCoreKit.Web3AuthMPCCoreKit; -exports.deriveShareCoefficients = utils.deriveShareCoefficients; -exports.ed25519 = utils.ed25519; -exports.fraction = utils.fraction; -exports.generateEd25519Seed = utils.generateEd25519Seed; -exports.generateFactorKey = utils.generateFactorKey; -exports.generateSessionNonce = utils.generateSessionNonce; -exports.generateTSSEndpoints = utils.generateTSSEndpoints; -exports.getHashedPrivateKey = utils.getHashedPrivateKey; -exports.getSessionId = utils.getSessionId; -exports.lagrangeCoefficient = utils.lagrangeCoefficient; -exports.lagrangeCoefficients = utils.lagrangeCoefficients; -exports.log = utils.log; -exports.makeEthereumSigner = utils.makeEthereumSigner; -exports.parseToken = utils.parseToken; -exports.randomBytes = utils.randomBytes; -exports.sampleEndpoints = utils.sampleEndpoints; -exports.scalarBNToBufferSEC1 = utils.scalarBNToBufferSEC1; -exports.sigToRSV = utils.sigToRSV; -exports.storageAvailable = utils.storageAvailable; -Object.defineProperty(exports, "factorKeyCurve", { - enumerable: true, - get: function () { return tss.factorKeyCurve; } -}); diff --git a/package/dist/lib.cjs/interfaces.js b/package/dist/lib.cjs/interfaces.js deleted file mode 100644 index d5891157..00000000 --- a/package/dist/lib.cjs/interfaces.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -// TODO: move the types to a base class for both dkls and frost in future - -let COREKIT_STATUS = /*#__PURE__*/function (COREKIT_STATUS) { - COREKIT_STATUS["NOT_INITIALIZED"] = "NOT_INITIALIZED"; - COREKIT_STATUS["INITIALIZED"] = "INITIALIZED"; - COREKIT_STATUS["REQUIRED_SHARE"] = "REQUIRED_SHARE"; - COREKIT_STATUS["LOGGED_IN"] = "LOGGED_IN"; - return COREKIT_STATUS; -}({}); - -exports.COREKIT_STATUS = COREKIT_STATUS; diff --git a/package/dist/lib.cjs/mpcCoreKit.js b/package/dist/lib.cjs/mpcCoreKit.js deleted file mode 100644 index ccdb1a0a..00000000 --- a/package/dist/lib.cjs/mpcCoreKit.js +++ /dev/null @@ -1,1404 +0,0 @@ -'use strict'; - -var _objectSpread = require('@babel/runtime/helpers/objectSpread2'); -var _defineProperty = require('@babel/runtime/helpers/defineProperty'); -var commonTypes = require('@tkey/common-types'); -var core = require('@tkey/core'); -var shareSerialization = require('@tkey/share-serialization'); -var storageLayerTorus = require('@tkey/storage-layer-torus'); -var tss = require('@tkey/tss'); -var constants$1 = require('@toruslabs/constants'); -var customauth = require('@toruslabs/customauth'); -var ellipticWrapper = require('@toruslabs/elliptic-wrapper'); -var fndBase = require('@toruslabs/fnd-base'); -var metadataHelpers = require('@toruslabs/metadata-helpers'); -var sessionManager = require('@toruslabs/session-manager'); -var torus_js = require('@toruslabs/torus.js'); -var tssClient = require('@toruslabs/tss-client'); -var tssFrostClient = require('@toruslabs/tss-frost-client'); -var BN = require('bn.js'); -var bowser = require('bowser'); -var elliptic = require('elliptic'); -var constants = require('./constants.js'); -var browserStorage = require('./helper/browserStorage.js'); -var errors = require('./helper/errors.js'); -var interfaces = require('./interfaces.js'); -var utils = require('./utils.js'); - -class Web3AuthMPCCoreKit { - constructor(options) { - var _window; - _defineProperty(this, "state", { - accountIndex: 0 - }); - _defineProperty(this, "torusSp", null); - _defineProperty(this, "options", void 0); - _defineProperty(this, "storageLayer", null); - _defineProperty(this, "tkey", null); - _defineProperty(this, "sessionManager", void 0); - _defineProperty(this, "currentStorage", void 0); - _defineProperty(this, "_storageBaseKey", "corekit_store"); - _defineProperty(this, "enableLogging", false); - _defineProperty(this, "ready", false); - _defineProperty(this, "_tssLib", void 0); - _defineProperty(this, "wasmLib", void 0); - _defineProperty(this, "_keyType", void 0); - _defineProperty(this, "atomicCallStackCounter", 0); - _defineProperty(this, "getTssFactorPub", () => { - this.checkReady(); - if (!this.state.factorKey) { - throw errors.default.factorKeyNotPresent("factorKey not present in state when getting tss factor public key."); - } - const factorPubsList = this.tKey.metadata.factorPubs[this.tKey.tssTag]; - return factorPubsList.map(factorPub => factorPub.toSEC1(tss.factorKeyCurve, true).toString("hex")); - }); - if (!options.web3AuthClientId) { - throw errors.default.clientIdInvalid(); - } - this._tssLib = options.tssLib; - this._keyType = options.tssLib.keyType; - const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); - if (options.enableLogging) { - utils.log.enableAll(); - this.enableLogging = true; - } else utils.log.setLevel("error"); - if (typeof options.manualSync !== "boolean") options.manualSync = false; - if (!options.web3AuthNetwork) options.web3AuthNetwork = constants.WEB3AUTH_NETWORK.MAINNET; - // if sessionTime is not provided, it is defaulted to 86400 - if (!options.sessionTime) options.sessionTime = 86400; - if (!options.serverTimeOffset) options.serverTimeOffset = 0; - if (!options.uxMode) options.uxMode = customauth.UX_MODE.REDIRECT; - if (!options.redirectPathName) options.redirectPathName = "redirect"; - if (!options.baseUrl) options.baseUrl = isNodejsOrRN ? "https://localhost" : `${(_window = window) === null || _window === void 0 ? void 0 : _window.location.origin}/serviceworker`; - if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; - if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; - if (options.disableSessionManager === undefined) options.disableSessionManager = false; - this.options = options; - this.currentStorage = new browserStorage.AsyncStorage(this._storageBaseKey, options.storage); - if (!options.disableSessionManager) { - this.sessionManager = new sessionManager.SessionManager({ - sessionTime: options.sessionTime - }); - } - torus_js.Torus.setSessionTime(this.options.sessionTime); - } - get tKey() { - if (this.tkey === null) { - throw errors.default.tkeyInstanceUninitialized(); - } - return this.tkey; - } - get keyType() { - return this._keyType; - } - get signatures() { - var _this$state; - return (_this$state = this.state) !== null && _this$state !== void 0 && _this$state.signatures ? this.state.signatures : []; - } - get _storageKey() { - return this._storageBaseKey; - } - get status() { - try { - // metadata will be present if tkey is initialized (1 share) - // if 2 shares are present, then privKey will be present after metadatakey(tkey) reconstruction - const { - tkey - } = this; - if (!tkey) return interfaces.COREKIT_STATUS.NOT_INITIALIZED; - if (!tkey.metadata) return interfaces.COREKIT_STATUS.INITIALIZED; - if (!tkey.secp256k1Key || !this.state.factorKey) return interfaces.COREKIT_STATUS.REQUIRED_SHARE; - return interfaces.COREKIT_STATUS.LOGGED_IN; - } catch (e) {} - return interfaces.COREKIT_STATUS.NOT_INITIALIZED; - } - get sessionId() { - var _this$sessionManager; - return (_this$sessionManager = this.sessionManager) === null || _this$sessionManager === void 0 ? void 0 : _this$sessionManager.sessionId; - } - get supportsAccountIndex() { - return this._keyType !== commonTypes.KeyType.ed25519; - } - get verifier() { - var _this$state$userInfo, _this$state2; - if ((_this$state$userInfo = this.state.userInfo) !== null && _this$state$userInfo !== void 0 && _this$state$userInfo.aggregateVerifier) { - return this.state.userInfo.aggregateVerifier; - } - return (_this$state2 = this.state) !== null && _this$state2 !== void 0 && (_this$state2 = _this$state2.userInfo) !== null && _this$state2 !== void 0 && _this$state2.verifier ? this.state.userInfo.verifier : ""; - } - get verifierId() { - var _this$state3; - return (_this$state3 = this.state) !== null && _this$state3 !== void 0 && (_this$state3 = _this$state3.userInfo) !== null && _this$state3 !== void 0 && _this$state3.verifierId ? this.state.userInfo.verifierId : ""; - } - get isRedirectMode() { - return this.options.uxMode === customauth.UX_MODE.REDIRECT; - } - get useClientGeneratedTSSKey() { - return this.keyType === commonTypes.KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; - } - - // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : - // TssShareType.DEVICE and TssShareType.RECOVERY - // if the factors key provided is the same type recovery will not works - async _UNSAFE_recoverTssKey(factorKey) { - this.checkReady(); - const factorKeyBN = new BN(factorKey[0], "hex"); - const shareStore0 = await this.getFactorKeyMetadata(factorKeyBN); - await this.tKey.initialize({ - withShare: shareStore0 - }); - const tssShares = []; - const tssIndexes = []; - const tssIndexesBN = []; - for (let i = 0; i < factorKey.length; i++) { - const factorKeyBNInput = new BN(factorKey[i], "hex"); - const { - tssIndex, - tssShare - } = await this.tKey.getTSSShare(factorKeyBNInput); - if (tssIndexes.includes(tssIndex)) { - // reset instance before throw error - await this.init(); - throw errors.default.duplicateTssIndex(); - } - tssIndexes.push(tssIndex); - tssIndexesBN.push(new BN(tssIndex)); - tssShares.push(tssShare); - } - const finalKey = tss.lagrangeInterpolation(this.tkey.tssCurve, tssShares, tssIndexesBN); - // reset instance after recovery completed - await this.init(); - return finalKey.toString("hex", 64); - } - async init(params = { - handleRedirectResult: true - }) { - var _window2, _window3; - this.resetState(); - if (params.rehydrate === undefined) params.rehydrate = true; - const nodeDetails = fndBase.fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); - if (this.keyType === constants$1.KEY_TYPE.ED25519 && this.options.useDKG) { - throw errors.default.invalidConfig("DKG is not supported for ed25519 key type"); - } - this.torusSp = new tss.TSSTorusServiceProvider({ - customAuthArgs: { - web3AuthClientId: this.options.web3AuthClientId, - baseUrl: this.options.baseUrl, - uxMode: this.isNodejsOrRN(this.options.uxMode) ? customauth.UX_MODE.REDIRECT : this.options.uxMode, - network: this.options.web3AuthNetwork, - redirectPathName: this.options.redirectPathName, - locationReplaceOnRedirect: true, - serverTimeOffset: this.options.serverTimeOffset, - keyType: this.keyType, - useDkg: this.options.useDKG - } - }); - this.storageLayer = new storageLayerTorus.TorusStorageLayer({ - hostUrl: `${new URL(nodeDetails.torusNodeEndpoints[0]).origin}/metadata`, - enableLogging: this.enableLogging - }); - const shareSerializationModule = new shareSerialization.ShareSerializationModule(); - this.tkey = new tss.TKeyTSS({ - enableLogging: this.enableLogging, - serviceProvider: this.torusSp, - storageLayer: this.storageLayer, - manualSync: this.options.manualSync, - modules: { - shareSerialization: shareSerializationModule - }, - tssKeyType: this.keyType - }); - if (this.isRedirectMode) { - await this.torusSp.init({ - skipSw: true, - skipPrefetch: true - }); - } else if (this.options.uxMode === customauth.UX_MODE.POPUP) { - await this.torusSp.init({}); - } - this.ready = true; - - // try handle redirect flow if enabled and return(redirect) from oauth login - if (params.handleRedirectResult && this.options.uxMode === customauth.UX_MODE.REDIRECT && ((_window2 = window) !== null && _window2 !== void 0 && _window2.location.hash.includes("#state") || (_window3 = window) !== null && _window3 !== void 0 && _window3.location.hash.includes("#access_token"))) { - // on failed redirect, instance is reseted. - // skip check feature gating on redirection as it was check before login - await this.handleRedirectResult(); - - // return early on successful redirect, the rest of the code will not be executed - return; - } else if (params.rehydrate && this.sessionManager) { - // if not redirect flow try to rehydrate session if available - const sessionId = await this.currentStorage.get("sessionId"); - if (sessionId) { - this.sessionManager.sessionId = sessionId; - - // swallowed, should not throw on rehydrate timed out session - const sessionResult = await this.sessionManager.authorizeSession().catch(async err => { - utils.log.error("rehydrate session error", err); - }); - - // try rehydrate session - if (sessionResult) { - await this.rehydrateSession(sessionResult); - - // return early on success rehydration - return; - } - } - } - // feature gating if not redirect flow or session rehydration - await this.featureRequest(); - } - async loginWithOAuth(params) { - this.checkReady(); - if (this.isNodejsOrRN(this.options.uxMode)) { - throw errors.default.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`); - } - const { - importTssKey - } = params; - const tkeyServiceProvider = this.torusSp; - try { - // oAuth login. - const verifierParams = params; - const aggregateParams = params; - if (verifierParams.subVerifierDetails) { - var _loginResponse$nodesD; - // single verifier login. - const loginResponse = await tkeyServiceProvider.triggerLogin(params.subVerifierDetails); - if (this.isRedirectMode) return; - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: (_loginResponse$nodesD = loginResponse.nodesData) === null || _loginResponse$nodesD === void 0 ? void 0 : _loginResponse$nodesD.nodeIndexes, - userInfo: loginResponse.userInfo, - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - } else if (aggregateParams.subVerifierDetailsArray) { - var _loginResponse$nodesD2; - const loginResponse = await tkeyServiceProvider.triggerAggregateLogin({ - aggregateVerifierType: aggregateParams.aggregateVerifierType || customauth.AGGREGATE_VERIFIER.SINGLE_VERIFIER_ID, - verifierIdentifier: aggregateParams.aggregateVerifierIdentifier, - subVerifierDetailsArray: aggregateParams.subVerifierDetailsArray - }); - if (this.isRedirectMode) return; - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: (_loginResponse$nodesD2 = loginResponse.nodesData) === null || _loginResponse$nodesD2 === void 0 ? void 0 : _loginResponse$nodesD2.nodeIndexes, - userInfo: loginResponse.userInfo[0], - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - } - await this.setupTkey(importTssKey); - } catch (err) { - utils.log.error("login error", err); - if (err instanceof core.CoreError) { - if (err.code === 1302) { - throw errors.default.default(constants.ERRORS.TKEY_SHARES_REQUIRED); - } - } - throw errors.default.default(err.message); - } - } - async loginWithJWT(params) { - this.checkReady(); - const { - prefetchTssPublicKeys = 1 - } = params; - if (prefetchTssPublicKeys > 3) { - throw errors.default.prefetchValueExceeded(`The prefetch value '${prefetchTssPublicKeys}' exceeds the maximum allowed limit of 3.`); - } - const { - verifier, - verifierId, - idToken, - importTssKey - } = params; - this.torusSp.verifierName = verifier; - this.torusSp.verifierId = verifierId; - try { - var _loginResponse$nodesD3; - // prefetch tss pub keys. - const prefetchTssPubs = []; - for (let i = 0; i < prefetchTssPublicKeys; i++) { - prefetchTssPubs.push(this.torusSp.getTSSPubKey(this.tkey.tssTag, i)); - } - - // get postbox key. - let loginPromise; - if (!params.subVerifier) { - // single verifier login. - loginPromise = this.torusSp.customAuthInstance.getTorusKey(verifier, verifierId, { - verifier_id: verifierId - }, idToken, _objectSpread(_objectSpread({}, params.extraVerifierParams), params.additionalParams)); - } else { - // aggregate verifier login - loginPromise = this.torusSp.customAuthInstance.getAggregateTorusKey(verifier, verifierId, [{ - verifier: params.subVerifier, - idToken, - extraVerifierParams: params.extraVerifierParams - }]); - } - - // wait for prefetch completed before setup tkey - const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]); - const postBoxKey = this._getPostBoxKey(loginResponse); - this.torusSp.postboxKey = new BN(postBoxKey, "hex"); - this.updateState({ - postBoxKey, - postboxKeyNodeIndexes: ((_loginResponse$nodesD3 = loginResponse.nodesData) === null || _loginResponse$nodesD3 === void 0 ? void 0 : _loginResponse$nodesD3.nodeIndexes) || [], - userInfo: _objectSpread(_objectSpread({}, utils.parseToken(idToken)), {}, { - verifier, - verifierId - }), - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - await this.setupTkey(importTssKey); - } catch (err) { - utils.log.error("login error", err); - if (err instanceof core.CoreError) { - if (err.code === 1302) { - const newError = errors.default.default(constants.ERRORS.TKEY_SHARES_REQUIRED); - newError.stack = err.stack; - throw newError; - } - } - const newError = errors.default.default(err.message); - newError.stack = err.stack; - throw newError; - } - } - async handleRedirectResult() { - this.checkReady(); - try { - const result = await this.torusSp.customAuthInstance.getRedirectResult(); - if (result.method === customauth.TORUS_METHOD.TRIGGER_LOGIN) { - var _data$nodesData; - const data = result.result; - if (!data) { - throw errors.default.invalidTorusLoginResponse(); - } - this.updateState({ - postBoxKey: this._getPostBoxKey(data), - postboxKeyNodeIndexes: ((_data$nodesData = data.nodesData) === null || _data$nodesData === void 0 ? void 0 : _data$nodesData.nodeIndexes) || [], - userInfo: data.userInfo, - signatures: this._getSignatures(data.sessionData.sessionTokenData) - }); - const userInfo = this.getUserInfo(); - this.torusSp.verifierName = userInfo.verifier; - } else if (result.method === customauth.TORUS_METHOD.TRIGGER_AGGREGATE_LOGIN) { - var _data$nodesData2; - const data = result.result; - if (!data) { - throw errors.default.invalidTorusAggregateLoginResponse(); - } - this.updateState({ - postBoxKey: this._getPostBoxKey(data), - postboxKeyNodeIndexes: ((_data$nodesData2 = data.nodesData) === null || _data$nodesData2 === void 0 ? void 0 : _data$nodesData2.nodeIndexes) || [], - userInfo: data.userInfo[0], - signatures: this._getSignatures(data.sessionData.sessionTokenData) - }); - const userInfo = this.getUserInfo(); - this.torusSp.verifierName = userInfo.aggregateVerifier; - } else { - throw errors.default.unsupportedRedirectMethod(); - } - const userInfo = this.getUserInfo(); - if (!this.state.postBoxKey) { - throw errors.default.postBoxKeyMissing("postBoxKey not present in state after processing redirect result."); - } - this.torusSp.postboxKey = new BN(this.state.postBoxKey, "hex"); - this.torusSp.verifierId = userInfo.verifierId; - await this.setupTkey(); - } catch (error) { - this.resetState(); - utils.log.error("error while handling redirect result", error); - throw errors.default.default(error.message); - } - } - async inputFactorKey(factorKey) { - this.checkReady(); - try { - // input tkey device share when required share > 0 ( or not reconstructed ) - // assumption tkey shares will not changed - if (!this.tKey.secp256k1Key) { - const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - } - - // Finalize initialization. - await this.tKey.reconstructKey(); - await this.finalizeTkey(factorKey); - } catch (err) { - utils.log.error("login error", err); - if (err instanceof core.CoreError) { - if (err.code === 1302) { - throw errors.default.default(constants.ERRORS.TKEY_SHARES_REQUIRED); - } - } - throw errors.default.default(err.message); - } - } - setTssWalletIndex(accountIndex) { - this.updateState({ - tssPubKey: this.tKey.getTSSPub(accountIndex).toSEC1(this.tkey.tssCurve, false), - accountIndex - }); - } - getCurrentFactorKey() { - this.checkReady(); - if (!this.state.factorKey) { - throw errors.default.factorKeyNotPresent("factorKey not present in state when getting current factor key."); - } - if (!this.state.tssShareIndex) { - throw errors.default.tssShareTypeIndexMissing("TSS Share Type (Index) not present in state when getting current factor key."); - } - try { - return { - factorKey: this.state.factorKey, - shareType: this.state.tssShareIndex - }; - } catch (err) { - utils.log.error("state error", err); - throw errors.default.default(err.message); - } - } - async enableMFA(enableMFAParams, recoveryFactor = true) { - this.checkReady(); - const { - postBoxKey - } = this.state; - const hashedFactorKey = utils.getHashedPrivateKey(postBoxKey, this.options.hashedFactorNonce); - if (!(await this.checkIfFactorKeyValid(hashedFactorKey))) { - if (this.tKey._localMetadataTransitions[0].length) { - throw errors.default.commitChangesBeforeMFA(); - } - throw errors.default.mfaAlreadyEnabled(); - } - return this.atomicSync(async () => { - let browserData; - if (this.isNodejsOrRN(this.options.uxMode)) { - browserData = { - browserName: "Node Env", - browserVersion: "", - deviceName: "nodejs" - }; - } else { - // try { - const browserInfo = bowser.parse(navigator.userAgent); - const browserName = `${browserInfo.browser.name}`; - browserData = { - browserName, - browserVersion: browserInfo.browser.version, - deviceName: browserInfo.os.name - }; - } - const deviceFactorKey = new BN(await this.createFactor({ - shareType: constants.TssShareType.DEVICE, - additionalMetadata: browserData - }), "hex"); - await this.setDeviceFactor(deviceFactorKey); - await this.inputFactorKey(new BN(deviceFactorKey, "hex")); - const hashedFactorPub = tss.getPubKeyPoint(hashedFactorKey, tss.factorKeyCurve); - await this.deleteFactor(hashedFactorPub, hashedFactorKey); - await this.deleteMetadataShareBackup(hashedFactorKey); - - // only recovery factor = true - let backupFactorKey; - if (recoveryFactor) { - backupFactorKey = await this.createFactor(_objectSpread({ - shareType: constants.TssShareType.RECOVERY - }, enableMFAParams)); - } - - // update to undefined for next major release - return backupFactorKey; - }).catch(reason => { - utils.log.error("error enabling MFA:", reason.message); - const err = errors.default.default(reason.message); - err.stack = reason.stack; - throw err; - }); - } - // mutation function - async createFactor(createFactorParams) { - this.checkReady(); - const { - shareType - } = createFactorParams; - let { - factorKey, - shareDescription, - additionalMetadata - } = createFactorParams; - if (!constants.VALID_SHARE_INDICES.includes(shareType)) { - throw errors.default.newShareIndexInvalid(`Invalid share type provided (${shareType}). Valid share types are ${constants.VALID_SHARE_INDICES}.`); - } - if (!factorKey) { - factorKey = utils.generateFactorKey().private; - } - if (!shareDescription) { - shareDescription = constants.FactorKeyTypeShareDescription.Other; - } - if (!additionalMetadata) { - additionalMetadata = {}; - } - const factorPub = tss.getPubKeyPoint(factorKey, tss.factorKeyCurve); - if (this.getTssFactorPub().includes(factorPub.toSEC1(tss.factorKeyCurve, true).toString("hex"))) { - throw errors.default.factorKeyAlreadyExists(); - } - return this.atomicSync(async () => { - await this.copyOrCreateShare(shareType, factorPub); - await this.backupMetadataShare(factorKey); - await this.addFactorDescription({ - factorKey, - shareDescription, - additionalMetadata, - updateMetadata: false - }); - return utils.scalarBNToBufferSEC1(factorKey).toString("hex"); - }).catch(reason => { - utils.log.error("error creating factor:", reason.message); - const err = errors.default.default(`error creating factor: ${reason.message}`); - err.stack = reason.stack; - throw err; - }); - } - - /** - * Get public key point in SEC1 format. - */ - getPubKey() { - const { - tssPubKey - } = this.state; - return Buffer.from(tssPubKey); - } - - /** - * Get public key point. - */ - getPubKeyPoint() { - const { - tssPubKey - } = this.state; - return commonTypes.Point.fromSEC1(this.tkey.tssCurve, tssPubKey.toString("hex")); - } - - /** - * Get public key in ed25519 format. - * - * Throws an error if keytype is not compatible with ed25519. - */ - getPubKeyEd25519() { - const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); - return utils.ed25519().keyFromPublic(p).getPublic(); - } - async precompute_secp256k1() { - this.wasmLib = await this.loadTssWasm(); - // PreSetup - const { - tssShareIndex - } = this.state; - const tssPubKey = this.getPubKeyPoint(); - const { - torusNodeTSSEndpoints - } = fndBase.fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); - if (!this.state.factorKey) { - throw errors.default.factorKeyNotPresent("factorKey not present in state when signing."); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey, { - accountIndex: 0 - }); - const tssNonce = this.getTssNonce(); - if (!tssPubKey || !torusNodeTSSEndpoints) { - throw errors.default.tssPublicKeyOrEndpointsMissing(); - } - - // session is needed for authentication to the web3auth infrastructure holding the factor 1 - const randomSessionNonce = utils.generateSessionNonce(); - const currentSession = utils.getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, randomSessionNonce); - const parties = 4; - const clientIndex = parties - 1; - // 1. setup - // generate endpoints for servers - const { - nodeIndexes - } = await this.torusSp.getTSSPubKey(this.tKey.tssTag, this.tKey.metadata.tssNonces[this.tKey.tssTag]); - const { - endpoints, - tssWSEndpoints, - partyIndexes, - nodeIndexesReturned: participatingServerDKGIndexes - } = utils.generateTSSEndpoints(torusNodeTSSEndpoints, parties, clientIndex, nodeIndexes); - - // Setup sockets. - const sockets = await tssClient.setupSockets(tssWSEndpoints, randomSessionNonce); - const dklsCoeff = tssClient.getDKLSCoeff(true, participatingServerDKGIndexes, tssShareIndex); - const denormalisedShare = dklsCoeff.mul(tssShare).umod(commonTypes.secp256k1.curve.n); - const accountNonce = this.tkey.computeAccountNonce(this.state.accountIndex); - const derivedShare = denormalisedShare.add(accountNonce).umod(commonTypes.secp256k1.curve.n); - const share = utils.scalarBNToBufferSEC1(derivedShare).toString("base64"); - if (!currentSession) { - throw errors.default.activeSessionNotFound(); - } - const { - signatures - } = this; - if (!signatures) { - throw errors.default.signaturesNotPresent(); - } - - // Client lib expects pub key in XY-format, base64-encoded. - const tssPubKeyBase64 = Buffer.from(tssPubKey.toSEC1(commonTypes.secp256k1).subarray(1)).toString("base64"); - const client = new tssClient.Client(currentSession, clientIndex, partyIndexes, endpoints, sockets, share, tssPubKeyBase64, true, this.wasmLib); - const serverCoeffs = {}; - for (let i = 0; i < participatingServerDKGIndexes.length; i++) { - const serverIndex = participatingServerDKGIndexes[i]; - serverCoeffs[serverIndex] = tssClient.getDKLSCoeff(false, participatingServerDKGIndexes, tssShareIndex, serverIndex).toString("hex"); - } - client.precompute({ - signatures, - server_coeffs: serverCoeffs, - nonce: utils.scalarBNToBufferSEC1(this.getAccountNonce()).toString("base64") - }); - await client.ready().catch(err => { - client.cleanup({ - signatures, - server_coeffs: serverCoeffs - }); - throw err; - }); - return { - client, - serverCoeffs - }; - } - async sign(data, hashed = false, secp256k1Precompute) { - this.wasmLib = await this.loadTssWasm(); - if (this.keyType === commonTypes.KeyType.secp256k1) { - const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); - return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); - } else if (this.keyType === commonTypes.KeyType.ed25519) { - return this.sign_ed25519(data, hashed); - } - throw errors.default.default(`sign not supported for key type ${this.keyType}`); - } - - // mutation function - async deleteFactor(factorPub, factorKey) { - if (!this.state.factorKey) { - throw errors.default.factorKeyNotPresent("factorKey not present in state when deleting a factor."); - } - if (!this.tKey.metadata.factorPubs) { - throw errors.default.factorPubsMissing(); - } - await this.atomicSync(async () => { - const remainingFactors = this.tKey.metadata.factorPubs[this.tKey.tssTag].length || 0; - if (remainingFactors <= 1) { - throw errors.default.cannotDeleteLastFactor("Cannot delete last factor"); - } - const fpp = factorPub; - const stateFpp = tss.getPubKeyPoint(this.state.factorKey, tss.factorKeyCurve); - if (fpp.equals(stateFpp)) { - throw errors.default.factorInUseCannotBeDeleted("Cannot delete current active factor"); - } - await this.tKey.deleteFactorPub({ - factorKey: this.state.factorKey, - deleteFactorPub: factorPub, - authSignatures: this.signatures - }); - const factorPubHex = fpp.toSEC1(tss.factorKeyCurve, true).toString("hex"); - const allDesc = this.tKey.metadata.getShareDescription(); - const keyDesc = allDesc[factorPubHex]; - if (keyDesc) { - await Promise.all(keyDesc.map(async desc => { - var _this$tKey; - return (_this$tKey = this.tKey) === null || _this$tKey === void 0 ? void 0 : _this$tKey.metadata.deleteShareDescription(factorPubHex, desc); - })); - } - - // delete factorKey share metadata if factorkey is provided - if (factorKey) { - const factorKeyBN = new BN(factorKey, "hex"); - const derivedFactorPub = tss.getPubKeyPoint(factorKeyBN, tss.factorKeyCurve); - // only delete if factorPub matches - if (derivedFactorPub.equals(fpp)) { - await this.deleteMetadataShareBackup(factorKeyBN); - } - } - }); - } - async logout() { - var _this$sessionManager2; - if ((_this$sessionManager2 = this.sessionManager) !== null && _this$sessionManager2 !== void 0 && _this$sessionManager2.sessionId) { - await this.sessionManager.invalidateSession(); - } - // to accommodate async storage - await this.currentStorage.set("sessionId", ""); - this.resetState(); - await this.init({ - handleRedirectResult: false, - rehydrate: false - }); - } - getUserInfo() { - if (!this.state.userInfo) { - throw errors.default.userNotLoggedIn(); - } - return this.state.userInfo; - } - getKeyDetails() { - this.checkReady(); - const tkeyDetails = this.tKey.getKeyDetails(); - const tssPubKey = this.state.tssPubKey ? commonTypes.Point.fromSEC1(this.tkey.tssCurve, this.state.tssPubKey.toString("hex")) : undefined; - const factors = this.tKey.metadata.factorPubs ? this.tKey.metadata.factorPubs[this.tKey.tssTag] : []; - const keyDetails = { - // use tkey's for now - requiredFactors: tkeyDetails.requiredShares, - threshold: tkeyDetails.threshold, - totalFactors: factors.length + 1, - shareDescriptions: this.tKey.getMetadata().getShareDescription(), - metadataPubKey: tkeyDetails.pubKey, - tssPubKey, - keyType: this.keyType - }; - return keyDetails; - } - async commitChanges() { - this.checkReady(); - if (!this.state.factorKey) { - throw errors.default.factorKeyNotPresent("factorKey not present in state when committing changes."); - } - try { - // in case for manualsync = true, _syncShareMetadata will not call syncLocalMetadataTransitions() - // it will not create a new LocalMetadataTransition - // manual call syncLocalMetadataTransitions() required to sync local transitions to storage - await this.tKey._syncShareMetadata(); - await this.tKey.syncLocalMetadataTransitions(); - } catch (error) { - utils.log.error("sync metadata error", error); - throw error; - } - } - async setManualSync(manualSync) { - this.checkReady(); - // sync local transistion to storage before allow changes - await this.tKey.syncLocalMetadataTransitions(); - this.options.manualSync = manualSync; - this.tKey.manualSync = manualSync; - } - - // device factor - async setDeviceFactor(factorKey, replace = false) { - if (!replace) { - const existingFactor = await this.getDeviceFactor(); - if (existingFactor) { - throw errors.default.default("Device factor already exists"); - } - } - const metadata = this.tKey.getMetadata(); - const tkeyPubX = metadata.pubKey.x.toString(16, constants.FIELD_ELEMENT_HEX_LEN); - await this.currentStorage.set(tkeyPubX, JSON.stringify({ - factorKey: factorKey.toString("hex").padStart(64, "0") - })); - } - async getDeviceFactor() { - const metadata = this.tKey.getMetadata(); - const tkeyPubX = metadata.pubKey.x.toString(16, constants.FIELD_ELEMENT_HEX_LEN); - const tKeyLocalStoreString = await this.currentStorage.get(tkeyPubX); - const tKeyLocalStore = JSON.parse(tKeyLocalStoreString || "{}"); - return tKeyLocalStore.factorKey; - } - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Exports the private key scalar for the current account index. - * - * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. - */ - async _UNSAFE_exportTssKey() { - if (this.keyType !== commonTypes.KeyType.secp256k1) { - throw errors.default.default("Wrong KeyType. Method can only be used when KeyType is secp256k1"); - } - if (!this.state.factorKey) { - throw errors.default.factorKeyNotPresent("factorKey not present in state when exporting tss key."); - } - if (!this.state.signatures) { - throw errors.default.signaturesNotPresent("Signatures not present in state when exporting tss key."); - } - const exportTssKey0 = await this.tKey._UNSAFE_exportTssKey({ - factorKey: this.state.factorKey, - authSignatures: this.state.signatures - }); - const accountNonce = this.getAccountNonce(); - const tssKey = exportTssKey0.add(accountNonce).umod(this.tKey.tssCurve.n); - return tssKey.toString("hex", constants.FIELD_ELEMENT_HEX_LEN); - } - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Attempts to export the ed25519 private key seed. Only works if import key - * flow has been used. - */ - async _UNSAFE_exportTssEd25519Seed() { - if (this.keyType !== commonTypes.KeyType.ed25519) { - throw errors.default.default("Wrong KeyType. Method can only be used when KeyType is ed25519"); - } - if (!this.state.factorKey) throw errors.default.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); - if (!this.state.signatures) throw errors.default.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed."); - try { - const exportEd25519Seed = await this.tKey._UNSAFE_exportTssEd25519Seed({ - factorKey: this.state.factorKey, - authSignatures: this.state.signatures - }); - return exportEd25519Seed; - } catch (error) { - throw errors.default.default(`Error exporting ed25519 seed: ${error}`); - } - } - updateState(newState) { - this.state = _objectSpread(_objectSpread({}, this.state), newState); - } - async atomicSync(f) { - this.atomicCallStackCounter += 1; - this.tkey.manualSync = true; - try { - const r = await f(); - if (this.atomicCallStackCounter === 1) { - if (!this.options.manualSync) { - await this.commitChanges(); - } - } - return r; - } catch (error) { - throw error; - } finally { - this.atomicCallStackCounter -= 1; - if (this.atomicCallStackCounter === 0) { - this.tkey.manualSync = this.options.manualSync; - } - } - } - async importTssKey(tssKey, factorPub, newTSSIndex = constants.TssShareType.DEVICE) { - if (!this.state.signatures) { - throw errors.default.signaturesNotPresent("Signatures not present in state when importing tss key."); - } - await this.tKey.importTssKey({ - tag: this.tKey.tssTag, - importKey: Buffer.from(tssKey, "hex"), - factorPub, - newTSSIndex - }, { - authSignatures: this.state.signatures - }); - } - getTssNonce() { - if (!this.tKey.metadata.tssNonces || this.tKey.metadata.tssNonces[this.tKey.tssTag] === undefined) { - throw errors.default.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`); - } - const tssNonce = this.tKey.metadata.tssNonces[this.tKey.tssTag]; - return tssNonce; - } - async setupTkey(providedImportTssKey) { - if (!this.state.postBoxKey) { - throw errors.default.userNotLoggedIn(); - } - const existingUser = await this.isMetadataPresent(this.state.postBoxKey); - let importTssKey = providedImportTssKey; - if (!existingUser) { - if (!importTssKey && this.useClientGeneratedTSSKey) { - if (this.keyType === commonTypes.KeyType.ed25519) { - const k = utils.generateEd25519Seed(); - importTssKey = k.toString("hex"); - } else if (this.keyType === commonTypes.KeyType.secp256k1) { - const k = commonTypes.secp256k1.genKeyPair().getPrivate(); - importTssKey = utils.scalarBNToBufferSEC1(k).toString("hex"); - } else { - throw errors.default.default("Unsupported key type"); - } - } - await this.handleNewUser(importTssKey); - } else { - if (importTssKey) { - throw errors.default.tssKeyImportNotAllowed(); - } - await this.handleExistingUser(); - } - } - - // mutation function - async handleNewUser(importTssKey) { - await this.atomicSync(async () => { - // Generate or use hash factor and initialize tkey with it. - let factorKey; - if (this.options.disableHashedFactorKey) { - factorKey = utils.generateFactorKey().private; - // delete previous hashed factorKey if present - const hashedFactorKey = utils.getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - await this.deleteMetadataShareBackup(hashedFactorKey); - } else { - factorKey = utils.getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - } - const deviceTSSIndex = constants.TssShareType.DEVICE; - const factorPub = tss.getPubKeyPoint(factorKey, tss.factorKeyCurve); - if (!importTssKey) { - const ec = new elliptic.ec(this.keyType); - const deviceTSSShare = ec.genKeyPair().getPrivate(); - await this.tKey.initialize({ - factorPub, - deviceTSSShare, - deviceTSSIndex - }); - } else { - await this.tKey.initialize({ - skipTssInit: true - }); - await this.tKey.reconstructKey(); - await this.importTssKey(importTssKey, factorPub, deviceTSSIndex); - } - - // Finalize initialization. - await this.tKey.reconstructKey(); - await this.finalizeTkey(factorKey); - - // Store factor description. - await this.backupMetadataShare(factorKey); - if (this.options.disableHashedFactorKey) { - await this.addFactorDescription({ - factorKey, - shareDescription: constants.FactorKeyTypeShareDescription.Other, - updateMetadata: false - }); - } else { - await this.addFactorDescription({ - factorKey, - shareDescription: constants.FactorKeyTypeShareDescription.HashedShare, - updateMetadata: false - }); - } - }); - } - async handleExistingUser() { - await this.tKey.initialize({ - neverInitializeNewKey: true - }); - if (this.options.disableHashedFactorKey) { - return; - } - const hashedFactorKey = utils.getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - this.state.factorKey = hashedFactorKey; - if (await this.checkIfFactorKeyValid(hashedFactorKey)) { - // Initialize tkey with existing hashed share if available. - const factorKeyMetadata = await this.getFactorKeyMetadata(hashedFactorKey); - try { - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - await this.tKey.reconstructKey(); - await this.finalizeTkey(hashedFactorKey); - } catch (err) { - utils.log.error("error initializing tkey with hashed share", err); - } - } else { - var _this$tKey2; - const factorKeyMetadata = await ((_this$tKey2 = this.tKey) === null || _this$tKey2 === void 0 ? void 0 : _this$tKey2.readMetadata(hashedFactorKey)); - if (factorKeyMetadata.message === "SHARE_DELETED") { - // throw CoreKitError.hashedFactorDeleted(); - utils.log.warn("hashed factor deleted"); - } - } - } - async finalizeTkey(factorKey) { - if (this.state.accountIndex !== 0) { - utils.log.warn("AccountIndex should be 0"); - this.state.accountIndex = 0; - } - // Read tss meta data. - const { - tssIndex: tssShareIndex - } = await this.tKey.getTSSShare(factorKey); - const tssPubKey = this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve, false); - this.updateState({ - tssShareIndex, - tssPubKey, - factorKey - }); - await this.createSession(); - } - checkReady() { - if (!this.ready) { - throw errors.default.mpcCoreKitNotInitialized(); - } - } - async rehydrateSession(result) { - try { - this.checkReady(); - const factorKey = new BN(result.factorKey, "hex"); - if (!factorKey) { - throw errors.default.providedFactorKeyInvalid(); - } - const postBoxKey = result.postBoxKey || result.oAuthKey; - if (!postBoxKey) { - throw errors.default.default("postBoxKey or oAuthKey not present in session data"); - } - this.torusSp.postboxKey = new BN(postBoxKey, "hex"); - this.torusSp.verifierName = result.userInfo.aggregateVerifier || result.userInfo.verifier; - this.torusSp.verifierId = result.userInfo.verifierId; - const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); - await this.tKey.initialize({ - neverInitializeNewKey: true - }); - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - await this.tKey.reconstructKey(); - this.updateState({ - factorKey: new BN(result.factorKey, "hex"), - postBoxKey, - postboxKeyNodeIndexes: result.postboxKeyNodeIndexes || [], - tssShareIndex: result.tssShareIndex, - tssPubKey: this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve, false), - signatures: result.signatures, - userInfo: result.userInfo - }); - } catch (err) { - utils.log.warn("failed to authorize session", err); - } - } - async createSession() { - if (!this.options.disableSessionManager && !this.sessionManager) { - throw new Error("sessionManager is not available"); - } - try { - const sessionId = sessionManager.SessionManager.generateRandomSessionKey(); - this.sessionManager.sessionId = sessionId; - const { - postBoxKey, - factorKey, - userInfo, - tssShareIndex, - tssPubKey, - postboxKeyNodeIndexes - } = this.state; - if (!this.state.factorKey) { - throw errors.default.factorKeyNotPresent("factorKey not present in state when creating session."); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey, { - accountIndex: this.state.accountIndex - }); - if (!postBoxKey || !factorKey || !tssShare || !tssPubKey || !userInfo) { - throw errors.default.userNotLoggedIn(); - } - const payload = { - postBoxKey, - postboxKeyNodeIndexes: postboxKeyNodeIndexes || [], - factorKey: factorKey === null || factorKey === void 0 ? void 0 : factorKey.toString("hex"), - tssShareIndex: tssShareIndex, - tssPubKey: Buffer.from(tssPubKey).toString("hex"), - signatures: this.signatures, - userInfo - }; - await this.sessionManager.createSession(payload); - // to accommodate async storage - await this.currentStorage.set("sessionId", sessionId); - } catch (err) { - utils.log.error("error creating session", err); - } - } - async isMetadataPresent(privateKey) { - var _this$tKey3; - const privateKeyBN = new BN(privateKey, "hex"); - const metadata = await ((_this$tKey3 = this.tKey) === null || _this$tKey3 === void 0 ? void 0 : _this$tKey3.readMetadata(privateKeyBN)); - if (metadata && metadata.message !== "KEY_NOT_FOUND") { - return true; - } - return false; - } - async checkIfFactorKeyValid(factorKey) { - var _this$tKey4; - this.checkReady(); - const factorKeyMetadata = await ((_this$tKey4 = this.tKey) === null || _this$tKey4 === void 0 ? void 0 : _this$tKey4.readMetadata(factorKey)); - if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND" || factorKeyMetadata.message === "SHARE_DELETED") { - return false; - } - return true; - } - async getFactorKeyMetadata(factorKey) { - var _this$tKey5; - this.checkReady(); - const factorKeyMetadata = await ((_this$tKey5 = this.tKey) === null || _this$tKey5 === void 0 ? void 0 : _this$tKey5.readMetadata(factorKey)); - if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND") { - throw errors.default.noMetadataFound(); - } - return commonTypes.ShareStore.fromJSON(factorKeyMetadata); - } - - /** - * Copies a share and makes it available under a new factor key. If no share - * exists at the specified share index, a new share is created. - * @param newFactorTSSIndex - The index of the share to copy. - * @param newFactorPub - The public key of the new share. - */ - async copyOrCreateShare(newFactorTSSIndex, newFactorPub) { - this.checkReady(); - if (!this.tKey.metadata.factorPubs || !Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag])) { - throw errors.default.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key."); - } - if (!this.tKey.metadata.factorEncs || typeof this.tKey.metadata.factorEncs[this.tKey.tssTag] !== "object") { - throw errors.default.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key."); - } - if (!this.state.factorKey) { - throw errors.default.factorKeyNotPresent("factorKey not present in state when copying or creating a share."); - } - if (constants.VALID_SHARE_INDICES.indexOf(newFactorTSSIndex) === -1) { - throw errors.default.newShareIndexInvalid(`Invalid share type provided (${newFactorTSSIndex}). Valid share types are ${constants.VALID_SHARE_INDICES}.`); - } - if (this.tKey.metadata.factorPubs[this.tKey.tssTag].length >= constants.MAX_FACTORS) { - throw errors.default.maximumFactorsReached(`The maximum number of allowable factors (${constants.MAX_FACTORS}) has been reached.`); - } - - // Generate new share. - await this.tkey.addFactorPub({ - existingFactorKey: this.state.factorKey, - authSignatures: this.signatures, - newFactorPub, - newTSSIndex: newFactorTSSIndex, - refreshShares: this.state.tssShareIndex !== newFactorTSSIndex // Refresh shares if we have a new factor key index. - }); - } - async getMetadataShare() { - try { - var _this$tKey6, _this$tKey7; - const polyId = (_this$tKey6 = this.tKey) === null || _this$tKey6 === void 0 ? void 0 : _this$tKey6.metadata.getLatestPublicPolynomial().getPolynomialID(); - const shares = (_this$tKey7 = this.tKey) === null || _this$tKey7 === void 0 ? void 0 : _this$tKey7.shares[polyId]; - let share = null; - for (const shareIndex in shares) { - if (shareIndex !== constants.SOCIAL_TKEY_INDEX.toString()) { - share = shares[shareIndex]; - } - } - if (!share) { - throw errors.default.noMetadataShareFound(); - } - return share; - } catch (err) { - utils.log.error("create device share error", err); - throw errors.default.default(err.message); - } - } - async deleteMetadataShareBackup(factorKey) { - var _this$tkey, _this$tkey2; - await this.tKey.addLocalMetadataTransitions({ - input: [{ - message: commonTypes.SHARE_DELETED, - dateAdded: Date.now() - }], - privKey: [factorKey] - }); - if (!((_this$tkey = this.tkey) !== null && _this$tkey !== void 0 && _this$tkey.manualSync)) await ((_this$tkey2 = this.tkey) === null || _this$tkey2 === void 0 ? void 0 : _this$tkey2.syncLocalMetadataTransitions()); - } - async backupMetadataShare(factorKey) { - var _this$tKey8, _this$tkey3, _this$tkey4; - const metadataShare = await this.getMetadataShare(); - - // Set metadata for factor key backup - await ((_this$tKey8 = this.tKey) === null || _this$tKey8 === void 0 ? void 0 : _this$tKey8.addLocalMetadataTransitions({ - input: [metadataShare], - privKey: [factorKey] - })); - if (!((_this$tkey3 = this.tkey) !== null && _this$tkey3 !== void 0 && _this$tkey3.manualSync)) await ((_this$tkey4 = this.tkey) === null || _this$tkey4 === void 0 ? void 0 : _this$tkey4.syncLocalMetadataTransitions()); - } - async addFactorDescription(args) { - var _this$tKey9; - const { - factorKey, - shareDescription, - updateMetadata - } = args; - let { - additionalMetadata - } = args; - if (!additionalMetadata) { - additionalMetadata = {}; - } - const { - tssIndex - } = await this.tKey.getTSSShare(factorKey); - const factorPoint = tss.getPubKeyPoint(factorKey, tss.factorKeyCurve); - const factorPub = factorPoint.toSEC1(tss.factorKeyCurve, true).toString("hex"); - const params = _objectSpread(_objectSpread({ - module: shareDescription, - dateAdded: Date.now() - }, additionalMetadata), {}, { - tssShareIndex: tssIndex - }); - await ((_this$tKey9 = this.tKey) === null || _this$tKey9 === void 0 ? void 0 : _this$tKey9.addShareDescription(factorPub, JSON.stringify(params), updateMetadata)); - } - resetState() { - this.ready = false; - this.tkey = null; - this.torusSp = null; - this.storageLayer = null; - this.state = { - accountIndex: 0 - }; - } - _getPostBoxKey(result) { - return torus_js.Torus.getPostboxKey(result); - } - _getSignatures(sessionData) { - // There is a check in torus.js which pushes undefined to session data in case - // that particular node call fails. - // and before returning we are not filtering out undefined vals in torus.js - // TODO: fix this in torus.js - return sessionData.filter(session => !!session).map(session => JSON.stringify({ - data: session.token, - sig: session.signature - })); - } - isNodejsOrRN(params) { - const mode = params; - return mode === "nodejs" || mode === "react-native"; - } - async featureRequest() { - const accessUrl = constants$1.SIGNER_MAP[this.options.web3AuthNetwork]; - const accessRequest = { - network: this.options.web3AuthNetwork, - client_id: this.options.web3AuthClientId, - is_mpc_core_kit: "true", - enable_gating: "true", - session_time: this.options.sessionTime.toString() - }; - const url = new URL(`${accessUrl}/api/feature-access`); - url.search = new URLSearchParams(accessRequest).toString(); - const result = await fetch(url); - if (result.status !== 200) { - // reset state on no mpc access - this.resetState(); - const errMessage = await result.json(); - throw errors.default.default(errMessage.error); - } - return result.json(); - } - getAccountNonce() { - return this.tkey.computeAccountNonce(this.state.accountIndex); - } - async sign_ECDSA_secp256k1(data, hashed = false, precomputedTssClient) { - const executeSign = async (client, serverCoeffs, hashedData, signatures) => { - const { - r, - s, - recoveryParam - } = await client.sign(hashedData.toString("base64"), true, "", "keccak256", { - signatures - }); - // skip await cleanup - client.cleanup({ - signatures, - server_coeffs: serverCoeffs - }); - return { - v: recoveryParam, - r: utils.scalarBNToBufferSEC1(r), - s: utils.scalarBNToBufferSEC1(s) - }; - }; - if (!hashed) { - data = metadataHelpers.keccak256(data); - } - const isAlreadyPrecomputed = (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.client) && (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.serverCoeffs); - const { - client, - serverCoeffs - } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); - const { - signatures - } = this; - if (!signatures) { - throw errors.default.signaturesNotPresent(); - } - try { - return await executeSign(client, serverCoeffs, data, signatures); - } catch (error) { - if (!isAlreadyPrecomputed) { - throw error; - } - // Retry with new client if precomputed client failed, this is to handle the case when precomputed session might have expired - const { - client: newClient, - serverCoeffs: newServerCoeffs - } = await this.precompute_secp256k1(); - const result = await executeSign(newClient, newServerCoeffs, data, signatures); - return result; - } - } - async sign_ed25519(data, hashed = false) { - if (hashed) { - throw errors.default.default("hashed data not supported for ed25519"); - } - const nodeDetails = fndBase.fetchLocalConfig(this.options.web3AuthNetwork, "ed25519"); - if (!nodeDetails.torusNodeTSSEndpoints) { - throw errors.default.default("could not fetch tss node endpoints"); - } - - // Endpoints must end with backslash, but URLs returned by - // `fetch-node-details` don't have it. - const ED25519_ENDPOINTS = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ - index: nodeDetails.torusIndexes[i], - url: `${ep}/` - })); - - // Select endpoints and derive party indices. - const serverThreshold = Math.floor(ED25519_ENDPOINTS.length / 2) + 1; - const endpoints = utils.sampleEndpoints(ED25519_ENDPOINTS, serverThreshold); - const serverXCoords = endpoints.map(x => x.index); - const clientXCoord = Math.max(...endpoints.map(ep => ep.index)) + 1; - - // Derive share coefficients for flat hierarchy. - const ec = new ellipticWrapper.Ed25519Curve(); - const { - serverCoefficients, - clientCoefficient - } = utils.deriveShareCoefficients(ec, serverXCoords, clientXCoord, this.state.tssShareIndex); - - // Get pub key. - const tssPubKey = await this.getPubKey(); - const tssPubKeyPoint = ec.keyFromPublic(tssPubKey).getPublic(); - - // Get client key share and adjust by coefficient. - if (this.state.accountIndex !== 0) { - throw errors.default.default("Account index not supported for ed25519"); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey); - const clientShareAdjusted = tssShare.mul(clientCoefficient).umod(ec.n); - const clientShareAdjustedHex = ec.scalarToBuffer(clientShareAdjusted, Buffer).toString("hex"); - - // Generate session identifier. - const tssNonce = this.getTssNonce(); - const sessionNonce = utils.generateSessionNonce(); - const session = utils.getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, sessionNonce); - - // Run signing protocol. - const serverURLs = endpoints.map(x => x.url); - const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); - const serverCoefficientsHex = serverCoefficients.map(c => ec.scalarToBuffer(c, Buffer).toString("hex")); - const signature = await tssFrostClient.sign(this.wasmLib, session, this.signatures, serverXCoords, serverURLs, clientXCoord, clientShareAdjustedHex, pubKeyHex, data, serverCoefficientsHex); - utils.log.info(`signature: ${signature}`); - return Buffer.from(signature, "hex"); - } - async loadTssWasm() { - if (this.wasmLib) return this.wasmLib; - if (typeof this._tssLib.load === "function") { - // dont wait for wasm to be loaded, we can reload it during signing if not loaded - return this._tssLib.load(); - } else if (this._tssLib.lib) { - return this._tssLib.lib; - } - } -} - -exports.Web3AuthMPCCoreKit = Web3AuthMPCCoreKit; diff --git a/package/dist/lib.cjs/utils.js b/package/dist/lib.cjs/utils.js deleted file mode 100644 index 423baff1..00000000 --- a/package/dist/lib.cjs/utils.js +++ /dev/null @@ -1,212 +0,0 @@ -'use strict'; - -var commonTypes = require('@tkey/common-types'); -var core = require('@tkey/core'); -var tss = require('@tkey/tss'); -var openloginUtils = require('@toruslabs/openlogin-utils'); -var torus_js = require('@toruslabs/torus.js'); -var BN = require('bn.js'); -var elliptic = require('elliptic'); -var loglevel = require('loglevel'); -var constants = require('./constants.js'); - -const ed25519 = () => { - return new elliptic.eddsa("ed25519"); -}; - -/** - * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. - */ -function randomBytes(bytesLength = 32) { - // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. - const crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : undefined; - if (crypto && typeof crypto.getRandomValues === "function") { - return crypto.getRandomValues(new Uint8Array(bytesLength)); - } - throw new Error("crypto.getRandomValues must be defined"); -} -function generateEd25519Seed() { - return Buffer.from(randomBytes(32)); -} -const generateFactorKey = () => { - const keyPair = tss.factorKeyCurve.genKeyPair(); - const pub = commonTypes.Point.fromElliptic(keyPair.getPublic()); - return { - private: keyPair.getPrivate(), - pub - }; -}; -const generateTSSEndpoints = (tssNodeEndpoints, parties, clientIndex, nodeIndexes) => { - const endpoints = []; - const tssWSEndpoints = []; - const partyIndexes = []; - const nodeIndexesReturned = []; - for (let i = 0; i < parties; i++) { - partyIndexes.push(i); - if (i === clientIndex) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - endpoints.push(null); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - tssWSEndpoints.push(null); - } else { - const targetNodeIndex = nodeIndexes[i] - 1; - endpoints.push(tssNodeEndpoints[targetNodeIndex]); - tssWSEndpoints.push(new URL(tssNodeEndpoints[targetNodeIndex]).origin); - nodeIndexesReturned.push(nodeIndexes[i]); - } - } - return { - endpoints, - tssWSEndpoints, - partyIndexes, - nodeIndexesReturned - }; -}; -async function storageAvailable(storage) { - try { - const x = "__storage_test__"; - const rand = Math.random().toString(); - await storage.setItem(x, rand); - const value = await storage.getItem(rand); - if (value !== rand) { - throw new Error("Value mismatch"); - } - return true; - } catch (error) { - return false; - } -} - -// TODO think which conversion functions to keep and how to export them. - -/** - * Parses a JWT Token, without verifying the signature. - * @param token - JWT Token - * @returns Extracted JSON payload from the token - */ -function parseToken(token) { - const payload = token.split(".")[1]; - return JSON.parse(openloginUtils.safeatob(payload)); -} -const getHashedPrivateKey = (postboxKey, clientId) => { - const uid = `${postboxKey}_${clientId}`; - let hashUid = torus_js.keccak256(Buffer.from(uid, "utf8")); - hashUid = hashUid.replace("0x", ""); - return new BN(hashUid, "hex"); -}; - -/** - * Converts an elliptic curve scalar represented by a BN to a byte buffer in SEC1 - * format (i.e., padded to maximum length). - * @param s - The scalar of type BN. - * @returns The SEC1 encoded representation of the scalar. - */ -function scalarBNToBufferSEC1(s) { - return s.toArrayLike(Buffer, "be", constants.SCALAR_LEN); -} -function sampleEndpoints(endpoints, n) { - if (n > endpoints.length) { - throw new Error("Invalid number of endpoints"); - } - const shuffledEndpoints = endpoints.slice().sort(() => Math.random() - 0.5); - return shuffledEndpoints.slice(0, n).sort((a, b) => a.index - b.index); -} -function fraction(curve, nom, denom) { - return nom.mul(denom.invm(curve.n)).umod(curve.n); -} -function lagrangeCoefficient(curve, xCoords, targetCoeff, targetX) { - return xCoords.filter((_, i) => i !== targetCoeff).reduce((prev, cur) => { - const frac = fraction(curve, targetX.sub(cur), xCoords[targetCoeff].sub(cur)); - return prev.mul(frac).umod(curve.n); - }, new BN(1)); -} -function lagrangeCoefficients(curve, xCoords, targetX) { - const xCoordsBN = xCoords.map(i => new BN(i)); - const targetXBN = new BN(targetX); - return xCoordsBN.map((_value, i) => lagrangeCoefficient(curve, xCoordsBN, i, targetXBN)); -} -const SERVER_XCOORD_L1 = 1; -const CLIENT_XCOORD_L1 = 2; - -/** - * Derive share coefficients for client and servers. - * - * @param curve - The curve to be used. - * @param serverXCoords - The source and target x-coordinates of the selected - * servers. - * @param targetClientXCoord - The target x-coordinate of the client. - * @param sourceClientXCoord - The source x-coordinate of the client in the L1 - * hierarchy. - * @returns - The share coefficients for the client and the servers. - */ -function deriveShareCoefficients(ec, serverXCoords, targetClientXCoord, sourceClientXCoord = CLIENT_XCOORD_L1) { - const l1Coefficients = lagrangeCoefficients(ec, [SERVER_XCOORD_L1, sourceClientXCoord], 0); - const l2Coefficients = lagrangeCoefficients(ec, serverXCoords, 0); - if (serverXCoords.includes(targetClientXCoord)) { - throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${serverXCoords} ${targetClientXCoord}`); - } - const targetCoefficients = lagrangeCoefficients(ec, [targetClientXCoord, ...serverXCoords], 0); - - // Derive server coefficients. - const serverCoefficients = l2Coefficients.map((coeff, i) => fraction(ec, l1Coefficients[0].mul(coeff), targetCoefficients[i + 1])); - - // Derive client coefficient. - const clientCoefficient = fraction(ec, l1Coefficients[1], targetCoefficients[0]); - return { - serverCoefficients, - clientCoefficient - }; -} -function generateSessionNonce() { - return torus_js.keccak256(Buffer.from(core.generatePrivateBN().toString("hex") + Date.now(), "utf8")); -} -function getSessionId(verifier, verifierId, tssTag, tssNonce, sessionNonce) { - return `${verifier}${constants.DELIMITERS.Delimiter1}${verifierId}${constants.DELIMITERS.Delimiter2}${tssTag}${constants.DELIMITERS.Delimiter3}${tssNonce}${constants.DELIMITERS.Delimiter4}${sessionNonce}`; -} -function sigToRSV(sig) { - if (sig.length !== 65) { - throw new Error(`Invalid signature length: expected 65, got ${sig.length}`); - } - return { - r: sig.subarray(0, 32), - s: sig.subarray(32, 64), - v: sig[64] - }; -} -function makeEthereumSigner(kit) { - if (kit.keyType !== commonTypes.KeyType.secp256k1) { - throw new Error(`Invalid key type: expected secp256k1, got ${kit.keyType}`); - } - return { - sign: async msgHash => { - const sig = await kit.sign(msgHash, true); - return sigToRSV(sig); - }, - getPublic: async () => { - const pk = commonTypes.Point.fromSEC1(commonTypes.secp256k1, kit.getPubKey().toString("hex")); - return pk.toSEC1(commonTypes.secp256k1).subarray(1); - } - }; -} -const log = loglevel.getLogger("mpc-core-kit"); -log.disableAll(); - -exports.deriveShareCoefficients = deriveShareCoefficients; -exports.ed25519 = ed25519; -exports.fraction = fraction; -exports.generateEd25519Seed = generateEd25519Seed; -exports.generateFactorKey = generateFactorKey; -exports.generateSessionNonce = generateSessionNonce; -exports.generateTSSEndpoints = generateTSSEndpoints; -exports.getHashedPrivateKey = getHashedPrivateKey; -exports.getSessionId = getSessionId; -exports.lagrangeCoefficient = lagrangeCoefficient; -exports.lagrangeCoefficients = lagrangeCoefficients; -exports.log = log; -exports.makeEthereumSigner = makeEthereumSigner; -exports.parseToken = parseToken; -exports.randomBytes = randomBytes; -exports.sampleEndpoints = sampleEndpoints; -exports.scalarBNToBufferSEC1 = scalarBNToBufferSEC1; -exports.sigToRSV = sigToRSV; -exports.storageAvailable = storageAvailable; diff --git a/package/dist/lib.esm/constants.js b/package/dist/lib.esm/constants.js deleted file mode 100644 index e185212b..00000000 --- a/package/dist/lib.esm/constants.js +++ /dev/null @@ -1,50 +0,0 @@ -import { TORUS_SAPPHIRE_NETWORK } from '@toruslabs/constants'; - -const WEB3AUTH_NETWORK = { - MAINNET: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET, - DEVNET: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_DEVNET -}; -const USER_PATH = { - NEW: "NewAccount", - EXISTING: "ExistingAccount", - REHYDRATE: "RehydrateAccount", - RECOVER: "RecoverAccount" -}; -let FactorKeyTypeShareDescription = /*#__PURE__*/function (FactorKeyTypeShareDescription) { - FactorKeyTypeShareDescription["HashedShare"] = "hashedShare"; - FactorKeyTypeShareDescription["SecurityQuestions"] = "tssSecurityQuestions"; - FactorKeyTypeShareDescription["DeviceShare"] = "deviceShare"; - FactorKeyTypeShareDescription["SeedPhrase"] = "seedPhrase"; - FactorKeyTypeShareDescription["PasswordShare"] = "passwordShare"; - FactorKeyTypeShareDescription["SocialShare"] = "socialShare"; - FactorKeyTypeShareDescription["Other"] = "Other"; - return FactorKeyTypeShareDescription; -}({}); -const DELIMITERS = { - Delimiter1: "\u001c", - Delimiter2: "\u0015", - Delimiter3: "\u0016", - Delimiter4: "\u0017" -}; -const ERRORS = { - TKEY_SHARES_REQUIRED: "required more shares", - INVALID_BACKUP_SHARE: "invalid backup share" -}; -const SOCIAL_FACTOR_INDEX = 1; - -/** - * Defines the TSS Share Index in a simplified way for better implementation. - **/ -let TssShareType = /*#__PURE__*/function (TssShareType) { - TssShareType[TssShareType["DEVICE"] = 2] = "DEVICE"; - TssShareType[TssShareType["RECOVERY"] = 3] = "RECOVERY"; - return TssShareType; -}({}); -const VALID_SHARE_INDICES = [TssShareType.DEVICE, TssShareType.RECOVERY]; -const SCALAR_LEN = 32; // Length of secp256k1 scalar in bytes. -const FIELD_ELEMENT_HEX_LEN = 32 * 2; // Length of secp256k1 field element in hex form. - -const MAX_FACTORS = 10; // Maximum number of factors that can be added to an account. -const SOCIAL_TKEY_INDEX = 1; - -export { DELIMITERS, ERRORS, FIELD_ELEMENT_HEX_LEN, FactorKeyTypeShareDescription, MAX_FACTORS, SCALAR_LEN, SOCIAL_FACTOR_INDEX, SOCIAL_TKEY_INDEX, TssShareType, USER_PATH, VALID_SHARE_INDICES, WEB3AUTH_NETWORK }; diff --git a/package/dist/lib.esm/helper/browserStorage.js b/package/dist/lib.esm/helper/browserStorage.js deleted file mode 100644 index 8cbb5d33..00000000 --- a/package/dist/lib.esm/helper/browserStorage.js +++ /dev/null @@ -1,59 +0,0 @@ -import _defineProperty from '@babel/runtime/helpers/defineProperty'; -import CoreKitError from './errors.js'; - -class MemoryStorage { - constructor() { - _defineProperty(this, "_store", {}); - } - getItem(key) { - return this._store[key] || null; - } - setItem(key, value) { - this._store[key] = value; - } - removeItem(key) { - delete this._store[key]; - } - clear() { - this._store = {}; - } -} -class AsyncStorage { - constructor(storeKey, storage) { - _defineProperty(this, "storage", void 0); - _defineProperty(this, "_storeKey", void 0); - this.storage = storage; - this._storeKey = storeKey; - } - async toJSON() { - const result = await this.storage.getItem(this._storeKey); - if (!result) { - throw CoreKitError.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`); - } - return result; - } - async resetStore() { - const currStore = await this.getStore(); - await this.storage.setItem(this._storeKey, JSON.stringify({})); - return currStore; - } - async getStore() { - return JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - } - async get(key) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - return store[key]; - } - async set(key, value) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - store[key] = value; - await this.storage.setItem(this._storeKey, JSON.stringify(store)); - } - async remove(key) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - delete store[key]; - await this.storage.setItem(this._storeKey, JSON.stringify(store)); - } -} - -export { AsyncStorage, MemoryStorage }; diff --git a/package/dist/lib.esm/helper/errors.js b/package/dist/lib.esm/helper/errors.js deleted file mode 100644 index 8f827557..00000000 --- a/package/dist/lib.esm/helper/errors.js +++ /dev/null @@ -1,296 +0,0 @@ -import _defineProperty from '@babel/runtime/helpers/defineProperty'; - -/** - * Fix the prototype chain of the error - * - * Use Object.setPrototypeOf - * Support ES6 environments - * - * Fallback setting __proto__ - * Support IE11+, see https://docs.microsoft.com/en-us/scripting/javascript/reference/javascript-version-information - */ -function fixProto(target, prototype) { - const { - setPrototypeOf - } = Object; - if (setPrototypeOf) { - setPrototypeOf(target, prototype); - } else { - // eslint-disable-next-line no-proto, @typescript-eslint/no-explicit-any - target.__proto__ = prototype; - } -} - -/** - * Capture and fix the error stack when available - * - * Use Error.captureStackTrace - * Support v8 environments - */ -function fixStack(target, fn = target.constructor) { - const { - captureStackTrace - } = Error; - if (captureStackTrace) { - captureStackTrace(target, fn); - } -} - -// copy from https://github.com/microsoft/TypeScript/blob/main/lib/lib.es2022.error.d.ts -// avoid typescript isue https://github.com/adriengibrat/ts-custom-error/issues/81 - -/** - * Allows to easily extend a base class to create custom applicative errors. - * - * example: - * ``` - * class HttpError extends CustomError { - * public constructor( - * public code: number, - * message?: string, - * cause?: Error, - * ) { - * super(message, { cause }) - * } - * } - * - * new HttpError(404, 'Not found') - * ``` - */ -class CustomError extends Error { - constructor(message, options) { - super(message, options); - // set error name as constructor name, make it not enumerable to keep native Error behavior - // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target#new.target_in_constructors - // see https://github.com/adriengibrat/ts-custom-error/issues/30 - _defineProperty(this, "name", void 0); - Object.defineProperty(this, "name", { - value: new.target.name, - enumerable: false, - configurable: true - }); - // fix the extended error prototype chain - // because typescript __extends implementation can't - // see https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work - fixProto(this, new.target.prototype); - // try to remove contructor from stack trace - fixStack(this); - } -} -class AbstractCoreKitError extends CustomError { - constructor(code, message) { - // takes care of stack and proto - super(message); - _defineProperty(this, "code", void 0); - _defineProperty(this, "message", void 0); - this.code = code; - this.message = message || ""; - // Set name explicitly as minification can mangle class names - Object.defineProperty(this, "name", { - value: "TkeyError" - }); - } - toJSON() { - return { - name: this.name, - code: this.code, - message: this.message - }; - } - toString() { - return JSON.stringify(this.toJSON()); - } -} - -/** - * CoreKitError, extension for Error using CustomError - * - * Usage: - * 1. throw CoreKitError.factorKeyNotPresent("Required factor key missing in the operation."); // Use a predefined method to throw a common error - * 2. throw CoreKitError.fromCode(1001); // Throw an error using a code for a common error - * 3. throw new CoreKitError(1102, "'tkey' instance has not been initialized."); // Throw a specific error with a custom message - * - * Guide: - * 1000 - Configuration errors - * 1100 - TSS and key management errors - * 1200 - Factor key and authentication errors - * 1300 - Initialization and session management - */ -class CoreKitError extends AbstractCoreKitError { - constructor(code, message) { - super(code, message); - Object.defineProperty(this, "name", { - value: "CoreKitError" - }); - } - static fromCode(code, extraMessage = "") { - return new CoreKitError(code, `${CoreKitError.messages[code]} ${extraMessage}`); - } - static default(extraMessage = "") { - return new CoreKitError(1000, `${CoreKitError.messages[1000]} ${extraMessage}`); - } - - // Configuration errors - static chainConfigInvalid(extraMessage = "") { - return CoreKitError.fromCode(1001, extraMessage); - } - static clientIdInvalid(extraMessage = "") { - return CoreKitError.fromCode(1002, extraMessage); - } - static storageTypeUnsupported(extraMessage = "") { - return CoreKitError.fromCode(1003, extraMessage); - } - static oauthLoginUnsupported(extraMessage = "") { - return CoreKitError.fromCode(1004, extraMessage); - } - static noValidStorageOptionFound(extraMessage = "") { - return CoreKitError.fromCode(1005, extraMessage); - } - static noDataFoundInStorage(extraMessage = "") { - return CoreKitError.fromCode(1006, extraMessage); - } - static invalidConfig(extraMessage = "") { - return CoreKitError.fromCode(1007, extraMessage); - } - - // TSS and key management errors - static tssLibRequired(extraMessage = "") { - return CoreKitError.fromCode(1101, extraMessage); - } - static tkeyInstanceUninitialized(extraMessage = "") { - return CoreKitError.fromCode(1102, extraMessage); - } - static duplicateTssIndex(extraMessage = "") { - return CoreKitError.fromCode(1103, extraMessage); - } - static nodeDetailsRetrievalFailed(extraMessage = "") { - return CoreKitError.fromCode(1104, extraMessage); - } - static prefetchValueExceeded(extraMessage = "") { - return CoreKitError.fromCode(1105, extraMessage); - } - static invalidTorusLoginResponse(extraMessage = "") { - return CoreKitError.fromCode(1106, extraMessage); - } - static invalidTorusAggregateLoginResponse(extraMessage = "") { - return CoreKitError.fromCode(1107, extraMessage); - } - static unsupportedRedirectMethod(extraMessage = "") { - return CoreKitError.fromCode(1108, extraMessage); - } - static postBoxKeyMissing(extraMessage = "") { - return CoreKitError.fromCode(1109, extraMessage); - } - static tssShareTypeIndexMissing(extraMessage = "") { - return CoreKitError.fromCode(1110, extraMessage); - } - static tssPublicKeyOrEndpointsMissing(extraMessage = "") { - return CoreKitError.fromCode(1111, extraMessage); - } - static activeSessionNotFound(extraMessage = "") { - return CoreKitError.fromCode(1112, extraMessage); - } - static tssNoncesMissing(extraMessage = "") { - return CoreKitError.fromCode(1113, extraMessage); - } - static tssKeyImportNotAllowed(extraMessage = "") { - return CoreKitError.fromCode(1114, extraMessage); - } - - // Factor key and authentication errors - static factorKeyNotPresent(extraMessage = "") { - return CoreKitError.fromCode(1201, extraMessage); - } - static factorKeyAlreadyExists(extraMessage = "") { - return CoreKitError.fromCode(1202, extraMessage); - } - static mfaAlreadyEnabled(extraMessage = "") { - return CoreKitError.fromCode(1203, extraMessage); - } - static cannotDeleteLastFactor(extraMessage = "") { - return CoreKitError.fromCode(1204, extraMessage); - } - static factorInUseCannotBeDeleted(extraMessage = "") { - return CoreKitError.fromCode(1205, extraMessage); - } - static userNotLoggedIn(extraMessage = "") { - return CoreKitError.fromCode(1206, extraMessage); - } - static providedFactorKeyInvalid(extraMessage = "") { - return CoreKitError.fromCode(1207, extraMessage); - } - static factorEncsMissing(extraMessage = "") { - return CoreKitError.fromCode(1208, extraMessage); - } - static noMetadataFound(extraMessage = "") { - return CoreKitError.fromCode(1209, extraMessage); - } - static newShareIndexInvalid(extraMessage = "") { - return CoreKitError.fromCode(1210, extraMessage); - } - static maximumFactorsReached(extraMessage = "") { - return CoreKitError.fromCode(1211, extraMessage); - } - static noMetadataShareFound(extraMessage = "") { - return CoreKitError.fromCode(1212, extraMessage); - } - static signaturesNotPresent(extraMessage = "") { - return CoreKitError.fromCode(1213, extraMessage); - } - static factorPubsMissing(extraMessage = "") { - return CoreKitError.fromCode(1214, extraMessage); - } - - // Initialization and session management - static commitChangesBeforeMFA(extraMessage = "") { - return CoreKitError.fromCode(1301, extraMessage); - } - static mpcCoreKitNotInitialized(extraMessage = "") { - return CoreKitError.fromCode(1302, extraMessage); - } -} -_defineProperty(CoreKitError, "messages", { - // Configuration errors - 1001: "You must specify a valid eip155 chain configuration in the options.", - 1002: "You must specify a web3auth clientId.", - 1003: "Unsupported storage type in this UX mode.", - 1004: "OAuth login is NOT supported in this UX mode.", - 1005: "No valid storage option found.", - 1006: "No data found in storage.", - 1007: "Invalid config.", - // TSS and key management errors - 1101: "'tssLib' is required when running in this UX mode.", - 1102: "'tkey' instance has not been initialized.", - 1103: "Duplicate TSS index found. Ensure that each TSS index is unique.", - 1104: "Failed to retrieve node details. Please check your network connection and try again.", - 1105: "The prefetch TSS public keys exceeds the maximum allowed limit of 3.", - 1106: "Invalid 'TorusLoginResponse' data provided.", - 1107: "Invalid 'TorusAggregateLoginResponse' data provided.", - 1108: "Unsupported method type encountered in redirect result.", - 1109: "OAuthKey not present in state.", - 1110: "TSS Share Type (Index) not present in state when getting current factor key.", - 1111: "'tssPubKey' or 'torusNodeTSSEndpoints' are missing.", - 1112: "No active session found.", - 1113: "tssNonces not present in metadata when getting tss nonce.", - 1114: "A TSS key cannot be imported for an existing user who already has a key configured.", - // Factor key and authentication errors - 1201: "factorKey not present in state when required.", - 1202: "A factor with the same key already exists.", - 1203: "MFA is already enabled.", - 1204: "Cannot delete the last remaining factor as at least one factor is required.", - 1205: "The factor currently in use cannot be deleted.", - 1206: "User is not logged in.", - 1207: "Provided factor key is invalid.", - 1208: "'factorEncs' mpt [resemt].", - 1209: "No metadata found for the provided factor key. Consider resetting your account if this error persists.", - 1210: "The new share index is not valid. It must be one of the valid share indices.", - 1211: "The maximum number of allowable factors (10) has been reached.", - 1212: "No metadata share found in the current polynomial.", - 1213: "No signatures found.", - 1214: "Factor public keys not present", - // Initialization and session management - 1301: "The 'CommitChanges' method must be called before enabling MFA.", - 1302: "The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations." -}); - -export { CustomError, CoreKitError as default }; diff --git a/package/dist/lib.esm/helper/factorSerialization.js b/package/dist/lib.esm/helper/factorSerialization.js deleted file mode 100644 index 81c779a8..00000000 --- a/package/dist/lib.esm/helper/factorSerialization.js +++ /dev/null @@ -1,25 +0,0 @@ -import { ShareSerializationModule } from '@tkey/share-serialization'; -import BN from 'bn.js'; - -/** - * Converts a mnemonic to a BN. - * @param shareMnemonic - The mnemonic to convert. - * @returns A BN respective to your mnemonic - */ -function mnemonicToKey(shareMnemonic) { - const factorKey = ShareSerializationModule.deserializeMnemonic(shareMnemonic); - return factorKey.toString("hex"); -} - -/** - * Converts a BN to a mnemonic. - * @param shareBN - The BN to convert. - * @returns A mnemonic respective to your BN - */ -function keyToMnemonic(shareHex) { - const shareBN = new BN(shareHex, "hex"); - const mnemonic = ShareSerializationModule.serializeMnemonic(shareBN); - return mnemonic; -} - -export { keyToMnemonic, mnemonicToKey }; diff --git a/package/dist/lib.esm/helper/securityQuestion.js b/package/dist/lib.esm/helper/securityQuestion.js deleted file mode 100644 index a815abd0..00000000 --- a/package/dist/lib.esm/helper/securityQuestion.js +++ /dev/null @@ -1,211 +0,0 @@ -import _objectSpread from '@babel/runtime/helpers/objectSpread2'; -import _defineProperty from '@babel/runtime/helpers/defineProperty'; -import { secp256k1, Point } from '@tkey/common-types'; -import { getPubKeyPoint, factorKeyCurve } from '@tkey/tss'; -import { keccak256 } from '@toruslabs/torus.js'; -import BN from 'bn.js'; -import { TssShareType, VALID_SHARE_INDICES, FactorKeyTypeShareDescription } from '../constants.js'; - -class TssSecurityQuestionStore { - constructor(shareIndex, factorPublicKey, question) { - _defineProperty(this, "shareIndex", void 0); - _defineProperty(this, "factorPublicKey", void 0); - _defineProperty(this, "question", void 0); - this.shareIndex = shareIndex; - this.factorPublicKey = factorPublicKey; - this.question = question; - } - static fromJSON(json) { - const { - shareIndex, - factorPublicKey, - question - } = json; - return new TssSecurityQuestionStore(shareIndex, factorPublicKey, question); - } - toJSON() { - return { - shareIndex: this.shareIndex, - factorPublicKey: this.factorPublicKey, - question: this.question - }; - } -} -class TssSecurityQuestion { - constructor() { - _defineProperty(this, "storeDomainName", "tssSecurityQuestion"); - } - async setSecurityQuestion(params) { - const { - mpcCoreKit, - question, - answer, - description - } = params; - let { - shareType - } = params; - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - if (!question || !answer) { - throw new Error("question and answer are required"); - } - const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; - - // default using recovery index - if (!shareType) { - shareType = TssShareType.RECOVERY; - } else if (!VALID_SHARE_INDICES.includes(shareType)) { - throw new Error(`invalid share type: must be one of ${VALID_SHARE_INDICES}`); - } - // Check for existing security question - const tkey = mpcCoreKit.tKey; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (storeDomain && storeDomain.question) { - throw new Error("Security question already exists"); - } - - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; - let hash = keccak256(Buffer.from(answer + pubKey, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new BN(hash, "hex"); - const descriptionFinal = _objectSpread({ - question - }, description); - await mpcCoreKit.createFactor({ - factorKey: factorKeyBN, - shareType, - shareDescription: FactorKeyTypeShareDescription.SecurityQuestions, - additionalMetadata: descriptionFinal - }); - // set store domain - const tkeyPt = getPubKeyPoint(factorKeyBN, factorKeyCurve); - const factorPub = tkeyPt.toSEC1(factorKeyCurve, true).toString("hex"); - const storeData = new TssSecurityQuestionStore(shareType.toString(), factorPub, question); - tkey.metadata.setGeneralStoreDomain(domainKey, storeData.toJSON()); - - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - return factorKeyBN.toString("hex").padStart(64, "0"); - } - async changeSecurityQuestion(params) { - const { - mpcCoreKit, - newQuestion, - newAnswer, - answer - } = params; - if (!newQuestion || !newAnswer || !answer) { - throw new Error("question and answer are required"); - } - // Check for existing security question - const tkey = mpcCoreKit.tKey; - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; - const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - const preHash = answer + pubKey; - let hash = keccak256(Buffer.from(preHash, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new BN(hash, "hex"); - const factorKeyPt = getPubKeyPoint(factorKeyBN, factorKeyCurve); - if (factorKeyPt.toSEC1(factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { - throw new Error("Invalid answer"); - } - - // create new factor key - const prenewHash = newAnswer + pubKey; - let newHash = keccak256(Buffer.from(prenewHash, "utf8")); - newHash = newHash.startsWith("0x") ? newHash.slice(2) : newHash; - const newAnswerBN = new BN(newHash, "hex"); - const newFactorPt = Point.fromScalar(newAnswerBN, factorKeyCurve); - await mpcCoreKit.createFactor({ - factorKey: newAnswerBN, - shareType: parseInt(store.shareIndex), - shareDescription: FactorKeyTypeShareDescription.SecurityQuestions - }); - - // update mpcCoreKit state to use new factor key during change password if mpc factor key is security question factor - if (mpcCoreKit.state.factorKey.eq(factorKeyBN)) { - await mpcCoreKit.inputFactorKey(newAnswerBN); - } - // delete after create factor to prevent last key issue - // delete old factor key and device share - await mpcCoreKit.deleteFactor(factorKeyPt, factorKeyBN); - store.factorPublicKey = newFactorPt.toSEC1(factorKeyCurve, true).toString("hex"); - store.question = newQuestion; - tkey.metadata.setGeneralStoreDomain(domainKey, store.toJSON()); - - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - } - - // Should we check with answer before deleting? - async deleteSecurityQuestion(mpcCoreKit, deleteFactorKey = true) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const tkey = mpcCoreKit.tKey; - if (deleteFactorKey) { - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - if (store.factorPublicKey) { - await mpcCoreKit.deleteFactor(Point.fromSEC1(factorKeyCurve, store.factorPublicKey)); - } - } - tkey.metadata.deleteGeneralStoreDomain(domainKey); - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - } - async recoverFactor(mpcCoreKit, answer) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - if (!answer) { - throw new Error("question and answer are required"); - } - const tkey = mpcCoreKit.tKey; - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; - let hash = keccak256(Buffer.from(answer + pubKey, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new BN(hash, "hex"); - const factorKeyPt = Point.fromScalar(factorKeyBN, factorKeyCurve); - if (factorKeyPt.toSEC1(factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { - throw new Error("Invalid answer"); - } - return hash; - } - getQuestion(mpcCoreKit) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - const tkey = mpcCoreKit.tKey; - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - return store.question; - } -} - -export { TssSecurityQuestion, TssSecurityQuestionStore }; diff --git a/package/dist/lib.esm/index.js b/package/dist/lib.esm/index.js deleted file mode 100644 index 20cc9367..00000000 --- a/package/dist/lib.esm/index.js +++ /dev/null @@ -1,8 +0,0 @@ -export { DELIMITERS, ERRORS, FIELD_ELEMENT_HEX_LEN, FactorKeyTypeShareDescription, MAX_FACTORS, SCALAR_LEN, SOCIAL_FACTOR_INDEX, SOCIAL_TKEY_INDEX, TssShareType, USER_PATH, VALID_SHARE_INDICES, WEB3AUTH_NETWORK } from './constants.js'; -export { AsyncStorage, MemoryStorage } from './helper/browserStorage.js'; -export { keyToMnemonic, mnemonicToKey } from './helper/factorSerialization.js'; -export { TssSecurityQuestion, TssSecurityQuestionStore } from './helper/securityQuestion.js'; -export { COREKIT_STATUS } from './interfaces.js'; -export { Web3AuthMPCCoreKit } from './mpcCoreKit.js'; -export { deriveShareCoefficients, ed25519, fraction, generateEd25519Seed, generateFactorKey, generateSessionNonce, generateTSSEndpoints, getHashedPrivateKey, getSessionId, lagrangeCoefficient, lagrangeCoefficients, log, makeEthereumSigner, parseToken, randomBytes, sampleEndpoints, scalarBNToBufferSEC1, sigToRSV, storageAvailable } from './utils.js'; -export { factorKeyCurve } from '@tkey/tss'; diff --git a/package/dist/lib.esm/interfaces.js b/package/dist/lib.esm/interfaces.js deleted file mode 100644 index efe70ed1..00000000 --- a/package/dist/lib.esm/interfaces.js +++ /dev/null @@ -1,11 +0,0 @@ -// TODO: move the types to a base class for both dkls and frost in future - -let COREKIT_STATUS = /*#__PURE__*/function (COREKIT_STATUS) { - COREKIT_STATUS["NOT_INITIALIZED"] = "NOT_INITIALIZED"; - COREKIT_STATUS["INITIALIZED"] = "INITIALIZED"; - COREKIT_STATUS["REQUIRED_SHARE"] = "REQUIRED_SHARE"; - COREKIT_STATUS["LOGGED_IN"] = "LOGGED_IN"; - return COREKIT_STATUS; -}({}); - -export { COREKIT_STATUS }; diff --git a/package/dist/lib.esm/mpcCoreKit.js b/package/dist/lib.esm/mpcCoreKit.js deleted file mode 100644 index 3a18436b..00000000 --- a/package/dist/lib.esm/mpcCoreKit.js +++ /dev/null @@ -1,1402 +0,0 @@ -import _objectSpread from '@babel/runtime/helpers/objectSpread2'; -import _defineProperty from '@babel/runtime/helpers/defineProperty'; -import { KeyType, Point, secp256k1, ShareStore, SHARE_DELETED } from '@tkey/common-types'; -import { CoreError } from '@tkey/core'; -import { ShareSerializationModule } from '@tkey/share-serialization'; -import { TorusStorageLayer } from '@tkey/storage-layer-torus'; -import { factorKeyCurve, lagrangeInterpolation, TSSTorusServiceProvider, TKeyTSS, getPubKeyPoint } from '@tkey/tss'; -import { KEY_TYPE, SIGNER_MAP } from '@toruslabs/constants'; -import { UX_MODE, AGGREGATE_VERIFIER, TORUS_METHOD } from '@toruslabs/customauth'; -import { Ed25519Curve } from '@toruslabs/elliptic-wrapper'; -import { fetchLocalConfig } from '@toruslabs/fnd-base'; -import { keccak256 } from '@toruslabs/metadata-helpers'; -import { SessionManager } from '@toruslabs/session-manager'; -import { Torus } from '@toruslabs/torus.js'; -import { setupSockets, getDKLSCoeff, Client } from '@toruslabs/tss-client'; -import { sign } from '@toruslabs/tss-frost-client'; -import BN from 'bn.js'; -import bowser from 'bowser'; -import { ec } from 'elliptic'; -import { WEB3AUTH_NETWORK, ERRORS, TssShareType, VALID_SHARE_INDICES, FactorKeyTypeShareDescription, FIELD_ELEMENT_HEX_LEN, MAX_FACTORS, SOCIAL_TKEY_INDEX } from './constants.js'; -import { AsyncStorage } from './helper/browserStorage.js'; -import CoreKitError from './helper/errors.js'; -import { COREKIT_STATUS } from './interfaces.js'; -import { log, parseToken, getHashedPrivateKey, generateFactorKey, scalarBNToBufferSEC1, ed25519, generateSessionNonce, getSessionId, generateTSSEndpoints, generateEd25519Seed, sampleEndpoints, deriveShareCoefficients } from './utils.js'; - -class Web3AuthMPCCoreKit { - constructor(options) { - var _window; - _defineProperty(this, "state", { - accountIndex: 0 - }); - _defineProperty(this, "torusSp", null); - _defineProperty(this, "options", void 0); - _defineProperty(this, "storageLayer", null); - _defineProperty(this, "tkey", null); - _defineProperty(this, "sessionManager", void 0); - _defineProperty(this, "currentStorage", void 0); - _defineProperty(this, "_storageBaseKey", "corekit_store"); - _defineProperty(this, "enableLogging", false); - _defineProperty(this, "ready", false); - _defineProperty(this, "_tssLib", void 0); - _defineProperty(this, "wasmLib", void 0); - _defineProperty(this, "_keyType", void 0); - _defineProperty(this, "atomicCallStackCounter", 0); - _defineProperty(this, "getTssFactorPub", () => { - this.checkReady(); - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when getting tss factor public key."); - } - const factorPubsList = this.tKey.metadata.factorPubs[this.tKey.tssTag]; - return factorPubsList.map(factorPub => factorPub.toSEC1(factorKeyCurve, true).toString("hex")); - }); - if (!options.web3AuthClientId) { - throw CoreKitError.clientIdInvalid(); - } - this._tssLib = options.tssLib; - this._keyType = options.tssLib.keyType; - const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); - if (options.enableLogging) { - log.enableAll(); - this.enableLogging = true; - } else log.setLevel("error"); - if (typeof options.manualSync !== "boolean") options.manualSync = false; - if (!options.web3AuthNetwork) options.web3AuthNetwork = WEB3AUTH_NETWORK.MAINNET; - // if sessionTime is not provided, it is defaulted to 86400 - if (!options.sessionTime) options.sessionTime = 86400; - if (!options.serverTimeOffset) options.serverTimeOffset = 0; - if (!options.uxMode) options.uxMode = UX_MODE.REDIRECT; - if (!options.redirectPathName) options.redirectPathName = "redirect"; - if (!options.baseUrl) options.baseUrl = isNodejsOrRN ? "https://localhost" : `${(_window = window) === null || _window === void 0 ? void 0 : _window.location.origin}/serviceworker`; - if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; - if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; - if (options.disableSessionManager === undefined) options.disableSessionManager = false; - this.options = options; - this.currentStorage = new AsyncStorage(this._storageBaseKey, options.storage); - if (!options.disableSessionManager) { - this.sessionManager = new SessionManager({ - sessionTime: options.sessionTime - }); - } - Torus.setSessionTime(this.options.sessionTime); - } - get tKey() { - if (this.tkey === null) { - throw CoreKitError.tkeyInstanceUninitialized(); - } - return this.tkey; - } - get keyType() { - return this._keyType; - } - get signatures() { - var _this$state; - return (_this$state = this.state) !== null && _this$state !== void 0 && _this$state.signatures ? this.state.signatures : []; - } - get _storageKey() { - return this._storageBaseKey; - } - get status() { - try { - // metadata will be present if tkey is initialized (1 share) - // if 2 shares are present, then privKey will be present after metadatakey(tkey) reconstruction - const { - tkey - } = this; - if (!tkey) return COREKIT_STATUS.NOT_INITIALIZED; - if (!tkey.metadata) return COREKIT_STATUS.INITIALIZED; - if (!tkey.secp256k1Key || !this.state.factorKey) return COREKIT_STATUS.REQUIRED_SHARE; - return COREKIT_STATUS.LOGGED_IN; - } catch (e) {} - return COREKIT_STATUS.NOT_INITIALIZED; - } - get sessionId() { - var _this$sessionManager; - return (_this$sessionManager = this.sessionManager) === null || _this$sessionManager === void 0 ? void 0 : _this$sessionManager.sessionId; - } - get supportsAccountIndex() { - return this._keyType !== KeyType.ed25519; - } - get verifier() { - var _this$state$userInfo, _this$state2; - if ((_this$state$userInfo = this.state.userInfo) !== null && _this$state$userInfo !== void 0 && _this$state$userInfo.aggregateVerifier) { - return this.state.userInfo.aggregateVerifier; - } - return (_this$state2 = this.state) !== null && _this$state2 !== void 0 && (_this$state2 = _this$state2.userInfo) !== null && _this$state2 !== void 0 && _this$state2.verifier ? this.state.userInfo.verifier : ""; - } - get verifierId() { - var _this$state3; - return (_this$state3 = this.state) !== null && _this$state3 !== void 0 && (_this$state3 = _this$state3.userInfo) !== null && _this$state3 !== void 0 && _this$state3.verifierId ? this.state.userInfo.verifierId : ""; - } - get isRedirectMode() { - return this.options.uxMode === UX_MODE.REDIRECT; - } - get useClientGeneratedTSSKey() { - return this.keyType === KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; - } - - // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : - // TssShareType.DEVICE and TssShareType.RECOVERY - // if the factors key provided is the same type recovery will not works - async _UNSAFE_recoverTssKey(factorKey) { - this.checkReady(); - const factorKeyBN = new BN(factorKey[0], "hex"); - const shareStore0 = await this.getFactorKeyMetadata(factorKeyBN); - await this.tKey.initialize({ - withShare: shareStore0 - }); - const tssShares = []; - const tssIndexes = []; - const tssIndexesBN = []; - for (let i = 0; i < factorKey.length; i++) { - const factorKeyBNInput = new BN(factorKey[i], "hex"); - const { - tssIndex, - tssShare - } = await this.tKey.getTSSShare(factorKeyBNInput); - if (tssIndexes.includes(tssIndex)) { - // reset instance before throw error - await this.init(); - throw CoreKitError.duplicateTssIndex(); - } - tssIndexes.push(tssIndex); - tssIndexesBN.push(new BN(tssIndex)); - tssShares.push(tssShare); - } - const finalKey = lagrangeInterpolation(this.tkey.tssCurve, tssShares, tssIndexesBN); - // reset instance after recovery completed - await this.init(); - return finalKey.toString("hex", 64); - } - async init(params = { - handleRedirectResult: true - }) { - var _window2, _window3; - this.resetState(); - if (params.rehydrate === undefined) params.rehydrate = true; - const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); - if (this.keyType === KEY_TYPE.ED25519 && this.options.useDKG) { - throw CoreKitError.invalidConfig("DKG is not supported for ed25519 key type"); - } - this.torusSp = new TSSTorusServiceProvider({ - customAuthArgs: { - web3AuthClientId: this.options.web3AuthClientId, - baseUrl: this.options.baseUrl, - uxMode: this.isNodejsOrRN(this.options.uxMode) ? UX_MODE.REDIRECT : this.options.uxMode, - network: this.options.web3AuthNetwork, - redirectPathName: this.options.redirectPathName, - locationReplaceOnRedirect: true, - serverTimeOffset: this.options.serverTimeOffset, - keyType: this.keyType, - useDkg: this.options.useDKG - } - }); - this.storageLayer = new TorusStorageLayer({ - hostUrl: `${new URL(nodeDetails.torusNodeEndpoints[0]).origin}/metadata`, - enableLogging: this.enableLogging - }); - const shareSerializationModule = new ShareSerializationModule(); - this.tkey = new TKeyTSS({ - enableLogging: this.enableLogging, - serviceProvider: this.torusSp, - storageLayer: this.storageLayer, - manualSync: this.options.manualSync, - modules: { - shareSerialization: shareSerializationModule - }, - tssKeyType: this.keyType - }); - if (this.isRedirectMode) { - await this.torusSp.init({ - skipSw: true, - skipPrefetch: true - }); - } else if (this.options.uxMode === UX_MODE.POPUP) { - await this.torusSp.init({}); - } - this.ready = true; - - // try handle redirect flow if enabled and return(redirect) from oauth login - if (params.handleRedirectResult && this.options.uxMode === UX_MODE.REDIRECT && ((_window2 = window) !== null && _window2 !== void 0 && _window2.location.hash.includes("#state") || (_window3 = window) !== null && _window3 !== void 0 && _window3.location.hash.includes("#access_token"))) { - // on failed redirect, instance is reseted. - // skip check feature gating on redirection as it was check before login - await this.handleRedirectResult(); - - // return early on successful redirect, the rest of the code will not be executed - return; - } else if (params.rehydrate && this.sessionManager) { - // if not redirect flow try to rehydrate session if available - const sessionId = await this.currentStorage.get("sessionId"); - if (sessionId) { - this.sessionManager.sessionId = sessionId; - - // swallowed, should not throw on rehydrate timed out session - const sessionResult = await this.sessionManager.authorizeSession().catch(async err => { - log.error("rehydrate session error", err); - }); - - // try rehydrate session - if (sessionResult) { - await this.rehydrateSession(sessionResult); - - // return early on success rehydration - return; - } - } - } - // feature gating if not redirect flow or session rehydration - await this.featureRequest(); - } - async loginWithOAuth(params) { - this.checkReady(); - if (this.isNodejsOrRN(this.options.uxMode)) { - throw CoreKitError.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`); - } - const { - importTssKey - } = params; - const tkeyServiceProvider = this.torusSp; - try { - // oAuth login. - const verifierParams = params; - const aggregateParams = params; - if (verifierParams.subVerifierDetails) { - var _loginResponse$nodesD; - // single verifier login. - const loginResponse = await tkeyServiceProvider.triggerLogin(params.subVerifierDetails); - if (this.isRedirectMode) return; - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: (_loginResponse$nodesD = loginResponse.nodesData) === null || _loginResponse$nodesD === void 0 ? void 0 : _loginResponse$nodesD.nodeIndexes, - userInfo: loginResponse.userInfo, - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - } else if (aggregateParams.subVerifierDetailsArray) { - var _loginResponse$nodesD2; - const loginResponse = await tkeyServiceProvider.triggerAggregateLogin({ - aggregateVerifierType: aggregateParams.aggregateVerifierType || AGGREGATE_VERIFIER.SINGLE_VERIFIER_ID, - verifierIdentifier: aggregateParams.aggregateVerifierIdentifier, - subVerifierDetailsArray: aggregateParams.subVerifierDetailsArray - }); - if (this.isRedirectMode) return; - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: (_loginResponse$nodesD2 = loginResponse.nodesData) === null || _loginResponse$nodesD2 === void 0 ? void 0 : _loginResponse$nodesD2.nodeIndexes, - userInfo: loginResponse.userInfo[0], - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - } - await this.setupTkey(importTssKey); - } catch (err) { - log.error("login error", err); - if (err instanceof CoreError) { - if (err.code === 1302) { - throw CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); - } - } - throw CoreKitError.default(err.message); - } - } - async loginWithJWT(params) { - this.checkReady(); - const { - prefetchTssPublicKeys = 1 - } = params; - if (prefetchTssPublicKeys > 3) { - throw CoreKitError.prefetchValueExceeded(`The prefetch value '${prefetchTssPublicKeys}' exceeds the maximum allowed limit of 3.`); - } - const { - verifier, - verifierId, - idToken, - importTssKey - } = params; - this.torusSp.verifierName = verifier; - this.torusSp.verifierId = verifierId; - try { - var _loginResponse$nodesD3; - // prefetch tss pub keys. - const prefetchTssPubs = []; - for (let i = 0; i < prefetchTssPublicKeys; i++) { - prefetchTssPubs.push(this.torusSp.getTSSPubKey(this.tkey.tssTag, i)); - } - - // get postbox key. - let loginPromise; - if (!params.subVerifier) { - // single verifier login. - loginPromise = this.torusSp.customAuthInstance.getTorusKey(verifier, verifierId, { - verifier_id: verifierId - }, idToken, _objectSpread(_objectSpread({}, params.extraVerifierParams), params.additionalParams)); - } else { - // aggregate verifier login - loginPromise = this.torusSp.customAuthInstance.getAggregateTorusKey(verifier, verifierId, [{ - verifier: params.subVerifier, - idToken, - extraVerifierParams: params.extraVerifierParams - }]); - } - - // wait for prefetch completed before setup tkey - const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]); - const postBoxKey = this._getPostBoxKey(loginResponse); - this.torusSp.postboxKey = new BN(postBoxKey, "hex"); - this.updateState({ - postBoxKey, - postboxKeyNodeIndexes: ((_loginResponse$nodesD3 = loginResponse.nodesData) === null || _loginResponse$nodesD3 === void 0 ? void 0 : _loginResponse$nodesD3.nodeIndexes) || [], - userInfo: _objectSpread(_objectSpread({}, parseToken(idToken)), {}, { - verifier, - verifierId - }), - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - await this.setupTkey(importTssKey); - } catch (err) { - log.error("login error", err); - if (err instanceof CoreError) { - if (err.code === 1302) { - const newError = CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); - newError.stack = err.stack; - throw newError; - } - } - const newError = CoreKitError.default(err.message); - newError.stack = err.stack; - throw newError; - } - } - async handleRedirectResult() { - this.checkReady(); - try { - const result = await this.torusSp.customAuthInstance.getRedirectResult(); - if (result.method === TORUS_METHOD.TRIGGER_LOGIN) { - var _data$nodesData; - const data = result.result; - if (!data) { - throw CoreKitError.invalidTorusLoginResponse(); - } - this.updateState({ - postBoxKey: this._getPostBoxKey(data), - postboxKeyNodeIndexes: ((_data$nodesData = data.nodesData) === null || _data$nodesData === void 0 ? void 0 : _data$nodesData.nodeIndexes) || [], - userInfo: data.userInfo, - signatures: this._getSignatures(data.sessionData.sessionTokenData) - }); - const userInfo = this.getUserInfo(); - this.torusSp.verifierName = userInfo.verifier; - } else if (result.method === TORUS_METHOD.TRIGGER_AGGREGATE_LOGIN) { - var _data$nodesData2; - const data = result.result; - if (!data) { - throw CoreKitError.invalidTorusAggregateLoginResponse(); - } - this.updateState({ - postBoxKey: this._getPostBoxKey(data), - postboxKeyNodeIndexes: ((_data$nodesData2 = data.nodesData) === null || _data$nodesData2 === void 0 ? void 0 : _data$nodesData2.nodeIndexes) || [], - userInfo: data.userInfo[0], - signatures: this._getSignatures(data.sessionData.sessionTokenData) - }); - const userInfo = this.getUserInfo(); - this.torusSp.verifierName = userInfo.aggregateVerifier; - } else { - throw CoreKitError.unsupportedRedirectMethod(); - } - const userInfo = this.getUserInfo(); - if (!this.state.postBoxKey) { - throw CoreKitError.postBoxKeyMissing("postBoxKey not present in state after processing redirect result."); - } - this.torusSp.postboxKey = new BN(this.state.postBoxKey, "hex"); - this.torusSp.verifierId = userInfo.verifierId; - await this.setupTkey(); - } catch (error) { - this.resetState(); - log.error("error while handling redirect result", error); - throw CoreKitError.default(error.message); - } - } - async inputFactorKey(factorKey) { - this.checkReady(); - try { - // input tkey device share when required share > 0 ( or not reconstructed ) - // assumption tkey shares will not changed - if (!this.tKey.secp256k1Key) { - const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - } - - // Finalize initialization. - await this.tKey.reconstructKey(); - await this.finalizeTkey(factorKey); - } catch (err) { - log.error("login error", err); - if (err instanceof CoreError) { - if (err.code === 1302) { - throw CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); - } - } - throw CoreKitError.default(err.message); - } - } - setTssWalletIndex(accountIndex) { - this.updateState({ - tssPubKey: this.tKey.getTSSPub(accountIndex).toSEC1(this.tkey.tssCurve, false), - accountIndex - }); - } - getCurrentFactorKey() { - this.checkReady(); - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when getting current factor key."); - } - if (!this.state.tssShareIndex) { - throw CoreKitError.tssShareTypeIndexMissing("TSS Share Type (Index) not present in state when getting current factor key."); - } - try { - return { - factorKey: this.state.factorKey, - shareType: this.state.tssShareIndex - }; - } catch (err) { - log.error("state error", err); - throw CoreKitError.default(err.message); - } - } - async enableMFA(enableMFAParams, recoveryFactor = true) { - this.checkReady(); - const { - postBoxKey - } = this.state; - const hashedFactorKey = getHashedPrivateKey(postBoxKey, this.options.hashedFactorNonce); - if (!(await this.checkIfFactorKeyValid(hashedFactorKey))) { - if (this.tKey._localMetadataTransitions[0].length) { - throw CoreKitError.commitChangesBeforeMFA(); - } - throw CoreKitError.mfaAlreadyEnabled(); - } - return this.atomicSync(async () => { - let browserData; - if (this.isNodejsOrRN(this.options.uxMode)) { - browserData = { - browserName: "Node Env", - browserVersion: "", - deviceName: "nodejs" - }; - } else { - // try { - const browserInfo = bowser.parse(navigator.userAgent); - const browserName = `${browserInfo.browser.name}`; - browserData = { - browserName, - browserVersion: browserInfo.browser.version, - deviceName: browserInfo.os.name - }; - } - const deviceFactorKey = new BN(await this.createFactor({ - shareType: TssShareType.DEVICE, - additionalMetadata: browserData - }), "hex"); - await this.setDeviceFactor(deviceFactorKey); - await this.inputFactorKey(new BN(deviceFactorKey, "hex")); - const hashedFactorPub = getPubKeyPoint(hashedFactorKey, factorKeyCurve); - await this.deleteFactor(hashedFactorPub, hashedFactorKey); - await this.deleteMetadataShareBackup(hashedFactorKey); - - // only recovery factor = true - let backupFactorKey; - if (recoveryFactor) { - backupFactorKey = await this.createFactor(_objectSpread({ - shareType: TssShareType.RECOVERY - }, enableMFAParams)); - } - - // update to undefined for next major release - return backupFactorKey; - }).catch(reason => { - log.error("error enabling MFA:", reason.message); - const err = CoreKitError.default(reason.message); - err.stack = reason.stack; - throw err; - }); - } - // mutation function - async createFactor(createFactorParams) { - this.checkReady(); - const { - shareType - } = createFactorParams; - let { - factorKey, - shareDescription, - additionalMetadata - } = createFactorParams; - if (!VALID_SHARE_INDICES.includes(shareType)) { - throw CoreKitError.newShareIndexInvalid(`Invalid share type provided (${shareType}). Valid share types are ${VALID_SHARE_INDICES}.`); - } - if (!factorKey) { - factorKey = generateFactorKey().private; - } - if (!shareDescription) { - shareDescription = FactorKeyTypeShareDescription.Other; - } - if (!additionalMetadata) { - additionalMetadata = {}; - } - const factorPub = getPubKeyPoint(factorKey, factorKeyCurve); - if (this.getTssFactorPub().includes(factorPub.toSEC1(factorKeyCurve, true).toString("hex"))) { - throw CoreKitError.factorKeyAlreadyExists(); - } - return this.atomicSync(async () => { - await this.copyOrCreateShare(shareType, factorPub); - await this.backupMetadataShare(factorKey); - await this.addFactorDescription({ - factorKey, - shareDescription, - additionalMetadata, - updateMetadata: false - }); - return scalarBNToBufferSEC1(factorKey).toString("hex"); - }).catch(reason => { - log.error("error creating factor:", reason.message); - const err = CoreKitError.default(`error creating factor: ${reason.message}`); - err.stack = reason.stack; - throw err; - }); - } - - /** - * Get public key point in SEC1 format. - */ - getPubKey() { - const { - tssPubKey - } = this.state; - return Buffer.from(tssPubKey); - } - - /** - * Get public key point. - */ - getPubKeyPoint() { - const { - tssPubKey - } = this.state; - return Point.fromSEC1(this.tkey.tssCurve, tssPubKey.toString("hex")); - } - - /** - * Get public key in ed25519 format. - * - * Throws an error if keytype is not compatible with ed25519. - */ - getPubKeyEd25519() { - const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); - return ed25519().keyFromPublic(p).getPublic(); - } - async precompute_secp256k1() { - this.wasmLib = await this.loadTssWasm(); - // PreSetup - const { - tssShareIndex - } = this.state; - const tssPubKey = this.getPubKeyPoint(); - const { - torusNodeTSSEndpoints - } = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when signing."); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey, { - accountIndex: 0 - }); - const tssNonce = this.getTssNonce(); - if (!tssPubKey || !torusNodeTSSEndpoints) { - throw CoreKitError.tssPublicKeyOrEndpointsMissing(); - } - - // session is needed for authentication to the web3auth infrastructure holding the factor 1 - const randomSessionNonce = generateSessionNonce(); - const currentSession = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, randomSessionNonce); - const parties = 4; - const clientIndex = parties - 1; - // 1. setup - // generate endpoints for servers - const { - nodeIndexes - } = await this.torusSp.getTSSPubKey(this.tKey.tssTag, this.tKey.metadata.tssNonces[this.tKey.tssTag]); - const { - endpoints, - tssWSEndpoints, - partyIndexes, - nodeIndexesReturned: participatingServerDKGIndexes - } = generateTSSEndpoints(torusNodeTSSEndpoints, parties, clientIndex, nodeIndexes); - - // Setup sockets. - const sockets = await setupSockets(tssWSEndpoints, randomSessionNonce); - const dklsCoeff = getDKLSCoeff(true, participatingServerDKGIndexes, tssShareIndex); - const denormalisedShare = dklsCoeff.mul(tssShare).umod(secp256k1.curve.n); - const accountNonce = this.tkey.computeAccountNonce(this.state.accountIndex); - const derivedShare = denormalisedShare.add(accountNonce).umod(secp256k1.curve.n); - const share = scalarBNToBufferSEC1(derivedShare).toString("base64"); - if (!currentSession) { - throw CoreKitError.activeSessionNotFound(); - } - const { - signatures - } = this; - if (!signatures) { - throw CoreKitError.signaturesNotPresent(); - } - - // Client lib expects pub key in XY-format, base64-encoded. - const tssPubKeyBase64 = Buffer.from(tssPubKey.toSEC1(secp256k1).subarray(1)).toString("base64"); - const client = new Client(currentSession, clientIndex, partyIndexes, endpoints, sockets, share, tssPubKeyBase64, true, this.wasmLib); - const serverCoeffs = {}; - for (let i = 0; i < participatingServerDKGIndexes.length; i++) { - const serverIndex = participatingServerDKGIndexes[i]; - serverCoeffs[serverIndex] = getDKLSCoeff(false, participatingServerDKGIndexes, tssShareIndex, serverIndex).toString("hex"); - } - client.precompute({ - signatures, - server_coeffs: serverCoeffs, - nonce: scalarBNToBufferSEC1(this.getAccountNonce()).toString("base64") - }); - await client.ready().catch(err => { - client.cleanup({ - signatures, - server_coeffs: serverCoeffs - }); - throw err; - }); - return { - client, - serverCoeffs - }; - } - async sign(data, hashed = false, secp256k1Precompute) { - this.wasmLib = await this.loadTssWasm(); - if (this.keyType === KeyType.secp256k1) { - const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); - return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); - } else if (this.keyType === KeyType.ed25519) { - return this.sign_ed25519(data, hashed); - } - throw CoreKitError.default(`sign not supported for key type ${this.keyType}`); - } - - // mutation function - async deleteFactor(factorPub, factorKey) { - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when deleting a factor."); - } - if (!this.tKey.metadata.factorPubs) { - throw CoreKitError.factorPubsMissing(); - } - await this.atomicSync(async () => { - const remainingFactors = this.tKey.metadata.factorPubs[this.tKey.tssTag].length || 0; - if (remainingFactors <= 1) { - throw CoreKitError.cannotDeleteLastFactor("Cannot delete last factor"); - } - const fpp = factorPub; - const stateFpp = getPubKeyPoint(this.state.factorKey, factorKeyCurve); - if (fpp.equals(stateFpp)) { - throw CoreKitError.factorInUseCannotBeDeleted("Cannot delete current active factor"); - } - await this.tKey.deleteFactorPub({ - factorKey: this.state.factorKey, - deleteFactorPub: factorPub, - authSignatures: this.signatures - }); - const factorPubHex = fpp.toSEC1(factorKeyCurve, true).toString("hex"); - const allDesc = this.tKey.metadata.getShareDescription(); - const keyDesc = allDesc[factorPubHex]; - if (keyDesc) { - await Promise.all(keyDesc.map(async desc => { - var _this$tKey; - return (_this$tKey = this.tKey) === null || _this$tKey === void 0 ? void 0 : _this$tKey.metadata.deleteShareDescription(factorPubHex, desc); - })); - } - - // delete factorKey share metadata if factorkey is provided - if (factorKey) { - const factorKeyBN = new BN(factorKey, "hex"); - const derivedFactorPub = getPubKeyPoint(factorKeyBN, factorKeyCurve); - // only delete if factorPub matches - if (derivedFactorPub.equals(fpp)) { - await this.deleteMetadataShareBackup(factorKeyBN); - } - } - }); - } - async logout() { - var _this$sessionManager2; - if ((_this$sessionManager2 = this.sessionManager) !== null && _this$sessionManager2 !== void 0 && _this$sessionManager2.sessionId) { - await this.sessionManager.invalidateSession(); - } - // to accommodate async storage - await this.currentStorage.set("sessionId", ""); - this.resetState(); - await this.init({ - handleRedirectResult: false, - rehydrate: false - }); - } - getUserInfo() { - if (!this.state.userInfo) { - throw CoreKitError.userNotLoggedIn(); - } - return this.state.userInfo; - } - getKeyDetails() { - this.checkReady(); - const tkeyDetails = this.tKey.getKeyDetails(); - const tssPubKey = this.state.tssPubKey ? Point.fromSEC1(this.tkey.tssCurve, this.state.tssPubKey.toString("hex")) : undefined; - const factors = this.tKey.metadata.factorPubs ? this.tKey.metadata.factorPubs[this.tKey.tssTag] : []; - const keyDetails = { - // use tkey's for now - requiredFactors: tkeyDetails.requiredShares, - threshold: tkeyDetails.threshold, - totalFactors: factors.length + 1, - shareDescriptions: this.tKey.getMetadata().getShareDescription(), - metadataPubKey: tkeyDetails.pubKey, - tssPubKey, - keyType: this.keyType - }; - return keyDetails; - } - async commitChanges() { - this.checkReady(); - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when committing changes."); - } - try { - // in case for manualsync = true, _syncShareMetadata will not call syncLocalMetadataTransitions() - // it will not create a new LocalMetadataTransition - // manual call syncLocalMetadataTransitions() required to sync local transitions to storage - await this.tKey._syncShareMetadata(); - await this.tKey.syncLocalMetadataTransitions(); - } catch (error) { - log.error("sync metadata error", error); - throw error; - } - } - async setManualSync(manualSync) { - this.checkReady(); - // sync local transistion to storage before allow changes - await this.tKey.syncLocalMetadataTransitions(); - this.options.manualSync = manualSync; - this.tKey.manualSync = manualSync; - } - - // device factor - async setDeviceFactor(factorKey, replace = false) { - if (!replace) { - const existingFactor = await this.getDeviceFactor(); - if (existingFactor) { - throw CoreKitError.default("Device factor already exists"); - } - } - const metadata = this.tKey.getMetadata(); - const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); - await this.currentStorage.set(tkeyPubX, JSON.stringify({ - factorKey: factorKey.toString("hex").padStart(64, "0") - })); - } - async getDeviceFactor() { - const metadata = this.tKey.getMetadata(); - const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); - const tKeyLocalStoreString = await this.currentStorage.get(tkeyPubX); - const tKeyLocalStore = JSON.parse(tKeyLocalStoreString || "{}"); - return tKeyLocalStore.factorKey; - } - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Exports the private key scalar for the current account index. - * - * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. - */ - async _UNSAFE_exportTssKey() { - if (this.keyType !== KeyType.secp256k1) { - throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is secp256k1"); - } - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss key."); - } - if (!this.state.signatures) { - throw CoreKitError.signaturesNotPresent("Signatures not present in state when exporting tss key."); - } - const exportTssKey0 = await this.tKey._UNSAFE_exportTssKey({ - factorKey: this.state.factorKey, - authSignatures: this.state.signatures - }); - const accountNonce = this.getAccountNonce(); - const tssKey = exportTssKey0.add(accountNonce).umod(this.tKey.tssCurve.n); - return tssKey.toString("hex", FIELD_ELEMENT_HEX_LEN); - } - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Attempts to export the ed25519 private key seed. Only works if import key - * flow has been used. - */ - async _UNSAFE_exportTssEd25519Seed() { - if (this.keyType !== KeyType.ed25519) { - throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is ed25519"); - } - if (!this.state.factorKey) throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); - if (!this.state.signatures) throw CoreKitError.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed."); - try { - const exportEd25519Seed = await this.tKey._UNSAFE_exportTssEd25519Seed({ - factorKey: this.state.factorKey, - authSignatures: this.state.signatures - }); - return exportEd25519Seed; - } catch (error) { - throw CoreKitError.default(`Error exporting ed25519 seed: ${error}`); - } - } - updateState(newState) { - this.state = _objectSpread(_objectSpread({}, this.state), newState); - } - async atomicSync(f) { - this.atomicCallStackCounter += 1; - this.tkey.manualSync = true; - try { - const r = await f(); - if (this.atomicCallStackCounter === 1) { - if (!this.options.manualSync) { - await this.commitChanges(); - } - } - return r; - } catch (error) { - throw error; - } finally { - this.atomicCallStackCounter -= 1; - if (this.atomicCallStackCounter === 0) { - this.tkey.manualSync = this.options.manualSync; - } - } - } - async importTssKey(tssKey, factorPub, newTSSIndex = TssShareType.DEVICE) { - if (!this.state.signatures) { - throw CoreKitError.signaturesNotPresent("Signatures not present in state when importing tss key."); - } - await this.tKey.importTssKey({ - tag: this.tKey.tssTag, - importKey: Buffer.from(tssKey, "hex"), - factorPub, - newTSSIndex - }, { - authSignatures: this.state.signatures - }); - } - getTssNonce() { - if (!this.tKey.metadata.tssNonces || this.tKey.metadata.tssNonces[this.tKey.tssTag] === undefined) { - throw CoreKitError.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`); - } - const tssNonce = this.tKey.metadata.tssNonces[this.tKey.tssTag]; - return tssNonce; - } - async setupTkey(providedImportTssKey) { - if (!this.state.postBoxKey) { - throw CoreKitError.userNotLoggedIn(); - } - const existingUser = await this.isMetadataPresent(this.state.postBoxKey); - let importTssKey = providedImportTssKey; - if (!existingUser) { - if (!importTssKey && this.useClientGeneratedTSSKey) { - if (this.keyType === KeyType.ed25519) { - const k = generateEd25519Seed(); - importTssKey = k.toString("hex"); - } else if (this.keyType === KeyType.secp256k1) { - const k = secp256k1.genKeyPair().getPrivate(); - importTssKey = scalarBNToBufferSEC1(k).toString("hex"); - } else { - throw CoreKitError.default("Unsupported key type"); - } - } - await this.handleNewUser(importTssKey); - } else { - if (importTssKey) { - throw CoreKitError.tssKeyImportNotAllowed(); - } - await this.handleExistingUser(); - } - } - - // mutation function - async handleNewUser(importTssKey) { - await this.atomicSync(async () => { - // Generate or use hash factor and initialize tkey with it. - let factorKey; - if (this.options.disableHashedFactorKey) { - factorKey = generateFactorKey().private; - // delete previous hashed factorKey if present - const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - await this.deleteMetadataShareBackup(hashedFactorKey); - } else { - factorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - } - const deviceTSSIndex = TssShareType.DEVICE; - const factorPub = getPubKeyPoint(factorKey, factorKeyCurve); - if (!importTssKey) { - const ec$1 = new ec(this.keyType); - const deviceTSSShare = ec$1.genKeyPair().getPrivate(); - await this.tKey.initialize({ - factorPub, - deviceTSSShare, - deviceTSSIndex - }); - } else { - await this.tKey.initialize({ - skipTssInit: true - }); - await this.tKey.reconstructKey(); - await this.importTssKey(importTssKey, factorPub, deviceTSSIndex); - } - - // Finalize initialization. - await this.tKey.reconstructKey(); - await this.finalizeTkey(factorKey); - - // Store factor description. - await this.backupMetadataShare(factorKey); - if (this.options.disableHashedFactorKey) { - await this.addFactorDescription({ - factorKey, - shareDescription: FactorKeyTypeShareDescription.Other, - updateMetadata: false - }); - } else { - await this.addFactorDescription({ - factorKey, - shareDescription: FactorKeyTypeShareDescription.HashedShare, - updateMetadata: false - }); - } - }); - } - async handleExistingUser() { - await this.tKey.initialize({ - neverInitializeNewKey: true - }); - if (this.options.disableHashedFactorKey) { - return; - } - const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - this.state.factorKey = hashedFactorKey; - if (await this.checkIfFactorKeyValid(hashedFactorKey)) { - // Initialize tkey with existing hashed share if available. - const factorKeyMetadata = await this.getFactorKeyMetadata(hashedFactorKey); - try { - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - await this.tKey.reconstructKey(); - await this.finalizeTkey(hashedFactorKey); - } catch (err) { - log.error("error initializing tkey with hashed share", err); - } - } else { - var _this$tKey2; - const factorKeyMetadata = await ((_this$tKey2 = this.tKey) === null || _this$tKey2 === void 0 ? void 0 : _this$tKey2.readMetadata(hashedFactorKey)); - if (factorKeyMetadata.message === "SHARE_DELETED") { - // throw CoreKitError.hashedFactorDeleted(); - log.warn("hashed factor deleted"); - } - } - } - async finalizeTkey(factorKey) { - if (this.state.accountIndex !== 0) { - log.warn("AccountIndex should be 0"); - this.state.accountIndex = 0; - } - // Read tss meta data. - const { - tssIndex: tssShareIndex - } = await this.tKey.getTSSShare(factorKey); - const tssPubKey = this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve, false); - this.updateState({ - tssShareIndex, - tssPubKey, - factorKey - }); - await this.createSession(); - } - checkReady() { - if (!this.ready) { - throw CoreKitError.mpcCoreKitNotInitialized(); - } - } - async rehydrateSession(result) { - try { - this.checkReady(); - const factorKey = new BN(result.factorKey, "hex"); - if (!factorKey) { - throw CoreKitError.providedFactorKeyInvalid(); - } - const postBoxKey = result.postBoxKey || result.oAuthKey; - if (!postBoxKey) { - throw CoreKitError.default("postBoxKey or oAuthKey not present in session data"); - } - this.torusSp.postboxKey = new BN(postBoxKey, "hex"); - this.torusSp.verifierName = result.userInfo.aggregateVerifier || result.userInfo.verifier; - this.torusSp.verifierId = result.userInfo.verifierId; - const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); - await this.tKey.initialize({ - neverInitializeNewKey: true - }); - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - await this.tKey.reconstructKey(); - this.updateState({ - factorKey: new BN(result.factorKey, "hex"), - postBoxKey, - postboxKeyNodeIndexes: result.postboxKeyNodeIndexes || [], - tssShareIndex: result.tssShareIndex, - tssPubKey: this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve, false), - signatures: result.signatures, - userInfo: result.userInfo - }); - } catch (err) { - log.warn("failed to authorize session", err); - } - } - async createSession() { - if (!this.options.disableSessionManager && !this.sessionManager) { - throw new Error("sessionManager is not available"); - } - try { - const sessionId = SessionManager.generateRandomSessionKey(); - this.sessionManager.sessionId = sessionId; - const { - postBoxKey, - factorKey, - userInfo, - tssShareIndex, - tssPubKey, - postboxKeyNodeIndexes - } = this.state; - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when creating session."); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey, { - accountIndex: this.state.accountIndex - }); - if (!postBoxKey || !factorKey || !tssShare || !tssPubKey || !userInfo) { - throw CoreKitError.userNotLoggedIn(); - } - const payload = { - postBoxKey, - postboxKeyNodeIndexes: postboxKeyNodeIndexes || [], - factorKey: factorKey === null || factorKey === void 0 ? void 0 : factorKey.toString("hex"), - tssShareIndex: tssShareIndex, - tssPubKey: Buffer.from(tssPubKey).toString("hex"), - signatures: this.signatures, - userInfo - }; - await this.sessionManager.createSession(payload); - // to accommodate async storage - await this.currentStorage.set("sessionId", sessionId); - } catch (err) { - log.error("error creating session", err); - } - } - async isMetadataPresent(privateKey) { - var _this$tKey3; - const privateKeyBN = new BN(privateKey, "hex"); - const metadata = await ((_this$tKey3 = this.tKey) === null || _this$tKey3 === void 0 ? void 0 : _this$tKey3.readMetadata(privateKeyBN)); - if (metadata && metadata.message !== "KEY_NOT_FOUND") { - return true; - } - return false; - } - async checkIfFactorKeyValid(factorKey) { - var _this$tKey4; - this.checkReady(); - const factorKeyMetadata = await ((_this$tKey4 = this.tKey) === null || _this$tKey4 === void 0 ? void 0 : _this$tKey4.readMetadata(factorKey)); - if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND" || factorKeyMetadata.message === "SHARE_DELETED") { - return false; - } - return true; - } - async getFactorKeyMetadata(factorKey) { - var _this$tKey5; - this.checkReady(); - const factorKeyMetadata = await ((_this$tKey5 = this.tKey) === null || _this$tKey5 === void 0 ? void 0 : _this$tKey5.readMetadata(factorKey)); - if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND") { - throw CoreKitError.noMetadataFound(); - } - return ShareStore.fromJSON(factorKeyMetadata); - } - - /** - * Copies a share and makes it available under a new factor key. If no share - * exists at the specified share index, a new share is created. - * @param newFactorTSSIndex - The index of the share to copy. - * @param newFactorPub - The public key of the new share. - */ - async copyOrCreateShare(newFactorTSSIndex, newFactorPub) { - this.checkReady(); - if (!this.tKey.metadata.factorPubs || !Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag])) { - throw CoreKitError.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key."); - } - if (!this.tKey.metadata.factorEncs || typeof this.tKey.metadata.factorEncs[this.tKey.tssTag] !== "object") { - throw CoreKitError.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key."); - } - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when copying or creating a share."); - } - if (VALID_SHARE_INDICES.indexOf(newFactorTSSIndex) === -1) { - throw CoreKitError.newShareIndexInvalid(`Invalid share type provided (${newFactorTSSIndex}). Valid share types are ${VALID_SHARE_INDICES}.`); - } - if (this.tKey.metadata.factorPubs[this.tKey.tssTag].length >= MAX_FACTORS) { - throw CoreKitError.maximumFactorsReached(`The maximum number of allowable factors (${MAX_FACTORS}) has been reached.`); - } - - // Generate new share. - await this.tkey.addFactorPub({ - existingFactorKey: this.state.factorKey, - authSignatures: this.signatures, - newFactorPub, - newTSSIndex: newFactorTSSIndex, - refreshShares: this.state.tssShareIndex !== newFactorTSSIndex // Refresh shares if we have a new factor key index. - }); - } - async getMetadataShare() { - try { - var _this$tKey6, _this$tKey7; - const polyId = (_this$tKey6 = this.tKey) === null || _this$tKey6 === void 0 ? void 0 : _this$tKey6.metadata.getLatestPublicPolynomial().getPolynomialID(); - const shares = (_this$tKey7 = this.tKey) === null || _this$tKey7 === void 0 ? void 0 : _this$tKey7.shares[polyId]; - let share = null; - for (const shareIndex in shares) { - if (shareIndex !== SOCIAL_TKEY_INDEX.toString()) { - share = shares[shareIndex]; - } - } - if (!share) { - throw CoreKitError.noMetadataShareFound(); - } - return share; - } catch (err) { - log.error("create device share error", err); - throw CoreKitError.default(err.message); - } - } - async deleteMetadataShareBackup(factorKey) { - var _this$tkey, _this$tkey2; - await this.tKey.addLocalMetadataTransitions({ - input: [{ - message: SHARE_DELETED, - dateAdded: Date.now() - }], - privKey: [factorKey] - }); - if (!((_this$tkey = this.tkey) !== null && _this$tkey !== void 0 && _this$tkey.manualSync)) await ((_this$tkey2 = this.tkey) === null || _this$tkey2 === void 0 ? void 0 : _this$tkey2.syncLocalMetadataTransitions()); - } - async backupMetadataShare(factorKey) { - var _this$tKey8, _this$tkey3, _this$tkey4; - const metadataShare = await this.getMetadataShare(); - - // Set metadata for factor key backup - await ((_this$tKey8 = this.tKey) === null || _this$tKey8 === void 0 ? void 0 : _this$tKey8.addLocalMetadataTransitions({ - input: [metadataShare], - privKey: [factorKey] - })); - if (!((_this$tkey3 = this.tkey) !== null && _this$tkey3 !== void 0 && _this$tkey3.manualSync)) await ((_this$tkey4 = this.tkey) === null || _this$tkey4 === void 0 ? void 0 : _this$tkey4.syncLocalMetadataTransitions()); - } - async addFactorDescription(args) { - var _this$tKey9; - const { - factorKey, - shareDescription, - updateMetadata - } = args; - let { - additionalMetadata - } = args; - if (!additionalMetadata) { - additionalMetadata = {}; - } - const { - tssIndex - } = await this.tKey.getTSSShare(factorKey); - const factorPoint = getPubKeyPoint(factorKey, factorKeyCurve); - const factorPub = factorPoint.toSEC1(factorKeyCurve, true).toString("hex"); - const params = _objectSpread(_objectSpread({ - module: shareDescription, - dateAdded: Date.now() - }, additionalMetadata), {}, { - tssShareIndex: tssIndex - }); - await ((_this$tKey9 = this.tKey) === null || _this$tKey9 === void 0 ? void 0 : _this$tKey9.addShareDescription(factorPub, JSON.stringify(params), updateMetadata)); - } - resetState() { - this.ready = false; - this.tkey = null; - this.torusSp = null; - this.storageLayer = null; - this.state = { - accountIndex: 0 - }; - } - _getPostBoxKey(result) { - return Torus.getPostboxKey(result); - } - _getSignatures(sessionData) { - // There is a check in torus.js which pushes undefined to session data in case - // that particular node call fails. - // and before returning we are not filtering out undefined vals in torus.js - // TODO: fix this in torus.js - return sessionData.filter(session => !!session).map(session => JSON.stringify({ - data: session.token, - sig: session.signature - })); - } - isNodejsOrRN(params) { - const mode = params; - return mode === "nodejs" || mode === "react-native"; - } - async featureRequest() { - const accessUrl = SIGNER_MAP[this.options.web3AuthNetwork]; - const accessRequest = { - network: this.options.web3AuthNetwork, - client_id: this.options.web3AuthClientId, - is_mpc_core_kit: "true", - enable_gating: "true", - session_time: this.options.sessionTime.toString() - }; - const url = new URL(`${accessUrl}/api/feature-access`); - url.search = new URLSearchParams(accessRequest).toString(); - const result = await fetch(url); - if (result.status !== 200) { - // reset state on no mpc access - this.resetState(); - const errMessage = await result.json(); - throw CoreKitError.default(errMessage.error); - } - return result.json(); - } - getAccountNonce() { - return this.tkey.computeAccountNonce(this.state.accountIndex); - } - async sign_ECDSA_secp256k1(data, hashed = false, precomputedTssClient) { - const executeSign = async (client, serverCoeffs, hashedData, signatures) => { - const { - r, - s, - recoveryParam - } = await client.sign(hashedData.toString("base64"), true, "", "keccak256", { - signatures - }); - // skip await cleanup - client.cleanup({ - signatures, - server_coeffs: serverCoeffs - }); - return { - v: recoveryParam, - r: scalarBNToBufferSEC1(r), - s: scalarBNToBufferSEC1(s) - }; - }; - if (!hashed) { - data = keccak256(data); - } - const isAlreadyPrecomputed = (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.client) && (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.serverCoeffs); - const { - client, - serverCoeffs - } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); - const { - signatures - } = this; - if (!signatures) { - throw CoreKitError.signaturesNotPresent(); - } - try { - return await executeSign(client, serverCoeffs, data, signatures); - } catch (error) { - if (!isAlreadyPrecomputed) { - throw error; - } - // Retry with new client if precomputed client failed, this is to handle the case when precomputed session might have expired - const { - client: newClient, - serverCoeffs: newServerCoeffs - } = await this.precompute_secp256k1(); - const result = await executeSign(newClient, newServerCoeffs, data, signatures); - return result; - } - } - async sign_ed25519(data, hashed = false) { - if (hashed) { - throw CoreKitError.default("hashed data not supported for ed25519"); - } - const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, "ed25519"); - if (!nodeDetails.torusNodeTSSEndpoints) { - throw CoreKitError.default("could not fetch tss node endpoints"); - } - - // Endpoints must end with backslash, but URLs returned by - // `fetch-node-details` don't have it. - const ED25519_ENDPOINTS = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ - index: nodeDetails.torusIndexes[i], - url: `${ep}/` - })); - - // Select endpoints and derive party indices. - const serverThreshold = Math.floor(ED25519_ENDPOINTS.length / 2) + 1; - const endpoints = sampleEndpoints(ED25519_ENDPOINTS, serverThreshold); - const serverXCoords = endpoints.map(x => x.index); - const clientXCoord = Math.max(...endpoints.map(ep => ep.index)) + 1; - - // Derive share coefficients for flat hierarchy. - const ec = new Ed25519Curve(); - const { - serverCoefficients, - clientCoefficient - } = deriveShareCoefficients(ec, serverXCoords, clientXCoord, this.state.tssShareIndex); - - // Get pub key. - const tssPubKey = await this.getPubKey(); - const tssPubKeyPoint = ec.keyFromPublic(tssPubKey).getPublic(); - - // Get client key share and adjust by coefficient. - if (this.state.accountIndex !== 0) { - throw CoreKitError.default("Account index not supported for ed25519"); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey); - const clientShareAdjusted = tssShare.mul(clientCoefficient).umod(ec.n); - const clientShareAdjustedHex = ec.scalarToBuffer(clientShareAdjusted, Buffer).toString("hex"); - - // Generate session identifier. - const tssNonce = this.getTssNonce(); - const sessionNonce = generateSessionNonce(); - const session = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, sessionNonce); - - // Run signing protocol. - const serverURLs = endpoints.map(x => x.url); - const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); - const serverCoefficientsHex = serverCoefficients.map(c => ec.scalarToBuffer(c, Buffer).toString("hex")); - const signature = await sign(this.wasmLib, session, this.signatures, serverXCoords, serverURLs, clientXCoord, clientShareAdjustedHex, pubKeyHex, data, serverCoefficientsHex); - log.info(`signature: ${signature}`); - return Buffer.from(signature, "hex"); - } - async loadTssWasm() { - if (this.wasmLib) return this.wasmLib; - if (typeof this._tssLib.load === "function") { - // dont wait for wasm to be loaded, we can reload it during signing if not loaded - return this._tssLib.load(); - } else if (this._tssLib.lib) { - return this._tssLib.lib; - } - } -} - -export { Web3AuthMPCCoreKit }; diff --git a/package/dist/lib.esm/utils.js b/package/dist/lib.esm/utils.js deleted file mode 100644 index 8d989d61..00000000 --- a/package/dist/lib.esm/utils.js +++ /dev/null @@ -1,192 +0,0 @@ -import { Point, KeyType, secp256k1 } from '@tkey/common-types'; -import { generatePrivateBN } from '@tkey/core'; -import { factorKeyCurve } from '@tkey/tss'; -import { safeatob } from '@toruslabs/openlogin-utils'; -import { keccak256 } from '@toruslabs/torus.js'; -import BN from 'bn.js'; -import { eddsa } from 'elliptic'; -import loglevel from 'loglevel'; -import { SCALAR_LEN, DELIMITERS } from './constants.js'; - -const ed25519 = () => { - return new eddsa("ed25519"); -}; - -/** - * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. - */ -function randomBytes(bytesLength = 32) { - // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. - const crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : undefined; - if (crypto && typeof crypto.getRandomValues === "function") { - return crypto.getRandomValues(new Uint8Array(bytesLength)); - } - throw new Error("crypto.getRandomValues must be defined"); -} -function generateEd25519Seed() { - return Buffer.from(randomBytes(32)); -} -const generateFactorKey = () => { - const keyPair = factorKeyCurve.genKeyPair(); - const pub = Point.fromElliptic(keyPair.getPublic()); - return { - private: keyPair.getPrivate(), - pub - }; -}; -const generateTSSEndpoints = (tssNodeEndpoints, parties, clientIndex, nodeIndexes) => { - const endpoints = []; - const tssWSEndpoints = []; - const partyIndexes = []; - const nodeIndexesReturned = []; - for (let i = 0; i < parties; i++) { - partyIndexes.push(i); - if (i === clientIndex) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - endpoints.push(null); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - tssWSEndpoints.push(null); - } else { - const targetNodeIndex = nodeIndexes[i] - 1; - endpoints.push(tssNodeEndpoints[targetNodeIndex]); - tssWSEndpoints.push(new URL(tssNodeEndpoints[targetNodeIndex]).origin); - nodeIndexesReturned.push(nodeIndexes[i]); - } - } - return { - endpoints, - tssWSEndpoints, - partyIndexes, - nodeIndexesReturned - }; -}; -async function storageAvailable(storage) { - try { - const x = "__storage_test__"; - const rand = Math.random().toString(); - await storage.setItem(x, rand); - const value = await storage.getItem(rand); - if (value !== rand) { - throw new Error("Value mismatch"); - } - return true; - } catch (error) { - return false; - } -} - -// TODO think which conversion functions to keep and how to export them. - -/** - * Parses a JWT Token, without verifying the signature. - * @param token - JWT Token - * @returns Extracted JSON payload from the token - */ -function parseToken(token) { - const payload = token.split(".")[1]; - return JSON.parse(safeatob(payload)); -} -const getHashedPrivateKey = (postboxKey, clientId) => { - const uid = `${postboxKey}_${clientId}`; - let hashUid = keccak256(Buffer.from(uid, "utf8")); - hashUid = hashUid.replace("0x", ""); - return new BN(hashUid, "hex"); -}; - -/** - * Converts an elliptic curve scalar represented by a BN to a byte buffer in SEC1 - * format (i.e., padded to maximum length). - * @param s - The scalar of type BN. - * @returns The SEC1 encoded representation of the scalar. - */ -function scalarBNToBufferSEC1(s) { - return s.toArrayLike(Buffer, "be", SCALAR_LEN); -} -function sampleEndpoints(endpoints, n) { - if (n > endpoints.length) { - throw new Error("Invalid number of endpoints"); - } - const shuffledEndpoints = endpoints.slice().sort(() => Math.random() - 0.5); - return shuffledEndpoints.slice(0, n).sort((a, b) => a.index - b.index); -} -function fraction(curve, nom, denom) { - return nom.mul(denom.invm(curve.n)).umod(curve.n); -} -function lagrangeCoefficient(curve, xCoords, targetCoeff, targetX) { - return xCoords.filter((_, i) => i !== targetCoeff).reduce((prev, cur) => { - const frac = fraction(curve, targetX.sub(cur), xCoords[targetCoeff].sub(cur)); - return prev.mul(frac).umod(curve.n); - }, new BN(1)); -} -function lagrangeCoefficients(curve, xCoords, targetX) { - const xCoordsBN = xCoords.map(i => new BN(i)); - const targetXBN = new BN(targetX); - return xCoordsBN.map((_value, i) => lagrangeCoefficient(curve, xCoordsBN, i, targetXBN)); -} -const SERVER_XCOORD_L1 = 1; -const CLIENT_XCOORD_L1 = 2; - -/** - * Derive share coefficients for client and servers. - * - * @param curve - The curve to be used. - * @param serverXCoords - The source and target x-coordinates of the selected - * servers. - * @param targetClientXCoord - The target x-coordinate of the client. - * @param sourceClientXCoord - The source x-coordinate of the client in the L1 - * hierarchy. - * @returns - The share coefficients for the client and the servers. - */ -function deriveShareCoefficients(ec, serverXCoords, targetClientXCoord, sourceClientXCoord = CLIENT_XCOORD_L1) { - const l1Coefficients = lagrangeCoefficients(ec, [SERVER_XCOORD_L1, sourceClientXCoord], 0); - const l2Coefficients = lagrangeCoefficients(ec, serverXCoords, 0); - if (serverXCoords.includes(targetClientXCoord)) { - throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${serverXCoords} ${targetClientXCoord}`); - } - const targetCoefficients = lagrangeCoefficients(ec, [targetClientXCoord, ...serverXCoords], 0); - - // Derive server coefficients. - const serverCoefficients = l2Coefficients.map((coeff, i) => fraction(ec, l1Coefficients[0].mul(coeff), targetCoefficients[i + 1])); - - // Derive client coefficient. - const clientCoefficient = fraction(ec, l1Coefficients[1], targetCoefficients[0]); - return { - serverCoefficients, - clientCoefficient - }; -} -function generateSessionNonce() { - return keccak256(Buffer.from(generatePrivateBN().toString("hex") + Date.now(), "utf8")); -} -function getSessionId(verifier, verifierId, tssTag, tssNonce, sessionNonce) { - return `${verifier}${DELIMITERS.Delimiter1}${verifierId}${DELIMITERS.Delimiter2}${tssTag}${DELIMITERS.Delimiter3}${tssNonce}${DELIMITERS.Delimiter4}${sessionNonce}`; -} -function sigToRSV(sig) { - if (sig.length !== 65) { - throw new Error(`Invalid signature length: expected 65, got ${sig.length}`); - } - return { - r: sig.subarray(0, 32), - s: sig.subarray(32, 64), - v: sig[64] - }; -} -function makeEthereumSigner(kit) { - if (kit.keyType !== KeyType.secp256k1) { - throw new Error(`Invalid key type: expected secp256k1, got ${kit.keyType}`); - } - return { - sign: async msgHash => { - const sig = await kit.sign(msgHash, true); - return sigToRSV(sig); - }, - getPublic: async () => { - const pk = Point.fromSEC1(secp256k1, kit.getPubKey().toString("hex")); - return pk.toSEC1(secp256k1).subarray(1); - } - }; -} -const log = loglevel.getLogger("mpc-core-kit"); -log.disableAll(); - -export { deriveShareCoefficients, ed25519, fraction, generateEd25519Seed, generateFactorKey, generateSessionNonce, generateTSSEndpoints, getHashedPrivateKey, getSessionId, lagrangeCoefficient, lagrangeCoefficients, log, makeEthereumSigner, parseToken, randomBytes, sampleEndpoints, scalarBNToBufferSEC1, sigToRSV, storageAvailable }; diff --git a/package/dist/mpcCoreKit.cjs.js b/package/dist/mpcCoreKit.cjs.js deleted file mode 100644 index 64927735..00000000 --- a/package/dist/mpcCoreKit.cjs.js +++ /dev/null @@ -1,2389 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ // The require scope -/******/ var __webpack_require__ = {}; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - AsyncStorage: () => (/* reexport */ AsyncStorage), - COREKIT_STATUS: () => (/* reexport */ COREKIT_STATUS), - DELIMITERS: () => (/* reexport */ DELIMITERS), - ERRORS: () => (/* reexport */ ERRORS), - FIELD_ELEMENT_HEX_LEN: () => (/* reexport */ FIELD_ELEMENT_HEX_LEN), - FactorKeyTypeShareDescription: () => (/* reexport */ FactorKeyTypeShareDescription), - MAX_FACTORS: () => (/* reexport */ MAX_FACTORS), - MemoryStorage: () => (/* reexport */ MemoryStorage), - SCALAR_LEN: () => (/* reexport */ SCALAR_LEN), - SOCIAL_FACTOR_INDEX: () => (/* reexport */ SOCIAL_FACTOR_INDEX), - SOCIAL_TKEY_INDEX: () => (/* reexport */ SOCIAL_TKEY_INDEX), - TssSecurityQuestion: () => (/* reexport */ TssSecurityQuestion), - TssSecurityQuestionStore: () => (/* reexport */ TssSecurityQuestionStore), - TssShareType: () => (/* reexport */ TssShareType), - USER_PATH: () => (/* reexport */ USER_PATH), - VALID_SHARE_INDICES: () => (/* reexport */ VALID_SHARE_INDICES), - WEB3AUTH_NETWORK: () => (/* reexport */ WEB3AUTH_NETWORK), - Web3AuthMPCCoreKit: () => (/* reexport */ Web3AuthMPCCoreKit), - deriveShareCoefficients: () => (/* reexport */ deriveShareCoefficients), - ed25519: () => (/* reexport */ ed25519), - factorKeyCurve: () => (/* reexport */ tss_namespaceObject.factorKeyCurve), - fraction: () => (/* reexport */ fraction), - generateEd25519Seed: () => (/* reexport */ generateEd25519Seed), - generateFactorKey: () => (/* reexport */ generateFactorKey), - generateSessionNonce: () => (/* reexport */ generateSessionNonce), - generateTSSEndpoints: () => (/* reexport */ generateTSSEndpoints), - getHashedPrivateKey: () => (/* reexport */ getHashedPrivateKey), - getSessionId: () => (/* reexport */ getSessionId), - keyToMnemonic: () => (/* reexport */ keyToMnemonic), - lagrangeCoefficient: () => (/* reexport */ lagrangeCoefficient), - lagrangeCoefficients: () => (/* reexport */ lagrangeCoefficients), - log: () => (/* reexport */ log), - makeEthereumSigner: () => (/* reexport */ makeEthereumSigner), - mnemonicToKey: () => (/* reexport */ mnemonicToKey), - parseToken: () => (/* reexport */ parseToken), - randomBytes: () => (/* reexport */ randomBytes), - sampleEndpoints: () => (/* reexport */ sampleEndpoints), - scalarBNToBufferSEC1: () => (/* reexport */ scalarBNToBufferSEC1), - sigToRSV: () => (/* reexport */ sigToRSV), - storageAvailable: () => (/* reexport */ storageAvailable) -}); - -;// CONCATENATED MODULE: external "@toruslabs/constants" -const constants_namespaceObject = require("@toruslabs/constants"); -;// CONCATENATED MODULE: ./src/constants.ts - -const WEB3AUTH_NETWORK = { - MAINNET: constants_namespaceObject.TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET, - DEVNET: constants_namespaceObject.TORUS_SAPPHIRE_NETWORK.SAPPHIRE_DEVNET -}; -const USER_PATH = { - NEW: "NewAccount", - EXISTING: "ExistingAccount", - REHYDRATE: "RehydrateAccount", - RECOVER: "RecoverAccount" -}; -let FactorKeyTypeShareDescription = /*#__PURE__*/function (FactorKeyTypeShareDescription) { - FactorKeyTypeShareDescription["HashedShare"] = "hashedShare"; - FactorKeyTypeShareDescription["SecurityQuestions"] = "tssSecurityQuestions"; - FactorKeyTypeShareDescription["DeviceShare"] = "deviceShare"; - FactorKeyTypeShareDescription["SeedPhrase"] = "seedPhrase"; - FactorKeyTypeShareDescription["PasswordShare"] = "passwordShare"; - FactorKeyTypeShareDescription["SocialShare"] = "socialShare"; - FactorKeyTypeShareDescription["Other"] = "Other"; - return FactorKeyTypeShareDescription; -}({}); -const DELIMITERS = { - Delimiter1: "\u001c", - Delimiter2: "\u0015", - Delimiter3: "\u0016", - Delimiter4: "\u0017" -}; -const ERRORS = { - TKEY_SHARES_REQUIRED: "required more shares", - INVALID_BACKUP_SHARE: "invalid backup share" -}; -const SOCIAL_FACTOR_INDEX = 1; - -/** - * Defines the TSS Share Index in a simplified way for better implementation. - **/ -let TssShareType = /*#__PURE__*/function (TssShareType) { - TssShareType[TssShareType["DEVICE"] = 2] = "DEVICE"; - TssShareType[TssShareType["RECOVERY"] = 3] = "RECOVERY"; - return TssShareType; -}({}); -const VALID_SHARE_INDICES = [TssShareType.DEVICE, TssShareType.RECOVERY]; -const SCALAR_LEN = 32; // Length of secp256k1 scalar in bytes. -const FIELD_ELEMENT_HEX_LEN = 32 * 2; // Length of secp256k1 field element in hex form. - -const MAX_FACTORS = 10; // Maximum number of factors that can be added to an account. -const SOCIAL_TKEY_INDEX = 1; -;// CONCATENATED MODULE: external "@babel/runtime/helpers/defineProperty" -const defineProperty_namespaceObject = require("@babel/runtime/helpers/defineProperty"); -var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty_namespaceObject); -;// CONCATENATED MODULE: ./src/helper/errors.ts - -/** - * Fix the prototype chain of the error - * - * Use Object.setPrototypeOf - * Support ES6 environments - * - * Fallback setting __proto__ - * Support IE11+, see https://docs.microsoft.com/en-us/scripting/javascript/reference/javascript-version-information - */ -function fixProto(target, prototype) { - const { - setPrototypeOf - } = Object; - if (setPrototypeOf) { - setPrototypeOf(target, prototype); - } else { - // eslint-disable-next-line no-proto, @typescript-eslint/no-explicit-any - target.__proto__ = prototype; - } -} - -/** - * Capture and fix the error stack when available - * - * Use Error.captureStackTrace - * Support v8 environments - */ -function fixStack(target, fn = target.constructor) { - const { - captureStackTrace - } = Error; - if (captureStackTrace) { - captureStackTrace(target, fn); - } -} - -// copy from https://github.com/microsoft/TypeScript/blob/main/lib/lib.es2022.error.d.ts -// avoid typescript isue https://github.com/adriengibrat/ts-custom-error/issues/81 - -/** - * Allows to easily extend a base class to create custom applicative errors. - * - * example: - * ``` - * class HttpError extends CustomError { - * public constructor( - * public code: number, - * message?: string, - * cause?: Error, - * ) { - * super(message, { cause }) - * } - * } - * - * new HttpError(404, 'Not found') - * ``` - */ -class CustomError extends Error { - constructor(message, options) { - super(message, options); - // set error name as constructor name, make it not enumerable to keep native Error behavior - // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target#new.target_in_constructors - // see https://github.com/adriengibrat/ts-custom-error/issues/30 - defineProperty_default()(this, "name", void 0); - Object.defineProperty(this, "name", { - value: new.target.name, - enumerable: false, - configurable: true - }); - // fix the extended error prototype chain - // because typescript __extends implementation can't - // see https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work - fixProto(this, new.target.prototype); - // try to remove contructor from stack trace - fixStack(this); - } -} -class AbstractCoreKitError extends CustomError { - constructor(code, message) { - // takes care of stack and proto - super(message); - defineProperty_default()(this, "code", void 0); - defineProperty_default()(this, "message", void 0); - this.code = code; - this.message = message || ""; - // Set name explicitly as minification can mangle class names - Object.defineProperty(this, "name", { - value: "TkeyError" - }); - } - toJSON() { - return { - name: this.name, - code: this.code, - message: this.message - }; - } - toString() { - return JSON.stringify(this.toJSON()); - } -} - -/** - * CoreKitError, extension for Error using CustomError - * - * Usage: - * 1. throw CoreKitError.factorKeyNotPresent("Required factor key missing in the operation."); // Use a predefined method to throw a common error - * 2. throw CoreKitError.fromCode(1001); // Throw an error using a code for a common error - * 3. throw new CoreKitError(1102, "'tkey' instance has not been initialized."); // Throw a specific error with a custom message - * - * Guide: - * 1000 - Configuration errors - * 1100 - TSS and key management errors - * 1200 - Factor key and authentication errors - * 1300 - Initialization and session management - */ -class CoreKitError extends AbstractCoreKitError { - constructor(code, message) { - super(code, message); - Object.defineProperty(this, "name", { - value: "CoreKitError" - }); - } - static fromCode(code, extraMessage = "") { - return new CoreKitError(code, `${CoreKitError.messages[code]} ${extraMessage}`); - } - static default(extraMessage = "") { - return new CoreKitError(1000, `${CoreKitError.messages[1000]} ${extraMessage}`); - } - - // Configuration errors - static chainConfigInvalid(extraMessage = "") { - return CoreKitError.fromCode(1001, extraMessage); - } - static clientIdInvalid(extraMessage = "") { - return CoreKitError.fromCode(1002, extraMessage); - } - static storageTypeUnsupported(extraMessage = "") { - return CoreKitError.fromCode(1003, extraMessage); - } - static oauthLoginUnsupported(extraMessage = "") { - return CoreKitError.fromCode(1004, extraMessage); - } - static noValidStorageOptionFound(extraMessage = "") { - return CoreKitError.fromCode(1005, extraMessage); - } - static noDataFoundInStorage(extraMessage = "") { - return CoreKitError.fromCode(1006, extraMessage); - } - static invalidConfig(extraMessage = "") { - return CoreKitError.fromCode(1007, extraMessage); - } - - // TSS and key management errors - static tssLibRequired(extraMessage = "") { - return CoreKitError.fromCode(1101, extraMessage); - } - static tkeyInstanceUninitialized(extraMessage = "") { - return CoreKitError.fromCode(1102, extraMessage); - } - static duplicateTssIndex(extraMessage = "") { - return CoreKitError.fromCode(1103, extraMessage); - } - static nodeDetailsRetrievalFailed(extraMessage = "") { - return CoreKitError.fromCode(1104, extraMessage); - } - static prefetchValueExceeded(extraMessage = "") { - return CoreKitError.fromCode(1105, extraMessage); - } - static invalidTorusLoginResponse(extraMessage = "") { - return CoreKitError.fromCode(1106, extraMessage); - } - static invalidTorusAggregateLoginResponse(extraMessage = "") { - return CoreKitError.fromCode(1107, extraMessage); - } - static unsupportedRedirectMethod(extraMessage = "") { - return CoreKitError.fromCode(1108, extraMessage); - } - static postBoxKeyMissing(extraMessage = "") { - return CoreKitError.fromCode(1109, extraMessage); - } - static tssShareTypeIndexMissing(extraMessage = "") { - return CoreKitError.fromCode(1110, extraMessage); - } - static tssPublicKeyOrEndpointsMissing(extraMessage = "") { - return CoreKitError.fromCode(1111, extraMessage); - } - static activeSessionNotFound(extraMessage = "") { - return CoreKitError.fromCode(1112, extraMessage); - } - static tssNoncesMissing(extraMessage = "") { - return CoreKitError.fromCode(1113, extraMessage); - } - static tssKeyImportNotAllowed(extraMessage = "") { - return CoreKitError.fromCode(1114, extraMessage); - } - - // Factor key and authentication errors - static factorKeyNotPresent(extraMessage = "") { - return CoreKitError.fromCode(1201, extraMessage); - } - static factorKeyAlreadyExists(extraMessage = "") { - return CoreKitError.fromCode(1202, extraMessage); - } - static mfaAlreadyEnabled(extraMessage = "") { - return CoreKitError.fromCode(1203, extraMessage); - } - static cannotDeleteLastFactor(extraMessage = "") { - return CoreKitError.fromCode(1204, extraMessage); - } - static factorInUseCannotBeDeleted(extraMessage = "") { - return CoreKitError.fromCode(1205, extraMessage); - } - static userNotLoggedIn(extraMessage = "") { - return CoreKitError.fromCode(1206, extraMessage); - } - static providedFactorKeyInvalid(extraMessage = "") { - return CoreKitError.fromCode(1207, extraMessage); - } - static factorEncsMissing(extraMessage = "") { - return CoreKitError.fromCode(1208, extraMessage); - } - static noMetadataFound(extraMessage = "") { - return CoreKitError.fromCode(1209, extraMessage); - } - static newShareIndexInvalid(extraMessage = "") { - return CoreKitError.fromCode(1210, extraMessage); - } - static maximumFactorsReached(extraMessage = "") { - return CoreKitError.fromCode(1211, extraMessage); - } - static noMetadataShareFound(extraMessage = "") { - return CoreKitError.fromCode(1212, extraMessage); - } - static signaturesNotPresent(extraMessage = "") { - return CoreKitError.fromCode(1213, extraMessage); - } - static factorPubsMissing(extraMessage = "") { - return CoreKitError.fromCode(1214, extraMessage); - } - - // Initialization and session management - static commitChangesBeforeMFA(extraMessage = "") { - return CoreKitError.fromCode(1301, extraMessage); - } - static mpcCoreKitNotInitialized(extraMessage = "") { - return CoreKitError.fromCode(1302, extraMessage); - } -} -defineProperty_default()(CoreKitError, "messages", { - // Configuration errors - 1001: "You must specify a valid eip155 chain configuration in the options.", - 1002: "You must specify a web3auth clientId.", - 1003: "Unsupported storage type in this UX mode.", - 1004: "OAuth login is NOT supported in this UX mode.", - 1005: "No valid storage option found.", - 1006: "No data found in storage.", - 1007: "Invalid config.", - // TSS and key management errors - 1101: "'tssLib' is required when running in this UX mode.", - 1102: "'tkey' instance has not been initialized.", - 1103: "Duplicate TSS index found. Ensure that each TSS index is unique.", - 1104: "Failed to retrieve node details. Please check your network connection and try again.", - 1105: "The prefetch TSS public keys exceeds the maximum allowed limit of 3.", - 1106: "Invalid 'TorusLoginResponse' data provided.", - 1107: "Invalid 'TorusAggregateLoginResponse' data provided.", - 1108: "Unsupported method type encountered in redirect result.", - 1109: "OAuthKey not present in state.", - 1110: "TSS Share Type (Index) not present in state when getting current factor key.", - 1111: "'tssPubKey' or 'torusNodeTSSEndpoints' are missing.", - 1112: "No active session found.", - 1113: "tssNonces not present in metadata when getting tss nonce.", - 1114: "A TSS key cannot be imported for an existing user who already has a key configured.", - // Factor key and authentication errors - 1201: "factorKey not present in state when required.", - 1202: "A factor with the same key already exists.", - 1203: "MFA is already enabled.", - 1204: "Cannot delete the last remaining factor as at least one factor is required.", - 1205: "The factor currently in use cannot be deleted.", - 1206: "User is not logged in.", - 1207: "Provided factor key is invalid.", - 1208: "'factorEncs' mpt [resemt].", - 1209: "No metadata found for the provided factor key. Consider resetting your account if this error persists.", - 1210: "The new share index is not valid. It must be one of the valid share indices.", - 1211: "The maximum number of allowable factors (10) has been reached.", - 1212: "No metadata share found in the current polynomial.", - 1213: "No signatures found.", - 1214: "Factor public keys not present", - // Initialization and session management - 1301: "The 'CommitChanges' method must be called before enabling MFA.", - 1302: "The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations." -}); -/* harmony default export */ const errors = (CoreKitError); -;// CONCATENATED MODULE: ./src/helper/browserStorage.ts - - -class MemoryStorage { - constructor() { - defineProperty_default()(this, "_store", {}); - } - getItem(key) { - return this._store[key] || null; - } - setItem(key, value) { - this._store[key] = value; - } - removeItem(key) { - delete this._store[key]; - } - clear() { - this._store = {}; - } -} -class AsyncStorage { - constructor(storeKey, storage) { - defineProperty_default()(this, "storage", void 0); - defineProperty_default()(this, "_storeKey", void 0); - this.storage = storage; - this._storeKey = storeKey; - } - async toJSON() { - const result = await this.storage.getItem(this._storeKey); - if (!result) { - throw errors.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`); - } - return result; - } - async resetStore() { - const currStore = await this.getStore(); - await this.storage.setItem(this._storeKey, JSON.stringify({})); - return currStore; - } - async getStore() { - return JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - } - async get(key) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - return store[key]; - } - async set(key, value) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - store[key] = value; - await this.storage.setItem(this._storeKey, JSON.stringify(store)); - } - async remove(key) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - delete store[key]; - await this.storage.setItem(this._storeKey, JSON.stringify(store)); - } -} -;// CONCATENATED MODULE: external "@tkey/share-serialization" -const share_serialization_namespaceObject = require("@tkey/share-serialization"); -;// CONCATENATED MODULE: external "bn.js" -const external_bn_js_namespaceObject = require("bn.js"); -var external_bn_js_default = /*#__PURE__*/__webpack_require__.n(external_bn_js_namespaceObject); -;// CONCATENATED MODULE: ./src/helper/factorSerialization.ts - - - -/** - * Converts a mnemonic to a BN. - * @param shareMnemonic - The mnemonic to convert. - * @returns A BN respective to your mnemonic - */ -function mnemonicToKey(shareMnemonic) { - const factorKey = share_serialization_namespaceObject.ShareSerializationModule.deserializeMnemonic(shareMnemonic); - return factorKey.toString("hex"); -} - -/** - * Converts a BN to a mnemonic. - * @param shareBN - The BN to convert. - * @returns A mnemonic respective to your BN - */ -function keyToMnemonic(shareHex) { - const shareBN = new (external_bn_js_default())(shareHex, "hex"); - const mnemonic = share_serialization_namespaceObject.ShareSerializationModule.serializeMnemonic(shareBN); - return mnemonic; -} -;// CONCATENATED MODULE: external "@babel/runtime/helpers/objectSpread2" -const objectSpread2_namespaceObject = require("@babel/runtime/helpers/objectSpread2"); -var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2_namespaceObject); -;// CONCATENATED MODULE: external "@tkey/common-types" -const common_types_namespaceObject = require("@tkey/common-types"); -;// CONCATENATED MODULE: external "@tkey/tss" -const tss_namespaceObject = require("@tkey/tss"); -;// CONCATENATED MODULE: external "@toruslabs/torus.js" -const torus_js_namespaceObject = require("@toruslabs/torus.js"); -;// CONCATENATED MODULE: ./src/helper/securityQuestion.ts - - - - - - - -class TssSecurityQuestionStore { - constructor(shareIndex, factorPublicKey, question) { - defineProperty_default()(this, "shareIndex", void 0); - defineProperty_default()(this, "factorPublicKey", void 0); - defineProperty_default()(this, "question", void 0); - this.shareIndex = shareIndex; - this.factorPublicKey = factorPublicKey; - this.question = question; - } - static fromJSON(json) { - const { - shareIndex, - factorPublicKey, - question - } = json; - return new TssSecurityQuestionStore(shareIndex, factorPublicKey, question); - } - toJSON() { - return { - shareIndex: this.shareIndex, - factorPublicKey: this.factorPublicKey, - question: this.question - }; - } -} -class TssSecurityQuestion { - constructor() { - defineProperty_default()(this, "storeDomainName", "tssSecurityQuestion"); - } - async setSecurityQuestion(params) { - const { - mpcCoreKit, - question, - answer, - description - } = params; - let { - shareType - } = params; - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - if (!question || !answer) { - throw new Error("question and answer are required"); - } - const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; - - // default using recovery index - if (!shareType) { - shareType = TssShareType.RECOVERY; - } else if (!VALID_SHARE_INDICES.includes(shareType)) { - throw new Error(`invalid share type: must be one of ${VALID_SHARE_INDICES}`); - } - // Check for existing security question - const tkey = mpcCoreKit.tKey; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (storeDomain && storeDomain.question) { - throw new Error("Security question already exists"); - } - - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(common_types_namespaceObject.secp256k1, true).toString("hex") + tkey.tssTag; - let hash = (0,torus_js_namespaceObject.keccak256)(Buffer.from(answer + pubKey, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new (external_bn_js_default())(hash, "hex"); - const descriptionFinal = objectSpread2_default()({ - question - }, description); - await mpcCoreKit.createFactor({ - factorKey: factorKeyBN, - shareType, - shareDescription: FactorKeyTypeShareDescription.SecurityQuestions, - additionalMetadata: descriptionFinal - }); - // set store domain - const tkeyPt = (0,tss_namespaceObject.getPubKeyPoint)(factorKeyBN, tss_namespaceObject.factorKeyCurve); - const factorPub = tkeyPt.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex"); - const storeData = new TssSecurityQuestionStore(shareType.toString(), factorPub, question); - tkey.metadata.setGeneralStoreDomain(domainKey, storeData.toJSON()); - - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - return factorKeyBN.toString("hex").padStart(64, "0"); - } - async changeSecurityQuestion(params) { - const { - mpcCoreKit, - newQuestion, - newAnswer, - answer - } = params; - if (!newQuestion || !newAnswer || !answer) { - throw new Error("question and answer are required"); - } - // Check for existing security question - const tkey = mpcCoreKit.tKey; - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(common_types_namespaceObject.secp256k1, true).toString("hex") + tkey.tssTag; - const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - const preHash = answer + pubKey; - let hash = (0,torus_js_namespaceObject.keccak256)(Buffer.from(preHash, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new (external_bn_js_default())(hash, "hex"); - const factorKeyPt = (0,tss_namespaceObject.getPubKeyPoint)(factorKeyBN, tss_namespaceObject.factorKeyCurve); - if (factorKeyPt.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { - throw new Error("Invalid answer"); - } - - // create new factor key - const prenewHash = newAnswer + pubKey; - let newHash = (0,torus_js_namespaceObject.keccak256)(Buffer.from(prenewHash, "utf8")); - newHash = newHash.startsWith("0x") ? newHash.slice(2) : newHash; - const newAnswerBN = new (external_bn_js_default())(newHash, "hex"); - const newFactorPt = common_types_namespaceObject.Point.fromScalar(newAnswerBN, tss_namespaceObject.factorKeyCurve); - await mpcCoreKit.createFactor({ - factorKey: newAnswerBN, - shareType: parseInt(store.shareIndex), - shareDescription: FactorKeyTypeShareDescription.SecurityQuestions - }); - - // update mpcCoreKit state to use new factor key during change password if mpc factor key is security question factor - if (mpcCoreKit.state.factorKey.eq(factorKeyBN)) { - await mpcCoreKit.inputFactorKey(newAnswerBN); - } - // delete after create factor to prevent last key issue - // delete old factor key and device share - await mpcCoreKit.deleteFactor(factorKeyPt, factorKeyBN); - store.factorPublicKey = newFactorPt.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex"); - store.question = newQuestion; - tkey.metadata.setGeneralStoreDomain(domainKey, store.toJSON()); - - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - } - - // Should we check with answer before deleting? - async deleteSecurityQuestion(mpcCoreKit, deleteFactorKey = true) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const tkey = mpcCoreKit.tKey; - if (deleteFactorKey) { - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - if (store.factorPublicKey) { - await mpcCoreKit.deleteFactor(common_types_namespaceObject.Point.fromSEC1(tss_namespaceObject.factorKeyCurve, store.factorPublicKey)); - } - } - tkey.metadata.deleteGeneralStoreDomain(domainKey); - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - } - async recoverFactor(mpcCoreKit, answer) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - if (!answer) { - throw new Error("question and answer are required"); - } - const tkey = mpcCoreKit.tKey; - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(common_types_namespaceObject.secp256k1, true).toString("hex") + tkey.tssTag; - let hash = (0,torus_js_namespaceObject.keccak256)(Buffer.from(answer + pubKey, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new (external_bn_js_default())(hash, "hex"); - const factorKeyPt = common_types_namespaceObject.Point.fromScalar(factorKeyBN, tss_namespaceObject.factorKeyCurve); - if (factorKeyPt.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { - throw new Error("Invalid answer"); - } - return hash; - } - getQuestion(mpcCoreKit) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - const tkey = mpcCoreKit.tKey; - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - return store.question; - } -} -;// CONCATENATED MODULE: ./src/helper/index.ts - - - -;// CONCATENATED MODULE: ./src/interfaces.ts -// TODO: move the types to a base class for both dkls and frost in future - -let COREKIT_STATUS = /*#__PURE__*/function (COREKIT_STATUS) { - COREKIT_STATUS["NOT_INITIALIZED"] = "NOT_INITIALIZED"; - COREKIT_STATUS["INITIALIZED"] = "INITIALIZED"; - COREKIT_STATUS["REQUIRED_SHARE"] = "REQUIRED_SHARE"; - COREKIT_STATUS["LOGGED_IN"] = "LOGGED_IN"; - return COREKIT_STATUS; -}({}); -;// CONCATENATED MODULE: external "@tkey/core" -const core_namespaceObject = require("@tkey/core"); -;// CONCATENATED MODULE: external "@tkey/storage-layer-torus" -const storage_layer_torus_namespaceObject = require("@tkey/storage-layer-torus"); -;// CONCATENATED MODULE: external "@toruslabs/customauth" -const customauth_namespaceObject = require("@toruslabs/customauth"); -;// CONCATENATED MODULE: external "@toruslabs/elliptic-wrapper" -const elliptic_wrapper_namespaceObject = require("@toruslabs/elliptic-wrapper"); -;// CONCATENATED MODULE: external "@toruslabs/fnd-base" -const fnd_base_namespaceObject = require("@toruslabs/fnd-base"); -;// CONCATENATED MODULE: external "@toruslabs/metadata-helpers" -const metadata_helpers_namespaceObject = require("@toruslabs/metadata-helpers"); -;// CONCATENATED MODULE: external "@toruslabs/session-manager" -const session_manager_namespaceObject = require("@toruslabs/session-manager"); -;// CONCATENATED MODULE: external "@toruslabs/tss-client" -const tss_client_namespaceObject = require("@toruslabs/tss-client"); -;// CONCATENATED MODULE: external "@toruslabs/tss-frost-client" -const tss_frost_client_namespaceObject = require("@toruslabs/tss-frost-client"); -;// CONCATENATED MODULE: external "bowser" -const external_bowser_namespaceObject = require("bowser"); -var external_bowser_default = /*#__PURE__*/__webpack_require__.n(external_bowser_namespaceObject); -;// CONCATENATED MODULE: external "elliptic" -const external_elliptic_namespaceObject = require("elliptic"); -;// CONCATENATED MODULE: external "@toruslabs/openlogin-utils" -const openlogin_utils_namespaceObject = require("@toruslabs/openlogin-utils"); -;// CONCATENATED MODULE: external "loglevel" -const external_loglevel_namespaceObject = require("loglevel"); -var external_loglevel_default = /*#__PURE__*/__webpack_require__.n(external_loglevel_namespaceObject); -;// CONCATENATED MODULE: ./src/utils.ts - - - - - - - - - -const ed25519 = () => { - return new external_elliptic_namespaceObject.eddsa("ed25519"); -}; - -/** - * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. - */ -function randomBytes(bytesLength = 32) { - // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. - const crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : undefined; - if (crypto && typeof crypto.getRandomValues === "function") { - return crypto.getRandomValues(new Uint8Array(bytesLength)); - } - throw new Error("crypto.getRandomValues must be defined"); -} -function generateEd25519Seed() { - return Buffer.from(randomBytes(32)); -} -const generateFactorKey = () => { - const keyPair = tss_namespaceObject.factorKeyCurve.genKeyPair(); - const pub = common_types_namespaceObject.Point.fromElliptic(keyPair.getPublic()); - return { - private: keyPair.getPrivate(), - pub - }; -}; -const generateTSSEndpoints = (tssNodeEndpoints, parties, clientIndex, nodeIndexes) => { - const endpoints = []; - const tssWSEndpoints = []; - const partyIndexes = []; - const nodeIndexesReturned = []; - for (let i = 0; i < parties; i++) { - partyIndexes.push(i); - if (i === clientIndex) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - endpoints.push(null); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - tssWSEndpoints.push(null); - } else { - const targetNodeIndex = nodeIndexes[i] - 1; - endpoints.push(tssNodeEndpoints[targetNodeIndex]); - tssWSEndpoints.push(new URL(tssNodeEndpoints[targetNodeIndex]).origin); - nodeIndexesReturned.push(nodeIndexes[i]); - } - } - return { - endpoints, - tssWSEndpoints, - partyIndexes, - nodeIndexesReturned - }; -}; -async function storageAvailable(storage) { - try { - const x = "__storage_test__"; - const rand = Math.random().toString(); - await storage.setItem(x, rand); - const value = await storage.getItem(rand); - if (value !== rand) { - throw new Error("Value mismatch"); - } - return true; - } catch (error) { - return false; - } -} - -// TODO think which conversion functions to keep and how to export them. - -/** - * Parses a JWT Token, without verifying the signature. - * @param token - JWT Token - * @returns Extracted JSON payload from the token - */ -function parseToken(token) { - const payload = token.split(".")[1]; - return JSON.parse((0,openlogin_utils_namespaceObject.safeatob)(payload)); -} -const getHashedPrivateKey = (postboxKey, clientId) => { - const uid = `${postboxKey}_${clientId}`; - let hashUid = (0,torus_js_namespaceObject.keccak256)(Buffer.from(uid, "utf8")); - hashUid = hashUid.replace("0x", ""); - return new (external_bn_js_default())(hashUid, "hex"); -}; - -/** - * Converts an elliptic curve scalar represented by a BN to a byte buffer in SEC1 - * format (i.e., padded to maximum length). - * @param s - The scalar of type BN. - * @returns The SEC1 encoded representation of the scalar. - */ -function scalarBNToBufferSEC1(s) { - return s.toArrayLike(Buffer, "be", SCALAR_LEN); -} -function sampleEndpoints(endpoints, n) { - if (n > endpoints.length) { - throw new Error("Invalid number of endpoints"); - } - const shuffledEndpoints = endpoints.slice().sort(() => Math.random() - 0.5); - return shuffledEndpoints.slice(0, n).sort((a, b) => a.index - b.index); -} -function fraction(curve, nom, denom) { - return nom.mul(denom.invm(curve.n)).umod(curve.n); -} -function lagrangeCoefficient(curve, xCoords, targetCoeff, targetX) { - return xCoords.filter((_, i) => i !== targetCoeff).reduce((prev, cur) => { - const frac = fraction(curve, targetX.sub(cur), xCoords[targetCoeff].sub(cur)); - return prev.mul(frac).umod(curve.n); - }, new (external_bn_js_default())(1)); -} -function lagrangeCoefficients(curve, xCoords, targetX) { - const xCoordsBN = xCoords.map(i => new (external_bn_js_default())(i)); - const targetXBN = new (external_bn_js_default())(targetX); - return xCoordsBN.map((_value, i) => lagrangeCoefficient(curve, xCoordsBN, i, targetXBN)); -} -const SERVER_XCOORD_L1 = 1; -const CLIENT_XCOORD_L1 = 2; - -/** - * Derive share coefficients for client and servers. - * - * @param curve - The curve to be used. - * @param serverXCoords - The source and target x-coordinates of the selected - * servers. - * @param targetClientXCoord - The target x-coordinate of the client. - * @param sourceClientXCoord - The source x-coordinate of the client in the L1 - * hierarchy. - * @returns - The share coefficients for the client and the servers. - */ -function deriveShareCoefficients(ec, serverXCoords, targetClientXCoord, sourceClientXCoord = CLIENT_XCOORD_L1) { - const l1Coefficients = lagrangeCoefficients(ec, [SERVER_XCOORD_L1, sourceClientXCoord], 0); - const l2Coefficients = lagrangeCoefficients(ec, serverXCoords, 0); - if (serverXCoords.includes(targetClientXCoord)) { - throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${serverXCoords} ${targetClientXCoord}`); - } - const targetCoefficients = lagrangeCoefficients(ec, [targetClientXCoord, ...serverXCoords], 0); - - // Derive server coefficients. - const serverCoefficients = l2Coefficients.map((coeff, i) => fraction(ec, l1Coefficients[0].mul(coeff), targetCoefficients[i + 1])); - - // Derive client coefficient. - const clientCoefficient = fraction(ec, l1Coefficients[1], targetCoefficients[0]); - return { - serverCoefficients, - clientCoefficient - }; -} -function generateSessionNonce() { - return (0,torus_js_namespaceObject.keccak256)(Buffer.from((0,core_namespaceObject.generatePrivateBN)().toString("hex") + Date.now(), "utf8")); -} -function getSessionId(verifier, verifierId, tssTag, tssNonce, sessionNonce) { - return `${verifier}${DELIMITERS.Delimiter1}${verifierId}${DELIMITERS.Delimiter2}${tssTag}${DELIMITERS.Delimiter3}${tssNonce}${DELIMITERS.Delimiter4}${sessionNonce}`; -} -function sigToRSV(sig) { - if (sig.length !== 65) { - throw new Error(`Invalid signature length: expected 65, got ${sig.length}`); - } - return { - r: sig.subarray(0, 32), - s: sig.subarray(32, 64), - v: sig[64] - }; -} -function makeEthereumSigner(kit) { - if (kit.keyType !== common_types_namespaceObject.KeyType.secp256k1) { - throw new Error(`Invalid key type: expected secp256k1, got ${kit.keyType}`); - } - return { - sign: async msgHash => { - const sig = await kit.sign(msgHash, true); - return sigToRSV(sig); - }, - getPublic: async () => { - const pk = common_types_namespaceObject.Point.fromSEC1(common_types_namespaceObject.secp256k1, kit.getPubKey().toString("hex")); - return pk.toSEC1(common_types_namespaceObject.secp256k1).subarray(1); - } - }; -} -const log = external_loglevel_default().getLogger("mpc-core-kit"); -log.disableAll(); -;// CONCATENATED MODULE: ./src/mpcCoreKit.ts - - - - - - - - - - - - - - - - - - - - - - - - -class Web3AuthMPCCoreKit { - constructor(options) { - var _window; - defineProperty_default()(this, "state", { - accountIndex: 0 - }); - defineProperty_default()(this, "torusSp", null); - defineProperty_default()(this, "options", void 0); - defineProperty_default()(this, "storageLayer", null); - defineProperty_default()(this, "tkey", null); - defineProperty_default()(this, "sessionManager", void 0); - defineProperty_default()(this, "currentStorage", void 0); - defineProperty_default()(this, "_storageBaseKey", "corekit_store"); - defineProperty_default()(this, "enableLogging", false); - defineProperty_default()(this, "ready", false); - defineProperty_default()(this, "_tssLib", void 0); - defineProperty_default()(this, "wasmLib", void 0); - defineProperty_default()(this, "_keyType", void 0); - defineProperty_default()(this, "atomicCallStackCounter", 0); - defineProperty_default()(this, "getTssFactorPub", () => { - this.checkReady(); - if (!this.state.factorKey) { - throw errors.factorKeyNotPresent("factorKey not present in state when getting tss factor public key."); - } - const factorPubsList = this.tKey.metadata.factorPubs[this.tKey.tssTag]; - return factorPubsList.map(factorPub => factorPub.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex")); - }); - if (!options.web3AuthClientId) { - throw errors.clientIdInvalid(); - } - this._tssLib = options.tssLib; - this._keyType = options.tssLib.keyType; - const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); - if (options.enableLogging) { - log.enableAll(); - this.enableLogging = true; - } else log.setLevel("error"); - if (typeof options.manualSync !== "boolean") options.manualSync = false; - if (!options.web3AuthNetwork) options.web3AuthNetwork = WEB3AUTH_NETWORK.MAINNET; - // if sessionTime is not provided, it is defaulted to 86400 - if (!options.sessionTime) options.sessionTime = 86400; - if (!options.serverTimeOffset) options.serverTimeOffset = 0; - if (!options.uxMode) options.uxMode = customauth_namespaceObject.UX_MODE.REDIRECT; - if (!options.redirectPathName) options.redirectPathName = "redirect"; - if (!options.baseUrl) options.baseUrl = isNodejsOrRN ? "https://localhost" : `${(_window = window) === null || _window === void 0 ? void 0 : _window.location.origin}/serviceworker`; - if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; - if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; - if (options.disableSessionManager === undefined) options.disableSessionManager = false; - this.options = options; - this.currentStorage = new AsyncStorage(this._storageBaseKey, options.storage); - if (!options.disableSessionManager) { - this.sessionManager = new session_manager_namespaceObject.SessionManager({ - sessionTime: options.sessionTime - }); - } - torus_js_namespaceObject.Torus.setSessionTime(this.options.sessionTime); - } - get tKey() { - if (this.tkey === null) { - throw errors.tkeyInstanceUninitialized(); - } - return this.tkey; - } - get keyType() { - return this._keyType; - } - get signatures() { - var _this$state; - return (_this$state = this.state) !== null && _this$state !== void 0 && _this$state.signatures ? this.state.signatures : []; - } - get _storageKey() { - return this._storageBaseKey; - } - get status() { - try { - // metadata will be present if tkey is initialized (1 share) - // if 2 shares are present, then privKey will be present after metadatakey(tkey) reconstruction - const { - tkey - } = this; - if (!tkey) return COREKIT_STATUS.NOT_INITIALIZED; - if (!tkey.metadata) return COREKIT_STATUS.INITIALIZED; - if (!tkey.secp256k1Key || !this.state.factorKey) return COREKIT_STATUS.REQUIRED_SHARE; - return COREKIT_STATUS.LOGGED_IN; - } catch (e) {} - return COREKIT_STATUS.NOT_INITIALIZED; - } - get sessionId() { - var _this$sessionManager; - return (_this$sessionManager = this.sessionManager) === null || _this$sessionManager === void 0 ? void 0 : _this$sessionManager.sessionId; - } - get supportsAccountIndex() { - return this._keyType !== common_types_namespaceObject.KeyType.ed25519; - } - get verifier() { - var _this$state$userInfo, _this$state2; - if ((_this$state$userInfo = this.state.userInfo) !== null && _this$state$userInfo !== void 0 && _this$state$userInfo.aggregateVerifier) { - return this.state.userInfo.aggregateVerifier; - } - return (_this$state2 = this.state) !== null && _this$state2 !== void 0 && (_this$state2 = _this$state2.userInfo) !== null && _this$state2 !== void 0 && _this$state2.verifier ? this.state.userInfo.verifier : ""; - } - get verifierId() { - var _this$state3; - return (_this$state3 = this.state) !== null && _this$state3 !== void 0 && (_this$state3 = _this$state3.userInfo) !== null && _this$state3 !== void 0 && _this$state3.verifierId ? this.state.userInfo.verifierId : ""; - } - get isRedirectMode() { - return this.options.uxMode === customauth_namespaceObject.UX_MODE.REDIRECT; - } - get useClientGeneratedTSSKey() { - return this.keyType === common_types_namespaceObject.KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; - } - - // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : - // TssShareType.DEVICE and TssShareType.RECOVERY - // if the factors key provided is the same type recovery will not works - async _UNSAFE_recoverTssKey(factorKey) { - this.checkReady(); - const factorKeyBN = new (external_bn_js_default())(factorKey[0], "hex"); - const shareStore0 = await this.getFactorKeyMetadata(factorKeyBN); - await this.tKey.initialize({ - withShare: shareStore0 - }); - const tssShares = []; - const tssIndexes = []; - const tssIndexesBN = []; - for (let i = 0; i < factorKey.length; i++) { - const factorKeyBNInput = new (external_bn_js_default())(factorKey[i], "hex"); - const { - tssIndex, - tssShare - } = await this.tKey.getTSSShare(factorKeyBNInput); - if (tssIndexes.includes(tssIndex)) { - // reset instance before throw error - await this.init(); - throw errors.duplicateTssIndex(); - } - tssIndexes.push(tssIndex); - tssIndexesBN.push(new (external_bn_js_default())(tssIndex)); - tssShares.push(tssShare); - } - const finalKey = (0,tss_namespaceObject.lagrangeInterpolation)(this.tkey.tssCurve, tssShares, tssIndexesBN); - // reset instance after recovery completed - await this.init(); - return finalKey.toString("hex", 64); - } - async init(params = { - handleRedirectResult: true - }) { - var _window2, _window3; - this.resetState(); - if (params.rehydrate === undefined) params.rehydrate = true; - const nodeDetails = (0,fnd_base_namespaceObject.fetchLocalConfig)(this.options.web3AuthNetwork, this.keyType); - if (this.keyType === constants_namespaceObject.KEY_TYPE.ED25519 && this.options.useDKG) { - throw errors.invalidConfig("DKG is not supported for ed25519 key type"); - } - this.torusSp = new tss_namespaceObject.TSSTorusServiceProvider({ - customAuthArgs: { - web3AuthClientId: this.options.web3AuthClientId, - baseUrl: this.options.baseUrl, - uxMode: this.isNodejsOrRN(this.options.uxMode) ? customauth_namespaceObject.UX_MODE.REDIRECT : this.options.uxMode, - network: this.options.web3AuthNetwork, - redirectPathName: this.options.redirectPathName, - locationReplaceOnRedirect: true, - serverTimeOffset: this.options.serverTimeOffset, - keyType: this.keyType, - useDkg: this.options.useDKG - } - }); - this.storageLayer = new storage_layer_torus_namespaceObject.TorusStorageLayer({ - hostUrl: `${new URL(nodeDetails.torusNodeEndpoints[0]).origin}/metadata`, - enableLogging: this.enableLogging - }); - const shareSerializationModule = new share_serialization_namespaceObject.ShareSerializationModule(); - this.tkey = new tss_namespaceObject.TKeyTSS({ - enableLogging: this.enableLogging, - serviceProvider: this.torusSp, - storageLayer: this.storageLayer, - manualSync: this.options.manualSync, - modules: { - shareSerialization: shareSerializationModule - }, - tssKeyType: this.keyType - }); - if (this.isRedirectMode) { - await this.torusSp.init({ - skipSw: true, - skipPrefetch: true - }); - } else if (this.options.uxMode === customauth_namespaceObject.UX_MODE.POPUP) { - await this.torusSp.init({}); - } - this.ready = true; - - // try handle redirect flow if enabled and return(redirect) from oauth login - if (params.handleRedirectResult && this.options.uxMode === customauth_namespaceObject.UX_MODE.REDIRECT && ((_window2 = window) !== null && _window2 !== void 0 && _window2.location.hash.includes("#state") || (_window3 = window) !== null && _window3 !== void 0 && _window3.location.hash.includes("#access_token"))) { - // on failed redirect, instance is reseted. - // skip check feature gating on redirection as it was check before login - await this.handleRedirectResult(); - - // return early on successful redirect, the rest of the code will not be executed - return; - } else if (params.rehydrate && this.sessionManager) { - // if not redirect flow try to rehydrate session if available - const sessionId = await this.currentStorage.get("sessionId"); - if (sessionId) { - this.sessionManager.sessionId = sessionId; - - // swallowed, should not throw on rehydrate timed out session - const sessionResult = await this.sessionManager.authorizeSession().catch(async err => { - log.error("rehydrate session error", err); - }); - - // try rehydrate session - if (sessionResult) { - await this.rehydrateSession(sessionResult); - - // return early on success rehydration - return; - } - } - } - // feature gating if not redirect flow or session rehydration - await this.featureRequest(); - } - async loginWithOAuth(params) { - this.checkReady(); - if (this.isNodejsOrRN(this.options.uxMode)) { - throw errors.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`); - } - const { - importTssKey - } = params; - const tkeyServiceProvider = this.torusSp; - try { - // oAuth login. - const verifierParams = params; - const aggregateParams = params; - if (verifierParams.subVerifierDetails) { - var _loginResponse$nodesD; - // single verifier login. - const loginResponse = await tkeyServiceProvider.triggerLogin(params.subVerifierDetails); - if (this.isRedirectMode) return; - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: (_loginResponse$nodesD = loginResponse.nodesData) === null || _loginResponse$nodesD === void 0 ? void 0 : _loginResponse$nodesD.nodeIndexes, - userInfo: loginResponse.userInfo, - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - } else if (aggregateParams.subVerifierDetailsArray) { - var _loginResponse$nodesD2; - const loginResponse = await tkeyServiceProvider.triggerAggregateLogin({ - aggregateVerifierType: aggregateParams.aggregateVerifierType || customauth_namespaceObject.AGGREGATE_VERIFIER.SINGLE_VERIFIER_ID, - verifierIdentifier: aggregateParams.aggregateVerifierIdentifier, - subVerifierDetailsArray: aggregateParams.subVerifierDetailsArray - }); - if (this.isRedirectMode) return; - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: (_loginResponse$nodesD2 = loginResponse.nodesData) === null || _loginResponse$nodesD2 === void 0 ? void 0 : _loginResponse$nodesD2.nodeIndexes, - userInfo: loginResponse.userInfo[0], - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - } - await this.setupTkey(importTssKey); - } catch (err) { - log.error("login error", err); - if (err instanceof core_namespaceObject.CoreError) { - if (err.code === 1302) { - throw errors["default"](ERRORS.TKEY_SHARES_REQUIRED); - } - } - throw errors["default"](err.message); - } - } - async loginWithJWT(params) { - this.checkReady(); - const { - prefetchTssPublicKeys = 1 - } = params; - if (prefetchTssPublicKeys > 3) { - throw errors.prefetchValueExceeded(`The prefetch value '${prefetchTssPublicKeys}' exceeds the maximum allowed limit of 3.`); - } - const { - verifier, - verifierId, - idToken, - importTssKey - } = params; - this.torusSp.verifierName = verifier; - this.torusSp.verifierId = verifierId; - try { - var _loginResponse$nodesD3; - // prefetch tss pub keys. - const prefetchTssPubs = []; - for (let i = 0; i < prefetchTssPublicKeys; i++) { - prefetchTssPubs.push(this.torusSp.getTSSPubKey(this.tkey.tssTag, i)); - } - - // get postbox key. - let loginPromise; - if (!params.subVerifier) { - // single verifier login. - loginPromise = this.torusSp.customAuthInstance.getTorusKey(verifier, verifierId, { - verifier_id: verifierId - }, idToken, objectSpread2_default()(objectSpread2_default()({}, params.extraVerifierParams), params.additionalParams)); - } else { - // aggregate verifier login - loginPromise = this.torusSp.customAuthInstance.getAggregateTorusKey(verifier, verifierId, [{ - verifier: params.subVerifier, - idToken, - extraVerifierParams: params.extraVerifierParams - }]); - } - - // wait for prefetch completed before setup tkey - const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]); - const postBoxKey = this._getPostBoxKey(loginResponse); - this.torusSp.postboxKey = new (external_bn_js_default())(postBoxKey, "hex"); - this.updateState({ - postBoxKey, - postboxKeyNodeIndexes: ((_loginResponse$nodesD3 = loginResponse.nodesData) === null || _loginResponse$nodesD3 === void 0 ? void 0 : _loginResponse$nodesD3.nodeIndexes) || [], - userInfo: objectSpread2_default()(objectSpread2_default()({}, parseToken(idToken)), {}, { - verifier, - verifierId - }), - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - await this.setupTkey(importTssKey); - } catch (err) { - log.error("login error", err); - if (err instanceof core_namespaceObject.CoreError) { - if (err.code === 1302) { - const newError = errors["default"](ERRORS.TKEY_SHARES_REQUIRED); - newError.stack = err.stack; - throw newError; - } - } - const newError = errors["default"](err.message); - newError.stack = err.stack; - throw newError; - } - } - async handleRedirectResult() { - this.checkReady(); - try { - const result = await this.torusSp.customAuthInstance.getRedirectResult(); - if (result.method === customauth_namespaceObject.TORUS_METHOD.TRIGGER_LOGIN) { - var _data$nodesData; - const data = result.result; - if (!data) { - throw errors.invalidTorusLoginResponse(); - } - this.updateState({ - postBoxKey: this._getPostBoxKey(data), - postboxKeyNodeIndexes: ((_data$nodesData = data.nodesData) === null || _data$nodesData === void 0 ? void 0 : _data$nodesData.nodeIndexes) || [], - userInfo: data.userInfo, - signatures: this._getSignatures(data.sessionData.sessionTokenData) - }); - const userInfo = this.getUserInfo(); - this.torusSp.verifierName = userInfo.verifier; - } else if (result.method === customauth_namespaceObject.TORUS_METHOD.TRIGGER_AGGREGATE_LOGIN) { - var _data$nodesData2; - const data = result.result; - if (!data) { - throw errors.invalidTorusAggregateLoginResponse(); - } - this.updateState({ - postBoxKey: this._getPostBoxKey(data), - postboxKeyNodeIndexes: ((_data$nodesData2 = data.nodesData) === null || _data$nodesData2 === void 0 ? void 0 : _data$nodesData2.nodeIndexes) || [], - userInfo: data.userInfo[0], - signatures: this._getSignatures(data.sessionData.sessionTokenData) - }); - const userInfo = this.getUserInfo(); - this.torusSp.verifierName = userInfo.aggregateVerifier; - } else { - throw errors.unsupportedRedirectMethod(); - } - const userInfo = this.getUserInfo(); - if (!this.state.postBoxKey) { - throw errors.postBoxKeyMissing("postBoxKey not present in state after processing redirect result."); - } - this.torusSp.postboxKey = new (external_bn_js_default())(this.state.postBoxKey, "hex"); - this.torusSp.verifierId = userInfo.verifierId; - await this.setupTkey(); - } catch (error) { - this.resetState(); - log.error("error while handling redirect result", error); - throw errors["default"](error.message); - } - } - async inputFactorKey(factorKey) { - this.checkReady(); - try { - // input tkey device share when required share > 0 ( or not reconstructed ) - // assumption tkey shares will not changed - if (!this.tKey.secp256k1Key) { - const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - } - - // Finalize initialization. - await this.tKey.reconstructKey(); - await this.finalizeTkey(factorKey); - } catch (err) { - log.error("login error", err); - if (err instanceof core_namespaceObject.CoreError) { - if (err.code === 1302) { - throw errors["default"](ERRORS.TKEY_SHARES_REQUIRED); - } - } - throw errors["default"](err.message); - } - } - setTssWalletIndex(accountIndex) { - this.updateState({ - tssPubKey: this.tKey.getTSSPub(accountIndex).toSEC1(this.tkey.tssCurve, false), - accountIndex - }); - } - getCurrentFactorKey() { - this.checkReady(); - if (!this.state.factorKey) { - throw errors.factorKeyNotPresent("factorKey not present in state when getting current factor key."); - } - if (!this.state.tssShareIndex) { - throw errors.tssShareTypeIndexMissing("TSS Share Type (Index) not present in state when getting current factor key."); - } - try { - return { - factorKey: this.state.factorKey, - shareType: this.state.tssShareIndex - }; - } catch (err) { - log.error("state error", err); - throw errors["default"](err.message); - } - } - async enableMFA(enableMFAParams, recoveryFactor = true) { - this.checkReady(); - const { - postBoxKey - } = this.state; - const hashedFactorKey = getHashedPrivateKey(postBoxKey, this.options.hashedFactorNonce); - if (!(await this.checkIfFactorKeyValid(hashedFactorKey))) { - if (this.tKey._localMetadataTransitions[0].length) { - throw errors.commitChangesBeforeMFA(); - } - throw errors.mfaAlreadyEnabled(); - } - return this.atomicSync(async () => { - let browserData; - if (this.isNodejsOrRN(this.options.uxMode)) { - browserData = { - browserName: "Node Env", - browserVersion: "", - deviceName: "nodejs" - }; - } else { - // try { - const browserInfo = external_bowser_default().parse(navigator.userAgent); - const browserName = `${browserInfo.browser.name}`; - browserData = { - browserName, - browserVersion: browserInfo.browser.version, - deviceName: browserInfo.os.name - }; - } - const deviceFactorKey = new (external_bn_js_default())(await this.createFactor({ - shareType: TssShareType.DEVICE, - additionalMetadata: browserData - }), "hex"); - await this.setDeviceFactor(deviceFactorKey); - await this.inputFactorKey(new (external_bn_js_default())(deviceFactorKey, "hex")); - const hashedFactorPub = (0,tss_namespaceObject.getPubKeyPoint)(hashedFactorKey, tss_namespaceObject.factorKeyCurve); - await this.deleteFactor(hashedFactorPub, hashedFactorKey); - await this.deleteMetadataShareBackup(hashedFactorKey); - - // only recovery factor = true - let backupFactorKey; - if (recoveryFactor) { - backupFactorKey = await this.createFactor(objectSpread2_default()({ - shareType: TssShareType.RECOVERY - }, enableMFAParams)); - } - - // update to undefined for next major release - return backupFactorKey; - }).catch(reason => { - log.error("error enabling MFA:", reason.message); - const err = errors["default"](reason.message); - err.stack = reason.stack; - throw err; - }); - } - // mutation function - async createFactor(createFactorParams) { - this.checkReady(); - const { - shareType - } = createFactorParams; - let { - factorKey, - shareDescription, - additionalMetadata - } = createFactorParams; - if (!VALID_SHARE_INDICES.includes(shareType)) { - throw errors.newShareIndexInvalid(`Invalid share type provided (${shareType}). Valid share types are ${VALID_SHARE_INDICES}.`); - } - if (!factorKey) { - factorKey = generateFactorKey().private; - } - if (!shareDescription) { - shareDescription = FactorKeyTypeShareDescription.Other; - } - if (!additionalMetadata) { - additionalMetadata = {}; - } - const factorPub = (0,tss_namespaceObject.getPubKeyPoint)(factorKey, tss_namespaceObject.factorKeyCurve); - if (this.getTssFactorPub().includes(factorPub.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex"))) { - throw errors.factorKeyAlreadyExists(); - } - return this.atomicSync(async () => { - await this.copyOrCreateShare(shareType, factorPub); - await this.backupMetadataShare(factorKey); - await this.addFactorDescription({ - factorKey, - shareDescription, - additionalMetadata, - updateMetadata: false - }); - return scalarBNToBufferSEC1(factorKey).toString("hex"); - }).catch(reason => { - log.error("error creating factor:", reason.message); - const err = errors["default"](`error creating factor: ${reason.message}`); - err.stack = reason.stack; - throw err; - }); - } - - /** - * Get public key point in SEC1 format. - */ - getPubKey() { - const { - tssPubKey - } = this.state; - return Buffer.from(tssPubKey); - } - - /** - * Get public key point. - */ - getPubKeyPoint() { - const { - tssPubKey - } = this.state; - return common_types_namespaceObject.Point.fromSEC1(this.tkey.tssCurve, tssPubKey.toString("hex")); - } - - /** - * Get public key in ed25519 format. - * - * Throws an error if keytype is not compatible with ed25519. - */ - getPubKeyEd25519() { - const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); - return ed25519().keyFromPublic(p).getPublic(); - } - async precompute_secp256k1() { - this.wasmLib = await this.loadTssWasm(); - // PreSetup - const { - tssShareIndex - } = this.state; - const tssPubKey = this.getPubKeyPoint(); - const { - torusNodeTSSEndpoints - } = (0,fnd_base_namespaceObject.fetchLocalConfig)(this.options.web3AuthNetwork, this.keyType); - if (!this.state.factorKey) { - throw errors.factorKeyNotPresent("factorKey not present in state when signing."); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey, { - accountIndex: 0 - }); - const tssNonce = this.getTssNonce(); - if (!tssPubKey || !torusNodeTSSEndpoints) { - throw errors.tssPublicKeyOrEndpointsMissing(); - } - - // session is needed for authentication to the web3auth infrastructure holding the factor 1 - const randomSessionNonce = generateSessionNonce(); - const currentSession = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, randomSessionNonce); - const parties = 4; - const clientIndex = parties - 1; - // 1. setup - // generate endpoints for servers - const { - nodeIndexes - } = await this.torusSp.getTSSPubKey(this.tKey.tssTag, this.tKey.metadata.tssNonces[this.tKey.tssTag]); - const { - endpoints, - tssWSEndpoints, - partyIndexes, - nodeIndexesReturned: participatingServerDKGIndexes - } = generateTSSEndpoints(torusNodeTSSEndpoints, parties, clientIndex, nodeIndexes); - - // Setup sockets. - const sockets = await (0,tss_client_namespaceObject.setupSockets)(tssWSEndpoints, randomSessionNonce); - const dklsCoeff = (0,tss_client_namespaceObject.getDKLSCoeff)(true, participatingServerDKGIndexes, tssShareIndex); - const denormalisedShare = dklsCoeff.mul(tssShare).umod(common_types_namespaceObject.secp256k1.curve.n); - const accountNonce = this.tkey.computeAccountNonce(this.state.accountIndex); - const derivedShare = denormalisedShare.add(accountNonce).umod(common_types_namespaceObject.secp256k1.curve.n); - const share = scalarBNToBufferSEC1(derivedShare).toString("base64"); - if (!currentSession) { - throw errors.activeSessionNotFound(); - } - const { - signatures - } = this; - if (!signatures) { - throw errors.signaturesNotPresent(); - } - - // Client lib expects pub key in XY-format, base64-encoded. - const tssPubKeyBase64 = Buffer.from(tssPubKey.toSEC1(common_types_namespaceObject.secp256k1).subarray(1)).toString("base64"); - const client = new tss_client_namespaceObject.Client(currentSession, clientIndex, partyIndexes, endpoints, sockets, share, tssPubKeyBase64, true, this.wasmLib); - const serverCoeffs = {}; - for (let i = 0; i < participatingServerDKGIndexes.length; i++) { - const serverIndex = participatingServerDKGIndexes[i]; - serverCoeffs[serverIndex] = (0,tss_client_namespaceObject.getDKLSCoeff)(false, participatingServerDKGIndexes, tssShareIndex, serverIndex).toString("hex"); - } - client.precompute({ - signatures, - server_coeffs: serverCoeffs, - nonce: scalarBNToBufferSEC1(this.getAccountNonce()).toString("base64") - }); - await client.ready().catch(err => { - client.cleanup({ - signatures, - server_coeffs: serverCoeffs - }); - throw err; - }); - return { - client, - serverCoeffs - }; - } - async sign(data, hashed = false, secp256k1Precompute) { - this.wasmLib = await this.loadTssWasm(); - if (this.keyType === common_types_namespaceObject.KeyType.secp256k1) { - const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); - return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); - } else if (this.keyType === common_types_namespaceObject.KeyType.ed25519) { - return this.sign_ed25519(data, hashed); - } - throw errors["default"](`sign not supported for key type ${this.keyType}`); - } - - // mutation function - async deleteFactor(factorPub, factorKey) { - if (!this.state.factorKey) { - throw errors.factorKeyNotPresent("factorKey not present in state when deleting a factor."); - } - if (!this.tKey.metadata.factorPubs) { - throw errors.factorPubsMissing(); - } - await this.atomicSync(async () => { - const remainingFactors = this.tKey.metadata.factorPubs[this.tKey.tssTag].length || 0; - if (remainingFactors <= 1) { - throw errors.cannotDeleteLastFactor("Cannot delete last factor"); - } - const fpp = factorPub; - const stateFpp = (0,tss_namespaceObject.getPubKeyPoint)(this.state.factorKey, tss_namespaceObject.factorKeyCurve); - if (fpp.equals(stateFpp)) { - throw errors.factorInUseCannotBeDeleted("Cannot delete current active factor"); - } - await this.tKey.deleteFactorPub({ - factorKey: this.state.factorKey, - deleteFactorPub: factorPub, - authSignatures: this.signatures - }); - const factorPubHex = fpp.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex"); - const allDesc = this.tKey.metadata.getShareDescription(); - const keyDesc = allDesc[factorPubHex]; - if (keyDesc) { - await Promise.all(keyDesc.map(async desc => { - var _this$tKey; - return (_this$tKey = this.tKey) === null || _this$tKey === void 0 ? void 0 : _this$tKey.metadata.deleteShareDescription(factorPubHex, desc); - })); - } - - // delete factorKey share metadata if factorkey is provided - if (factorKey) { - const factorKeyBN = new (external_bn_js_default())(factorKey, "hex"); - const derivedFactorPub = (0,tss_namespaceObject.getPubKeyPoint)(factorKeyBN, tss_namespaceObject.factorKeyCurve); - // only delete if factorPub matches - if (derivedFactorPub.equals(fpp)) { - await this.deleteMetadataShareBackup(factorKeyBN); - } - } - }); - } - async logout() { - var _this$sessionManager2; - if ((_this$sessionManager2 = this.sessionManager) !== null && _this$sessionManager2 !== void 0 && _this$sessionManager2.sessionId) { - await this.sessionManager.invalidateSession(); - } - // to accommodate async storage - await this.currentStorage.set("sessionId", ""); - this.resetState(); - await this.init({ - handleRedirectResult: false, - rehydrate: false - }); - } - getUserInfo() { - if (!this.state.userInfo) { - throw errors.userNotLoggedIn(); - } - return this.state.userInfo; - } - getKeyDetails() { - this.checkReady(); - const tkeyDetails = this.tKey.getKeyDetails(); - const tssPubKey = this.state.tssPubKey ? common_types_namespaceObject.Point.fromSEC1(this.tkey.tssCurve, this.state.tssPubKey.toString("hex")) : undefined; - const factors = this.tKey.metadata.factorPubs ? this.tKey.metadata.factorPubs[this.tKey.tssTag] : []; - const keyDetails = { - // use tkey's for now - requiredFactors: tkeyDetails.requiredShares, - threshold: tkeyDetails.threshold, - totalFactors: factors.length + 1, - shareDescriptions: this.tKey.getMetadata().getShareDescription(), - metadataPubKey: tkeyDetails.pubKey, - tssPubKey, - keyType: this.keyType - }; - return keyDetails; - } - async commitChanges() { - this.checkReady(); - if (!this.state.factorKey) { - throw errors.factorKeyNotPresent("factorKey not present in state when committing changes."); - } - try { - // in case for manualsync = true, _syncShareMetadata will not call syncLocalMetadataTransitions() - // it will not create a new LocalMetadataTransition - // manual call syncLocalMetadataTransitions() required to sync local transitions to storage - await this.tKey._syncShareMetadata(); - await this.tKey.syncLocalMetadataTransitions(); - } catch (error) { - log.error("sync metadata error", error); - throw error; - } - } - async setManualSync(manualSync) { - this.checkReady(); - // sync local transistion to storage before allow changes - await this.tKey.syncLocalMetadataTransitions(); - this.options.manualSync = manualSync; - this.tKey.manualSync = manualSync; - } - - // device factor - async setDeviceFactor(factorKey, replace = false) { - if (!replace) { - const existingFactor = await this.getDeviceFactor(); - if (existingFactor) { - throw errors["default"]("Device factor already exists"); - } - } - const metadata = this.tKey.getMetadata(); - const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); - await this.currentStorage.set(tkeyPubX, JSON.stringify({ - factorKey: factorKey.toString("hex").padStart(64, "0") - })); - } - async getDeviceFactor() { - const metadata = this.tKey.getMetadata(); - const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); - const tKeyLocalStoreString = await this.currentStorage.get(tkeyPubX); - const tKeyLocalStore = JSON.parse(tKeyLocalStoreString || "{}"); - return tKeyLocalStore.factorKey; - } - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Exports the private key scalar for the current account index. - * - * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. - */ - async _UNSAFE_exportTssKey() { - if (this.keyType !== common_types_namespaceObject.KeyType.secp256k1) { - throw errors["default"]("Wrong KeyType. Method can only be used when KeyType is secp256k1"); - } - if (!this.state.factorKey) { - throw errors.factorKeyNotPresent("factorKey not present in state when exporting tss key."); - } - if (!this.state.signatures) { - throw errors.signaturesNotPresent("Signatures not present in state when exporting tss key."); - } - const exportTssKey0 = await this.tKey._UNSAFE_exportTssKey({ - factorKey: this.state.factorKey, - authSignatures: this.state.signatures - }); - const accountNonce = this.getAccountNonce(); - const tssKey = exportTssKey0.add(accountNonce).umod(this.tKey.tssCurve.n); - return tssKey.toString("hex", FIELD_ELEMENT_HEX_LEN); - } - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Attempts to export the ed25519 private key seed. Only works if import key - * flow has been used. - */ - async _UNSAFE_exportTssEd25519Seed() { - if (this.keyType !== common_types_namespaceObject.KeyType.ed25519) { - throw errors["default"]("Wrong KeyType. Method can only be used when KeyType is ed25519"); - } - if (!this.state.factorKey) throw errors.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); - if (!this.state.signatures) throw errors.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed."); - try { - const exportEd25519Seed = await this.tKey._UNSAFE_exportTssEd25519Seed({ - factorKey: this.state.factorKey, - authSignatures: this.state.signatures - }); - return exportEd25519Seed; - } catch (error) { - throw errors["default"](`Error exporting ed25519 seed: ${error}`); - } - } - updateState(newState) { - this.state = objectSpread2_default()(objectSpread2_default()({}, this.state), newState); - } - async atomicSync(f) { - this.atomicCallStackCounter += 1; - this.tkey.manualSync = true; - try { - const r = await f(); - if (this.atomicCallStackCounter === 1) { - if (!this.options.manualSync) { - await this.commitChanges(); - } - } - return r; - } catch (error) { - throw error; - } finally { - this.atomicCallStackCounter -= 1; - if (this.atomicCallStackCounter === 0) { - this.tkey.manualSync = this.options.manualSync; - } - } - } - async importTssKey(tssKey, factorPub, newTSSIndex = TssShareType.DEVICE) { - if (!this.state.signatures) { - throw errors.signaturesNotPresent("Signatures not present in state when importing tss key."); - } - await this.tKey.importTssKey({ - tag: this.tKey.tssTag, - importKey: Buffer.from(tssKey, "hex"), - factorPub, - newTSSIndex - }, { - authSignatures: this.state.signatures - }); - } - getTssNonce() { - if (!this.tKey.metadata.tssNonces || this.tKey.metadata.tssNonces[this.tKey.tssTag] === undefined) { - throw errors.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`); - } - const tssNonce = this.tKey.metadata.tssNonces[this.tKey.tssTag]; - return tssNonce; - } - async setupTkey(providedImportTssKey) { - if (!this.state.postBoxKey) { - throw errors.userNotLoggedIn(); - } - const existingUser = await this.isMetadataPresent(this.state.postBoxKey); - let importTssKey = providedImportTssKey; - if (!existingUser) { - if (!importTssKey && this.useClientGeneratedTSSKey) { - if (this.keyType === common_types_namespaceObject.KeyType.ed25519) { - const k = generateEd25519Seed(); - importTssKey = k.toString("hex"); - } else if (this.keyType === common_types_namespaceObject.KeyType.secp256k1) { - const k = common_types_namespaceObject.secp256k1.genKeyPair().getPrivate(); - importTssKey = scalarBNToBufferSEC1(k).toString("hex"); - } else { - throw errors["default"]("Unsupported key type"); - } - } - await this.handleNewUser(importTssKey); - } else { - if (importTssKey) { - throw errors.tssKeyImportNotAllowed(); - } - await this.handleExistingUser(); - } - } - - // mutation function - async handleNewUser(importTssKey) { - await this.atomicSync(async () => { - // Generate or use hash factor and initialize tkey with it. - let factorKey; - if (this.options.disableHashedFactorKey) { - factorKey = generateFactorKey().private; - // delete previous hashed factorKey if present - const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - await this.deleteMetadataShareBackup(hashedFactorKey); - } else { - factorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - } - const deviceTSSIndex = TssShareType.DEVICE; - const factorPub = (0,tss_namespaceObject.getPubKeyPoint)(factorKey, tss_namespaceObject.factorKeyCurve); - if (!importTssKey) { - const ec = new external_elliptic_namespaceObject.ec(this.keyType); - const deviceTSSShare = ec.genKeyPair().getPrivate(); - await this.tKey.initialize({ - factorPub, - deviceTSSShare, - deviceTSSIndex - }); - } else { - await this.tKey.initialize({ - skipTssInit: true - }); - await this.tKey.reconstructKey(); - await this.importTssKey(importTssKey, factorPub, deviceTSSIndex); - } - - // Finalize initialization. - await this.tKey.reconstructKey(); - await this.finalizeTkey(factorKey); - - // Store factor description. - await this.backupMetadataShare(factorKey); - if (this.options.disableHashedFactorKey) { - await this.addFactorDescription({ - factorKey, - shareDescription: FactorKeyTypeShareDescription.Other, - updateMetadata: false - }); - } else { - await this.addFactorDescription({ - factorKey, - shareDescription: FactorKeyTypeShareDescription.HashedShare, - updateMetadata: false - }); - } - }); - } - async handleExistingUser() { - await this.tKey.initialize({ - neverInitializeNewKey: true - }); - if (this.options.disableHashedFactorKey) { - return; - } - const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - this.state.factorKey = hashedFactorKey; - if (await this.checkIfFactorKeyValid(hashedFactorKey)) { - // Initialize tkey with existing hashed share if available. - const factorKeyMetadata = await this.getFactorKeyMetadata(hashedFactorKey); - try { - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - await this.tKey.reconstructKey(); - await this.finalizeTkey(hashedFactorKey); - } catch (err) { - log.error("error initializing tkey with hashed share", err); - } - } else { - var _this$tKey2; - const factorKeyMetadata = await ((_this$tKey2 = this.tKey) === null || _this$tKey2 === void 0 ? void 0 : _this$tKey2.readMetadata(hashedFactorKey)); - if (factorKeyMetadata.message === "SHARE_DELETED") { - // throw CoreKitError.hashedFactorDeleted(); - log.warn("hashed factor deleted"); - } - } - } - async finalizeTkey(factorKey) { - if (this.state.accountIndex !== 0) { - log.warn("AccountIndex should be 0"); - this.state.accountIndex = 0; - } - // Read tss meta data. - const { - tssIndex: tssShareIndex - } = await this.tKey.getTSSShare(factorKey); - const tssPubKey = this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve, false); - this.updateState({ - tssShareIndex, - tssPubKey, - factorKey - }); - await this.createSession(); - } - checkReady() { - if (!this.ready) { - throw errors.mpcCoreKitNotInitialized(); - } - } - async rehydrateSession(result) { - try { - this.checkReady(); - const factorKey = new (external_bn_js_default())(result.factorKey, "hex"); - if (!factorKey) { - throw errors.providedFactorKeyInvalid(); - } - const postBoxKey = result.postBoxKey || result.oAuthKey; - if (!postBoxKey) { - throw errors["default"]("postBoxKey or oAuthKey not present in session data"); - } - this.torusSp.postboxKey = new (external_bn_js_default())(postBoxKey, "hex"); - this.torusSp.verifierName = result.userInfo.aggregateVerifier || result.userInfo.verifier; - this.torusSp.verifierId = result.userInfo.verifierId; - const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); - await this.tKey.initialize({ - neverInitializeNewKey: true - }); - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - await this.tKey.reconstructKey(); - this.updateState({ - factorKey: new (external_bn_js_default())(result.factorKey, "hex"), - postBoxKey, - postboxKeyNodeIndexes: result.postboxKeyNodeIndexes || [], - tssShareIndex: result.tssShareIndex, - tssPubKey: this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve, false), - signatures: result.signatures, - userInfo: result.userInfo - }); - } catch (err) { - log.warn("failed to authorize session", err); - } - } - async createSession() { - if (!this.options.disableSessionManager && !this.sessionManager) { - throw new Error("sessionManager is not available"); - } - try { - const sessionId = session_manager_namespaceObject.SessionManager.generateRandomSessionKey(); - this.sessionManager.sessionId = sessionId; - const { - postBoxKey, - factorKey, - userInfo, - tssShareIndex, - tssPubKey, - postboxKeyNodeIndexes - } = this.state; - if (!this.state.factorKey) { - throw errors.factorKeyNotPresent("factorKey not present in state when creating session."); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey, { - accountIndex: this.state.accountIndex - }); - if (!postBoxKey || !factorKey || !tssShare || !tssPubKey || !userInfo) { - throw errors.userNotLoggedIn(); - } - const payload = { - postBoxKey, - postboxKeyNodeIndexes: postboxKeyNodeIndexes || [], - factorKey: factorKey === null || factorKey === void 0 ? void 0 : factorKey.toString("hex"), - tssShareIndex: tssShareIndex, - tssPubKey: Buffer.from(tssPubKey).toString("hex"), - signatures: this.signatures, - userInfo - }; - await this.sessionManager.createSession(payload); - // to accommodate async storage - await this.currentStorage.set("sessionId", sessionId); - } catch (err) { - log.error("error creating session", err); - } - } - async isMetadataPresent(privateKey) { - var _this$tKey3; - const privateKeyBN = new (external_bn_js_default())(privateKey, "hex"); - const metadata = await ((_this$tKey3 = this.tKey) === null || _this$tKey3 === void 0 ? void 0 : _this$tKey3.readMetadata(privateKeyBN)); - if (metadata && metadata.message !== "KEY_NOT_FOUND") { - return true; - } - return false; - } - async checkIfFactorKeyValid(factorKey) { - var _this$tKey4; - this.checkReady(); - const factorKeyMetadata = await ((_this$tKey4 = this.tKey) === null || _this$tKey4 === void 0 ? void 0 : _this$tKey4.readMetadata(factorKey)); - if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND" || factorKeyMetadata.message === "SHARE_DELETED") { - return false; - } - return true; - } - async getFactorKeyMetadata(factorKey) { - var _this$tKey5; - this.checkReady(); - const factorKeyMetadata = await ((_this$tKey5 = this.tKey) === null || _this$tKey5 === void 0 ? void 0 : _this$tKey5.readMetadata(factorKey)); - if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND") { - throw errors.noMetadataFound(); - } - return common_types_namespaceObject.ShareStore.fromJSON(factorKeyMetadata); - } - - /** - * Copies a share and makes it available under a new factor key. If no share - * exists at the specified share index, a new share is created. - * @param newFactorTSSIndex - The index of the share to copy. - * @param newFactorPub - The public key of the new share. - */ - async copyOrCreateShare(newFactorTSSIndex, newFactorPub) { - this.checkReady(); - if (!this.tKey.metadata.factorPubs || !Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag])) { - throw errors.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key."); - } - if (!this.tKey.metadata.factorEncs || typeof this.tKey.metadata.factorEncs[this.tKey.tssTag] !== "object") { - throw errors.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key."); - } - if (!this.state.factorKey) { - throw errors.factorKeyNotPresent("factorKey not present in state when copying or creating a share."); - } - if (VALID_SHARE_INDICES.indexOf(newFactorTSSIndex) === -1) { - throw errors.newShareIndexInvalid(`Invalid share type provided (${newFactorTSSIndex}). Valid share types are ${VALID_SHARE_INDICES}.`); - } - if (this.tKey.metadata.factorPubs[this.tKey.tssTag].length >= MAX_FACTORS) { - throw errors.maximumFactorsReached(`The maximum number of allowable factors (${MAX_FACTORS}) has been reached.`); - } - - // Generate new share. - await this.tkey.addFactorPub({ - existingFactorKey: this.state.factorKey, - authSignatures: this.signatures, - newFactorPub, - newTSSIndex: newFactorTSSIndex, - refreshShares: this.state.tssShareIndex !== newFactorTSSIndex // Refresh shares if we have a new factor key index. - }); - } - async getMetadataShare() { - try { - var _this$tKey6, _this$tKey7; - const polyId = (_this$tKey6 = this.tKey) === null || _this$tKey6 === void 0 ? void 0 : _this$tKey6.metadata.getLatestPublicPolynomial().getPolynomialID(); - const shares = (_this$tKey7 = this.tKey) === null || _this$tKey7 === void 0 ? void 0 : _this$tKey7.shares[polyId]; - let share = null; - for (const shareIndex in shares) { - if (shareIndex !== SOCIAL_TKEY_INDEX.toString()) { - share = shares[shareIndex]; - } - } - if (!share) { - throw errors.noMetadataShareFound(); - } - return share; - } catch (err) { - log.error("create device share error", err); - throw errors["default"](err.message); - } - } - async deleteMetadataShareBackup(factorKey) { - var _this$tkey, _this$tkey2; - await this.tKey.addLocalMetadataTransitions({ - input: [{ - message: common_types_namespaceObject.SHARE_DELETED, - dateAdded: Date.now() - }], - privKey: [factorKey] - }); - if (!((_this$tkey = this.tkey) !== null && _this$tkey !== void 0 && _this$tkey.manualSync)) await ((_this$tkey2 = this.tkey) === null || _this$tkey2 === void 0 ? void 0 : _this$tkey2.syncLocalMetadataTransitions()); - } - async backupMetadataShare(factorKey) { - var _this$tKey8, _this$tkey3, _this$tkey4; - const metadataShare = await this.getMetadataShare(); - - // Set metadata for factor key backup - await ((_this$tKey8 = this.tKey) === null || _this$tKey8 === void 0 ? void 0 : _this$tKey8.addLocalMetadataTransitions({ - input: [metadataShare], - privKey: [factorKey] - })); - if (!((_this$tkey3 = this.tkey) !== null && _this$tkey3 !== void 0 && _this$tkey3.manualSync)) await ((_this$tkey4 = this.tkey) === null || _this$tkey4 === void 0 ? void 0 : _this$tkey4.syncLocalMetadataTransitions()); - } - async addFactorDescription(args) { - var _this$tKey9; - const { - factorKey, - shareDescription, - updateMetadata - } = args; - let { - additionalMetadata - } = args; - if (!additionalMetadata) { - additionalMetadata = {}; - } - const { - tssIndex - } = await this.tKey.getTSSShare(factorKey); - const factorPoint = (0,tss_namespaceObject.getPubKeyPoint)(factorKey, tss_namespaceObject.factorKeyCurve); - const factorPub = factorPoint.toSEC1(tss_namespaceObject.factorKeyCurve, true).toString("hex"); - const params = objectSpread2_default()(objectSpread2_default()({ - module: shareDescription, - dateAdded: Date.now() - }, additionalMetadata), {}, { - tssShareIndex: tssIndex - }); - await ((_this$tKey9 = this.tKey) === null || _this$tKey9 === void 0 ? void 0 : _this$tKey9.addShareDescription(factorPub, JSON.stringify(params), updateMetadata)); - } - resetState() { - this.ready = false; - this.tkey = null; - this.torusSp = null; - this.storageLayer = null; - this.state = { - accountIndex: 0 - }; - } - _getPostBoxKey(result) { - return torus_js_namespaceObject.Torus.getPostboxKey(result); - } - _getSignatures(sessionData) { - // There is a check in torus.js which pushes undefined to session data in case - // that particular node call fails. - // and before returning we are not filtering out undefined vals in torus.js - // TODO: fix this in torus.js - return sessionData.filter(session => !!session).map(session => JSON.stringify({ - data: session.token, - sig: session.signature - })); - } - isNodejsOrRN(params) { - const mode = params; - return mode === "nodejs" || mode === "react-native"; - } - async featureRequest() { - const accessUrl = constants_namespaceObject.SIGNER_MAP[this.options.web3AuthNetwork]; - const accessRequest = { - network: this.options.web3AuthNetwork, - client_id: this.options.web3AuthClientId, - is_mpc_core_kit: "true", - enable_gating: "true", - session_time: this.options.sessionTime.toString() - }; - const url = new URL(`${accessUrl}/api/feature-access`); - url.search = new URLSearchParams(accessRequest).toString(); - const result = await fetch(url); - if (result.status !== 200) { - // reset state on no mpc access - this.resetState(); - const errMessage = await result.json(); - throw errors["default"](errMessage.error); - } - return result.json(); - } - getAccountNonce() { - return this.tkey.computeAccountNonce(this.state.accountIndex); - } - async sign_ECDSA_secp256k1(data, hashed = false, precomputedTssClient) { - const executeSign = async (client, serverCoeffs, hashedData, signatures) => { - const { - r, - s, - recoveryParam - } = await client.sign(hashedData.toString("base64"), true, "", "keccak256", { - signatures - }); - // skip await cleanup - client.cleanup({ - signatures, - server_coeffs: serverCoeffs - }); - return { - v: recoveryParam, - r: scalarBNToBufferSEC1(r), - s: scalarBNToBufferSEC1(s) - }; - }; - if (!hashed) { - data = (0,metadata_helpers_namespaceObject.keccak256)(data); - } - const isAlreadyPrecomputed = (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.client) && (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.serverCoeffs); - const { - client, - serverCoeffs - } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); - const { - signatures - } = this; - if (!signatures) { - throw errors.signaturesNotPresent(); - } - try { - return await executeSign(client, serverCoeffs, data, signatures); - } catch (error) { - if (!isAlreadyPrecomputed) { - throw error; - } - // Retry with new client if precomputed client failed, this is to handle the case when precomputed session might have expired - const { - client: newClient, - serverCoeffs: newServerCoeffs - } = await this.precompute_secp256k1(); - const result = await executeSign(newClient, newServerCoeffs, data, signatures); - return result; - } - } - async sign_ed25519(data, hashed = false) { - if (hashed) { - throw errors["default"]("hashed data not supported for ed25519"); - } - const nodeDetails = (0,fnd_base_namespaceObject.fetchLocalConfig)(this.options.web3AuthNetwork, "ed25519"); - if (!nodeDetails.torusNodeTSSEndpoints) { - throw errors["default"]("could not fetch tss node endpoints"); - } - - // Endpoints must end with backslash, but URLs returned by - // `fetch-node-details` don't have it. - const ED25519_ENDPOINTS = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ - index: nodeDetails.torusIndexes[i], - url: `${ep}/` - })); - - // Select endpoints and derive party indices. - const serverThreshold = Math.floor(ED25519_ENDPOINTS.length / 2) + 1; - const endpoints = sampleEndpoints(ED25519_ENDPOINTS, serverThreshold); - const serverXCoords = endpoints.map(x => x.index); - const clientXCoord = Math.max(...endpoints.map(ep => ep.index)) + 1; - - // Derive share coefficients for flat hierarchy. - const ec = new elliptic_wrapper_namespaceObject.Ed25519Curve(); - const { - serverCoefficients, - clientCoefficient - } = deriveShareCoefficients(ec, serverXCoords, clientXCoord, this.state.tssShareIndex); - - // Get pub key. - const tssPubKey = await this.getPubKey(); - const tssPubKeyPoint = ec.keyFromPublic(tssPubKey).getPublic(); - - // Get client key share and adjust by coefficient. - if (this.state.accountIndex !== 0) { - throw errors["default"]("Account index not supported for ed25519"); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey); - const clientShareAdjusted = tssShare.mul(clientCoefficient).umod(ec.n); - const clientShareAdjustedHex = ec.scalarToBuffer(clientShareAdjusted, Buffer).toString("hex"); - - // Generate session identifier. - const tssNonce = this.getTssNonce(); - const sessionNonce = generateSessionNonce(); - const session = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, sessionNonce); - - // Run signing protocol. - const serverURLs = endpoints.map(x => x.url); - const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); - const serverCoefficientsHex = serverCoefficients.map(c => ec.scalarToBuffer(c, Buffer).toString("hex")); - const signature = await (0,tss_frost_client_namespaceObject.sign)(this.wasmLib, session, this.signatures, serverXCoords, serverURLs, clientXCoord, clientShareAdjustedHex, pubKeyHex, data, serverCoefficientsHex); - log.info(`signature: ${signature}`); - return Buffer.from(signature, "hex"); - } - async loadTssWasm() { - if (this.wasmLib) return this.wasmLib; - if (typeof this._tssLib.load === "function") { - // dont wait for wasm to be loaded, we can reload it during signing if not loaded - return this._tssLib.load(); - } else if (this._tssLib.lib) { - return this._tssLib.lib; - } - } -} -;// CONCATENATED MODULE: ./src/index.ts - - - - - - -module.exports = __webpack_exports__; -/******/ })() -; \ No newline at end of file diff --git a/package/dist/mpcCoreKit.esm.js b/package/dist/mpcCoreKit.esm.js deleted file mode 100644 index 39f812dd..00000000 --- a/package/dist/mpcCoreKit.esm.js +++ /dev/null @@ -1,2209 +0,0 @@ -import { TORUS_SAPPHIRE_NETWORK, KEY_TYPE, SIGNER_MAP } from '@toruslabs/constants'; -import _defineProperty from '@babel/runtime/helpers/defineProperty'; -import { ShareSerializationModule } from '@tkey/share-serialization'; -import BN from 'bn.js'; -import _objectSpread from '@babel/runtime/helpers/objectSpread2'; -import { secp256k1, Point, KeyType, ShareStore, SHARE_DELETED } from '@tkey/common-types'; -import { getPubKeyPoint, factorKeyCurve, lagrangeInterpolation, TSSTorusServiceProvider, TKeyTSS } from '@tkey/tss'; -export { factorKeyCurve } from '@tkey/tss'; -import { keccak256, Torus } from '@toruslabs/torus.js'; -import { generatePrivateBN, CoreError } from '@tkey/core'; -import { TorusStorageLayer } from '@tkey/storage-layer-torus'; -import { UX_MODE, AGGREGATE_VERIFIER, TORUS_METHOD } from '@toruslabs/customauth'; -import { Ed25519Curve } from '@toruslabs/elliptic-wrapper'; -import { fetchLocalConfig } from '@toruslabs/fnd-base'; -import { keccak256 as keccak256$1 } from '@toruslabs/metadata-helpers'; -import { SessionManager } from '@toruslabs/session-manager'; -import { setupSockets, getDKLSCoeff, Client } from '@toruslabs/tss-client'; -import { sign } from '@toruslabs/tss-frost-client'; -import bowser from 'bowser'; -import { eddsa, ec } from 'elliptic'; -import { safeatob } from '@toruslabs/openlogin-utils'; -import loglevel from 'loglevel'; - -const WEB3AUTH_NETWORK = { - MAINNET: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET, - DEVNET: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_DEVNET -}; -const USER_PATH = { - NEW: "NewAccount", - EXISTING: "ExistingAccount", - REHYDRATE: "RehydrateAccount", - RECOVER: "RecoverAccount" -}; -let FactorKeyTypeShareDescription = /*#__PURE__*/function (FactorKeyTypeShareDescription) { - FactorKeyTypeShareDescription["HashedShare"] = "hashedShare"; - FactorKeyTypeShareDescription["SecurityQuestions"] = "tssSecurityQuestions"; - FactorKeyTypeShareDescription["DeviceShare"] = "deviceShare"; - FactorKeyTypeShareDescription["SeedPhrase"] = "seedPhrase"; - FactorKeyTypeShareDescription["PasswordShare"] = "passwordShare"; - FactorKeyTypeShareDescription["SocialShare"] = "socialShare"; - FactorKeyTypeShareDescription["Other"] = "Other"; - return FactorKeyTypeShareDescription; -}({}); -const DELIMITERS = { - Delimiter1: "\u001c", - Delimiter2: "\u0015", - Delimiter3: "\u0016", - Delimiter4: "\u0017" -}; -const ERRORS = { - TKEY_SHARES_REQUIRED: "required more shares", - INVALID_BACKUP_SHARE: "invalid backup share" -}; -const SOCIAL_FACTOR_INDEX = 1; - -/** - * Defines the TSS Share Index in a simplified way for better implementation. - **/ -let TssShareType = /*#__PURE__*/function (TssShareType) { - TssShareType[TssShareType["DEVICE"] = 2] = "DEVICE"; - TssShareType[TssShareType["RECOVERY"] = 3] = "RECOVERY"; - return TssShareType; -}({}); -const VALID_SHARE_INDICES = [TssShareType.DEVICE, TssShareType.RECOVERY]; -const SCALAR_LEN = 32; // Length of secp256k1 scalar in bytes. -const FIELD_ELEMENT_HEX_LEN = 32 * 2; // Length of secp256k1 field element in hex form. - -const MAX_FACTORS = 10; // Maximum number of factors that can be added to an account. -const SOCIAL_TKEY_INDEX = 1; - -/** - * Fix the prototype chain of the error - * - * Use Object.setPrototypeOf - * Support ES6 environments - * - * Fallback setting __proto__ - * Support IE11+, see https://docs.microsoft.com/en-us/scripting/javascript/reference/javascript-version-information - */ -function fixProto(target, prototype) { - const { - setPrototypeOf - } = Object; - if (setPrototypeOf) { - setPrototypeOf(target, prototype); - } else { - // eslint-disable-next-line no-proto, @typescript-eslint/no-explicit-any - target.__proto__ = prototype; - } -} - -/** - * Capture and fix the error stack when available - * - * Use Error.captureStackTrace - * Support v8 environments - */ -function fixStack(target, fn = target.constructor) { - const { - captureStackTrace - } = Error; - if (captureStackTrace) { - captureStackTrace(target, fn); - } -} - -// copy from https://github.com/microsoft/TypeScript/blob/main/lib/lib.es2022.error.d.ts -// avoid typescript isue https://github.com/adriengibrat/ts-custom-error/issues/81 - -/** - * Allows to easily extend a base class to create custom applicative errors. - * - * example: - * ``` - * class HttpError extends CustomError { - * public constructor( - * public code: number, - * message?: string, - * cause?: Error, - * ) { - * super(message, { cause }) - * } - * } - * - * new HttpError(404, 'Not found') - * ``` - */ -class CustomError extends Error { - constructor(message, options) { - super(message, options); - // set error name as constructor name, make it not enumerable to keep native Error behavior - // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target#new.target_in_constructors - // see https://github.com/adriengibrat/ts-custom-error/issues/30 - _defineProperty(this, "name", void 0); - Object.defineProperty(this, "name", { - value: new.target.name, - enumerable: false, - configurable: true - }); - // fix the extended error prototype chain - // because typescript __extends implementation can't - // see https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work - fixProto(this, new.target.prototype); - // try to remove contructor from stack trace - fixStack(this); - } -} -class AbstractCoreKitError extends CustomError { - constructor(code, message) { - // takes care of stack and proto - super(message); - _defineProperty(this, "code", void 0); - _defineProperty(this, "message", void 0); - this.code = code; - this.message = message || ""; - // Set name explicitly as minification can mangle class names - Object.defineProperty(this, "name", { - value: "TkeyError" - }); - } - toJSON() { - return { - name: this.name, - code: this.code, - message: this.message - }; - } - toString() { - return JSON.stringify(this.toJSON()); - } -} - -/** - * CoreKitError, extension for Error using CustomError - * - * Usage: - * 1. throw CoreKitError.factorKeyNotPresent("Required factor key missing in the operation."); // Use a predefined method to throw a common error - * 2. throw CoreKitError.fromCode(1001); // Throw an error using a code for a common error - * 3. throw new CoreKitError(1102, "'tkey' instance has not been initialized."); // Throw a specific error with a custom message - * - * Guide: - * 1000 - Configuration errors - * 1100 - TSS and key management errors - * 1200 - Factor key and authentication errors - * 1300 - Initialization and session management - */ -class CoreKitError extends AbstractCoreKitError { - constructor(code, message) { - super(code, message); - Object.defineProperty(this, "name", { - value: "CoreKitError" - }); - } - static fromCode(code, extraMessage = "") { - return new CoreKitError(code, `${CoreKitError.messages[code]} ${extraMessage}`); - } - static default(extraMessage = "") { - return new CoreKitError(1000, `${CoreKitError.messages[1000]} ${extraMessage}`); - } - - // Configuration errors - static chainConfigInvalid(extraMessage = "") { - return CoreKitError.fromCode(1001, extraMessage); - } - static clientIdInvalid(extraMessage = "") { - return CoreKitError.fromCode(1002, extraMessage); - } - static storageTypeUnsupported(extraMessage = "") { - return CoreKitError.fromCode(1003, extraMessage); - } - static oauthLoginUnsupported(extraMessage = "") { - return CoreKitError.fromCode(1004, extraMessage); - } - static noValidStorageOptionFound(extraMessage = "") { - return CoreKitError.fromCode(1005, extraMessage); - } - static noDataFoundInStorage(extraMessage = "") { - return CoreKitError.fromCode(1006, extraMessage); - } - static invalidConfig(extraMessage = "") { - return CoreKitError.fromCode(1007, extraMessage); - } - - // TSS and key management errors - static tssLibRequired(extraMessage = "") { - return CoreKitError.fromCode(1101, extraMessage); - } - static tkeyInstanceUninitialized(extraMessage = "") { - return CoreKitError.fromCode(1102, extraMessage); - } - static duplicateTssIndex(extraMessage = "") { - return CoreKitError.fromCode(1103, extraMessage); - } - static nodeDetailsRetrievalFailed(extraMessage = "") { - return CoreKitError.fromCode(1104, extraMessage); - } - static prefetchValueExceeded(extraMessage = "") { - return CoreKitError.fromCode(1105, extraMessage); - } - static invalidTorusLoginResponse(extraMessage = "") { - return CoreKitError.fromCode(1106, extraMessage); - } - static invalidTorusAggregateLoginResponse(extraMessage = "") { - return CoreKitError.fromCode(1107, extraMessage); - } - static unsupportedRedirectMethod(extraMessage = "") { - return CoreKitError.fromCode(1108, extraMessage); - } - static postBoxKeyMissing(extraMessage = "") { - return CoreKitError.fromCode(1109, extraMessage); - } - static tssShareTypeIndexMissing(extraMessage = "") { - return CoreKitError.fromCode(1110, extraMessage); - } - static tssPublicKeyOrEndpointsMissing(extraMessage = "") { - return CoreKitError.fromCode(1111, extraMessage); - } - static activeSessionNotFound(extraMessage = "") { - return CoreKitError.fromCode(1112, extraMessage); - } - static tssNoncesMissing(extraMessage = "") { - return CoreKitError.fromCode(1113, extraMessage); - } - static tssKeyImportNotAllowed(extraMessage = "") { - return CoreKitError.fromCode(1114, extraMessage); - } - - // Factor key and authentication errors - static factorKeyNotPresent(extraMessage = "") { - return CoreKitError.fromCode(1201, extraMessage); - } - static factorKeyAlreadyExists(extraMessage = "") { - return CoreKitError.fromCode(1202, extraMessage); - } - static mfaAlreadyEnabled(extraMessage = "") { - return CoreKitError.fromCode(1203, extraMessage); - } - static cannotDeleteLastFactor(extraMessage = "") { - return CoreKitError.fromCode(1204, extraMessage); - } - static factorInUseCannotBeDeleted(extraMessage = "") { - return CoreKitError.fromCode(1205, extraMessage); - } - static userNotLoggedIn(extraMessage = "") { - return CoreKitError.fromCode(1206, extraMessage); - } - static providedFactorKeyInvalid(extraMessage = "") { - return CoreKitError.fromCode(1207, extraMessage); - } - static factorEncsMissing(extraMessage = "") { - return CoreKitError.fromCode(1208, extraMessage); - } - static noMetadataFound(extraMessage = "") { - return CoreKitError.fromCode(1209, extraMessage); - } - static newShareIndexInvalid(extraMessage = "") { - return CoreKitError.fromCode(1210, extraMessage); - } - static maximumFactorsReached(extraMessage = "") { - return CoreKitError.fromCode(1211, extraMessage); - } - static noMetadataShareFound(extraMessage = "") { - return CoreKitError.fromCode(1212, extraMessage); - } - static signaturesNotPresent(extraMessage = "") { - return CoreKitError.fromCode(1213, extraMessage); - } - static factorPubsMissing(extraMessage = "") { - return CoreKitError.fromCode(1214, extraMessage); - } - - // Initialization and session management - static commitChangesBeforeMFA(extraMessage = "") { - return CoreKitError.fromCode(1301, extraMessage); - } - static mpcCoreKitNotInitialized(extraMessage = "") { - return CoreKitError.fromCode(1302, extraMessage); - } -} -_defineProperty(CoreKitError, "messages", { - // Configuration errors - 1001: "You must specify a valid eip155 chain configuration in the options.", - 1002: "You must specify a web3auth clientId.", - 1003: "Unsupported storage type in this UX mode.", - 1004: "OAuth login is NOT supported in this UX mode.", - 1005: "No valid storage option found.", - 1006: "No data found in storage.", - 1007: "Invalid config.", - // TSS and key management errors - 1101: "'tssLib' is required when running in this UX mode.", - 1102: "'tkey' instance has not been initialized.", - 1103: "Duplicate TSS index found. Ensure that each TSS index is unique.", - 1104: "Failed to retrieve node details. Please check your network connection and try again.", - 1105: "The prefetch TSS public keys exceeds the maximum allowed limit of 3.", - 1106: "Invalid 'TorusLoginResponse' data provided.", - 1107: "Invalid 'TorusAggregateLoginResponse' data provided.", - 1108: "Unsupported method type encountered in redirect result.", - 1109: "OAuthKey not present in state.", - 1110: "TSS Share Type (Index) not present in state when getting current factor key.", - 1111: "'tssPubKey' or 'torusNodeTSSEndpoints' are missing.", - 1112: "No active session found.", - 1113: "tssNonces not present in metadata when getting tss nonce.", - 1114: "A TSS key cannot be imported for an existing user who already has a key configured.", - // Factor key and authentication errors - 1201: "factorKey not present in state when required.", - 1202: "A factor with the same key already exists.", - 1203: "MFA is already enabled.", - 1204: "Cannot delete the last remaining factor as at least one factor is required.", - 1205: "The factor currently in use cannot be deleted.", - 1206: "User is not logged in.", - 1207: "Provided factor key is invalid.", - 1208: "'factorEncs' mpt [resemt].", - 1209: "No metadata found for the provided factor key. Consider resetting your account if this error persists.", - 1210: "The new share index is not valid. It must be one of the valid share indices.", - 1211: "The maximum number of allowable factors (10) has been reached.", - 1212: "No metadata share found in the current polynomial.", - 1213: "No signatures found.", - 1214: "Factor public keys not present", - // Initialization and session management - 1301: "The 'CommitChanges' method must be called before enabling MFA.", - 1302: "The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations." -}); - -class MemoryStorage { - constructor() { - _defineProperty(this, "_store", {}); - } - getItem(key) { - return this._store[key] || null; - } - setItem(key, value) { - this._store[key] = value; - } - removeItem(key) { - delete this._store[key]; - } - clear() { - this._store = {}; - } -} -class AsyncStorage { - constructor(storeKey, storage) { - _defineProperty(this, "storage", void 0); - _defineProperty(this, "_storeKey", void 0); - this.storage = storage; - this._storeKey = storeKey; - } - async toJSON() { - const result = await this.storage.getItem(this._storeKey); - if (!result) { - throw CoreKitError.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`); - } - return result; - } - async resetStore() { - const currStore = await this.getStore(); - await this.storage.setItem(this._storeKey, JSON.stringify({})); - return currStore; - } - async getStore() { - return JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - } - async get(key) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - return store[key]; - } - async set(key, value) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - store[key] = value; - await this.storage.setItem(this._storeKey, JSON.stringify(store)); - } - async remove(key) { - const store = JSON.parse((await this.storage.getItem(this._storeKey)) || "{}"); - delete store[key]; - await this.storage.setItem(this._storeKey, JSON.stringify(store)); - } -} - -/** - * Converts a mnemonic to a BN. - * @param shareMnemonic - The mnemonic to convert. - * @returns A BN respective to your mnemonic - */ -function mnemonicToKey(shareMnemonic) { - const factorKey = ShareSerializationModule.deserializeMnemonic(shareMnemonic); - return factorKey.toString("hex"); -} - -/** - * Converts a BN to a mnemonic. - * @param shareBN - The BN to convert. - * @returns A mnemonic respective to your BN - */ -function keyToMnemonic(shareHex) { - const shareBN = new BN(shareHex, "hex"); - const mnemonic = ShareSerializationModule.serializeMnemonic(shareBN); - return mnemonic; -} - -class TssSecurityQuestionStore { - constructor(shareIndex, factorPublicKey, question) { - _defineProperty(this, "shareIndex", void 0); - _defineProperty(this, "factorPublicKey", void 0); - _defineProperty(this, "question", void 0); - this.shareIndex = shareIndex; - this.factorPublicKey = factorPublicKey; - this.question = question; - } - static fromJSON(json) { - const { - shareIndex, - factorPublicKey, - question - } = json; - return new TssSecurityQuestionStore(shareIndex, factorPublicKey, question); - } - toJSON() { - return { - shareIndex: this.shareIndex, - factorPublicKey: this.factorPublicKey, - question: this.question - }; - } -} -class TssSecurityQuestion { - constructor() { - _defineProperty(this, "storeDomainName", "tssSecurityQuestion"); - } - async setSecurityQuestion(params) { - const { - mpcCoreKit, - question, - answer, - description - } = params; - let { - shareType - } = params; - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - if (!question || !answer) { - throw new Error("question and answer are required"); - } - const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; - - // default using recovery index - if (!shareType) { - shareType = TssShareType.RECOVERY; - } else if (!VALID_SHARE_INDICES.includes(shareType)) { - throw new Error(`invalid share type: must be one of ${VALID_SHARE_INDICES}`); - } - // Check for existing security question - const tkey = mpcCoreKit.tKey; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (storeDomain && storeDomain.question) { - throw new Error("Security question already exists"); - } - - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; - let hash = keccak256(Buffer.from(answer + pubKey, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new BN(hash, "hex"); - const descriptionFinal = _objectSpread({ - question - }, description); - await mpcCoreKit.createFactor({ - factorKey: factorKeyBN, - shareType, - shareDescription: FactorKeyTypeShareDescription.SecurityQuestions, - additionalMetadata: descriptionFinal - }); - // set store domain - const tkeyPt = getPubKeyPoint(factorKeyBN, factorKeyCurve); - const factorPub = tkeyPt.toSEC1(factorKeyCurve, true).toString("hex"); - const storeData = new TssSecurityQuestionStore(shareType.toString(), factorPub, question); - tkey.metadata.setGeneralStoreDomain(domainKey, storeData.toJSON()); - - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - return factorKeyBN.toString("hex").padStart(64, "0"); - } - async changeSecurityQuestion(params) { - const { - mpcCoreKit, - newQuestion, - newAnswer, - answer - } = params; - if (!newQuestion || !newAnswer || !answer) { - throw new Error("question and answer are required"); - } - // Check for existing security question - const tkey = mpcCoreKit.tKey; - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; - const domainKey = `${this.storeDomainName}:${params.mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - const preHash = answer + pubKey; - let hash = keccak256(Buffer.from(preHash, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new BN(hash, "hex"); - const factorKeyPt = getPubKeyPoint(factorKeyBN, factorKeyCurve); - if (factorKeyPt.toSEC1(factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { - throw new Error("Invalid answer"); - } - - // create new factor key - const prenewHash = newAnswer + pubKey; - let newHash = keccak256(Buffer.from(prenewHash, "utf8")); - newHash = newHash.startsWith("0x") ? newHash.slice(2) : newHash; - const newAnswerBN = new BN(newHash, "hex"); - const newFactorPt = Point.fromScalar(newAnswerBN, factorKeyCurve); - await mpcCoreKit.createFactor({ - factorKey: newAnswerBN, - shareType: parseInt(store.shareIndex), - shareDescription: FactorKeyTypeShareDescription.SecurityQuestions - }); - - // update mpcCoreKit state to use new factor key during change password if mpc factor key is security question factor - if (mpcCoreKit.state.factorKey.eq(factorKeyBN)) { - await mpcCoreKit.inputFactorKey(newAnswerBN); - } - // delete after create factor to prevent last key issue - // delete old factor key and device share - await mpcCoreKit.deleteFactor(factorKeyPt, factorKeyBN); - store.factorPublicKey = newFactorPt.toSEC1(factorKeyCurve, true).toString("hex"); - store.question = newQuestion; - tkey.metadata.setGeneralStoreDomain(domainKey, store.toJSON()); - - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - } - - // Should we check with answer before deleting? - async deleteSecurityQuestion(mpcCoreKit, deleteFactorKey = true) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const tkey = mpcCoreKit.tKey; - if (deleteFactorKey) { - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - if (store.factorPublicKey) { - await mpcCoreKit.deleteFactor(Point.fromSEC1(factorKeyCurve, store.factorPublicKey)); - } - } - tkey.metadata.deleteGeneralStoreDomain(domainKey); - // check for auto commit - if (!tkey.manualSync) await tkey._syncShareMetadata(); - } - async recoverFactor(mpcCoreKit, answer) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - if (!answer) { - throw new Error("question and answer are required"); - } - const tkey = mpcCoreKit.tKey; - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - - // const pubKey = Point.fromTkeyPoint(mpcCoreKit.tKey.getTSSPub()).toBufferSEC1(true).toString("hex"); - const pubKey = tkey.getKeyDetails().pubKey.toSEC1(secp256k1, true).toString("hex") + tkey.tssTag; - let hash = keccak256(Buffer.from(answer + pubKey, "utf8")); - hash = hash.startsWith("0x") ? hash.slice(2) : hash; - const factorKeyBN = new BN(hash, "hex"); - const factorKeyPt = Point.fromScalar(factorKeyBN, factorKeyCurve); - if (factorKeyPt.toSEC1(factorKeyCurve, true).toString("hex") !== store.factorPublicKey) { - throw new Error("Invalid answer"); - } - return hash; - } - getQuestion(mpcCoreKit) { - if (!mpcCoreKit.tKey) { - throw new Error("Tkey not initialized, call init first."); - } - const tkey = mpcCoreKit.tKey; - const domainKey = `${this.storeDomainName}:${mpcCoreKit.tKey.tssTag}`; - const storeDomain = tkey.metadata.getGeneralStoreDomain(domainKey); - if (!storeDomain || !storeDomain.question) { - throw new Error("Security question does not exists"); - } - const store = TssSecurityQuestionStore.fromJSON(storeDomain); - return store.question; - } -} - -// TODO: move the types to a base class for both dkls and frost in future - -let COREKIT_STATUS = /*#__PURE__*/function (COREKIT_STATUS) { - COREKIT_STATUS["NOT_INITIALIZED"] = "NOT_INITIALIZED"; - COREKIT_STATUS["INITIALIZED"] = "INITIALIZED"; - COREKIT_STATUS["REQUIRED_SHARE"] = "REQUIRED_SHARE"; - COREKIT_STATUS["LOGGED_IN"] = "LOGGED_IN"; - return COREKIT_STATUS; -}({}); - -const ed25519 = () => { - return new eddsa("ed25519"); -}; - -/** - * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. - */ -function randomBytes(bytesLength = 32) { - // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. - const crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : undefined; - if (crypto && typeof crypto.getRandomValues === "function") { - return crypto.getRandomValues(new Uint8Array(bytesLength)); - } - throw new Error("crypto.getRandomValues must be defined"); -} -function generateEd25519Seed() { - return Buffer.from(randomBytes(32)); -} -const generateFactorKey = () => { - const keyPair = factorKeyCurve.genKeyPair(); - const pub = Point.fromElliptic(keyPair.getPublic()); - return { - private: keyPair.getPrivate(), - pub - }; -}; -const generateTSSEndpoints = (tssNodeEndpoints, parties, clientIndex, nodeIndexes) => { - const endpoints = []; - const tssWSEndpoints = []; - const partyIndexes = []; - const nodeIndexesReturned = []; - for (let i = 0; i < parties; i++) { - partyIndexes.push(i); - if (i === clientIndex) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - endpoints.push(null); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - tssWSEndpoints.push(null); - } else { - const targetNodeIndex = nodeIndexes[i] - 1; - endpoints.push(tssNodeEndpoints[targetNodeIndex]); - tssWSEndpoints.push(new URL(tssNodeEndpoints[targetNodeIndex]).origin); - nodeIndexesReturned.push(nodeIndexes[i]); - } - } - return { - endpoints, - tssWSEndpoints, - partyIndexes, - nodeIndexesReturned - }; -}; -async function storageAvailable(storage) { - try { - const x = "__storage_test__"; - const rand = Math.random().toString(); - await storage.setItem(x, rand); - const value = await storage.getItem(rand); - if (value !== rand) { - throw new Error("Value mismatch"); - } - return true; - } catch (error) { - return false; - } -} - -// TODO think which conversion functions to keep and how to export them. - -/** - * Parses a JWT Token, without verifying the signature. - * @param token - JWT Token - * @returns Extracted JSON payload from the token - */ -function parseToken(token) { - const payload = token.split(".")[1]; - return JSON.parse(safeatob(payload)); -} -const getHashedPrivateKey = (postboxKey, clientId) => { - const uid = `${postboxKey}_${clientId}`; - let hashUid = keccak256(Buffer.from(uid, "utf8")); - hashUid = hashUid.replace("0x", ""); - return new BN(hashUid, "hex"); -}; - -/** - * Converts an elliptic curve scalar represented by a BN to a byte buffer in SEC1 - * format (i.e., padded to maximum length). - * @param s - The scalar of type BN. - * @returns The SEC1 encoded representation of the scalar. - */ -function scalarBNToBufferSEC1(s) { - return s.toArrayLike(Buffer, "be", SCALAR_LEN); -} -function sampleEndpoints(endpoints, n) { - if (n > endpoints.length) { - throw new Error("Invalid number of endpoints"); - } - const shuffledEndpoints = endpoints.slice().sort(() => Math.random() - 0.5); - return shuffledEndpoints.slice(0, n).sort((a, b) => a.index - b.index); -} -function fraction(curve, nom, denom) { - return nom.mul(denom.invm(curve.n)).umod(curve.n); -} -function lagrangeCoefficient(curve, xCoords, targetCoeff, targetX) { - return xCoords.filter((_, i) => i !== targetCoeff).reduce((prev, cur) => { - const frac = fraction(curve, targetX.sub(cur), xCoords[targetCoeff].sub(cur)); - return prev.mul(frac).umod(curve.n); - }, new BN(1)); -} -function lagrangeCoefficients(curve, xCoords, targetX) { - const xCoordsBN = xCoords.map(i => new BN(i)); - const targetXBN = new BN(targetX); - return xCoordsBN.map((_value, i) => lagrangeCoefficient(curve, xCoordsBN, i, targetXBN)); -} -const SERVER_XCOORD_L1 = 1; -const CLIENT_XCOORD_L1 = 2; - -/** - * Derive share coefficients for client and servers. - * - * @param curve - The curve to be used. - * @param serverXCoords - The source and target x-coordinates of the selected - * servers. - * @param targetClientXCoord - The target x-coordinate of the client. - * @param sourceClientXCoord - The source x-coordinate of the client in the L1 - * hierarchy. - * @returns - The share coefficients for the client and the servers. - */ -function deriveShareCoefficients(ec, serverXCoords, targetClientXCoord, sourceClientXCoord = CLIENT_XCOORD_L1) { - const l1Coefficients = lagrangeCoefficients(ec, [SERVER_XCOORD_L1, sourceClientXCoord], 0); - const l2Coefficients = lagrangeCoefficients(ec, serverXCoords, 0); - if (serverXCoords.includes(targetClientXCoord)) { - throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${serverXCoords} ${targetClientXCoord}`); - } - const targetCoefficients = lagrangeCoefficients(ec, [targetClientXCoord, ...serverXCoords], 0); - - // Derive server coefficients. - const serverCoefficients = l2Coefficients.map((coeff, i) => fraction(ec, l1Coefficients[0].mul(coeff), targetCoefficients[i + 1])); - - // Derive client coefficient. - const clientCoefficient = fraction(ec, l1Coefficients[1], targetCoefficients[0]); - return { - serverCoefficients, - clientCoefficient - }; -} -function generateSessionNonce() { - return keccak256(Buffer.from(generatePrivateBN().toString("hex") + Date.now(), "utf8")); -} -function getSessionId(verifier, verifierId, tssTag, tssNonce, sessionNonce) { - return `${verifier}${DELIMITERS.Delimiter1}${verifierId}${DELIMITERS.Delimiter2}${tssTag}${DELIMITERS.Delimiter3}${tssNonce}${DELIMITERS.Delimiter4}${sessionNonce}`; -} -function sigToRSV(sig) { - if (sig.length !== 65) { - throw new Error(`Invalid signature length: expected 65, got ${sig.length}`); - } - return { - r: sig.subarray(0, 32), - s: sig.subarray(32, 64), - v: sig[64] - }; -} -function makeEthereumSigner(kit) { - if (kit.keyType !== KeyType.secp256k1) { - throw new Error(`Invalid key type: expected secp256k1, got ${kit.keyType}`); - } - return { - sign: async msgHash => { - const sig = await kit.sign(msgHash, true); - return sigToRSV(sig); - }, - getPublic: async () => { - const pk = Point.fromSEC1(secp256k1, kit.getPubKey().toString("hex")); - return pk.toSEC1(secp256k1).subarray(1); - } - }; -} -const log = loglevel.getLogger("mpc-core-kit"); -log.disableAll(); - -class Web3AuthMPCCoreKit { - constructor(options) { - var _window; - _defineProperty(this, "state", { - accountIndex: 0 - }); - _defineProperty(this, "torusSp", null); - _defineProperty(this, "options", void 0); - _defineProperty(this, "storageLayer", null); - _defineProperty(this, "tkey", null); - _defineProperty(this, "sessionManager", void 0); - _defineProperty(this, "currentStorage", void 0); - _defineProperty(this, "_storageBaseKey", "corekit_store"); - _defineProperty(this, "enableLogging", false); - _defineProperty(this, "ready", false); - _defineProperty(this, "_tssLib", void 0); - _defineProperty(this, "wasmLib", void 0); - _defineProperty(this, "_keyType", void 0); - _defineProperty(this, "atomicCallStackCounter", 0); - _defineProperty(this, "getTssFactorPub", () => { - this.checkReady(); - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when getting tss factor public key."); - } - const factorPubsList = this.tKey.metadata.factorPubs[this.tKey.tssTag]; - return factorPubsList.map(factorPub => factorPub.toSEC1(factorKeyCurve, true).toString("hex")); - }); - if (!options.web3AuthClientId) { - throw CoreKitError.clientIdInvalid(); - } - this._tssLib = options.tssLib; - this._keyType = options.tssLib.keyType; - const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); - if (options.enableLogging) { - log.enableAll(); - this.enableLogging = true; - } else log.setLevel("error"); - if (typeof options.manualSync !== "boolean") options.manualSync = false; - if (!options.web3AuthNetwork) options.web3AuthNetwork = WEB3AUTH_NETWORK.MAINNET; - // if sessionTime is not provided, it is defaulted to 86400 - if (!options.sessionTime) options.sessionTime = 86400; - if (!options.serverTimeOffset) options.serverTimeOffset = 0; - if (!options.uxMode) options.uxMode = UX_MODE.REDIRECT; - if (!options.redirectPathName) options.redirectPathName = "redirect"; - if (!options.baseUrl) options.baseUrl = isNodejsOrRN ? "https://localhost" : `${(_window = window) === null || _window === void 0 ? void 0 : _window.location.origin}/serviceworker`; - if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; - if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; - if (options.disableSessionManager === undefined) options.disableSessionManager = false; - this.options = options; - this.currentStorage = new AsyncStorage(this._storageBaseKey, options.storage); - if (!options.disableSessionManager) { - this.sessionManager = new SessionManager({ - sessionTime: options.sessionTime - }); - } - Torus.setSessionTime(this.options.sessionTime); - } - get tKey() { - if (this.tkey === null) { - throw CoreKitError.tkeyInstanceUninitialized(); - } - return this.tkey; - } - get keyType() { - return this._keyType; - } - get signatures() { - var _this$state; - return (_this$state = this.state) !== null && _this$state !== void 0 && _this$state.signatures ? this.state.signatures : []; - } - get _storageKey() { - return this._storageBaseKey; - } - get status() { - try { - // metadata will be present if tkey is initialized (1 share) - // if 2 shares are present, then privKey will be present after metadatakey(tkey) reconstruction - const { - tkey - } = this; - if (!tkey) return COREKIT_STATUS.NOT_INITIALIZED; - if (!tkey.metadata) return COREKIT_STATUS.INITIALIZED; - if (!tkey.secp256k1Key || !this.state.factorKey) return COREKIT_STATUS.REQUIRED_SHARE; - return COREKIT_STATUS.LOGGED_IN; - } catch (e) {} - return COREKIT_STATUS.NOT_INITIALIZED; - } - get sessionId() { - var _this$sessionManager; - return (_this$sessionManager = this.sessionManager) === null || _this$sessionManager === void 0 ? void 0 : _this$sessionManager.sessionId; - } - get supportsAccountIndex() { - return this._keyType !== KeyType.ed25519; - } - get verifier() { - var _this$state$userInfo, _this$state2; - if ((_this$state$userInfo = this.state.userInfo) !== null && _this$state$userInfo !== void 0 && _this$state$userInfo.aggregateVerifier) { - return this.state.userInfo.aggregateVerifier; - } - return (_this$state2 = this.state) !== null && _this$state2 !== void 0 && (_this$state2 = _this$state2.userInfo) !== null && _this$state2 !== void 0 && _this$state2.verifier ? this.state.userInfo.verifier : ""; - } - get verifierId() { - var _this$state3; - return (_this$state3 = this.state) !== null && _this$state3 !== void 0 && (_this$state3 = _this$state3.userInfo) !== null && _this$state3 !== void 0 && _this$state3.verifierId ? this.state.userInfo.verifierId : ""; - } - get isRedirectMode() { - return this.options.uxMode === UX_MODE.REDIRECT; - } - get useClientGeneratedTSSKey() { - return this.keyType === KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; - } - - // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : - // TssShareType.DEVICE and TssShareType.RECOVERY - // if the factors key provided is the same type recovery will not works - async _UNSAFE_recoverTssKey(factorKey) { - this.checkReady(); - const factorKeyBN = new BN(factorKey[0], "hex"); - const shareStore0 = await this.getFactorKeyMetadata(factorKeyBN); - await this.tKey.initialize({ - withShare: shareStore0 - }); - const tssShares = []; - const tssIndexes = []; - const tssIndexesBN = []; - for (let i = 0; i < factorKey.length; i++) { - const factorKeyBNInput = new BN(factorKey[i], "hex"); - const { - tssIndex, - tssShare - } = await this.tKey.getTSSShare(factorKeyBNInput); - if (tssIndexes.includes(tssIndex)) { - // reset instance before throw error - await this.init(); - throw CoreKitError.duplicateTssIndex(); - } - tssIndexes.push(tssIndex); - tssIndexesBN.push(new BN(tssIndex)); - tssShares.push(tssShare); - } - const finalKey = lagrangeInterpolation(this.tkey.tssCurve, tssShares, tssIndexesBN); - // reset instance after recovery completed - await this.init(); - return finalKey.toString("hex", 64); - } - async init(params = { - handleRedirectResult: true - }) { - var _window2, _window3; - this.resetState(); - if (params.rehydrate === undefined) params.rehydrate = true; - const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); - if (this.keyType === KEY_TYPE.ED25519 && this.options.useDKG) { - throw CoreKitError.invalidConfig("DKG is not supported for ed25519 key type"); - } - this.torusSp = new TSSTorusServiceProvider({ - customAuthArgs: { - web3AuthClientId: this.options.web3AuthClientId, - baseUrl: this.options.baseUrl, - uxMode: this.isNodejsOrRN(this.options.uxMode) ? UX_MODE.REDIRECT : this.options.uxMode, - network: this.options.web3AuthNetwork, - redirectPathName: this.options.redirectPathName, - locationReplaceOnRedirect: true, - serverTimeOffset: this.options.serverTimeOffset, - keyType: this.keyType, - useDkg: this.options.useDKG - } - }); - this.storageLayer = new TorusStorageLayer({ - hostUrl: `${new URL(nodeDetails.torusNodeEndpoints[0]).origin}/metadata`, - enableLogging: this.enableLogging - }); - const shareSerializationModule = new ShareSerializationModule(); - this.tkey = new TKeyTSS({ - enableLogging: this.enableLogging, - serviceProvider: this.torusSp, - storageLayer: this.storageLayer, - manualSync: this.options.manualSync, - modules: { - shareSerialization: shareSerializationModule - }, - tssKeyType: this.keyType - }); - if (this.isRedirectMode) { - await this.torusSp.init({ - skipSw: true, - skipPrefetch: true - }); - } else if (this.options.uxMode === UX_MODE.POPUP) { - await this.torusSp.init({}); - } - this.ready = true; - - // try handle redirect flow if enabled and return(redirect) from oauth login - if (params.handleRedirectResult && this.options.uxMode === UX_MODE.REDIRECT && ((_window2 = window) !== null && _window2 !== void 0 && _window2.location.hash.includes("#state") || (_window3 = window) !== null && _window3 !== void 0 && _window3.location.hash.includes("#access_token"))) { - // on failed redirect, instance is reseted. - // skip check feature gating on redirection as it was check before login - await this.handleRedirectResult(); - - // return early on successful redirect, the rest of the code will not be executed - return; - } else if (params.rehydrate && this.sessionManager) { - // if not redirect flow try to rehydrate session if available - const sessionId = await this.currentStorage.get("sessionId"); - if (sessionId) { - this.sessionManager.sessionId = sessionId; - - // swallowed, should not throw on rehydrate timed out session - const sessionResult = await this.sessionManager.authorizeSession().catch(async err => { - log.error("rehydrate session error", err); - }); - - // try rehydrate session - if (sessionResult) { - await this.rehydrateSession(sessionResult); - - // return early on success rehydration - return; - } - } - } - // feature gating if not redirect flow or session rehydration - await this.featureRequest(); - } - async loginWithOAuth(params) { - this.checkReady(); - if (this.isNodejsOrRN(this.options.uxMode)) { - throw CoreKitError.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`); - } - const { - importTssKey - } = params; - const tkeyServiceProvider = this.torusSp; - try { - // oAuth login. - const verifierParams = params; - const aggregateParams = params; - if (verifierParams.subVerifierDetails) { - var _loginResponse$nodesD; - // single verifier login. - const loginResponse = await tkeyServiceProvider.triggerLogin(params.subVerifierDetails); - if (this.isRedirectMode) return; - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: (_loginResponse$nodesD = loginResponse.nodesData) === null || _loginResponse$nodesD === void 0 ? void 0 : _loginResponse$nodesD.nodeIndexes, - userInfo: loginResponse.userInfo, - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - } else if (aggregateParams.subVerifierDetailsArray) { - var _loginResponse$nodesD2; - const loginResponse = await tkeyServiceProvider.triggerAggregateLogin({ - aggregateVerifierType: aggregateParams.aggregateVerifierType || AGGREGATE_VERIFIER.SINGLE_VERIFIER_ID, - verifierIdentifier: aggregateParams.aggregateVerifierIdentifier, - subVerifierDetailsArray: aggregateParams.subVerifierDetailsArray - }); - if (this.isRedirectMode) return; - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: (_loginResponse$nodesD2 = loginResponse.nodesData) === null || _loginResponse$nodesD2 === void 0 ? void 0 : _loginResponse$nodesD2.nodeIndexes, - userInfo: loginResponse.userInfo[0], - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - } - await this.setupTkey(importTssKey); - } catch (err) { - log.error("login error", err); - if (err instanceof CoreError) { - if (err.code === 1302) { - throw CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); - } - } - throw CoreKitError.default(err.message); - } - } - async loginWithJWT(params) { - this.checkReady(); - const { - prefetchTssPublicKeys = 1 - } = params; - if (prefetchTssPublicKeys > 3) { - throw CoreKitError.prefetchValueExceeded(`The prefetch value '${prefetchTssPublicKeys}' exceeds the maximum allowed limit of 3.`); - } - const { - verifier, - verifierId, - idToken, - importTssKey - } = params; - this.torusSp.verifierName = verifier; - this.torusSp.verifierId = verifierId; - try { - var _loginResponse$nodesD3; - // prefetch tss pub keys. - const prefetchTssPubs = []; - for (let i = 0; i < prefetchTssPublicKeys; i++) { - prefetchTssPubs.push(this.torusSp.getTSSPubKey(this.tkey.tssTag, i)); - } - - // get postbox key. - let loginPromise; - if (!params.subVerifier) { - // single verifier login. - loginPromise = this.torusSp.customAuthInstance.getTorusKey(verifier, verifierId, { - verifier_id: verifierId - }, idToken, _objectSpread(_objectSpread({}, params.extraVerifierParams), params.additionalParams)); - } else { - // aggregate verifier login - loginPromise = this.torusSp.customAuthInstance.getAggregateTorusKey(verifier, verifierId, [{ - verifier: params.subVerifier, - idToken, - extraVerifierParams: params.extraVerifierParams - }]); - } - - // wait for prefetch completed before setup tkey - const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]); - const postBoxKey = this._getPostBoxKey(loginResponse); - this.torusSp.postboxKey = new BN(postBoxKey, "hex"); - this.updateState({ - postBoxKey, - postboxKeyNodeIndexes: ((_loginResponse$nodesD3 = loginResponse.nodesData) === null || _loginResponse$nodesD3 === void 0 ? void 0 : _loginResponse$nodesD3.nodeIndexes) || [], - userInfo: _objectSpread(_objectSpread({}, parseToken(idToken)), {}, { - verifier, - verifierId - }), - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData) - }); - await this.setupTkey(importTssKey); - } catch (err) { - log.error("login error", err); - if (err instanceof CoreError) { - if (err.code === 1302) { - const newError = CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); - newError.stack = err.stack; - throw newError; - } - } - const newError = CoreKitError.default(err.message); - newError.stack = err.stack; - throw newError; - } - } - async handleRedirectResult() { - this.checkReady(); - try { - const result = await this.torusSp.customAuthInstance.getRedirectResult(); - if (result.method === TORUS_METHOD.TRIGGER_LOGIN) { - var _data$nodesData; - const data = result.result; - if (!data) { - throw CoreKitError.invalidTorusLoginResponse(); - } - this.updateState({ - postBoxKey: this._getPostBoxKey(data), - postboxKeyNodeIndexes: ((_data$nodesData = data.nodesData) === null || _data$nodesData === void 0 ? void 0 : _data$nodesData.nodeIndexes) || [], - userInfo: data.userInfo, - signatures: this._getSignatures(data.sessionData.sessionTokenData) - }); - const userInfo = this.getUserInfo(); - this.torusSp.verifierName = userInfo.verifier; - } else if (result.method === TORUS_METHOD.TRIGGER_AGGREGATE_LOGIN) { - var _data$nodesData2; - const data = result.result; - if (!data) { - throw CoreKitError.invalidTorusAggregateLoginResponse(); - } - this.updateState({ - postBoxKey: this._getPostBoxKey(data), - postboxKeyNodeIndexes: ((_data$nodesData2 = data.nodesData) === null || _data$nodesData2 === void 0 ? void 0 : _data$nodesData2.nodeIndexes) || [], - userInfo: data.userInfo[0], - signatures: this._getSignatures(data.sessionData.sessionTokenData) - }); - const userInfo = this.getUserInfo(); - this.torusSp.verifierName = userInfo.aggregateVerifier; - } else { - throw CoreKitError.unsupportedRedirectMethod(); - } - const userInfo = this.getUserInfo(); - if (!this.state.postBoxKey) { - throw CoreKitError.postBoxKeyMissing("postBoxKey not present in state after processing redirect result."); - } - this.torusSp.postboxKey = new BN(this.state.postBoxKey, "hex"); - this.torusSp.verifierId = userInfo.verifierId; - await this.setupTkey(); - } catch (error) { - this.resetState(); - log.error("error while handling redirect result", error); - throw CoreKitError.default(error.message); - } - } - async inputFactorKey(factorKey) { - this.checkReady(); - try { - // input tkey device share when required share > 0 ( or not reconstructed ) - // assumption tkey shares will not changed - if (!this.tKey.secp256k1Key) { - const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - } - - // Finalize initialization. - await this.tKey.reconstructKey(); - await this.finalizeTkey(factorKey); - } catch (err) { - log.error("login error", err); - if (err instanceof CoreError) { - if (err.code === 1302) { - throw CoreKitError.default(ERRORS.TKEY_SHARES_REQUIRED); - } - } - throw CoreKitError.default(err.message); - } - } - setTssWalletIndex(accountIndex) { - this.updateState({ - tssPubKey: this.tKey.getTSSPub(accountIndex).toSEC1(this.tkey.tssCurve, false), - accountIndex - }); - } - getCurrentFactorKey() { - this.checkReady(); - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when getting current factor key."); - } - if (!this.state.tssShareIndex) { - throw CoreKitError.tssShareTypeIndexMissing("TSS Share Type (Index) not present in state when getting current factor key."); - } - try { - return { - factorKey: this.state.factorKey, - shareType: this.state.tssShareIndex - }; - } catch (err) { - log.error("state error", err); - throw CoreKitError.default(err.message); - } - } - async enableMFA(enableMFAParams, recoveryFactor = true) { - this.checkReady(); - const { - postBoxKey - } = this.state; - const hashedFactorKey = getHashedPrivateKey(postBoxKey, this.options.hashedFactorNonce); - if (!(await this.checkIfFactorKeyValid(hashedFactorKey))) { - if (this.tKey._localMetadataTransitions[0].length) { - throw CoreKitError.commitChangesBeforeMFA(); - } - throw CoreKitError.mfaAlreadyEnabled(); - } - return this.atomicSync(async () => { - let browserData; - if (this.isNodejsOrRN(this.options.uxMode)) { - browserData = { - browserName: "Node Env", - browserVersion: "", - deviceName: "nodejs" - }; - } else { - // try { - const browserInfo = bowser.parse(navigator.userAgent); - const browserName = `${browserInfo.browser.name}`; - browserData = { - browserName, - browserVersion: browserInfo.browser.version, - deviceName: browserInfo.os.name - }; - } - const deviceFactorKey = new BN(await this.createFactor({ - shareType: TssShareType.DEVICE, - additionalMetadata: browserData - }), "hex"); - await this.setDeviceFactor(deviceFactorKey); - await this.inputFactorKey(new BN(deviceFactorKey, "hex")); - const hashedFactorPub = getPubKeyPoint(hashedFactorKey, factorKeyCurve); - await this.deleteFactor(hashedFactorPub, hashedFactorKey); - await this.deleteMetadataShareBackup(hashedFactorKey); - - // only recovery factor = true - let backupFactorKey; - if (recoveryFactor) { - backupFactorKey = await this.createFactor(_objectSpread({ - shareType: TssShareType.RECOVERY - }, enableMFAParams)); - } - - // update to undefined for next major release - return backupFactorKey; - }).catch(reason => { - log.error("error enabling MFA:", reason.message); - const err = CoreKitError.default(reason.message); - err.stack = reason.stack; - throw err; - }); - } - // mutation function - async createFactor(createFactorParams) { - this.checkReady(); - const { - shareType - } = createFactorParams; - let { - factorKey, - shareDescription, - additionalMetadata - } = createFactorParams; - if (!VALID_SHARE_INDICES.includes(shareType)) { - throw CoreKitError.newShareIndexInvalid(`Invalid share type provided (${shareType}). Valid share types are ${VALID_SHARE_INDICES}.`); - } - if (!factorKey) { - factorKey = generateFactorKey().private; - } - if (!shareDescription) { - shareDescription = FactorKeyTypeShareDescription.Other; - } - if (!additionalMetadata) { - additionalMetadata = {}; - } - const factorPub = getPubKeyPoint(factorKey, factorKeyCurve); - if (this.getTssFactorPub().includes(factorPub.toSEC1(factorKeyCurve, true).toString("hex"))) { - throw CoreKitError.factorKeyAlreadyExists(); - } - return this.atomicSync(async () => { - await this.copyOrCreateShare(shareType, factorPub); - await this.backupMetadataShare(factorKey); - await this.addFactorDescription({ - factorKey, - shareDescription, - additionalMetadata, - updateMetadata: false - }); - return scalarBNToBufferSEC1(factorKey).toString("hex"); - }).catch(reason => { - log.error("error creating factor:", reason.message); - const err = CoreKitError.default(`error creating factor: ${reason.message}`); - err.stack = reason.stack; - throw err; - }); - } - - /** - * Get public key point in SEC1 format. - */ - getPubKey() { - const { - tssPubKey - } = this.state; - return Buffer.from(tssPubKey); - } - - /** - * Get public key point. - */ - getPubKeyPoint() { - const { - tssPubKey - } = this.state; - return Point.fromSEC1(this.tkey.tssCurve, tssPubKey.toString("hex")); - } - - /** - * Get public key in ed25519 format. - * - * Throws an error if keytype is not compatible with ed25519. - */ - getPubKeyEd25519() { - const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); - return ed25519().keyFromPublic(p).getPublic(); - } - async precompute_secp256k1() { - this.wasmLib = await this.loadTssWasm(); - // PreSetup - const { - tssShareIndex - } = this.state; - const tssPubKey = this.getPubKeyPoint(); - const { - torusNodeTSSEndpoints - } = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when signing."); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey, { - accountIndex: 0 - }); - const tssNonce = this.getTssNonce(); - if (!tssPubKey || !torusNodeTSSEndpoints) { - throw CoreKitError.tssPublicKeyOrEndpointsMissing(); - } - - // session is needed for authentication to the web3auth infrastructure holding the factor 1 - const randomSessionNonce = generateSessionNonce(); - const currentSession = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, randomSessionNonce); - const parties = 4; - const clientIndex = parties - 1; - // 1. setup - // generate endpoints for servers - const { - nodeIndexes - } = await this.torusSp.getTSSPubKey(this.tKey.tssTag, this.tKey.metadata.tssNonces[this.tKey.tssTag]); - const { - endpoints, - tssWSEndpoints, - partyIndexes, - nodeIndexesReturned: participatingServerDKGIndexes - } = generateTSSEndpoints(torusNodeTSSEndpoints, parties, clientIndex, nodeIndexes); - - // Setup sockets. - const sockets = await setupSockets(tssWSEndpoints, randomSessionNonce); - const dklsCoeff = getDKLSCoeff(true, participatingServerDKGIndexes, tssShareIndex); - const denormalisedShare = dklsCoeff.mul(tssShare).umod(secp256k1.curve.n); - const accountNonce = this.tkey.computeAccountNonce(this.state.accountIndex); - const derivedShare = denormalisedShare.add(accountNonce).umod(secp256k1.curve.n); - const share = scalarBNToBufferSEC1(derivedShare).toString("base64"); - if (!currentSession) { - throw CoreKitError.activeSessionNotFound(); - } - const { - signatures - } = this; - if (!signatures) { - throw CoreKitError.signaturesNotPresent(); - } - - // Client lib expects pub key in XY-format, base64-encoded. - const tssPubKeyBase64 = Buffer.from(tssPubKey.toSEC1(secp256k1).subarray(1)).toString("base64"); - const client = new Client(currentSession, clientIndex, partyIndexes, endpoints, sockets, share, tssPubKeyBase64, true, this.wasmLib); - const serverCoeffs = {}; - for (let i = 0; i < participatingServerDKGIndexes.length; i++) { - const serverIndex = participatingServerDKGIndexes[i]; - serverCoeffs[serverIndex] = getDKLSCoeff(false, participatingServerDKGIndexes, tssShareIndex, serverIndex).toString("hex"); - } - client.precompute({ - signatures, - server_coeffs: serverCoeffs, - nonce: scalarBNToBufferSEC1(this.getAccountNonce()).toString("base64") - }); - await client.ready().catch(err => { - client.cleanup({ - signatures, - server_coeffs: serverCoeffs - }); - throw err; - }); - return { - client, - serverCoeffs - }; - } - async sign(data, hashed = false, secp256k1Precompute) { - this.wasmLib = await this.loadTssWasm(); - if (this.keyType === KeyType.secp256k1) { - const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); - return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); - } else if (this.keyType === KeyType.ed25519) { - return this.sign_ed25519(data, hashed); - } - throw CoreKitError.default(`sign not supported for key type ${this.keyType}`); - } - - // mutation function - async deleteFactor(factorPub, factorKey) { - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when deleting a factor."); - } - if (!this.tKey.metadata.factorPubs) { - throw CoreKitError.factorPubsMissing(); - } - await this.atomicSync(async () => { - const remainingFactors = this.tKey.metadata.factorPubs[this.tKey.tssTag].length || 0; - if (remainingFactors <= 1) { - throw CoreKitError.cannotDeleteLastFactor("Cannot delete last factor"); - } - const fpp = factorPub; - const stateFpp = getPubKeyPoint(this.state.factorKey, factorKeyCurve); - if (fpp.equals(stateFpp)) { - throw CoreKitError.factorInUseCannotBeDeleted("Cannot delete current active factor"); - } - await this.tKey.deleteFactorPub({ - factorKey: this.state.factorKey, - deleteFactorPub: factorPub, - authSignatures: this.signatures - }); - const factorPubHex = fpp.toSEC1(factorKeyCurve, true).toString("hex"); - const allDesc = this.tKey.metadata.getShareDescription(); - const keyDesc = allDesc[factorPubHex]; - if (keyDesc) { - await Promise.all(keyDesc.map(async desc => { - var _this$tKey; - return (_this$tKey = this.tKey) === null || _this$tKey === void 0 ? void 0 : _this$tKey.metadata.deleteShareDescription(factorPubHex, desc); - })); - } - - // delete factorKey share metadata if factorkey is provided - if (factorKey) { - const factorKeyBN = new BN(factorKey, "hex"); - const derivedFactorPub = getPubKeyPoint(factorKeyBN, factorKeyCurve); - // only delete if factorPub matches - if (derivedFactorPub.equals(fpp)) { - await this.deleteMetadataShareBackup(factorKeyBN); - } - } - }); - } - async logout() { - var _this$sessionManager2; - if ((_this$sessionManager2 = this.sessionManager) !== null && _this$sessionManager2 !== void 0 && _this$sessionManager2.sessionId) { - await this.sessionManager.invalidateSession(); - } - // to accommodate async storage - await this.currentStorage.set("sessionId", ""); - this.resetState(); - await this.init({ - handleRedirectResult: false, - rehydrate: false - }); - } - getUserInfo() { - if (!this.state.userInfo) { - throw CoreKitError.userNotLoggedIn(); - } - return this.state.userInfo; - } - getKeyDetails() { - this.checkReady(); - const tkeyDetails = this.tKey.getKeyDetails(); - const tssPubKey = this.state.tssPubKey ? Point.fromSEC1(this.tkey.tssCurve, this.state.tssPubKey.toString("hex")) : undefined; - const factors = this.tKey.metadata.factorPubs ? this.tKey.metadata.factorPubs[this.tKey.tssTag] : []; - const keyDetails = { - // use tkey's for now - requiredFactors: tkeyDetails.requiredShares, - threshold: tkeyDetails.threshold, - totalFactors: factors.length + 1, - shareDescriptions: this.tKey.getMetadata().getShareDescription(), - metadataPubKey: tkeyDetails.pubKey, - tssPubKey, - keyType: this.keyType - }; - return keyDetails; - } - async commitChanges() { - this.checkReady(); - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when committing changes."); - } - try { - // in case for manualsync = true, _syncShareMetadata will not call syncLocalMetadataTransitions() - // it will not create a new LocalMetadataTransition - // manual call syncLocalMetadataTransitions() required to sync local transitions to storage - await this.tKey._syncShareMetadata(); - await this.tKey.syncLocalMetadataTransitions(); - } catch (error) { - log.error("sync metadata error", error); - throw error; - } - } - async setManualSync(manualSync) { - this.checkReady(); - // sync local transistion to storage before allow changes - await this.tKey.syncLocalMetadataTransitions(); - this.options.manualSync = manualSync; - this.tKey.manualSync = manualSync; - } - - // device factor - async setDeviceFactor(factorKey, replace = false) { - if (!replace) { - const existingFactor = await this.getDeviceFactor(); - if (existingFactor) { - throw CoreKitError.default("Device factor already exists"); - } - } - const metadata = this.tKey.getMetadata(); - const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); - await this.currentStorage.set(tkeyPubX, JSON.stringify({ - factorKey: factorKey.toString("hex").padStart(64, "0") - })); - } - async getDeviceFactor() { - const metadata = this.tKey.getMetadata(); - const tkeyPubX = metadata.pubKey.x.toString(16, FIELD_ELEMENT_HEX_LEN); - const tKeyLocalStoreString = await this.currentStorage.get(tkeyPubX); - const tKeyLocalStore = JSON.parse(tKeyLocalStoreString || "{}"); - return tKeyLocalStore.factorKey; - } - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Exports the private key scalar for the current account index. - * - * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. - */ - async _UNSAFE_exportTssKey() { - if (this.keyType !== KeyType.secp256k1) { - throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is secp256k1"); - } - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss key."); - } - if (!this.state.signatures) { - throw CoreKitError.signaturesNotPresent("Signatures not present in state when exporting tss key."); - } - const exportTssKey0 = await this.tKey._UNSAFE_exportTssKey({ - factorKey: this.state.factorKey, - authSignatures: this.state.signatures - }); - const accountNonce = this.getAccountNonce(); - const tssKey = exportTssKey0.add(accountNonce).umod(this.tKey.tssCurve.n); - return tssKey.toString("hex", FIELD_ELEMENT_HEX_LEN); - } - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Attempts to export the ed25519 private key seed. Only works if import key - * flow has been used. - */ - async _UNSAFE_exportTssEd25519Seed() { - if (this.keyType !== KeyType.ed25519) { - throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is ed25519"); - } - if (!this.state.factorKey) throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); - if (!this.state.signatures) throw CoreKitError.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed."); - try { - const exportEd25519Seed = await this.tKey._UNSAFE_exportTssEd25519Seed({ - factorKey: this.state.factorKey, - authSignatures: this.state.signatures - }); - return exportEd25519Seed; - } catch (error) { - throw CoreKitError.default(`Error exporting ed25519 seed: ${error}`); - } - } - updateState(newState) { - this.state = _objectSpread(_objectSpread({}, this.state), newState); - } - async atomicSync(f) { - this.atomicCallStackCounter += 1; - this.tkey.manualSync = true; - try { - const r = await f(); - if (this.atomicCallStackCounter === 1) { - if (!this.options.manualSync) { - await this.commitChanges(); - } - } - return r; - } catch (error) { - throw error; - } finally { - this.atomicCallStackCounter -= 1; - if (this.atomicCallStackCounter === 0) { - this.tkey.manualSync = this.options.manualSync; - } - } - } - async importTssKey(tssKey, factorPub, newTSSIndex = TssShareType.DEVICE) { - if (!this.state.signatures) { - throw CoreKitError.signaturesNotPresent("Signatures not present in state when importing tss key."); - } - await this.tKey.importTssKey({ - tag: this.tKey.tssTag, - importKey: Buffer.from(tssKey, "hex"), - factorPub, - newTSSIndex - }, { - authSignatures: this.state.signatures - }); - } - getTssNonce() { - if (!this.tKey.metadata.tssNonces || this.tKey.metadata.tssNonces[this.tKey.tssTag] === undefined) { - throw CoreKitError.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`); - } - const tssNonce = this.tKey.metadata.tssNonces[this.tKey.tssTag]; - return tssNonce; - } - async setupTkey(providedImportTssKey) { - if (!this.state.postBoxKey) { - throw CoreKitError.userNotLoggedIn(); - } - const existingUser = await this.isMetadataPresent(this.state.postBoxKey); - let importTssKey = providedImportTssKey; - if (!existingUser) { - if (!importTssKey && this.useClientGeneratedTSSKey) { - if (this.keyType === KeyType.ed25519) { - const k = generateEd25519Seed(); - importTssKey = k.toString("hex"); - } else if (this.keyType === KeyType.secp256k1) { - const k = secp256k1.genKeyPair().getPrivate(); - importTssKey = scalarBNToBufferSEC1(k).toString("hex"); - } else { - throw CoreKitError.default("Unsupported key type"); - } - } - await this.handleNewUser(importTssKey); - } else { - if (importTssKey) { - throw CoreKitError.tssKeyImportNotAllowed(); - } - await this.handleExistingUser(); - } - } - - // mutation function - async handleNewUser(importTssKey) { - await this.atomicSync(async () => { - // Generate or use hash factor and initialize tkey with it. - let factorKey; - if (this.options.disableHashedFactorKey) { - factorKey = generateFactorKey().private; - // delete previous hashed factorKey if present - const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - await this.deleteMetadataShareBackup(hashedFactorKey); - } else { - factorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - } - const deviceTSSIndex = TssShareType.DEVICE; - const factorPub = getPubKeyPoint(factorKey, factorKeyCurve); - if (!importTssKey) { - const ec$1 = new ec(this.keyType); - const deviceTSSShare = ec$1.genKeyPair().getPrivate(); - await this.tKey.initialize({ - factorPub, - deviceTSSShare, - deviceTSSIndex - }); - } else { - await this.tKey.initialize({ - skipTssInit: true - }); - await this.tKey.reconstructKey(); - await this.importTssKey(importTssKey, factorPub, deviceTSSIndex); - } - - // Finalize initialization. - await this.tKey.reconstructKey(); - await this.finalizeTkey(factorKey); - - // Store factor description. - await this.backupMetadataShare(factorKey); - if (this.options.disableHashedFactorKey) { - await this.addFactorDescription({ - factorKey, - shareDescription: FactorKeyTypeShareDescription.Other, - updateMetadata: false - }); - } else { - await this.addFactorDescription({ - factorKey, - shareDescription: FactorKeyTypeShareDescription.HashedShare, - updateMetadata: false - }); - } - }); - } - async handleExistingUser() { - await this.tKey.initialize({ - neverInitializeNewKey: true - }); - if (this.options.disableHashedFactorKey) { - return; - } - const hashedFactorKey = getHashedPrivateKey(this.state.postBoxKey, this.options.hashedFactorNonce); - this.state.factorKey = hashedFactorKey; - if (await this.checkIfFactorKeyValid(hashedFactorKey)) { - // Initialize tkey with existing hashed share if available. - const factorKeyMetadata = await this.getFactorKeyMetadata(hashedFactorKey); - try { - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - await this.tKey.reconstructKey(); - await this.finalizeTkey(hashedFactorKey); - } catch (err) { - log.error("error initializing tkey with hashed share", err); - } - } else { - var _this$tKey2; - const factorKeyMetadata = await ((_this$tKey2 = this.tKey) === null || _this$tKey2 === void 0 ? void 0 : _this$tKey2.readMetadata(hashedFactorKey)); - if (factorKeyMetadata.message === "SHARE_DELETED") { - // throw CoreKitError.hashedFactorDeleted(); - log.warn("hashed factor deleted"); - } - } - } - async finalizeTkey(factorKey) { - if (this.state.accountIndex !== 0) { - log.warn("AccountIndex should be 0"); - this.state.accountIndex = 0; - } - // Read tss meta data. - const { - tssIndex: tssShareIndex - } = await this.tKey.getTSSShare(factorKey); - const tssPubKey = this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve, false); - this.updateState({ - tssShareIndex, - tssPubKey, - factorKey - }); - await this.createSession(); - } - checkReady() { - if (!this.ready) { - throw CoreKitError.mpcCoreKitNotInitialized(); - } - } - async rehydrateSession(result) { - try { - this.checkReady(); - const factorKey = new BN(result.factorKey, "hex"); - if (!factorKey) { - throw CoreKitError.providedFactorKeyInvalid(); - } - const postBoxKey = result.postBoxKey || result.oAuthKey; - if (!postBoxKey) { - throw CoreKitError.default("postBoxKey or oAuthKey not present in session data"); - } - this.torusSp.postboxKey = new BN(postBoxKey, "hex"); - this.torusSp.verifierName = result.userInfo.aggregateVerifier || result.userInfo.verifier; - this.torusSp.verifierId = result.userInfo.verifierId; - const factorKeyMetadata = await this.getFactorKeyMetadata(factorKey); - await this.tKey.initialize({ - neverInitializeNewKey: true - }); - await this.tKey.inputShareStoreSafe(factorKeyMetadata, true); - await this.tKey.reconstructKey(); - this.updateState({ - factorKey: new BN(result.factorKey, "hex"), - postBoxKey, - postboxKeyNodeIndexes: result.postboxKeyNodeIndexes || [], - tssShareIndex: result.tssShareIndex, - tssPubKey: this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve, false), - signatures: result.signatures, - userInfo: result.userInfo - }); - } catch (err) { - log.warn("failed to authorize session", err); - } - } - async createSession() { - if (!this.options.disableSessionManager && !this.sessionManager) { - throw new Error("sessionManager is not available"); - } - try { - const sessionId = SessionManager.generateRandomSessionKey(); - this.sessionManager.sessionId = sessionId; - const { - postBoxKey, - factorKey, - userInfo, - tssShareIndex, - tssPubKey, - postboxKeyNodeIndexes - } = this.state; - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when creating session."); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey, { - accountIndex: this.state.accountIndex - }); - if (!postBoxKey || !factorKey || !tssShare || !tssPubKey || !userInfo) { - throw CoreKitError.userNotLoggedIn(); - } - const payload = { - postBoxKey, - postboxKeyNodeIndexes: postboxKeyNodeIndexes || [], - factorKey: factorKey === null || factorKey === void 0 ? void 0 : factorKey.toString("hex"), - tssShareIndex: tssShareIndex, - tssPubKey: Buffer.from(tssPubKey).toString("hex"), - signatures: this.signatures, - userInfo - }; - await this.sessionManager.createSession(payload); - // to accommodate async storage - await this.currentStorage.set("sessionId", sessionId); - } catch (err) { - log.error("error creating session", err); - } - } - async isMetadataPresent(privateKey) { - var _this$tKey3; - const privateKeyBN = new BN(privateKey, "hex"); - const metadata = await ((_this$tKey3 = this.tKey) === null || _this$tKey3 === void 0 ? void 0 : _this$tKey3.readMetadata(privateKeyBN)); - if (metadata && metadata.message !== "KEY_NOT_FOUND") { - return true; - } - return false; - } - async checkIfFactorKeyValid(factorKey) { - var _this$tKey4; - this.checkReady(); - const factorKeyMetadata = await ((_this$tKey4 = this.tKey) === null || _this$tKey4 === void 0 ? void 0 : _this$tKey4.readMetadata(factorKey)); - if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND" || factorKeyMetadata.message === "SHARE_DELETED") { - return false; - } - return true; - } - async getFactorKeyMetadata(factorKey) { - var _this$tKey5; - this.checkReady(); - const factorKeyMetadata = await ((_this$tKey5 = this.tKey) === null || _this$tKey5 === void 0 ? void 0 : _this$tKey5.readMetadata(factorKey)); - if (!factorKeyMetadata || factorKeyMetadata.message === "KEY_NOT_FOUND") { - throw CoreKitError.noMetadataFound(); - } - return ShareStore.fromJSON(factorKeyMetadata); - } - - /** - * Copies a share and makes it available under a new factor key. If no share - * exists at the specified share index, a new share is created. - * @param newFactorTSSIndex - The index of the share to copy. - * @param newFactorPub - The public key of the new share. - */ - async copyOrCreateShare(newFactorTSSIndex, newFactorPub) { - this.checkReady(); - if (!this.tKey.metadata.factorPubs || !Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag])) { - throw CoreKitError.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key."); - } - if (!this.tKey.metadata.factorEncs || typeof this.tKey.metadata.factorEncs[this.tKey.tssTag] !== "object") { - throw CoreKitError.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key."); - } - if (!this.state.factorKey) { - throw CoreKitError.factorKeyNotPresent("factorKey not present in state when copying or creating a share."); - } - if (VALID_SHARE_INDICES.indexOf(newFactorTSSIndex) === -1) { - throw CoreKitError.newShareIndexInvalid(`Invalid share type provided (${newFactorTSSIndex}). Valid share types are ${VALID_SHARE_INDICES}.`); - } - if (this.tKey.metadata.factorPubs[this.tKey.tssTag].length >= MAX_FACTORS) { - throw CoreKitError.maximumFactorsReached(`The maximum number of allowable factors (${MAX_FACTORS}) has been reached.`); - } - - // Generate new share. - await this.tkey.addFactorPub({ - existingFactorKey: this.state.factorKey, - authSignatures: this.signatures, - newFactorPub, - newTSSIndex: newFactorTSSIndex, - refreshShares: this.state.tssShareIndex !== newFactorTSSIndex // Refresh shares if we have a new factor key index. - }); - } - async getMetadataShare() { - try { - var _this$tKey6, _this$tKey7; - const polyId = (_this$tKey6 = this.tKey) === null || _this$tKey6 === void 0 ? void 0 : _this$tKey6.metadata.getLatestPublicPolynomial().getPolynomialID(); - const shares = (_this$tKey7 = this.tKey) === null || _this$tKey7 === void 0 ? void 0 : _this$tKey7.shares[polyId]; - let share = null; - for (const shareIndex in shares) { - if (shareIndex !== SOCIAL_TKEY_INDEX.toString()) { - share = shares[shareIndex]; - } - } - if (!share) { - throw CoreKitError.noMetadataShareFound(); - } - return share; - } catch (err) { - log.error("create device share error", err); - throw CoreKitError.default(err.message); - } - } - async deleteMetadataShareBackup(factorKey) { - var _this$tkey, _this$tkey2; - await this.tKey.addLocalMetadataTransitions({ - input: [{ - message: SHARE_DELETED, - dateAdded: Date.now() - }], - privKey: [factorKey] - }); - if (!((_this$tkey = this.tkey) !== null && _this$tkey !== void 0 && _this$tkey.manualSync)) await ((_this$tkey2 = this.tkey) === null || _this$tkey2 === void 0 ? void 0 : _this$tkey2.syncLocalMetadataTransitions()); - } - async backupMetadataShare(factorKey) { - var _this$tKey8, _this$tkey3, _this$tkey4; - const metadataShare = await this.getMetadataShare(); - - // Set metadata for factor key backup - await ((_this$tKey8 = this.tKey) === null || _this$tKey8 === void 0 ? void 0 : _this$tKey8.addLocalMetadataTransitions({ - input: [metadataShare], - privKey: [factorKey] - })); - if (!((_this$tkey3 = this.tkey) !== null && _this$tkey3 !== void 0 && _this$tkey3.manualSync)) await ((_this$tkey4 = this.tkey) === null || _this$tkey4 === void 0 ? void 0 : _this$tkey4.syncLocalMetadataTransitions()); - } - async addFactorDescription(args) { - var _this$tKey9; - const { - factorKey, - shareDescription, - updateMetadata - } = args; - let { - additionalMetadata - } = args; - if (!additionalMetadata) { - additionalMetadata = {}; - } - const { - tssIndex - } = await this.tKey.getTSSShare(factorKey); - const factorPoint = getPubKeyPoint(factorKey, factorKeyCurve); - const factorPub = factorPoint.toSEC1(factorKeyCurve, true).toString("hex"); - const params = _objectSpread(_objectSpread({ - module: shareDescription, - dateAdded: Date.now() - }, additionalMetadata), {}, { - tssShareIndex: tssIndex - }); - await ((_this$tKey9 = this.tKey) === null || _this$tKey9 === void 0 ? void 0 : _this$tKey9.addShareDescription(factorPub, JSON.stringify(params), updateMetadata)); - } - resetState() { - this.ready = false; - this.tkey = null; - this.torusSp = null; - this.storageLayer = null; - this.state = { - accountIndex: 0 - }; - } - _getPostBoxKey(result) { - return Torus.getPostboxKey(result); - } - _getSignatures(sessionData) { - // There is a check in torus.js which pushes undefined to session data in case - // that particular node call fails. - // and before returning we are not filtering out undefined vals in torus.js - // TODO: fix this in torus.js - return sessionData.filter(session => !!session).map(session => JSON.stringify({ - data: session.token, - sig: session.signature - })); - } - isNodejsOrRN(params) { - const mode = params; - return mode === "nodejs" || mode === "react-native"; - } - async featureRequest() { - const accessUrl = SIGNER_MAP[this.options.web3AuthNetwork]; - const accessRequest = { - network: this.options.web3AuthNetwork, - client_id: this.options.web3AuthClientId, - is_mpc_core_kit: "true", - enable_gating: "true", - session_time: this.options.sessionTime.toString() - }; - const url = new URL(`${accessUrl}/api/feature-access`); - url.search = new URLSearchParams(accessRequest).toString(); - const result = await fetch(url); - if (result.status !== 200) { - // reset state on no mpc access - this.resetState(); - const errMessage = await result.json(); - throw CoreKitError.default(errMessage.error); - } - return result.json(); - } - getAccountNonce() { - return this.tkey.computeAccountNonce(this.state.accountIndex); - } - async sign_ECDSA_secp256k1(data, hashed = false, precomputedTssClient) { - const executeSign = async (client, serverCoeffs, hashedData, signatures) => { - const { - r, - s, - recoveryParam - } = await client.sign(hashedData.toString("base64"), true, "", "keccak256", { - signatures - }); - // skip await cleanup - client.cleanup({ - signatures, - server_coeffs: serverCoeffs - }); - return { - v: recoveryParam, - r: scalarBNToBufferSEC1(r), - s: scalarBNToBufferSEC1(s) - }; - }; - if (!hashed) { - data = keccak256$1(data); - } - const isAlreadyPrecomputed = (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.client) && (precomputedTssClient === null || precomputedTssClient === void 0 ? void 0 : precomputedTssClient.serverCoeffs); - const { - client, - serverCoeffs - } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); - const { - signatures - } = this; - if (!signatures) { - throw CoreKitError.signaturesNotPresent(); - } - try { - return await executeSign(client, serverCoeffs, data, signatures); - } catch (error) { - if (!isAlreadyPrecomputed) { - throw error; - } - // Retry with new client if precomputed client failed, this is to handle the case when precomputed session might have expired - const { - client: newClient, - serverCoeffs: newServerCoeffs - } = await this.precompute_secp256k1(); - const result = await executeSign(newClient, newServerCoeffs, data, signatures); - return result; - } - } - async sign_ed25519(data, hashed = false) { - if (hashed) { - throw CoreKitError.default("hashed data not supported for ed25519"); - } - const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, "ed25519"); - if (!nodeDetails.torusNodeTSSEndpoints) { - throw CoreKitError.default("could not fetch tss node endpoints"); - } - - // Endpoints must end with backslash, but URLs returned by - // `fetch-node-details` don't have it. - const ED25519_ENDPOINTS = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ - index: nodeDetails.torusIndexes[i], - url: `${ep}/` - })); - - // Select endpoints and derive party indices. - const serverThreshold = Math.floor(ED25519_ENDPOINTS.length / 2) + 1; - const endpoints = sampleEndpoints(ED25519_ENDPOINTS, serverThreshold); - const serverXCoords = endpoints.map(x => x.index); - const clientXCoord = Math.max(...endpoints.map(ep => ep.index)) + 1; - - // Derive share coefficients for flat hierarchy. - const ec = new Ed25519Curve(); - const { - serverCoefficients, - clientCoefficient - } = deriveShareCoefficients(ec, serverXCoords, clientXCoord, this.state.tssShareIndex); - - // Get pub key. - const tssPubKey = await this.getPubKey(); - const tssPubKeyPoint = ec.keyFromPublic(tssPubKey).getPublic(); - - // Get client key share and adjust by coefficient. - if (this.state.accountIndex !== 0) { - throw CoreKitError.default("Account index not supported for ed25519"); - } - const { - tssShare - } = await this.tKey.getTSSShare(this.state.factorKey); - const clientShareAdjusted = tssShare.mul(clientCoefficient).umod(ec.n); - const clientShareAdjustedHex = ec.scalarToBuffer(clientShareAdjusted, Buffer).toString("hex"); - - // Generate session identifier. - const tssNonce = this.getTssNonce(); - const sessionNonce = generateSessionNonce(); - const session = getSessionId(this.verifier, this.verifierId, this.tKey.tssTag, tssNonce, sessionNonce); - - // Run signing protocol. - const serverURLs = endpoints.map(x => x.url); - const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); - const serverCoefficientsHex = serverCoefficients.map(c => ec.scalarToBuffer(c, Buffer).toString("hex")); - const signature = await sign(this.wasmLib, session, this.signatures, serverXCoords, serverURLs, clientXCoord, clientShareAdjustedHex, pubKeyHex, data, serverCoefficientsHex); - log.info(`signature: ${signature}`); - return Buffer.from(signature, "hex"); - } - async loadTssWasm() { - if (this.wasmLib) return this.wasmLib; - if (typeof this._tssLib.load === "function") { - // dont wait for wasm to be loaded, we can reload it during signing if not loaded - return this._tssLib.load(); - } else if (this._tssLib.lib) { - return this._tssLib.lib; - } - } -} - -export { AsyncStorage, COREKIT_STATUS, DELIMITERS, ERRORS, FIELD_ELEMENT_HEX_LEN, FactorKeyTypeShareDescription, MAX_FACTORS, MemoryStorage, SCALAR_LEN, SOCIAL_FACTOR_INDEX, SOCIAL_TKEY_INDEX, TssSecurityQuestion, TssSecurityQuestionStore, TssShareType, USER_PATH, VALID_SHARE_INDICES, WEB3AUTH_NETWORK, Web3AuthMPCCoreKit, deriveShareCoefficients, ed25519, fraction, generateEd25519Seed, generateFactorKey, generateSessionNonce, generateTSSEndpoints, getHashedPrivateKey, getSessionId, keyToMnemonic, lagrangeCoefficient, lagrangeCoefficients, log, makeEthereumSigner, mnemonicToKey, parseToken, randomBytes, sampleEndpoints, scalarBNToBufferSEC1, sigToRSV, storageAvailable }; diff --git a/package/dist/mpcCoreKit.umd.min.js b/package/dist/mpcCoreKit.umd.min.js deleted file mode 100644 index 883a91dd..00000000 --- a/package/dist/mpcCoreKit.umd.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see mpcCoreKit.umd.min.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.MpcCoreKit=t():e.MpcCoreKit=t()}(self,(()=>(()=>{var e={9090:(e,t)=>{var r;function i(e,t){navigator.onLine||e("offline"),e("error",t)}function n(e,t,r){navigator.serviceWorker.register(e,r).then((function(e){t("registered",e),e.waiting?t("updated",e):e.onupdatefound=function(){t("updatefound",e);var r=e.installing;r.onstatechange=function(){"installed"===r.state&&(navigator.serviceWorker.controller?t("updated",e):t("cached",e))}}})).catch((function(e){return i(t,e)}))}"undefined"!=typeof window&&(r="undefined"==typeof document||"interactive"!==document.readyState&&"complete"!==document.readyState?"undefined"!=typeof Promise?new Promise((function(e){return window.addEventListener("load",e)})):{then:function(e){return window.addEventListener("load",e)}}:Promise.resolve()),t.k=function(e,t){void 0===t&&(t={});var s=t.registrationOptions;void 0===s&&(s={}),delete t.registrationOptions;var o=function(e){for(var r=[],i=arguments.length-1;i-- >0;)r[i]=arguments[i+1];t&&t[e]&&t[e].apply(t,r)};"serviceWorker"in navigator&&r.then((function(){Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/))?(function(e,t,r){fetch(e).then((function(i){404===i.status?(t("error",new Error("Service worker not found at "+e)),unregister()):-1===i.headers.get("content-type").indexOf("javascript")?(t("error",new Error("Expected "+e+" to have javascript content-type, but received "+i.headers.get("content-type"))),unregister()):n(e,t,r)})).catch((function(e){return i(t,e)}))}(e,o,s),navigator.serviceWorker.ready.then((function(e){o("ready",e)})).catch((function(e){return i(o,e)}))):(n(e,o,s),navigator.serviceWorker.ready.then((function(e){o("ready",e)})).catch((function(e){return i(o,e)})))}))}},1352:(e,t,r)=>{"use strict";r.d(t,{BroadcastChannel:()=>je});var i={};r.r(i),r.d(i,{averageResponseTime:()=>x,canBeUsed:()=>_,close:()=>v,create:()=>b,microSeconds:()=>m,onMessage:()=>S,postMessage:()=>w,type:()=>g});var n={};r.r(n),r.d(n,{TRANSACTION_SETTINGS:()=>T,averageResponseTime:()=>Y,canBeUsed:()=>V,cleanOldMessages:()=>U,close:()=>z,commitIndexedDBTransaction:()=>K,create:()=>j,createDatabase:()=>C,getAllMessages:()=>R,getIdb:()=>N,getMessagesHigherThan:()=>B,getOldMessages:()=>D,microSeconds:()=>E,onMessage:()=>H,postMessage:()=>J,removeMessagesById:()=>F,type:()=>O,writeMessage:()=>L});var s={};r.r(s),r.d(s,{addStorageEventListener:()=>te,averageResponseTime:()=>ae,canBeUsed:()=>oe,close:()=>ne,create:()=>ie,getLocalStorage:()=>Q,microSeconds:()=>W,onMessage:()=>se,postMessage:()=>ee,removeStorageEventListener:()=>re,storageKey:()=>Z,type:()=>G});var o={};r.r(o),r.d(o,{averageResponseTime:()=>Ee,canBeUsed:()=>Me,close:()=>ke,create:()=>xe,getSocketInstance:()=>we,microSeconds:()=>le,onMessage:()=>Pe,postMessage:()=>ve,removeStorageEventListener:()=>_e,setupSocketConnection:()=>Se,storageKey:()=>be,type:()=>ye});var a={};r.r(a),r.d(a,{SIMULATE_DELAY_TIME:()=>Oe,averageResponseTime:()=>Be,canBeUsed:()=>Re,close:()=>Ke,create:()=>Ne,microSeconds:()=>Ie,onMessage:()=>Le,postMessage:()=>Ce,type:()=>Ae});var c=r(3065),h=r.n(c);Promise.resolve(!1),Promise.resolve(!0);const d=Promise.resolve();function u(e,t){return e||(e=0),new Promise((r=>setTimeout((()=>r(t)),e)))}function f(){return Math.random().toString(36).substring(2)}let l=0;function p(){let e=1e3*Date.now();return e<=l&&(e=l+1),l=e,e}const y=h().getLogger("broadcast-channel");y.setLevel("error");const m=p,g="native";function b(e){const t={time:p(),messagesCallback:null,bc:new BroadcastChannel(e),subFns:[]};return t.bc.onmessage=e=>{t.messagesCallback&&t.messagesCallback(e.data)},t}function v(e){e.bc.close(),e.subFns=[]}function w(e,t){try{return e.bc.postMessage(t,!1),d}catch(e){return Promise.reject(e)}}function S(e,t){e.messagesCallback=t}function _(){if("undefined"==typeof window)return!1;if("function"==typeof BroadcastChannel){if(BroadcastChannel._pubkey)throw new Error("BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill");return!0}return!1}function x(){return 150}class k{ttl;map=new Map;_to=!1;constructor(e){this.ttl=e}has(e){return this.map.has(e)}add(e){this.map.set(e,P()),this._to||(this._to=!0,setTimeout((()=>{this._to=!1,function(e){const t=P()-e.ttl,r=e.map[Symbol.iterator]();for(;;){const i=r.next().value;if(!i)return;const n=i[0];if(!(i[1]{e.target.result.createObjectStore(A,{keyPath:"id",autoIncrement:!0})},new Promise(((e,t)=>{i.onerror=e=>t(e),i.onsuccess=()=>{e(i.result)}}))}function L(e,t,r){const i={uuid:t,time:Date.now(),data:r},n=e.transaction([A],"readwrite",T);return new Promise(((e,t)=>{n.oncomplete=()=>e(),n.onerror=e=>t(e),n.objectStore(A).add(i),K(n)}))}function R(e){const t=e.transaction(A,"readonly",T),r=t.objectStore(A),i=[];return new Promise((e=>{r.openCursor().onsuccess=r=>{const n=r.target.result;n?(i.push(n.value),n.continue()):(K(t),e(i))}}))}function B(e,t){const r=e.transaction(A,"readonly",T),i=r.objectStore(A),n=[];let s=IDBKeyRange.bound(t+1,1/0);if(i.getAll){const e=i.getAll(s);return new Promise(((t,r)=>{e.onerror=e=>r(e),e.onsuccess=function(e){t(e.target.result)}}))}return new Promise(((e,o)=>{const a=function(){try{return s=IDBKeyRange.bound(t+1,1/0),i.openCursor(s)}catch(e){return i.openCursor()}}();a.onerror=e=>o(e),a.onsuccess=i=>{const s=i.target.result;s?s.value.id{const t=r.delete(e);return new Promise((e=>{t.onsuccess=()=>e()}))})))}function D(e,t){const r=Date.now()-t,i=e.transaction(A,"readonly",T),n=i.objectStore(A),s=[];return new Promise((e=>{n.openCursor().onsuccess=t=>{const n=t.target.result;if(n){const t=n.value;if(!(t.timeF(e,t.map((e=>e.id)))))}function j(e,t){return t=M(t),C(e).then((r=>{const i={closed:!1,lastCursorId:0,channelName:e,options:t,uuid:f(),eMIs:new k(2*t.idb.ttl),writeBlockPromise:d,messagesCallback:null,readQueuePromises:[],db:r,time:p()};return r.onclose=function(){i.closed=!0,t.idb.onclose&&t.idb.onclose()},q(i),i}))}function q(e){e.closed||$(e).then((()=>u(e.options.idb.fallbackInterval))).then((()=>q(e)))}function $(e){return e.closed?d:e.messagesCallback?B(e.db,e.lastCursorId).then((t=>{const r=t.filter((e=>!!e)).map((t=>(t.id>e.lastCursorId&&(e.lastCursorId=t.id),t))).filter((t=>function(e,t){return!(e.uuid===t.uuid||t.eMIs.has(e.id)||e.data.timee.time-t.time));return r.forEach((t=>{e.messagesCallback&&(e.eMIs.add(t.id),e.messagesCallback(t.data))})),d})):d}function z(e){e.closed=!0,e.db.close()}function J(e,t){return e.writeBlockPromise=e.writeBlockPromise.then((()=>L(e.db,e.uuid,t))).then((()=>{0===Math.floor(11*Math.random()+0)&&U(e.db,e.options.idb.ttl)})),e.writeBlockPromise}function H(e,t,r){e.messagesCallbackTime=r,e.messagesCallback=t,$(e)}function V(){return!!N()}function Y(e){return 2*e.idb.fallbackInterval}const W=p,X="pubkey.broadcastChannel-",G="localstorage";function Q(){let e;if("undefined"==typeof window)return null;try{e=window.localStorage,e=window["ie8-eventlistener/storage"]||window.localStorage}catch(e){}return e}function Z(e){return X+e}function ee(e,t){return new Promise((r=>{u().then((()=>{const i=Z(e.channelName),n={token:f(),time:Date.now(),data:t,uuid:e.uuid},s=JSON.stringify(n);Q().setItem(i,s);const o=document.createEvent("Event");o.initEvent("storage",!0,!0),o.key=i,o.newValue=s,window.dispatchEvent(o),r()}))}))}function te(e,t){const r=Z(e),i=e=>{e.key===r&&t(JSON.parse(e.newValue))};return window.addEventListener("storage",i),i}function re(e){window.removeEventListener("storage",e)}function ie(e,t){if(t=M(t),!oe())throw new Error("BroadcastChannel: localstorage cannot be used");const r=f(),i=new k(t.localstorage.removeTimeout),n={channelName:e,uuid:r,time:p(),eMIs:i};return n.listener=te(e,(e=>{n.messagesCallback&&e.uuid!==r&&e.token&&!i.has(e.token)&&(e.data.time&&e.data.time{u().then((async()=>{const n=be(e.channelName),s=(0,de.S)(fe.from(n,"utf8")),o=await(0,ue.yv)(s.toString("hex"),{token:f(),time:Date.now(),data:t,uuid:e.uuid}),a={sameOriginCheck:!0,sameIpCheck:!0,key:(0,he.qb)(s).toString("hex"),data:o,signature:(await(0,he._S)(s,(0,de.S)(fe.from(o,"utf8")))).toString("hex")};return e.timeout&&(a.timeout=e.timeout),fetch(e.serverUrl+"/channel/set",{method:"POST",body:JSON.stringify(a),headers:{"Content-Type":"application/json; charset=utf-8"}}).then(r).catch(i)}))}))}function we(e){if(me)return me;const t=(0,ce.io)(e,{transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:10});return t.on("connect_error",(e=>{t.io.opts.transports=["polling","websocket"],y.error("connect error",e)})),t.on("connect",(async()=>{const{engine:e}=t.io;y.debug("initially connected to",e.transport.name),e.once("upgrade",(()=>{y.debug("upgraded",e.transport.name)})),e.once("close",(e=>{y.debug("connection closed",e)}))})),t.on("error",(e=>{y.error("socket errored",e),t.disconnect()})),me=t,t}function Se(e,t,r){const i=we(e),n=be(t.channelName),s=(0,de.S)(fe.from(n,"utf8")),o=(0,he.qb)(s).toString("hex");i.connected?i.emit("check_auth_status",o,{sameOriginCheck:!0,sameIpCheck:!0}):i.once("connect",(()=>{y.debug("connected with socket"),i.emit("check_auth_status",o,{sameOriginCheck:!0,sameIpCheck:!0})}));const a=()=>{i.once("connect",(async()=>{ge.has(t.channelName)&&i.emit("check_auth_status",o,{sameOriginCheck:!0,sameIpCheck:!0})}))},c=()=>{i&&ge.has(t.channelName)?i.connected||"visible"!==document.visibilityState||a():document.removeEventListener("visibilitychange",c)};return i.on("disconnect",(()=>{y.debug("socket disconnected"),ge.has(t.channelName)&&(y.error("socket disconnected unexpectedly, reconnecting socket"),a())})),i.on(`${o}_success`,(async e=>{try{const t=await(0,ue.af)(s.toString("hex"),e);y.info(t),r(t)}catch(e){y.error(e)}})),"undefined"!=typeof document&&document.addEventListener("visibilitychange",c),i}function _e(){me&&me.disconnect()}function xe(e,t){t=M(t);const r={channelName:e,uuid:f(),eMIs:new k(t.server.removeTimeout),serverUrl:t.server.url,time:p()};return t.server.timeout&&(r.timeout=t.server.timeout),Se(t.server.url,r,(e=>{r.messagesCallback&&e.uuid!==r.uuid&&e.token&&!r.eMIs.has(e.token)&&(r.eMIs.add(e.token),r.messagesCallback(e.data))})),ge.add(e),r}function ke(e){ge.delete(e.channelName)}function Pe(e,t,r){e.messagesCallbackTime=r,e.messagesCallback=t}function Me(){return!0}function Ee(){return 500}const Ie=p,Ae="simulate",Te=new Set,Oe=5;function Ne(e){const t={time:p(),name:e,messagesCallback:null};return Te.add(t),t}function Ke(e){Te.delete(e)}function Ce(e,t){return new Promise((r=>setTimeout((()=>{Array.from(Te).forEach((r=>{r.name===e.name&&r!==e&&r.messagesCallback&&r.timet.type===e.type));if(r)return r;throw new Error("method-type "+e.type+" not found")}e.webWorkerSupport||(t=t.filter((e=>"idb"!==e.type)));const r=t.find((t=>t.canBeUsed(e)));if(r)return r;throw new Error(`No useable method found in ${JSON.stringify(Fe.map((e=>e.type)))}`)}(this.options),this._iL=!1,this._onML=null,this._addEL={message:[],internal:[]},this._uMP=new Set,this._befC=[],this._prepP=null,function(e){const t=e.method.create(e.name,e.options);var r;(r=t)&&"function"==typeof r.then?(e._prepP=t,t.then((t=>{e._state=t}))):e._state=t}(this)};function qe(e,t,r){const i={time:e.method.microSeconds(),type:t,data:r};return(e._prepP?e._prepP:d).then((()=>{const t=e.method.postMessage(e._state,i);return e._uMP.add(t),t.catch().then((()=>e._uMP.delete(t))),t}))}function $e(e){return e._addEL.message.length>0||e._addEL.internal.length>0}function ze(e,t,r){e._addEL[t].push(r),function(e){if(!e._iL&&$e(e)){const t=t=>{e._addEL[t.type].forEach((r=>{(t.time>=r.time||"server"===e.method.type)&&r.fn(t.data)}))},r=e.method.microSeconds();e._prepP?e._prepP.then((()=>{e._iL=!0,e.method.onMessage(e._state,t,r)})):(e._iL=!0,e.method.onMessage(e._state,t,r))}}(e)}function Je(e,t,r){e._addEL[t]=e._addEL[t].filter((e=>e!==r)),function(e){if(e._iL&&!$e(e)){e._iL=!1;const t=e.method.microSeconds();e.method.onMessage(e._state,null,t)}}(e)}je._pubkey=!0,je.prototype={postMessage(e){if(this.closed)throw new Error("BroadcastChannel.postMessage(): Cannot post message after channel has closed "+JSON.stringify(e));return qe(this,"message",e)},postInternal(e){return qe(this,"internal",e)},set onmessage(e){const t={time:this.method.microSeconds(),fn:e};Je(this,"message",this._onML),e&&"function"==typeof e?(this._onML=t,ze(this,"message",t)):this._onML=null},addEventListener(e,t){ze(this,e,{time:this.method.microSeconds(),fn:t})},removeEventListener(e,t){Je(this,e,this._addEL[e].find((e=>e.fn===t)))},close(){if(this.closed)return;De.delete(this),this.closed=!0;const e=this._prepP?this._prepP:d;return this._onML=null,this._addEL.message=[],e.then((()=>Promise.all(Array.from(this._uMP)))).then((()=>Promise.all(this._befC.map((e=>e()))))).then((()=>this.method.close(this._state)))},get type(){return this.method.type},get isClosed(){return this.closed}}},9024:(e,t,r)=>{"use strict";r.d(t,{F_:()=>b,Yc:()=>k,_S:()=>w,qb:()=>v,w:()=>x});var i=r(6729),n=r(8287).hp;const s=new i.ec("secp256k1"),o=globalThis.crypto||globalThis.msCrypto||{},a=o.subtle||o.webkitSubtle,c=n.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),h=n.alloc(32,0);function d(e,t){if(!e)throw new Error(t||"Assertion failed")}function u(e){return t=e,!(!n.isBuffer(t)||32!==t.length)&&e.compare(h)>0&&e.compare(c)<0;var t}function f(e){if(void 0===o.getRandomValues)return n.from(o.randomBytes(e));const t=new Uint8Array(e);return o.getRandomValues(t),n.from(t)}async function l(e){if(!o.createHash){const t=await a.digest("SHA-512",e);return new Uint8Array(t)}const t=o.createHash("sha512").update(e).digest();return new Uint8Array(t)}function p(e){return async function(t,r,i){if(a&&a[e]&&a.importKey){const s={name:"AES-CBC"},o=await a.importKey("raw",r,s,!1,[e]),c={name:"AES-CBC",iv:t},h=await a[e](c,o,i);return n.from(new Uint8Array(h))}if("encrypt"===e&&o.createCipheriv){const e=o.createCipheriv("aes-256-cbc",r,t),s=e.update(i),a=e.final();return n.concat([s,a])}if("decrypt"===e&&o.createDecipheriv){const e=o.createDecipheriv("aes-256-cbc",r,t),s=e.update(i),a=e.final();return n.concat([s,a])}throw new Error(`Unsupported operation: ${e}`)}}const y=p("encrypt"),m=p("decrypt");async function g(e,t){if(!o.createHmac){const r={name:"HMAC",hash:{name:"SHA-256"}},i=await a.importKey("raw",new Uint8Array(e),r,!1,["sign","verify"]),s=await a.sign("HMAC",i,t);return n.from(new Uint8Array(s))}const r=o.createHmac("sha256",n.from(e));return r.update(t),r.digest()}const b=function(){let e=f(32);for(;!u(e);)e=f(32);return e},v=function(e){return d(32===e.length,"Bad private key"),d(u(e),"Bad private key"),n.from(s.keyFromPrivate(e).getPublic("array"))},w=async function(e,t){return d(32===e.length,"Bad private key"),d(u(e),"Bad private key"),d(t.length>0,"Message should not be empty"),d(t.length<=32,"Message is too long"),n.from(s.sign(t,e,{canonical:!0}).toDER())},S=async function(e,t){d(n.isBuffer(e),"Bad private key"),d(n.isBuffer(t),"Bad public key"),d(32===e.length,"Bad private key"),d(u(e),"Bad private key"),d(65===t.length||33===t.length,"Bad public key"),65===t.length&&d(4===t[0],"Bad public key"),33===t.length&&d(2===t[0]||3===t[0],"Bad public key");const r=s.keyFromPrivate(e),i=s.keyFromPublic(t),o=r.derive(i.getPublic());return n.from(o.toArray())},_=async function(e,t){d(n.isBuffer(e),"Bad private key"),d(n.isBuffer(t),"Bad public key"),d(32===e.length,"Bad private key"),d(u(e),"Bad private key"),d(65===t.length||33===t.length,"Bad public key"),65===t.length&&d(4===t[0],"Bad public key"),33===t.length&&d(2===t[0]||3===t[0],"Bad public key");const r=s.keyFromPrivate(e),i=s.keyFromPublic(t),o=r.derive(i.getPublic());return n.from(o.toString(16,64),"hex")},x=async function(e,t,r){let i=(r=r||{}).ephemPrivateKey||f(32);for(;!u(i);)i=r.ephemPrivateKey||f(32);const s=v(i),o=await S(i,e),a=await l(o),c=r.iv||f(16),h=a.slice(0,32),d=a.slice(32),p=await y(c,n.from(h),t),m=n.concat([c,s,p]);return{iv:c,ephemPublicKey:s,ciphertext:p,mac:await g(n.from(d),m)}},k=async function(e,t,r){const i=null!=r&&r,s=i?_:S,o=await s(e,t.ephemPublicKey),a=await l(o),c=a.slice(0,32),h=a.slice(32),d=n.concat([t.iv,t.ephemPublicKey,t.ciphertext]),u=await async function(e,t,r){return function(e,t){if(e.length!==t.length)return!1;let r=0;for(let i=0;i{"use strict";r.d(t,{S:()=>o,ec:()=>a});var i=r(6729),n=r(9463),s=r(8287).hp;function o(e){return s.from((0,n.So)(e))}const a=new i.ec("secp256k1")},8303:(e,t,r)=>{"use strict";r.d(t,{af:()=>a,yv:()=>o});var i=r(9024),n=r(3077),s=r(8287).hp;async function o(e,t){const r=JSON.stringify(t),n=s.from(r,"utf-8"),o=(a=await(0,i.w)((0,i.qb)(s.from(e,"hex")),n),{iv:s.from(a.iv).toString("hex"),ephemPublicKey:s.from(a.ephemPublicKey).toString("hex"),ciphertext:s.from(a.ciphertext).toString("hex"),mac:s.from(a.mac).toString("hex")});var a;return JSON.stringify(o)}async function a(e,t){const r=(c=JSON.parse(t),{iv:s.from(c.iv,"hex"),ephemPublicKey:s.from(c.ephemPublicKey,"hex"),ciphertext:s.from(c.ciphertext,"hex"),mac:s.from(c.mac,"hex")}),o=n.ec.keyFromPrivate(e),a=(await(0,i.Yc)(s.from(o.getPrivate().toString("hex",64),"hex"),r)).toString("utf-8");var c;return JSON.parse(a)}},6674:(e,t,r)=>{(()=>{"use strict";var t={n:e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},d:(e,r)=>{for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},i={};t.r(i),t.d(i,{AwaitableMap:()=>o,MapQueue:()=>a,deriveShareCoefficients:()=>l,fraction:()=>d,lagrangeCoefficient:()=>u,lagrangeCoefficients:()=>f});const n=r(3693);var s=t.n(n);class o{constructor(){s()(this,"map",new Map),s()(this,"queue",new Map)}get size(){return this.map.size}getSync(e){return this.map.get(e)}async get(e,t=0){return this.map.get(e)||new Promise((r=>{const i={resolve:r,timeout:setTimeout((()=>{const t=this.queue.get(e);if(t){const e=t.indexOf(i);e>=0&&t.splice(e,1)}r(void 0)}),t)};let n=this.queue.get(e);n||(n=[],this.queue.set(e,n)),n.push(i)}))}set(e,t){this.map.set(e,t);const r=this.queue.get(e);if(r){for(const e of r)clearTimeout(e.timeout),e.resolve(t);this.queue.delete(e)}}delete(e){this.map.delete(e),this.queue.delete(e)}forEach(e){this.map.forEach(e)}clear(){this.map.clear(),this.queue.clear()}}class a{constructor(){s()(this,"buffer",new Map),s()(this,"queue",new Map)}async pop(e,t=0){const r=this.buffer.get(e);return r&&r.length>0?r.splice(0,1)[0]:new Promise((r=>{const i={resolve:r,timeout:setTimeout((()=>{const t=this.queue.get(e);if(t){const e=t.indexOf(i);e>=0&&t.splice(e,1)}r(void 0)}),t)};let n=this.queue.get(e);n||(n=[],this.queue.set(e,n)),n.push(i)}))}push(e,t){const r=this.queue.get(e);if(r&&r.length>0){const e=r.splice(0,1)[0];return clearTimeout(e.timeout),void e.resolve(t)}let i=this.buffer.get(e);i||(i=[],this.buffer.set(e,i)),i.push(t)}delete(e){this.buffer.delete(e),this.queue.delete(e)}forEach(e){this.buffer.forEach(((t,r)=>{t.forEach((t=>{e(t,r)}))}))}clear(){this.buffer.clear(),this.queue.clear()}}const c=r(9404);var h=t.n(c);function d(e,t,r){return e.mul(t.invm(r)).umod(r)}function u(e,t,r,i){return e.filter(((e,r)=>r!==t)).reduce(((n,s)=>{const o=d(r.sub(s),e[t].sub(s),i);return n.mul(o).umod(i)}),new(h())(1))}function f(e,t,r){const i=e.map((e=>new(h())(e))),n=new(h())(t);return i.map(((e,t)=>u(i,t,n,r)))}function l(e,t,r,i=1,n=2){const s=f([i,n],0,r),o=f(e,0,r);if(e.includes(t))throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${e} ${t}`);const a=f([t,...e],0,r);return{serverCoefficients:o.map(((e,t)=>d(s[0].mul(e),a[t+1],r))),clientCoefficient:d(s[1],a[0],r)}}e.exports=i})()},7526:(e,t)=>{"use strict";t.byteLength=function(e){var t=a(e),r=t[0],i=t[1];return 3*(r+i)/4-i},t.toByteArray=function(e){var t,r,s=a(e),o=s[0],c=s[1],h=new n(function(e,t,r){return 3*(t+r)/4-r}(0,o,c)),d=0,u=c>0?o-4:o;for(r=0;r>16&255,h[d++]=t>>8&255,h[d++]=255&t;return 2===c&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,h[d++]=255&t),1===c&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,h[d++]=t>>8&255,h[d++]=255&t),h},t.fromByteArray=function(e){for(var t,i=e.length,n=i%3,s=[],o=16383,a=0,h=i-n;ah?h:a+o));return 1===n?(t=e[i-1],s.push(r[t>>2]+r[t<<4&63]+"==")):2===n&&(t=(e[i-2]<<8)+e[i-1],s.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),s.join("")};for(var r=[],i=[],n="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)r[o]=s[o],i[s.charCodeAt(o)]=o;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,i){for(var n,s,o=[],a=t;a>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},2788:(e,t,r)=>{"use strict";var i=r(8287).hp,n=r(2931);function s(e,t){return void 0===t&&(t="utf8"),i.isBuffer(e)?a(e.toString("base64")):a(i.from(e,t).toString("base64"))}function o(e){return e=e.toString(),n.default(e).replace(/\-/g,"+").replace(/_/g,"/")}function a(e){return e.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}var c=s;c.encode=s,c.decode=function(e,t){return void 0===t&&(t="utf8"),i.from(o(e),"base64").toString(t)},c.toBase64=o,c.fromBase64=a,c.toBuffer=function(e){return i.from(o(e),"base64")},t.default=c},2931:(e,t,r)=>{"use strict";var i=r(8287).hp;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.length,r=t%4;if(!r)return e;var n=t,s=4-r,o=t+s,a=i.alloc(o);for(a.write(e);s--;)a.write("=",n++);return a.toString()}},4711:(e,t,r)=>{e.exports=r(2788).default,e.exports.default=e.exports},9404:function(e,t,r){!function(e,t){"use strict";function i(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function s(e,t,r){if(s.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=s:t.BN=s,s.BN=s,s.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(7790).Buffer}catch(e){}function a(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void i(!1,"Invalid character in "+e)}function c(e,t,r){var i=a(e,r);return r-1>=t&&(i|=a(e,r-1)<<4),i}function h(e,t,r,n){for(var s=0,o=0,a=Math.min(e.length,r),c=t;c=49?h-49+10:h>=17?h-17+10:h,i(h>=0&&o0?e:t},s.min=function(e,t){return e.cmp(t)<0?e:t},s.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),i(t===(0|t)&&t>=2&&t<=36);var n=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n=0;n-=3)o=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[s]|=o<>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===r)for(n=0,s=0;n>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},s.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var i=0;i=t;i-=2)n=c(e,t,i)<=18?(s-=18,o+=1,this.words[o]|=n>>>26):s+=8;else for(i=(e.length-t)%2==0?t+1:t;i=18?(s-=18,o+=1,this.words[o]|=n>>>26):s+=8;this._strip()},s.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=t)i++;i--,n=n/t|0;for(var s=e.length-r,o=s%i,a=Math.min(s,s-o)+r,c=0,d=r;d1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{s.prototype[Symbol.for("nodejs.util.inspect.custom")]=u}catch(e){s.prototype.inspect=u}else s.prototype.inspect=u;function u(){return(this.red?""}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function y(e,t,r){r.negative=t.negative^e.negative;var i=e.length+t.length|0;r.length=i,i=i-1|0;var n=0|e.words[0],s=0|t.words[0],o=n*s,a=67108863&o,c=o/67108864|0;r.words[0]=a;for(var h=1;h>>26,u=67108863&c,f=Math.min(h,t.length-1),l=Math.max(0,h-e.length+1);l<=f;l++){var p=h-l|0;d+=(o=(n=0|e.words[p])*(s=0|t.words[l])+u)/67108864|0,u=67108863&o}r.words[h]=0|u,c=0|d}return 0!==c?r.words[h]=0|c:r.length--,r._strip()}s.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var n=0,s=0,o=0;o>>24-n&16777215,(n+=2)>=26&&(n-=26,o--),r=0!==s||o!==this.length-1?f[6-c.length]+c+r:c+r}for(0!==s&&(r=s.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var h=l[e],d=p[e];r="";var u=this.clone();for(u.negative=0;!u.isZero();){var y=u.modrn(d).toString(e);r=(u=u.idivn(d)).isZero()?y+r:f[h-y.length]+y+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},s.prototype.toJSON=function(){return this.toString(16,2)},o&&(s.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),s.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},s.prototype.toArrayLike=function(e,t,r){this._strip();var n=this.byteLength(),s=r||Math.max(1,n);i(n<=s,"byte array longer than desired length"),i(s>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,n),o},s.prototype._toArrayLikeLE=function(e,t){for(var r=0,i=0,n=0,s=0;n>8&255),r>16&255),6===s?(r>24&255),i=0,s=0):(i=o>>>24,s+=2)}if(r=0&&(e[r--]=o>>8&255),r>=0&&(e[r--]=o>>16&255),6===s?(r>=0&&(e[r--]=o>>24&255),i=0,s=0):(i=o>>>24,s+=2)}if(r>=0)for(e[r--]=i;r>=0;)e[r--]=0},Math.clz32?s.prototype._countBits=function(e){return 32-Math.clz32(e)}:s.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},s.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},s.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},s.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},s.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},s.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},s.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var i=0;ie.length?this.clone().ixor(e):e.clone().ixor(this)},s.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},s.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this._strip()},s.prototype.notn=function(e){return this.clone().inotn(e)},s.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var r=e/26|0,n=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,i=e):(r=e,i=this);for(var n=0,s=0;s>>26;for(;0!==n&&s>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;se.length?this.clone().iadd(e):e.clone().iadd(this)},s.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,i,n=this.cmp(e);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=e):(r=e,i=this);for(var s=0,o=0;o>26,this.words[o]=67108863&t;for(;0!==s&&o>26,this.words[o]=67108863&t;if(0===s&&o>>13,l=0|o[1],p=8191&l,y=l>>>13,m=0|o[2],g=8191&m,b=m>>>13,v=0|o[3],w=8191&v,S=v>>>13,_=0|o[4],x=8191&_,k=_>>>13,P=0|o[5],M=8191&P,E=P>>>13,I=0|o[6],A=8191&I,T=I>>>13,O=0|o[7],N=8191&O,K=O>>>13,C=0|o[8],L=8191&C,R=C>>>13,B=0|o[9],F=8191&B,D=B>>>13,U=0|a[0],j=8191&U,q=U>>>13,$=0|a[1],z=8191&$,J=$>>>13,H=0|a[2],V=8191&H,Y=H>>>13,W=0|a[3],X=8191&W,G=W>>>13,Q=0|a[4],Z=8191&Q,ee=Q>>>13,te=0|a[5],re=8191&te,ie=te>>>13,ne=0|a[6],se=8191&ne,oe=ne>>>13,ae=0|a[7],ce=8191&ae,he=ae>>>13,de=0|a[8],ue=8191&de,fe=de>>>13,le=0|a[9],pe=8191&le,ye=le>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(h+(i=Math.imul(u,j))|0)+((8191&(n=(n=Math.imul(u,q))+Math.imul(f,j)|0))<<13)|0;h=((s=Math.imul(f,q))+(n>>>13)|0)+(me>>>26)|0,me&=67108863,i=Math.imul(p,j),n=(n=Math.imul(p,q))+Math.imul(y,j)|0,s=Math.imul(y,q);var ge=(h+(i=i+Math.imul(u,z)|0)|0)+((8191&(n=(n=n+Math.imul(u,J)|0)+Math.imul(f,z)|0))<<13)|0;h=((s=s+Math.imul(f,J)|0)+(n>>>13)|0)+(ge>>>26)|0,ge&=67108863,i=Math.imul(g,j),n=(n=Math.imul(g,q))+Math.imul(b,j)|0,s=Math.imul(b,q),i=i+Math.imul(p,z)|0,n=(n=n+Math.imul(p,J)|0)+Math.imul(y,z)|0,s=s+Math.imul(y,J)|0;var be=(h+(i=i+Math.imul(u,V)|0)|0)+((8191&(n=(n=n+Math.imul(u,Y)|0)+Math.imul(f,V)|0))<<13)|0;h=((s=s+Math.imul(f,Y)|0)+(n>>>13)|0)+(be>>>26)|0,be&=67108863,i=Math.imul(w,j),n=(n=Math.imul(w,q))+Math.imul(S,j)|0,s=Math.imul(S,q),i=i+Math.imul(g,z)|0,n=(n=n+Math.imul(g,J)|0)+Math.imul(b,z)|0,s=s+Math.imul(b,J)|0,i=i+Math.imul(p,V)|0,n=(n=n+Math.imul(p,Y)|0)+Math.imul(y,V)|0,s=s+Math.imul(y,Y)|0;var ve=(h+(i=i+Math.imul(u,X)|0)|0)+((8191&(n=(n=n+Math.imul(u,G)|0)+Math.imul(f,X)|0))<<13)|0;h=((s=s+Math.imul(f,G)|0)+(n>>>13)|0)+(ve>>>26)|0,ve&=67108863,i=Math.imul(x,j),n=(n=Math.imul(x,q))+Math.imul(k,j)|0,s=Math.imul(k,q),i=i+Math.imul(w,z)|0,n=(n=n+Math.imul(w,J)|0)+Math.imul(S,z)|0,s=s+Math.imul(S,J)|0,i=i+Math.imul(g,V)|0,n=(n=n+Math.imul(g,Y)|0)+Math.imul(b,V)|0,s=s+Math.imul(b,Y)|0,i=i+Math.imul(p,X)|0,n=(n=n+Math.imul(p,G)|0)+Math.imul(y,X)|0,s=s+Math.imul(y,G)|0;var we=(h+(i=i+Math.imul(u,Z)|0)|0)+((8191&(n=(n=n+Math.imul(u,ee)|0)+Math.imul(f,Z)|0))<<13)|0;h=((s=s+Math.imul(f,ee)|0)+(n>>>13)|0)+(we>>>26)|0,we&=67108863,i=Math.imul(M,j),n=(n=Math.imul(M,q))+Math.imul(E,j)|0,s=Math.imul(E,q),i=i+Math.imul(x,z)|0,n=(n=n+Math.imul(x,J)|0)+Math.imul(k,z)|0,s=s+Math.imul(k,J)|0,i=i+Math.imul(w,V)|0,n=(n=n+Math.imul(w,Y)|0)+Math.imul(S,V)|0,s=s+Math.imul(S,Y)|0,i=i+Math.imul(g,X)|0,n=(n=n+Math.imul(g,G)|0)+Math.imul(b,X)|0,s=s+Math.imul(b,G)|0,i=i+Math.imul(p,Z)|0,n=(n=n+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,s=s+Math.imul(y,ee)|0;var Se=(h+(i=i+Math.imul(u,re)|0)|0)+((8191&(n=(n=n+Math.imul(u,ie)|0)+Math.imul(f,re)|0))<<13)|0;h=((s=s+Math.imul(f,ie)|0)+(n>>>13)|0)+(Se>>>26)|0,Se&=67108863,i=Math.imul(A,j),n=(n=Math.imul(A,q))+Math.imul(T,j)|0,s=Math.imul(T,q),i=i+Math.imul(M,z)|0,n=(n=n+Math.imul(M,J)|0)+Math.imul(E,z)|0,s=s+Math.imul(E,J)|0,i=i+Math.imul(x,V)|0,n=(n=n+Math.imul(x,Y)|0)+Math.imul(k,V)|0,s=s+Math.imul(k,Y)|0,i=i+Math.imul(w,X)|0,n=(n=n+Math.imul(w,G)|0)+Math.imul(S,X)|0,s=s+Math.imul(S,G)|0,i=i+Math.imul(g,Z)|0,n=(n=n+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,s=s+Math.imul(b,ee)|0,i=i+Math.imul(p,re)|0,n=(n=n+Math.imul(p,ie)|0)+Math.imul(y,re)|0,s=s+Math.imul(y,ie)|0;var _e=(h+(i=i+Math.imul(u,se)|0)|0)+((8191&(n=(n=n+Math.imul(u,oe)|0)+Math.imul(f,se)|0))<<13)|0;h=((s=s+Math.imul(f,oe)|0)+(n>>>13)|0)+(_e>>>26)|0,_e&=67108863,i=Math.imul(N,j),n=(n=Math.imul(N,q))+Math.imul(K,j)|0,s=Math.imul(K,q),i=i+Math.imul(A,z)|0,n=(n=n+Math.imul(A,J)|0)+Math.imul(T,z)|0,s=s+Math.imul(T,J)|0,i=i+Math.imul(M,V)|0,n=(n=n+Math.imul(M,Y)|0)+Math.imul(E,V)|0,s=s+Math.imul(E,Y)|0,i=i+Math.imul(x,X)|0,n=(n=n+Math.imul(x,G)|0)+Math.imul(k,X)|0,s=s+Math.imul(k,G)|0,i=i+Math.imul(w,Z)|0,n=(n=n+Math.imul(w,ee)|0)+Math.imul(S,Z)|0,s=s+Math.imul(S,ee)|0,i=i+Math.imul(g,re)|0,n=(n=n+Math.imul(g,ie)|0)+Math.imul(b,re)|0,s=s+Math.imul(b,ie)|0,i=i+Math.imul(p,se)|0,n=(n=n+Math.imul(p,oe)|0)+Math.imul(y,se)|0,s=s+Math.imul(y,oe)|0;var xe=(h+(i=i+Math.imul(u,ce)|0)|0)+((8191&(n=(n=n+Math.imul(u,he)|0)+Math.imul(f,ce)|0))<<13)|0;h=((s=s+Math.imul(f,he)|0)+(n>>>13)|0)+(xe>>>26)|0,xe&=67108863,i=Math.imul(L,j),n=(n=Math.imul(L,q))+Math.imul(R,j)|0,s=Math.imul(R,q),i=i+Math.imul(N,z)|0,n=(n=n+Math.imul(N,J)|0)+Math.imul(K,z)|0,s=s+Math.imul(K,J)|0,i=i+Math.imul(A,V)|0,n=(n=n+Math.imul(A,Y)|0)+Math.imul(T,V)|0,s=s+Math.imul(T,Y)|0,i=i+Math.imul(M,X)|0,n=(n=n+Math.imul(M,G)|0)+Math.imul(E,X)|0,s=s+Math.imul(E,G)|0,i=i+Math.imul(x,Z)|0,n=(n=n+Math.imul(x,ee)|0)+Math.imul(k,Z)|0,s=s+Math.imul(k,ee)|0,i=i+Math.imul(w,re)|0,n=(n=n+Math.imul(w,ie)|0)+Math.imul(S,re)|0,s=s+Math.imul(S,ie)|0,i=i+Math.imul(g,se)|0,n=(n=n+Math.imul(g,oe)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,oe)|0,i=i+Math.imul(p,ce)|0,n=(n=n+Math.imul(p,he)|0)+Math.imul(y,ce)|0,s=s+Math.imul(y,he)|0;var ke=(h+(i=i+Math.imul(u,ue)|0)|0)+((8191&(n=(n=n+Math.imul(u,fe)|0)+Math.imul(f,ue)|0))<<13)|0;h=((s=s+Math.imul(f,fe)|0)+(n>>>13)|0)+(ke>>>26)|0,ke&=67108863,i=Math.imul(F,j),n=(n=Math.imul(F,q))+Math.imul(D,j)|0,s=Math.imul(D,q),i=i+Math.imul(L,z)|0,n=(n=n+Math.imul(L,J)|0)+Math.imul(R,z)|0,s=s+Math.imul(R,J)|0,i=i+Math.imul(N,V)|0,n=(n=n+Math.imul(N,Y)|0)+Math.imul(K,V)|0,s=s+Math.imul(K,Y)|0,i=i+Math.imul(A,X)|0,n=(n=n+Math.imul(A,G)|0)+Math.imul(T,X)|0,s=s+Math.imul(T,G)|0,i=i+Math.imul(M,Z)|0,n=(n=n+Math.imul(M,ee)|0)+Math.imul(E,Z)|0,s=s+Math.imul(E,ee)|0,i=i+Math.imul(x,re)|0,n=(n=n+Math.imul(x,ie)|0)+Math.imul(k,re)|0,s=s+Math.imul(k,ie)|0,i=i+Math.imul(w,se)|0,n=(n=n+Math.imul(w,oe)|0)+Math.imul(S,se)|0,s=s+Math.imul(S,oe)|0,i=i+Math.imul(g,ce)|0,n=(n=n+Math.imul(g,he)|0)+Math.imul(b,ce)|0,s=s+Math.imul(b,he)|0,i=i+Math.imul(p,ue)|0,n=(n=n+Math.imul(p,fe)|0)+Math.imul(y,ue)|0,s=s+Math.imul(y,fe)|0;var Pe=(h+(i=i+Math.imul(u,pe)|0)|0)+((8191&(n=(n=n+Math.imul(u,ye)|0)+Math.imul(f,pe)|0))<<13)|0;h=((s=s+Math.imul(f,ye)|0)+(n>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,i=Math.imul(F,z),n=(n=Math.imul(F,J))+Math.imul(D,z)|0,s=Math.imul(D,J),i=i+Math.imul(L,V)|0,n=(n=n+Math.imul(L,Y)|0)+Math.imul(R,V)|0,s=s+Math.imul(R,Y)|0,i=i+Math.imul(N,X)|0,n=(n=n+Math.imul(N,G)|0)+Math.imul(K,X)|0,s=s+Math.imul(K,G)|0,i=i+Math.imul(A,Z)|0,n=(n=n+Math.imul(A,ee)|0)+Math.imul(T,Z)|0,s=s+Math.imul(T,ee)|0,i=i+Math.imul(M,re)|0,n=(n=n+Math.imul(M,ie)|0)+Math.imul(E,re)|0,s=s+Math.imul(E,ie)|0,i=i+Math.imul(x,se)|0,n=(n=n+Math.imul(x,oe)|0)+Math.imul(k,se)|0,s=s+Math.imul(k,oe)|0,i=i+Math.imul(w,ce)|0,n=(n=n+Math.imul(w,he)|0)+Math.imul(S,ce)|0,s=s+Math.imul(S,he)|0,i=i+Math.imul(g,ue)|0,n=(n=n+Math.imul(g,fe)|0)+Math.imul(b,ue)|0,s=s+Math.imul(b,fe)|0;var Me=(h+(i=i+Math.imul(p,pe)|0)|0)+((8191&(n=(n=n+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;h=((s=s+Math.imul(y,ye)|0)+(n>>>13)|0)+(Me>>>26)|0,Me&=67108863,i=Math.imul(F,V),n=(n=Math.imul(F,Y))+Math.imul(D,V)|0,s=Math.imul(D,Y),i=i+Math.imul(L,X)|0,n=(n=n+Math.imul(L,G)|0)+Math.imul(R,X)|0,s=s+Math.imul(R,G)|0,i=i+Math.imul(N,Z)|0,n=(n=n+Math.imul(N,ee)|0)+Math.imul(K,Z)|0,s=s+Math.imul(K,ee)|0,i=i+Math.imul(A,re)|0,n=(n=n+Math.imul(A,ie)|0)+Math.imul(T,re)|0,s=s+Math.imul(T,ie)|0,i=i+Math.imul(M,se)|0,n=(n=n+Math.imul(M,oe)|0)+Math.imul(E,se)|0,s=s+Math.imul(E,oe)|0,i=i+Math.imul(x,ce)|0,n=(n=n+Math.imul(x,he)|0)+Math.imul(k,ce)|0,s=s+Math.imul(k,he)|0,i=i+Math.imul(w,ue)|0,n=(n=n+Math.imul(w,fe)|0)+Math.imul(S,ue)|0,s=s+Math.imul(S,fe)|0;var Ee=(h+(i=i+Math.imul(g,pe)|0)|0)+((8191&(n=(n=n+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;h=((s=s+Math.imul(b,ye)|0)+(n>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,i=Math.imul(F,X),n=(n=Math.imul(F,G))+Math.imul(D,X)|0,s=Math.imul(D,G),i=i+Math.imul(L,Z)|0,n=(n=n+Math.imul(L,ee)|0)+Math.imul(R,Z)|0,s=s+Math.imul(R,ee)|0,i=i+Math.imul(N,re)|0,n=(n=n+Math.imul(N,ie)|0)+Math.imul(K,re)|0,s=s+Math.imul(K,ie)|0,i=i+Math.imul(A,se)|0,n=(n=n+Math.imul(A,oe)|0)+Math.imul(T,se)|0,s=s+Math.imul(T,oe)|0,i=i+Math.imul(M,ce)|0,n=(n=n+Math.imul(M,he)|0)+Math.imul(E,ce)|0,s=s+Math.imul(E,he)|0,i=i+Math.imul(x,ue)|0,n=(n=n+Math.imul(x,fe)|0)+Math.imul(k,ue)|0,s=s+Math.imul(k,fe)|0;var Ie=(h+(i=i+Math.imul(w,pe)|0)|0)+((8191&(n=(n=n+Math.imul(w,ye)|0)+Math.imul(S,pe)|0))<<13)|0;h=((s=s+Math.imul(S,ye)|0)+(n>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,i=Math.imul(F,Z),n=(n=Math.imul(F,ee))+Math.imul(D,Z)|0,s=Math.imul(D,ee),i=i+Math.imul(L,re)|0,n=(n=n+Math.imul(L,ie)|0)+Math.imul(R,re)|0,s=s+Math.imul(R,ie)|0,i=i+Math.imul(N,se)|0,n=(n=n+Math.imul(N,oe)|0)+Math.imul(K,se)|0,s=s+Math.imul(K,oe)|0,i=i+Math.imul(A,ce)|0,n=(n=n+Math.imul(A,he)|0)+Math.imul(T,ce)|0,s=s+Math.imul(T,he)|0,i=i+Math.imul(M,ue)|0,n=(n=n+Math.imul(M,fe)|0)+Math.imul(E,ue)|0,s=s+Math.imul(E,fe)|0;var Ae=(h+(i=i+Math.imul(x,pe)|0)|0)+((8191&(n=(n=n+Math.imul(x,ye)|0)+Math.imul(k,pe)|0))<<13)|0;h=((s=s+Math.imul(k,ye)|0)+(n>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,i=Math.imul(F,re),n=(n=Math.imul(F,ie))+Math.imul(D,re)|0,s=Math.imul(D,ie),i=i+Math.imul(L,se)|0,n=(n=n+Math.imul(L,oe)|0)+Math.imul(R,se)|0,s=s+Math.imul(R,oe)|0,i=i+Math.imul(N,ce)|0,n=(n=n+Math.imul(N,he)|0)+Math.imul(K,ce)|0,s=s+Math.imul(K,he)|0,i=i+Math.imul(A,ue)|0,n=(n=n+Math.imul(A,fe)|0)+Math.imul(T,ue)|0,s=s+Math.imul(T,fe)|0;var Te=(h+(i=i+Math.imul(M,pe)|0)|0)+((8191&(n=(n=n+Math.imul(M,ye)|0)+Math.imul(E,pe)|0))<<13)|0;h=((s=s+Math.imul(E,ye)|0)+(n>>>13)|0)+(Te>>>26)|0,Te&=67108863,i=Math.imul(F,se),n=(n=Math.imul(F,oe))+Math.imul(D,se)|0,s=Math.imul(D,oe),i=i+Math.imul(L,ce)|0,n=(n=n+Math.imul(L,he)|0)+Math.imul(R,ce)|0,s=s+Math.imul(R,he)|0,i=i+Math.imul(N,ue)|0,n=(n=n+Math.imul(N,fe)|0)+Math.imul(K,ue)|0,s=s+Math.imul(K,fe)|0;var Oe=(h+(i=i+Math.imul(A,pe)|0)|0)+((8191&(n=(n=n+Math.imul(A,ye)|0)+Math.imul(T,pe)|0))<<13)|0;h=((s=s+Math.imul(T,ye)|0)+(n>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,i=Math.imul(F,ce),n=(n=Math.imul(F,he))+Math.imul(D,ce)|0,s=Math.imul(D,he),i=i+Math.imul(L,ue)|0,n=(n=n+Math.imul(L,fe)|0)+Math.imul(R,ue)|0,s=s+Math.imul(R,fe)|0;var Ne=(h+(i=i+Math.imul(N,pe)|0)|0)+((8191&(n=(n=n+Math.imul(N,ye)|0)+Math.imul(K,pe)|0))<<13)|0;h=((s=s+Math.imul(K,ye)|0)+(n>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,i=Math.imul(F,ue),n=(n=Math.imul(F,fe))+Math.imul(D,ue)|0,s=Math.imul(D,fe);var Ke=(h+(i=i+Math.imul(L,pe)|0)|0)+((8191&(n=(n=n+Math.imul(L,ye)|0)+Math.imul(R,pe)|0))<<13)|0;h=((s=s+Math.imul(R,ye)|0)+(n>>>13)|0)+(Ke>>>26)|0,Ke&=67108863;var Ce=(h+(i=Math.imul(F,pe))|0)+((8191&(n=(n=Math.imul(F,ye))+Math.imul(D,pe)|0))<<13)|0;return h=((s=Math.imul(D,ye))+(n>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=Se,c[6]=_e,c[7]=xe,c[8]=ke,c[9]=Pe,c[10]=Me,c[11]=Ee,c[12]=Ie,c[13]=Ae,c[14]=Te,c[15]=Oe,c[16]=Ne,c[17]=Ke,c[18]=Ce,0!==h&&(c[19]=h,r.length++),r};function g(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var i=0,n=0,s=0;s>>26)|0)>>>26,o&=67108863}r.words[s]=a,i=o,o=n}return 0!==i?r.words[s]=i:r.length--,r._strip()}function b(e,t,r){return g(e,t,r)}function v(e,t){this.x=e,this.y=t}Math.imul||(m=y),s.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?y(this,e,t):r<1024?g(this,e,t):b(this,e,t)},v.prototype.makeRBT=function(e){for(var t=new Array(e),r=s.prototype._countBits(e)-1,i=0;i>=1;return i},v.prototype.permute=function(e,t,r,i,n,s){for(var o=0;o>>=1)n++;return 1<>>=13,r[2*o+1]=8191&s,s>>>=13;for(o=2*t;o>=26,r+=s/67108864|0,r+=o>>>26,this.words[n]=67108863&o}return 0!==r&&(this.words[n]=r,this.length++),t?this.ineg():this},s.prototype.muln=function(e){return this.clone().imuln(e)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>n&1}return t}(e);if(0===t.length)return new s(1);for(var r=this,i=0;i=0);var t,r=e%26,n=(e-r)/26,s=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t=0),n=t?(t-t%26)/26:0;var s=e%26,o=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<o)for(this.length-=o,h=0;h=0&&(0!==d||h>=n);h--){var u=0|this.words[h];this.words[h]=d<<26-s|u>>>s,d=u&a}return c&&0!==d&&(c.words[c.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(e,t,r){return i(0===this.negative),this.iushrn(e,t,r)},s.prototype.shln=function(e){return this.clone().ishln(e)},s.prototype.ushln=function(e){return this.clone().iushln(e)},s.prototype.shrn=function(e){return this.clone().ishrn(e)},s.prototype.ushrn=function(e){return this.clone().iushrn(e)},s.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,n=1<=0);var t=e%26,r=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var n=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},s.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[n+r]=67108863&s}for(;n>26,this.words[n+r]=67108863&s;if(0===a)return this._strip();for(i(-1===a),a=0,n=0;n>26,this.words[n]=67108863&s;return this.negative=1,this._strip()},s.prototype._wordDiv=function(e,t){var r=(this.length,e.length),i=this.clone(),n=e,o=0|n.words[n.length-1];0!=(r=26-this._countBits(o))&&(n=n.ushln(r),i.iushln(r),o=0|n.words[n.length-1]);var a,c=i.length-n.length;if("mod"!==t){(a=new s(null)).length=c+1,a.words=new Array(a.length);for(var h=0;h=0;u--){var f=67108864*(0|i.words[n.length+u])+(0|i.words[n.length+u-1]);for(f=Math.min(f/o|0,67108863),i._ishlnsubmul(n,f,u);0!==i.negative;)f--,i.negative=0,i._ishlnsubmul(n,1,u),i.isZero()||(i.negative^=1);a&&(a.words[u]=f)}return a&&a._strip(),i._strip(),"div"!==t&&0!==r&&i.iushrn(r),{div:a||null,mod:i}},s.prototype.divmod=function(e,t,r){return i(!e.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(n=a.div.neg()),"div"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:n,mod:o}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(n=a.div.neg()),{div:n,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(o=a.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:a.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new s(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new s(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new s(this.modrn(e.words[0]))}:this._wordDiv(e,t);var n,o,a},s.prototype.div=function(e){return this.divmod(e,"div",!1).div},s.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},s.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},s.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,i=e.ushrn(1),n=e.andln(1),s=r.cmp(i);return s<0||1===n&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},s.prototype.modrn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=(1<<26)%e,n=0,s=this.length-1;s>=0;s--)n=(r*n+(0|this.words[s]))%e;return t?-n:n},s.prototype.modn=function(e){return this.modrn(e)},s.prototype.idivn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=0,n=this.length-1;n>=0;n--){var s=(0|this.words[n])+67108864*r;this.words[n]=s/e|0,r=s%e}return this._strip(),t?this.ineg():this},s.prototype.divn=function(e){return this.clone().idivn(e)},s.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new s(1),o=new s(0),a=new s(0),c=new s(1),h=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++h;for(var d=r.clone(),u=t.clone();!t.isZero();){for(var f=0,l=1;!(t.words[0]&l)&&f<26;++f,l<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(d),o.isub(u)),n.iushrn(1),o.iushrn(1);for(var p=0,y=1;!(r.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(d),c.isub(u)),a.iushrn(1),c.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(a),o.isub(c)):(r.isub(t),a.isub(n),c.isub(o))}return{a,b:c,gcd:r.iushln(h)}},s.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n,o=new s(1),a=new s(0),c=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var h=0,d=1;!(t.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(t.iushrn(h);h-- >0;)o.isOdd()&&o.iadd(c),o.iushrn(1);for(var u=0,f=1;!(r.words[0]&f)&&u<26;++u,f<<=1);if(u>0)for(r.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(a)):(r.isub(t),a.isub(o))}return(n=0===t.cmpn(1)?o:a).cmpn(0)<0&&n.iadd(e),n},s.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var i=0;t.isEven()&&r.isEven();i++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var n=t.cmp(r);if(n<0){var s=t;t=r,r=s}else if(0===n||0===r.cmpn(1))break;t.isub(r)}return r.iushln(i)},s.prototype.invm=function(e){return this.egcd(e).a.umod(e)},s.prototype.isEven=function(){return!(1&this.words[0])},s.prototype.isOdd=function(){return!(1&~this.words[0])},s.prototype.andln=function(e){return this.words[0]&e},s.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,r=(e-t)/26,n=1<>>26,a&=67108863,this.words[o]=a}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),i(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:ne.length)return 1;if(this.length=0;r--){var i=0|this.words[r],n=0|e.words[r];if(i!==n){in&&(t=1);break}}return t},s.prototype.gtn=function(e){return 1===this.cmpn(e)},s.prototype.gt=function(e){return 1===this.cmp(e)},s.prototype.gten=function(e){return this.cmpn(e)>=0},s.prototype.gte=function(e){return this.cmp(e)>=0},s.prototype.ltn=function(e){return-1===this.cmpn(e)},s.prototype.lt=function(e){return-1===this.cmp(e)},s.prototype.lten=function(e){return this.cmpn(e)<=0},s.prototype.lte=function(e){return this.cmp(e)<=0},s.prototype.eqn=function(e){return 0===this.cmpn(e)},s.prototype.eq=function(e){return 0===this.cmp(e)},s.red=function(e){return new M(e)},s.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},s.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(e){return this.red=e,this},s.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},s.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},s.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},s.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},s.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},s.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},s.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},s.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},s.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function S(e,t){this.name=e,this.p=new s(t,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){S.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){S.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){S.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P(){S.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(e){if("string"==typeof e){var t=s._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function E(e){M.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}S.prototype._tmp=function(){var e=new s(null);return e.words=new Array(Math.ceil(this.n/13)),e},S.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var i=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},S.prototype.split=function(e,t){e.iushrn(this.n,0,t)},S.prototype.imulK=function(e){return e.imul(this.k)},n(_,S),_.prototype.split=function(e,t){for(var r=4194303,i=Math.min(e.length,9),n=0;n>>22,s=o}s>>>=22,e.words[n-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},_.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=n,t=i}return 0!==t&&(e.words[e.length++]=t),e},s._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new _;else if("p224"===e)t=new x;else if("p192"===e)t=new k;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new P}return w[e]=t,t},M.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},M.prototype._verify2=function(e,t){i(!(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},M.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(d(e,e.umod(this.m)._forceRed(this)),e)},M.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},M.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},M.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},M.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},M.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},M.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},M.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},M.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},M.prototype.isqr=function(e){return this.imul(e,e.clone())},M.prototype.sqr=function(e){return this.mul(e,e)},M.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var r=this.m.add(new s(1)).iushrn(2);return this.pow(e,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var a=new s(1).toRed(this),c=a.redNeg(),h=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new s(2*d*d).toRed(this);0!==this.pow(d,h).cmp(c);)d.redIAdd(c);for(var u=this.pow(d,n),f=this.pow(e,n.addn(1).iushrn(1)),l=this.pow(e,n),p=o;0!==l.cmp(a);){for(var y=l,m=0;0!==y.cmp(a);m++)y=y.redSqr();i(m=0;i--){for(var h=t.words[i],d=c-1;d>=0;d--){var u=h>>d&1;n!==r[0]&&(n=this.sqr(n)),0!==u||0!==o?(o<<=1,o|=u,(4==++a||0===i&&0===d)&&(n=this.mul(n,r[o]),a=0,o=0)):a=0}c=26}return n},M.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},M.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},s.mont=function(e){return new E(e)},n(E,M),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),s=n;return n.cmp(this.m)>=0?s=n.isub(this.m):n.cmpn(0)<0&&(s=n.iadd(this.m)),s._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new s(0)._forceRed(this);var r=e.mul(t),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},6880:function(e){e.exports=function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=90)}({17:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var i=r(18),n=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||""},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||""},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,r,i){void 0===i&&(i=!1);var n=e.getVersionPrecision(t),s=e.getVersionPrecision(r),o=Math.max(n,s),a=0,c=e.map([t,r],(function(t){var r=o-e.getVersionPrecision(t),i=t+new Array(r+1).join(".0");return e.map(i.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(i&&(a=o-Math.min(n,s)),o-=1;o>=a;){if(c[0][o]>c[1][o])return 1;if(c[0][o]===c[1][o]){if(o===a)return 0;o-=1}else if(c[0][o]1?n-1:0),o=1;o0){var o=Object.keys(r),c=a.default.find(o,(function(e){return t.isOS(e)}));if(c){var h=this.satisfies(r[c]);if(void 0!==h)return h}var d=a.default.find(o,(function(e){return t.isPlatform(e)}));if(d){var u=this.satisfies(r[d]);if(void 0!==u)return u}}if(s>0){var f=Object.keys(n),l=a.default.find(f,(function(e){return t.isBrowser(e,!0)}));if(void 0!==l)return this.compareVersion(n[l])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),i=e.toLowerCase(),n=a.default.getBrowserTypeByAlias(i);return t&&n&&(i=n.toLowerCase()),i===r},t.compareVersion=function(e){var t=[0],r=e,i=!1,n=this.getBrowserVersion();if("string"==typeof n)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(i=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(i=!0,r=e.substr(1)),t.indexOf(a.default.compareVersions(n,r,i))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=h,e.exports=t.default},92:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=/version\/(\d+(\.?_?\d+)+)/i,o=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=n.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},r=n.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},r=n.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=n.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=n.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},r=n.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=n.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},r=n.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=n.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=n.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},r=n.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},r=n.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},r=n.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=n.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=n.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},r=n.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=n.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=n.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},r=n.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=n.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=n.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=n.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},r=n.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=n.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=n.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=n.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},r=n.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:"Android Browser"},r=n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:n.default.getFirstMatch(t,e),version:n.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=r(18),o=[{test:[/Roku\/DVP/],describe:function(e){var t=n.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=n.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=n.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=n.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=n.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=n.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=n.default.getMacOSVersionName(t),i={name:s.OS_MAP.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=n.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=n.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=n.default.getAndroidVersionName(t),i={name:s.OS_MAP.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=n.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=n.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||n.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||n.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=n.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=n.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=n.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=r(18),o=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=n.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:s.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=n.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=r(18),o=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=n.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=n.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=n.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=n.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=n.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=o,e.exports=t.default}})},5037:(e,t,r)=>{var i;function n(e){this.rand=e}if(e.exports=function(e){return i||(i=new n(null)),i.generate(e)},e.exports.Rand=n,n.prototype.generate=function(e){return this._rand(e)},n.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r{"use strict";const i=r(7526),n=r(251),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.hp=c,t.IS=50;const o=2147483647;function a(e){if(e>o)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,c.prototype),t}function c(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return u(e)}return h(e,t,r)}function h(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!c.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|y(e,t);let i=a(r);const n=i.write(e,t);return n!==r&&(i=i.slice(0,n)),i}(e,t);if(ArrayBuffer.isView(e))return function(e){if(W(e,Uint8Array)){const t=new Uint8Array(e);return l(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(W(e,ArrayBuffer)||e&&W(e.buffer,ArrayBuffer))return l(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(W(e,SharedArrayBuffer)||e&&W(e.buffer,SharedArrayBuffer)))return l(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const i=e.valueOf&&e.valueOf();if(null!=i&&i!==e)return c.from(i,t,r);const n=function(e){if(c.isBuffer(e)){const t=0|p(e.length),r=a(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||X(e.length)?a(0):f(e):"Buffer"===e.type&&Array.isArray(e.data)?f(e.data):void 0}(e);if(n)return n;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return c.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function d(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function u(e){return d(e),a(e<0?0:0|p(e))}function f(e){const t=e.length<0?0:0|p(e.length),r=a(t);for(let i=0;i=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|e}function y(e,t){if(c.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||W(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===r)return 0;let n=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(e).length;default:if(n)return i?-1:H(e).length;t=(""+t).toLowerCase(),n=!0}}function m(e,t,r){let i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return T(this,t,r);case"utf8":case"utf-8":return M(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return A(this,t,r);case"base64":return P(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,r);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function g(e,t,r){const i=e[t];e[t]=e[r],e[r]=i}function b(e,t,r,i,n){if(0===e.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),X(r=+r)&&(r=n?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(n)return-1;r=e.length-1}else if(r<0){if(!n)return-1;r=0}if("string"==typeof t&&(t=c.from(t,i)),c.isBuffer(t))return 0===t.length?-1:v(e,t,r,i,n);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,i,n);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,i,n){let s,o=1,a=e.length,c=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,r/=2}function h(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(n){let i=-1;for(s=r;sa&&(r=a-c),s=r;s>=0;s--){let r=!0;for(let i=0;in&&(i=n):i=n;const s=t.length;let o;for(i>s/2&&(i=s/2),o=0;o>8,n=r%256,s.push(n),s.push(i);return s}(t,e.length-r),e,r,i)}function P(e,t,r){return 0===t&&r===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,r))}function M(e,t,r){r=Math.min(e.length,r);const i=[];let n=t;for(;n239?4:t>223?3:t>191?2:1;if(n+o<=r){let r,i,a,c;switch(o){case 1:t<128&&(s=t);break;case 2:r=e[n+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(s=c));break;case 3:r=e[n+1],i=e[n+2],128==(192&r)&&128==(192&i)&&(c=(15&t)<<12|(63&r)<<6|63&i,c>2047&&(c<55296||c>57343)&&(s=c));break;case 4:r=e[n+1],i=e[n+2],a=e[n+3],128==(192&r)&&128==(192&i)&&128==(192&a)&&(c=(15&t)<<18|(63&r)<<12|(63&i)<<6|63&a,c>65535&&c<1114112&&(s=c))}}null===s?(s=65533,o=1):s>65535&&(s-=65536,i.push(s>>>10&1023|55296),s=56320|1023&s),i.push(s),n+=o}return function(e){const t=e.length;if(t<=E)return String.fromCharCode.apply(String,e);let r="",i=0;for(;ii.length?(c.isBuffer(t)||(t=c.from(t)),t.copy(i,n)):Uint8Array.prototype.set.call(i,t,n);else{if(!c.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(i,n)}n+=t.length}return i},c.byteLength=y,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(e+=" ... "),""},s&&(c.prototype[s]=c.prototype.inspect),c.prototype.compare=function(e,t,r,i,n){if(W(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===i&&(i=0),void 0===n&&(n=this.length),t<0||r>e.length||i<0||n>this.length)throw new RangeError("out of range index");if(i>=n&&t>=r)return 0;if(i>=n)return-1;if(t>=r)return 1;if(this===e)return 0;let s=(n>>>=0)-(i>>>=0),o=(r>>>=0)-(t>>>=0);const a=Math.min(s,o),h=this.slice(i,n),d=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===i&&(i="utf8")):(i=r,r=void 0)}const n=this.length-t;if((void 0===r||r>n)&&(r=n),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let s=!1;for(;;)switch(i){case"hex":return w(this,e,t,r);case"utf8":case"utf-8":return S(this,e,t,r);case"ascii":case"latin1":case"binary":return _(this,e,t,r);case"base64":return x(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const E=4096;function I(e,t,r){let i="";r=Math.min(e.length,r);for(let n=t;ni)&&(r=i);let n="";for(let i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function K(e,t,r,i,n,s){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>n||te.length)throw new RangeError("Index out of range")}function C(e,t,r,i,n){q(t,i,n,e,r,7);let s=Number(t&BigInt(4294967295));e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o,r}function L(e,t,r,i,n){q(t,i,n,e,r,7);let s=Number(t&BigInt(4294967295));e[r+7]=s,s>>=8,e[r+6]=s,s>>=8,e[r+5]=s,s>>=8,e[r+4]=s;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=o,o>>=8,e[r+2]=o,o>>=8,e[r+1]=o,o>>=8,e[r]=o,r+8}function R(e,t,r,i,n,s){if(r+i>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function B(e,t,r,i,s){return t=+t,r>>>=0,s||R(e,0,r,4),n.write(e,t,r,i,23,4),r+4}function F(e,t,r,i,s){return t=+t,r>>>=0,s||R(e,0,r,8),n.write(e,t,r,i,52,8),r+8}c.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||N(e,t,this.length);let i=this[e],n=1,s=0;for(;++s>>=0,t>>>=0,r||N(e,t,this.length);let i=this[e+--t],n=1;for(;t>0&&(n*=256);)i+=this[e+--t]*n;return i},c.prototype.readUint8=c.prototype.readUInt8=function(e,t){return e>>>=0,t||N(e,1,this.length),this[e]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(e,t){return e>>>=0,t||N(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(e,t){return e>>>=0,t||N(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(e,t){return e>>>=0,t||N(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(e,t){return e>>>=0,t||N(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readBigUInt64LE=Q((function(e){$(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const i=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,n=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(i)+(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const i=t*2**24+65536*this[++e]+256*this[++e]+this[++e],n=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(i)<>>=0,t>>>=0,r||N(e,t,this.length);let i=this[e],n=1,s=0;for(;++s=n&&(i-=Math.pow(2,8*t)),i},c.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||N(e,t,this.length);let i=t,n=1,s=this[e+--i];for(;i>0&&(n*=256);)s+=this[e+--i]*n;return n*=128,s>=n&&(s-=Math.pow(2,8*t)),s},c.prototype.readInt8=function(e,t){return e>>>=0,t||N(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){e>>>=0,t||N(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(e,t){e>>>=0,t||N(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(e,t){return e>>>=0,t||N(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return e>>>=0,t||N(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readBigInt64LE=Q((function(e){$(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const i=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(i)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const i=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(i)<>>=0,t||N(e,4,this.length),n.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return e>>>=0,t||N(e,4,this.length),n.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return e>>>=0,t||N(e,8,this.length),n.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return e>>>=0,t||N(e,8,this.length),n.read(this,e,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(e,t,r,i){e=+e,t>>>=0,r>>>=0,i||K(this,e,t,r,Math.pow(2,8*r)-1,0);let n=1,s=0;for(this[t]=255&e;++s>>=0,r>>>=0,i||K(this,e,t,r,Math.pow(2,8*r)-1,0);let n=r-1,s=1;for(this[t+n]=255&e;--n>=0&&(s*=256);)this[t+n]=e/s&255;return t+r},c.prototype.writeUint8=c.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,1,255,0),this[t]=255&e,t+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigUInt64LE=Q((function(e,t=0){return C(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeBigUInt64BE=Q((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeIntLE=function(e,t,r,i){if(e=+e,t>>>=0,!i){const i=Math.pow(2,8*r-1);K(this,e,t,r,i-1,-i)}let n=0,s=1,o=0;for(this[t]=255&e;++n>>=0,!i){const i=Math.pow(2,8*r-1);K(this,e,t,r,i-1,-i)}let n=r-1,s=1,o=0;for(this[t+n]=255&e;--n>=0&&(s*=256);)e<0&&0===o&&0!==this[t+n+1]&&(o=1),this[t+n]=(e/s|0)-o&255;return t+r},c.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},c.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||K(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigInt64LE=Q((function(e,t=0){return C(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeBigInt64BE=Q((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeFloatLE=function(e,t,r){return B(this,e,t,!0,r)},c.prototype.writeFloatBE=function(e,t,r){return B(this,e,t,!1,r)},c.prototype.writeDoubleLE=function(e,t,r){return F(this,e,t,!0,r)},c.prototype.writeDoubleBE=function(e,t,r){return F(this,e,t,!1,r)},c.prototype.copy=function(e,t,r,i){if(!c.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(n=t;n=i+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function q(e,t,r,i,n,s){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${i} and < 2${i} ** ${8*(s+1)}${i}`:`>= -(2${i} ** ${8*(s+1)-1}${i}) and < 2 ** ${8*(s+1)-1}${i}`:`>= ${t}${i} and <= ${r}${i}`,new D.ERR_OUT_OF_RANGE("value",n,e)}!function(e,t,r){$(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||z(t,e.length-(r+1))}(i,n,s)}function $(e,t){if("number"!=typeof e)throw new D.ERR_INVALID_ARG_TYPE(t,"number",e)}function z(e,t,r){if(Math.floor(e)!==e)throw $(e,r),new D.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new D.ERR_BUFFER_OUT_OF_BOUNDS;throw new D.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}U("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),U("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),U("ERR_OUT_OF_RANGE",(function(e,t,r){let i=`The value of "${e}" is out of range.`,n=r;return Number.isInteger(r)&&Math.abs(r)>2**32?n=j(String(r)):"bigint"==typeof r&&(n=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(n=j(n)),n+="n"),i+=` It must be ${t}. Received ${n}`,i}),RangeError);const J=/[^+/0-9A-Za-z-_]/g;function H(e,t){let r;t=t||1/0;const i=e.length;let n=null;const s=[];for(let o=0;o55295&&r<57344){if(!n){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===i){(t-=3)>-1&&s.push(239,191,189);continue}n=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),n=r;continue}r=65536+(n-55296<<10|r-56320)}else n&&(t-=3)>-1&&s.push(239,191,189);if(n=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function V(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(J,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Y(e,t,r,i){let n;for(n=0;n=t.length||n>=e.length);++n)t[n+r]=e[n];return n}function W(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function X(e){return e!=e}const G=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const i=16*r;for(let n=0;n<16;++n)t[i+n]=e[r]+e[n]}return t}();function Q(e){return"undefined"==typeof BigInt?Z:e}function Z(){throw new Error("BigInt not supported")}},8075:(e,t,r)=>{"use strict";var i=r(453),n=r(487),s=n(i("String.prototype.indexOf"));e.exports=function(e,t){var r=i(e,!!t);return"function"==typeof r&&s(e,".prototype.")>-1?n(r):r}},487:(e,t,r)=>{"use strict";var i=r(6743),n=r(453),s=r(6897),o=r(9675),a=n("%Function.prototype.apply%"),c=n("%Function.prototype.call%"),h=n("%Reflect.apply%",!0)||i.call(c,a),d=r(655),u=n("%Math.max%");e.exports=function(e){if("function"!=typeof e)throw new o("a function is required");var t=h(i,c,arguments);return s(t,1+u(0,e.length-(arguments.length-1)),!0)};var f=function(){return h(i,a,arguments)};d?d(e.exports,"apply",{value:f}):e.exports.apply=f},4744:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function n(e,t,r){return e.concat(t).map((function(e){return i(e,r)}))}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function a(e,r,c){(c=c||{}).arrayMerge=c.arrayMerge||n,c.isMergeableObject=c.isMergeableObject||t,c.cloneUnlessOtherwiseSpecified=i;var h=Array.isArray(r);return h===Array.isArray(e)?h?c.arrayMerge(e,r,c):function(e,t,r){var n={};return r.isMergeableObject(e)&&s(e).forEach((function(t){n[t]=i(e[t],r)})),s(t).forEach((function(s){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(o(e,s)&&r.isMergeableObject(t[s])?n[s]=function(e,t){if(!t.customMerge)return a;var r=t.customMerge(e);return"function"==typeof r?r:a}(s,r)(e[s],t[s],r):n[s]=i(t[s],r))})),n}(e,r,c):i(r,c)}a.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return a(e,r,t)}),{})};var c=a;e.exports=c},41:(e,t,r)=>{"use strict";var i=r(655),n=r(8068),s=r(9675),o=r(5795);e.exports=function(e,t,r){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new s("`obj` must be an object or a function`");if("string"!=typeof t&&"symbol"!=typeof t)throw new s("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new s("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new s("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new s("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new s("`loose`, if provided, must be a boolean");var a=arguments.length>3?arguments[3]:null,c=arguments.length>4?arguments[4]:null,h=arguments.length>5?arguments[5]:null,d=arguments.length>6&&arguments[6],u=!!o&&o(e,t);if(i)i(e,t,{configurable:null===h&&u?u.configurable:!h,enumerable:null===a&&u?u.enumerable:!a,value:r,writable:null===c&&u?u.writable:!c});else{if(!d&&(a||c||h))throw new n("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=r}}},6729:(e,t,r)=>{"use strict";var i=t;i.version=r(1636).rE,i.utils=r(7011),i.rand=r(5037),i.curve=r(894),i.curves=r(480),i.ec=r(7447),i.eddsa=r(8650)},6677:(e,t,r)=>{"use strict";var i=r(9404),n=r(7011),s=n.getNAF,o=n.getJSF,a=n.assert;function c(e,t){this.type=e,this.p=new i(t.p,16),this.red=t.prime?i.red(t.prime):i.mont(this.p),this.zero=new i(0).toRed(this.red),this.one=new i(1).toRed(this.red),this.two=new i(2).toRed(this.red),this.n=t.n&&new i(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function h(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var r=e._getDoubles(),i=s(t,1,this._bitLength),n=(1<=o;d--)c=(c<<1)+i[d];h.push(c)}for(var u=this.jpoint(null,null,null),f=this.jpoint(null,null,null),l=n;l>0;l--){for(o=0;o=0;h--){for(var d=0;h>=0&&0===o[h];h--)d++;if(h>=0&&d++,c=c.dblp(d),h<0)break;var u=o[h];a(0!==u),c="affine"===e.type?u>0?c.mixedAdd(n[u-1>>1]):c.mixedAdd(n[-u-1>>1].neg()):u>0?c.add(n[u-1>>1]):c.add(n[-u-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,r,i,n){var a,c,h,d=this._wnafT1,u=this._wnafT2,f=this._wnafT3,l=0;for(a=0;a=1;a-=2){var y=a-1,m=a;if(1===d[y]&&1===d[m]){var g=[t[y],null,null,t[m]];0===t[y].y.cmp(t[m].y)?(g[1]=t[y].add(t[m]),g[2]=t[y].toJ().mixedAdd(t[m].neg())):0===t[y].y.cmp(t[m].y.redNeg())?(g[1]=t[y].toJ().mixedAdd(t[m]),g[2]=t[y].add(t[m].neg())):(g[1]=t[y].toJ().mixedAdd(t[m]),g[2]=t[y].toJ().mixedAdd(t[m].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],v=o(r[y],r[m]);for(l=Math.max(v[0].length,l),f[y]=new Array(l),f[m]=new Array(l),c=0;c=0;a--){for(var k=0;a>=0;){var P=!0;for(c=0;c=0&&k++,_=_.dblp(k),a<0)break;for(c=0;c0?h=u[c][M-1>>1]:M<0&&(h=u[c][-M-1>>1].neg()),_="affine"===h.type?_.mixedAdd(h):_.add(h))}}for(a=0;a=Math.ceil((e.bitLength()+1)/t.step)},h.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],i=this,n=0;n{"use strict";var i=r(7011),n=r(9404),s=r(6698),o=r(6677),a=i.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new n(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new n(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new n(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function h(e,t,r,i,s){o.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===i?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new n(t,16),this.y=new n(r,16),this.z=i?new n(i,16):this.curve.one,this.t=s&&new n(s,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}s(c,o),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,r,i){return this.point(e,t,r,i)},c.prototype.pointFromX=function(e,t){(e=new n(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),i=this.c2.redSub(this.a.redMul(r)),s=this.one.redSub(this.c2.redMul(this.d).redMul(r)),o=i.redMul(s.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new n(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),i=r.redSub(this.c2),s=r.redMul(this.d).redMul(this.c2).redSub(this.a),o=i.redMul(s.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),i=t.redMul(this.a).redAdd(r),n=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===i.cmp(n)},s(h,o.BasePoint),c.prototype.pointFromJSON=function(e){return h.fromJSON(this,e)},c.prototype.point=function(e,t,r,i){return new h(this,e,t,r,i)},h.fromJSON=function(e,t){return new h(e,t[0],t[1],t[2])},h.prototype.inspect=function(){return this.isInfinity()?"":""},h.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},h.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var i=this.curve._mulA(e),n=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),s=i.redAdd(t),o=s.redSub(r),a=i.redSub(t),c=n.redMul(o),h=s.redMul(a),d=n.redMul(a),u=o.redMul(s);return this.curve.point(c,h,u,d)},h.prototype._projDbl=function(){var e,t,r,i,n,s,o=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var h=(i=this.curve._mulA(a)).redAdd(c);this.zOne?(e=o.redSub(a).redSub(c).redMul(h.redSub(this.curve.two)),t=h.redMul(i.redSub(c)),r=h.redSqr().redSub(h).redSub(h)):(n=this.z.redSqr(),s=h.redSub(n).redISub(n),e=o.redSub(a).redISub(c).redMul(s),t=h.redMul(i.redSub(c)),r=h.redMul(s))}else i=a.redAdd(c),n=this.curve._mulC(this.z).redSqr(),s=i.redSub(n).redSub(n),e=this.curve._mulC(o.redISub(i)).redMul(s),t=this.curve._mulC(i).redMul(a.redISub(c)),r=i.redMul(s);return this.curve.point(e,t,r)},h.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},h.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),i=this.t.redMul(this.curve.dd).redMul(e.t),n=this.z.redMul(e.z.redAdd(e.z)),s=r.redSub(t),o=n.redSub(i),a=n.redAdd(i),c=r.redAdd(t),h=s.redMul(o),d=a.redMul(c),u=s.redMul(c),f=o.redMul(a);return this.curve.point(h,d,f,u)},h.prototype._projAdd=function(e){var t,r,i=this.z.redMul(e.z),n=i.redSqr(),s=this.x.redMul(e.x),o=this.y.redMul(e.y),a=this.curve.d.redMul(s).redMul(o),c=n.redSub(a),h=n.redAdd(a),d=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(s).redISub(o),u=i.redMul(c).redMul(d);return this.curve.twisted?(t=i.redMul(h).redMul(o.redSub(this.curve._mulA(s))),r=c.redMul(h)):(t=i.redMul(h).redMul(o.redSub(s)),r=this.curve._mulC(c).redMul(h)),this.curve.point(u,t,r)},h.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},h.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},h.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},h.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},h.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},h.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},h.prototype.getX=function(){return this.normalize(),this.x.fromRed()},h.prototype.getY=function(){return this.normalize(),this.y.fromRed()},h.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},h.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(i),0===this.x.cmp(t))return!0}},h.prototype.toP=h.prototype.normalize,h.prototype.mixedAdd=h.prototype.add},894:(e,t,r)=>{"use strict";var i=t;i.base=r(6677),i.short=r(9188),i.mont=r(370),i.edwards=r(1298)},370:(e,t,r)=>{"use strict";var i=r(9404),n=r(6698),s=r(6677),o=r(7011);function a(e){s.call(this,"mont",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.i4=new i(4).toRed(this.red).redInvm(),this.two=new i(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,r){s.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new i(t,16),this.z=new i(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}n(a,s),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),i=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===i.redSqrt().redSqr().cmp(i)},n(c,s.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),i=e.redMul(t),n=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(i,n)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),i=this.x.redSub(this.z),n=e.x.redAdd(e.z),s=e.x.redSub(e.z).redMul(r),o=n.redMul(i),a=t.z.redMul(s.redAdd(o).redSqr()),c=t.x.redMul(s.redISub(o).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),r=this,i=this.curve.point(null,null),n=[];0!==t.cmpn(0);t.iushrn(1))n.push(t.andln(1));for(var s=n.length-1;s>=0;s--)0===n[s]?(r=r.diffAdd(i,this),i=i.dbl()):(i=r.diffAdd(i,this),r=r.dbl());return i},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},9188:(e,t,r)=>{"use strict";var i=r(7011),n=r(9404),s=r(6698),o=r(6677),a=i.assert;function c(e){o.call(this,"short",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function h(e,t,r,i){o.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new n(t,16),this.y=new n(r,16),i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function d(e,t,r,i){o.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===i?(this.x=this.curve.one,this.y=this.curve.one,this.z=new n(0)):(this.x=new n(t,16),this.y=new n(r,16),this.z=new n(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}s(c,o),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new n(e.beta,16).toRed(this.red);else{var i=this._getEndoRoots(this.p);t=(t=i[0].cmp(i[1])<0?i[0]:i[1]).toRed(this.red)}if(e.lambda)r=new n(e.lambda,16);else{var s=this._getEndoRoots(this.n);0===this.g.mul(s[0]).x.cmp(this.g.x.redMul(t))?r=s[0]:(r=s[1],a(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new n(e.a,16),b:new n(e.b,16)}})):this._getEndoBasis(r)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:n.mont(e),r=new n(2).toRed(t).redInvm(),i=r.redNeg(),s=new n(3).toRed(t).redNeg().redSqrt().redMul(r);return[i.redAdd(s).fromRed(),i.redSub(s).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,r,i,s,o,a,c,h,d,u=this.n.ushrn(Math.floor(this.n.bitLength()/2)),f=e,l=this.n.clone(),p=new n(1),y=new n(0),m=new n(0),g=new n(1),b=0;0!==f.cmpn(0);){var v=l.div(f);h=l.sub(v.mul(f)),d=m.sub(v.mul(p));var w=g.sub(v.mul(y));if(!i&&h.cmp(u)<0)t=c.neg(),r=p,i=h.neg(),s=d;else if(i&&2==++b)break;c=h,l=f,f=h,m=p,p=d,g=y,y=w}o=h.neg(),a=d;var S=i.sqr().add(s.sqr());return o.sqr().add(a.sqr()).cmp(S)>=0&&(o=t,a=r),i.negative&&(i=i.neg(),s=s.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:i,b:s},{a:o,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],i=t[1],n=i.b.mul(e).divRound(this.n),s=r.b.neg().mul(e).divRound(this.n),o=n.mul(r.a),a=s.mul(i.a),c=n.mul(r.b),h=s.mul(i.b);return{k1:e.sub(o).sub(a),k2:c.add(h).neg()}},c.prototype.pointFromX=function(e,t){(e=new n(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),i=r.redSqrt();if(0!==i.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var s=i.fromRed().isOdd();return(t&&!s||!t&&s)&&(i=i.redNeg()),this.point(e,i)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,i=this.a.redMul(t),n=t.redSqr().redMul(t).redIAdd(i).redIAdd(this.b);return 0===r.redSqr().redISub(n).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,r){for(var i=this._endoWnafT1,n=this._endoWnafT2,s=0;s":""},h.prototype.isInfinity=function(){return this.inf},h.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),i=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,i)},h.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),i=e.redInvm(),n=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(i),s=n.redSqr().redISub(this.x.redAdd(this.x)),o=n.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,o)},h.prototype.getX=function(){return this.x.fromRed()},h.prototype.getY=function(){return this.y.fromRed()},h.prototype.mul=function(e){return e=new n(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},h.prototype.mulAdd=function(e,t,r){var i=[this,t],n=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(i,n):this.curve._wnafMulAdd(1,i,n,2)},h.prototype.jmulAdd=function(e,t,r){var i=[this,t],n=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(i,n,!0):this.curve._wnafMulAdd(1,i,n,2,!0)},h.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},h.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,i=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(i)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(i)}}}return t},h.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},s(d,o.BasePoint),c.prototype.jpoint=function(e,t,r){return new d(this,e,t,r)},d.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),i=this.y.redMul(t).redMul(e);return this.curve.point(r,i)},d.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},d.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),i=this.x.redMul(t),n=e.x.redMul(r),s=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(r.redMul(this.z)),a=i.redSub(n),c=s.redSub(o);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h=a.redSqr(),d=h.redMul(a),u=i.redMul(h),f=c.redSqr().redIAdd(d).redISub(u).redISub(u),l=c.redMul(u.redISub(f)).redISub(s.redMul(d)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(f,l,p)},d.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,i=e.x.redMul(t),n=this.y,s=e.y.redMul(t).redMul(this.z),o=r.redSub(i),a=n.redSub(s);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=o.redSqr(),h=c.redMul(o),d=r.redMul(c),u=a.redSqr().redIAdd(h).redISub(d).redISub(d),f=a.redMul(d.redISub(u)).redISub(n.redMul(h)),l=this.z.redMul(o);return this.curve.jpoint(u,f,l)},d.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(n),0===this.x.cmp(r))return!0}},d.prototype.inspect=function(){return this.isInfinity()?"":""},d.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},480:(e,t,r)=>{"use strict";var i,n=t,s=r(7952),o=r(894),a=r(7011).assert;function c(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function h(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new c(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=c,h("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:s.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),h("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:s.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),h("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:s.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),h("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:s.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),h("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:s.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),h("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["9"]}),h("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{i=r(4011)}catch(e){i=void 0}h("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:s.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",i]})},7447:(e,t,r)=>{"use strict";var i=r(9404),n=r(2723),s=r(7011),o=r(480),a=r(5037),c=s.assert,h=r(1200),d=r(8545);function u(e){if(!(this instanceof u))return new u(e);"string"==typeof e&&(c(Object.prototype.hasOwnProperty.call(o,e),"Unknown curve "+e),e=o[e]),e instanceof o.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=u,u.prototype.keyPair=function(e){return new h(this,e)},u.prototype.keyFromPrivate=function(e,t){return h.fromPrivate(this,e,t)},u.prototype.keyFromPublic=function(e,t){return h.fromPublic(this,e,t)},u.prototype.genKeyPair=function(e){e||(e={});for(var t=new n({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),s=this.n.sub(new i(2));;){var o=new i(t.generate(r));if(!(o.cmp(s)>0))return o.iaddn(1),this.keyFromPrivate(o)}},u.prototype._truncateToN=function(e,t,r){var n;if(i.isBN(e)||"number"==typeof e)n=(e=new i(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new i(e,16);else{var s=e.toString();n=s.length+1>>>1,e=new i(s,16)}"number"!=typeof r&&(r=8*n);var o=r-this.n.bitLength();return o>0&&(e=e.ushrn(o)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},u.prototype.sign=function(e,t,r,s){if("object"==typeof r&&(s=r,r=null),s||(s={}),"string"!=typeof e&&"number"!=typeof e&&!i.isBN(e)){c("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),c(e.length>>>0===e.length);for(var o=0;o=0)){var m=this.g.mul(y);if(!m.isInfinity()){var g=m.getX(),b=g.umod(this.n);if(0!==b.cmpn(0)){var v=y.invm(this.n).mul(b.mul(t.getPrivate()).iadd(e));if(0!==(v=v.umod(this.n)).cmpn(0)){var w=(m.getY().isOdd()?1:0)|(0!==g.cmp(b)?2:0);return s.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),w^=1),new d({r:b,s:v,recoveryParam:w})}}}}}},u.prototype.verify=function(e,t,r,i,n){n||(n={}),e=this._truncateToN(e,!1,n.msgBitLength),r=this.keyFromPublic(r,i);var s=(t=new d(t,"hex")).r,o=t.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,c=o.invm(this.n),h=c.mul(e).umod(this.n),u=c.mul(s).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(h,r.getPublic(),u)).isInfinity()&&a.eqXToP(s):!(a=this.g.mulAdd(h,r.getPublic(),u)).isInfinity()&&0===a.getX().umod(this.n).cmp(s)},u.prototype.recoverPubKey=function(e,t,r,n){c((3&r)===r,"The recovery param is more than two bits"),t=new d(t,n);var s=this.n,o=new i(e),a=t.r,h=t.s,u=1&r,f=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error("Unable to find sencond key candinate");a=f?this.curve.pointFromX(a.add(this.curve.n),u):this.curve.pointFromX(a,u);var l=t.r.invm(s),p=s.sub(o).mul(l).umod(s),y=h.mul(l).umod(s);return this.g.mulAdd(p,a,y)},u.prototype.getKeyRecoveryParam=function(e,t,r,i){if(null!==(t=new d(t,i)).recoveryParam)return t.recoveryParam;for(var n=0;n<4;n++){var s;try{s=this.recoverPubKey(e,t,n)}catch(e){continue}if(s.eq(r))return n}throw new Error("Unable to find valid recovery factor")}},1200:(e,t,r)=>{"use strict";var i=r(9404),n=r(7011).assert;function s(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=s,s.fromPublic=function(e,t,r){return t instanceof s?t:new s(e,{pub:t,pubEnc:r})},s.fromPrivate=function(e,t,r){return t instanceof s?t:new s(e,{priv:t,privEnc:r})},s.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},s.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},s.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},s.prototype._importPrivate=function(e,t){this.priv=new i(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},s.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?n(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||n(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},s.prototype.derive=function(e){return e.validate()||n(e.validate(),"public point not validated"),e.mul(this.priv).getX()},s.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},s.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},s.prototype.inspect=function(){return""}},8545:(e,t,r)=>{"use strict";var i=r(9404),n=r(7011),s=n.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(s(e.r&&e.s,"Signature without r or s"),this.r=new i(e.r,16),this.s=new i(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var r=e[t.place++];if(!(128&r))return r;var i=15&r;if(0===i||i>4)return!1;if(0===e[t.place])return!1;for(var n=0,s=0,o=t.place;s>>=0;return!(n<=127)&&(t.place=o,n)}function h(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=n.toArray(e,t);var r=new a;if(48!==e[r.place++])return!1;var s=c(e,r);if(!1===s)return!1;if(s+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=c(e,r);if(!1===o)return!1;if(128&e[r.place])return!1;var h=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var d=c(e,r);if(!1===d)return!1;if(e.length!==d+r.place)return!1;if(128&e[r.place])return!1;var u=e.slice(r.place,d+r.place);if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}return this.r=new i(h),this.s=new i(u),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=h(t),r=h(r);!(r[0]||128&r[1]);)r=r.slice(1);var i=[2];d(i,t.length),(i=i.concat(t)).push(2),d(i,r.length);var s=i.concat(r),o=[48];return d(o,s.length),o=o.concat(s),n.encode(o,e)}},8650:(e,t,r)=>{"use strict";var i=r(7952),n=r(480),s=r(7011),o=s.assert,a=s.parseBytes,c=r(6661),h=r(220);function d(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof d))return new d(e);e=n[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=i.sha512}e.exports=d,d.prototype.sign=function(e,t){e=a(e);var r=this.keyFromSecret(t),i=this.hashInt(r.messagePrefix(),e),n=this.g.mul(i),s=this.encodePoint(n),o=this.hashInt(s,r.pubBytes(),e).mul(r.priv()),c=i.add(o).umod(this.curve.n);return this.makeSignature({R:n,S:c,Rencoded:s})},d.prototype.verify=function(e,t,r){if(e=a(e),(t=this.makeSignature(t)).S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var i=this.keyFromPublic(r),n=this.hashInt(t.Rencoded(),i.pubBytes(),e),s=this.g.mul(t.S());return t.R().add(i.pub().mul(n)).eq(s)},d.prototype.hashInt=function(){for(var e=this.hash(),t=0;t{"use strict";var i=r(7011),n=i.assert,s=i.parseBytes,o=i.cachedProperty;function a(e,t){this.eddsa=e,this._secret=s(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=s(t.pub)}a.fromPublic=function(e,t){return t instanceof a?t:new a(e,{pub:t})},a.fromSecret=function(e,t){return t instanceof a?t:new a(e,{secret:t})},a.prototype.secret=function(){return this._secret},o(a,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),o(a,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),o(a,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,i=t.slice(0,e.encodingLength);return i[0]&=248,i[r]&=127,i[r]|=64,i})),o(a,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),o(a,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),o(a,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),a.prototype.sign=function(e){return n(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},a.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},a.prototype.getSecret=function(e){return n(this._secret,"KeyPair is public only"),i.encode(this.secret(),e)},a.prototype.getPublic=function(e){return i.encode(this.pubBytes(),e)},e.exports=a},220:(e,t,r)=>{"use strict";var i=r(9404),n=r(7011),s=n.assert,o=n.cachedProperty,a=n.parseBytes;function c(e,t){this.eddsa=e,"object"!=typeof t&&(t=a(t)),Array.isArray(t)&&(s(t.length===2*e.encodingLength,"Signature has invalid size"),t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),s(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof i&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}o(c,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),o(c,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),o(c,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),o(c,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return n.encode(this.toBytes(),"hex").toUpperCase()},e.exports=c},4011:e=>{e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},7011:(e,t,r)=>{"use strict";var i=t,n=r(9404),s=r(3349),o=r(4367);i.assert=s,i.toArray=o.toArray,i.zero2=o.zero2,i.toHex=o.toHex,i.encode=o.encode,i.getNAF=function(e,t,r){var i,n=new Array(Math.max(e.bitLength(),r)+1);for(i=0;i(s>>1)-1?(s>>1)-c:c,o.isubn(a)):a=0,n[i]=a,o.iushrn(1)}return n},i.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var i,n=0,s=0;e.cmpn(-n)>0||t.cmpn(-s)>0;){var o,a,c=e.andln(3)+n&3,h=t.andln(3)+s&3;3===c&&(c=-1),3===h&&(h=-1),o=1&c?3!=(i=e.andln(7)+n&7)&&5!==i||2!==h?c:-c:0,r[0].push(o),a=1&h?3!=(i=t.andln(7)+s&7)&&5!==i||2!==c?h:-h:0,r[1].push(a),2*n===o+1&&(n=1-n),2*s===a+1&&(s=1-s),e.iushrn(1),t.iushrn(1)}return r},i.cachedProperty=function(e,t,r){var i="_"+t;e.prototype[t]=function(){return void 0!==this[i]?this[i]:this[i]=r.call(this)}},i.parseBytes=function(e){return"string"==typeof e?i.toArray(e,"hex"):e},i.intFromLE=function(e){return new n(e,"hex","le")}},655:(e,t,r)=>{"use strict";var i=r(453)("%Object.defineProperty%",!0)||!1;if(i)try{i({},"a",{value:1})}catch(e){i=!1}e.exports=i},1237:e=>{"use strict";e.exports=EvalError},9383:e=>{"use strict";e.exports=Error},9290:e=>{"use strict";e.exports=RangeError},9538:e=>{"use strict";e.exports=ReferenceError},8068:e=>{"use strict";e.exports=SyntaxError},9675:e=>{"use strict";e.exports=TypeError},5345:e=>{"use strict";e.exports=URIError},7007:e=>{"use strict";var t,r="object"==typeof Reflect?Reflect:null,i=r&&"function"==typeof r.apply?r.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};t=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var n=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,e.exports.once=function(e,t){return new Promise((function(r,i){function n(r){e.removeListener(t,s),i(r)}function s(){"function"==typeof e.removeListener&&e.removeListener("error",n),r([].slice.call(arguments))}y(e,t,s,{once:!0}),"error"!==t&&function(e,t){"function"==typeof e.on&&y(e,"error",t,{once:!0})}(e,n)}))},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var o=10;function a(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function h(e,t,r,i){var n,s,o,h;if(a(r),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),o=s[t]),void 0===o)o=s[t]=r,++e._eventsCount;else if("function"==typeof o?o=s[t]=i?[r,o]:[o,r]:i?o.unshift(r):o.push(r),(n=c(e))>0&&o.length>n&&!o.warned){o.warned=!0;var d=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");d.name="MaxListenersExceededWarning",d.emitter=e,d.type=t,d.count=o.length,h=d,console&&console.warn&&console.warn(h)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(e,t,r){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},n=d.bind(i);return n.listener=r,i.wrapFn=n,n}function f(e,t,r){var i=e._events;if(void 0===i)return[];var n=i[t];return void 0===n?[]:"function"==typeof n?r?[n.listener||n]:[n]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var h=c.length,d=p(c,h);for(r=0;r=0;s--)if(r[s]===t||r[s].listener===t){o=r[s].listener,n=s;break}if(n<0)return this;0===n?r.shift():function(e,t){for(;t+1=0;i--)this.removeListener(e,t[i]);return this},s.prototype.listeners=function(e){return f(this,e,!0)},s.prototype.rawListeners=function(e){return f(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):l.call(e,t)},s.prototype.listenerCount=l,s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},9353:e=>{"use strict";var t=Object.prototype.toString,r=Math.max,i=function(e,t){for(var r=[],i=0;i{"use strict";var i=r(9353);e.exports=Function.prototype.bind||i},453:(e,t,r)=>{"use strict";var i,n=r(9383),s=r(1237),o=r(9290),a=r(9538),c=r(8068),h=r(9675),d=r(5345),u=Function,f=function(e){try{return u('"use strict"; return ('+e+").constructor;")()}catch(e){}},l=Object.getOwnPropertyDescriptor;if(l)try{l({},"")}catch(e){l=null}var p=function(){throw new h},y=l?function(){try{return p}catch(e){try{return l(arguments,"callee").get}catch(e){return p}}}():p,m=r(4039)(),g=r(24)(),b=Object.getPrototypeOf||(g?function(e){return e.__proto__}:null),v={},w="undefined"!=typeof Uint8Array&&b?b(Uint8Array):i,S={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?i:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?i:ArrayBuffer,"%ArrayIteratorPrototype%":m&&b?b([][Symbol.iterator]()):i,"%AsyncFromSyncIteratorPrototype%":i,"%AsyncFunction%":v,"%AsyncGenerator%":v,"%AsyncGeneratorFunction%":v,"%AsyncIteratorPrototype%":v,"%Atomics%":"undefined"==typeof Atomics?i:Atomics,"%BigInt%":"undefined"==typeof BigInt?i:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?i:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?i:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?i:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":n,"%eval%":eval,"%EvalError%":s,"%Float32Array%":"undefined"==typeof Float32Array?i:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?i:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?i:FinalizationRegistry,"%Function%":u,"%GeneratorFunction%":v,"%Int8Array%":"undefined"==typeof Int8Array?i:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?i:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?i:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":m&&b?b(b([][Symbol.iterator]())):i,"%JSON%":"object"==typeof JSON?JSON:i,"%Map%":"undefined"==typeof Map?i:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&m&&b?b((new Map)[Symbol.iterator]()):i,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?i:Promise,"%Proxy%":"undefined"==typeof Proxy?i:Proxy,"%RangeError%":o,"%ReferenceError%":a,"%Reflect%":"undefined"==typeof Reflect?i:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?i:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&m&&b?b((new Set)[Symbol.iterator]()):i,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?i:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":m&&b?b(""[Symbol.iterator]()):i,"%Symbol%":m?Symbol:i,"%SyntaxError%":c,"%ThrowTypeError%":y,"%TypedArray%":w,"%TypeError%":h,"%Uint8Array%":"undefined"==typeof Uint8Array?i:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?i:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?i:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?i:Uint32Array,"%URIError%":d,"%WeakMap%":"undefined"==typeof WeakMap?i:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?i:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?i:WeakSet};if(b)try{null.error}catch(e){var _=b(b(e));S["%Error.prototype%"]=_}var x=function e(t){var r;if("%AsyncFunction%"===t)r=f("async function () {}");else if("%GeneratorFunction%"===t)r=f("function* () {}");else if("%AsyncGeneratorFunction%"===t)r=f("async function* () {}");else if("%AsyncGenerator%"===t){var i=e("%AsyncGeneratorFunction%");i&&(r=i.prototype)}else if("%AsyncIteratorPrototype%"===t){var n=e("%AsyncGenerator%");n&&b&&(r=b(n.prototype))}return S[t]=r,r},k={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},P=r(6743),M=r(9957),E=P.call(Function.call,Array.prototype.concat),I=P.call(Function.apply,Array.prototype.splice),A=P.call(Function.call,String.prototype.replace),T=P.call(Function.call,String.prototype.slice),O=P.call(Function.call,RegExp.prototype.exec),N=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,K=/\\(\\)?/g,C=function(e,t){var r,i=e;if(M(k,i)&&(i="%"+(r=k[i])[0]+"%"),M(S,i)){var n=S[i];if(n===v&&(n=x(i)),void 0===n&&!t)throw new h("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:r,name:i,value:n}}throw new c("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new h("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new h('"allowMissing" argument must be a boolean');if(null===O(/^%?[^%]*%?$/,e))throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(e){var t=T(e,0,1),r=T(e,-1);if("%"===t&&"%"!==r)throw new c("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==t)throw new c("invalid intrinsic syntax, expected opening `%`");var i=[];return A(e,N,(function(e,t,r,n){i[i.length]=r?A(n,K,"$1"):t||e})),i}(e),i=r.length>0?r[0]:"",n=C("%"+i+"%",t),s=n.name,o=n.value,a=!1,d=n.alias;d&&(i=d[0],I(r,E([0,1],d)));for(var u=1,f=!0;u=r.length){var g=l(o,p);o=(f=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:o[p]}else f=M(o,p),o=o[p];f&&!a&&(S[s]=o)}}return o}},5795:(e,t,r)=>{"use strict";var i=r(453)("%Object.getOwnPropertyDescriptor%",!0);if(i)try{i([],"length")}catch(e){i=null}e.exports=i},592:(e,t,r)=>{"use strict";var i=r(655),n=function(){return!!i};n.hasArrayLengthDefineBug=function(){if(!i)return null;try{return 1!==i([],"length",{value:1}).length}catch(e){return!0}},e.exports=n},24:e=>{"use strict";var t={__proto__:null,foo:{}},r=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!(t instanceof r)}},4039:(e,t,r)=>{"use strict";var i="undefined"!=typeof Symbol&&Symbol,n=r(1333);e.exports=function(){return"function"==typeof i&&"function"==typeof Symbol&&"symbol"==typeof i("foo")&&"symbol"==typeof Symbol("bar")&&n()}},1333:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var i=Object.getOwnPropertySymbols(e);if(1!==i.length||i[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var n=Object.getOwnPropertyDescriptor(e,t);if(42!==n.value||!0!==n.enumerable)return!1}return!0}},7952:(e,t,r)=>{var i=t;i.utils=r(7426),i.common=r(6166),i.sha=r(6229),i.ripemd=r(6784),i.hmac=r(8948),i.sha1=i.sha.sha1,i.sha256=i.sha.sha256,i.sha224=i.sha.sha224,i.sha384=i.sha.sha384,i.sha512=i.sha.sha512,i.ripemd160=i.ripemd.ripemd160},6166:(e,t,r)=>{"use strict";var i=r(7426),n=r(3349);function s(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=s,s.prototype.update=function(e,t){if(e=i.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=i.join32(e,0,e.length-r,this.endian);for(var n=0;n>>24&255,i[n++]=e>>>16&255,i[n++]=e>>>8&255,i[n++]=255&e}else for(i[n++]=255&e,i[n++]=e>>>8&255,i[n++]=e>>>16&255,i[n++]=e>>>24&255,i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=0,s=8;s{"use strict";var i=r(7426),n=r(3349);function s(e,t,r){if(!(this instanceof s))return new s(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(i.toArray(t,r))}e.exports=s,s.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),n(e.length<=this.blockSize);for(var t=e.length;t{"use strict";var i=r(7426),n=r(6166),s=i.rotl32,o=i.sum32,a=i.sum32_3,c=i.sum32_4,h=n.BlockHash;function d(){if(!(this instanceof d))return new d;h.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function u(e,t,r,i){return e<=15?t^r^i:e<=31?t&r|~t&i:e<=47?(t|~r)^i:e<=63?t&i|r&~i:t^(r|~i)}function f(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function l(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}i.inherits(d,h),t.ripemd160=d,d.blockSize=512,d.outSize=160,d.hmacStrength=192,d.padLength=64,d.prototype._update=function(e,t){for(var r=this.h[0],i=this.h[1],n=this.h[2],h=this.h[3],d=this.h[4],b=r,v=i,w=n,S=h,_=d,x=0;x<80;x++){var k=o(s(c(r,u(x,i,n,h),e[p[x]+t],f(x)),m[x]),d);r=d,d=h,h=s(n,10),n=i,i=k,k=o(s(c(b,u(79-x,v,w,S),e[y[x]+t],l(x)),g[x]),_),b=_,_=S,S=s(w,10),w=v,v=k}k=a(this.h[1],n,S),this.h[1]=a(this.h[2],h,_),this.h[2]=a(this.h[3],d,b),this.h[3]=a(this.h[4],r,v),this.h[4]=a(this.h[0],i,w),this.h[0]=k},d.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h,"little"):i.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],y=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],m=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],g=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},6229:(e,t,r)=>{"use strict";t.sha1=r(3917),t.sha224=r(7714),t.sha256=r(2287),t.sha384=r(1911),t.sha512=r(7766)},3917:(e,t,r)=>{"use strict";var i=r(7426),n=r(6166),s=r(6225),o=i.rotl32,a=i.sum32,c=i.sum32_5,h=s.ft_1,d=n.BlockHash,u=[1518500249,1859775393,2400959708,3395469782];function f(){if(!(this instanceof f))return new f;d.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}i.inherits(f,d),e.exports=f,f.blockSize=512,f.outSize=160,f.hmacStrength=80,f.padLength=64,f.prototype._update=function(e,t){for(var r=this.W,i=0;i<16;i++)r[i]=e[t+i];for(;i{"use strict";var i=r(7426),n=r(2287);function s(){if(!(this instanceof s))return new s;n.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}i.inherits(s,n),e.exports=s,s.blockSize=512,s.outSize=224,s.hmacStrength=192,s.padLength=64,s.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h.slice(0,7),"big"):i.split32(this.h.slice(0,7),"big")}},2287:(e,t,r)=>{"use strict";var i=r(7426),n=r(6166),s=r(6225),o=r(3349),a=i.sum32,c=i.sum32_4,h=i.sum32_5,d=s.ch32,u=s.maj32,f=s.s0_256,l=s.s1_256,p=s.g0_256,y=s.g1_256,m=n.BlockHash,g=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function b(){if(!(this instanceof b))return new b;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=g,this.W=new Array(64)}i.inherits(b,m),e.exports=b,b.blockSize=512,b.outSize=256,b.hmacStrength=192,b.padLength=64,b.prototype._update=function(e,t){for(var r=this.W,i=0;i<16;i++)r[i]=e[t+i];for(;i{"use strict";var i=r(7426),n=r(7766);function s(){if(!(this instanceof s))return new s;n.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}i.inherits(s,n),e.exports=s,s.blockSize=1024,s.outSize=384,s.hmacStrength=192,s.padLength=128,s.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h.slice(0,12),"big"):i.split32(this.h.slice(0,12),"big")}},7766:(e,t,r)=>{"use strict";var i=r(7426),n=r(6166),s=r(3349),o=i.rotr64_hi,a=i.rotr64_lo,c=i.shr64_hi,h=i.shr64_lo,d=i.sum64,u=i.sum64_hi,f=i.sum64_lo,l=i.sum64_4_hi,p=i.sum64_4_lo,y=i.sum64_5_hi,m=i.sum64_5_lo,g=n.BlockHash,b=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;g.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=b,this.W=new Array(160)}function w(e,t,r,i,n){var s=e&r^~e&n;return s<0&&(s+=4294967296),s}function S(e,t,r,i,n,s){var o=t&i^~t&s;return o<0&&(o+=4294967296),o}function _(e,t,r,i,n){var s=e&r^e&n^r&n;return s<0&&(s+=4294967296),s}function x(e,t,r,i,n,s){var o=t&i^t&s^i&s;return o<0&&(o+=4294967296),o}function k(e,t){var r=o(e,t,28)^o(t,e,2)^o(t,e,7);return r<0&&(r+=4294967296),r}function P(e,t){var r=a(e,t,28)^a(t,e,2)^a(t,e,7);return r<0&&(r+=4294967296),r}function M(e,t){var r=a(e,t,14)^a(e,t,18)^a(t,e,9);return r<0&&(r+=4294967296),r}function E(e,t){var r=o(e,t,1)^o(e,t,8)^c(e,t,7);return r<0&&(r+=4294967296),r}function I(e,t){var r=a(e,t,1)^a(e,t,8)^h(e,t,7);return r<0&&(r+=4294967296),r}function A(e,t){var r=a(e,t,19)^a(t,e,29)^h(e,t,6);return r<0&&(r+=4294967296),r}i.inherits(v,g),e.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var r=this.W,i=0;i<32;i++)r[i]=e[t+i];for(;i{"use strict";var i=r(7426).rotr32;function n(e,t,r){return e&t^~e&r}function s(e,t,r){return e&t^e&r^t&r}function o(e,t,r){return e^t^r}t.ft_1=function(e,t,r,i){return 0===e?n(t,r,i):1===e||3===e?o(t,r,i):2===e?s(t,r,i):void 0},t.ch32=n,t.maj32=s,t.p32=o,t.s0_256=function(e){return i(e,2)^i(e,13)^i(e,22)},t.s1_256=function(e){return i(e,6)^i(e,11)^i(e,25)},t.g0_256=function(e){return i(e,7)^i(e,18)^e>>>3},t.g1_256=function(e){return i(e,17)^i(e,19)^e>>>10}},7426:(e,t,r)=>{"use strict";var i=r(3349),n=r(6698);function s(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?"0"+e:e}function c(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=n,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n>6|192,r[i++]=63&o|128):s(e,n)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++n)),r[i++]=o>>18|240,r[i++]=o>>12&63|128,r[i++]=o>>6&63|128,r[i++]=63&o|128):(r[i++]=o>>12|224,r[i++]=o>>6&63|128,r[i++]=63&o|128)}else for(n=0;n>>0}return o},t.split32=function(e,t){for(var r=new Array(4*e.length),i=0,n=0;i>>24,r[n+1]=s>>>16&255,r[n+2]=s>>>8&255,r[n+3]=255&s):(r[n+3]=s>>>24,r[n+2]=s>>>16&255,r[n+1]=s>>>8&255,r[n]=255&s)}return r},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,r){return e+t+r>>>0},t.sum32_4=function(e,t,r,i){return e+t+r+i>>>0},t.sum32_5=function(e,t,r,i,n){return e+t+r+i+n>>>0},t.sum64=function(e,t,r,i){var n=e[t],s=i+e[t+1]>>>0,o=(s>>0,e[t+1]=s},t.sum64_hi=function(e,t,r,i){return(t+i>>>0>>0},t.sum64_lo=function(e,t,r,i){return t+i>>>0},t.sum64_4_hi=function(e,t,r,i,n,s,o,a){var c=0,h=t;return c+=(h=h+i>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,r,i,n,s,o,a){return t+i+s+a>>>0},t.sum64_5_hi=function(e,t,r,i,n,s,o,a,c,h){var d=0,u=t;return d+=(u=u+i>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,r,i,n,s,o,a,c,h){return t+i+s+a+h>>>0},t.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},t.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},t.shr64_hi=function(e,t,r){return e>>>r},t.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},9957:(e,t,r)=>{"use strict";var i=Function.prototype.call,n=Object.prototype.hasOwnProperty,s=r(6743);e.exports=s.call(i,n)},2723:(e,t,r)=>{"use strict";var i=r(7952),n=r(4367),s=r(3349);function o(e){if(!(this instanceof o))return new o(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=n.toArray(e.entropy,e.entropyEnc||"hex"),r=n.toArray(e.nonce,e.nonceEnc||"hex"),i=n.toArray(e.pers,e.persEnc||"hex");s(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,i)}e.exports=o,o.prototype._init=function(e,t,r){var i=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var n=0;n=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},o.prototype.generate=function(e,t,r,i){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(i=r,r=t,t=null),r&&(r=n.toArray(r,i||"hex"),this._update(r));for(var s=[];s.length{t.read=function(e,t,r,i,n){var s,o,a=8*n-i-1,c=(1<>1,d=-7,u=r?n-1:0,f=r?-1:1,l=e[t+u];for(u+=f,s=l&(1<<-d)-1,l>>=-d,d+=a;d>0;s=256*s+e[t+u],u+=f,d-=8);for(o=s&(1<<-d)-1,s>>=-d,d+=i;d>0;o=256*o+e[t+u],u+=f,d-=8);if(0===s)s=1-h;else{if(s===c)return o?NaN:1/0*(l?-1:1);o+=Math.pow(2,i),s-=h}return(l?-1:1)*o*Math.pow(2,s-i)},t.write=function(e,t,r,i,n,s){var o,a,c,h=8*s-n-1,d=(1<>1,f=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,l=i?0:s-1,p=i?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=d):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+u>=1?f/c:f*Math.pow(2,1-u))*c>=2&&(o++,c/=2),o+u>=d?(a=0,o=d):o+u>=1?(a=(t*c-1)*Math.pow(2,n),o+=u):(a=t*Math.pow(2,u-1)*Math.pow(2,n),o=0));n>=8;e[r+l]=255&a,l+=p,a/=256,n-=8);for(o=o<0;e[r+l]=255&o,l+=p,o/=256,h-=8);e[r+l-p]|=128*y}},6698:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},4634:e=>{var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},5473:(e,t,r)=>{"use strict";var i=("undefined"!=typeof JSON?JSON:r(4343)).stringify,n=r(4634),s=r(1189),o=r(487),a=r(8075),c=a("Array.prototype.join"),h=a("Array.prototype.push"),d=function(e,t){for(var r="",i=0;i1?arguments[1]:void 0,r=t&&t.space||"";"number"==typeof r&&(r=d(r," "));var a=!!t&&"boolean"==typeof t.cycles&&t.cycles,f=t&&t.replacer?o(t.replacer):u,l="function"==typeof t?t:t&&t.cmp,p=l&&function(e){var t=l.length>2&&function(t){return e[t]};return function(r,i){return l({key:r,value:e[r]},{key:i,value:e[i]},t?{__proto__:null,get:t}:void 0)}},y=[];return function e(t,o,u,l){var m=r?"\n"+d(l,r):"",g=r?": ":":";if(u&&u.toJSON&&"function"==typeof u.toJSON&&(u=u.toJSON()),void 0!==(u=f(t,o,u))){if("object"!=typeof u||null===u)return i(u);if(n(u)){for(var b=[],v=0;v{"use strict";t.parse=r(5776),t.stringify=r(9086)},5776:e=>{"use strict";var t,r,i,n={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"};function s(e){throw{name:"SyntaxError",message:e,at:t,text:i}}function o(e){return e&&e!==r&&s("Expected '"+e+"' instead of '"+r+"'"),r=i.charAt(t),t+=1,r}function a(){var e,t="";for("-"===r&&(t="-",o("-"));r>="0"&&r<="9";)t+=r,o();if("."===r)for(t+=".";o()&&r>="0"&&r<="9";)t+=r;if("e"===r||"E"===r)for(t+=r,o(),"-"!==r&&"+"!==r||(t+=r,o());r>="0"&&r<="9";)t+=r,o();return e=Number(t),isFinite(e)||s("Bad number"),e}function c(){var e,t,i,a="";if('"'===r)for(;o();){if('"'===r)return o(),a;if("\\"===r)if(o(),"u"===r){for(i=0,t=0;t<4&&(e=parseInt(o(),16),isFinite(e));t+=1)i=16*i+e;a+=String.fromCharCode(i)}else{if("string"!=typeof n[r])break;a+=n[r]}else a+=r}s("Bad string")}function h(){for(;r&&r<=" ";)o()}function d(){switch(h(),r){case"{":return function(){var e,t={};if("{"===r){if(o("{"),h(),"}"===r)return o("}"),t;for(;r;){if(e=c(),h(),o(":"),Object.prototype.hasOwnProperty.call(t,e)&&s('Duplicate key "'+e+'"'),t[e]=d(),h(),"}"===r)return o("}"),t;o(","),h()}}s("Bad object")}();case"[":return function(){var e=[];if("["===r){if(o("["),h(),"]"===r)return o("]"),e;for(;r;){if(e.push(d()),h(),"]"===r)return o("]"),e;o(","),h()}}s("Bad array")}();case'"':return c();case"-":return a();default:return r>="0"&&r<="9"?a():function(){switch(r){case"t":return o("t"),o("r"),o("u"),o("e"),!0;case"f":return o("f"),o("a"),o("l"),o("s"),o("e"),!1;case"n":return o("n"),o("u"),o("l"),o("l"),null;default:s("Unexpected '"+r+"'")}}()}}e.exports=function(e,n){var o;return i=e,t=0,r=" ",o=d(),h(),r&&s("Syntax error"),"function"==typeof n?function e(t,r){var i,s,o=t[r];if(o&&"object"==typeof o)for(i in d)Object.prototype.hasOwnProperty.call(o,i)&&(void 0===(s=e(o,i))?delete o[i]:o[i]=s);return n.call(t,r,o)}({"":o},""):o}},9086:e=>{"use strict";var t,r,i,n=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,s={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function o(e){return n.lastIndex=0,n.test(e)?'"'+e.replace(n,(function(e){var t=s[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)}))+'"':'"'+e+'"'}function a(e,n){var s,c,h,d,u,f=t,l=n[e];switch(l&&"object"==typeof l&&"function"==typeof l.toJSON&&(l=l.toJSON(e)),"function"==typeof i&&(l=i.call(n,e,l)),typeof l){case"string":return o(l);case"number":return isFinite(l)?String(l):"null";case"boolean":case"null":return String(l);case"object":if(!l)return"null";if(t+=r,u=[],"[object Array]"===Object.prototype.toString.apply(l)){for(d=l.length,s=0;s=0&&t<=u.levels.SILENT)return t;throw new TypeError("log.setLevel() called with invalid level: "+e)}"string"==typeof e?f+=":"+e:"symbol"==typeof e&&(f=void 0),u.name=e,u.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},u.methodFactory=r||d,u.getLevel=function(){return null!=h?h:null!=a?a:o},u.setLevel=function(e,r){return h=p(e),!1!==r&&function(e){var r=(i[e]||"silent").toUpperCase();if(typeof window!==t&&f){try{return void(window.localStorage[f]=r)}catch(e){}try{window.document.cookie=encodeURIComponent(f)+"="+r+";"}catch(e){}}}(h),c.call(u)},u.setDefaultLevel=function(e){a=p(e),l()||u.setLevel(e,!1)},u.resetLevel=function(){h=null,function(){if(typeof window!==t&&f){try{window.localStorage.removeItem(f)}catch(e){}try{window.document.cookie=encodeURIComponent(f)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}(),c.call(u)},u.enableAll=function(e){u.setLevel(u.levels.TRACE,e)},u.disableAll=function(e){u.setLevel(u.levels.SILENT,e)},u.rebuild=function(){if(s!==u&&(o=p(s.getLevel())),c.call(u),s===u)for(var e in n)n[e].rebuild()},o=p(s?s.getLevel():"WARN");var y=l();null!=y&&(h=p(y)),c.call(u)}(s=new u).getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=n[e];return t||(t=n[e]=new u(e,s.methodFactory)),t};var f=typeof window!==t?window.log:void 0;return s.noConflict=function(){return typeof window!==t&&window.log===s&&(window.log=f),s},s.getLoggers=function(){return n},s.default=s,s},void 0===(n=i.call(t,r,t,e))||(e.exports=n)}()},3349:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)}},4367:(e,t)=>{"use strict";var r=t;function i(e){return 1===e.length?"0"+e:e}function n(e){for(var t="",r=0;r>8,o=255&n;s?r.push(s,o):r.push(o)}return r},r.zero2=i,r.toHex=n,r.encode=function(e,t){return"hex"===t?n(e):e}},8875:(e,t,r)=>{"use strict";var i;if(!Object.keys){var n=Object.prototype.hasOwnProperty,s=Object.prototype.toString,o=r(1093),a=Object.prototype.propertyIsEnumerable,c=!a.call({toString:null},"toString"),h=a.call((function(){}),"prototype"),d=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(e){var t=e.constructor;return t&&t.prototype===e},f={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!f["$"+e]&&n.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{u(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();i=function(e){var t=null!==e&&"object"==typeof e,r="[object Function]"===s.call(e),i=o(e),a=t&&"[object String]"===s.call(e),f=[];if(!t&&!r&&!i)throw new TypeError("Object.keys called on a non-object");var p=h&&r;if(a&&e.length>0&&!n.call(e,0))for(var y=0;y0)for(var m=0;m{"use strict";var i=Array.prototype.slice,n=r(1093),s=Object.keys,o=s?function(e){return s(e)}:r(8875),a=Object.keys;o.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return n(e)?a(i.call(e)):a(e)})}else Object.keys=o;return Object.keys||o},e.exports=o},1093:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var r=t.call(e),i="[object Arguments]"===r;return i||(i="[object Array]"!==r&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),i}},6897:(e,t,r)=>{"use strict";var i=r(453),n=r(41),s=r(592)(),o=r(5795),a=r(9675),c=i("%Math.floor%");e.exports=function(e,t){if("function"!=typeof e)throw new a("`fn` is not a function");if("number"!=typeof t||t<0||t>4294967295||c(t)!==t)throw new a("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],i=!0,h=!0;if("length"in e&&o){var d=o(e,"length");d&&!d.configurable&&(i=!1),d&&!d.writable&&(h=!1)}return(i||h||!r)&&(s?n(e,"length",t,!0,!0):n(e,"length",t)),e}},7998:()=>{},7790:()=>{},3776:()=>{},3693:(e,t,r)=>{var i=r(7736);e.exports=function(e,t,r){return(t=i(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},9045:(e,t,r)=>{var i=r(3738).default;e.exports=function(e,t){if("object"!=i(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},7736:(e,t,r)=>{var i=r(3738).default,n=r(9045);e.exports=function(e){var t=n(e,"string");return"symbol"==i(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},3738:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},9190:(e,t,r)=>{"use strict";function i(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function n(e,...t){if(!((r=e)instanceof Uint8Array||null!=r&&"object"==typeof r&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function s(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function o(e,t){n(e);const r=t.outputLen;if(e.lengtha,CG:()=>o,ai:()=>i,ee:()=>n,t2:()=>s});const a={number:i,bool:function(e){if("boolean"!=typeof e)throw new Error(`boolean expected, not ${e}`)},bytes:n,hash:function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");i(e.outputLen),i(e.blockLen)},exists:s,output:o}},9271:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>u,B4:()=>c,P5:()=>a,WM:()=>h,im:()=>d,lD:()=>o});const i=BigInt(2**32-1),n=BigInt(32);function s(e,t=!1){return t?{h:Number(e&i),l:Number(e>>n&i)}:{h:0|Number(e>>n&i),l:0|Number(e&i)}}function o(e,t=!1){let r=new Uint32Array(e.length),i=new Uint32Array(e.length);for(let n=0;ne<>>32-r,c=(e,t,r)=>t<>>32-r,h=(e,t,r)=>t<>>64-r,d=(e,t,r)=>e<>>64-r,u={fromBig:s,split:o,toBig:(e,t)=>BigInt(e>>>0)<>>0),shrSH:(e,t,r)=>e>>>r,shrSL:(e,t,r)=>e<<32-r|t>>>r,rotrSH:(e,t,r)=>e>>>r|t<<32-r,rotrSL:(e,t,r)=>e<<32-r|t>>>r,rotrBH:(e,t,r)=>e<<64-r|t>>>r-32,rotrBL:(e,t,r)=>e>>>r-32|t<<64-r,rotr32H:(e,t)=>t,rotr32L:(e,t)=>e,rotlSH:a,rotlSL:c,rotlBH:h,rotlBL:d,add:function(e,t,r,i){const n=(t>>>0)+(i>>>0);return{h:e+r+(n/2**32|0)|0,l:0|n}},add3L:(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),add3H:(e,t,r,i)=>t+r+i+(e/2**32|0)|0,add4L:(e,t,r,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(i>>>0),add4H:(e,t,r,i,n)=>t+r+i+n+(e/2**32|0)|0,add5H:(e,t,r,i,n,s)=>t+r+i+n+s+(e/2**32|0)|0,add5L:(e,t,r,i,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(i>>>0)+(n>>>0)}},2531:(e,t,r)=>{"use strict";r.d(t,{Vw:()=>f,Fc:()=>d,O8:()=>o,qv:()=>c,po:()=>p,Ow:()=>a,ZJ:()=>u,DH:()=>s,ld:()=>l});const i="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;var n=r(9190);const s=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),o=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),a=(e,t)=>e<<32-t|e>>>t,c=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0],h=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;function d(e){for(let t=0;te().update(u(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function p(e=32){if(i&&"function"==typeof i.getRandomValues)return i.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}},9463:(e,t,r)=>{"use strict";r.d(t,{So:()=>M});var i=r(9190),n=r(9271),s=r(2531);const o=[],a=[],c=[],h=BigInt(0),d=BigInt(1),u=BigInt(2),f=BigInt(7),l=BigInt(256),p=BigInt(113);for(let e=0,t=d,r=1,i=0;e<24;e++){[r,i]=[i,(2*r+3*i)%5],o.push(2*(5*i+r)),a.push((e+1)*(e+2)/2%64);let n=h;for(let e=0;e<7;e++)t=(t<>f)*p)%l,t&u&&(n^=d<<(d<r>32?(0,n.WM)(e,t,r):(0,n.P5)(e,t,r),b=(e,t,r)=>r>32?(0,n.im)(e,t,r):(0,n.B4)(e,t,r);class v extends s.Vw{constructor(e,t,r,n=!1,o=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=o,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,(0,i.ai)(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=(0,s.DH)(this.state)}keccak(){s.qv||(0,s.Fc)(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let i=24-t;i<24;i++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const i=(t+8)%10,n=(t+2)%10,s=r[n],o=r[n+1],a=g(s,o,1)^r[i],c=b(s,o,1)^r[i+1];for(let r=0;r<50;r+=10)e[t+r]^=a,e[t+r+1]^=c}let t=e[2],n=e[3];for(let r=0;r<24;r++){const i=a[r],s=g(t,n,i),c=b(t,n,i),h=o[r];t=e[h],n=e[h+1],e[h]=s,e[h+1]=c}for(let t=0;t<50;t+=10){for(let i=0;i<10;i++)r[i]=e[t+i];for(let i=0;i<10;i++)e[t+i]^=~r[(i+2)%10]&r[(i+4)%10]}e[0]^=y[i],e[1]^=m[i]}r.fill(0)}(this.state32,this.rounds),s.qv||(0,s.Fc)(this.state32),this.posOut=0,this.pos=0}update(e){(0,i.t2)(this);const{blockLen:t,state:r}=this,n=(e=(0,s.ZJ)(e)).length;for(let i=0;i=r&&this.keccak();const s=Math.min(r-this.posOut,n-i);e.set(t.subarray(this.posOut,this.posOut+s),i),this.posOut+=s,i+=s}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return(0,i.ai)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if((0,i.CG)(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:i,rounds:n,enableXOF:s}=this;return e||(e=new v(t,r,i,s,n)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=n,e.suffix=r,e.outputLen=i,e.enableXOF=s,e.destroyed=this.destroyed,e}}const w=(e,t,r)=>(0,s.ld)((()=>new v(t,e,r))),S=w(1,144,28),_=w(1,136,32),x=w(1,104,48),k=w(1,72,64);var P=r(651);(0,P.RS)(S);const M=(()=>{const e=(0,P.RS)(_);return e.create=_.create,e})();(0,P.RS)(x),(0,P.RS)(k)},651:(e,t,r)=>{"use strict";r.d(t,{RS:()=>n});var i=r(9190);function n(e){return t=>(i.Ay.bytes(t),e(t))}i.Ay.bool,i.Ay.bytes,(()=>{const e="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,t="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);t&&!e&&t("crypto")})()},7115:(e,t,r)=>{"use strict";r.d(t,{io:()=>ke});var i={};r.r(i),r.d(i,{Decoder:()=>me,Encoder:()=>pe,PacketType:()=>le,protocol:()=>fe});const n=Object.create(null);n.open="0",n.close="1",n.ping="2",n.pong="3",n.message="4",n.upgrade="5",n.noop="6";const s=Object.create(null);Object.keys(n).forEach((e=>{s[n[e]]=e}));const o={type:"error",data:"parser error"},a="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),c="function"==typeof ArrayBuffer,h=e=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,d=({type:e,data:t},r,i)=>a&&t instanceof Blob?r?i(t):u(t,i):c&&(t instanceof ArrayBuffer||h(t))?r?i(t):u(new Blob([t]),i):i(n[e]+(t||"")),u=(e,t)=>{const r=new FileReader;return r.onload=function(){const e=r.result.split(",")[1];t("b"+(e||""))},r.readAsDataURL(e)};function f(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let l;const p="undefined"==typeof Uint8Array?[]:new Uint8Array(256);for(let e=0;e<64;e++)p["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(e)]=e;const y="function"==typeof ArrayBuffer,m=(e,t)=>{if("string"!=typeof e)return{type:"message",data:b(e,t)};const r=e.charAt(0);return"b"===r?{type:"message",data:g(e.substring(1),t)}:s[r]?e.length>1?{type:s[r],data:e.substring(1)}:{type:s[r]}:o},g=(e,t)=>{if(y){const r=(e=>{let t,r,i,n,s,o=.75*e.length,a=e.length,c=0;"="===e[e.length-1]&&(o--,"="===e[e.length-2]&&o--);const h=new ArrayBuffer(o),d=new Uint8Array(h);for(t=0;t>4,d[c++]=(15&i)<<4|n>>2,d[c++]=(3&n)<<6|63&s;return h})(e);return b(r,t)}return{base64:!0,data:e}},b=(e,t)=>"blob"===t?e instanceof Blob?e:new Blob([e]):e instanceof ArrayBuffer?e:e.buffer,v=String.fromCharCode(30);let w;function S(e){return e.reduce(((e,t)=>e+t.length),0)}function _(e,t){if(e[0].length===t)return e.shift();const r=new Uint8Array(t);let i=0;for(let n=0;n(e.hasOwnProperty(r)&&(t[r]=e[r]),t)),{})}const M=k.setTimeout,E=k.clearTimeout;function I(e,t){t.useNativeTimers?(e.setTimeoutFn=M.bind(k),e.clearTimeoutFn=E.bind(k)):(e.setTimeoutFn=k.setTimeout.bind(k),e.clearTimeoutFn=k.clearTimeout.bind(k))}class A extends Error{constructor(e,t,r){super(e),this.description=t,this.context=r,this.type="TransportError"}}class T extends x{constructor(e){super(),this.writable=!1,I(this,e),this.opts=e,this.query=e.query,this.socket=e.socket}onError(e,t,r){return super.emitReserved("error",new A(e,t,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(e){"open"===this.readyState&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=m(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return-1===e.indexOf(":")?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(e){const t=function(e){let t="";for(let r in e)e.hasOwnProperty(r)&&(t.length&&(t+="&"),t+=encodeURIComponent(r)+"="+encodeURIComponent(e[r]));return t}(e);return t.length?"?"+t:""}}const O="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),N=64,K={};let C,L=0,R=0;function B(e){let t="";do{t=O[e%N]+t,e=Math.floor(e/N)}while(e>0);return t}function F(){const e=B(+new Date);return e!==C?(L=0,C=e):e+"."+B(L++)}for(;R{var e;3===r.readyState&&(null===(e=this.opts.cookieJar)||void 0===e||e.parseCookies(r)),4===r.readyState&&(200===r.status||1223===r.status?this.onLoad():this.setTimeoutFn((()=>{this.onError("number"==typeof r.status?r.status:0)}),0))},r.send(this.data)}catch(e){return void this.setTimeoutFn((()=>{this.onError(e)}),0)}"undefined"!=typeof document&&(this.index=z.requestsCount++,z.requests[this.index]=this)}onError(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}cleanup(e){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=q,e)try{this.xhr.abort()}catch(e){}"undefined"!=typeof document&&delete z.requests[this.index],this.xhr=null}}onLoad(){const e=this.xhr.responseText;null!==e&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}function J(){for(let e in z.requests)z.requests.hasOwnProperty(e)&&z.requests[e].abort()}z.requestsCount=0,z.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",J):"function"==typeof addEventListener&&addEventListener("onpagehide"in k?"pagehide":"unload",J,!1));const H="function"==typeof Promise&&"function"==typeof Promise.resolve?e=>Promise.resolve().then(e):(e,t)=>t(e,0),V=k.WebSocket||k.MozWebSocket;r(8287).hp;const Y="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),W={websocket:class extends T{constructor(e){super(e),this.supportsBinary=!e.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const e=this.uri(),t=this.opts.protocols,r=Y?{}:P(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=Y?new V(e,t,r):t?new V(e,t):new V(e)}catch(e){return this.emitReserved("error",e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t{try{this.ws.send(e)}catch(e){}i&&H((()=>{this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=F()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}check(){return!!V}},webtransport:class extends T{get name(){return"webtransport"}doOpen(){"function"==typeof WebTransport&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then((()=>{this.onClose()})).catch((e=>{this.onError("webtransport error",e)})),this.transport.ready.then((()=>{this.transport.createBidirectionalStream().then((e=>{const t=function(e,t){w||(w=new TextDecoder);const r=[];let i=0,n=-1,s=!1;return new TransformStream({transform(a,c){for(r.push(a);;){if(0===i){if(S(r)<1)break;const e=_(r,1);s=!(128&~e[0]),n=127&e[0],i=n<126?3:126===n?1:2}else if(1===i){if(S(r)<2)break;const e=_(r,2);n=new DataView(e.buffer,e.byteOffset,e.length).getUint16(0),i=3}else if(2===i){if(S(r)<8)break;const e=_(r,8),t=new DataView(e.buffer,e.byteOffset,e.length),s=t.getUint32(0);if(s>Math.pow(2,21)-1){c.enqueue(o);break}n=s*Math.pow(2,32)+t.getUint32(4),i=3}else{if(S(r)e){c.enqueue(o);break}}}})}(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=e.readable.pipeThrough(t).getReader(),i=new TransformStream({transform(e,t){!function(e,t){a&&e.data instanceof Blob?e.data.arrayBuffer().then(f).then(t):c&&(e.data instanceof ArrayBuffer||h(e.data))?t(f(e.data)):d(e,!1,(e=>{l||(l=new TextEncoder),t(l.encode(e))}))}(e,(r=>{const i=r.length;let n;if(i<126)n=new Uint8Array(1),new DataView(n.buffer).setUint8(0,i);else if(i<65536){n=new Uint8Array(3);const e=new DataView(n.buffer);e.setUint8(0,126),e.setUint16(1,i)}else{n=new Uint8Array(9);const e=new DataView(n.buffer);e.setUint8(0,127),e.setBigUint64(1,BigInt(i))}e.data&&"string"!=typeof e.data&&(n[0]|=128),t.enqueue(n),t.enqueue(r)}))}});i.readable.pipeTo(e.writable),this.writer=i.writable.getWriter();const n=()=>{r.read().then((({done:e,value:t})=>{e||(this.onPacket(t),n())})).catch((e=>{}))};n();const s={type:"open"};this.query.sid&&(s.data=`{"sid":"${this.query.sid}"}`),this.writer.write(s).then((()=>this.onOpen()))}))})))}write(e){this.writable=!1;for(let t=0;t{i&&H((()=>{this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){var e;null===(e=this.transport)||void 0===e||e.close()}},polling:class extends T{constructor(e){if(super(e),this.polling=!1,"undefined"!=typeof location){const t="https:"===location.protocol;let r=location.port;r||(r=t?"443":"80"),this.xd="undefined"!=typeof location&&e.hostname!==location.hostname||r!==e.port}const t=e&&e.forceBase64;this.supportsBinary=$&&!t,this.opts.withCredentials&&(this.cookieJar=void 0)}get name(){return"polling"}doOpen(){this.poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this.polling||!this.writable){let e=0;this.polling&&(e++,this.once("pollComplete",(function(){--e||t()}))),this.writable||(e++,this.once("drain",(function(){--e||t()})))}else t()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){((e,t)=>{const r=e.split(v),i=[];for(let e=0;e{if("opening"===this.readyState&&"open"===e.type&&this.onOpen(),"close"===e.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}doClose(){const e=()=>{this.write([{type:"close"}])};"open"===this.readyState?e():this.once("open",e)}write(e){this.writable=!1,((e,t)=>{const r=e.length,i=new Array(r);let n=0;e.forEach(((e,s)=>{d(e,!1,(e=>{i[s]=e,++n===r&&t(i.join(v))}))}))})(e,(e=>{this.doWrite(e,(()=>{this.writable=!0,this.emitReserved("drain")}))}))}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=F()),this.supportsBinary||t.sid||(t.b64=1),this.createUri(e,t)}request(e={}){return Object.assign(e,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new z(this.uri(),e)}doWrite(e,t){const r=this.request({method:"POST",data:e});r.on("success",t),r.on("error",((e,t)=>{this.onError("xhr post error",e,t)}))}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",((e,t)=>{this.onError("xhr poll error",e,t)})),this.pollXhr=e}}},X=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,G=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Q(e){if(e.length>2e3)throw"URI too long";const t=e,r=e.indexOf("["),i=e.indexOf("]");-1!=r&&-1!=i&&(e=e.substring(0,r)+e.substring(r,i).replace(/:/g,";")+e.substring(i,e.length));let n=X.exec(e||""),s={},o=14;for(;o--;)s[G[o]]=n[o]||"";return-1!=r&&-1!=i&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s.pathNames=function(e,t){const r=t.replace(/\/{2,9}/g,"/").split("/");return"/"!=t.slice(0,1)&&0!==t.length||r.splice(0,1),"/"==t.slice(-1)&&r.splice(r.length-1,1),r}(0,s.path),s.queryKey=function(e,t){const r={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(e,t,i){t&&(r[t]=i)})),r}(0,s.query),s}class Z extends x{constructor(e,t={}){super(),this.binaryType="arraybuffer",this.writeBuffer=[],e&&"object"==typeof e&&(t=e,e=null),e?(e=Q(e),t.hostname=e.host,t.secure="https"===e.protocol||"wss"===e.protocol,t.port=e.port,e.query&&(t.query=e.query)):t.host&&(t.hostname=Q(t.host).host),I(this,t),this.secure=null!=t.secure?t.secure:"undefined"!=typeof location&&"https:"===location.protocol,t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=t.port||("undefined"!=typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=t.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=function(e){let t={},r=e.split("&");for(let e=0,i=r.length;e{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);const r=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new W[e](r)}open(){let e;if(this.opts.rememberUpgrade&&Z.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((()=>{this.emitReserved("error","No transports available")}),0);e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(e=>this.onClose("transport close",e)))}probe(e){let t=this.createTransport(e),r=!1;Z.priorWebsocketSuccess=!1;const i=()=>{r||(t.send([{type:"ping",data:"probe"}]),t.once("packet",(e=>{if(!r)if("pong"===e.type&&"probe"===e.data){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;Z.priorWebsocketSuccess="websocket"===t.name,this.transport.pause((()=>{r||"closed"!==this.readyState&&(h(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())}))}else{const e=new Error("probe error");e.transport=t.name,this.emitReserved("upgradeError",e)}})))};function n(){r||(r=!0,h(),t.close(),t=null)}const s=e=>{const r=new Error("probe error: "+e);r.transport=t.name,n(),this.emitReserved("upgradeError",r)};function o(){s("transport closed")}function a(){s("socket closed")}function c(e){t&&e.name!==t.name&&n()}const h=()=>{t.removeListener("open",i),t.removeListener("error",s),t.removeListener("close",o),this.off("close",a),this.off("upgrading",c)};t.once("open",i),t.once("error",s),t.once("close",o),this.once("close",a),this.once("upgrading",c),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==e?this.setTimeoutFn((()=>{r||t.open()}),200):t.open()}onOpen(){if(this.readyState="open",Z.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade){let e=0;const t=this.upgrades.length;for(;e{this.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this.getWritablePackets();this.transport.send(e),this.prevBufferLen=e.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let e=1;for(let r=0;r=57344?r+=3:(i++,r+=4);return r}(t):Math.ceil(1.33*(t.byteLength||t.size))),r>0&&e>this.maxPayload)return this.writeBuffer.slice(0,r);e+=2}var t;return this.writeBuffer}write(e,t,r){return this.sendPacket("message",e,t,r),this}send(e,t,r){return this.sendPacket("message",e,t,r),this}sendPacket(e,t,r,i){if("function"==typeof t&&(i=t,t=void 0),"function"==typeof r&&(i=r,r=null),"closing"===this.readyState||"closed"===this.readyState)return;(r=r||{}).compress=!1!==r.compress;const n={type:e,data:t,options:r};this.emitReserved("packetCreate",n),this.writeBuffer.push(n),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this.onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},r=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(()=>{this.upgrading?r():e()})):this.upgrading?r():e()),this}onError(e){Z.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}onClose(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(e){const t=[];let r=0;const i=e.length;for(;r"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,re=Object.prototype.toString,ie="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===re.call(Blob),ne="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===re.call(File);function se(e){return ee&&(e instanceof ArrayBuffer||te(e))||ie&&e instanceof Blob||ne&&e instanceof File}function oe(e,t){if(!e||"object"!=typeof e)return!1;if(Array.isArray(e)){for(let t=0,r=e.length;t=0&&e.num{delete this.acks[e];for(let t=0;t{this.io.clearTimeoutFn(n),t.apply(this,e)};s.withError=!0,this.acks[e]=s}emitWithAck(e,...t){return new Promise(((r,i)=>{const n=(e,t)=>e?i(e):r(t);n.withError=!0,t.push(n),this.emit(e,...t)}))}_addToQueue(e){let t;"function"==typeof e[e.length-1]&&(t=e.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push(((e,...i)=>{if(r===this._queue[0])return null!==e?r.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(e)):(this._queue.shift(),t&&t(null,...i)),r.pending=!1,this._drainQueue()})),this._queue.push(r),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||0===this._queue.length)return;const t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){"function"==typeof this.auth?this.auth((e=>{this._sendConnectPacket(e)})):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:le.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach((e=>{if(!this.sendBuffer.some((t=>String(t.id)===e))){const t=this.acks[e];delete this.acks[e],t.withError&&t.call(this,new Error("socket has been disconnected"))}}))}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case le.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case le.EVENT:case le.BINARY_EVENT:this.onevent(e);break;case le.ACK:case le.BINARY_ACK:this.onack(e);break;case le.DISCONNECT:this.ondisconnect();break;case le.CONNECT_ERROR:this.destroy();const t=new Error(e.data.message);t.data=e.data.data,this.emitReserved("connect_error",t)}}onevent(e){const t=e.data||[];null!=e.id&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const r of t)r.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&"string"==typeof e[e.length-1]&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let r=!1;return function(...i){r||(r=!0,t.packet({type:le.ACK,id:e,data:i}))}}onack(e){const t=this.acks[e.id];"function"==typeof t&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach((e=>this.emitEvent(e))),this.receiveBuffer=[],this.sendBuffer.forEach((e=>{this.notifyOutgoingListeners(e),this.packet(e)})),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach((e=>e())),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:le.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let r=0;r0&&e.jitter<=1?e.jitter:0,this.attempts=0}Se.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),r=Math.floor(t*this.jitter*e);e=1&Math.floor(10*t)?e+r:e-r}return 0|Math.min(e,this.max)},Se.prototype.reset=function(){this.attempts=0},Se.prototype.setMin=function(e){this.ms=e},Se.prototype.setMax=function(e){this.max=e},Se.prototype.setJitter=function(e){this.jitter=e};class _e extends x{constructor(e,t){var r;super(),this.nsps={},this.subs=[],e&&"object"==typeof e&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.opts=t,I(this,t),this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(r=t.randomizationFactor)&&void 0!==r?r:.5),this.backoff=new Se({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this._readyState="closed",this.uri=e;const n=t.parser||i;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this._autoConnect=!1!==t.autoConnect,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}reconnectionAttempts(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}randomizationFactor(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new Z(this.uri,this.opts);const t=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const i=be(t,"open",(function(){r.onopen(),e&&e()})),n=t=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",t),e?e(t):this.maybeReconnectOnOpen()},s=be(t,"error",n);if(!1!==this._timeout){const e=this._timeout,r=this.setTimeoutFn((()=>{i(),n(new Error("timeout")),t.close()}),e);this.opts.autoUnref&&r.unref(),this.subs.push((()=>{this.clearTimeoutFn(r)}))}return this.subs.push(i),this.subs.push(s),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(be(e,"ping",this.onping.bind(this)),be(e,"data",this.ondata.bind(this)),be(e,"error",this.onerror.bind(this)),be(e,"close",this.onclose.bind(this)),be(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(e){this.onclose("parse error",e)}}ondecoded(e){H((()=>{this.emitReserved("packet",e)}),this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,t){let r=this.nsps[e];return r?this._autoConnect&&!r.active&&r.connect():(r=new we(this,e,t),this.nsps[e]=r),r}_destroy(e){const t=Object.keys(this.nsps);for(const e of t)if(this.nsps[e].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let r=0;re())),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(e,t){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn((()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),e.skipReconnect||e.open((t=>{t?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",t)):e.onreconnect()})))}),t);this.opts.autoUnref&&r.unref(),this.subs.push((()=>{this.clearTimeoutFn(r)}))}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const xe={};function ke(e,t){"object"==typeof e&&(t=e,e=void 0);const r=function(e,t="",r){let i=e;r=r||"undefined"!=typeof location&&location,null==e&&(e=r.protocol+"//"+r.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?r.protocol+e:r.host+e),/^(https?|wss?):\/\//.test(e)||(e=void 0!==r?r.protocol+"//"+e:"https://"+e),i=Q(e)),i.port||(/^(http|ws)$/.test(i.protocol)?i.port="80":/^(http|ws)s$/.test(i.protocol)&&(i.port="443")),i.path=i.path||"/";const n=-1!==i.host.indexOf(":")?"["+i.host+"]":i.host;return i.id=i.protocol+"://"+n+":"+i.port+t,i.href=i.protocol+"://"+n+(r&&r.port===i.port?"":":"+i.port),i}(e,(t=t||{}).path||"/socket.io"),i=r.source,n=r.id,s=r.path,o=xe[n]&&s in xe[n].nsps;let a;return t.forceNew||t["force new connection"]||!1===t.multiplex||o?a=new _e(i,t):(xe[n]||(xe[n]=new _e(i,t)),a=xe[n]),r.query&&!t.query&&(t.query=r.queryKey),a.socket(r.path,t)}Object.assign(ke,{Manager:_e,Socket:we,io:ke,connect:ke})},1636:e=>{"use strict";e.exports={rE:"6.6.1"}}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var s=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(s.exports,s,s.exports,r),s.loaded=!0,s.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var i={};return(()=>{"use strict";r.r(i),r.d(i,{AsyncStorage:()=>I,COREKIT_STATUS:()=>Xr,DELIMITERS:()=>f,ERRORS:()=>l,FIELD_ELEMENT_HEX_LEN:()=>b,FactorKeyTypeShareDescription:()=>u,MAX_FACTORS:()=>v,MemoryStorage:()=>E,SCALAR_LEN:()=>g,SOCIAL_FACTOR_INDEX:()=>p,SOCIAL_TKEY_INDEX:()=>w,TssSecurityQuestion:()=>Wr,TssSecurityQuestionStore:()=>Yr,TssShareType:()=>y,USER_PATH:()=>d,VALID_SHARE_INDICES:()=>m,WEB3AUTH_NETWORK:()=>h,Web3AuthMPCCoreKit:()=>Rs,deriveShareCoefficients:()=>As,ed25519:()=>ps,factorKeyCurve:()=>zr,fraction:()=>ks,generateEd25519Seed:()=>ms,generateFactorKey:()=>gs,generateSessionNonce:()=>Ts,generateTSSEndpoints:()=>bs,getHashedPrivateKey:()=>Ss,getSessionId:()=>Os,keyToMnemonic:()=>ie,lagrangeCoefficient:()=>Ps,lagrangeCoefficients:()=>Ms,log:()=>Cs,makeEthereumSigner:()=>Ks,mnemonicToKey:()=>re,parseToken:()=>ws,randomBytes:()=>ys,sampleEndpoints:()=>xs,scalarBNToBufferSEC1:()=>_s,sigToRSV:()=>Ns,storageAvailable:()=>vs});const e={MAINNET:"mainnet",TESTNET:"testnet",CYAN:"cyan",AQUA:"aqua",CELESTE:"celeste"},t={SAPPHIRE_DEVNET:"sapphire_devnet",SAPPHIRE_MAINNET:"sapphire_mainnet"},n=[],s={[e.AQUA]:{migrationCompleted:!0,networkIdentifier:"aqua",networkMigratedTo:t.SAPPHIRE_MAINNET},[e.CELESTE]:{migrationCompleted:!0,networkIdentifier:"celeste",networkMigratedTo:t.SAPPHIRE_MAINNET},[e.CYAN]:{migrationCompleted:!0,networkIdentifier:"cyan",networkMigratedTo:t.SAPPHIRE_MAINNET},[e.MAINNET]:{migrationCompleted:!0,networkIdentifier:"mainnet",networkMigratedTo:t.SAPPHIRE_MAINNET},[e.TESTNET]:{migrationCompleted:!0,networkIdentifier:"teal",networkMigratedTo:t.SAPPHIRE_DEVNET}},o={[t.SAPPHIRE_MAINNET]:"https://signer.web3auth.io",[t.SAPPHIRE_DEVNET]:"https://signer.web3auth.io",[e.MAINNET]:"https://signer.web3auth.io",[e.TESTNET]:"https://signer.web3auth.io",[e.CYAN]:"https://signer-polygon.web3auth.io",[e.AQUA]:"https://signer-polygon.web3auth.io",[e.CELESTE]:"https://signer-polygon.web3auth.io"},a={[e.MAINNET]:"https://metadata.web3auth.io",[e.TESTNET]:"https://metadata.web3auth.io",[e.CYAN]:"https://metadata.web3auth.io",[e.AQUA]:"https://metadata.web3auth.io",[e.CELESTE]:"https://metadata.web3auth.io"},c={SECP256K1:"secp256k1",ED25519:"ed25519"},h={MAINNET:t.SAPPHIRE_MAINNET,DEVNET:t.SAPPHIRE_DEVNET},d={NEW:"NewAccount",EXISTING:"ExistingAccount",REHYDRATE:"RehydrateAccount",RECOVER:"RecoverAccount"};let u=function(e){return e.HashedShare="hashedShare",e.SecurityQuestions="tssSecurityQuestions",e.DeviceShare="deviceShare",e.SeedPhrase="seedPhrase",e.PasswordShare="passwordShare",e.SocialShare="socialShare",e.Other="Other",e}({});const f={Delimiter1:"",Delimiter2:"",Delimiter3:"",Delimiter4:""},l={TKEY_SHARES_REQUIRED:"required more shares",INVALID_BACKUP_SHARE:"invalid backup share"},p=1;let y=function(e){return e[e.DEVICE=2]="DEVICE",e[e.RECOVERY=3]="RECOVERY",e}({});const m=[y.DEVICE,y.RECOVERY],g=32,b=64,v=10,w=1;function S(e){return S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},S(e)}function _(e,t,r){return(t=function(e){var t=function(e){if("object"!=S(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=S(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==S(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class x extends Error{constructor(e,t){super(e,t),_(this,"name",void 0),Object.defineProperty(this,"name",{value:new.target.name,enumerable:!1,configurable:!0}),function(e,t){const{setPrototypeOf:r}=Object;r?r(e,t):e.__proto__=t}(this,new.target.prototype),function(e,t=e.constructor){const{captureStackTrace:r}=Error;r&&r(e,t)}(this)}}class k extends x{constructor(e,t){super(t),_(this,"code",void 0),_(this,"message",void 0),this.code=e,this.message=t||"",Object.defineProperty(this,"name",{value:"TkeyError"})}toJSON(){return{name:this.name,code:this.code,message:this.message}}toString(){return JSON.stringify(this.toJSON())}}class P extends k{constructor(e,t){super(e,t),Object.defineProperty(this,"name",{value:"CoreKitError"})}static fromCode(e,t=""){return new P(e,`${P.messages[e]} ${t}`)}static default(e=""){return new P(1e3,`${P.messages[1e3]} ${e}`)}static chainConfigInvalid(e=""){return P.fromCode(1001,e)}static clientIdInvalid(e=""){return P.fromCode(1002,e)}static storageTypeUnsupported(e=""){return P.fromCode(1003,e)}static oauthLoginUnsupported(e=""){return P.fromCode(1004,e)}static noValidStorageOptionFound(e=""){return P.fromCode(1005,e)}static noDataFoundInStorage(e=""){return P.fromCode(1006,e)}static invalidConfig(e=""){return P.fromCode(1007,e)}static tssLibRequired(e=""){return P.fromCode(1101,e)}static tkeyInstanceUninitialized(e=""){return P.fromCode(1102,e)}static duplicateTssIndex(e=""){return P.fromCode(1103,e)}static nodeDetailsRetrievalFailed(e=""){return P.fromCode(1104,e)}static prefetchValueExceeded(e=""){return P.fromCode(1105,e)}static invalidTorusLoginResponse(e=""){return P.fromCode(1106,e)}static invalidTorusAggregateLoginResponse(e=""){return P.fromCode(1107,e)}static unsupportedRedirectMethod(e=""){return P.fromCode(1108,e)}static postBoxKeyMissing(e=""){return P.fromCode(1109,e)}static tssShareTypeIndexMissing(e=""){return P.fromCode(1110,e)}static tssPublicKeyOrEndpointsMissing(e=""){return P.fromCode(1111,e)}static activeSessionNotFound(e=""){return P.fromCode(1112,e)}static tssNoncesMissing(e=""){return P.fromCode(1113,e)}static tssKeyImportNotAllowed(e=""){return P.fromCode(1114,e)}static factorKeyNotPresent(e=""){return P.fromCode(1201,e)}static factorKeyAlreadyExists(e=""){return P.fromCode(1202,e)}static mfaAlreadyEnabled(e=""){return P.fromCode(1203,e)}static cannotDeleteLastFactor(e=""){return P.fromCode(1204,e)}static factorInUseCannotBeDeleted(e=""){return P.fromCode(1205,e)}static userNotLoggedIn(e=""){return P.fromCode(1206,e)}static providedFactorKeyInvalid(e=""){return P.fromCode(1207,e)}static factorEncsMissing(e=""){return P.fromCode(1208,e)}static noMetadataFound(e=""){return P.fromCode(1209,e)}static newShareIndexInvalid(e=""){return P.fromCode(1210,e)}static maximumFactorsReached(e=""){return P.fromCode(1211,e)}static noMetadataShareFound(e=""){return P.fromCode(1212,e)}static signaturesNotPresent(e=""){return P.fromCode(1213,e)}static factorPubsMissing(e=""){return P.fromCode(1214,e)}static commitChangesBeforeMFA(e=""){return P.fromCode(1301,e)}static mpcCoreKitNotInitialized(e=""){return P.fromCode(1302,e)}}_(P,"messages",{1001:"You must specify a valid eip155 chain configuration in the options.",1002:"You must specify a web3auth clientId.",1003:"Unsupported storage type in this UX mode.",1004:"OAuth login is NOT supported in this UX mode.",1005:"No valid storage option found.",1006:"No data found in storage.",1007:"Invalid config.",1101:"'tssLib' is required when running in this UX mode.",1102:"'tkey' instance has not been initialized.",1103:"Duplicate TSS index found. Ensure that each TSS index is unique.",1104:"Failed to retrieve node details. Please check your network connection and try again.",1105:"The prefetch TSS public keys exceeds the maximum allowed limit of 3.",1106:"Invalid 'TorusLoginResponse' data provided.",1107:"Invalid 'TorusAggregateLoginResponse' data provided.",1108:"Unsupported method type encountered in redirect result.",1109:"OAuthKey not present in state.",1110:"TSS Share Type (Index) not present in state when getting current factor key.",1111:"'tssPubKey' or 'torusNodeTSSEndpoints' are missing.",1112:"No active session found.",1113:"tssNonces not present in metadata when getting tss nonce.",1114:"A TSS key cannot be imported for an existing user who already has a key configured.",1201:"factorKey not present in state when required.",1202:"A factor with the same key already exists.",1203:"MFA is already enabled.",1204:"Cannot delete the last remaining factor as at least one factor is required.",1205:"The factor currently in use cannot be deleted.",1206:"User is not logged in.",1207:"Provided factor key is invalid.",1208:"'factorEncs' mpt [resemt].",1209:"No metadata found for the provided factor key. Consider resetting your account if this error persists.",1210:"The new share index is not valid. It must be one of the valid share indices.",1211:"The maximum number of allowable factors (10) has been reached.",1212:"No metadata share found in the current polynomial.",1213:"No signatures found.",1214:"Factor public keys not present",1301:"The 'CommitChanges' method must be called before enabling MFA.",1302:"The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations."});const M=P;class E{constructor(){_(this,"_store",{})}getItem(e){return this._store[e]||null}setItem(e,t){this._store[e]=t}removeItem(e){delete this._store[e]}clear(){this._store={}}}class I{constructor(e,t){_(this,"storage",void 0),_(this,"_storeKey",void 0),this.storage=t,this._storeKey=e}async toJSON(){const e=await this.storage.getItem(this._storeKey);if(!e)throw M.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`);return e}async resetStore(){const e=await this.getStore();return await this.storage.setItem(this._storeKey,JSON.stringify({})),e}async getStore(){return JSON.parse(await this.storage.getItem(this._storeKey)||"{}")}async get(e){return JSON.parse(await this.storage.getItem(this._storeKey)||"{}")[e]}async set(e,t){const r=JSON.parse(await this.storage.getItem(this._storeKey)||"{}");r[e]=t,await this.storage.setItem(this._storeKey,JSON.stringify(r))}async remove(e){const t=JSON.parse(await this.storage.getItem(this._storeKey)||"{}");delete t[e],await this.storage.setItem(this._storeKey,JSON.stringify(t))}}var A=r(9404),T=r.n(A);const O=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];var N,K=(N=function(e,t){return N=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},N(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}N(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),C=function(e){function t(t,r){var i,n,s,o=this.constructor,a=e.call(this,t,r)||this;return Object.defineProperty(a,"name",{value:o.name,enumerable:!1,configurable:!0}),i=a,n=o.prototype,(s=Object.setPrototypeOf)?s(i,n):i.__proto__=n,function(e,t){void 0===t&&(t=e.constructor);var r=Error.captureStackTrace;r&&r(e,t)}(a),a}return K(t,e),t}(Error);class L extends C{constructor(e,t){super(t),_(this,"code",void 0),_(this,"message",void 0),this.code=e,this.message=t||"",Object.defineProperty(this,"name",{value:"TkeyError"})}toJSON(){return{name:this.name,code:this.code,message:this.message}}toString(){return JSON.stringify(this.toJSON())}}class R extends L{constructor(e,t){super(e,t),Object.defineProperty(this,"name",{value:"ShareSerializationError"})}static fromCode(e,t=""){return new R(e,`${R.messages[e]}${t}`)}static default(e=""){return new R(7e3,`${R.messages[7e3]}${e}`)}static typeNotSupported(e=""){return R.fromCode(7010,e)}static invalidEntropy(e=""){return R.fromCode(7011,e)}static invalidChecksum(e=""){return R.fromCode(7012,e)}static invalidMnemonic(e=""){return R.fromCode(7013,e)}}_(R,"messages",{7e3:"Custom",7010:"Type is not supported",7011:"Invalid Entropy",7012:"Invalid Checksum",7013:"Invalid mnemonic"});var B=R,F=r(9190),D=r(2531);const U=(e,t,r)=>e&t^e&r^t&r;class j extends D.Vw{constructor(e,t,r,i){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=(0,D.O8)(this.buffer)}update(e){(0,F.t2)(this);const{view:t,buffer:r,blockLen:i}=this,n=(e=(0,D.ZJ)(e)).length;for(let s=0;si-s&&(this.process(r,0),s=0);for(let e=s;e>n&s),a=Number(r&s),c=i?4:0,h=i?0:4;e.setUint32(t+c,o,i),e.setUint32(t+h,a,i)}(r,i-8,BigInt(8*this.length),n),this.process(r,0);const o=(0,D.O8)(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=a/4,h=this.get();if(c>h.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e>>3,n=(0,D.Ow)(r,17)^(0,D.Ow)(r,19)^r>>>10;z[e]=n+z[e-7]+i+z[e-16]|0}let{A:r,B:i,C:n,D:s,E:o,F:a,G:c,H:h}=this;for(let e=0;e<64;e++){const t=h+((0,D.Ow)(o,6)^(0,D.Ow)(o,11)^(0,D.Ow)(o,25))+((d=o)&a^~d&c)+q[e]+z[e]|0,u=((0,D.Ow)(r,2)^(0,D.Ow)(r,13)^(0,D.Ow)(r,22))+U(r,i,n)|0;h=c,c=a,a=o,o=s+t|0,s=n,n=i,i=r,r=t+u|0}var d;r=r+this.A|0,i=i+this.B|0,n=n+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,c=c+this.G|0,h=h+this.H|0,this.set(r,i,n,s,o,a,c,h)}roundClean(){z.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const H=(0,D.ld)((()=>new J));var V=r(651);const Y=(0,V.RS)(H);var W=r(8287).hp;function X(e){return parseInt(e,2)}function G(e,t,r){let i=e;for(;i.lengthG(e.toString(2),"0",8))).join("")}function Z(e){const t=8*e.length/32,r=Y(e);return Q(Array.from(r)).slice(0,t)}class ee{constructor(){_(this,"moduleName",void 0),_(this,"tbSDK",void 0),this.moduleName="shareSerialization"}static serializeMnemonic(e){return function(e,t){let r;if(W.isBuffer(e)||(r=W.from(e,"hex")),r.length<16)throw B.invalidEntropy();if(r.length>32)throw B.invalidEntropy();if(r.length%4!=0)throw B.invalidEntropy();const i=(Q(Array.from(r))+Z(r)).match(/(.{1,11})/g).map((e=>{const r=X(e);return t[r]}));return"あいこくしん"===t[0]?i.join(" "):i.join(" ")}(e.toString("hex").padStart(64,"0"),O)}static deserializeMnemonic(e){return new(T())(function(e,t){const r=(i=e,(i||"").normalize("NFKD")).split(" ");var i;if(r.length%3!=0)throw B.invalidMnemonic();const n=r.map((e=>{const r=t.indexOf(e);if(-1===r)throw B.invalidMnemonic();return G(r.toString(2),"0",11)})).join(""),s=32*Math.floor(n.length/33),o=n.slice(0,s),a=n.slice(s),c=o.match(/(.{1,8})/g).map(X);if(c.length<16)throw B.invalidEntropy();if(c.length>32)throw B.invalidEntropy();if(c.length%4!=0)throw B.invalidEntropy();const h=W.from(c);if(Z(h)!==a)throw B.invalidChecksum();return h.toString("hex")}(e,O),"hex")}setModuleReferences(e){this.tbSDK=e,this.tbSDK._addShareSerializationMiddleware(this.serialize.bind(this),this.deserialize.bind(this))}async initialize(){}async serialize(e,t){if("mnemonic"===t)return ee.serializeMnemonic(e);throw B.typeNotSupported()}async deserialize(e,t){if("mnemonic"===t)return ee.deserializeMnemonic(e);throw B.typeNotSupported()}}var te=ee;function re(e){return te.deserializeMnemonic(e).toString("hex")}function ie(e){const t=new(T())(e,"hex");return te.serializeMnemonic(t)}function ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function se(e){for(var t=1;t{const t=e instanceof Error,r="string"==typeof e;let i;if(e&&"object"==typeof e&&"status"in e&&"type"in e){const t=e,r=t.headers.get("content-type");if(r.includes("application/json")){const e=await t.json();i=new Error((null==e?void 0:e.error)||(null==e?void 0:e.message)||JSON.stringify(e))}else i=r.includes("text/plain")?new Error(await t.text()):new Error(`${t.status} ${t.type.toString()} ${t.statusText}`)}else i=r?new Error(e):t?e:new Error("Unknown error");return i};var ae=r(9024),ce=r(6729),he=r.n(ce),de=r(8287).hp;const ue=new ce.ec("secp256k1");async function fe(e,t){const r=await(0,ae.w)(e,t);return{ciphertext:r.ciphertext.toString("hex"),ephemPublicKey:r.ephemPublicKey.toString("hex"),iv:r.iv.toString("hex"),mac:r.mac.toString("hex")}}async function le(e,t){const r={ciphertext:de.from(t.ciphertext,"hex"),ephemPublicKey:de.from(t.ephemPublicKey,"hex"),iv:de.from(t.iv,"hex"),mac:de.from(t.mac,"hex")};return(0,ae.Yc)(e,r)}async function pe(e){return(t=e)&&t.stack&&""!==t.message?e:oe(e);var t}function ye(e){const t=new(T())((0,ae.F_)());return e.find((e=>e.eq(t)))?ye(e):t}const me="KEY_NOT_FOUND",ge="SHARE_DELETED";function be(e){return"0x"===e.slice(0,2)?e.slice(2):e}var ve=r(8287).hp;class we{constructor(e,t){_(this,"x",void 0),_(this,"y",void 0),this.x=new(T())(e,"hex"),this.y=new(T())(t,"hex")}static fromScalar(e,t){const r=t.g.mul(e);return we.fromElliptic(r)}static fromCompressedPub(e){const t=ue.keyFromPublic(e,"hex").getPublic();return new we(t.getX(),t.getY())}static fromJSON(e){const{x:t,y:r}=e;return new we(t,r)}static fromElliptic(e){return e.isInfinity()?new we(null,null):new we(e.getX(),e.getY())}static fromSEC1(e,t){if(2===t.length&&"00"===t){const t=e.g.mul(new(T())(0));return we.fromElliptic(t)}const r=e.keyFromPublic(t,"hex").getPublic();return we.fromElliptic(r)}encode(e){switch(e){case"arr":return ve.concat([ve.from("0x04","hex"),ve.from(this.x.toString("hex"),"hex"),ve.from(this.y.toString("hex"),"hex")]);case"elliptic-compressed":{const e=ue.keyFromPublic({x:this.x.toString("hex"),y:this.y.toString("hex")},"hex");return ve.from(e.getPublic(!0,"hex"))}default:throw new Error("encoding doesnt exist in Point")}}toEllipticPoint(e){return this.isIdentity()?e.g.mul(new(T())(0)):e.keyFromPublic({x:this.x.toString("hex"),y:this.y.toString("hex")},"hex").getPublic()}toSEC1(e,t=!1){if(this.isIdentity())return ve.from("00","hex");const r=this.toEllipticPoint(e);return ve.from(r.encode("hex",t),"hex")}toJSON(){return{x:this.x.toString("hex"),y:this.y.toString("hex")}}isIdentity(){return null===this.x&&null===this.y}equals(e){return this.isIdentity()?e.isIdentity():this.x.eq(e.x)&&this.y.eq(e.y)}}var Se=we;const _e=(e,t)=>{let r=e;if("number"==typeof r&&(r=Array.from({length:r},((e,t)=>t))),t>r.length||t<=0)return[];if(t===r.length)return[r];if(1===t)return r.reduce(((e,t)=>[...e,[t]]),[]);const i=[];let n=[];for(let e=0;e<=r.length-t+1;e+=1){n=_e(r.slice(e+1),t-1);for(let t=0;tnew(T())(e))),s=new(T())(r),o=new(T())(i);let a=new(T())(1),c=new(T())(1);for(let t=0;tue.keyFromPrivate(e.toString("hex",64)),Ke=e=>{const t=new(T())(e,"hex");return Oe.from(t.toString("hex",64),"hex")},Ce=e=>(0,ae.qb)(Ke(e)),Le=e=>{const t=(e=>ue.keyFromPrivate(e.toString("hex",64)).getPublic())(e);return new Se(t.getX().toString("hex"),t.getY().toString("hex"))};class Re{constructor(e,t){_(this,"shareCommitment",void 0),_(this,"shareIndex",void 0),this.shareCommitment=new Se(t.x,t.y),this.shareIndex=new(T())(e,"hex")}static fromJSON(e){const{shareCommitment:t,shareIndex:r}=e;return new Re(r,Se.fromJSON(t))}toJSON(){return{shareCommitment:this.shareCommitment,shareIndex:this.shareIndex.toString("hex")}}}var Be=Re;class Fe{constructor(e,t){_(this,"share",void 0),_(this,"shareIndex",void 0),this.share=new(T())(t,"hex"),this.shareIndex=new(T())(e,"hex")}static fromJSON(e){const{share:t,shareIndex:r}=e;return new Fe(r,t)}getPublicShare(){return new Be(this.shareIndex,Le(this.share))}toJSON(){return{share:this.share.toString("hex"),shareIndex:this.shareIndex.toString("hex")}}}var De=Fe;class Ue{constructor(e,t){_(this,"share",void 0),_(this,"polynomialID",void 0),this.share=e,this.polynomialID=t}static fromJSON(e){const{share:t,polynomialID:r}=e;return new Ue(De.fromJSON(t),r)}toJSON(){return{share:this.share,polynomialID:this.polynomialID.toString()}}}var je=Ue;const qe="__ONE_KEY_DELETE_NONCE__",$e=(e=>{const t=new Uint8Array(256);for(let e=0;e>>0,h=new Uint8Array(c);for(;e[s];){let i=t[e.charCodeAt(s)];if(255===i)return;let n=0;for(let e=c-1;(0!==i||n>>0,h[e]=i%256>>>0,i=i/256>>>0;if(0!==i)throw new Error("Non-zero carry");a=n,s++}let d=c-a;for(;d!==c&&0===h[d];)d++;const u=new Uint8Array(o+(c-d));let f=o;for(;d!==c;)u[f++]=h[d++];return u}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let n=0,o=0,a=0;const c=t.length;for(;a!==c&&0===t[a];)a++,n++;const h=(c-a)*s+1>>>0,d=new Uint8Array(h);for(;a!==c;){let e=t[a],i=0;for(let t=h-1;(0!==e||i>>0,d[t]=e%r>>>0,e=e/r>>>0;if(0!==e)throw new Error("Non-zero carry");o=i,a++}let u=h-o;for(;u!==h&&0===d[u];)u++;let f=i.repeat(n);for(;uJe.Ay.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((e=>BigInt(e)))))(),Ye=new Uint32Array(80),We=new Uint32Array(80);class Xe extends j{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:r,Bl:i,Ch:n,Cl:s,Dh:o,Dl:a,Eh:c,El:h,Fh:d,Fl:u,Gh:f,Gl:l,Hh:p,Hl:y}=this;return[e,t,r,i,n,s,o,a,c,h,d,u,f,l,p,y]}set(e,t,r,i,n,s,o,a,c,h,d,u,f,l,p,y){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|i,this.Ch=0|n,this.Cl=0|s,this.Dh=0|o,this.Dl=0|a,this.Eh=0|c,this.El=0|h,this.Fh=0|d,this.Fl=0|u,this.Gh=0|f,this.Gl=0|l,this.Hh=0|p,this.Hl=0|y}process(e,t){for(let r=0;r<16;r++,t+=4)Ye[r]=e.getUint32(t),We[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|Ye[e-15],r=0|We[e-15],i=Je.Ay.rotrSH(t,r,1)^Je.Ay.rotrSH(t,r,8)^Je.Ay.shrSH(t,r,7),n=Je.Ay.rotrSL(t,r,1)^Je.Ay.rotrSL(t,r,8)^Je.Ay.shrSL(t,r,7),s=0|Ye[e-2],o=0|We[e-2],a=Je.Ay.rotrSH(s,o,19)^Je.Ay.rotrBH(s,o,61)^Je.Ay.shrSH(s,o,6),c=Je.Ay.rotrSL(s,o,19)^Je.Ay.rotrBL(s,o,61)^Je.Ay.shrSL(s,o,6),h=Je.Ay.add4L(n,c,We[e-7],We[e-16]),d=Je.Ay.add4H(h,i,a,Ye[e-7],Ye[e-16]);Ye[e]=0|d,We[e]=0|h}let{Ah:r,Al:i,Bh:n,Bl:s,Ch:o,Cl:a,Dh:c,Dl:h,Eh:d,El:u,Fh:f,Fl:l,Gh:p,Gl:y,Hh:m,Hl:g}=this;for(let e=0;e<80;e++){const t=Je.Ay.rotrSH(d,u,14)^Je.Ay.rotrSH(d,u,18)^Je.Ay.rotrBH(d,u,41),b=Je.Ay.rotrSL(d,u,14)^Je.Ay.rotrSL(d,u,18)^Je.Ay.rotrBL(d,u,41),v=d&f^~d&p,w=u&l^~u&y,S=Je.Ay.add5L(g,b,w,Ve[e],We[e]),_=Je.Ay.add5H(S,m,t,v,He[e],Ye[e]),x=0|S,k=Je.Ay.rotrSH(r,i,28)^Je.Ay.rotrBH(r,i,34)^Je.Ay.rotrBH(r,i,39),P=Je.Ay.rotrSL(r,i,28)^Je.Ay.rotrBL(r,i,34)^Je.Ay.rotrBL(r,i,39),M=r&n^r&o^n&o,E=i&s^i&a^s&a;m=0|p,g=0|y,p=0|f,y=0|l,f=0|d,l=0|u,({h:d,l:u}=Je.Ay.add(0|c,0|h,0|_,0|x)),c=0|o,h=0|a,o=0|n,a=0|s,n=0|r,s=0|i;const I=Je.Ay.add3L(x,P,E);r=Je.Ay.add3H(I,_,k,M),i=0|I}({h:r,l:i}=Je.Ay.add(0|this.Ah,0|this.Al,0|r,0|i)),({h:n,l:s}=Je.Ay.add(0|this.Bh,0|this.Bl,0|n,0|s)),({h:o,l:a}=Je.Ay.add(0|this.Ch,0|this.Cl,0|o,0|a)),({h:c,l:h}=Je.Ay.add(0|this.Dh,0|this.Dl,0|c,0|h)),({h:d,l:u}=Je.Ay.add(0|this.Eh,0|this.El,0|d,0|u)),({h:f,l}=Je.Ay.add(0|this.Fh,0|this.Fl,0|f,0|l)),({h:p,l:y}=Je.Ay.add(0|this.Gh,0|this.Gl,0|p,0|y)),({h:m,l:g}=Je.Ay.add(0|this.Hh,0|this.Hl,0|m,0|g)),this.set(r,i,n,s,o,a,c,h,d,u,f,l,p,y,m,g)}roundClean(){Ye.fill(0),We.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Ge=(0,D.ld)((()=>new Xe)),Qe=(0,V.RS)(Ge);var Ze=r(5473),et=r.n(Ze),tt=r(3065),rt=r.n(tt),it=r(8287).hp;function nt(e){return`0x${it.from((0,ze.So)(e)).toString("hex")}`}const st=(e,t)=>e.genKeyPair().getPrivate().toArrayLike(t),ot=e=>{if(e===c.ED25519)return new ce.ec(c.ED25519);if(e===c.SECP256K1)return new ce.ec(c.SECP256K1);throw new Error(`Invalid keyType: ${e}`)},at=(e,t)=>{let r=e;if("number"==typeof r&&(r=Array.from({length:r},((e,t)=>t))),t>r.length||t<=0)return[];if(t===r.length)return[r];if(1===t)return r.reduce(((e,t)=>[...e,[t]]),[]);const i=[];let n=[];for(let e=0;e<=r.length-t+1;e+=1){n=at(r.slice(e+1),t-1);for(let t=0;t{const r={};for(let i=0;i0){const e=2**i*100;await(n=e,new Promise(((e,t)=>{n>0?setTimeout(e,n):t(new Error("value of milliseconds must be greater than 0"))})))}return await e()}catch(e){const n=e.message;if(i"number"==typeof e?new(T())(e):e instanceof T()?e:"string"==typeof e?new(T())(e,"hex"):e)),r={};for(let e=0;ee.eq(r)))?vt(e,t):r}const wt=e=>Array.from({length:e},(()=>new(T())(0))),St=(e,t,r)=>{let i=wt(r.length);const n=((e,t,r)=>{let i=new(T())(1);const n=r[t].x;for(let s=r.length-1;s>=0;s-=1)if(t!==s){let t=new(T())(n);t=t.sub(r[s].x),t=t.umod(e.n),i=i.mul(t),i=i.umod(e.n)}return i})(e,t,r);if(0===n.cmp(new(T())(0)))throw new Error("Denominator for interpolationPoly is 0");i[0]=n.invm(e.n);for(let n=0;n=0;o-=1){s[o+1]=s[o+1].add(i[o]).umod(e.n);let t=new(T())(r[n].x);t=t.mul(i[o]).umod(e.n),s[o]=s[o].sub(t).umod(e.n)}i=s}}return i};function _t(e,t,r){if(t.length!==r.length)throw new Error("shares not equal to nodeIndex length in lagrangeInterpolation");let i=new(T())(0);for(let n=0;nt)throw new Error("deterministicShares in generateRandomPolynomial should be less or equal than degree to ensure an element of randomness");const s={};i.forEach((t=>{s[t.shareIndex.toString("hex",64)]=new yt(t.shareIndex,t.share,e)}));for(let r=0;r{const r=(e=>{const t=[...e];return t.sort(((e,t)=>e.x.cmp(t.x))),t})(t),i=wt(r.length);for(let t=0;t{const i={mode:"cors",headers:{}};r.useAPIKey&&(i.headers=se(se({},i.headers),Nt())),t.method="GET";const n=Pt()(i,t),s=await Ot(e,n);if(s.ok){const e=s.headers.get("content-type");return null!=e&&e.includes("application/json")?s.json():s.text()}throw Kt(s),s},Lt=(e,t={},r={},i={})=>{const n={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};i.useAPIKey&&(n.headers=se(se({},n.headers),Nt())),r.method="POST";const s=Pt()(n,r);return i.isUrlEncodedData?(s.body=t,"application/json; charset=utf-8"===s.headers["Content-Type"]&&delete s.headers["Content-Type"]):s.body=JSON.stringify(t),(async(e,t)=>{let r=null;try{const i=new Promise(((t,i)=>{r=setTimeout((()=>{i(new Error(`Timed out in ${e}ms`))}),e)})),n=await Promise.race([t,i]);return null!=r&&clearTimeout(r),n}catch(e){throw null!=r&&clearTimeout(r),e}})(i.timeout||6e4,Ot(e,s).then((e=>{if(i.logTracingHeader&&function(e){const t=e.headers.get("x-web3-correlation-id");t&&Mt.info(`Request tracing with traceID = ${t}`)}(e),e.ok){const t=e.headers.get("content-type");return null!=t&&t.includes("application/json")?e.json():e.text()}throw Kt(e),e})))},Rt=async(e,t={},r={},i={})=>{const n={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};i.useAPIKey&&(n.headers=se(se({},n.headers),Nt())),r.method="PATCH";const s=Pt()(n,r);i.isUrlEncodedData?(s.body=t,"application/json; charset=utf-8"===s.headers["Content-Type"]&&delete s.headers["Content-Type"]):s.body=JSON.stringify(t);const o=await Ot(e,s);if(o.ok){const e=o.headers.get("content-type");return null!=e&&e.includes("application/json")?o.json():o.text()}throw Kt(o),o},Bt=async(e,t={},r={},i={})=>{const n={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};i.useAPIKey&&(n.headers=se(se({},n.headers),Nt())),r.method="PUT";const s=Pt()(n,r);i.isUrlEncodedData?(s.body=t,"application/json; charset=utf-8"===s.headers["Content-Type"]&&delete s.headers["Content-Type"]):s.body=JSON.stringify(t);const o=await Ot(e,s);if(o.ok){const e=o.headers.get("content-type");return null!=e&&e.includes("application/json")?o.json():o.text()}throw Kt(o),o},Ft=(e,t)=>({jsonrpc:"2.0",method:e,id:10,params:t}),Dt="GetPubKeyOrKeyAssign",Ut="https://node-1.node.web3auth.io/metadata",jt="https://node-1.dev-node.web3auth.io/metadata";var qt=r(8287).hp;const $t=e=>{const t=ot(c.SECP256K1),r=e.toString("hex",64),i=(0,ze.So)(qt.from(r,"hex")),n=new(T())(i).umod(t.n).toString("hex",64),s=qt.from(n,"hex"),o=t.keyFromPrivate(s);if(32!==s.length)throw new Error(`Key length must be equal to 32. got ${s.length}`);return{scalar:o.getPrivate(),point:o.getPublic()}};async function zt(e,t,r){const i=dt(e);return await(0,ae.Yc)(r,se(se({},i),{},{ciphertext:qt.from(t,"hex")}))}async function Jt(e,t,r){const i=dt(e);try{return await(0,ae.Yc)(r,se(se({},i),{},{ciphertext:qt.from(t,"hex")}))}catch(e){const n=t.padStart(64,"0");return rt().warn("Failed to decrypt padded share cipher",e),(0,ae.Yc)(r,se(se({},i),{},{ciphertext:qt.from(n,"hex")}))}}async function Ht(e,t,r={}){try{const i=await Lt(`${e}/get`,t,r,{useAPIKey:!0});return i&&i.message?new(T())(i.message,16):new(T())(0)}catch(e){return rt().error("get metadata error",e),new(T())(0)}}function Vt(e,t,r,i,n,s){const o=ot(c.SECP256K1).keyFromPrivate(r.toString("hex",64),"hex"),a={operation:t,timestamp:new(T())(~~(e+Date.now()/1e3)).toString(16)};n&&(a.data=n.toString("hex",64)),a.seed=s||"";const h=o.sign(nt(qt.from(et()(a),"utf8")).slice(2));return{pub_key_X:o.getPublic().getX().toString("hex",64),pub_key_Y:o.getPublic().getY().toString("hex",64),set_data:a,key_type:i,signature:qt.from(h.r.toString(16,64)+h.s.toString(16,64)+new(T())("").toString(16,2),"hex").toString("base64")}}async function Yt(e,t,r,i,n,s,o=!1,a=!0,h=new(T())(0),d="secp256k1",u=""){if(a){let a;const c=o?"getNonce":"getOrSetNonce";return a=s?function(e,t,r,i){const n=e.keyFromPrivate(i.toString("hex",64),"hex"),s={data:r,timestamp:new(T())(~~(t+Date.now()/1e3)).toString(16)},o=n.sign(nt(qt.from(et()(s),"utf8")).slice(2));return{pub_key_X:n.getPublic().getX().toString("hex"),pub_key_Y:n.getPublic().getY().toString("hex"),set_data:s,signature:qt.from(o.r.toString(16,64)+o.s.toString(16,64)+new(T())("").toString(16,2),"hex").toString("base64")}}(t,r,c,s):{pub_key_X:i,pub_key_Y:n,set_data:{data:c}},Lt(`${e}/get_or_set_nonce`,a,void 0,{useAPIKey:!0})}const f=o?"getNonce":"getOrSetNonce";if("getOrSetNonce"===f){if(!s)throw new Error("privKey is required while `getOrSetNonce` for non legacy metadata");if(0===h.cmp(new(T())(0)))throw new Error("nonce is required while `getOrSetNonce` for non legacy metadata");if(d===c.ED25519&&!u)throw new Error("seed is required while `getOrSetNonce` for non legacy metadata for ed25519 key type");const t=Vt(r,f,s,d,h,u);return Lt(`${e}/get_or_set_nonce`,t,void 0,{useAPIKey:!0})}return Lt(`${e}/get_or_set_nonce`,{pub_key_X:i,pub_key_Y:n,set_data:{operation:f},key_type:d},void 0,{useAPIKey:!0})}const Wt=async(e,t)=>{const r=$t(t),i=qt.from(e,"base64").toString("utf-8"),n=JSON.parse(i),s=se(se({},dt(n.metadata)),{},{mode:"AES256"}),o=r.scalar.toArrayLike(qt,"be",32);return await(0,ae.Yc)(o,se(se({},s),{},{ciphertext:qt.from(n.enc_text,"hex")}))};async function Xt(e,r,i,n,o){if(s[e])throw new Error("getOrSetSapphireMetadataNonce should only be used for sapphire networks");let a={pub_key_X:r,pub_key_Y:i,key_type:"secp256k1",set_data:{operation:"getOrSetNonce"}};if(o){const e=ot(c.SECP256K1).keyFromPrivate(o.toString("hex",64),"hex"),t={operation:"getOrSetNonce",timestamp:new(T())(~~(n+Date.now()/1e3)).toString(16)},r=e.sign(nt(qt.from(et()(t),"utf8")).slice(2));a=se(se({},a),{},{set_data:t,signature:qt.from(r.r.toString(16,64)+r.s.toString(16,64)+new(T())("").toString(16,2),"hex").toString("base64")})}const h=e===t.SAPPHIRE_DEVNET?jt:Ut;return Lt(`${h}/get_or_set_nonce`,a,void 0,{useAPIKey:!0})}var Gt=r(8287).hp;function Qt(e){const t=ot(c.ED25519),r=t.g,i=t.n;if(32!==e.length)throw rt().error("Invalid seed for ed25519 key derivation",e.length),new Error("Invalid seed for ed25519 key derivation");const n=Qe(e);if(64!==n.length)throw new Error("Invalid hash length for ed25519 seed");const s=new(T())(((o=Gt.from(n.slice(0,32)))[0]&=248,o[31]&=127,o[31]|=64,o),"le");var o;const a=new(T())(s.umod(i),"le");return{scalar:a,point:r.mul(a)}}function Zt(e){const t=ot(c.ED25519),r=Math.ceil(t.n.bitLength()/8),i=e.getY().toArrayLike(Gt,"le",r);return i[r-1]|=e.getX().isOdd()?128:0,i}function er(e,t){if(e===c.SECP256K1){const e=t.getPublic().encode("hex",!1).slice(2);return function(e){const t=(r=e,r.startsWith("0x")?r.slice(2):r).toLowerCase();var r;const i=Gt.from(t,"utf8"),n=Gt.from((0,ze.So)(i)).toString("hex");let s="0x";for(let e=0;e=8?s+=t[e].toUpperCase():s+=t[e];return s}(`0x${nt(Gt.from(e,"hex")).slice(26)}`)}if(e===c.ED25519){const e=Zt(t.getPublic());return $e.encode(e)}throw new Error(`Invalid keyType: ${e}`)}function tr(e,t,r){return er(e,ot(e).keyFromPublic({x:t.toString("hex",64),y:r.toString("hex",64)}))}function rr(e,t){const r=t.toString(16,64);return e.keyFromPrivate(r,"hex").getPublic()}const ir=async(e,t,r,i,n,s)=>{const o=t===c.ED25519?await(async e=>{const t=ot(c.ED25519),r=Qt(e),i=$t(r.scalar),n=await(0,ae.w)(Gt.from(i.point.encodeCompressed("hex"),"hex"),e),s={enc_text:n.ciphertext.toString("hex"),metadata:ht(n),public_key:Zt(r.point).toString("hex")},o=Gt.from(JSON.stringify(s),"utf-8").toString("base64"),a=t.genKeyPair().getPrivate(),h=r.scalar.sub(a).umod(t.n),d=t.keyFromPrivate(h.toArrayLike(Gt)),u=$t(d.getPrivate());return{oAuthKeyScalar:d.getPrivate(),oAuthPubX:d.getPublic().getX(),oAuthPubY:d.getPublic().getY(),SigningPubX:u.point.getX(),SigningPubY:u.point.getY(),metadataNonce:a,metadataSigningKey:u.scalar,encryptedSeed:o,finalUserPubKeyPoint:r.point}})(s):await(async e=>{const t=ot(c.SECP256K1),r=new(T())(e),i=new(T())(st(t,Gt)),n=r.sub(i).umod(t.n),s=t.keyFromPrivate(n.toArrayLike(Gt)),o=s.getPublic(),a=t.keyFromPrivate(r.toString("hex",64),"hex");return{oAuthKeyScalar:s.getPrivate(),oAuthPubX:o.getX(),oAuthPubY:o.getY(),SigningPubX:o.getX(),SigningPubY:o.getY(),metadataNonce:i,encryptedSeed:"",metadataSigningKey:s.getPrivate(),finalUserPubKeyPoint:a.getPublic()}})(s),{metadataNonce:a,oAuthKeyScalar:h,encryptedSeed:d,metadataSigningKey:u}=o,f=1+~~(n.length/2)-1,l=[];for(const e of i)l.push(new(T())(e));const p=e.keyFromPrivate(h.toString("hex",64),"hex").getPublic(),y=xt(e,f,h).generateShares(l),m=Vt(r,"getOrSetNonce",u,t,a,d),g=Gt.from(et()(m.set_data),"utf8").toString("base64"),b=[],v=[];for(let e=0;eSe.fromJSON(e)));return new ar(t)}getThreshold(){return this.polynomialCommitments.length}getPolynomialID(){let e="";for(let t=0;tnew(T())(e,"hex"))))}getThreshold(){return this.polynomial.length}polyEval(e){const t=new(T())(e,"hex");let r=new(T())(t),i=new(T())(0);i=i.add(this.polynomial[0]);for(let e=1;e"number"==typeof e?new(T())(e):e instanceof T()?e:"string"==typeof e?new(T())(e,"hex"):e)),r={};for(let e=0;ee.toString("hex")))}}}var dr=hr;function ur(){return ue.genKeyPair().getPrivate()}const fr=e=>Array.from({length:e},(()=>new(T())(0))),lr=(e,t)=>{let r=fr(t.length);const i=((e,t)=>{let r=new(T())(1);const i=t[e].x;for(let n=t.length-1;n>=0;n-=1)if(e!==n){let e=new(T())(i);e=e.sub(t[n].x),e=e.umod(ue.curve.n),r=r.mul(e),r=r.umod(ue.curve.n)}return r})(e,t);if(0===i.cmp(new(T())(0)))throw or.default("Denominator for interpolationPoly is 0");r[0]=i.invm(ue.curve.n);for(let i=0;i=0;s-=1){n[s+1]=n[s+1].add(r[s]),n[s+1]=n[s+1].umod(ue.curve.n);let e=new(T())(t[i].x);e=e.mul(r[s]),e=e.umod(ue.curve.n),n[s]=n[s].sub(e),n[s]=n[s].umod(ue.curve.n)}r=n}}return r},pr=e=>{const t=(e=>{const t=[...e];return t.sort(((e,t)=>e.x.cmp(t.x))),t})(e),r=fr(t.length);for(let e=0;ee)throw or.default("deterministicShares in generateRandomPolynomial should be less or equal than degree to ensure an element of randomness");const n={};r.forEach((e=>{n[e.shareIndex.toString("hex")]=new Se(e.shareIndex,e.share)}));for(let t=0;tnew Se(e.x,e.y)))}if(h){l.tssNonces={};for(const e in h)l.tssNonces[e]=h[e]}if(d){l.factorPubs={};for(const e in d)l.factorPubs[e]=d[e].map((e=>new Se(e.x,e.y)))}u&&(l.factorEncs=u);for(let e=0;e"0x0"===e)),n=t.slice(0,i),s=t.slice(i+1,t.length),o=n.join("|"),a=[];n.forEach((e=>{a.push(Se.fromCompressedPub(e))}));const c=new cr(a);l.publicPolynomials[o]=c,p.push([o,s])}return l.polyIDList=p,l}getShareIndexesForPolynomial(e){const t=this.polyIDList.filter((t=>t[0]===e));if(t.length<1)throw or.default("there is no matching polyID");if(t.length>1)throw or.default("there is more than one matching polyID");return t[0][1]}getLatestPublicPolynomial(){return this.publicPolynomials[this.polyIDList[this.polyIDList.length-1][0]]}addPublicShare(e,t){e in this.publicShares||(this.publicShares[e]={}),this.publicShares[e][t.shareIndex.toString("hex")]=t}setGeneralStoreDomain(e,t){this.generalStore[e]=t}getGeneralStoreDomain(e){return this.generalStore[e]}deleteGeneralStoreDomain(e){delete this.generalStore[e]}setTkeyStoreDomain(e,t){this.tkeyStore[e]=t}getTkeyStoreDomain(e){return this.tkeyStore[e]}addFromPolynomialAndShares(e,t){const r=e.getPublicPolynomial(),i=r.getPolynomialID();this.publicPolynomials[i]=r;const n=[];if(Array.isArray(t))for(let e=0;e-1))throw or.default(`No share description found for the given shareIndex: ${e} \n and description: ${t}`);r[e].splice(i,1)}updateShareDescription(e,t,r){const i=this.getGeneralStoreDomain("shareDescriptions"),n=i[e].indexOf(t);if(!(n>-1))throw or.default(`No share description found for the given shareIndex:\n ${e} and description: ${t}`);i[e][n]=r}shareToShareStore(e){const t=Le(e);for(let r=this.polyIDList.length-1;r>=0;r-=1){const i=this.polyIDList[r][0];for(let n=0;nnew(T())(e,"hex").cmp(new(T())(t,"hex")))),n=r.split("|").concat("0x0").concat(...i).join("|");e.push(n)}return se(se(se(se(se({pubKey:this.pubKey.toSEC1(ue,!0).toString("hex"),polyIDList:e,scopedStore:this.scopedStore,generalStore:this.generalStore,tkeyStore:this.tkeyStore,nonce:this.nonce},this.tssKeyTypes&&{tssKeyTypes:this.tssKeyTypes}),this.tssNonces&&{tssNonces:this.tssNonces}),this.tssPolyCommits&&{tssPolyCommits:this.tssPolyCommits}),this.factorPubs&&{factorPubs:this.factorPubs}),this.factorEncs&&{factorEncs:this.factorEncs})}updateTSSData(e){const{tssKeyType:t,tssTag:r,tssNonce:i,tssPolyCommits:n,factorPubs:s,factorEncs:o}=e;t&&(this.tssKeyTypes[r]=t),void 0!==i&&(this.tssNonces[r]=i),n&&(this.tssPolyCommits[r]=n),s&&(this.factorPubs[r]=s),o&&(this.factorEncs[r]=o)}}var vr=br,wr=r(8287).hp;class Sr{constructor(e,t){_(this,"metadata",void 0),_(this,"privKey",void 0),this.metadata=e,this.privKey=t}static fromJSON(e){const{data:t,sig:r}=e;if(!t)throw or.metadataUndefined();const i=vr.fromJSON(t);if(!i.pubKey)throw or.metadataPubKeyUnavailable();if(!ue.keyFromPublic(i.pubKey.toSEC1(ue)).verify(be(nt(wr.from(et()(t),"utf8"))),r))throw or.default("Signature not valid for returning metadata");return new Sr(i)}toJSON(){const e=this.metadata;if(!this.privKey)throw or.privKeyUnavailable();return{data:e,sig:Ne(this.privKey).sign(be(nt(wr.from(et()(e),"utf8")))).toDER("hex")}}}var _r=Sr,xr=r(8287).hp;const kr="ed25519Seed";class Pr{constructor(e){_(this,"modules",void 0),_(this,"enableLogging",void 0),_(this,"serviceProvider",void 0),_(this,"storageLayer",void 0),_(this,"shares",void 0),_(this,"lastFetchedCloudMetadata",void 0),_(this,"metadata",void 0),_(this,"manualSync",void 0),_(this,"_localMetadataTransitions",void 0),_(this,"_refreshMiddleware",void 0),_(this,"_reconstructKeyMiddleware",void 0),_(this,"_shareSerializationMiddleware",void 0),_(this,"storeDeviceShare",void 0),_(this,"haveWriteMetadataLock",void 0),_(this,"serverTimeOffset",0),_(this,"privKey",void 0),_(this,"_ed25519Seed",void 0);const{enableLogging:t=!1,modules:r={},serviceProvider:i,storageLayer:n,manualSync:s=!1,serverTimeOffset:o}=e||{};this.enableLogging=t,this.serviceProvider=i,this.storageLayer=n,this.modules=r,this.shares={},this.privKey=void 0,this.manualSync=s,this._refreshMiddleware={},this._reconstructKeyMiddleware={},this._shareSerializationMiddleware=void 0,this.storeDeviceShare=void 0,this._localMetadataTransitions=[[],[]],this.setModuleReferences(),this.haveWriteMetadataLock="",this.serverTimeOffset=o}get secp256k1Key(){return void 0!==this.privKey?this.privKey:null}get ed25519Key(){return void 0!==this._ed25519Seed?this._ed25519Seed:null}set secp256k1Key(e){this.privKey=e}set ed25519Key(e){this._ed25519Seed=e}static async fromJSON(e,t){const{enableLogging:r,privKey:i,metadata:n,shares:s,_localMetadataTransitions:o,manualSync:a,lastFetchedCloudMetadata:c,serverTimeOffset:h}=e,{storageLayer:d,serviceProvider:u,modules:f}=t,l=new Pr({enableLogging:r,storageLayer:d,serviceProvider:u,modules:f,manualSync:a,serverTimeOffset:h});i&&(l.privKey=new(T())(i,"hex"));for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e)){const t=s[e];for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e)){const r=t[e];t[e]=je.fromJSON(r)}}l.shares=s;const p=Object.keys(JSON.parse(et()(new _r(new vr(new Se("0","0")),new(T())("0","hex"))))),y=Object.keys(JSON.parse(et()(new je(new De("0","0"),"")))),m={message:"Sample message",dateAdded:Date.now()},g=Object.keys(m),b=[],v=[];if(o[0].forEach(((e,t)=>{e?b.push(new(T())(e,"hex")):b.push(void 0);const r=Object.keys(o[1][t]);if(r.length===p.length&&r.every((e=>p.includes(e)))){const e=_r.fromJSON(o[1][t]);e.privKey=i,v.push(e)}else if(r.length===y.length&&r.every((e=>y.includes(e))))v.push(je.fromJSON(o[1][t]));else{if(r.length!==g.length||!r.every((e=>g.includes(e))))throw or.default("fromJSON failed. Could not deserialise _localMetadataTransitions");v.push(o[1][t])}})),n||c){let e,t,r;if("0"===l.serviceProvider.postboxKey.toString("hex")){const e=vr.fromJSON(c).getLatestPublicPolynomial().getPolynomialID(),t=Object.keys(s[e]),i=t[Math.floor(Math.random()*(t.length-1))];t.length>=1&&(r=s[e][i])}n&&(e=vr.fromJSON(n)),c&&(t=vr.fromJSON(c)),await l.initialize({neverInitializeNewKey:!0,transitionMetadata:e,previouslyFetchedCloudMetadata:t,previousLocalMetadataTransitions:[b,v],withShare:r})}else await l.initialize({neverInitializeNewKey:!0});return l}getStorageLayer(){return this.storageLayer}getMetadata(){if(void 0!==this.metadata)return this.metadata;throw or.metadataUndefined()}async initialize(e){const t=e||{};if(t.delete1OutOf1&&!this.manualSync)throw or.delete1OutOf1OnlyManualSync();const{withShare:r,importKey:i,importEd25519Seed:n,neverInitializeNewKey:s,transitionMetadata:o,previouslyFetchedCloudMetadata:a,previousLocalMetadataTransitions:c}=t,h=c&&c[0].length>0&&c[1].length>0,d=o&&h,u=d&&void 0===a;let f,l,p,y;if(r instanceof je)f=r;else if("object"==typeof r)f=je.fromJSON(r);else{if(r)throw or.default("Input is not supported");{const e=u,r=u?c:void 0,o=await this.getGenericMetadataWithTransitionStates({serviceProvider:this.serviceProvider,includeLocalMetadataTransitions:e,_localMetadataTransitions:r,fromJSONConstructor:{fromJSON:e=>e}});if(o.message===me){if(s)throw or.default("key has not been generated yet");if(!this.serviceProvider.migratableKey||i||n)await this._initializeNewKey({initializeModules:!0,importedKey:i,delete1OutOf1:t.delete1OutOf1,importEd25519Seed:n});else{const e=this.manualSync;this.manualSync=!0,await this._initializeNewKey({initializeModules:!0,importedKey:this.serviceProvider.migratableKey,delete1OutOf1:!0}),e||await this.syncLocalMetadataTransitions(),this.manualSync=e}return this.getKeyDetails()}f=je.fromJSON(o)}}try{y=await this.catchupToLatestShare({shareStore:f})}catch(e){const t=e;if(1503!==t.code||!d)throw t}if(d&&!u){if(a.noncey.shareMetadata.nonce)throw or.fromCode(1105);p=a}else p=y?y.shareMetadata.clone():void 0;d?(l=o,this._localMetadataTransitions=c):l=y.shareMetadata,this.lastFetchedCloudMetadata=p,this.metadata=l;const m=y?y.latestShare:f;if(this.inputShareStore(m),n&&this.getEd25519PublicKey())throw or.default("Ed25119 key already exists");return await this.initializeModules(),this.getKeyDetails()}async catchupToLatestShare(e){const{shareStore:t,polyID:r,includeLocalMetadataTransitions:i}=e;let n;try{n=await this.getAuthMetadata({privKey:t.share.share,includeLocalMetadataTransitions:i})}catch(e){const t=e;if(t&&1308===t.code)throw t;const r=await pe(t);throw or.authMetadataGetUnavailable(`, ${r.message}`)}try{if(r&&t.polynomialID===r)return{latestShare:t,shareMetadata:n};const e=await n.getEncryptedShare(t);return await this.catchupToLatestShare({shareStore:e,polyID:r,includeLocalMetadataTransitions:i})}catch(e){const r=e;if(r&&1308===r.code)throw r;return{latestShare:t,shareMetadata:n}}}async reconstructKey(e=!0){if(!this.metadata)throw or.metadataUndefined();const t=this.metadata.getLatestPublicPolynomial(),r=t.getThreshold(),i=t.getPolynomialID();let n=r;const s=this.metadata.getShareIndexesForPolynomial(i),o={};for(let e=0;e=0&&n>0;e-=1){const t=this.shares[this.metadata.polyIDList[e][0]];if(t){const e=Object.keys(t);for(let r=0;r0;r+=1)if(e[r]in o){const s=t[e[r]];if(s.polynomialID===i)a.push(s);else{const e=await this.catchupToLatestShare({shareStore:s,polyID:i,includeLocalMetadataTransitions:!0});if(e.latestShare.polynomialID!==i)throw new or(1304,"Share found in unexpected polynomial");a.push(e.latestShare)}delete o[e[r]],n-=1}}}if(a.forEach((e=>{this.inputShareStore(e)})),n>0)throw or.unableToReconstruct(` require ${r} but have ${r-n}`);const c=Object.keys(this.shares[i]),h=[],d=[];for(let e=0;e0&&await Promise.all(Object.keys(this._reconstructKeyMiddleware).map((async e=>{if(Object.prototype.hasOwnProperty.call(this._reconstructKeyMiddleware,e)){const t=await this._reconstructKeyMiddleware[e]();l[e]=t,l.allKeys.push(...t)}}))),this.getEd25519PublicKey()){const e=await this.retrieveEd25519Seed();if(!e)throw or.default("Ed25519 seed not found");this._ed25519Seed=e}return se({secp256k1Key:u,ed25519Seed:this._ed25519Seed},l)}reconstructLatestPoly(){if(!this.metadata)throw or.metadataUndefined();const e=this.metadata.getLatestPublicPolynomial(),t=e.getPolynomialID(),r=e.getThreshold(),i=[],n=Object.keys(this.shares[t]);if(n.length{const r=new(T())(e,"hex");0!==r.cmp(t)&&o.push(r.toString("hex"))})),s.length===o.length)throw or.default("Share index does not exist in latest polynomial");if(o.lengthnew(T())(e,"hex"))),n=new(T())(ye(i));return{newShareStores:(await this._refreshShares(e.getThreshold(),[...r,n.toString("hex")],t)).shareStores,newShareIndex:n}}getEd25519PublicKey(){if(!this.metadata)throw or.metadataUndefined();const e=this.metadata.getGeneralStoreDomain(kr);return null==e?void 0:e.publicKey}async retrieveEd25519Seed(){if(!this.metadata)throw or.metadataUndefined();if(!this.privKey)throw or.privateKeyUnavailable();const e=this.metadata.getGeneralStoreDomain(kr),t=await this.decrypt(e.message);return this._ed25519Seed=t,t}async addLocalMetadataTransitions(e){const{privKey:t,input:r}=e;this._localMetadataTransitions[0]=[...this._localMetadataTransitions[0],...t],this._localMetadataTransitions[1]=[...this._localMetadataTransitions[1],...r],this.manualSync||await this.syncLocalMetadataTransitions()}async syncLocalMetadataTransitions(){if(!this.metadata)throw or.metadataUndefined();if(!(Array.isArray(this._localMetadataTransitions[0])&&this._localMetadataTransitions[0].length>0))return;let e=!1;this.lastFetchedCloudMetadata&&(await this.acquireWriteMetadataLock(),e=!0);try{await this.storageLayer.setMetadataStream({input:this._localMetadataTransitions[1],privKey:this._localMetadataTransitions[0],serviceProvider:this.serviceProvider}),this._localMetadataTransitions=[[],[]],this.lastFetchedCloudMetadata=this.metadata.clone()}catch(e){const t=await pe(e);throw or.metadataPostFailed(t.message)}finally{e&&await this.releaseWriteMetadataLock()}}async readMetadata(e){return this.storageLayer.getMetadata({privKey:e})}async updateSDK(e){const t=new Pr({enableLogging:this.enableLogging,modules:this.modules,serviceProvider:this.serviceProvider,storageLayer:this.storageLayer,manualSync:this.manualSync});try{await t.initialize({neverInitializeNewKey:!0,withShare:e&&e.withShare})}catch(e){throw or.fromCode(1103,`${e.message}`)}const r=t.metadata.polyIDList;let i;Object.keys(this.shares).forEach((e=>{r.find((t=>t[0]===e))?i=e:delete this.shares[e]}));const n=Object.keys(this.shares[i]).map((e=>t.inputShareStoreSafe(this.outputShareStore(e,i))));return await Promise.all(n),t}inputShareStore(e){let t;if(e instanceof je)t=e;else{if("object"!=typeof e)throw or.default("can only add type ShareStore into shares");t=je.fromJSON(e)}t.polynomialID in this.shares||(this.shares[t.polynomialID]={}),this.shares[t.polynomialID][t.share.shareIndex.toString("hex")]=t}async inputShareStoreSafe(e,t=!1){if(!this.metadata)throw or.metadataUndefined();let r;if(e instanceof je)r=e;else{if("object"!=typeof e)throw or.default("can only add type ShareStore into shares");r=je.fromJSON(e)}const i=this.metadata.getLatestPublicPolynomial().getPolynomialID();if(r.polynomialID!==i){const e=await this.catchupToLatestShare({shareStore:r,includeLocalMetadataTransitions:!0});if(!e.shareMetadata.polyIDList.find((e=>e[0]===i)))throw or.fromCode(1307);if(i!==e.latestShare.polynomialID){if(!t)throw or.default(`TKey SDK metadata seems to be outdated because shareIndex: ${e.latestShare.share.shareIndex.toString("hex")} has a more recent metadata. Please call updateSDK first`);this.metadata=e.shareMetadata}e.latestShare.polynomialID in this.shares||(this.shares[e.latestShare.polynomialID]={}),this.shares[e.latestShare.polynomialID][e.latestShare.share.shareIndex.toString("hex")]=e.latestShare}else r.polynomialID in this.shares||(this.shares[r.polynomialID]={}),this.shares[r.polynomialID][r.share.shareIndex.toString("hex")]=r}outputShareStore(e,t){if(!this.metadata)throw or.metadataUndefined();let r,i;if("number"==typeof e?r=new(T())(e):T().isBN(e)?r=e:"string"==typeof e&&(r=new(T())(e,"hex")),i=t||this.metadata.getLatestPublicPolynomial().getPolynomialID(),!this.metadata.getShareIndexesForPolynomial(i).includes(r.toString("hex")))throw new or(1002,"no such share index created");const n=this.shares[i][r.toString("hex")];if(n)return n;const s=this.reconstructLatestPoly().generateShares([r]);return new je(s[r.toString("hex")],i)}getCurrentShareIndexes(){if(!this.metadata)throw or.metadataUndefined();const e=this.metadata.getLatestPublicPolynomial().getPolynomialID();return Object.keys(this.shares[e])}getKeyDetails(){if(!this.metadata)throw or.metadataUndefined();const e=this.metadata.getLatestPublicPolynomial(),t=e.getPolynomialID(),r=e.getThreshold()-Object.keys(this.shares[t]).length;let i=this.metadata.getShareDescription();if(i){const e=this.metadata.getShareIndexesForPolynomial(t);i=Object.keys(i).reduce(((t,r)=>(e.indexOf(r)>=0&&(t[r]=i[r]),t)),{})}return{pubKey:this.metadata.pubKey,ed25519PublicKey:this.getEd25519PublicKey(),requiredShares:r,threshold:e.getThreshold(),totalShares:this.metadata.getShareIndexesForPolynomial(t).length,shareDescriptions:i}}generateAuthMetadata(e){const{input:t}=e,r=[];for(let e=0;e=0;i-=1){const n=t[0][i];if((e.privKey&&n&&0===n.cmp(e.privKey)||e.serviceProvider&&!n)&&(r=i),null!==r)break}if(null!==r)return t[1][r]}let t;try{t=await this.storageLayer.getMetadata(e)}catch(e){const t=await pe(e);throw or.metadataGetFailed(t.message)}if(t.message===ge)throw or.fromCode(1308);return e.fromJSONConstructor.fromJSON(t)}async acquireWriteMetadataLock(){if(this.haveWriteMetadataLock)return this.metadata.nonce;if(!this.privKey)throw or.privateKeyUnavailable();let e;const t=this.lastFetchedCloudMetadata.getLatestPublicPolynomial().getPolynomialID(),r=Object.keys(this.shares[t]),i=r[Math.floor(Math.random()*(r.length-1))];e=r.length>=1?this.shares[t][i]:this.outputShareStore(i,t);const n=(await this.catchupToLatestShare({shareStore:e})).shareMetadata;if(n.nonce>this.lastFetchedCloudMetadata.nonce)throw or.acquireLockFailed(`unable to acquire write access for metadata due to \n lastFetchedCloudMetadata (${this.lastFetchedCloudMetadata.nonce})\n being lower than last written metadata nonce (${n.nonce}). perhaps update metadata SDK (create new tKey and init)`);if(n.noncee.share.share));await this.syncMultipleShareMetadata(t,e)}async syncMultipleShareMetadata(e,t){if(!this.metadata)throw or.metadataUndefined();this.metadata.nonce+=1;const r=e.map((async e=>{const r=this.metadata.clone();let i,n;try{i=await this.getAuthMetadata({privKey:e,includeLocalMetadataTransitions:!0})}catch(e){const t=await pe(e);throw or.authMetadataGetUnavailable(t.message)}return n=t?t(i.scopedStore):i.scopedStore,r.scopedStore=n,r})),i=await Promise.all(r);return this.setAuthMetadataBulk({input:i,privKey:e})}_addRefreshMiddleware(e,t){this._refreshMiddleware[e]=t}_addReconstructKeyMiddleware(e,t){this._reconstructKeyMiddleware[e]=t}_addShareSerializationMiddleware(e,t){this._shareSerializationMiddleware={serialize:e,deserialize:t}}_setDeviceStorage(e){if(this.storeDeviceShare)throw or.default("storeDeviceShare already set");this.storeDeviceShare=e}async addShareDescription(e,t,r){if(!this.metadata)throw or.metadataUndefined();this.metadata.addShareDescription(e,t),r&&await this._syncShareMetadata()}async deleteShareDescription(e,t,r){if(!this.metadata)throw or.metadataUndefined();this.metadata.deleteShareDescription(e,t),r&&await this._syncShareMetadata()}async updateShareDescription(e,t,r,i){if(!this.metadata)throw or.metadataUndefined();this.metadata.updateShareDescription(e,t,r),i&&await this._syncShareMetadata()}async encrypt(e){if(!this.privKey)throw or.privateKeyUnavailable();return fe(Ce(this.privKey),e)}async decrypt(e){if(!this.privKey)throw or.privateKeyUnavailable();return le(Ke(this.privKey),e)}async _setTKeyStoreItem(e,t){if(!this.metadata)throw or.metadataUndefined();const r=this.metadata.getTkeyStoreDomain(e)||[],i=await Promise.all(r.map((async e=>{const t=await this.decrypt(e);return JSON.parse(t.toString())}))),n=await this.encrypt(xr.from(et()(t))),s=i.findIndex((e=>e.id===t.id));s>-1?r[s]=n:r.push(n),this.metadata.setTkeyStoreDomain(e,r),await this._syncShareMetadata()}async _deleteTKeyStoreItem(e,t){if(!this.metadata)throw or.metadataUndefined();const r=this.metadata.getTkeyStoreDomain(e)||[],i=(await Promise.all(r.map((async e=>{const t=await this.decrypt(e);return JSON.parse(t.toString())})))).filter((e=>e.id!==t));this.metadata.setTkeyStoreDomain(e,i),await this._syncShareMetadata()}async getTKeyStore(e){if(!this.metadata)throw or.metadataUndefined();const t=this.metadata.getTkeyStoreDomain(e)||[];return await Promise.all(t.map((async e=>{const t=await this.decrypt(e);return JSON.parse(t.toString())})))}async getTKeyStoreItem(e,t){if(!this.metadata)throw or.metadataUndefined();const r=this.metadata.getTkeyStoreDomain(e)||[];return(await Promise.all(r.map((async e=>{const t=await this.decrypt(e);return JSON.parse(t.toString())})))).find((e=>e.id===t))}async outputShare(e,t){const{share:r}=this.outputShareStore(e).share;return t?this._shareSerializationMiddleware.serialize(r,t):r}async inputShare(e,t){if(!this.metadata)throw or.metadataUndefined();let r;if(t){const i=await this._shareSerializationMiddleware.deserialize(e,t);r=this.metadata.shareToShareStore(i)}else r=this.metadata.shareToShareStore(e);const i=this.metadata.getLatestPublicPolynomial().getPolynomialID();if(!this.metadata.getShareIndexesForPolynomial(i).includes(r.share.shareIndex.toString("hex")))throw or.default("Latest poly doesn't include this share");await this.inputShareStoreSafe(r)}toJSON(){return{shares:this.shares,enableLogging:this.enableLogging,privKey:this.privKey?this.privKey.toString("hex"):void 0,metadata:this.metadata,lastFetchedCloudMetadata:this.lastFetchedCloudMetadata,_localMetadataTransitions:this._localMetadataTransitions,manualSync:this.manualSync,serviceProvider:this.serviceProvider,storageLayer:this.storageLayer}}getAllShareStoresForLatestPolynomial(){const e=this.metadata.getLatestPublicPolynomial(),t=e.getPolynomialID(),r=this.metadata.getShareIndexesForPolynomial(t),i=e.getThreshold(),n=[],s=Object.keys(this.shares[t]);if(s.lengththis.metadata.shareToShareStore(o[e].share)))}async CRITICAL_deleteTkey(){if(!this.metadata)throw or.metadataUndefined();if(!this.privKey)throw or.privateKeyUnavailable();if(this._localMetadataTransitions[0].length>0||this._localMetadataTransitions[1].length>0)throw or.default("Please sync all local state before calling this function");const e=this.getAllShareStoresForLatestPolynomial();await this.addLocalMetadataTransitions({input:[...Array(e.length).fill({message:ge,dateAdded:Date.now()}),{message:me}],privKey:[...e.map((e=>e.share.share)),void 0]}),await this.syncLocalMetadataTransitions(),this.privKey=void 0,this.metadata=void 0,this.shares={},this.lastFetchedCloudMetadata=void 0}getApi(){return{getMetadata:this.getMetadata.bind(this),getStorageLayer:this.getStorageLayer.bind(this),initialize:this.initialize.bind(this),catchupToLatestShare:this.catchupToLatestShare.bind(this),_syncShareMetadata:this._syncShareMetadata.bind(this),_addRefreshMiddleware:this._addRefreshMiddleware.bind(this),_addReconstructKeyMiddleware:this._addReconstructKeyMiddleware.bind(this),_addShareSerializationMiddleware:this._addShareSerializationMiddleware.bind(this),addShareDescription:this.addShareDescription.bind(this),generateNewShare:this.generateNewShare.bind(this),inputShareStore:this.inputShareStore.bind(this),inputShareStoreSafe:this.inputShareStoreSafe.bind(this),outputShareStore:this.outputShareStore.bind(this),inputShare:this.inputShare.bind(this),outputShare:this.outputShare.bind(this),_setDeviceStorage:this._setDeviceStorage.bind(this),encrypt:this.encrypt.bind(this),decrypt:this.decrypt.bind(this),getTKeyStore:this.getTKeyStore.bind(this),getTKeyStoreItem:this.getTKeyStoreItem.bind(this),_setTKeyStoreItem:this._setTKeyStoreItem.bind(this),_deleteTKeyStoreItem:this._deleteTKeyStoreItem.bind(this),deleteShare:this.deleteShare.bind(this)}}setModuleReferences(){Object.keys(this.modules).map((e=>this.modules[e].setModuleReferences(this.getApi())))}async initializeModules(){return Promise.all(Object.keys(this.modules).map((e=>this.modules[e].initialize())))}async _refreshShares(e,t,r){if(!this.metadata)throw or.metadataUndefined();if(!this.privKey)throw or.privateKeyUnavailable();if(e>t.length)throw or.default(`threshold should not be greater than share indexes. ${e} > ${t.length}`);this.metadata.nonce+=1;const i=mr(e-1,this.privKey),n=i.generateShares(t),s=this.metadata.getShareIndexesForPolynomial(r),o=[],a=Object.keys(this.shares[r]);if(a.length{u[e]=new je(n[e],f)}));const l=this.metadata.clone(),p={},y=await Promise.all(h.map((async e=>{const t=c.polyEval(new(T())(e,"hex")),i=await fe(Ce(t),xr.from(JSON.stringify(u[e])));return p[Le(t).x.toString("hex")]=i,d[e]=new je(new De(e,t),r),t})));l.setScopedStore("encryptedShares",p);const m=Array(y.length).fill(l);for(const e in this._refreshMiddleware)if(Object.prototype.hasOwnProperty.call(this._refreshMiddleware,e)){const t=this._refreshMiddleware[e](this.metadata.getGeneralStoreDomain(e),d,u);t?this.metadata.setGeneralStoreDomain(e,t):this.metadata.deleteGeneralStoreDomain(e)}const g=[],b=t.map((e=>{const t=this.metadata.clone();return g.push(t),u[e].share.share})),v=this.generateAuthMetadata({input:[...m,...g]});await this.addLocalMetadataTransitions({input:[...v,u[1]],privKey:[...y,...b,void 0]});for(let e=0;e(f.push(this.metadata),c[e.toString("hex")].share))),p=this.generateAuthMetadata({input:f});await this.addLocalMetadataTransitions({input:[...p,u],privKey:[...l,void 0]}),n&&await this.addLocalMetadataTransitions({input:[{message:qe}],privKey:[this.serviceProvider.postboxKey]});for(let e=0;ee.length)throw new Error("trying to select more elements than available");const r=[],i=e.slice();for(;r.lengthnew(T())(e))),s=new(T())(t),o=new(T())(r);let a=new(T())(1),c=new(T())(1);for(let e=0;eDr(this.serverEndpoints[e-1],"/rss_round_1",{round_name:"rss_round_1",server_set:"new",server_index:e,new_servers_info:c,user_temp_pubkey:Or(this.tempPubKey),target_index:s,auth:{label:r,sigs:i},key_type:this.keyType}))),d=s.map((e=>Br([0,1],0,e,this.ecCurve.n).umod(this.ecCurve.n))),u=[],f=[],l=[],p=[],y=()=>this.ecCurve.genKeyPair().getPrivate();for(let e=0;eOr(this.ecCurve.g.mul(e)))));const i=Cr(c.threshold-1,Lr(r,1,this.ecCurve.n),y);l.push(i),p.push(i.map((e=>Or(this.ecCurve.g.mul(e)))))}const m=[],g=[];for(let e=0;e{e({target_index:s,data:b})})));const v=await Promise.all(h),w=s.map(((e,t)=>{for(let e=0;eTr(this.ecCurve,s[t]).add(e))),i=i.map(((e,t)=>Tr(this.ecCurve,o[t]).add(e)))):(r=s.map((e=>Tr(this.ecCurve,e))),i=o.map((e=>Tr(this.ecCurve,e))))}return{mc:r,sc:i}}));s.map(((e,t)=>{const{mc:r,sc:i}=w[t],s=Tr(this.ecCurve,n).mul(Br([1,e],1,0,this.ecCurve.n)),o=r[0].mul(Br([1,e],e,0,this.ecCurve.n));if(!s.add(o).eq(this.tssPubKey))throw new Error("master poly commits inconsistent with tssPubKey");if(!r[0].add(r[1]).eq(i[0]))throw new Error("server poly commits inconsistent with master poly commits");return null}));const S=Fr.from(this.tempPrivKey.toString(16,64),"hex"),_=[];for(let e=0;et.data[e].target_encryptions.user_enc)),r=(await Promise.all(t.map((e=>Kr(S,e))))).map((e=>new(T())(e))).reduce(((e,t)=>e.add(t).umod(this.ecCurve.n)),new(T())(0)),{mc:i}=w[e],n=this.ecCurve.g.mul(r),s=i[0].add(i[1].mul(new(T())(99)));if(!n.eq(s))throw new Error("decrypted user shares inconsistent with poly commits");_.push(r)}const x=await Promise.all(_.map(((e,t)=>{const r=a[t];return Nr(Fr.from(`04${r.x.padStart(64,"0")}${r.y.padStart(64,"0")}`,"hex"),Fr.from(e.toString(16,64),"hex"))}))),k=s.map(((e,t)=>{const r=v.map((e=>e.data[t].target_encryptions.server_encs)),i=[];for(let e=0;et+1)),M=await Promise.all(P.map((e=>{const t=[];return s.map(((r,i)=>{const{mc:n,sc:s}=w[i],o={master_commits:n.map(Or),server_commits:s.map(Or),server_encs:k[i][e-1],factor_pubkeys:[a[i]]};return t.push(o),null})),Dr(this.serverEndpoints[e-1],"/rss_round_2",{round_name:"rss_round_2",server_index:e,target_index:s,data:t,key_type:this.keyType}).catch((e=>rt().error(e)))})));if(M.filter((e=>e)).lengtht&&t.data[e].encs[0])),userFactorEnc:x[e]});return E}async refresh(e){const{targetIndexes:t,inputIndex:r,selectedServers:i,oldLabel:n,newLabel:s,sigs:o,dkgNewPub:a,inputShare:c,factorPubs:h}=e;if(h.length!==t.length)throw new Error("inconsistent factorPubs and targetIndexes lengths");const d={pubkeys:this.serverPubKeys,selected:i,threshold:this.serverThreshold},u=i.map((e=>Dr(this.serverEndpoints[e-1],"/rss_round_1",{round_name:"rss_round_1",server_set:"old",server_index:e,old_servers_info:d,new_servers_info:d,old_user_share_index:r,user_temp_pubkey:Or(this.tempPubKey),target_index:t,auth:{label:n,sigs:o},key_type:this.keyType}))).concat(i.map((e=>Dr(this.serverEndpoints[e-1],"/rss_round_1",{round_name:"rss_round_1",server_set:"new",server_index:e,old_servers_info:d,new_servers_info:d,old_user_share_index:r,user_temp_pubkey:Or(this.tempPubKey),target_index:t,auth:{label:s,sigs:o},key_type:this.keyType})))),f=Br([1,r],r,0,this.ecCurve.n),l=t.map((e=>f.mul(Br([0,1],0,e,this.ecCurve.n)).umod(this.ecCurve.n))),p=[],y=[],m=[],g=[],b=()=>this.ecCurve.genKeyPair().getPrivate();for(let e=0;eOr(this.ecCurve.g.mul(e)))));const r=Cr(d.threshold-1,Lr(t,1,this.ecCurve.n),b);m.push(r),g.push(r.map((e=>Or(this.ecCurve.g.mul(e)))))}const v=[],w=[];for(let e=0;e{e({target_index:t,data:S})})));const _=await Promise.all(u),x=t.map(((e,t)=>{for(let e=0;e<_.length;e++){const r=_[e].data[t],{master_poly_commits:i,server_poly_commits:n}=r;if(2!==i.length)throw new Error("incorrect number of coeffs for master poly commits");if(n.length!==this.serverThreshold)throw new Error("incorrect number of coeffs for server poly commits")}let r=[],i=[];for(let e=0;e<_.length;e++){const n=_[e].data[t],{master_poly_commits:s,server_poly_commits:o}=n;0!==r.length||0!==i.length?(r=r.map(((e,t)=>Tr(this.ecCurve,s[t]).add(e))),i=i.map(((e,t)=>Tr(this.ecCurve,o[t]).add(e)))):(r=s.map((e=>Tr(this.ecCurve,e))),i=o.map((e=>Tr(this.ecCurve,e))))}return{mc:r,sc:i}}));t.map(((e,t)=>{const{mc:r,sc:i}=x[t],n=Tr(this.ecCurve,a).mul(Br([1,e],1,0,this.ecCurve.n)),s=r[0].mul(Br([1,e],e,0,this.ecCurve.n));if(!n.add(s).eq(this.tssPubKey))throw new Error("master poly commits inconsistent with tssPubKey");if(!r[0].add(r[1]).eq(i[0]))throw new Error("server poly commits inconsistent with master poly commits");return null}));const k=Fr.from(this.tempPrivKey.toString(16,64),"hex"),P=[];for(let e=0;et.data[e].target_encryptions.user_enc)),r=(await Promise.all(t.map((e=>Kr(k,e))))).map((e=>new(T())(e))).reduce(((e,t)=>e.add(t).umod(this.ecCurve.n)),new(T())(0)),{mc:i}=x[e],n=this.ecCurve.g.mul(r),s=i[0].add(i[1].mul(new(T())(99)));if(!n.eq(s))throw new Error("decrypted user shares inconsistent with poly commits");P.push(r)}const M=await Promise.all(P.map(((e,t)=>{const r=h[t];return Nr(Fr.from(`04${r.x.padStart(64,"0")}${r.y.padStart(64,"0")}`,"hex"),Fr.from(e.toString(16,64),"hex"))}))),E=t.map(((e,t)=>{const r=_.map((e=>e.data[t].target_encryptions.server_encs)),i=[];for(let e=0;et+1)),A=await Promise.all(I.map((e=>{const r=[];return t.map(((t,i)=>{const{mc:n,sc:s}=x[i],o={master_commits:n.map(Or),server_commits:s.map(Or),server_encs:E[i][e-1],factor_pubkeys:[h[i]]};return r.push(o),null})),Dr(this.serverEndpoints[e-1],"/rss_round_2",{round_name:"rss_round_2",server_index:e,target_index:t,data:r,key_type:this.keyType}).catch((e=>rt().error(e)))})));if(A.filter((e=>e)).lengtht&&t.data[e].encs[0])),userFactorEnc:M[e]});return O}}var jr=r(8287).hp;const qr="tssModule",$r="default",zr=new ce.ec("secp256k1"),Jr="secp256k1";class Hr extends Mr{constructor(e){super(e),_(this,"serviceProvider",null),_(this,"_tssKeyType",void 0),_(this,"_tssCurve",void 0),_(this,"_tssTag",void 0),_(this,"_accountSalt",void 0);const{serviceProvider:t,storageLayer:r,tssTag:i="default",tssKeyType:n}=e;if(t.customAuthArgs.keyType!==n)throw or.default(`service provider keyType mismatch: ${t.customAuthArgs.keyType} !== ${n}`);this.serviceProvider=t,this.storageLayer=r,this._tssTag=i,this._tssKeyType=n,this._tssCurve=new ce.ec(n)}get tssTag(){return this._tssTag}get tssKeyType(){return this._tssKeyType}get tssCurve(){return this._tssCurve}set tssTag(e){if((this.metadata.tssKeyTypes[this.tssTag]||Jr)!==this.tssKeyType)throw or.default(`tssKeyType mismatch: ${this.metadata.tssKeyTypes[this.tssTag]} !== ${this.tssKeyType}`);this._tssTag=e}async initialize(e){const t=await super.initialize(e);if(!this.metadata.tssPolyCommits[this.tssTag]&&!(null!=e&&e.skipTssInit||null!=e&&e.neverInitializeNewKey)){const{factorEncs:t,factorPubs:r,tssPolyCommits:i}=await this._initializeNewTSSKey(this.tssTag,e.deviceTSSShare,e.factorPub,e.deviceTSSIndex);this.metadata.updateTSSData({tssKeyType:this._tssKeyType,tssTag:this.tssTag,tssNonce:0,tssPolyCommits:i,factorPubs:r,factorEncs:t});const n=xe(this._tssCurve);await this._setTKeyStoreItem(qr,{id:"accountSalt",value:n}),this._accountSalt=n}if(this.metadata.tssPolyCommits[this.tssTag]&&(this.metadata.tssKeyTypes[this.tssTag]||Jr)!==this.tssKeyType)throw or.default(`tssKeyType mismatch: ${this.metadata.tssKeyTypes[this.tssTag]} !== ${this.tssKeyType}`);return t}getFactorEncs(e){if(!this.metadata)throw or.metadataUndefined();if(!this.metadata.factorEncs)throw or.default("no factor encs mapping");if(!this.metadata.factorPubs)throw or.default("no factor pubs mapping");const t=this.metadata.factorPubs[this.tssTag];if(!t)throw or.default(`no factor pubs for this tssTag ${this.tssTag}`);if(0===t.filter((t=>0===t.x.cmp(e.x)&&0===t.y.cmp(e.y))).length)throw or.default(`factor pub ${e} not found for tssTag ${this.tssTag}`);if(!this.metadata.factorEncs[this.tssTag])throw or.default(`no factor encs for tssTag ${this.tssTag}`);const r=e.x.toString(16,64);return this.metadata.factorEncs[this.tssTag][r]}async getTSSShare(e,t){const r=Ee(e,zr),i=this.getFactorEncs(r),{userEnc:n,serverEncs:s,tssIndex:o,type:a}=i,c=await le(jr.from(e.toString(16,64),"hex"),n),h=await Promise.all(s.map((t=>null===t?null:le(jr.from(e.toString(16,64),"hex"),t)))),d=[c].concat(h).map((e=>null===e?null:new(T())(e))),u=this._tssCurve,f=this.getTSSCommits().map((e=>u.keyFromPublic({x:e.x.toString(16,64),y:e.y.toString(16,64)}).getPublic())),l=d[0],p=(null==t?void 0:t.accountIndex)||0,y=(null==t?void 0:t.coefficient)||new(T())(1);if("direct"===a){const e=u.g.mul(l),t=f[0],r=f[1],i=t.add(r.mul(new(T())(o)));if(e.eq(i))return{tssIndex:o,tssShare:this.adjustTssShare(l,p,y)};throw new Error("user decryption does not match tss commitments...")}const m=d.slice(1),g=new Array(m.length).fill(null).map(((e,t)=>t+1)),b=(null==t?void 0:t.threshold)||Math.ceil(m.length/2),v=_e(m.length,b);for(let e=0;et.indexOf(r)>-1));if(r.includes(null))continue;const i=g.filter(((e,r)=>t.indexOf(r)>-1)),n=Rr(i.map((e=>ke(u,i,e))),r,u.n),s=Rr([ke(u,[1,99],1),ke(u,[1,99],99)],[n,l],u.n),a=u.g.mul(s),c=f[0],h=f[1];let d=c;for(let e=0;e0){const i=this.computeAccountNonce(e),n=t.keyFromPrivate(i.toString("hex")).getPublic(),s=r[0].toEllipticPoint(t).add(n);return Se.fromElliptic(s)}return r[0]}async _getRssNodeDetails(){const{serverEndpoints:e,serverPubKeys:t,serverThreshold:r}=await this.serviceProvider.getRSSNodeDetails();if(!Array.isArray(e)||0===e.length)throw new Error("service provider tss server endpoints are missing");if(!Array.isArray(t)||0===t.length)throw new Error("service provider pub keys are missing");return{serverEndpoints:e,serverPubKeys:t,serverThreshold:r||Math.floor(e.length/2)+1}}async importTssKey(e,t){const r=this._tssCurve;if(!this.secp256k1Key)throw or.privateKeyUnavailable();if(!this.metadata)throw or.metadataUndefined();const{importKey:i,factorPub:n,newTSSIndex:s,tag:o}=e,a=this.tssTag;this._tssTag=o;try{const{selectedServers:e=[],authSignatures:a=[]}=t||{};if(!o)throw or.default("invalid param, tag is required");if(!n)throw or.default("invalid param, newFactorPub is required");if(!s)throw or.default("invalid param, newTSSIndex is required");if(0===a.length)throw or.default("invalid param, authSignatures is required");const c=this.metadata.factorPubs[o];if((null==c?void 0:c.length)>0)throw or.default("Duplicate account tag, please use a unique tag for importing key");const h=[n],d=await(async()=>{if(this._tssKeyType===Te.secp256k1)return new(T())(i);if(this._tssKeyType===Te.ed25519){const e=Ae(this.tssTag||$r);if(this.metadata.getGeneralStoreDomain(e))throw new Error("Seed already exists");const{scalar:t}=Qt(i),r=jr.from($t(t).point.encodeCompressed("hex"),"hex"),n=await fe(r,i);return this.metadata.setGeneralStoreDomain(e,{message:n}),t}throw new Error("Invalid key type")})();if(!d||d.eq(new(T())("0")))throw new Error("Invalid importedKey");const u=[s],f=this.metadata.tssNonces[this.tssTag],l=f&&f>0?f+1:0,p=`${this.serviceProvider.getVerifierNameVerifierId()}${this.tssTag}${l}`,y=Or(r.g.mul(d)),m=await this._getRssNodeDetails(),{pubKey:g,nodeIndexes:b}=await this.serviceProvider.getTSSPubKey(this.tssTag,l);let v=e;(null==b?void 0:b.length)>0?v=e.length?b.slice(0,Math.min(e.length,b.length)):b.slice(0,3):0===(null==e?void 0:e.length)&&(v=Ar(new Array(m.serverEndpoints.length).fill(null).map(((e,t)=>t+1)),Math.ceil(m.serverEndpoints.length/2)));const{serverEndpoints:w,serverPubKeys:S,serverThreshold:_}=m,x=new Ur({serverEndpoints:w,serverPubKeys:S,serverThreshold:_,tssPubKey:y,keyType:this._tssKeyType}),k=await x.import({importKey:d,dkgNewPub:Me(g),selectedServers:v,factorPubs:h.map((e=>Me(e))),targetIndexes:u,newLabel:p,sigs:a}),P=g.toEllipticPoint(r).add(Tr(r,y).neg()),M=[Se.fromJSON(y),Se.fromJSON({x:P.getX().toString(16,64),y:P.getY().toString(16,64)})],E={};for(let e=0;e0&&(w=v.slice(0,Math.min(f.length,v.length)));const S=await p.refresh({factorPubs:i.map((e=>Me(e))),targetIndexes:n,oldLabel:m,newLabel:g,sigs:l,dkgNewPub:Me(b),inputShare:t,inputIndex:r,selectedServers:w}),_=b.toEllipticPoint(this._tssCurve).add(Tr(this._tssCurve,c).neg()),x=[Se.fromJSON(c),Se.fromJSON({x:_.getX().toString(16,64),y:_.getY().toString(16,64)})],k={};for(let e=0;et+1)),Math.ceil(h.serverEndpoints.length/2)),u=n||d,f=e.map((e=>this.getFactorEncs(e).tssIndex)).concat([i]);await this._refreshTSSShares(!1,a,c,t,f,o,se(se({},h),{},{selectedServers:u,authSignatures:s}))}else{if(c!==i)throw or.default("newTSSIndex does not match existing tssIndex, set refreshShares to true to refresh shares");const e=this.metadata.factorPubs[this.tssTag].concat([r]),t=JSON.parse(JSON.stringify(this.metadata.factorEncs[this.tssTag]));t[r.x.toString(16,64)]={tssIndex:c,type:"direct",userEnc:await fe(r.toSEC1(ue,!1),a.toArrayLike(jr,"be",32)),serverEncs:[]},this.metadata.updateTSSData({tssKeyType:this.tssKeyType,tssTag:this.tssTag,factorPubs:e,factorEncs:t})}await this._syncShareMetadata()}async deleteFactorPub(e){if(!this.metadata)throw or.metadataUndefined("metadata is undefined");if(!this.secp256k1Key)throw new Error("Tkey is not reconstructed");if(!this.metadata.tssPolyCommits[this.tssTag])throw new Error(`tss key has not been initialized for tssTag ${this.tssTag}`);const{factorKey:t,deleteFactorPub:r,selectedServers:i,authSignatures:n}=e,s=this.metadata.factorPubs[this.tssTag],{tssShare:o,tssIndex:a}=await this.getTSSShare(t),c=s.filter((e=>e.x.eq(r.x)&&e.y.eq(r.y)));if(0===c.length)throw or.default("could not find factorPub to delete");if(c.length>1)throw or.default("found two or more factorPubs that match, error in metadata");const h=s.filter((e=>!e.x.eq(r.x)||!e.y.eq(r.y)));this.metadata.updateTSSData({tssKeyType:this._tssKeyType,tssTag:this.tssTag,factorPubs:h});const d=await this._getRssNodeDetails(),u=Ar(new Array(d.serverEndpoints.length).fill(null).map(((e,t)=>t+1)),Math.ceil(d.serverEndpoints.length/2)),f=i||u,l=h.map((e=>this.getFactorEncs(e).tssIndex));await this._refreshTSSShares(!1,o,a,h,l,this.serviceProvider.getVerifierNameVerifierId(),se(se({},d),{},{selectedServers:f,authSignatures:n})),await this._syncShareMetadata()}adjustTssShare(e,t,r){const i=this.computeAccountNonce(t);return e.mul(r).add(i).umod(this._tssCurve.n)}async _initializeNewTSSKey(e,t,r,i){const n=this._tssCurve;let s;const o=i||2;s=t||this._tssCurve.genKeyPair().getPrivate();const{pubKey:a}=await this.serviceProvider.getTSSPubKey(e,0),c=a.toEllipticPoint(n),h=this._tssCurve.g.mul(s),d=ke(n,[1,o],1,0),u=ke(n,[1,o],o,0),f=c.mul(d).add(h.mul(u)),l=c.add(f.neg()),p=[Se.fromElliptic(f),Se.fromElliptic(l)],y=[r],m={};for(let e=0;ethis.generateMetadataParams(await ti.serializeMetadataParamsInput(e,t,r[i]),t,r[i])))),o=new FormData;s.forEach(((e,t)=>{o.append(t.toString(),JSON.stringify(e))}));const a={mode:"cors",method:"POST",headers:{}},c={isUrlEncodedData:!0,timeout:6e5};return await Lt(`${this.hostUrl}/bulk_set_stream`,o,a,c)}catch(e){throw await pe(e)}}generateMetadataParams(e,t,r){let i,n,s,o="tkey";const a={data:e,timestamp:new(T())(~~(this.serverTimeOffset+Date.now()/1e3)).toString(16)};e===qe&&(o="noncev2",a.data="");const c=(0,ze.So)(Zr.from(et()(a),"utf8"));if(r){const e=Ne(r).sign(c);i=Zr.from(e.r.toString(16,64)+e.s.toString(16,64)+new(T())(0).toString(16,2),"hex").toString("base64");const t=Le(r);n=t.x.toString("hex"),s=t.y.toString("hex")}else{const e=t.retrievePubKeyPoint();i=t.sign(new(T())(c)),n=e.getX().toString("hex"),s=e.getY().toString("hex")}return{pub_key_X:n,pub_key_Y:s,set_data:a,signature:i,namespace:o}}async acquireWriteLock(e){const{serviceProvider:t,privKey:r}=e,i={timestamp:Math.floor(this.serverTimeOffset+Date.now()/1e3)};let n;n=r?ei(i,r):t.sign(new(T())((0,ze.So)(Zr.from(et()(i),"utf8"))));const s={key:Ne(r).getPublic("hex"),data:i,signature:n};return Lt(`${this.hostUrl}/acquireLock`,s)}async releaseWriteLock(e){const{serviceProvider:t,privKey:r,id:i}=e,n={timestamp:Math.floor(this.serverTimeOffset+Date.now()/1e3)};let s;s=r?ei(n,r):t.sign(new(T())((0,ze.So)(Zr.from(et()(n),"utf8"))));const o={key:Ne(r).getPublic("hex"),data:n,signature:s,id:i};return Lt(`${this.hostUrl}/releaseLock`,o)}toJSON(){return{enableLogging:this.enableLogging,hostUrl:this.hostUrl,storageLayerName:this.storageLayerName}}}var ri=ti,ii=r(8287).hp;class ni{constructor({enableLogging:e=!1,postboxKey:t}){_(this,"enableLogging",void 0),_(this,"postboxKey",void 0),_(this,"serviceProviderName",void 0),_(this,"migratableKey",null),this.enableLogging=e,this.postboxKey=new(T())(t,"hex"),this.serviceProviderName="ServiceProviderBase"}static fromJSON(e){const{enableLogging:t,postboxKey:r,serviceProviderName:i}=e;if("ServiceProviderBase"===i)return new ni({enableLogging:t,postboxKey:r})}async encrypt(e){return fe(this.retrievePubKey("ecc"),e)}async decrypt(e){return le(Ke(this.postboxKey),e)}retrievePubKeyPoint(){return Ne(this.postboxKey).getPublic()}retrievePubKey(e){if("ecc"===e)return Ce(this.postboxKey);throw new Error("Unsupported pub key type")}sign(e){const t=new(T())(e,"hex"),r=Ne(this.postboxKey).sign(t.toString("hex"));return ii.from(r.r.toString(16,64)+r.s.toString(16,64)+new(T())(0).toString(16,2),"hex").toString("base64")}toJSON(){return{enableLogging:this.enableLogging,postboxKey:this.postboxKey.toString("hex"),serviceProviderName:this.serviceProviderName}}}var si=ni;function oi(e,t){if(null==e)return{};var r,i,n=function(e,t){if(null==e)return{};var r={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.includes(i))continue;r[i]=e[i]}return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i{const r=ai[e];if(!r||0===r.length)throw new Error(`Unsupported network: ${e}`);const i=s[t];return r.map((e=>i&&i.networkIdentifier?`${e}/sss/${i.networkIdentifier}/jrpc`:`${e}/sss/jrpc`))},hi=(e,t)=>{const r=ai[e];if(!r||0===r.length)throw new Error(`Unsupported network: ${e}`);const i=s[t];return r.map((e=>i&&i.networkIdentifier?`${e}/rss/${i.networkIdentifier}`:`${e}/rss`))},di=(e,t,r=c.SECP256K1)=>{const i=ai[e];if(!i||0===i.length)throw new Error(`Unsupported network: ${e}`);const n=r===c.ED25519?"tss-frost":"tss",o=s[t];return i.map((e=>o&&o.networkIdentifier?`${e}/${n}/${o.networkIdentifier}`:`${e}/${n}`))},ui={[t.SAPPHIRE_MAINNET]:[{X:"e0925898fee0e9e941fdca7ee88deec99939ae9407e923535c4d4a3a3ff8b052",Y:"54b9fea924e3f3e40791f9987f4234ae4222412d65b74068032fa5d8b63375c1"},{X:"9124cf1e280aab32ba50dffd2de81cecabc13d82d2c1fe9de82f3b3523f9b637",Y:"fca939a1ceb42ce745c55b21ef094f543b457630cb63a94ef4f1afeee2b1f107"},{X:"555f681a63d469cc6c3a58a97e29ebd277425f0e6159708e7c7bf05f18f89476",Y:"606f2bcc0884fa5b64366fc3e8362e4939841b56acd60d5f4553cf36b891ac4e"},{X:"2b5f58d8e340f1ab922e89b3a69a68930edfe51364644a456335e179bc130128",Y:"4b4daa05939426e3cbe7d08f0e773d2bf36f64c00d04620ee6df2a7af4d2247"},{X:"3ecbb6a68afe72cf34ec6c0a12b5cb78a0d2e83ba402983b6adbc5f36219861a",Y:"dc1031c5cc8f0472bd521a62a64ebca9e163902c247bf05937daf4ae835091e4"}],[t.SAPPHIRE_DEVNET]:[{X:"f74389b0a4c8d10d2a687ae575f69b20f412d41ab7f1fe6b358aa14871327247",Y:"54e3a73098ed9bced3ef8821736e9794f9264a1420c0c7ad15d2fa617ba35ef7"},{X:"bc38813a6873e526087918507c78fc3a61624670ee851ecfb4f3bef55d027b5a",Y:"ac4b21229f662a0aefdfdac21cf17c3261a392c74a8790db218b34e3e4c1d56a"},{X:"b56541684ea5fa40c8337b7688d502f0e9e092098962ad344c34e94f06d293fb",Y:"759a998cef79d389082f9a75061a29190eec0cac99b8c25ddcf6b58569dad55c"},{X:"7bcb058d4c6ffc6ba4bfdfd93d141af35a66338a62c7c27cdad2ae3f8289b767",Y:"336ab1935e41ed4719e162587f0ab55518db4207a1eb36cc72303f1b86689d2b"},{X:"bf12a136ef94399ea098f926f04e26a4ec4ac70f69cce274e8893704c4951773",Y:"bdd44828020f52ce510e026338216ada184a6867eb4e19fb4c2d495d4a7e15e4"}]},fi=(e,t,r)=>({currentEpoch:"1",torusNodeEndpoints:ci(e,t),torusNodeSSSEndpoints:ci(e,t),torusNodeRSSEndpoints:hi(e,t),torusNodeTSSEndpoints:di(e,t,r),torusIndexes:[1,2,3,4,5],torusNodePub:ui[e]});function li(r,i){if(Object.values(t).includes(r))return fi(r,void 0,i);if(Object.values(e).includes(r)){const e=s[r];if(e.migrationCompleted)return fi(e.networkMigratedTo,r,i)}}const pi=rt().getLogger("fnd");var yi=class{constructor({network:e=t.SAPPHIRE_MAINNET,keyType:r=c.SECP256K1,fndServerEndpoint:i,enableLogging:n=!1}={}){_(this,"fndServerEndpoint","https://fnd.web3auth.io/node-details"),_(this,"_currentEpoch","1"),_(this,"_keyType",void 0),_(this,"_torusNodeEndpoints",[]),_(this,"_torusNodeRSSEndpoints",[]),_(this,"_torusNodeSSSEndpoints",[]),_(this,"_torusNodeTSSEndpoints",[]),_(this,"_torusNodePub",[]),_(this,"_torusIndexes",[]),_(this,"updated",void 0),_(this,"network",void 0),this.network=e,this._keyType=r,this.updated=!1,i&&(this.fndServerEndpoint=i),n?pi.enableAll():pi.disableAll()}get _nodeDetails(){return{currentEpoch:this._currentEpoch,torusNodeEndpoints:this._torusNodeEndpoints,torusNodeSSSEndpoints:this._torusNodeSSSEndpoints,torusNodeRSSEndpoints:this._torusNodeRSSEndpoints,torusNodeTSSEndpoints:this._torusNodeTSSEndpoints,torusNodePub:this._torusNodePub,torusIndexes:this._torusIndexes,updated:this.updated}}async getNodeDetails({verifier:e,verifierId:t}){try{if(this.updated&&!n.includes(this.network))return this._nodeDetails;try{const{nodeDetails:r}=await Ct(`${this.fndServerEndpoint}?network=${this.network}&verifier=${e}&verifierId=${t}&keyType=${this._keyType}`);return this.setNodeDetails(r),this._nodeDetails}catch(e){pi.error("Failed to fetch node details from server, using local.",e)}const r=li(this.network,this._keyType);if(!r)throw new Error("Failed to fetch node details");return this.setNodeDetails(r),this._nodeDetails}catch(e){throw pi.error("Failed to fetch node details",e),e}}async getMetadataUrl(){return Object.values(e).includes(this.network)?a[this.network]:(await this.getNodeDetails({verifier:"test-verifier",verifierId:"test-verifier-id"})).torusNodeEndpoints[0].replace("/sss/jrpc","/metadata")}setNodeDetails(e){const{currentEpoch:t,torusNodeEndpoints:r,torusNodeSSSEndpoints:i,torusNodeRSSEndpoints:n,torusNodeTSSEndpoints:s,torusNodePub:o,torusIndexes:a}=e;this._torusNodeEndpoints=r,this._torusNodeSSSEndpoints=i||[],this._torusNodeRSSEndpoints=n||[],this._torusNodeTSSEndpoints=s||[],this._torusNodePub=o,this._torusIndexes=a,this._currentEpoch=t,this.updated=!0}};const mi={logRequestTracing:!1},gi=rt().getLogger("torus.js");gi.disableAll();class bi extends Error{}class vi extends Error{constructor({errors:e,responses:t,predicate:r}){super(`Unable to resolve enough promises. \n errors: ${e.map((e=>(null==e?void 0:e.message)||e)).join(", ")}, \n predicate error: ${r},\n ${t.length} responses,\n responses: ${JSON.stringify(t)}`),_(this,"errors",void 0),_(this,"responses",void 0),_(this,"predicate",void 0),this.errors=e,this.responses=t,this.predicate=r}get message(){return`${super.message}. errors: ${this.errors.map((e=>(null==e?void 0:e.message)||e)).join(", ")} and ${this.responses.length} responses: ${JSON.stringify(this.responses)},\n predicate error: ${this.predicate}`}toString(){return this.message}}const wi=(e,t)=>new Promise(((r,i)=>{let n=0;const s={resolved:!1},o=new Array(e.length).fill(void 0),a=new Array(e.length).fill(void 0);let c;e.forEach(((h,d)=>{h.then((e=>{a[d]=e})).catch((e=>{o[d]=e})).finally((()=>{if(!s.resolved)return t(a.slice(0),s).then((e=>{s.resolved=!0,r(e)})).catch((e=>{c=e})).finally((()=>{if(n+=1,n===e.length){const e=Object.values(a.reduce(((e,t)=>{if(t){var r;const{id:n,error:s}=t;(null==s||null===(r=s.data)||void 0===r?void 0:r.length)>0&&(s.data.startsWith("Error occurred while verifying params")?e[n]=(i=s.data).charAt(0).toUpperCase()+i.slice(1):e[n]=s.data)}var i;return e}),{}));if(e.length>0){const t=e.length>1?`\n${e.map((e=>`• ${e}`)).join("\n")}`:e[0];i(new Error(t))}else{var t;i(new vi({errors:o,responses:a,predicate:(null===(t=c)||void 0===t?void 0:t.message)||c}))}}}))}))}))}));var Si=r(8287).hp;async function _i(e,t){const{legacyMetadataHost:r,serverTimeOffset:i,sessionAuthKey:n,enableOneKey:o,ecCurve:a,keyType:h,network:d,verifierParams:u,verifier:f,endpoints:l,isImportedShares:p}=e,y=1+~~(l.length/2);return wi(t,(async(e,t)=>{let r,s=[];if(1===e.length&&e[0]&&Array.isArray(e[0].result)){const t=e[0];e[0].result.forEach((e=>{s.push({id:t.id,jsonrpc:"2.0",result:e,error:t.error})}))}else s=e;const o=s.filter((e=>!(!e||"object"!=typeof e||e.error))),c=s.map((e=>{if(e&&e.result&&e.result.keys[0].public_key)return e.result.keys[0].public_key})),h=ct(c,y);if(!h)throw new Error("invalid result from nodes, threshold number of public key results are not matching");s.forEach((e=>{const t=e&&e.result&&e.result.keys[0].public_key&&e.result.keys[0];if(t&&!r&&!u.extended_verifier_id){var i;const e=t.public_key;(null===(i=t.nonce_data)||void 0===i||null===(i=i.pubNonce)||void 0===i?void 0:i.x)&&e.X===h.X&&(r=t.nonce_data)}}));const d=p?l.length:y;if(o.length>=d&&h){const e=[],s=[],c=[],d=[],l=[],p=[],b=[];for(let t=0;t0?u&&null!==(m=u[0])&&void 0!==m&&m.ephemPublicKey?s.push(zt(u[0],h[0],n).catch((e=>gi.error("session sig decryption",e)))):s.push(Promise.resolve(Si.from(h[0],"hex"))):s.push(Promise.resolve(void 0)),(null==i?void 0:i.length)>0?a&&null!==(g=a[0])&&void 0!==g&&g.ephemPublicKey?c.push(zt(a[0],i[0],n).catch((e=>gi.error("session token sig decryption",e)))):c.push(Promise.resolve(Si.from(i[0],"base64"))):c.push(Promise.resolve(void 0)),(null==l?void 0:l.length)>0){const t=r.result.keys[0];d.push(new(T())(t.node_index)),t.share_metadata&&e.push(Jt(t.share_metadata,Si.from(t.share,"base64").toString("binary"),n).catch((e=>gi.error("share decryption",e))))}else d.push(void 0),e.push(Promise.resolve(void 0))}const v=await Promise.all(e.concat(s).concat(c)),w=v.slice(0,e.length),S=v.slice(e.length,e.length+s.length),_=v.slice(e.length+s.length,v.length),x=S.filter((e=>!!e));if(!u.extended_verifier_id&&x.length!!e));if(!u.extended_verifier_id&&k.length{e&&S[t]?l.push({token:e.toString("base64"),signature:S[t].toString("hex"),node_pubx:o[t].result.node_pubx,node_puby:o[t].result.node_puby}):l.push(void 0)})),t.resolved)return;const P=w.reduce(((e,t,r)=>(t&&e.push({index:d[r],value:new(T())(t)}),e)),[]),M=at(P.length,y);let E=null;for(let e=0;et.includes(r))),i=r.map((e=>e.value)),n=r.map((e=>e.index)),s=_t(a,i,n);if(!s)continue;const o=rr(a,s),c=o.getX(),d=o.getY();if(0===c.cmp(new(T())(h.X,16))&&0===d.cmp(new(T())(h.Y,16))){E=s;break}}if(null==E)throw new Error("could not derive private key");let I=!1;p.forEach((e=>{"true"===e.isNewKey&&e.publicKey.toLowerCase()===h.X.toLowerCase()&&(I=!0)}));const A=b.map((e=>Number.parseInt(e,10)));return{privateKey:E,sessionTokenData:l,thresholdNonceData:r,nodeIndexes:d,thresholdPubKey:h,isNewKey:I,serverTimeOffsetResponse:i||ft(A)}}if(o.length{var t;const{privateKey:l,thresholdPubKey:p,sessionTokenData:y,nodeIndexes:m,thresholdNonceData:g,isNewKey:b,serverTimeOffsetResponse:v}=e;let w=g;if(!l)throw new Error("Invalid private key returned");const S=l,_=rr(a,S),x=_.getX().toString("hex",64),k=_.getY().toString("hex",64);if(!w&&!u.extended_verifier_id&&!s[d]){const e=await Xt(d,p.X,p.Y,i,S);if(!e||g)throw new Error(`invalid metadata result from nodes, nonce metadata is empty for verifier: ${f} and verifierId: ${u.verifier_id}`);w=e}let P,M,E=new(T())(null!==(t=w)&&void 0!==t&&t.nonce?w.nonce.padStart(64,"0"):"0","hex"),I="v1";if(u.extended_verifier_id)I="v2",P=a.keyFromPublic({x,y:k}).getPublic();else if(s[d])if(o)if(w=await Yt(r,a,v,x,k,S,!b),E=new(T())(w.nonce||"0",16),I=w.typeOfUser,"v2"===I)M={X:w.pubNonce.x,Y:w.pubNonce.y},P=a.keyFromPublic({x,y:k}).getPublic().add(a.keyFromPublic({x:w.pubNonce.x,y:w.pubNonce.y}).getPublic());else{I="v1",E=await Ht(r,{pub_key_X:x,pub_key_Y:k});const e=S.add(E).umod(a.n);P=a.keyFromPrivate(e.toString(16,64),"hex").getPublic()}else{I="v1",E=await Ht(r,{pub_key_X:x,pub_key_Y:k});const e=S.add(E).umod(a.n);P=a.keyFromPrivate(e.toString(16,64),"hex").getPublic()}else I="v2",P=a.keyFromPublic({x,y:k}).getPublic().add(a.keyFromPublic({x:w.pubNonce.x,y:w.pubNonce.y}).getPublic()),M={X:w.pubNonce.x,Y:w.pubNonce.y};if(!P)throw new Error("Invalid public key, this might be a bug, please report this to web3auth team");let A="",O=!1;const N=function(e,t){return er(e,ot(e).keyFromPrivate(t.toString("hex",64),"hex"))}(h,S),K=tr(h,P.getX(),P.getY());let C="";if("v1"===I?O=null:"v2"===I&&(O=E.eq(new(T())("0"))),("v1"===I||"v2"===I&&E.gt(new(T())(0)))&&(C=S.add(E).umod(a.n).toString("hex",64)),h===c.SECP256K1)A=C;else{if(h!==c.ED25519)throw new Error(`Invalid keyType: ${h}`);if(C&&!w.seed)throw new Error("Invalid data, seed data is missing for ed25519 key, Please report this bug");C&&w.seed&&(A=(await Wt(w.seed,new(T())(C,"hex"))).toString("hex"))}let L=S,R=x,B=k;if(h===c.ED25519){const{scalar:e,point:t}=$t(l);if(L=e,R=t.getX().toString(16,64),B=t.getY().toString(16,64),p.SignerX.padStart(64,"0")!==R||p.SignerY.padStart(64,"0")!==B)throw new Error("Invalid postbox key")}return{finalKeyData:{walletAddress:K,X:P.getX().toString(16,64),Y:P.getY().toString(16,64),privKey:A},oAuthKeyData:{walletAddress:N,X:x,Y:k,privKey:S.toString("hex",64)},postboxKeyData:{privKey:L.toString("hex",64),X:R,Y:B},sessionData:{sessionTokenData:y,sessionAuthKey:n.toString("hex").padStart(64,"0")},metadata:{pubNonce:M,nonce:E,typeOfUser:I,upgraded:O,serverTimeOffset:v},nodesData:{nodeIndexes:m.map((e=>e.toNumber()))}}}))}async function xi(e){const{legacyMetadataHost:t,enableOneKey:r,ecCurve:i,keyType:n,allowHost:s,network:o,clientId:a,endpoints:h,nodePubkeys:d,indexes:u,verifier:f,verifierParams:l,idToken:p,overrideExistingKey:y,newImportedShares:m,extraParams:g,useDkg:b=!0,serverTimeOffset:v,checkCommitment:w=!0}=e;await Ct(s,{headers:{verifier:f,verifierid:l.verifier_id,network:o,clientid:a,enablegating:"true"}},{useAPIKey:!0});const S=(0,ae.F_)(),_=(0,ae.qb)(S).toString("hex"),x=_.slice(2,66),k=_.slice(66);let P=[];const M=1+~~(h.length/2);if((null==m?void 0:m.length)>0){if(m.length!==h.length)throw new Error("Invalid imported shares length");P=m}else if(!b){const e=n===c.SECP256K1?st(i,Si):await nr(32),t=await ir(i,n,v,u,d,Si.from(e));P=[...P,...t]}let E,I=[];const A=[];if(w){I=await(async e=>{const{idToken:t,endpoints:r,indexes:i,keyType:n,verifier:s,verifierParams:o,pubKeyX:a,pubKeyY:c,finalImportedShares:h,overrideExistingKey:d}=e,u=nt(Si.from(t,"utf8")),f=1+~~(3*r.length/4),l=1+~~(r.length/2),p=[];for(let e=0;eLt(r[e],Ft("CommitmentRequest",{messageprefix:"mug00",keytype:n,tokencommitment:u.slice(2),temppubx:a,temppuby:c,verifieridentifier:s,verifier_id:o.verifier_id,extended_verifier_id:o.extended_verifier_id,is_import_key_flow:h.length>0}),{},{logTracingHeader:mi.logRequestTracing})),4);p.push(t)}return new Promise(((e,t)=>{wi(p,(e=>{const t=e.filter((e=>!(!e||"object"!=typeof e||e.error)));if(h.length>0){if(d&&t.length===r.length){if(t.find((e=>!!e)))return Promise.resolve(e)}else if(!d&&t.length>=f){const n=[];for(let e=0;ee&&e.pub_key_x)),l),c=ut(r,s,o.verifier_id),h=i[c].toString(10);if((a||!a&&t.length===r.length)&&t.find((e=>{var t;return!(!e||(null===(t=e.result)||void 0===t?void 0:t.nodeindex)!==h)})))return Promise.resolve(e)}}else if(t.length>=f&&t.find((e=>!!e)))return Promise.resolve(e);return Promise.reject(new Error(`invalid commitment results ${JSON.stringify(e)}`))})).then((t=>e(t))).catch(t)}))})({idToken:p,endpoints:h,indexes:u,keyType:n,verifier:f,verifierParams:l,pubKeyX:x,pubKeyY:k,finalImportedShares:P,overrideExistingKey:y});for(let e=0;ee&&e.pub_key_x)),M)}else if(!w&&P.length>0&&!y){var T,O;const e=await(async e=>{const{endpoints:t,verifier:r,verifierId:i,keyType:n}=e,s=1+~~(t.length/2),o=t.map((e=>Lt(e,Ft("VerifierLookupRequest",{verifier:r,verifier_id:i.toString(),key_type:n,client_time:Math.floor(Date.now()/1e3).toString()}),{},{logTracingHeader:mi.logRequestTracing}).catch((e=>gi.error(`${Dt} request failed`,e)))));return await wi(o,(async e=>{const t=e.filter((e=>!(!e||e.error)&&e)),n=ct(e.map((e=>e&&e.error)),s),o=ct(t.map((e=>e&&(e=>{const t={keys:[]};if(e&&e.keys&&e.keys.length>0){const r=e.keys[0];t.keys=[{pub_key_X:r.pub_key_X,pub_key_Y:r.pub_key_Y,address:r.address}]}return t})(e.result))),s);if(o||n){const e=o?ft([]):0;return Promise.resolve({keyResult:o,serverTimeOffset:e,errorResult:n})}return Promise.reject(new Error(`invalid lookup result: ${JSON.stringify(e)}\n )} for verifier: ${r}, verifierId: ${i}`))}))})({endpoints:h,verifier:f,verifierId:l.verifier_id,keyType:n});if(e.errorResult&&(null===(T=e.errorResult)||void 0===T||null===(T=T.data)||void 0===T||!T.includes("Verifier + VerifierID has not yet been assigned")))throw new Error(`node results do not match at first lookup ${JSON.stringify(e.keyResult||{})}, ${JSON.stringify(e.errorResult||{})}`);(null===(O=e.keyResult)||void 0===O||null===(O=O.keys)||void 0===O?void 0:O.length)>0&&(E=!!e.keyResult.keys[0])}const N=[],K=y||!b&&!E;if(K){const e=ut(h,f,l.verifier_id),t=[];for(let e=0;egi.error("share req",e)));N.push(r)}else for(let e=0;e{const{endpoints:t,network:r,verifier:i,verifierId:n,extendedVerifierId:o,keyType:a}=e,c=1+~~(t.length/2),h=t.map((e=>Lt(e,Ft(Dt,{distributed_metadata:!0,verifier:i,verifier_id:n.toString(),extended_verifier_id:o,one_key_flow:!0,key_type:a,fetch_node_index:!0,client_time:Math.floor(Date.now()/1e3).toString()}),{},{logTracingHeader:mi.logRequestTracing}).catch((e=>gi.error(`${Dt} request failed`,e)))));let d;const u=[];return await wi(h,(async e=>{const t=e.filter((e=>!(!e||e.error)&&e)),a=ct(e.map((e=>e&&e.error)),c),h=ct(t.map((e=>e&&(e=>{const t={keys:[],is_new_key:e.is_new_key};if(e&&e.keys&&e.keys.length>0){const r=e.keys[0];t.keys=[{pub_key_X:r.pub_key_X,pub_key_Y:r.pub_key_Y,address:r.address}]}return t})(e.result))),c);if(h&&!d&&!o&&!s[r]){for(let t=0;t{if(e&&e.result){if(e.result.keys[0].pub_key_X.toLowerCase()===h.keys[0].pub_key_X.toLowerCase()){const t=Number.parseInt(e.result.node_index);t&&u.push(t)}const t=e.result.server_time_offset?Number.parseInt(e.result.server_time_offset,10):0;l.push(t)}}));const t=h?ft(l):0;return Promise.resolve({keyResult:h,serverTimeOffset:t,nodeIndexes:u,errorResult:a,nonceResult:d})}return Promise.reject(new Error(`invalid public key result: ${JSON.stringify(e)} and nonce result:${JSON.stringify(d||{})} for verifier: ${i}, verifierId: ${n} and extendedVerifierId: ${o} `))}))})({endpoints:e,network:this.network,verifier:t,verifierId:r,keyType:this.keyType,extendedVerifierId:i}),{errorResult:a,keyResult:c,nodeIndexes:h=[],serverTimeOffset:d}=o,u=this.serverTimeOffset||d,{nonceResult:f}=o;if(a&&JSON.stringify(a).toLowerCase().includes("verifier not supported"))throw new Error("Verifier not supported. Check if you: \n\n 1. Are on the right network (Torus testnet/mainnet) \n\n 2. Have setup a verifier on dashboard.web3auth.io?");if(a)throw new Error(`node results do not match at first lookup ${JSON.stringify(c||{})}, ${JSON.stringify(a||{})}`);if(null==c||!c.keys)throw new Error(`node results do not match at final lookup ${JSON.stringify(c||{})}, ${JSON.stringify(a||{})}`);if(!f&&!i&&!s[this.network])throw new bi("metadata nonce is missing in share response");const{pub_key_X:l,pub_key_Y:p}=c.keys[0];let y;const m=new(T())((null==f?void 0:f.nonce)||"0",16);let g,b;if(i)b=this.ec.keyFromPublic({x:l,y:p}).getPublic(),g=b;else{if(s[this.network])return this.formatLegacyPublicKeyData({isNewKey:c.is_new_key,enableOneKey:n,finalKeyResult:{keys:c.keys},serverTimeOffset:u});{const e=f;g=this.ec.keyFromPublic({x:l,y:p}).getPublic(),b=this.ec.keyFromPublic({x:l,y:p}).getPublic().add(this.ec.keyFromPublic({x:e.pubNonce.x,y:e.pubNonce.y}).getPublic()),y={X:e.pubNonce.x,Y:e.pubNonce.y}}}if(!g)throw new Error("Unable to derive oAuthPubKey");const v=g.getX().toString(16,64),w=g.getY().toString(16,64),S=tr(this.keyType,g.getX(),g.getY());if(!b)throw new Error("Unable to derive finalPubKey");const _=b?b.getX().toString(16,64):"",x=b?b.getY().toString(16,64):"";return{oAuthKeyData:{walletAddress:S,X:v,Y:w},finalKeyData:{walletAddress:b?tr(this.keyType,b.getX(),b.getY()):"",X:_,Y:x},metadata:{pubNonce:y,nonce:m,upgraded:(null==f?void 0:f.upgraded)||!1,typeOfUser:"v2",serverTimeOffset:u},nodesData:{nodeIndexes:h}}}async formatLegacyPublicKeyData(e){var t;const{finalKeyResult:r,enableOneKey:i,isNewKey:n,serverTimeOffset:s}=e,{pub_key_X:o,pub_key_Y:a}=r.keys[0];let c,h,d,u,f;const l=this.ec.keyFromPublic({x:o,y:a}).getPublic(),p=this.serverTimeOffset||s;if(i){try{c=await Yt(this.legacyMetadataHost,this.ec,p,o,a,void 0,!n),h=new(T())(c.nonce||"0",16),u=c.typeOfUser}catch{throw new bi}if("v1"===c.typeOfUser)h=await Ht(this.legacyMetadataHost,{pub_key_X:o,pub_key_Y:a}),d=this.ec.keyFromPublic({x:o,y:a}).getPublic().add(this.ec.keyFromPrivate(h.toString(16,64),"hex").getPublic());else{if("v2"!==c.typeOfUser)throw new Error("getOrSetNonce should always return typeOfUser.");d=this.ec.keyFromPublic({x:o,y:a}).getPublic().add(this.ec.keyFromPublic({x:c.pubNonce.x,y:c.pubNonce.y}).getPublic()),f={X:c.pubNonce.x,Y:c.pubNonce.y}}}else u="v1",h=await Ht(this.legacyMetadataHost,{pub_key_X:o,pub_key_Y:a}),d=this.ec.keyFromPublic({x:o,y:a}).getPublic().add(this.ec.keyFromPrivate(h.toString(16,64),"hex").getPublic());if(!l)throw new Error("Unable to derive oAuthPubKey");const y=l.getX().toString(16,64),m=l.getY().toString(16,64),g=tr(this.keyType,l.getX(),l.getY());if("v2"===u&&!d)throw new Error("Unable to derive finalPubKey");const b=d?d.getX().toString(16,64):"",v=d?d.getY().toString(16,64):"";return{oAuthKeyData:{walletAddress:g,X:y,Y:m},finalKeyData:{walletAddress:d?tr(this.keyType,d.getX(),d.getY()):"",X:b,Y:v},metadata:{pubNonce:f,nonce:h,upgraded:(null===(t=c)||void 0===t?void 0:t.upgraded)||!1,typeOfUser:u,serverTimeOffset:p},nodesData:{nodeIndexes:[]}}}}_(Pi,"sessionTime",86400);const Mi="facebook",Ei="apple",Ii="github",Ai="linkedin",Ti="twitter",Oi="weibo",Ni="line",Ki="email_password",Ci="passwordless",Li="email_passwordless",Ri="sms_passwordless",Bi="single_id_verifier",Fi="popup",Di="redirect",Ui="localStorage",ji="server",qi="triggerLogin",$i="triggerAggregateLogin";var zi=r(6880),Ji=r.n(zi),Hi=rt().getLogger("customauth");const Vi={[Ei]:"apple",[Ii]:"github",[Ai]:"linkedin",[Ti]:"twitter",[Oi]:"weibo",[Ni]:"line",[Ki]:"Username-Password-Authentication",[Ci]:"email",[Li]:"email",[Ri]:"sms"},Yi=e=>e.href.endsWith("/")?e.href:`${e.href}/`,Wi={webWorkerSupport:!1};function Xi(e,t){return t?e:e.toLowerCase()}const Gi=(e,t,r,i=!0)=>{const{name:n,sub:s}=e;if(r)return Xi(e[r],i);switch(t){case Ci:case Ki:case Li:case Ri:return Xi(n,i);case Oi:case Ii:case Ti:case Ei:case Ai:case Ni:case"jwt":return Xi(s,i);default:throw new Error("Invalid login type to get verifier id")}},Qi=(e,t)=>{const r=e.split("&").reduce(((e,t)=>{const[r,i]=t.split("=");return e[r]=i,e}),{});Hi.info(r,t);let i={},n="";return Object.keys(r).length>0&&r.state?(i=JSON.parse(Qr().decode(decodeURIComponent(decodeURIComponent(r.state))))||{},n=r.error_description||r.error||n):Object.keys(t).length>0&&t.state&&(i=JSON.parse(Qr().decode(decodeURIComponent(decodeURIComponent(t.state))))||{},t.error&&(n=t.error)),{error:n,instanceParameters:i,hashParameters:r}};function Zi(e){const{baseURL:t,query:r,hash:i}=e,n=new URL(t);if(r&&Object.keys(r).forEach((e=>{n.searchParams.append(e,r[e])})),i){const e=new URL(Zi({baseURL:t,query:i})).searchParams.toString();n.hash=e}return n.toString()}const en=e=>{try{return new URL(decodeURIComponent(e))}catch(t){throw new Error(`${(null==t?void 0:t.message)||""}, Note: Your jwt domain: (i.e ${e}) must have http:// or https:// prefix`)}};function tn(e){const[t,r]=e.split(".");return{header:JSON.parse(Qr().decode(t)),payload:JSON.parse(Qr().decode(r))}}var rn=r(7007);class nn extends rn.EventEmitter{constructor({url:e,target:t,features:r,timeout:i=3e4}){super(),_(this,"url",void 0),_(this,"target",void 0),_(this,"features",void 0),_(this,"window",void 0),_(this,"windowTimer",void 0),_(this,"iClosedWindow",void 0),_(this,"timeout",void 0),this.url=e,this.target=t||"_blank",this.features=r||function(){const e=void 0!==window.screenLeft?window.screenLeft:window.screenX,t=void 0!==window.screenTop?window.screenTop:window.screenY,r=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:window.screen.width,i=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:window.screen.height,n=Math.abs((r-1200)/2/1+e);return`titlebar=0,toolbar=0,status=0,location=0,menubar=0,height=700,width=1200,top=${Math.abs((i-700)/2/1+t)},left=${n}`}(),this.window=void 0,this.windowTimer=void 0,this.iClosedWindow=!1,this.timeout=i,this._setupTimer()}_setupTimer(){this.windowTimer=Number(setInterval((()=>{this.window&&this.window.closed&&(clearInterval(this.windowTimer),setTimeout((()=>{this.iClosedWindow||this.emit("close"),this.iClosedWindow=!1,this.window=void 0}),this.timeout)),void 0===this.window&&clearInterval(this.windowTimer)}),500))}open(){var e;if(this.window=window.open(this.url.href,this.target,this.features),!this.window)throw new Error("popup window is blocked");return null!==(e=this.window)&&void 0!==e&&e.focus&&this.window.focus(),Promise.resolve()}close(){this.iClosedWindow=!0,this.window&&this.window.close()}redirect(e){e?window.location.replace(this.url.href):window.location.href=this.url.href}}const sn=["access_token","id_token"];class on{constructor(e){_(this,"nonce",Math.random().toString(36).slice(2)),_(this,"finalURL",void 0),_(this,"params",void 0),this.params=e}get state(){return encodeURIComponent(Qr().encode(JSON.stringify(se(se({},this.params.customState||{}),{},{instanceId:this.nonce,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin,redirectToOpener:this.params.redirectToOpener||!1}))))}async handleLoginWindow(e){const t=new nn({url:this.finalURL,features:e.popupFeatures,timeout:(i=this.params.typeOfLogin,i!==Mi&&i!==Ni||!function(){const e=Ji().getParser(navigator.userAgent).getPlatform();return e.type===Ji().PLATFORMS_MAP.tablet||e.type===Ji().PLATFORMS_MAP.mobile}()?1e4:6e4)});var i;if(this.params.uxMode!==Di){const{BroadcastChannel:e}=await Promise.resolve().then(r.bind(r,1352));return new Promise(((r,i)=>{let n;const s=async e=>{try{const{error:t,data:s}=e,o=s||{},{instanceParams:a,hashParams:{access_token:c,id_token:h}}=o,d=oi(o.hashParams,sn);if(t)return Hi.error(e),void i(new Error(`Error: ${t}. Info: ${JSON.stringify(e.data||{})}`));e.data&&a.verifier===this.params.verifier&&(Hi.info(e.data),!this.params.redirectToOpener&&n&&await n.postMessage({success:!0}),r(se(se({accessToken:c,idToken:h||""},d),{},{state:a})))}catch(e){Hi.error(e),i(e)}};if(this.params.redirectToOpener){const e=async r=>{if(!r.data)return;const i=r.data;i.channel===`redirect_channel_${this.nonce}`&&(window.removeEventListener("message",e),s(i),t.close())};window.addEventListener("message",e)}else n=new e(`redirect_channel_${this.nonce}`,Wi),n.addEventListener("message",(async e=>{await s(e),n.close(),t.close()}));try{t.open()}catch(e){return Hi.error(e),void i(e)}t.once("close",(()=>{n&&n.close(),i(new Error("user closed popup"))}))}))}return t.redirect(e.locationReplaceOnRedirect),null}}class an extends on{constructor(e){super(e),_(this,"RESPONSE_TYPE","token"),_(this,"SCOPE","identify email"),this.setFinalUrl()}setFinalUrl(){const e=new URL("https://discord.com/api/oauth2/authorize"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),r=Pt()({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE},t);Object.keys(r).forEach((t=>{const i=t;r[i]&&e.searchParams.append(i,r[i])})),this.finalURL=e}async getUserInfo(e){const{accessToken:t}=e,r=await Ct("https://discord.com/api/users/@me",{headers:{Authorization:`Bearer ${t}`}}),{id:i,avatar:n,email:s="",username:o="",discriminator:a=""}=r;return{profileImage:null===n?`https://cdn.discordapp.com/embed/avatars/${Number(a)%5}.png`:`https://cdn.discordapp.com/avatars/${i}/${n}.png?size=2048`,name:`${o}#${a}`,email:s,verifierId:i,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}class cn extends on{constructor(e){super(e),_(this,"RESPONSE_TYPE","token"),_(this,"SCOPE","public_profile email"),this.setFinalUrl()}setFinalUrl(){const e=new URL("https://www.facebook.com/v20.0/dialog/oauth"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),r=Pt()({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE},t);Object.keys(r).forEach((t=>{const i=t;r[i]&&e.searchParams.append(i,r[i])})),this.finalURL=e}async getUserInfo(e){const{accessToken:t}=e,r=await Ct("https://graph.facebook.com/me?fields=name,email,picture.type(large)",{headers:{Authorization:`Bearer ${t}`}}),{name:i="",id:n,picture:s,email:o=""}=r;return{email:o,name:i,profileImage:s.data.url||"",verifier:this.params.verifier,verifierId:n,typeOfLogin:this.params.typeOfLogin}}}class hn extends on{constructor(e){super(e),_(this,"RESPONSE_TYPE","token id_token"),_(this,"SCOPE","profile email openid"),_(this,"PROMPT","select_account"),this.setFinalUrl()}setFinalUrl(){const e=new URL("https://accounts.google.com/o/oauth2/v2/auth"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),r=Pt()({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,prompt:this.PROMPT,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,nonce:this.nonce},t);Object.keys(r).forEach((t=>{const i=t;r[i]&&e.searchParams.append(i,r[i])})),this.finalURL=e}async getUserInfo(e){const{accessToken:t}=e,r=await Ct("https://www.googleapis.com/userinfo/v2/me",{headers:{Authorization:`Bearer ${t}`}}),{picture:i="",email:n="",name:s=""}=r;return{email:n,name:s,profileImage:i,verifier:this.params.verifier,verifierId:n.toLowerCase(),typeOfLogin:this.params.typeOfLogin}}}class dn extends on{constructor(e){super(e),_(this,"SCOPE","openid profile email"),_(this,"RESPONSE_TYPE","token id_token"),_(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:e}=this.params.jwtParams,t=en(e);t.pathname+=t.pathname.endsWith("/")?"authorize":"/authorize";const r=JSON.parse(JSON.stringify(this.params.jwtParams));delete r.domain;const i=Pt()({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,prompt:this.PROMPT,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,connection:Vi[this.params.typeOfLogin],nonce:this.nonce},r);Object.keys(i).forEach((e=>{const r=e;i[r]&&t.searchParams.append(r,i[r])})),this.finalURL=t}async getUserInfo(e){const{idToken:t,accessToken:r}=e,{domain:i,verifierIdField:n,isVerifierIdCaseSensitive:s,user_info_route:o="userinfo"}=this.params.jwtParams;if(r)try{const e=new URL(i),t=await Ct(`${Yi(e)}${o}`,{headers:{Authorization:`Bearer ${r}`}}),{picture:a,name:c,email:h}=t;return{email:h,name:c,profileImage:a,verifierId:Gi(t,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(e){rt().warn(e,"Unable to get userinfo from endpoint")}if(t){const e=tn(t).payload,{name:r,email:i,picture:o}=e;return{profileImage:o,name:r,email:i,verifierId:Gi(e,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}throw new Error("Access/id token not available")}}class un extends on{constructor(e){super(e),this.setFinalUrl()}setFinalUrl(){const e=JSON.parse(JSON.stringify(this.params.jwtParams));delete e.domain;const t=Pt()({state:this.state,client_id:this.params.clientId,nonce:this.nonce},e);this.finalURL=new URL(Zi({baseURL:this.params.redirect_uri,query:null,hash:t}))}async getUserInfo(e){const{idToken:t,accessToken:r}=e,{domain:i,verifierIdField:n,isVerifierIdCaseSensitive:s,user_info_route:o="userinfo"}=this.params.jwtParams;if(r)try{const e=new URL(i),t=await Ct(`${Yi(e)}${o}`,{headers:{Authorization:`Bearer ${r}`}}),{picture:a,name:c,email:h}=t;return{email:h,name:c,profileImage:a,verifierId:Gi(t,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(e){rt().warn(e,"Unable to get userinfo from endpoint")}if(t){const e=tn(t).payload,{name:r,email:i,picture:o}=e;return{profileImage:o,name:r,email:i,verifierId:Gi(e,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}throw new Error("Access/id token not available")}handleLoginWindow(e){const{id_token:t,access_token:r}=this.params.jwtParams,i=new nn({url:this.finalURL,features:e.popupFeatures});return this.params.uxMode!==Di?Promise.resolve({state:{},idToken:t,accessToken:r}):(i.redirect(e.locationReplaceOnRedirect),null)}}var fn=r(8303),ln=r(3077);class pn{constructor(){_(this,"sessionId",void 0)}checkSessionParams(){if(!this.sessionId)throw new Error("Session id is required");this.sessionId=this.sessionId.padStart(64,"0")}request({method:e="GET",url:t,data:r={},headers:i={}}){const n={headers:i};switch(e){case"GET":return Ct(t,n);case"POST":return Lt(t,r,n);case"PUT":return Bt(t,r,n);case"PATCH":return Rt(t,r,n)}throw new Error("Invalid method type")}}var yn=r(8287).hp;class mn extends pn{constructor({sessionServerBaseUrl:e,sessionNamespace:t,sessionTime:r,sessionId:i,allowedOrigin:n}={}){super(),_(this,"sessionServerBaseUrl","https://session.web3auth.io"),_(this,"sessionNamespace",void 0),_(this,"allowedOrigin",void 0),_(this,"sessionTime",86400),_(this,"sessionId",""),e&&(this.sessionServerBaseUrl=e),t&&(this.sessionNamespace=t),r&&(this.sessionTime=r),i&&(this.sessionId=i.padStart(64,"0")),n&&(this.allowedOrigin=n||"*")}static generateRandomSessionKey(){return(0,ae.F_)().toString("hex").padStart(64,"0")}async createSession(e,t={}){super.checkSessionParams();const r=yn.from(this.sessionId,"hex"),i=(0,ae.qb)(r).toString("hex"),n=await(0,fn.yv)(this.sessionId,e),s={key:i,data:n,signature:(await(0,ae._S)(r,(0,ln.S)(yn.from(n,"utf8")))).toString("hex"),namespace:this.sessionNamespace,timeout:this.sessionTime,allowedOrigin:this.allowedOrigin};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:s,headers:t}),this.sessionId}async authorizeSession({headers:e}={headers:{}}){super.checkSessionParams();const t={key:(0,ae.qb)(yn.from(this.sessionId,"hex")).toString("hex"),namespace:this.sessionNamespace},r=await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/get`,data:t,headers:e});if(!r.message)throw new Error("Session Expired or Invalid public key");const i=await(0,fn.af)(this.sessionId,r.message);if(i.error)throw new Error("There was an error decrypting data.");return i}async updateSession(e,t={}){super.checkSessionParams();const r=yn.from(this.sessionId,"hex"),i=(0,ae.qb)(r).toString("hex"),n=await(0,fn.yv)(this.sessionId,e),s={key:i,data:n,signature:(await(0,ae._S)(r,(0,ln.S)(yn.from(n,"utf8")))).toString("hex"),namespace:this.sessionNamespace,allowedOrigin:this.allowedOrigin};await super.request({method:"PUT",url:`${this.sessionServerBaseUrl}/v2/store/update`,data:s,headers:t})}async invalidateSession(e={}){super.checkSessionParams();const t=yn.from(this.sessionId,"hex"),r=(0,ae.qb)(t).toString("hex"),i=await(0,fn.yv)(this.sessionId,{}),n={key:r,data:i,signature:(await(0,ae._S)(t,(0,ln.S)(yn.from(i,"utf8")))).toString("hex"),namespace:this.sessionNamespace,timeout:1};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:n,headers:e}),this.sessionId="",!0}}class gn extends on{constructor(e){super(e),this.setFinalUrl()}setFinalUrl(){const{passkeysHostUrl:e}=this.params.customState||{};if(!e)throw new Error("Invalid passkeys url.");const t=new URL(e),r=JSON.parse(JSON.stringify(this.params.jwtParams||{})),i=Pt()({state:this.state,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri},r);Object.keys(i).forEach((e=>{const r=e;i[r]&&t.searchParams.append(r,i[r])})),this.finalURL=t}async getUserInfo(e,t){const{idToken:r,extraParams:i}=e,{sessionId:n}=JSON.parse(Qr().decode(i))||{};if(!n)throw new Error("sessionId not found");const{verifier_id:s,signature:o,clientDataJSON:a,authenticatorData:c,publicKey:h,challenge:d,rpOrigin:u,rpId:f,credId:l,transports:p,username:y}=await async function(e,t){try{const r=new mn({sessionId:e,sessionServerBaseUrl:t,allowedOrigin:!0});return await r.authorizeSession()}catch(e){throw rt().error("fetch data from storage server error",e),new Error("Unable to retrieve data from storage server, invalid key or key expired.")}}(n,t);if(o!==r)throw new Error("idtoken should be equal to signature");return{email:"",name:"Passkeys Login",profileImage:"",verifier:this.params.verifier,verifierId:s,typeOfLogin:this.params.typeOfLogin,extraVerifierParams:{signature:o,clientDataJSON:a,authenticatorData:c,publicKey:h,challenge:d,rpOrigin:u,rpId:f,credId:l,transports:p,username:y}}}}const bn=["access_token","id_token"];class vn extends on{constructor(e){super(e),_(this,"SCOPE","openid profile email"),_(this,"RESPONSE_TYPE","token id_token"),_(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:e}=this.params.jwtParams,t=en(e);t.pathname="/passwordless/start",this.finalURL=t}async getUserInfo(e){const{idToken:t,accessToken:r}=e,{domain:i,verifierIdField:n,isVerifierIdCaseSensitive:s}=this.params.jwtParams;try{const e=new URL(i),t=await Ct(`${Yi(e)}userinfo`,{headers:{Authorization:`Bearer ${r}`}}),{picture:o,name:a,email:c}=t;return{email:c,name:a,profileImage:o,verifierId:Gi(t,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(e){Hi.error(e);const r=tn(t).payload,{name:i,email:o,picture:a}=r;return{profileImage:a,name:i,email:o,verifierId:Gi(r,this.params.typeOfLogin,n,s),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}async handleLoginWindow(){const{BroadcastChannel:e}=await Promise.resolve().then(r.bind(r,1352));return new Promise(((t,r)=>{if(this.params.redirectToOpener)return void r(new Error("Cannot use redirect to opener for passwordless"));const i=e=>{try{const{error:i,data:n}=e,s=n||{},{instanceParams:o,hashParams:{access_token:a,id_token:c}}=s,h=oi(s.hashParams,bn);if(i)return Hi.error(e.error),void r(new Error(i));e.data&&o.verifier===this.params.verifier&&(Hi.info(e.data),t(se(se({accessToken:a,idToken:c||""},h),{},{state:o})))}catch(e){Hi.error(e),r(e)}},n=new e(`redirect_channel_${this.nonce}`,Wi);n.addEventListener("message",(async e=>{i(e),n.close()}));try{const{connection:e="email",login_hint:t}=this.params.jwtParams,i=Pt()({client_id:this.params.clientId,connection:e,email:"email"===e?t:void 0,phone_number:"sms"===e?t:void 0,send:"link",authParams:{scope:this.SCOPE,state:this.state,response_type:this.RESPONSE_TYPE,redirect_uri:this.params.redirect_uri,nonce:this.nonce,prompt:this.PROMPT}},{authParams:this.params.jwtParams});Lt(this.finalURL.href,JSON.parse(JSON.stringify(i))).then((e=>{Hi.info("posted",e)})).catch((e=>{Hi.error(e),r(e)}))}catch(e){Hi.error(e),r(e)}}))}}class wn extends on{constructor(e){super(e),_(this,"RESPONSE_TYPE","token"),_(this,"SCOPE","user:read:email"),this.setFinalUrl()}setFinalUrl(){const e=new URL("https://id.twitch.tv/oauth2/authorize"),t=JSON.parse(JSON.stringify(this.params.jwtParams||{})),r=Pt()({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,force_verify:"true"},t);Object.keys(r).forEach((t=>{const i=t;r[i]&&e.searchParams.append(i,r[i])})),this.finalURL=e}async getUserInfo(e){const{accessToken:t}=e,r=await Ct("https://api.twitch.tv/helix/users",{headers:{Authorization:`Bearer ${t}`,"Client-ID":this.params.clientId}}),[{profile_image_url:i="",display_name:n="",email:s="",id:o}]=r.data||[];return{profileImage:i,name:n,email:s,verifierId:o,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}class Sn extends on{constructor(e){super(e),_(this,"SCOPE","openid profile email"),_(this,"RESPONSE_TYPE","token id_token"),_(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:e}=this.params.jwtParams||{},t=en(e||"https://passwordless.web3auth.io/v6");t.pathname+=t.pathname.endsWith("/")?"authorize":"/authorize";const r=JSON.parse(JSON.stringify(this.params.jwtParams||{}));delete r.domain,this.params.customState=se(se({},this.params.customState||{}),{},{client:this.params.web3AuthClientId});const i=Pt()({state:this.state,client_id:this.params.clientId||this.params.web3AuthClientId,redirect_uri:this.params.redirect_uri,nonce:this.nonce,network:this.params.web3AuthNetwork,connection:Vi[this.params.typeOfLogin],scope:this.SCOPE,response_type:this.RESPONSE_TYPE,prompt:this.PROMPT,flow_type:(null==r?void 0:r.flow_type)||"code"},r);Object.keys(i).forEach((e=>{const r=e;i[r]&&t.searchParams.append(r,i[r])})),this.finalURL=t}async getUserInfo(e){const{idToken:t}=e,r=tn(t).payload,{name:i,email:n,picture:s}=r;return{profileImage:s,name:i,email:n,verifierId:i.toLowerCase(),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}var _n=e=>{const{verifier:t,typeOfLogin:r,clientId:i,jwtParams:n}=e;if(!t||!r||!i)throw new Error("Invalid params. Missing verifier, typeOfLogin or clientId");const{domain:s,login_hint:o,id_token:a,access_token:c}=n||{};switch(r){case"google":return new hn(e);case Mi:return new cn(e);case"twitch":return new wn(e);case"discord":return new an(e);case Li:case Ri:if(!o)throw new Error("Invalid params. Missing login_hint for web3auth passwordless login");return new Sn(e);case Ci:if(!s||!o)throw new Error("Invalid params. Missing domain or login_hint for passwordless login");return new vn(e);case Ei:case Ii:case Ai:case Ti:case Oi:case Ni:case Ki:case"jwt":case"reddit":if(a||c)return new un(e);if(!s)throw new Error("Invalid params for jwt login. Missing domain");return new dn(e);case"passkeys":return new gn(e);default:throw new Error("Unsupported login type")}},xn=r(9090);class kn{constructor(e){_(this,"sentry",null),this.sentry=e}startSpan(e,t){return this.sentry?this.sentry.startSpan(e,t):t(null)}}var Pn=r(8287).hp;class Mn{constructor(e){_(this,"currentStorageMethod",Ui),_(this,"isInitialized",!1),_(this,"storageServerUrl","https://session.web3auth.io"),_(this,"localStorageAvailable",!0),this.storageServerUrl=e}get storageMethodUsed(){return this.currentStorageMethod}init(){const e=function(){var e;const t=Ji().parse(navigator.userAgent);Hi.info(JSON.stringify(t),"current browser info");let r=!0;return null!==(e=navigator)&&void 0!==e&&e.brave&&(r=!1),t.engine.name!==Ji().ENGINE_MAP.WebKit&&t.engine.name!==Ji().ENGINE_MAP.Gecko||(r=!1),r}(),t=function(e){let t;try{t=window[e];const r="__storage_test__";return t.setItem(r,r),t.removeItem(r),!0}catch(e){const r=e;return r&&(22===r.code||1014===r.code||"QuotaExceededError"===r.name||"NS_ERROR_DOM_QUOTA_REACHED"===r.name)&&t&&0!==t.length}}(Ui);this.localStorageAvailable=t,this.currentStorageMethod=e&&t?Ui:ji,this.isInitialized=!0}async storeLoginDetails(e,t){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");if(this.currentStorageMethod===ji){const r=(0,ln.S)(Pn.from(t,"utf8")),i=r.toString("hex"),n=(0,ae.qb)(r).toString("hex"),s=await(0,fn.yv)(i,e),o=(await(0,ae._S)(r,(0,ln.S)(Pn.from(s,"utf8")))).toString("hex");await Lt(`${this.storageServerUrl}/store/set`,{key:n,data:s,signature:o})}this.localStorageAvailable&&window.localStorage.setItem(`torus_login_${t}`,JSON.stringify(e))}async retrieveLoginDetails(e){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");if(this.localStorageAvailable){const t=window.localStorage.getItem(`torus_login_${e}`);if(t)return JSON.parse(t||"{}")}if(this.currentStorageMethod===ji){const t=(0,ln.S)(Pn.from(e,"utf8")),r=t.toString("hex"),i=(0,ae.qb)(t).toString("hex");try{const e=await Ct(`${this.storageServerUrl}/store/get?key=${i}`);if(e.message)return await(0,fn.af)(r,e.message)}catch(e){if(404!==e.status)throw e;Hi.warn(e,"Session likely expired")}}}clearLoginDetailsStorage(e){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");this.localStorageAvailable&&window.localStorage.removeItem(`torus_login_${e}`)}clearOrphanedLoginDetails(){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");this.localStorageAvailable&&Object.keys(window.localStorage).forEach((e=>{e.startsWith("torus_login_")&&window.localStorage.removeItem(e)}))}}var En=r(8287).hp;const In=["access_token","id_token"],An=["access_token","id_token"],Tn=["args","method"];var On=class{constructor({baseUrl:e,network:t,enableLogging:r=!1,redirectToOpener:i=!1,redirectPathName:n="redirect",apiKey:s="torus-default",uxMode:o=Fi,locationReplaceOnRedirect:a=!1,popupFeatures:c,storageServerUrl:h="https://session.web3auth.io",sentry:d,enableOneKey:u=!1,web3AuthClientId:f,useDkg:l,metadataUrl:p="https://metadata.tor.us",keyType:y="secp256k1",serverTimeOffset:m=0,nodeDetails:g,checkCommitment:b=!0}){if(_(this,"isInitialized",void 0),_(this,"config",void 0),_(this,"torus",void 0),_(this,"nodeDetailManager",void 0),_(this,"storageHelper",void 0),_(this,"sentryHandler",void 0),!f)throw new Error("Please provide a valid web3AuthClientId in constructor");if(!t)throw new Error("Please provide a valid network in constructor");this.isInitialized=!1;const v=new URL(e);this.config={baseUrl:Yi(v),get redirect_uri(){return`${this.baseUrl}${n}`},redirectToOpener:i,uxMode:o,locationReplaceOnRedirect:a,popupFeatures:c,useDkg:l,web3AuthClientId:f,web3AuthNetwork:t,keyType:y,nodeDetails:g,checkCommitment:b};const w=new Pi({network:t,enableOneKey:u,serverTimeOffset:m,clientId:f,legacyMetadataHost:p,keyType:y});Pi.setAPIKey(s),this.torus=w,this.nodeDetailManager=new yi({network:t}),r?Hi.enableAll():Hi.disableAll(),this.storageHelper=new Mn(h),this.sentryHandler=new kn(d)}async init({skipSw:e=!1,skipInit:t=!1,skipPrefetch:r=!1}={}){if(this.storageHelper.init(),t)this.isInitialized=!0;else{if(!e){if(!(await fetch(`${this.config.baseUrl}sw.js`,{cache:"reload"})).ok)throw new Error("Service worker is not being served. Please serve it");try{return await(i=this.config.baseUrl,new Promise(((e,t)=>{const r=`${i}sw.js`;"serviceWorker"in window.navigator?(0,xn.k)(r,{ready(){Hi.info("App is being served from cache by a service worker.\n For more details, visit https://goo.gl/AFskqB"),e(void 0)},registered(){Hi.info("Service worker has been registered."),e(void 0)},cached(){Hi.info("Content has been cached for offline use."),e(void 0)},updatefound(){Hi.info("New content is downloading.")},updated(){Hi.info("New content is available; please refresh.")},offline(){Hi.info("No internet connection found. App is running in offline mode."),t(new Error("App is offline"))},error(e){Hi.error("Error during service worker registration:",e),t(e)}}):t(new Error("Service workers are not supported"))}))),void(this.isInitialized=!0)}catch(e){Hi.warn(e)}}var i,n;if(!r)return(null===(n=window)||void 0===n||null===(n=n.navigator)||void 0===n?void 0:n.userAgent.toLowerCase().indexOf("firefox"))>-1?void(this.isInitialized=!0):void await this.handlePrefetchRedirectUri();this.isInitialized=!0}}async triggerLogin(e){const{verifier:t,typeOfLogin:r,clientId:i,jwtParams:n,hash:s,queryParameters:o,customState:a}=e;if(Hi.info("Verifier: ",t),!this.isInitialized)throw new Error("Not initialized yet");const c=_n({typeOfLogin:r,clientId:i,verifier:t,redirect_uri:this.config.redirect_uri,redirectToOpener:this.config.redirectToOpener,jwtParams:n,uxMode:this.config.uxMode,customState:a,web3AuthClientId:this.config.web3AuthClientId,web3AuthNetwork:this.config.web3AuthNetwork});let h;if(s&&o){const{error:e,hashParameters:t,instanceParameters:r}=Qi(s,o);if(e)throw new Error(e);const{access_token:i,id_token:n}=t;h=se(se({accessToken:i,idToken:n},oi(t,In)),{},{state:r})}else if(this.storageHelper.clearOrphanedLoginDetails(),this.config.uxMode===Di&&await this.storageHelper.storeLoginDetails({method:qi,args:e},c.nonce),h=await c.handleLoginWindow({locationReplaceOnRedirect:this.config.locationReplaceOnRedirect,popupFeatures:this.config.popupFeatures}),this.config.uxMode===Di)return null;const d=await c.getUserInfo(h);return se(se({},await this.getTorusKey(t,d.verifierId,{verifier_id:d.verifierId},h.idToken||h.accessToken,d.extraVerifierParams)),{},{userInfo:se(se({},d),h)})}async triggerAggregateLogin(e){const{aggregateVerifierType:t,verifierIdentifier:r,subVerifierDetailsArray:i}=e;if(!this.isInitialized)throw new Error("Not initialized yet");if(!t||!r||!Array.isArray(i))throw new Error("Invalid params. Missing aggregateVerifierType, verifierIdentifier or subVerifierDetailsArray");if(t===Bi&&1!==i.length)throw new Error("Single id verifier can only have one sub verifier");const n=[],s=[];for(const t of i){const{clientId:r,typeOfLogin:i,verifier:o,jwtParams:a,hash:c,queryParameters:h,customState:d}=t,u=_n({typeOfLogin:i,clientId:r,verifier:o,redirect_uri:this.config.redirect_uri,redirectToOpener:this.config.redirectToOpener,jwtParams:a,uxMode:this.config.uxMode,customState:d,web3AuthClientId:this.config.web3AuthClientId,web3AuthNetwork:this.config.web3AuthNetwork});let f;if(c&&h){const{error:e,hashParameters:t,instanceParameters:r}=Qi(c,h);if(e)throw new Error(e);const{access_token:i,id_token:n}=t;f=se(se({accessToken:i,idToken:n},oi(t,An)),{},{state:r})}else if(this.storageHelper.clearOrphanedLoginDetails(),this.config.uxMode===Di&&await this.storageHelper.storeLoginDetails({method:$i,args:e},u.nonce),f=await u.handleLoginWindow({locationReplaceOnRedirect:this.config.locationReplaceOnRedirect,popupFeatures:this.config.popupFeatures}),this.config.uxMode===Di)return null;n.push(u.getUserInfo(f)),s.push(f)}const o=(await Promise.all(n)).map((e=>se(se({},e),{},{aggregateVerifier:r}))),a={verify_params:[],sub_verifier_ids:[],verifier_id:""},c=[];let h="",d={};for(let e=0;ese(se({},e),s[t])))})}async getTorusKey(e,t,r,i,n){const s=await this.sentryHandler.startSpan({name:"fetchNodeDetails"},(async()=>this.config.nodeDetails?this.config.nodeDetails:this.nodeDetailManager.getNodeDetails({verifier:e,verifierId:t})));Hi.debug("torus-direct/getTorusKey",{torusNodeEndpoints:s.torusNodeEndpoints});const o=await this.sentryHandler.startSpan({name:"fetchShares"},(async()=>this.torus.retrieveShares({endpoints:s.torusNodeEndpoints,indexes:s.torusIndexes,verifier:e,verifierParams:r,idToken:i,nodePubkeys:s.torusNodePub,extraParams:se({},n),useDkg:this.config.useDkg,checkCommitment:this.config.checkCommitment})));return Hi.debug("torus-direct/getTorusKey",{retrieveShares:o}),o}async getAggregateTorusKey(e,t,r){const i={verify_params:[],sub_verifier_ids:[],verifier_id:""},n=[];let s={};for(let e=0;e{n[t]=e})),!i&&0===Object.keys(n).length)throw new Error("Found Empty hash and query parameters. This can happen if user reloads the page");const{error:s,instanceParameters:o,hashParameters:a}=Qi(i,n),{instanceId:c}=o;Hi.info(c,"instanceId");const h=await this.storageHelper.retrieveLoginDetails(c)||{},{args:d,method:u}=h,f=oi(h,Tn);if(Hi.info(d,u),s)return{error:s,state:o||{},method:u,result:{},hashParameters:a,args:d};let l;try{if(u===qi){const e=d;e.hash=i,e.queryParameters=n,l=await this.triggerLogin(e)}else if(u===$i){const e=d;e.subVerifierDetailsArray.forEach((e=>{e.hash=i,e.queryParameters=n})),l=await this.triggerAggregateLogin(e)}}catch(e){const r=await oe(e);return Hi.error(r),t&&this.storageHelper.clearLoginDetailsStorage(c),se({error:`${r.message||""}`,state:o||{},method:u,result:{},hashParameters:a,args:d},f)}if(!l)return se({error:`Init parameters not found. It might be because storage is not available. Please retry the login in a different browser. Used storage method: ${this.storageHelper.storageMethodUsed}`,state:o||{},method:u,result:{},hashParameters:a,args:d},f);if(e){const e=window.location.origin+window.location.pathname;window.history.replaceState(se(se({},window.history.state),{},{as:e,url:e}),"",e)}return t&&this.storageHelper.clearLoginDetailsStorage(c),se({method:u,result:l,state:o||{},hashParameters:a,args:d},f)}async handlePrefetchRedirectUri(){return document?new Promise(((e,t)=>{const r=document.createElement("link");r.href=this.config.redirect_uri,window.location.origin!==new URL(this.config.redirect_uri).origin&&(r.crossOrigin="anonymous"),r.type="text/html",r.rel="prefetch";const i=()=>{this.isInitialized=!0,e()};try{r.relList&&r.relList.supports&&r.relList.supports("prefetch")?(r.onload=i,r.onerror=()=>{t(new Error(`Please serve redirect.html present in serviceworker folder of this package on ${this.config.redirect_uri}`))},document.head.appendChild(r)):i()}catch(e){i()}})):Promise.resolve()}};class Nn extends si{constructor({enableLogging:e=!1,postboxKey:t,customAuthArgs:r}){super({enableLogging:e,postboxKey:t}),_(this,"customAuthInstance",void 0),_(this,"singleLoginKey",void 0),_(this,"torusKey",void 0),_(this,"migratableKey",null),_(this,"customAuthArgs",void 0),this.customAuthArgs=r,this.customAuthInstance=new On(r),this.serviceProviderName="TorusServiceProvider"}static fromJSON(e){const{enableLogging:t,postboxKey:r,customAuthArgs:i,serviceProviderName:n}=e;if("TorusServiceProvider"===n)return new Nn({enableLogging:t,postboxKey:r,customAuthArgs:i})}async init(e){return this.customAuthInstance.init(e)}async triggerLogin(e){const t=await this.customAuthInstance.triggerLogin(e);if(t){const e=Pi.getPostboxKey(t);if(this.torusKey=t,!t.metadata.upgraded){const{finalKeyData:e,oAuthKeyData:r}=t,i=e.privKey||r.privKey;this.migratableKey=new(T())(i,"hex")}this.postboxKey=new(T())(e,"hex")}return t}async triggerAggregateLogin(e){const t=await this.customAuthInstance.triggerAggregateLogin(e);if(t){const e=Pi.getPostboxKey(t);if(this.torusKey=t,!t.metadata.upgraded){const{finalKeyData:e,oAuthKeyData:r}=t,i=e.privKey||r.privKey;this.migratableKey=new(T())(i,"hex")}this.postboxKey=new(T())(e,"hex")}return t}toJSON(){return se(se({},super.toJSON()),{},{serviceProviderName:this.serviceProviderName,customAuthArgs:this.customAuthArgs})}}var Kn=Nn;class Cn extends Kn{constructor(...e){super(...e),_(this,"verifierName",void 0),_(this,"verifierId",void 0)}async getRSSNodeDetails(){if(!this.verifierId)throw new Error("no verifierId, not logged in");if(!this.verifierName)throw new Error("no verifierName, not logged in");const{torusNodeRSSEndpoints:e,torusNodePub:t}=await this.customAuthInstance.nodeDetailManager.getNodeDetails({verifier:this.verifierName,verifierId:this.verifierId});return{serverEndpoints:e,serverPubKeys:t.map((e=>({x:e.X,y:e.Y}))),serverThreshold:Math.ceil(e.length/2)}}async getTSSPubKey(e,t){if(!this.verifierName||!this.verifierId)throw new Error("verifier userinfo not found, not logged in yet");const r=await this.customAuthInstance.nodeDetailManager.getNodeDetails({verifier:this.verifierName,verifierId:this.verifierId}),i=await this.customAuthInstance.torus.getPublicAddress(r.torusNodeSSSEndpoints,r.torusNodePub,{verifier:this.verifierName,verifierId:this.verifierId,extendedVerifierId:Ie(this.verifierId,e,t)});return{pubKey:new Se(i.finalKeyData.X,i.finalKeyData.Y),nodeIndexes:i.nodesData.nodeIndexes||[]}}getVerifierNameVerifierId(){return`${this.verifierName}${this.verifierId}`}async triggerLogin(e){const t=await super.triggerLogin(e);if(t){const{verifier:e,verifierId:r}=t.userInfo;this.verifierName=e,this.verifierId=r}return t}async triggerAggregateLogin(e){const t=await super.triggerAggregateLogin(e);if(t){const{verifier:e,verifierId:r}=t.userInfo[0];this.verifierName=e,this.verifierId=r}return t}}class Ln extends he().ec{constructor(){super("ed25519")}bufferToScalar(e){return new(T())(e,"le")}generateScalar(){return this.genKeyPair().getPrivate()}scalarToBuffer(e,t){return e.toString("hex"),e.toArrayLike(t,"le",32)}pointToBuffer(e,t){const r=e.getX(),i=e.getY().toArrayLike(t,"le",32);return i[i.length-1]|=r.and(new(T())(1)).eqn(1)?128:0,i}}class Rn{constructor(){_(this,"sessionId",void 0)}checkSessionParams(){if(!this.sessionId)throw new Error("Session id is required");this.sessionId=this.sessionId.padStart(64,"0")}request({method:e="GET",url:t,data:r={},headers:i={}}){const n={headers:i};switch(e){case"GET":return Ct(t,n);case"POST":return Lt(t,r,n);case"PUT":return Bt(t,r,n);case"PATCH":return Rt(t,r,n)}throw new Error("Invalid method type")}}var Bn=r(8287).hp;class Fn extends Rn{constructor({sessionServerBaseUrl:e,sessionNamespace:t,sessionTime:r,sessionId:i,allowedOrigin:n}={}){super(),_(this,"sessionServerBaseUrl","https://session.web3auth.io"),_(this,"sessionNamespace",void 0),_(this,"allowedOrigin",void 0),_(this,"sessionTime",86400),_(this,"sessionId",""),e&&(this.sessionServerBaseUrl=e),t&&(this.sessionNamespace=t),r&&(this.sessionTime=r),i&&(this.sessionId=i.padStart(64,"0")),n&&(this.allowedOrigin=n||"*")}static generateRandomSessionKey(){return(0,ae.F_)().toString("hex").padStart(64,"0")}async createSession(e,t={}){super.checkSessionParams();const r=Bn.from(this.sessionId,"hex"),i=(0,ae.qb)(r).toString("hex"),n=await(0,fn.yv)(this.sessionId,e),s={key:i,data:n,signature:(await(0,ae._S)(r,(0,ln.S)(Bn.from(n,"utf8")))).toString("hex"),namespace:this.sessionNamespace,timeout:this.sessionTime,allowedOrigin:this.allowedOrigin};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:s,headers:t}),this.sessionId}async authorizeSession({headers:e}={headers:{}}){super.checkSessionParams();const t={key:(0,ae.qb)(Bn.from(this.sessionId,"hex")).toString("hex"),namespace:this.sessionNamespace},r=await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/get`,data:t,headers:e});if(!r.message)throw new Error("Session Expired or Invalid public key");const i=await(0,fn.af)(this.sessionId,r.message);if(i.error)throw new Error("There was an error decrypting data.");return i}async updateSession(e,t={}){super.checkSessionParams();const r=Bn.from(this.sessionId,"hex"),i=(0,ae.qb)(r).toString("hex"),n=await(0,fn.yv)(this.sessionId,e),s={key:i,data:n,signature:(await(0,ae._S)(r,(0,ln.S)(Bn.from(n,"utf8")))).toString("hex"),namespace:this.sessionNamespace,allowedOrigin:this.allowedOrigin};await super.request({method:"PUT",url:`${this.sessionServerBaseUrl}/v2/store/update`,data:s,headers:t})}async invalidateSession(e={}){super.checkSessionParams();const t=Bn.from(this.sessionId,"hex"),r=(0,ae.qb)(t).toString("hex"),i=await(0,fn.yv)(this.sessionId,{}),n={key:r,data:i,signature:(await(0,ae._S)(t,(0,ln.S)(Bn.from(i,"utf8")))).toString("hex"),namespace:this.sessionNamespace,timeout:1};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:n,headers:e}),this.sessionId="",!0}}var Dn=r(7998),Un=r.n(Dn),jn=r(8287).hp;new ce.ec("secp256k1");const qn=r.g.crypto||r.g.msCrypto||{},$n=qn.subtle||qn.webkitSubtle,zn=jn.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),Jn=jn.alloc(32,0);function Hn(e){return t=e,!(!jn.isBuffer(t)||32!==t.length)&&e.compare(Jn)>0&&e.compare(zn)<0;var t}function Vn(e){const t=new Uint8Array(e);return void 0===qn.getRandomValues?jn.from(Un().randomBytes(e)):(qn.getRandomValues(t),jn.from(t))}function Yn(e){return async function(t,r,i){if($n){const n={name:"AES-CBC"},s=await $n.importKey("raw",r,n,!1,[e]),o={name:"AES-CBC",iv:t},a=await $n[e](o,s,i);return jn.from(new Uint8Array(a))}if("encrypt"===e){const e=Un().createCipheriv("aes-256-cbc",r,t),n=e.update(i),s=e.final();return jn.concat([n,s])}if("decrypt"===e){const e=Un().createDecipheriv("aes-256-cbc",r,t),n=e.update(i),s=e.final();return jn.concat([n,s])}throw new Error(`Unsupported operation: ${e}`)}}Yn("encrypt"),Yn("decrypt");var Wn=r(7115),Xn=r(8287).hp;const Gn="x-web3-session-id";function Qn(){return new ce.ec("secp256k1")}function Zn(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const i=Qn(),n=e.map((e=>new(T())(e))),s=new(T())(t),o=new(T())(r);let a=new(T())(1),c=new(T())(1);for(let e=0;e{const n=Qn();if(e)return Zn([1,r],r);const s=Zn(t,i),o=Zn([1,r],1);return s.mul(o).umod(n.curve.n)},ts=(e,t)=>{if(-1===t.indexOf(e))throw new Error(`party ${e} not found in parties ${t}`);const r=Qn();return Zn(t,e).invm(r.curve.n).umod(r.curve.n)},rs=(e,t,r,i)=>{const n=t.sort(((e,t)=>e-t));for(let e=0;ee.sender===r&&e.recipient===t&&e.msg_type===i));return s?s.msg_data:new Promise(((e,s)=>{let o=0;const a=setInterval((()=>{const c=n.msgQueue.find((e=>e.sender===r&&e.recipient===t&&e.msg_type===i));void 0!==c&&(clearInterval(a),e(c.msg_data)),o>=1e3&&(clearInterval(a),s("Message not received in a reasonable time")),o++}),10)}))}),void 0===globalThis.js_send_msg&&(globalThis.js_send_msg=async function(e,t,r,i,n){const s=globalThis.tss_clients.get(e);if(s.log(`sending msg, ${i}`),i.indexOf("ga1_data_unprocessed")>-1)throw new Error("ga1_data_unprocessed should not be sent directly");if(s.websocketOnly)s.sockets[r].emit("send_msg",{session:e,sender:t,recipient:r,msg_type:i,msg_data:n});else{const o=e.split("")[1],a=s.lookupEndpoint(e,r);fetch(`${a}/send`,{method:"POST",headers:{[Gn]:o,"Content-Type":"application/json"},body:JSON.stringify({session:e,sender:t,recipient:r,msg_type:i,msg_data:n})})}return!0});class is{constructor(e,t,r,i,n,s,o,a,c){if(_(this,"session",void 0),_(this,"index",void 0),_(this,"parties",void 0),_(this,"msgQueue",[]),_(this,"sockets",void 0),_(this,"endpoints",void 0),_(this,"share",void 0),_(this,"pubKey",void 0),_(this,"websocketOnly",void 0),_(this,"tssLib",void 0),_(this,"_startPrecomputeTime",void 0),_(this,"_endPrecomputeTime",void 0),_(this,"_startSignTime",void 0),_(this,"_endSignTime",void 0),_(this,"log",void 0),_(this,"_consumed",void 0),_(this,"_sLessThanHalf",void 0),_(this,"_precomputeComplete",[]),_(this,"_precomputeFailed",[]),_(this,"precomputed_value",null),_(this,"_ready",!1),_(this,"_signer",void 0),_(this,"_rng",void 0),_(this,"_readyResolve",null),r.length!==n.length)throw new Error("parties and sockets length must be equal, add null for client if necessary");if(r.length!==i.length)throw new Error("parties and endpoints length must be equal, add null for client if necessary");this.session=e,this.index=t,this.parties=r,this.endpoints=i,this.sockets=n,this.share=s,this.pubKey=o,this.websocketOnly=a,this.log=console.log,this._consumed=!1,this._sLessThanHalf=!0,this.tssLib=c,n.forEach((e=>{e&&(e.hasListeners("send")&&e.off("send"),e.on("send",(async(e,t)=>{const{session:r,sender:i,recipient:n,msg_type:s,msg_data:o}=e;r===this.session?(this.msgQueue.push({session:r,sender:i,recipient:n,msg_type:s,msg_data:o}),t&&t()):this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${r}`)})),e.on("precompute_complete",(async(e,t)=>{const{session:r,party:i}=e;r===this.session?(this._precomputeComplete.push(i),t&&t()):this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${r}`)})),e.on("precompute_failed",(async(e,t)=>{const{session:r,party:i}=e;r===this.session?(this._precomputeFailed.push(i),t&&t()):this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${r}`)})))})),globalThis.tss_clients.set(this.session,this)}get sid(){return this.session.split("")[1]}async ready(){if(null==this._readyResolve)throw new Error("Precompute needs to be called before ready");await this._readyResolve,await new Promise(((e,t)=>{let r=0;const i=setInterval((()=>{0===this._precomputeFailed.length&&this._precomputeComplete.filter(((e,t,r)=>r.indexOf(e)===t)).length===this.parties.length&&null!=this.precomputed_value?(clearInterval(i),this._ready=!0,e()):this._precomputeFailed.length>0&&t(new Error("Peer failure detected, please try again")),r>=500&&(clearInterval(i),t(new Error("Client is not ready"))),r++}),10)}))}precompute(e){this.sockets.forEach(((e,t)=>{if(null!==e&&void 0===e.id)throw new Error(`socket not connected yet, session: ${this.session}, party: ${t}`)}));const t=[];for(let r=0;r{fetch(`${this.lookupEndpoint(this.session,i)}/precompute`,{method:"POST",headers:{"Content-Type":"application/json",[Gn]:this.sid},body:JSON.stringify(se({endpoints:this.endpoints.map(((e,t)=>t!==this.index?e:`websocket:${this.sockets[i].id}`)),session:this.session,parties:this.parties,player_index:i,threshold:this.parties.length,pubkey:this.pubKey,notifyWebsocketId:this.sockets[i].id,sendWebsocket:this.sockets[i].id},e))}).then((async e=>{const r=await e.json();if(200!==e.status)throw new Error(`precompute route failed on ${this.lookupEndpoint(this.session,i)} with status ${e.status} \n ${JSON.stringify(r)} `);return t(e)})).catch((e=>{r(e)}))})))}this._readyResolve=(async()=>{this._startPrecomputeTime=Date.now(),await Promise.all(t),this._signer=await this.tssLib.threshold_signer(this.session,this.index,this.parties.length,this.parties.length,this.share,this.pubKey),this._rng=await this.tssLib.random_generator(Xn.from(function(){let e=Vn(32);for(;!Hn(e);)e=Vn(32);return e}()).toString("base64")),await this.tssLib.setup(this._signer,this._rng);const e=await this.tssLib.precompute(new Uint8Array(this.parties),this._signer,this._rng);this.precomputed_value=e,this._precomputeComplete.push(this.index),this._consumed=!1,this._endPrecomputeTime=Date.now()})().catch((e=>{this._precomputeFailed.push(this.index),console.error(e)}))}async sign(e,t,r,i,n){if(!0===this._consumed)throw new Error("This instance has already signed a message and cannot be reused");if(!1===this._ready)throw new Error("client is not ready");if(!t){if("keccak256"!==i)throw new Error(`hash algo ${i} not supported`);if(Xn.from((0,ze.So)(Xn.from(r))).toString("base64")!==e)throw new Error("hash of original message does not match msg")}this._startSignTime=Date.now();const s=[],o=[];for(let a=0;a{const a=this.lookupEndpoint(this.session,c);fetch(`${a}/sign`,{method:"POST",headers:{"Content-Type":"application/json",[Gn]:this.sid},body:JSON.stringify(se({session:this.session,sender:this.index,recipient:c,msg:e,hash_only:t,original_message:r,hash_algo:i},n))}).then((e=>e.json())).then((e=>s(e.sig))).catch((e=>{o(e)}))})))}(await Promise.all(o)).forEach((e=>{s.push(e)}));const a=await this.tssLib.get_r_from_precompute(this.precomputed_value),c=await this.tssLib.local_verify(e,t,a,s,this.pubKey);this._endSignTime=Date.now();const h=Xn.from(c,"base64").toString("hex"),d=new(T())(h.slice(0,64),16);let u=new(T())(h.slice(64),16),f=Xn.from(a,"base64")[63]%2;if(this._sLessThanHalf){const e=Qn(),t=e.n.div(new(T())(2));u.gt(t)&&(u=e.n.sub(u),f=(f+1)%2)}return this._consumed=!0,this._ready=!1,this._readyResolve=null,{r:d,s:u,recoveryParam:f}}lookupEndpoint(e,t){if(e!==this.session)throw new Error("incorrect session when looking up endpoint");return this.endpoints[t]}async cleanup(e){this.tssLib.random_generator_free(this._rng),this.tssLib.threshold_signer_free(this._signer),this._precomputeComplete=[],this._precomputeFailed=[],this.precomputed_value=null,this._endPrecomputeTime=null,this._startPrecomputeTime=null,this._endSignTime=null,this._startSignTime=null,this._consumed=!1,this._ready=!1,this._readyResolve=null,globalThis.tss_clients.delete(this.session),this.sockets.forEach((e=>{e&&e.connected&&e.close()})),await Promise.all(this.parties.map((async t=>(t!==this.index&&await fetch(`${this.lookupEndpoint(this.session,t)}/cleanup`,{method:"POST",headers:{"Content-Type":"application/json",[Gn]:this.sid},body:JSON.stringify(se({session:this.session},e))}),Promise.resolve(!0)))))}}function ns(e){const t=atob(e);return Uint8Array.from(t,(e=>e.codePointAt(0)))}function ss(e){const t=String.fromCodePoint(...e);return btoa(t)}new class{constructor(){_(this,"get",(e=>new Promise((t=>{if(null!==globalThis&&void 0!==globalThis&&globalThis.localStorage){const r=globalThis.localStorage.getItem(e);t(r)}else chrome.storage.local.get(e,(r=>(t(r[e]),r)))})))),_(this,"set",((e,t)=>new Promise((r=>{null!==globalThis&&void 0!==globalThis&&globalThis.localStorage?(globalThis.localStorage.setItem(e,t),r()):chrome.storage.local.set({[e]:t},(()=>{r()}))})))),_(this,"delete",(e=>new Promise((t=>{null!==globalThis&&void 0!==globalThis&&globalThis.localStorage?(globalThis.localStorage.removeItem(e),t()):(chrome.storage.local.remove(e),t())}))))}};class os{constructor(){_(this,"items",void 0),this.items=[]}add(e){return this.items.push(e),e}free(){this.items.forEach((e=>{try{e.free()}catch(e){console.log(`Warning: freeing value: ${e}`)}})),this.items=[]}}var as=r(6674);function cs(e,t,r){return JSON.stringify([e,t,r])}class hs{constructor(e,t){_(this,"session_id",void 0),_(this,"sender_id",void 0),_(this,"messages",new as.MapQueue),_(this,"sockets",new Map),this.session_id=e,this.sender_id=t}getSocket(e){return this.sockets.get(e)}async connect(e,t){if(e.length!==t.length)throw new Error("ids must have same length as endpoints");this.close();const r=t.map((e=>{const t=new URL("socket.io",e);return(0,Wn.io)(t.origin,{path:t.pathname,transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:3})})),i=r.map((e=>new Promise(((t,r)=>{e.on("connect",t),setTimeout((()=>{r(new Error("Connection timeout"))}),1e4)}))));await Promise.all(i),r.forEach(((t,r)=>{const i=e[r];t.on("send",(async(e,t)=>{if(e.sender!==i)return void console.log(`ignoring message: wrong sender: expected ${i}, got ${e.sender}`);if(e.session!==this.session_id)return void console.log(`ignoring message: wrong session: expected ${this.session_id}, got ${e.session}`);const r={sender:e.sender,data:ns(e.msg_data),receiver:e.recipient,type:e.msg_type},n=cs(r.sender,r.receiver,r.type);this.messages.push(n,r),t&&t()})),this.sockets.set(i,t)}))}close(){this.sockets.forEach((e=>e.disconnect())),this.sockets.clear()}async send(e,t,r){const i=this.sockets.get(e);if(!i)throw new Error("Socket not found");const n={msg_data:ss(r),msg_type:t,recipient:e,sender:this.sender_id,session:this.session_id};i.emit("send_msg",n)}async receive(e,t){const r=cs(e,this.sender_id,t),i=await this.messages.pop(r,1e4);if(!i)throw new Error("Timeout");return i.data}}const ds=Qr();function us(e){let t,r=!1,i=0;try{t=window[e],r=!0,i=t.length;const n="__storage_test__";return t.setItem(n,n),t.removeItem(n),!0}catch(e){const t=e;return t&&(22===t.code||1014===t.code||"QuotaExceededError"===t.name||"NS_ERROR_DOM_QUOTA_REACHED"===t.name)&&r&&0!==i}}class fs{constructor(){_(this,"store",new Map)}getItem(e){return this.store.get(e)||null}setItem(e,t){this.store.set(e,t)}removeItem(e){this.store.delete(e)}}_(class{constructor(e,t){_(this,"storage",void 0),_(this,"_storeKey",void 0),this.storage=t,this._storeKey=e;try{t.getItem(e)||this.resetStore()}catch(e){}}static getInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"local";if(!this.instanceMap.has(e)){let r;r="local"===t&&us("localStorage")?window.localStorage:"session"===t&&us("sessionStorage")?window.sessionStorage:new fs,this.instanceMap.set(e,new this(e,r))}return this.instanceMap.get(e)}toJSON(){return this.storage.getItem(this._storeKey)}resetStore(){const e=this.getStore();return this.storage.removeItem(this._storeKey),e}getStore(){return JSON.parse(this.storage.getItem(this._storeKey)||"{}")}get(e){return JSON.parse(this.storage.getItem(this._storeKey)||"{}")[e]}set(e,t){const r=JSON.parse(this.storage.getItem(this._storeKey)||"{}");r[e]=t,this.storage.setItem(this._storeKey,JSON.stringify(r))}},"instanceMap",new Map),se(se({},{SAPPHIRE_DEVNET:"sapphire_devnet",SAPPHIRE_MAINNET:"sapphire_mainnet"}),{MAINNET:"mainnet",TESTNET:"testnet",CYAN:"cyan",AQUA:"aqua",CELESTE:"celeste"});var ls=r(8287).hp;const ps=()=>new ce.eddsa("ed25519");function ys(e=32){const t="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;if(t&&"function"==typeof t.getRandomValues)return t.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function ms(){return ls.from(ys(32))}const gs=()=>{const e=zr.genKeyPair(),t=Se.fromElliptic(e.getPublic());return{private:e.getPrivate(),pub:t}},bs=(e,t,r,i)=>{const n=[],s=[],o=[],a=[];for(let c=0;c{const r=`${e}_${t}`;let i=nt(ls.from(r,"utf8"));return i=i.replace("0x",""),new(T())(i,"hex")};function _s(e){return e.toArrayLike(ls,"be",g)}function xs(e,t){if(t>e.length)throw new Error("Invalid number of endpoints");return e.slice().sort((()=>Math.random()-.5)).slice(0,t).sort(((e,t)=>e.index-t.index))}function ks(e,t,r){return t.mul(r.invm(e.n)).umod(e.n)}function Ps(e,t,r,i){return t.filter(((e,t)=>t!==r)).reduce(((n,s)=>{const o=ks(e,i.sub(s),t[r].sub(s));return n.mul(o).umod(e.n)}),new(T())(1))}function Ms(e,t,r){const i=t.map((e=>new(T())(e))),n=new(T())(r);return i.map(((t,r)=>Ps(e,i,r,n)))}const Es=1,Is=2;function As(e,t,r,i=Is){const n=Ms(e,[Es,i],0),s=Ms(e,t,0);if(t.includes(r))throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${t} ${r}`);const o=Ms(e,[r,...t],0);return{serverCoefficients:s.map(((t,r)=>ks(e,n[0].mul(t),o[r+1]))),clientCoefficient:ks(e,n[1],o[0])}}function Ts(){return nt(ls.from(ur().toString("hex")+Date.now(),"utf8"))}function Os(e,t,r,i,n){return`${e}${f.Delimiter1}${t}${f.Delimiter2}${r}${f.Delimiter3}${i}${f.Delimiter4}${n}`}function Ns(e){if(65!==e.length)throw new Error(`Invalid signature length: expected 65, got ${e.length}`);return{r:e.subarray(0,32),s:e.subarray(32,64),v:e[64]}}function Ks(e){if(e.keyType!==Te.secp256k1)throw new Error(`Invalid key type: expected secp256k1, got ${e.keyType}`);return{sign:async t=>Ns(await e.sign(t,!0)),getPublic:async()=>Se.fromSEC1(ue,e.getPubKey().toString("hex")).toSEC1(ue).subarray(1)}}const Cs=rt().getLogger("mpc-core-kit");Cs.disableAll();var Ls=r(8287).hp;class Rs{constructor(e){var t;if(_(this,"state",{accountIndex:0}),_(this,"torusSp",null),_(this,"options",void 0),_(this,"storageLayer",null),_(this,"tkey",null),_(this,"sessionManager",void 0),_(this,"currentStorage",void 0),_(this,"_storageBaseKey","corekit_store"),_(this,"enableLogging",!1),_(this,"ready",!1),_(this,"_tssLib",void 0),_(this,"wasmLib",void 0),_(this,"_keyType",void 0),_(this,"atomicCallStackCounter",0),_(this,"getTssFactorPub",(()=>{if(this.checkReady(),!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when getting tss factor public key.");return this.tKey.metadata.factorPubs[this.tKey.tssTag].map((e=>e.toSEC1(zr,!0).toString("hex")))})),!e.web3AuthClientId)throw M.clientIdInvalid();this._tssLib=e.tssLib,this._keyType=e.tssLib.keyType;const r=this.isNodejsOrRN(e.uxMode);e.enableLogging?(Cs.enableAll(),this.enableLogging=!0):Cs.setLevel("error"),"boolean"!=typeof e.manualSync&&(e.manualSync=!1),e.web3AuthNetwork||(e.web3AuthNetwork=h.MAINNET),e.sessionTime||(e.sessionTime=86400),e.serverTimeOffset||(e.serverTimeOffset=0),e.uxMode||(e.uxMode=Di),e.redirectPathName||(e.redirectPathName="redirect"),e.baseUrl||(e.baseUrl=r?"https://localhost":`${null===(t=window)||void 0===t?void 0:t.location.origin}/serviceworker`),e.disableHashedFactorKey||(e.disableHashedFactorKey=!1),e.hashedFactorNonce||(e.hashedFactorNonce=e.web3AuthClientId),void 0===e.disableSessionManager&&(e.disableSessionManager=!1),this.options=e,this.currentStorage=new I(this._storageBaseKey,e.storage),e.disableSessionManager||(this.sessionManager=new Fn({sessionTime:e.sessionTime})),Pi.setSessionTime(this.options.sessionTime)}get tKey(){if(null===this.tkey)throw M.tkeyInstanceUninitialized();return this.tkey}get keyType(){return this._keyType}get signatures(){var e;return null!==(e=this.state)&&void 0!==e&&e.signatures?this.state.signatures:[]}get _storageKey(){return this._storageBaseKey}get status(){try{const{tkey:e}=this;return e?e.metadata?e.secp256k1Key&&this.state.factorKey?Xr.LOGGED_IN:Xr.REQUIRED_SHARE:Xr.INITIALIZED:Xr.NOT_INITIALIZED}catch(e){}return Xr.NOT_INITIALIZED}get sessionId(){var e;return null===(e=this.sessionManager)||void 0===e?void 0:e.sessionId}get supportsAccountIndex(){return this._keyType!==Te.ed25519}get verifier(){var e,t;return null!==(e=this.state.userInfo)&&void 0!==e&&e.aggregateVerifier?this.state.userInfo.aggregateVerifier:null!==(t=this.state)&&void 0!==t&&null!==(t=t.userInfo)&&void 0!==t&&t.verifier?this.state.userInfo.verifier:""}get verifierId(){var e;return null!==(e=this.state)&&void 0!==e&&null!==(e=e.userInfo)&&void 0!==e&&e.verifierId?this.state.userInfo.verifierId:""}get isRedirectMode(){return this.options.uxMode===Di}get useClientGeneratedTSSKey(){return this.keyType===Te.ed25519&&void 0===this.options.useClientGeneratedTSSKey||!!this.options.useClientGeneratedTSSKey}async _UNSAFE_recoverTssKey(e){this.checkReady();const t=new(T())(e[0],"hex"),r=await this.getFactorKeyMetadata(t);await this.tKey.initialize({withShare:r});const i=[],n=[],s=[];for(let t=0;t{Cs.error("rehydrate session error",e)}));if(t)return void await this.rehydrateSession(t)}}await this.featureRequest()}}async loginWithOAuth(e){if(this.checkReady(),this.isNodejsOrRN(this.options.uxMode))throw M.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`);const{importTssKey:t}=e,r=this.torusSp;try{const s=e;if(e.subVerifierDetails){var i;const t=await r.triggerLogin(e.subVerifierDetails);if(this.isRedirectMode)return;this.updateState({postBoxKey:this._getPostBoxKey(t),postboxKeyNodeIndexes:null===(i=t.nodesData)||void 0===i?void 0:i.nodeIndexes,userInfo:t.userInfo,signatures:this._getSignatures(t.sessionData.sessionTokenData)})}else if(s.subVerifierDetailsArray){var n;const e=await r.triggerAggregateLogin({aggregateVerifierType:s.aggregateVerifierType||Bi,verifierIdentifier:s.aggregateVerifierIdentifier,subVerifierDetailsArray:s.subVerifierDetailsArray});if(this.isRedirectMode)return;this.updateState({postBoxKey:this._getPostBoxKey(e),postboxKeyNodeIndexes:null===(n=e.nodesData)||void 0===n?void 0:n.nodeIndexes,userInfo:e.userInfo[0],signatures:this._getSignatures(e.sessionData.sessionTokenData)})}await this.setupTkey(t)}catch(e){if(Cs.error("login error",e),e instanceof or&&1302===e.code)throw M.default(l.TKEY_SHARES_REQUIRED);throw M.default(e.message)}}async loginWithJWT(e){this.checkReady();const{prefetchTssPublicKeys:t=1}=e;if(t>3)throw M.prefetchValueExceeded(`The prefetch value '${t}' exceeds the maximum allowed limit of 3.`);const{verifier:r,verifierId:i,idToken:n,importTssKey:s}=e;this.torusSp.verifierName=r,this.torusSp.verifierId=i;try{var o;const a=[];for(let e=0;e{let r;if(this.isNodejsOrRN(this.options.uxMode))r={browserName:"Node Env",browserVersion:"",deviceName:"nodejs"};else{const e=Ji().parse(navigator.userAgent);r={browserName:`${e.browser.name}`,browserVersion:e.browser.version,deviceName:e.os.name}}const n=new(T())(await this.createFactor({shareType:y.DEVICE,additionalMetadata:r}),"hex");await this.setDeviceFactor(n),await this.inputFactorKey(new(T())(n,"hex"));const s=Ee(i,zr);let o;return await this.deleteFactor(s,i),await this.deleteMetadataShareBackup(i),t&&(o=await this.createFactor(se({shareType:y.RECOVERY},e))),o})).catch((e=>{Cs.error("error enabling MFA:",e.message);const t=M.default(e.message);throw t.stack=e.stack,t}))}async createFactor(e){this.checkReady();const{shareType:t}=e;let{factorKey:r,shareDescription:i,additionalMetadata:n}=e;if(!m.includes(t))throw M.newShareIndexInvalid(`Invalid share type provided (${t}). Valid share types are ${m}.`);r||(r=gs().private),i||(i=u.Other),n||(n={});const s=Ee(r,zr);if(this.getTssFactorPub().includes(s.toSEC1(zr,!0).toString("hex")))throw M.factorKeyAlreadyExists();return this.atomicSync((async()=>(await this.copyOrCreateShare(t,s),await this.backupMetadataShare(r),await this.addFactorDescription({factorKey:r,shareDescription:i,additionalMetadata:n,updateMetadata:!1}),_s(r).toString("hex")))).catch((e=>{Cs.error("error creating factor:",e.message);const t=M.default(`error creating factor: ${e.message}`);throw t.stack=e.stack,t}))}getPubKey(){const{tssPubKey:e}=this.state;return Ls.from(e)}getPubKeyPoint(){const{tssPubKey:e}=this.state;return Se.fromSEC1(this.tkey.tssCurve,e.toString("hex"))}getPubKeyEd25519(){const e=this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic();return ps().keyFromPublic(e).getPublic()}async precompute_secp256k1(){this.wasmLib=await this.loadTssWasm();const{tssShareIndex:e}=this.state,t=this.getPubKeyPoint(),{torusNodeTSSEndpoints:r}=li(this.options.web3AuthNetwork,this.keyType);if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when signing.");const{tssShare:i}=await this.tKey.getTSSShare(this.state.factorKey,{accountIndex:0}),n=this.getTssNonce();if(!t||!r)throw M.tssPublicKeyOrEndpointsMissing();const s=Ts(),o=Os(this.verifier,this.verifierId,this.tKey.tssTag,n,s),{nodeIndexes:a}=await this.torusSp.getTSSPubKey(this.tKey.tssTag,this.tKey.metadata.tssNonces[this.tKey.tssTag]),{endpoints:c,tssWSEndpoints:h,partyIndexes:d,nodeIndexesReturned:u}=bs(r,4,3,a),f=await(async(e,t)=>{const r=await(async(e,t)=>e.map((e=>null==e?null:(0,Wn.io)(e,{path:"/tss/socket.io",query:{sessionId:t},transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:5}))))(e,t);return await new Promise((e=>{const t=setInterval((()=>{for(let e=0;e{throw b.cleanup({signatures:m,server_coeffs:v}),e})),{client:b,serverCoeffs:v}}async sign(e,t=!1,r){if(this.wasmLib=await this.loadTssWasm(),this.keyType===Te.secp256k1){const i=await this.sign_ECDSA_secp256k1(e,t,r);return Ls.concat([i.r,i.s,Ls.from([i.v])])}if(this.keyType===Te.ed25519)return this.sign_ed25519(e,t);throw M.default(`sign not supported for key type ${this.keyType}`)}async deleteFactor(e,t){if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when deleting a factor.");if(!this.tKey.metadata.factorPubs)throw M.factorPubsMissing();await this.atomicSync((async()=>{if((this.tKey.metadata.factorPubs[this.tKey.tssTag].length||0)<=1)throw M.cannotDeleteLastFactor("Cannot delete last factor");const r=e,i=Ee(this.state.factorKey,zr);if(r.equals(i))throw M.factorInUseCannotBeDeleted("Cannot delete current active factor");await this.tKey.deleteFactorPub({factorKey:this.state.factorKey,deleteFactorPub:e,authSignatures:this.signatures});const n=r.toSEC1(zr,!0).toString("hex"),s=this.tKey.metadata.getShareDescription()[n];if(s&&await Promise.all(s.map((async e=>{var t;return null===(t=this.tKey)||void 0===t?void 0:t.metadata.deleteShareDescription(n,e)}))),t){const e=new(T())(t,"hex");Ee(e,zr).equals(r)&&await this.deleteMetadataShareBackup(e)}}))}async logout(){var e;null!==(e=this.sessionManager)&&void 0!==e&&e.sessionId&&await this.sessionManager.invalidateSession(),await this.currentStorage.set("sessionId",""),this.resetState(),await this.init({handleRedirectResult:!1,rehydrate:!1})}getUserInfo(){if(!this.state.userInfo)throw M.userNotLoggedIn();return this.state.userInfo}getKeyDetails(){this.checkReady();const e=this.tKey.getKeyDetails(),t=this.state.tssPubKey?Se.fromSEC1(this.tkey.tssCurve,this.state.tssPubKey.toString("hex")):void 0,r=this.tKey.metadata.factorPubs?this.tKey.metadata.factorPubs[this.tKey.tssTag]:[];return{requiredFactors:e.requiredShares,threshold:e.threshold,totalFactors:r.length+1,shareDescriptions:this.tKey.getMetadata().getShareDescription(),metadataPubKey:e.pubKey,tssPubKey:t,keyType:this.keyType}}async commitChanges(){if(this.checkReady(),!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when committing changes.");try{await this.tKey._syncShareMetadata(),await this.tKey.syncLocalMetadataTransitions()}catch(e){throw Cs.error("sync metadata error",e),e}}async setManualSync(e){this.checkReady(),await this.tKey.syncLocalMetadataTransitions(),this.options.manualSync=e,this.tKey.manualSync=e}async setDeviceFactor(e,t=!1){if(!t&&await this.getDeviceFactor())throw M.default("Device factor already exists");const r=this.tKey.getMetadata().pubKey.x.toString(16,b);await this.currentStorage.set(r,JSON.stringify({factorKey:e.toString("hex").padStart(64,"0")}))}async getDeviceFactor(){const e=this.tKey.getMetadata().pubKey.x.toString(16,b),t=await this.currentStorage.get(e);return JSON.parse(t||"{}").factorKey}async _UNSAFE_exportTssKey(){if(this.keyType!==Te.secp256k1)throw M.default("Wrong KeyType. Method can only be used when KeyType is secp256k1");if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when exporting tss key.");if(!this.state.signatures)throw M.signaturesNotPresent("Signatures not present in state when exporting tss key.");const e=await this.tKey._UNSAFE_exportTssKey({factorKey:this.state.factorKey,authSignatures:this.state.signatures}),t=this.getAccountNonce();return e.add(t).umod(this.tKey.tssCurve.n).toString("hex",b)}async _UNSAFE_exportTssEd25519Seed(){if(this.keyType!==Te.ed25519)throw M.default("Wrong KeyType. Method can only be used when KeyType is ed25519");if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed.");if(!this.state.signatures)throw M.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed.");try{return await this.tKey._UNSAFE_exportTssEd25519Seed({factorKey:this.state.factorKey,authSignatures:this.state.signatures})}catch(e){throw M.default(`Error exporting ed25519 seed: ${e}`)}}updateState(e){this.state=se(se({},this.state),e)}async atomicSync(e){this.atomicCallStackCounter+=1,this.tkey.manualSync=!0;try{const t=await e();return 1===this.atomicCallStackCounter&&(this.options.manualSync||await this.commitChanges()),t}catch(e){throw e}finally{this.atomicCallStackCounter-=1,0===this.atomicCallStackCounter&&(this.tkey.manualSync=this.options.manualSync)}}async importTssKey(e,t,r=y.DEVICE){if(!this.state.signatures)throw M.signaturesNotPresent("Signatures not present in state when importing tss key.");await this.tKey.importTssKey({tag:this.tKey.tssTag,importKey:Ls.from(e,"hex"),factorPub:t,newTSSIndex:r},{authSignatures:this.state.signatures})}getTssNonce(){if(!this.tKey.metadata.tssNonces||void 0===this.tKey.metadata.tssNonces[this.tKey.tssTag])throw M.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`);return this.tKey.metadata.tssNonces[this.tKey.tssTag]}async setupTkey(e){if(!this.state.postBoxKey)throw M.userNotLoggedIn();let t=e;if(await this.isMetadataPresent(this.state.postBoxKey)){if(t)throw M.tssKeyImportNotAllowed();await this.handleExistingUser()}else{if(!t&&this.useClientGeneratedTSSKey)if(this.keyType===Te.ed25519)t=ms().toString("hex");else{if(this.keyType!==Te.secp256k1)throw M.default("Unsupported key type");t=_s(ue.genKeyPair().getPrivate()).toString("hex")}await this.handleNewUser(t)}}async handleNewUser(e){await this.atomicSync((async()=>{let t;if(this.options.disableHashedFactorKey){t=gs().private;const e=Ss(this.state.postBoxKey,this.options.hashedFactorNonce);await this.deleteMetadataShareBackup(e)}else t=Ss(this.state.postBoxKey,this.options.hashedFactorNonce);const r=y.DEVICE,i=Ee(t,zr);if(e)await this.tKey.initialize({skipTssInit:!0}),await this.tKey.reconstructKey(),await this.importTssKey(e,i,r);else{const e=new ce.ec(this.keyType).genKeyPair().getPrivate();await this.tKey.initialize({factorPub:i,deviceTSSShare:e,deviceTSSIndex:r})}await this.tKey.reconstructKey(),await this.finalizeTkey(t),await this.backupMetadataShare(t),this.options.disableHashedFactorKey?await this.addFactorDescription({factorKey:t,shareDescription:u.Other,updateMetadata:!1}):await this.addFactorDescription({factorKey:t,shareDescription:u.HashedShare,updateMetadata:!1})}))}async handleExistingUser(){if(await this.tKey.initialize({neverInitializeNewKey:!0}),this.options.disableHashedFactorKey)return;const e=Ss(this.state.postBoxKey,this.options.hashedFactorNonce);if(this.state.factorKey=e,await this.checkIfFactorKeyValid(e)){const t=await this.getFactorKeyMetadata(e);try{await this.tKey.inputShareStoreSafe(t,!0),await this.tKey.reconstructKey(),await this.finalizeTkey(e)}catch(e){Cs.error("error initializing tkey with hashed share",e)}}else{var t;"SHARE_DELETED"===(await(null===(t=this.tKey)||void 0===t?void 0:t.readMetadata(e))).message&&Cs.warn("hashed factor deleted")}}async finalizeTkey(e){0!==this.state.accountIndex&&(Cs.warn("AccountIndex should be 0"),this.state.accountIndex=0);const{tssIndex:t}=await this.tKey.getTSSShare(e),r=this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve,!1);this.updateState({tssShareIndex:t,tssPubKey:r,factorKey:e}),await this.createSession()}checkReady(){if(!this.ready)throw M.mpcCoreKitNotInitialized()}async rehydrateSession(e){try{this.checkReady();const t=new(T())(e.factorKey,"hex");if(!t)throw M.providedFactorKeyInvalid();const r=e.postBoxKey||e.oAuthKey;if(!r)throw M.default("postBoxKey or oAuthKey not present in session data");this.torusSp.postboxKey=new(T())(r,"hex"),this.torusSp.verifierName=e.userInfo.aggregateVerifier||e.userInfo.verifier,this.torusSp.verifierId=e.userInfo.verifierId;const i=await this.getFactorKeyMetadata(t);await this.tKey.initialize({neverInitializeNewKey:!0}),await this.tKey.inputShareStoreSafe(i,!0),await this.tKey.reconstructKey(),this.updateState({factorKey:new(T())(e.factorKey,"hex"),postBoxKey:r,postboxKeyNodeIndexes:e.postboxKeyNodeIndexes||[],tssShareIndex:e.tssShareIndex,tssPubKey:this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve,!1),signatures:e.signatures,userInfo:e.userInfo})}catch(e){Cs.warn("failed to authorize session",e)}}async createSession(){if(!this.options.disableSessionManager&&!this.sessionManager)throw new Error("sessionManager is not available");try{const e=Fn.generateRandomSessionKey();this.sessionManager.sessionId=e;const{postBoxKey:t,factorKey:r,userInfo:i,tssShareIndex:n,tssPubKey:s,postboxKeyNodeIndexes:o}=this.state;if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when creating session.");const{tssShare:a}=await this.tKey.getTSSShare(this.state.factorKey,{accountIndex:this.state.accountIndex});if(!(t&&r&&a&&s&&i))throw M.userNotLoggedIn();const c={postBoxKey:t,postboxKeyNodeIndexes:o||[],factorKey:null==r?void 0:r.toString("hex"),tssShareIndex:n,tssPubKey:Ls.from(s).toString("hex"),signatures:this.signatures,userInfo:i};await this.sessionManager.createSession(c),await this.currentStorage.set("sessionId",e)}catch(e){Cs.error("error creating session",e)}}async isMetadataPresent(e){var t;const r=new(T())(e,"hex"),i=await(null===(t=this.tKey)||void 0===t?void 0:t.readMetadata(r));return!(!i||"KEY_NOT_FOUND"===i.message)}async checkIfFactorKeyValid(e){var t;this.checkReady();const r=await(null===(t=this.tKey)||void 0===t?void 0:t.readMetadata(e));return!(!r||"KEY_NOT_FOUND"===r.message||"SHARE_DELETED"===r.message)}async getFactorKeyMetadata(e){var t;this.checkReady();const r=await(null===(t=this.tKey)||void 0===t?void 0:t.readMetadata(e));if(!r||"KEY_NOT_FOUND"===r.message)throw M.noMetadataFound();return je.fromJSON(r)}async copyOrCreateShare(e,t){if(this.checkReady(),!this.tKey.metadata.factorPubs||!Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag]))throw M.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key.");if(!this.tKey.metadata.factorEncs||"object"!=typeof this.tKey.metadata.factorEncs[this.tKey.tssTag])throw M.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key.");if(!this.state.factorKey)throw M.factorKeyNotPresent("factorKey not present in state when copying or creating a share.");if(-1===m.indexOf(e))throw M.newShareIndexInvalid(`Invalid share type provided (${e}). Valid share types are ${m}.`);if(this.tKey.metadata.factorPubs[this.tKey.tssTag].length>=v)throw M.maximumFactorsReached(`The maximum number of allowable factors (${v}) has been reached.`);await this.tkey.addFactorPub({existingFactorKey:this.state.factorKey,authSignatures:this.signatures,newFactorPub:t,newTSSIndex:e,refreshShares:this.state.tssShareIndex!==e})}async getMetadataShare(){try{var e,t;const r=null===(e=this.tKey)||void 0===e?void 0:e.metadata.getLatestPublicPolynomial().getPolynomialID(),i=null===(t=this.tKey)||void 0===t?void 0:t.shares[r];let n=null;for(const e in i)e!==w.toString()&&(n=i[e]);if(!n)throw M.noMetadataShareFound();return n}catch(e){throw Cs.error("create device share error",e),M.default(e.message)}}async deleteMetadataShareBackup(e){var t,r;await this.tKey.addLocalMetadataTransitions({input:[{message:ge,dateAdded:Date.now()}],privKey:[e]}),null!==(t=this.tkey)&&void 0!==t&&t.manualSync||await(null===(r=this.tkey)||void 0===r?void 0:r.syncLocalMetadataTransitions())}async backupMetadataShare(e){var t,r,i;const n=await this.getMetadataShare();await(null===(t=this.tKey)||void 0===t?void 0:t.addLocalMetadataTransitions({input:[n],privKey:[e]})),null!==(r=this.tkey)&&void 0!==r&&r.manualSync||await(null===(i=this.tkey)||void 0===i?void 0:i.syncLocalMetadataTransitions())}async addFactorDescription(e){var t;const{factorKey:r,shareDescription:i,updateMetadata:n}=e;let{additionalMetadata:s}=e;s||(s={});const{tssIndex:o}=await this.tKey.getTSSShare(r),a=Ee(r,zr).toSEC1(zr,!0).toString("hex"),c=se(se({module:i,dateAdded:Date.now()},s),{},{tssShareIndex:o});await(null===(t=this.tKey)||void 0===t?void 0:t.addShareDescription(a,JSON.stringify(c),n))}resetState(){this.ready=!1,this.tkey=null,this.torusSp=null,this.storageLayer=null,this.state={accountIndex:0}}_getPostBoxKey(e){return Pi.getPostboxKey(e)}_getSignatures(e){return e.filter((e=>!!e)).map((e=>JSON.stringify({data:e.token,sig:e.signature})))}isNodejsOrRN(e){return"nodejs"===e||"react-native"===e}async featureRequest(){const e=o[this.options.web3AuthNetwork],t={network:this.options.web3AuthNetwork,client_id:this.options.web3AuthClientId,is_mpc_core_kit:"true",enable_gating:"true",session_time:this.options.sessionTime.toString()},r=new URL(`${e}/api/feature-access`);r.search=new URLSearchParams(t).toString();const i=await fetch(r);if(200!==i.status){this.resetState();const e=await i.json();throw M.default(e.error)}return i.json()}getAccountNonce(){return this.tkey.computeAccountNonce(this.state.accountIndex)}async sign_ECDSA_secp256k1(e,t=!1,r){const i=async(e,t,r,i)=>{const{r:n,s,recoveryParam:o}=await e.sign(r.toString("base64"),!0,"","keccak256",{signatures:i});return e.cleanup({signatures:i,server_coeffs:t}),{v:o,r:_s(n),s:_s(s)}};t||(e=(0,ln.S)(e));const n=(null==r?void 0:r.client)&&(null==r?void 0:r.serverCoeffs),{client:s,serverCoeffs:o}=n?r:await this.precompute_secp256k1(),{signatures:a}=this;if(!a)throw M.signaturesNotPresent();try{return await i(s,o,e,a)}catch(t){if(!n)throw t;const{client:r,serverCoeffs:s}=await this.precompute_secp256k1();return await i(r,s,e,a)}}async sign_ed25519(e,t=!1){if(t)throw M.default("hashed data not supported for ed25519");const r=li(this.options.web3AuthNetwork,"ed25519");if(!r.torusNodeTSSEndpoints)throw M.default("could not fetch tss node endpoints");const i=r.torusNodeTSSEndpoints.map(((e,t)=>({index:r.torusIndexes[t],url:`${e}/`}))),n=xs(i,Math.floor(i.length/2)+1),s=n.map((e=>e.index)),o=Math.max(...n.map((e=>e.index)))+1,a=new Ln,{serverCoefficients:c,clientCoefficient:h}=As(a,s,o,this.state.tssShareIndex),d=await this.getPubKey(),u=a.keyFromPublic(d).getPublic();if(0!==this.state.accountIndex)throw M.default("Account index not supported for ed25519");const{tssShare:f}=await this.tKey.getTSSShare(this.state.factorKey),l=f.mul(h).umod(a.n),p=a.scalarToBuffer(l,Ls).toString("hex"),y=this.getTssNonce(),m=Ts(),g=Os(this.verifier,this.verifierId,this.tKey.tssTag,y,m),b=n.map((e=>e.url)),v=a.pointToBuffer(u,Ls).toString("hex"),w=c.map((e=>a.scalarToBuffer(e,Ls).toString("hex"))),S=await async function(e,t,r,i,n,s,o,a,c,h){const d=new hs(t,s);await d.connect(i,n),i.forEach(((e,o)=>{const u=d.getSocket(e);if(void 0===u)throw new Error(`socket not found: party ${e}`);(async function(e,t,r,i,n,s,o,a,c,h,d){const u=n.slice(),f=s.slice().map((e=>e.endsWith("/")?e.slice(0,-1):e));u.push(o),f.push(`websocket:${a.id}`);const l={session:t,msg:ss(c),player_index:r,pubkey:i,parties:u,endpoints:f,signatures:h,share_coefficient:d},p=new URL("sign",e),y=await fetch(p,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!y.ok){const e=(await y.json()).message;throw new Error(e)}})(new URL(n[o]),t,e,a,i,n,s,u,c,r,h?h[o]:void 0).catch((e=>{console.error(`Server ${o}: ${e}`)}))}));const u=function(){const e=new Uint8Array(32);return crypto.getRandomValues(e),e}(),f=new os;try{const t=f.add(new e.RngSeed(u)),r=f.add(e.KeyShare.from_raw(s,o,a));return f.add(await e.sign(t,d,new Uint32Array(i),r,c)).to_hex()}finally{f.free(),d.close()}}(this.wasmLib,g,this.signatures,s,b,o,p,v,e,w);return Cs.info(`signature: ${S}`),Ls.from(S,"hex")}async loadTssWasm(){return this.wasmLib?this.wasmLib:"function"==typeof this._tssLib.load?this._tssLib.load():this._tssLib.lib?this._tssLib.lib:void 0}}})(),i})())); \ No newline at end of file diff --git a/package/dist/mpcCoreKit.umd.min.js.LICENSE.txt b/package/dist/mpcCoreKit.umd.min.js.LICENSE.txt deleted file mode 100644 index df537c53..00000000 --- a/package/dist/mpcCoreKit.umd.min.js.LICENSE.txt +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ diff --git a/package/dist/types/constants.d.ts b/package/dist/types/constants.d.ts deleted file mode 100644 index e99d8339..00000000 --- a/package/dist/types/constants.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -export declare const WEB3AUTH_NETWORK: { - readonly MAINNET: "sapphire_mainnet"; - readonly DEVNET: "sapphire_devnet"; -}; -export declare const USER_PATH: { - readonly NEW: "NewAccount"; - readonly EXISTING: "ExistingAccount"; - readonly REHYDRATE: "RehydrateAccount"; - readonly RECOVER: "RecoverAccount"; -}; -export declare enum FactorKeyTypeShareDescription { - HashedShare = "hashedShare", - SecurityQuestions = "tssSecurityQuestions", - DeviceShare = "deviceShare", - SeedPhrase = "seedPhrase", - PasswordShare = "passwordShare", - SocialShare = "socialShare", - Other = "Other" -} -export declare const DELIMITERS: { - Delimiter1: string; - Delimiter2: string; - Delimiter3: string; - Delimiter4: string; -}; -export declare const ERRORS: { - TKEY_SHARES_REQUIRED: string; - INVALID_BACKUP_SHARE: string; -}; -export declare const SOCIAL_FACTOR_INDEX = 1; -/** - * Defines the TSS Share Index in a simplified way for better implementation. - **/ -export declare enum TssShareType { - DEVICE = 2, - RECOVERY = 3 -} -export declare const VALID_SHARE_INDICES: TssShareType[]; -export declare const SCALAR_LEN = 32; -export declare const FIELD_ELEMENT_HEX_LEN: number; -export declare const MAX_FACTORS = 10; -export declare const SOCIAL_TKEY_INDEX = 1; diff --git a/package/dist/types/helper/browserStorage.d.ts b/package/dist/types/helper/browserStorage.d.ts deleted file mode 100644 index ef5809ac..00000000 --- a/package/dist/types/helper/browserStorage.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { IAsyncStorage, IStorage } from "../interfaces"; -export declare class MemoryStorage implements IStorage { - private _store; - getItem(key: string): string | null; - setItem(key: string, value: string): void; - removeItem(key: string): void; - clear(): void; -} -export declare class AsyncStorage { - storage: IAsyncStorage | IStorage; - private _storeKey; - constructor(storeKey: string, storage: IAsyncStorage | IStorage); - toJSON(): Promise; - resetStore(): Promise>; - getStore(): Promise>; - get(key: string): Promise; - set(key: string, value: T): Promise; - remove(key: string): Promise; -} diff --git a/package/dist/types/helper/errors.d.ts b/package/dist/types/helper/errors.d.ts deleted file mode 100644 index aa9b8657..00000000 --- a/package/dist/types/helper/errors.d.ts +++ /dev/null @@ -1,98 +0,0 @@ -interface ErrorOptions { - cause?: unknown; -} -/** - * Allows to easily extend a base class to create custom applicative errors. - * - * example: - * ``` - * class HttpError extends CustomError { - * public constructor( - * public code: number, - * message?: string, - * cause?: Error, - * ) { - * super(message, { cause }) - * } - * } - * - * new HttpError(404, 'Not found') - * ``` - */ -export declare class CustomError extends Error { - name: string; - constructor(message?: string, options?: ErrorOptions); -} -interface ICoreKitError extends CustomError { - name: string; - code: number; - message: string; - toString(): string; -} -declare abstract class AbstractCoreKitError extends CustomError implements ICoreKitError { - code: number; - message: string; - constructor(code?: number, message?: string); - toJSON(): ICoreKitError; - toString(): string; -} -/** - * CoreKitError, extension for Error using CustomError - * - * Usage: - * 1. throw CoreKitError.factorKeyNotPresent("Required factor key missing in the operation."); // Use a predefined method to throw a common error - * 2. throw CoreKitError.fromCode(1001); // Throw an error using a code for a common error - * 3. throw new CoreKitError(1102, "'tkey' instance has not been initialized."); // Throw a specific error with a custom message - * - * Guide: - * 1000 - Configuration errors - * 1100 - TSS and key management errors - * 1200 - Factor key and authentication errors - * 1300 - Initialization and session management - */ -declare class CoreKitError extends AbstractCoreKitError { - protected static messages: { - [key: number]: string; - }; - constructor(code: number, message: string); - static fromCode(code: number, extraMessage?: string): ICoreKitError; - static default(extraMessage?: string): ICoreKitError; - static chainConfigInvalid(extraMessage?: string): ICoreKitError; - static clientIdInvalid(extraMessage?: string): ICoreKitError; - static storageTypeUnsupported(extraMessage?: string): ICoreKitError; - static oauthLoginUnsupported(extraMessage?: string): ICoreKitError; - static noValidStorageOptionFound(extraMessage?: string): ICoreKitError; - static noDataFoundInStorage(extraMessage?: string): ICoreKitError; - static invalidConfig(extraMessage?: string): ICoreKitError; - static tssLibRequired(extraMessage?: string): ICoreKitError; - static tkeyInstanceUninitialized(extraMessage?: string): ICoreKitError; - static duplicateTssIndex(extraMessage?: string): ICoreKitError; - static nodeDetailsRetrievalFailed(extraMessage?: string): ICoreKitError; - static prefetchValueExceeded(extraMessage?: string): ICoreKitError; - static invalidTorusLoginResponse(extraMessage?: string): ICoreKitError; - static invalidTorusAggregateLoginResponse(extraMessage?: string): ICoreKitError; - static unsupportedRedirectMethod(extraMessage?: string): ICoreKitError; - static postBoxKeyMissing(extraMessage?: string): ICoreKitError; - static tssShareTypeIndexMissing(extraMessage?: string): ICoreKitError; - static tssPublicKeyOrEndpointsMissing(extraMessage?: string): ICoreKitError; - static activeSessionNotFound(extraMessage?: string): ICoreKitError; - static tssNoncesMissing(extraMessage?: string): ICoreKitError; - static tssKeyImportNotAllowed(extraMessage?: string): ICoreKitError; - static factorKeyNotPresent(extraMessage?: string): ICoreKitError; - static factorKeyAlreadyExists(extraMessage?: string): ICoreKitError; - static mfaAlreadyEnabled(extraMessage?: string): ICoreKitError; - static cannotDeleteLastFactor(extraMessage?: string): ICoreKitError; - static factorInUseCannotBeDeleted(extraMessage?: string): ICoreKitError; - static userNotLoggedIn(extraMessage?: string): ICoreKitError; - static providedFactorKeyInvalid(extraMessage?: string): ICoreKitError; - static factorEncsMissing(extraMessage?: string): ICoreKitError; - static noMetadataFound(extraMessage?: string): ICoreKitError; - static newShareIndexInvalid(extraMessage?: string): ICoreKitError; - static maximumFactorsReached(extraMessage?: string): ICoreKitError; - static noMetadataShareFound(extraMessage?: string): ICoreKitError; - static signaturesNotPresent(extraMessage?: string): ICoreKitError; - static factorPubsMissing(extraMessage?: string): ICoreKitError; - static commitChangesBeforeMFA(extraMessage?: string): ICoreKitError; - static mpcCoreKitNotInitialized(extraMessage?: string): ICoreKitError; -} -export default CoreKitError; diff --git a/package/dist/types/helper/factorSerialization.d.ts b/package/dist/types/helper/factorSerialization.d.ts deleted file mode 100644 index e6ac16f5..00000000 --- a/package/dist/types/helper/factorSerialization.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Converts a mnemonic to a BN. - * @param shareMnemonic - The mnemonic to convert. - * @returns A BN respective to your mnemonic - */ -export declare function mnemonicToKey(shareMnemonic: string): string; -/** - * Converts a BN to a mnemonic. - * @param shareBN - The BN to convert. - * @returns A mnemonic respective to your BN - */ -export declare function keyToMnemonic(shareHex: string): string; diff --git a/package/dist/types/helper/index.d.ts b/package/dist/types/helper/index.d.ts deleted file mode 100644 index 1e50092b..00000000 --- a/package/dist/types/helper/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./browserStorage"; -export * from "./factorSerialization"; -export * from "./securityQuestion"; diff --git a/package/dist/types/helper/securityQuestion.d.ts b/package/dist/types/helper/securityQuestion.d.ts deleted file mode 100644 index db62049b..00000000 --- a/package/dist/types/helper/securityQuestion.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { StringifiedType } from "@tkey/common-types"; -import { TssShareType } from "../constants"; -import type { Web3AuthMPCCoreKit } from "../mpcCoreKit"; -export declare class TssSecurityQuestionStore { - shareIndex: string; - factorPublicKey: string; - question: string; - constructor(shareIndex: string, factorPublicKey: string, question: string); - static fromJSON(json: StringifiedType): TssSecurityQuestionStore; - toJSON(): StringifiedType; -} -export interface setSecurityQuestionParams { - mpcCoreKit: Web3AuthMPCCoreKit; - question: string; - answer: string; - shareType?: TssShareType; - description?: Record; - tssIndex?: TssShareType; -} -export interface changeSecurityQuestionParams { - mpcCoreKit: Web3AuthMPCCoreKit; - newQuestion: string; - newAnswer: string; - answer: string; -} -export declare class TssSecurityQuestion { - storeDomainName: string; - setSecurityQuestion(params: setSecurityQuestionParams): Promise; - changeSecurityQuestion(params: changeSecurityQuestionParams): Promise; - deleteSecurityQuestion(mpcCoreKit: Web3AuthMPCCoreKit, deleteFactorKey?: boolean): Promise; - recoverFactor(mpcCoreKit: Web3AuthMPCCoreKit, answer: string): Promise; - getQuestion(mpcCoreKit: Web3AuthMPCCoreKit): string; -} diff --git a/package/dist/types/index.d.ts b/package/dist/types/index.d.ts deleted file mode 100644 index 3e41424a..00000000 --- a/package/dist/types/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./constants"; -export * from "./helper"; -export * from "./interfaces"; -export * from "./mpcCoreKit"; -export * from "./utils"; -export { factorKeyCurve } from "@tkey/tss"; diff --git a/package/dist/types/interfaces.d.ts b/package/dist/types/interfaces.d.ts deleted file mode 100644 index 64168dc0..00000000 --- a/package/dist/types/interfaces.d.ts +++ /dev/null @@ -1,407 +0,0 @@ -import { KeyType, Point as TkeyPoint, ShareDescriptionMap } from "@tkey/common-types"; -import { TKeyTSS } from "@tkey/tss"; -import type { AGGREGATE_VERIFIER_TYPE, ExtraParams, LoginWindowResponse, PasskeyExtraParams, SubVerifierDetails, TorusVerifierResponse, UX_MODE_TYPE } from "@toruslabs/customauth"; -import { Client } from "@toruslabs/tss-client"; -import type { tssLib as TssDklsLib } from "@toruslabs/tss-dkls-lib"; -import type { tssLib as TssFrostLib } from "@toruslabs/tss-frost-lib"; -import BN from "bn.js"; -import { FactorKeyTypeShareDescription, TssShareType, USER_PATH, WEB3AUTH_NETWORK } from "./constants"; -export type CoreKitMode = UX_MODE_TYPE | "nodejs" | "react-native"; -export type V3TSSLibType = { - keyType: string; - lib: unknown; -}; -export type V4TSSLibType = typeof TssFrostLib | typeof TssDklsLib; -export type TssLibType = V4TSSLibType | V3TSSLibType; -export interface IStorage { - getItem(key: string): string | null; - setItem(key: string, value: string): void; -} -export interface IAsyncStorage { - async?: boolean; - getItem(key: string): Promise; - setItem(key: string, value: string): Promise; -} -export type SupportedStorageType = "local" | "session" | "memory" | IStorage; -export interface InitParams { - /** - * @defaultValue `true` - * handle the redirect result during init() - */ - handleRedirectResult: boolean; - /** - * @defaultValue `true` - * rehydrate the session during init() - */ - rehydrate?: boolean; -} -export interface BaseLoginParams { - serverTimeOffset?: number; -} -export interface SubVerifierDetailsParams extends BaseLoginParams { - subVerifierDetails: SubVerifierDetails; -} -export interface AggregateVerifierLoginParams extends BaseLoginParams { - aggregateVerifierIdentifier: string; - subVerifierDetailsArray: SubVerifierDetails[]; - aggregateVerifierType?: AGGREGATE_VERIFIER_TYPE; -} -export interface IFactorKey { - factorKey: BN; - shareType: TssShareType; -} -export declare enum COREKIT_STATUS { - NOT_INITIALIZED = "NOT_INITIALIZED", - INITIALIZED = "INITIALIZED", - REQUIRED_SHARE = "REQUIRED_SHARE", - LOGGED_IN = "LOGGED_IN" -} -export type MPCKeyDetails = { - metadataPubKey: TkeyPoint; - threshold: number; - requiredFactors: number; - totalFactors: number; - shareDescriptions: ShareDescriptionMap; - keyType: KeyType; - tssPubKey?: TkeyPoint; -}; -export type OAuthLoginParams = (SubVerifierDetailsParams | AggregateVerifierLoginParams) & { - importTssKey?: string; -}; -export type UserInfo = TorusVerifierResponse & LoginWindowResponse; -export interface EnableMFAParams { - /** - * A BN used for encrypting your Device/ Recovery TSS Key Share. You can generate it using `generateFactorKey()` function or use an existing one. - */ - factorKey?: BN; - /** - * Setting the Description of Share - Security Questions, Device Share, Seed Phrase, Password Share, Social Share, Other. Default is Other. - */ - shareDescription?: FactorKeyTypeShareDescription; - /** - * Additional metadata information you want to be stored alongside this factor for easy identification. - */ - additionalMetadata?: Record; -} -export interface CreateFactorParams extends EnableMFAParams { - /** - * Setting the Type of Share - Device or Recovery. - **/ - shareType: TssShareType; -} -export interface JWTLoginParams { - /** - * Name of the verifier created on Web3Auth Dashboard. In case of Aggregate Verifier, the name of the top level aggregate verifier. - */ - verifier: string; - /** - * Unique Identifier for the User. The verifier identifier field set for the verifier/ sub verifier. E.g. "sub" field in your on jwt id token. - */ - verifierId: string; - /** - * The idToken received from the Auth Provider. - */ - idToken: string; - /** - * Name of the sub verifier in case of aggregate verifier setup. This field should only be provided in case of an aggregate verifier. - */ - subVerifier?: string; - /** - * Extra verifier params in case of a WebAuthn verifier type. - */ - extraVerifierParams?: PasskeyExtraParams; - /** - * Any additional parameter (key value pair) you'd like to pass to the login function. - */ - additionalParams?: ExtraParams; - /** - * Key to import key into Tss during first time login. - */ - importTssKey?: string; - /** - * Number of TSS public keys to prefetch. For the best performance, set it to - * the number of factors you want to create. Set it to 0 for an existing user. - * Default is 1, maximum is 3. - */ - prefetchTssPublicKeys?: number; -} -export interface Web3AuthState { - postBoxKey?: string; - signatures?: string[]; - postboxKeyNodeIndexes?: number[]; - userInfo?: UserInfo; - tssShareIndex?: number; - tssPubKey?: Buffer; - accountIndex: number; - factorKey?: BN; -} -export interface ICoreKit { - /** - * The tKey instance, if initialized. - * TKey is the core module on which this wrapper SDK sits for easy integration. - **/ - tKey: TKeyTSS | null; - /** - * Signatures generated from the OAuth Login. - **/ - signatures: string[] | null; - /** - * Status of the current MPC Core Kit Instance - **/ - status: COREKIT_STATUS; - /** - * The current sdk state. - */ - state: Web3AuthState; - /** - * The current session id. - */ - sessionId: string; - /** - * The function used to initailise the state of MPCCoreKit - * Also is useful to resume an existing session. - * @param initParams - Contains flag for handleRedirectResult. Default is true. - */ - init(initParams?: InitParams): Promise; - /** - * Login using OAuth flow and initialize all relevant components. - * @param loginParams - Parameters for OAuth-based Login. - */ - loginWithOAuth(loginParams: OAuthLoginParams): Promise; - /** - * Login using JWT Token and initialize all relevant components. - * @param loginParams - Parameters for JWT-based Login. - */ - loginWithJWT(loginParams: JWTLoginParams): Promise; - /** - * Enable MFA for the user. Deletes the Cloud factor and generates a new - * factor key and a backup factor key. Recommended for Non Custodial Flow. - * Stores the factor key in browser storage and returns the backup factor key. - * - * ** NOTE before enableMFA, you will need to commitChanges if manualSync is true. - * - * @param enableMFAParams - Parameters for recovery factor for MFA. - * @param recoveryFactor - Default is true. If false, recovery factor will NOT be created. - * @returns The backup factor key if if recoveryFacort is true else empty string. - */ - enableMFA(enableMFAParams: EnableMFAParams, recoveryFactor?: boolean): Promise; - /** - * Second step for login where the user inputs their factor key. - * @param factorKey - A BN used for encrypting your Device/ Recovery TSS Key - * Share. You can generate it using `generateFactorKey()` function or use an - * existing one. - */ - inputFactorKey(factorKey: BN): Promise; - /** - * Returns the current Factor Key and TssShareType in MPC Core Kit State - **/ - getCurrentFactorKey(): IFactorKey; - /** - * Creates a new factor for authentication. Generates and returns a new factor - * key if no factor key is provided in `params`. - * @param createFactorParams - Parameters for creating a new factor. - * @returns The factor key. - */ - createFactor(createFactorParams: CreateFactorParams): Promise; - /** - * Deletes the factor identified by the given public key, including all - * associated metadata. - * @param factorPub - The public key of the factor to delete. - */ - deleteFactor(factorPub: TkeyPoint): Promise; - /** - * Logs out the user, terminating the session. - */ - logout(): Promise; - /** - * Get user information provided by the OAuth provider. - */ - getUserInfo(): UserInfo; - /** - * Get information about how the keys of the user is managed according to the information in the metadata server. - */ - getKeyDetails(): MPCKeyDetails; - /** - * Commit the changes made to the user's account when in manual sync mode. - */ - commitChanges(): Promise; - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Exports the private key scalar for the current account index. - * - * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. - */ - _UNSAFE_exportTssKey(): Promise; - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Attempts to export the ed25519 private key seed. Only works if import key - * flow has been used. - */ - _UNSAFE_exportTssEd25519Seed(): Promise; -} -export type WEB3AUTH_NETWORK_TYPE = (typeof WEB3AUTH_NETWORK)[keyof typeof WEB3AUTH_NETWORK]; -export type USER_PATH_TYPE = (typeof USER_PATH)[keyof typeof USER_PATH]; -export interface Web3AuthOptions { - /** - * The Web3Auth Client ID for your application. Find one at https://dashboard.web3auth.io - */ - web3AuthClientId: string; - /** - * The threshold signing library to use. - */ - tssLib: TssLibType; - /** - * @defaultValue `false` - */ - manualSync?: boolean; - /** - * @defaultValue `${window.location.origin}/serviceworker` - */ - baseUrl?: string; - /** - * - * @defaultValue `'sapphire_mainnet'` - */ - web3AuthNetwork?: WEB3AUTH_NETWORK_TYPE; - /** - * storage for mpc-core-kit's local state. - * storage replaces previous' storageKey and asyncStorage options. - * - * Migration from storageKey and asyncStorage to storage guide. - * - * For StorageKey, please replace - * - undefined with localStorage - * - "local" with localStorage - * - "session" with sessionStorage - * - "memory" with new MemoryStorage() - * - * For asyncStorage, provide instance of IAsyncStorage. - * - */ - storage: IAsyncStorage | IStorage; - /** - * @defaultValue false - * disable session manager creation - * signatures from web3auth newtorks will still expired after sessionTime if session manager is disabled - */ - disableSessionManager?: boolean; - /** - * @defaultValue 86400 - */ - sessionTime?: number; - /** - * @defaultValue `'POPUP'` - */ - uxMode?: CoreKitMode; - /** - * @defaultValue `false` - * enables logging of the internal packages. - */ - enableLogging?: boolean; - /** - * This option is used to specify the url path where user will be - * redirected after login. Redirect Uri for OAuth is baseUrl/redirectPathName. - * - * - * @defaultValue `"redirect"` - * - * @remarks - * At verifier's interface (where you obtain client id), please use baseUrl/redirectPathName - * as the redirect_uri - * - * Torus Direct SDK installs a service worker relative to baseUrl to capture - * the auth redirect at `redirectPathName` path. - * - * For ex: While using serviceworker if `baseUrl` is "http://localhost:3000/serviceworker" and - * `redirectPathName` is 'redirect' (which is default) - * then user will be redirected to http://localhost:3000/serviceworker/redirect page after login - * where service worker will capture the results and send it back to original window where login - * was initiated. - * - * For browsers where service workers are not supported or if you wish to not use - * service workers,create and serve redirect page (i.e redirect.html file which is - * available in serviceworker folder of this package) - * - * If you are using redirect uxMode, you can get the results directly on your `redirectPathName` - * path using `getRedirectResult` function. - * - * For ex: if baseUrl is "http://localhost:3000" and `redirectPathName` is 'auth' - * then user will be redirected to http://localhost:3000/auth page after login - * where you can get login result by calling `getRedirectResult` on redirected page mount. - * - * Please refer to examples https://github.com/torusresearch/customauth/tree/master/examples - * for more understanding. - * - */ - redirectPathName?: string; - /** - * @defaultValue `false` - * Disables the cloud factor key, enabling the one key semi custodial flow. - * Recommended for Non Custodial Flow. - */ - disableHashedFactorKey?: boolean; - /** - * @defaultValue `Web3AuthOptions.web3AuthClientId` - * Overwrites the default value ( clientId ) used as nonce for hashing the hash factor key. - * - * If you want to aggregate the mfa status of client id 1 and client id 2 apps - * set hashedFactorNonce to some common clientID, which can be either client id 1 or client id 2 or any other unique string - * #PR 72 - * Do not use this unless you know what you are doing. - */ - hashedFactorNonce?: string; - serverTimeOffset?: number; - /** - * Set this flag to false to generate keys on client side - * by default keys are generated on using dkg protocol on a distributed network - * Note: This option is not supported for ed25519 key type - * @defaultValue `true` - */ - useDKG?: boolean; - /** - * @defaultValue `false` for secp256k1 and `true` for ed25519 - * Set this flag to true to use the client generated key for signing - * Note: This option is set to true for ed25519 key type by default to ensure ed25519 mpc key seed exportablity. - * The seed thn can be used for importing user's key other wallets like phantom etc - * If you set this flag to false for ed25519 key type, you will not be able to export the seed for ed25519 keys and - * only scalar will be exported, scalar can be used for signing outside of this sdk but not for importing the key in other wallets. - */ - useClientGeneratedTSSKey?: boolean; -} -export type Web3AuthOptionsWithDefaults = Required; -export interface SessionData { - /** - * @deprecated Use `postBoxKey` instead. - */ - oAuthKey?: string; - postBoxKey?: string; - postboxKeyNodeIndexes?: number[]; - factorKey: string; - tssShareIndex: number; - tssPubKey: string; - signatures: string[]; - userInfo: UserInfo; -} -export interface TkeyLocalStoreData { - factorKey: string; -} -export interface CoreKitSigner { - keyType: KeyType; - sign(data: Buffer, hashed?: boolean): Promise; - getPubKey(): Buffer; -} -export interface EthSig { - v: number; - r: Buffer; - s: Buffer; -} -export interface EthereumSigner { - sign: (msgHash: Buffer) => Promise; - getPublic: () => Promise; -} -export interface Secp256k1PrecomputedClient { - client: Client; - serverCoeffs: Record; -} diff --git a/package/dist/types/mpcCoreKit.d.ts b/package/dist/types/mpcCoreKit.d.ts deleted file mode 100644 index 42c5b2bd..00000000 --- a/package/dist/types/mpcCoreKit.d.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { BNString, KeyType, Point } from "@tkey/common-types"; -import { TKeyTSS, TSSTorusServiceProvider } from "@tkey/tss"; -import { Client } from "@toruslabs/tss-client"; -import BN from "bn.js"; -import { COREKIT_STATUS, CreateFactorParams, EnableMFAParams, ICoreKit, IFactorKey, InitParams, JWTLoginParams, MPCKeyDetails, OAuthLoginParams, Secp256k1PrecomputedClient, UserInfo, Web3AuthOptions, Web3AuthState } from "./interfaces"; -export declare class Web3AuthMPCCoreKit implements ICoreKit { - state: Web3AuthState; - torusSp: TSSTorusServiceProvider | null; - private options; - private storageLayer; - private tkey; - private sessionManager?; - private currentStorage; - private _storageBaseKey; - private enableLogging; - private ready; - private _tssLib; - private wasmLib; - private _keyType; - private atomicCallStackCounter; - constructor(options: Web3AuthOptions); - get tKey(): TKeyTSS; - get keyType(): KeyType; - get signatures(): string[]; - get _storageKey(): string; - get status(): COREKIT_STATUS; - get sessionId(): string; - get supportsAccountIndex(): boolean; - private get verifier(); - private get verifierId(); - private get isRedirectMode(); - private get useClientGeneratedTSSKey(); - _UNSAFE_recoverTssKey(factorKey: string[]): Promise; - init(params?: InitParams): Promise; - loginWithOAuth(params: OAuthLoginParams): Promise; - loginWithJWT(params: JWTLoginParams): Promise; - handleRedirectResult(): Promise; - inputFactorKey(factorKey: BN): Promise; - setTssWalletIndex(accountIndex: number): void; - getCurrentFactorKey(): IFactorKey; - enableMFA(enableMFAParams: EnableMFAParams, recoveryFactor?: boolean): Promise; - getTssFactorPub: () => string[]; - createFactor(createFactorParams: CreateFactorParams): Promise; - /** - * Get public key point in SEC1 format. - */ - getPubKey(): Buffer; - /** - * Get public key point. - */ - getPubKeyPoint(): Point; - /** - * Get public key in ed25519 format. - * - * Throws an error if keytype is not compatible with ed25519. - */ - getPubKeyEd25519(): Buffer; - precompute_secp256k1(): Promise<{ - client: Client; - serverCoeffs: Record; - }>; - sign(data: Buffer, hashed?: boolean, secp256k1Precompute?: Secp256k1PrecomputedClient): Promise; - deleteFactor(factorPub: Point, factorKey?: BNString): Promise; - logout(): Promise; - getUserInfo(): UserInfo; - getKeyDetails(): MPCKeyDetails; - commitChanges(): Promise; - setManualSync(manualSync: boolean): Promise; - setDeviceFactor(factorKey: BN, replace?: boolean): Promise; - getDeviceFactor(): Promise; - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Exports the private key scalar for the current account index. - * - * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. - */ - _UNSAFE_exportTssKey(): Promise; - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Attempts to export the ed25519 private key seed. Only works if import key - * flow has been used. - */ - _UNSAFE_exportTssEd25519Seed(): Promise; - updateState(newState: Partial): void; - protected atomicSync(f: () => Promise): Promise; - private importTssKey; - private getTssNonce; - private setupTkey; - private handleNewUser; - private handleExistingUser; - private finalizeTkey; - private checkReady; - private rehydrateSession; - private createSession; - private isMetadataPresent; - private checkIfFactorKeyValid; - private getFactorKeyMetadata; - /** - * Copies a share and makes it available under a new factor key. If no share - * exists at the specified share index, a new share is created. - * @param newFactorTSSIndex - The index of the share to copy. - * @param newFactorPub - The public key of the new share. - */ - private copyOrCreateShare; - private getMetadataShare; - private deleteMetadataShareBackup; - private backupMetadataShare; - private addFactorDescription; - private resetState; - private _getPostBoxKey; - private _getSignatures; - private isNodejsOrRN; - private featureRequest; - private getAccountNonce; - private sign_ECDSA_secp256k1; - private sign_ed25519; - private loadTssWasm; -} diff --git a/package/dist/types/utils.d.ts b/package/dist/types/utils.d.ts deleted file mode 100644 index c45e1def..00000000 --- a/package/dist/types/utils.d.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { Point as TkeyPoint } from "@tkey/common-types"; -import { EllipticCurve } from "@toruslabs/elliptic-wrapper"; -import BN from "bn.js"; -import { eddsa as EDDSA } from "elliptic"; -import loglevel from "loglevel"; -import { CoreKitSigner, EthereumSigner, IAsyncStorage, IStorage } from "./interfaces"; -export declare const ed25519: () => EDDSA; -/** - * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS. - */ -export declare function randomBytes(bytesLength?: number): Uint8Array; -export declare function generateEd25519Seed(): Buffer; -export declare const generateFactorKey: () => { - private: BN; - pub: TkeyPoint; -}; -export declare const generateTSSEndpoints: (tssNodeEndpoints: string[], parties: number, clientIndex: number, nodeIndexes: number[]) => { - endpoints: string[]; - tssWSEndpoints: string[]; - partyIndexes: number[]; - nodeIndexesReturned: number[]; -}; -export declare function storageAvailable(storage: IStorage | IAsyncStorage): Promise; -/** - * Parses a JWT Token, without verifying the signature. - * @param token - JWT Token - * @returns Extracted JSON payload from the token - */ -export declare function parseToken(token: string): any; -export declare const getHashedPrivateKey: (postboxKey: string, clientId: string) => BN; -/** - * Converts an elliptic curve scalar represented by a BN to a byte buffer in SEC1 - * format (i.e., padded to maximum length). - * @param s - The scalar of type BN. - * @returns The SEC1 encoded representation of the scalar. - */ -export declare function scalarBNToBufferSEC1(s: BN): Buffer; -export interface ServerEndpoint { - index: number; - url: string; -} -export declare function sampleEndpoints(endpoints: ServerEndpoint[], n: number): ServerEndpoint[]; -export declare function fraction(curve: EllipticCurve, nom: BN, denom: BN): BN; -export declare function lagrangeCoefficient(curve: EllipticCurve, xCoords: BN[], targetCoeff: number, targetX: BN): BN; -export declare function lagrangeCoefficients(curve: EllipticCurve, xCoords: BN[] | number[], targetX: BN | number): BN[]; -/** - * Derive share coefficients for client and servers. - * - * @param curve - The curve to be used. - * @param serverXCoords - The source and target x-coordinates of the selected - * servers. - * @param targetClientXCoord - The target x-coordinate of the client. - * @param sourceClientXCoord - The source x-coordinate of the client in the L1 - * hierarchy. - * @returns - The share coefficients for the client and the servers. - */ -export declare function deriveShareCoefficients(ec: EllipticCurve, serverXCoords: number[], targetClientXCoord: number, sourceClientXCoord?: number): { - serverCoefficients: BN[]; - clientCoefficient: BN; -}; -export declare function generateSessionNonce(): string; -export declare function getSessionId(verifier: string, verifierId: string, tssTag: string, tssNonce: number, sessionNonce: string): string; -export declare function sigToRSV(sig: Buffer): { - r: Buffer; - s: Buffer; - v: number; -}; -export declare function makeEthereumSigner(kit: CoreKitSigner): EthereumSigner; -export declare const log: loglevel.Logger; diff --git a/package/package.json b/package/package.json deleted file mode 100644 index 829eb6c5..00000000 --- a/package/package.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "name": "@web3auth/mpc-core-kit", - "version": "3.2.6", - "description": "MPC CoreKit SDK for web3Auth", - "keywords": [ - "web3Auth/mpc-core-kit", - "web3Auth", - "MPC", - "blockchain", - "ethereum" - ], - "main": "dist/lib.cjs/index.js", - "module": "dist/lib.esm/index.js", - "unpkg": "dist/mpcCoreKit.umd.min.js", - "jsdelivr": "dist/mpcCoreKit.umd.min.js", - "types": "dist/types/index.d.ts", - "author": "Torus Labs", - "homepage": "https://github.com/Web3Auth/mpc-core-kit/tree/master#readme", - "license": "ISC", - "scripts": { - "test": "node --test -r esbuild-register tests/*.spec.ts", - "dev": "torus-scripts start", - "build": "torus-scripts build", - "release": "torus-scripts release", - "lint": "eslint --fix 'src/**/*.ts'", - "prepack": "npm run build", - "pre-commit": "lint-staged --cwd ." - }, - "files": [ - "dist" - ], - "peerDependencies": { - "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0" - }, - "peerDependenciesMeta": { - "@toruslabs/tss-dkls-lib": { - "optional": true - }, - "@toruslabs/tss-frost-lib": { - "optional": true - } - }, - "dependencies": { - "@tkey/common-types": "^15.1.0", - "@tkey/core": "^15.1.0", - "@tkey/share-serialization": "^15.1.0", - "@tkey/storage-layer-torus": "^15.1.0", - "@tkey/tss": "^15.1.0", - "@toruslabs/constants": "^14.0.0", - "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.0", - "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/fnd-base": "^14.0.0", - "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/openlogin-utils": "^8.2.1", - "@toruslabs/torus.js": "file:./toruslabs-torus.js-15.1.3.tgz", - "@toruslabs/tss-client": "^3.1.0", - "@toruslabs/tss-frost-client": "0.3.1", - "@toruslabs/tss-frost-common": "^1.0.1", - "bn.js": "^5.2.1", - "bowser": "^2.11.0", - "elliptic": "^6.5.7", - "loglevel": "^1.9.2" - }, - "devDependencies": { - "@babel/register": "^7.25.7", - "@toruslabs/config": "^2.2.0", - "@toruslabs/eslint-config-typescript": "^3.3.3", - "@toruslabs/torus-scripts": "^6.1.2", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", - "@types/chai": "^4.3.16", - "@types/elliptic": "^6.4.18", - "@types/jsonwebtoken": "^9.0.7", - "@types/node": "^20.14.0", - "@typescript-eslint/eslint-plugin": "^6.7.0", - "chai": "^5.1.1", - "cross-env": "^7.0.3", - "dotenv": "^16.4.5", - "esbuild-register": "^3.6.0", - "eslint": "^8.56.0", - "husky": "^9.1.6", - "jsonwebtoken": "^9.0.2", - "lint-staged": "^15.2.10", - "mocha": "^10.7.3", - "node-fetch": "^3.3.2", - "prettier": "^3.3.3", - "rimraf": "^6.0.1", - "ts-node": "^10.9.2", - "tsconfig-paths": "^4.2.0", - "tsconfig-paths-webpack-plugin": "^4.1.0", - "tslib": "^2.7.0", - "typescript": "^5.6.3" - }, - "engines": { - "node": ">=20.x" - }, - "lint-staged": { - "!(*d).ts": [ - "eslint --cache --fix", - "prettier --write" - ] - }, - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/Web3Auth/mpc-core-kit" - }, - "bugs": { - "url": "https://github.com/Web3Auth/mpc-core-kit/issues" - } -} From c3fc22550aa240271580d04e9a5d27a5cd3f31ba Mon Sep 17 00:00:00 2001 From: Matthias Geihs Date: Mon, 16 Dec 2024 12:04:25 +0100 Subject: [PATCH 31/37] remove demo/dist --- demo/redirect-flow-example/.gitignore | 1 + .../dist/assets/index-CP_Sedkw.js | 1 - .../dist/assets/index-D6SSZYZQ.css | 1 - .../dist/assets/index-DX4e5JdD.js | 165 ------------------ .../dist/assets/index-LBjqkPsc.js | 1 - demo/redirect-flow-example/dist/favicon.ico | Bin 3870 -> 0 bytes demo/redirect-flow-example/dist/index.html | 46 ----- demo/redirect-flow-example/dist/logo192.png | Bin 5347 -> 0 bytes demo/redirect-flow-example/dist/logo512.png | Bin 9664 -> 0 bytes demo/redirect-flow-example/dist/manifest.json | 25 --- demo/redirect-flow-example/dist/robots.txt | 3 - 11 files changed, 1 insertion(+), 242 deletions(-) delete mode 100644 demo/redirect-flow-example/dist/assets/index-CP_Sedkw.js delete mode 100644 demo/redirect-flow-example/dist/assets/index-D6SSZYZQ.css delete mode 100644 demo/redirect-flow-example/dist/assets/index-DX4e5JdD.js delete mode 100644 demo/redirect-flow-example/dist/assets/index-LBjqkPsc.js delete mode 100644 demo/redirect-flow-example/dist/favicon.ico delete mode 100644 demo/redirect-flow-example/dist/index.html delete mode 100644 demo/redirect-flow-example/dist/logo192.png delete mode 100644 demo/redirect-flow-example/dist/logo512.png delete mode 100644 demo/redirect-flow-example/dist/manifest.json delete mode 100644 demo/redirect-flow-example/dist/robots.txt diff --git a/demo/redirect-flow-example/.gitignore b/demo/redirect-flow-example/.gitignore index 4d29575d..800f3a80 100644 --- a/demo/redirect-flow-example/.gitignore +++ b/demo/redirect-flow-example/.gitignore @@ -10,6 +10,7 @@ # production /build +/dist # misc .DS_Store diff --git a/demo/redirect-flow-example/dist/assets/index-CP_Sedkw.js b/demo/redirect-flow-example/dist/assets/index-CP_Sedkw.js deleted file mode 100644 index d959c50b..00000000 --- a/demo/redirect-flow-example/dist/assets/index-CP_Sedkw.js +++ /dev/null @@ -1 +0,0 @@ -var ne=Object.defineProperty;var oe=(e,t,o)=>t in e?ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var v=(e,t,o)=>oe(e,typeof t!="symbol"?t+"":t,o);import{O as se,P as C,Q as re,R as A,U as ie,V as ce,W as ae}from"./index-DX4e5JdD.js";function ue(e){return!!(e&&typeof e.then=="function")}Promise.resolve(!1);Promise.resolve(!0);const p=Promise.resolve();function S(e,t){return e||(e=0),new Promise(o=>setTimeout(()=>o(t),e))}function de(e,t){return Math.floor(Math.random()*(t-e+1)+e)}function _(){return Math.random().toString(36).substring(2)}let M=0;function m(){let e=Date.now()*1e3;return e<=M&&(e=M+1),M=e,e}const d=se.getLogger("broadcast-channel");d.setLevel("error");const le=m,fe="native";function me(e){const t={time:m(),messagesCallback:null,bc:new BroadcastChannel(e),subFns:[]};return t.bc.onmessage=o=>{t.messagesCallback&&t.messagesCallback(o.data)},t}function ge(e){e.bc.close(),e.subFns=[]}function pe(e,t){try{return e.bc.postMessage(t,!1),p}catch(o){return Promise.reject(o)}}function he(e,t){e.messagesCallback=t}function be(){if(typeof window>"u")return!1;if(typeof BroadcastChannel=="function"){if(BroadcastChannel._pubkey)throw new Error("BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill");return!0}else return!1}function ye(){return 150}const _e=Object.freeze(Object.defineProperty({__proto__:null,averageResponseTime:ye,canBeUsed:be,close:ge,create:me,microSeconds:le,onMessage:he,postMessage:pe,type:fe},Symbol.toStringTag,{value:"Module"}));class P{constructor(t){v(this,"ttl");v(this,"map",new Map);v(this,"_to",!1);this.ttl=t}has(t){return this.map.has(t)}add(t){this.map.set(t,U()),this._to||(this._to=!0,setTimeout(()=>{this._to=!1,we(this)},0))}clear(){this.map.clear()}}function we(e){const t=U()-e.ttl,o=e.map[Symbol.iterator]();for(;;){const n=o.next().value;if(!n)return;const s=n[0];if(n[1]"u"&&(t.webWorkerSupport=!0),t.idb||(t.idb={}),t.idb.ttl||(t.idb.ttl=1e3*45),t.idb.fallbackInterval||(t.idb.fallbackInterval=150),e.idb&&typeof e.idb.onclose=="function"&&(t.idb.onclose=e.idb.onclose),t.localstorage||(t.localstorage={}),t.localstorage.removeTimeout||(t.localstorage.removeTimeout=1e3*60),t.server||(t.server={}),t.server.url||(t.server.url="https://session.web3auth.io"),t.server.removeTimeout||(t.server.removeTimeout=1e3*60*5),e.methods&&(t.methods=e.methods),t}const ve=m,ke="pubkey.broadcast-channel-0-",l="messages",h={durability:"relaxed"},Me="idb";function E(){if(typeof indexedDB<"u")return indexedDB;if(typeof window<"u"){if(typeof window.mozIndexedDB<"u")return window.mozIndexedDB;if(typeof window.webkitIndexedDB<"u")return window.webkitIndexedDB;if(typeof window.msIndexedDB<"u")return window.msIndexedDB}return!1}function w(e){e.commit&&e.commit()}function K(e){const t=E(),o=ke+e,n=t.open(o);return n.onupgradeneeded=r=>{r.target.result.createObjectStore(l,{keyPath:"id",autoIncrement:!0})},new Promise((r,i)=>{n.onerror=c=>i(c),n.onsuccess=()=>{r(n.result)}})}function j(e,t,o){const n=Date.now(),s={uuid:t,time:n,data:o},r=e.transaction([l],"readwrite",h);return new Promise((i,c)=>{r.oncomplete=()=>i(),r.onerror=u=>c(u),r.objectStore(l).add(s),w(r)})}function Ce(e){const t=e.transaction(l,"readonly",h),o=t.objectStore(l),n=[];return new Promise(s=>{o.openCursor().onsuccess=r=>{const i=r.target.result;i?(n.push(i.value),i.continue()):(w(t),s(n))}})}function z(e,t){const o=e.transaction(l,"readonly",h),n=o.objectStore(l),s=[];let r=IDBKeyRange.bound(t+1,1/0);if(n.getAll){const c=n.getAll(r);return new Promise((a,u)=>{c.onerror=g=>u(g),c.onsuccess=function(g){a(g.target.result)}})}function i(){try{return r=IDBKeyRange.bound(t+1,1/0),n.openCursor(r)}catch{return n.openCursor()}}return new Promise((c,a)=>{const u=i();u.onerror=g=>a(g),u.onsuccess=g=>{const f=g.target.result;f?f.value.id{const r=n.delete(s);return new Promise(i=>{r.onsuccess=()=>i()})}))}function J(e,t){const o=Date.now()-t,n=e.transaction(l,"readonly",h),s=n.objectStore(l),r=[];return new Promise(i=>{s.openCursor().onsuccess=c=>{const a=c.target.result;if(a){const u=a.value;if(u.timeF(e,o.map(n=>n.id)))}function Se(e,t){return t=k(t),K(e).then(o=>{const n={closed:!1,lastCursorId:0,channelName:e,options:t,uuid:_(),eMIs:new P(t.idb.ttl*2),writeBlockPromise:p,messagesCallback:null,readQueuePromises:[],db:o,time:m()};return o.onclose=function(){n.closed=!0,t.idb.onclose&&t.idb.onclose()},W(n),n})}function W(e){e.closed||q(e).then(()=>S(e.options.idb.fallbackInterval)).then(()=>W(e))}function Pe(e,t){return!(e.uuid===t.uuid||t.eMIs.has(e.id)||e.data.time(t.filter(n=>!!n).map(n=>(n.id>e.lastCursorId&&(e.lastCursorId=n.id),n)).filter(n=>Pe(n,e)).sort((n,s)=>n.time-s.time).forEach(n=>{e.messagesCallback&&(e.eMIs.add(n.id),e.messagesCallback(n.data))}),p))}function Ee(e){e.closed=!0,e.db.close()}function Te(e,t){return e.writeBlockPromise=e.writeBlockPromise.then(()=>j(e.db,e.uuid,t)).then(()=>{de(0,10)===0&&V(e.db,e.options.idb.ttl)}),e.writeBlockPromise}function Ie(e,t,o){e.messagesCallbackTime=o,e.messagesCallback=t,q(e)}function Le(){return!!E()}function Be(e){return e.idb.fallbackInterval*2}const $e=Object.freeze(Object.defineProperty({__proto__:null,TRANSACTION_SETTINGS:h,averageResponseTime:Be,canBeUsed:Le,cleanOldMessages:V,close:Ee,commitIndexedDBTransaction:w,create:Se,createDatabase:K,getAllMessages:Ce,getIdb:E,getMessagesHigherThan:z,getOldMessages:J,microSeconds:ve,onMessage:Ie,postMessage:Te,removeMessagesById:F,type:Me,writeMessage:j},Symbol.toStringTag,{value:"Module"})),De=m,Ne="pubkey.broadcastChannel-",xe="localstorage";function T(){let e;if(typeof window>"u")return null;try{e=window.localStorage,e=window["ie8-eventlistener/storage"]||window.localStorage}catch{}return e}function I(e){return Ne+e}function Oe(e,t){return new Promise(o=>{S().then(()=>{const n=I(e.channelName),s={token:_(),time:Date.now(),data:t,uuid:e.uuid},r=JSON.stringify(s);T().setItem(n,r);const i=document.createEvent("Event");i.initEvent("storage",!0,!0),i.key=n,i.newValue=r,window.dispatchEvent(i),o()})})}function H(e,t){const o=I(e),n=s=>{s.key===o&&t(JSON.parse(s.newValue))};return window.addEventListener("storage",n),n}function X(e){window.removeEventListener("storage",e)}function Re(e,t){if(t=k(t),!Y())throw new Error("BroadcastChannel: localstorage cannot be used");const o=_(),n=new P(t.localstorage.removeTimeout),s={channelName:e,uuid:o,time:m(),eMIs:n};return s.listener=H(e,r=>{s.messagesCallback&&r.uuid!==o&&(!r.token||n.has(r.token)||r.data.time&&r.data.time{S().then(async()=>{const s=L(e.channelName),r=C(Buffer.from(s,"utf8")),i=await re(r.toString("hex"),{token:_(),time:Date.now(),data:t,uuid:e.uuid}),c={sameOriginCheck:!0,sameIpCheck:!0,key:A(r).toString("hex"),data:i,signature:(await ie(r,C(Buffer.from(i,"utf8")))).toString("hex")};return e.timeout&&(c.timeout=e.timeout),fetch(e.serverUrl+"/channel/set",{method:"POST",body:JSON.stringify(c),headers:{"Content-Type":"application/json; charset=utf-8"}}).then(o).catch(n)})})}function Q(e){if(b)return b;const t=ce(e,{transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:10});return t.on("connect_error",o=>{t.io.opts.transports=["polling","websocket"],d.error("connect error",o)}),t.on("connect",async()=>{const{engine:o}=t.io;d.debug("initially connected to",o.transport.name),o.once("upgrade",()=>{d.debug("upgraded",o.transport.name)}),o.once("close",n=>{d.debug("connection closed",n)})}),t.on("error",o=>{d.error("socket errored",o),t.disconnect()}),b=t,t}function G(e,t,o){const n=Q(e),s=L(t.channelName),r=C(Buffer.from(s,"utf8")),i=A(r).toString("hex");n.connected?n.emit("check_auth_status",i,{sameOriginCheck:!0,sameIpCheck:!0}):n.once("connect",()=>{d.debug("connected with socket"),n.emit("check_auth_status",i,{sameOriginCheck:!0,sameIpCheck:!0})});const c=()=>{n.once("connect",async()=>{y.has(t.channelName)&&n.emit("check_auth_status",i,{sameOriginCheck:!0,sameIpCheck:!0})})},a=()=>{if(!n||!y.has(t.channelName)){document.removeEventListener("visibilitychange",a);return}!n.connected&&document.visibilityState==="visible"&&c()},u=async g=>{try{const f=await ae(r.toString("hex"),g);d.info(f),o(f)}catch(f){d.error(f)}};return n.on("disconnect",()=>{d.debug("socket disconnected"),y.has(t.channelName)&&(d.error("socket disconnected unexpectedly, reconnecting socket"),c())}),n.on(`${i}_success`,u),typeof document<"u"&&document.addEventListener("visibilitychange",a),n}function We(){b&&b.disconnect()}function qe(e,t){t=k(t);const o=_(),n=new P(t.server.removeTimeout),s={channelName:e,uuid:o,eMIs:n,serverUrl:t.server.url,time:m()};return t.server.timeout&&(s.timeout=t.server.timeout),G(t.server.url,s,r=>{s.messagesCallback&&r.uuid!==s.uuid&&(!r.token||s.eMIs.has(r.token)||(s.eMIs.add(r.token),s.messagesCallback(r.data)))}),y.add(e),s}function He(e){y.delete(e.channelName)}function Xe(e,t,o){e.messagesCallbackTime=o,e.messagesCallback=t}function Ye(){return!0}function Qe(){return 500}const Ge=Object.freeze(Object.defineProperty({__proto__:null,averageResponseTime:Qe,canBeUsed:Ye,close:He,create:qe,getSocketInstance:Q,microSeconds:ze,onMessage:Xe,postMessage:Ve,removeStorageEventListener:We,setupSocketConnection:G,storageKey:L,type:Je},Symbol.toStringTag,{value:"Module"})),Ze=m,et="simulate",B=new Set,$=5;function tt(e){const t={time:m(),name:e,messagesCallback:null};return B.add(t),t}function nt(e){B.delete(e)}function ot(e,t){return new Promise(o=>setTimeout(()=>{Array.from(B).forEach(s=>{s.name===e.name&&s!==e&&s.messagesCallback&&s.times.type===e.type);if(n)return n;throw new Error("method-type "+e.type+" not found")}e.webWorkerSupport||(t=t.filter(n=>n.type!=="idb"));const o=t.find(n=>n.canBeUsed(e));if(o)return o;throw new Error(`No useable method found in ${JSON.stringify(D.map(n=>n.type))}`)}const Z=new Set;let ut=0;const ee=function(e,t){this.id=ut++,Z.add(this),this.name=e,N&&(t=N),this.options=k(t),this.method=at(this.options),this._iL=!1,this._onML=null,this._addEL={message:[],internal:[]},this._uMP=new Set,this._befC=[],this._prepP=null,dt(this)};ee._pubkey=!0;let N;ee.prototype={postMessage(e){if(this.closed)throw new Error("BroadcastChannel.postMessage(): Cannot post message after channel has closed "+JSON.stringify(e));return x(this,"message",e)},postInternal(e){return x(this,"internal",e)},set onmessage(e){const o={time:this.method.microSeconds(),fn:e};R(this,"message",this._onML),e&&typeof e=="function"?(this._onML=o,O(this,"message",o)):this._onML=null},addEventListener(e,t){const n={time:this.method.microSeconds(),fn:t};O(this,e,n)},removeEventListener(e,t){const o=this._addEL[e].find(n=>n.fn===t);R(this,e,o)},close(){if(this.closed)return;Z.delete(this),this.closed=!0;const e=this._prepP?this._prepP:p;return this._onML=null,this._addEL.message=[],e.then(()=>Promise.all(Array.from(this._uMP))).then(()=>Promise.all(this._befC.map(t=>t()))).then(()=>this.method.close(this._state))},get type(){return this.method.type},get isClosed(){return this.closed}};function x(e,t,o){const s={time:e.method.microSeconds(),type:t,data:o};return(e._prepP?e._prepP:p).then(()=>{const i=e.method.postMessage(e._state,s);return e._uMP.add(i),i.catch().then(()=>e._uMP.delete(i)),i})}function dt(e){const t=e.method.create(e.name,e.options);ue(t)?(e._prepP=t,t.then(o=>{e._state=o})):e._state=t}function te(e){return e._addEL.message.length>0||e._addEL.internal.length>0}function O(e,t,o){e._addEL[t].push(o),lt(e)}function R(e,t,o){e._addEL[t]=e._addEL[t].filter(n=>n!==o),ft(e)}function lt(e){if(!e._iL&&te(e)){const t=n=>{e._addEL[n.type].forEach(s=>{(n.time>=s.time||e.method.type==="server")&&s.fn(n.data)})},o=e.method.microSeconds();e._prepP?e._prepP.then(()=>{e._iL=!0,e.method.onMessage(e._state,t,o)}):(e._iL=!0,e.method.onMessage(e._state,t,o))}}function ft(e){if(e._iL&&!te(e)){e._iL=!1;const t=e.method.microSeconds();e.method.onMessage(e._state,null,t)}}export{ee as BroadcastChannel,$e as IndexedDbMethod,je as LocalstorageMethod,_e as NativeMethod,Z as OPEN_BROADCAST_CHANNELS,Ge as ServerMethod,at as chooseMethod}; diff --git a/demo/redirect-flow-example/dist/assets/index-D6SSZYZQ.css b/demo/redirect-flow-example/dist/assets/index-D6SSZYZQ.css deleted file mode 100644 index 05bb34c6..00000000 --- a/demo/redirect-flow-example/dist/assets/index-D6SSZYZQ.css +++ /dev/null @@ -1 +0,0 @@ -body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{width:60%;margin:auto;padding:0 2rem}.main{min-height:100vh;padding:4rem 0;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center}.title{line-height:1.15;font-size:3rem;text-align:center;margin:50px}.subtitle{line-height:1.15;font-size:1.5rem;text-align:center;margin:10px}.title a{color:#0070f3;text-decoration:none}.grid{display:flex;align-items:center;flex-direction:column}.card{margin:.5rem;padding:.7rem;text-align:center;color:#0070f3;background-color:#fafafa;text-decoration:none;border:1px solid #0070f3;border-radius:10px;transition:color .15s ease,border-color .15s ease;width:100%}.card:hover,.card:focus,.card:active{cursor:pointer;background-color:#f1f1f1}.footer{display:flex;flex:1;padding:2rem 0;border-top:1px solid #eaeaea;justify-content:center;align-items:center;margin-top:10rem}.footer a{display:flex;justify-content:center;align-items:center;flex-grow:1}.logo{height:1.5rem;margin-left:.5rem}@media (max-width: 1200px){.container{width:100%}}.flex-container{display:flex;flex-flow:row wrap;justify-content:center;align-items:center}.flex-container .card{width:fit-content}.flex-container-top{display:flex;flex-flow:row wrap;justify-content:space-around;align-items:top}#console{width:100%;height:100%;overflow:auto;word-wrap:break-word;font-size:16px;font-family:monospace}.disabledDiv{pointer-events:none;opacity:.4}.flex-column{display:flex;flex-direction:column} diff --git a/demo/redirect-flow-example/dist/assets/index-DX4e5JdD.js b/demo/redirect-flow-example/dist/assets/index-DX4e5JdD.js deleted file mode 100644 index ffd21b0c..00000000 --- a/demo/redirect-flow-example/dist/assets/index-DX4e5JdD.js +++ /dev/null @@ -1,165 +0,0 @@ -var N0e=Object.defineProperty;var o9=o=>{throw TypeError(o)};var _0e=(o,i,s)=>i in o?N0e(o,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[i]=s;var a9=(o,i,s)=>_0e(o,typeof i!="symbol"?i+"":i,s),Wv=(o,i,s)=>i.has(o)||o9("Cannot "+s);var sn=(o,i,s)=>(Wv(o,i,"read from private field"),s?s.call(o):i.get(o)),Ta=(o,i,s)=>i.has(o)?o9("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(o):i.set(o,s),fn=(o,i,s,f)=>(Wv(o,i,"write to private field"),f?f.call(o,s):i.set(o,s),s),s9=(o,i,s)=>(Wv(o,i,"access private method"),s);(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))f(l);new MutationObserver(l=>{for(const r of l)if(r.type==="childList")for(const B of r.addedNodes)B.tagName==="LINK"&&B.rel==="modulepreload"&&f(B)}).observe(document,{childList:!0,subtree:!0});function s(l){const r={};return l.integrity&&(r.integrity=l.integrity),l.referrerPolicy&&(r.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?r.credentials="include":l.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function f(l){if(l.ep)return;l.ep=!0;const r=s(l);fetch(l.href,r)}})();function gr(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}function K0e(o){if(o.__esModule)return o;var i=o.default;if(typeof i=="function"){var s=function f(){return this instanceof f?Reflect.construct(i,arguments,this.constructor):i.apply(this,arguments)};s.prototype=i.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(o).forEach(function(f){var l=Object.getOwnPropertyDescriptor(o,f);Object.defineProperty(s,f,l.get?l:{enumerable:!0,get:function(){return o[f]}})}),s}var Vv={},Ac={},f9;function F0e(){if(f9)return Ac;f9=1,Ac.byteLength=I,Ac.toByteArray=Q,Ac.fromByteArray=v;for(var o=[],i=[],s=typeof Uint8Array<"u"?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,r=f.length;l0)throw new Error("Invalid string. Length must be a multiple of 4");var m=w.indexOf("=");m===-1&&(m=M);var x=m===M?0:4-m%4;return[m,x]}function I(w){var M=B(w),m=M[0],x=M[1];return(m+x)*3/4-x}function p(w,M,m){return(M+m)*3/4-m}function Q(w){var M,m=B(w),x=m[0],D=m[1],S=new s(p(w,x,D)),K=0,N=D>0?x-4:x,L;for(L=0;L>16&255,S[K++]=M>>8&255,S[K++]=M&255;return D===2&&(M=i[w.charCodeAt(L)]<<2|i[w.charCodeAt(L+1)]>>4,S[K++]=M&255),D===1&&(M=i[w.charCodeAt(L)]<<10|i[w.charCodeAt(L+1)]<<4|i[w.charCodeAt(L+2)]>>2,S[K++]=M>>8&255,S[K++]=M&255),S}function d(w){return o[w>>18&63]+o[w>>12&63]+o[w>>6&63]+o[w&63]}function y(w,M,m){for(var x,D=[],S=M;SN?N:K+S));return x===1?(M=w[m-1],D.push(o[M>>2]+o[M<<4&63]+"==")):x===2&&(M=(w[m-2]<<8)+w[m-1],D.push(o[M>>10]+o[M>>4&63]+o[M<<2&63]+"=")),D.join("")}return Ac}var KI={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */var h9;function G0e(){return h9||(h9=1,KI.read=function(o,i,s,f,l){var r,B,I=l*8-f-1,p=(1<>1,d=-7,y=s?l-1:0,v=s?-1:1,w=o[i+y];for(y+=v,r=w&(1<<-d)-1,w>>=-d,d+=I;d>0;r=r*256+o[i+y],y+=v,d-=8);for(B=r&(1<<-d)-1,r>>=-d,d+=f;d>0;B=B*256+o[i+y],y+=v,d-=8);if(r===0)r=1-Q;else{if(r===p)return B?NaN:(w?-1:1)*(1/0);B=B+Math.pow(2,f),r=r-Q}return(w?-1:1)*B*Math.pow(2,r-f)},KI.write=function(o,i,s,f,l,r){var B,I,p,Q=r*8-l-1,d=(1<>1,v=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=f?0:r-1,M=f?1:-1,m=i<0||i===0&&1/i<0?1:0;for(i=Math.abs(i),isNaN(i)||i===1/0?(I=isNaN(i)?1:0,B=d):(B=Math.floor(Math.log(i)/Math.LN2),i*(p=Math.pow(2,-B))<1&&(B--,p*=2),B+y>=1?i+=v/p:i+=v*Math.pow(2,1-y),i*p>=2&&(B++,p/=2),B+y>=d?(I=0,B=d):B+y>=1?(I=(i*p-1)*Math.pow(2,l),B=B+y):(I=i*Math.pow(2,y-1)*Math.pow(2,l),B=0));l>=8;o[s+w]=I&255,w+=M,I/=256,l-=8);for(B=B<0;o[s+w]=B&255,w+=M,B/=256,Q-=8);o[s+w-M]|=m*128}),KI}/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */var g9;function mr(){return g9||(g9=1,function(o){const i=F0e(),s=G0e(),f=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;o.Buffer=I,o.SlowBuffer=S,o.INSPECT_MAX_BYTES=50;const l=2147483647;o.kMaxLength=l,I.TYPED_ARRAY_SUPPORT=r(),!I.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function r(){try{const H=new Uint8Array(1),k={foo:function(){return 42}};return Object.setPrototypeOf(k,Uint8Array.prototype),Object.setPrototypeOf(H,k),H.foo()===42}catch{return!1}}Object.defineProperty(I.prototype,"parent",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.buffer}}),Object.defineProperty(I.prototype,"offset",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.byteOffset}});function B(H){if(H>l)throw new RangeError('The value "'+H+'" is invalid for option "size"');const k=new Uint8Array(H);return Object.setPrototypeOf(k,I.prototype),k}function I(H,k,G){if(typeof H=="number"){if(typeof k=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(H)}return p(H,k,G)}I.poolSize=8192;function p(H,k,G){if(typeof H=="string")return v(H,k);if(ArrayBuffer.isView(H))return M(H);if(H==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof H);if(ce(H,ArrayBuffer)||H&&ce(H.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ce(H,SharedArrayBuffer)||H&&ce(H.buffer,SharedArrayBuffer)))return m(H,k,G);if(typeof H=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const O=H.valueOf&&H.valueOf();if(O!=null&&O!==H)return I.from(O,k,G);const ee=x(H);if(ee)return ee;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof H[Symbol.toPrimitive]=="function")return I.from(H[Symbol.toPrimitive]("string"),k,G);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof H)}I.from=function(H,k,G){return p(H,k,G)},Object.setPrototypeOf(I.prototype,Uint8Array.prototype),Object.setPrototypeOf(I,Uint8Array);function Q(H){if(typeof H!="number")throw new TypeError('"size" argument must be of type number');if(H<0)throw new RangeError('The value "'+H+'" is invalid for option "size"')}function d(H,k,G){return Q(H),H<=0?B(H):k!==void 0?typeof G=="string"?B(H).fill(k,G):B(H).fill(k):B(H)}I.alloc=function(H,k,G){return d(H,k,G)};function y(H){return Q(H),B(H<0?0:D(H)|0)}I.allocUnsafe=function(H){return y(H)},I.allocUnsafeSlow=function(H){return y(H)};function v(H,k){if((typeof k!="string"||k==="")&&(k="utf8"),!I.isEncoding(k))throw new TypeError("Unknown encoding: "+k);const G=K(H,k)|0;let O=B(G);const ee=O.write(H,k);return ee!==G&&(O=O.slice(0,ee)),O}function w(H){const k=H.length<0?0:D(H.length)|0,G=B(k);for(let O=0;O=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return H|0}function S(H){return+H!=H&&(H=0),I.alloc(+H)}I.isBuffer=function(k){return k!=null&&k._isBuffer===!0&&k!==I.prototype},I.compare=function(k,G){if(ce(k,Uint8Array)&&(k=I.from(k,k.offset,k.byteLength)),ce(G,Uint8Array)&&(G=I.from(G,G.offset,G.byteLength)),!I.isBuffer(k)||!I.isBuffer(G))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(k===G)return 0;let O=k.length,ee=G.length;for(let de=0,ie=Math.min(O,ee);deee.length?(I.isBuffer(ie)||(ie=I.from(ie)),ie.copy(ee,de)):Uint8Array.prototype.set.call(ee,ie,de);else if(I.isBuffer(ie))ie.copy(ee,de);else throw new TypeError('"list" argument must be an Array of Buffers');de+=ie.length}return ee};function K(H,k){if(I.isBuffer(H))return H.length;if(ArrayBuffer.isView(H)||ce(H,ArrayBuffer))return H.byteLength;if(typeof H!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof H);const G=H.length,O=arguments.length>2&&arguments[2]===!0;if(!O&&G===0)return 0;let ee=!1;for(;;)switch(k){case"ascii":case"latin1":case"binary":return G;case"utf8":case"utf-8":return xe(H).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G*2;case"hex":return G>>>1;case"base64":return Ue(H).length;default:if(ee)return O?-1:xe(H).length;k=(""+k).toLowerCase(),ee=!0}}I.byteLength=K;function N(H,k,G){let O=!1;if((k===void 0||k<0)&&(k=0),k>this.length||((G===void 0||G>this.length)&&(G=this.length),G<=0)||(G>>>=0,k>>>=0,G<=k))return"";for(H||(H="utf8");;)switch(H){case"hex":return g(this,k,G);case"utf8":case"utf-8":return n(this,k,G);case"ascii":return c(this,k,G);case"latin1":case"binary":return C(this,k,G);case"base64":return A(this,k,G);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return t(this,k,G);default:if(O)throw new TypeError("Unknown encoding: "+H);H=(H+"").toLowerCase(),O=!0}}I.prototype._isBuffer=!0;function L(H,k,G){const O=H[k];H[k]=H[G],H[G]=O}I.prototype.swap16=function(){const k=this.length;if(k%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let G=0;GG&&(k+=" ... "),""},f&&(I.prototype[f]=I.prototype.inspect),I.prototype.compare=function(k,G,O,ee,de){if(ce(k,Uint8Array)&&(k=I.from(k,k.offset,k.byteLength)),!I.isBuffer(k))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof k);if(G===void 0&&(G=0),O===void 0&&(O=k?k.length:0),ee===void 0&&(ee=0),de===void 0&&(de=this.length),G<0||O>k.length||ee<0||de>this.length)throw new RangeError("out of range index");if(ee>=de&&G>=O)return 0;if(ee>=de)return-1;if(G>=O)return 1;if(G>>>=0,O>>>=0,ee>>>=0,de>>>=0,this===k)return 0;let ie=de-ee,Ee=O-G;const Oe=Math.min(ie,Ee),Ce=this.slice(ee,de),Qe=k.slice(G,O);for(let Je=0;Je2147483647?G=2147483647:G<-2147483648&&(G=-2147483648),G=+G,Te(G)&&(G=ee?0:H.length-1),G<0&&(G=H.length+G),G>=H.length){if(ee)return-1;G=H.length-1}else if(G<0)if(ee)G=0;else return-1;if(typeof k=="string"&&(k=I.from(k,O)),I.isBuffer(k))return k.length===0?-1:re(H,k,G,O,ee);if(typeof k=="number")return k=k&255,typeof Uint8Array.prototype.indexOf=="function"?ee?Uint8Array.prototype.indexOf.call(H,k,G):Uint8Array.prototype.lastIndexOf.call(H,k,G):re(H,[k],G,O,ee);throw new TypeError("val must be string, number or Buffer")}function re(H,k,G,O,ee){let de=1,ie=H.length,Ee=k.length;if(O!==void 0&&(O=String(O).toLowerCase(),O==="ucs2"||O==="ucs-2"||O==="utf16le"||O==="utf-16le")){if(H.length<2||k.length<2)return-1;de=2,ie/=2,Ee/=2,G/=2}function Oe(Qe,Je){return de===1?Qe[Je]:Qe.readUInt16BE(Je*de)}let Ce;if(ee){let Qe=-1;for(Ce=G;Ceie&&(G=ie-Ee),Ce=G;Ce>=0;Ce--){let Qe=!0;for(let Je=0;Jeee&&(O=ee)):O=ee;const de=k.length;O>de/2&&(O=de/2);let ie;for(ie=0;ie>>0,isFinite(O)?(O=O>>>0,ee===void 0&&(ee="utf8")):(ee=O,O=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const de=this.length-G;if((O===void 0||O>de)&&(O=de),k.length>0&&(O<0||G<0)||G>this.length)throw new RangeError("Attempt to write outside buffer bounds");ee||(ee="utf8");let ie=!1;for(;;)switch(ee){case"hex":return Z(this,k,G,O);case"utf8":case"utf-8":return J(this,k,G,O);case"ascii":case"latin1":case"binary":return Ae(this,k,G,O);case"base64":return E(this,k,G,O);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return e(this,k,G,O);default:if(ie)throw new TypeError("Unknown encoding: "+ee);ee=(""+ee).toLowerCase(),ie=!0}},I.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function A(H,k,G){return k===0&&G===H.length?i.fromByteArray(H):i.fromByteArray(H.slice(k,G))}function n(H,k,G){G=Math.min(H.length,G);const O=[];let ee=k;for(;ee239?4:de>223?3:de>191?2:1;if(ee+Ee<=G){let Oe,Ce,Qe,Je;switch(Ee){case 1:de<128&&(ie=de);break;case 2:Oe=H[ee+1],(Oe&192)===128&&(Je=(de&31)<<6|Oe&63,Je>127&&(ie=Je));break;case 3:Oe=H[ee+1],Ce=H[ee+2],(Oe&192)===128&&(Ce&192)===128&&(Je=(de&15)<<12|(Oe&63)<<6|Ce&63,Je>2047&&(Je<55296||Je>57343)&&(ie=Je));break;case 4:Oe=H[ee+1],Ce=H[ee+2],Qe=H[ee+3],(Oe&192)===128&&(Ce&192)===128&&(Qe&192)===128&&(Je=(de&15)<<18|(Oe&63)<<12|(Ce&63)<<6|Qe&63,Je>65535&&Je<1114112&&(ie=Je))}}ie===null?(ie=65533,Ee=1):ie>65535&&(ie-=65536,O.push(ie>>>10&1023|55296),ie=56320|ie&1023),O.push(ie),ee+=Ee}return h(O)}const a=4096;function h(H){const k=H.length;if(k<=a)return String.fromCharCode.apply(String,H);let G="",O=0;for(;OO)&&(G=O);let ee="";for(let de=k;deO&&(k=O),G<0?(G+=O,G<0&&(G=0)):G>O&&(G=O),GG)throw new RangeError("Trying to access beyond buffer length")}I.prototype.readUintLE=I.prototype.readUIntLE=function(k,G,O){k=k>>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k],de=1,ie=0;for(;++ie>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k+--G],de=1;for(;G>0&&(de*=256);)ee+=this[k+--G]*de;return ee},I.prototype.readUint8=I.prototype.readUInt8=function(k,G){return k=k>>>0,G||u(k,1,this.length),this[k]},I.prototype.readUint16LE=I.prototype.readUInt16LE=function(k,G){return k=k>>>0,G||u(k,2,this.length),this[k]|this[k+1]<<8},I.prototype.readUint16BE=I.prototype.readUInt16BE=function(k,G){return k=k>>>0,G||u(k,2,this.length),this[k]<<8|this[k+1]},I.prototype.readUint32LE=I.prototype.readUInt32LE=function(k,G){return k=k>>>0,G||u(k,4,this.length),(this[k]|this[k+1]<<8|this[k+2]<<16)+this[k+3]*16777216},I.prototype.readUint32BE=I.prototype.readUInt32BE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]*16777216+(this[k+1]<<16|this[k+2]<<8|this[k+3])},I.prototype.readBigUInt64LE=Be(function(k){k=k>>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=G+this[++k]*2**8+this[++k]*2**16+this[++k]*2**24,de=this[++k]+this[++k]*2**8+this[++k]*2**16+O*2**24;return BigInt(ee)+(BigInt(de)<>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=G*2**24+this[++k]*2**16+this[++k]*2**8+this[++k],de=this[++k]*2**24+this[++k]*2**16+this[++k]*2**8+O;return(BigInt(ee)<>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k],de=1,ie=0;for(;++ie=de&&(ee-=Math.pow(2,8*G)),ee},I.prototype.readIntBE=function(k,G,O){k=k>>>0,G=G>>>0,O||u(k,G,this.length);let ee=G,de=1,ie=this[k+--ee];for(;ee>0&&(de*=256);)ie+=this[k+--ee]*de;return de*=128,ie>=de&&(ie-=Math.pow(2,8*G)),ie},I.prototype.readInt8=function(k,G){return k=k>>>0,G||u(k,1,this.length),this[k]&128?(255-this[k]+1)*-1:this[k]},I.prototype.readInt16LE=function(k,G){k=k>>>0,G||u(k,2,this.length);const O=this[k]|this[k+1]<<8;return O&32768?O|4294901760:O},I.prototype.readInt16BE=function(k,G){k=k>>>0,G||u(k,2,this.length);const O=this[k+1]|this[k]<<8;return O&32768?O|4294901760:O},I.prototype.readInt32LE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]|this[k+1]<<8|this[k+2]<<16|this[k+3]<<24},I.prototype.readInt32BE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]<<24|this[k+1]<<16|this[k+2]<<8|this[k+3]},I.prototype.readBigInt64LE=Be(function(k){k=k>>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=this[k+4]+this[k+5]*2**8+this[k+6]*2**16+(O<<24);return(BigInt(ee)<>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=(G<<24)+this[++k]*2**16+this[++k]*2**8+this[++k];return(BigInt(ee)<>>0,G||u(k,4,this.length),s.read(this,k,!0,23,4)},I.prototype.readFloatBE=function(k,G){return k=k>>>0,G||u(k,4,this.length),s.read(this,k,!1,23,4)},I.prototype.readDoubleLE=function(k,G){return k=k>>>0,G||u(k,8,this.length),s.read(this,k,!0,52,8)},I.prototype.readDoubleBE=function(k,G){return k=k>>>0,G||u(k,8,this.length),s.read(this,k,!1,52,8)};function b(H,k,G,O,ee,de){if(!I.isBuffer(H))throw new TypeError('"buffer" argument must be a Buffer instance');if(k>ee||kH.length)throw new RangeError("Index out of range")}I.prototype.writeUintLE=I.prototype.writeUIntLE=function(k,G,O,ee){if(k=+k,G=G>>>0,O=O>>>0,!ee){const Ee=Math.pow(2,8*O)-1;b(this,k,G,O,Ee,0)}let de=1,ie=0;for(this[G]=k&255;++ie>>0,O=O>>>0,!ee){const Ee=Math.pow(2,8*O)-1;b(this,k,G,O,Ee,0)}let de=O-1,ie=1;for(this[G+de]=k&255;--de>=0&&(ie*=256);)this[G+de]=k/ie&255;return G+O},I.prototype.writeUint8=I.prototype.writeUInt8=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,1,255,0),this[G]=k&255,G+1},I.prototype.writeUint16LE=I.prototype.writeUInt16LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,65535,0),this[G]=k&255,this[G+1]=k>>>8,G+2},I.prototype.writeUint16BE=I.prototype.writeUInt16BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,65535,0),this[G]=k>>>8,this[G+1]=k&255,G+2},I.prototype.writeUint32LE=I.prototype.writeUInt32LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,4294967295,0),this[G+3]=k>>>24,this[G+2]=k>>>16,this[G+1]=k>>>8,this[G]=k&255,G+4},I.prototype.writeUint32BE=I.prototype.writeUInt32BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,4294967295,0),this[G]=k>>>24,this[G+1]=k>>>16,this[G+2]=k>>>8,this[G+3]=k&255,G+4};function R(H,k,G,O,ee){q(k,O,ee,H,G,7);let de=Number(k&BigInt(4294967295));H[G++]=de,de=de>>8,H[G++]=de,de=de>>8,H[G++]=de,de=de>>8,H[G++]=de;let ie=Number(k>>BigInt(32)&BigInt(4294967295));return H[G++]=ie,ie=ie>>8,H[G++]=ie,ie=ie>>8,H[G++]=ie,ie=ie>>8,H[G++]=ie,G}function T(H,k,G,O,ee){q(k,O,ee,H,G,7);let de=Number(k&BigInt(4294967295));H[G+7]=de,de=de>>8,H[G+6]=de,de=de>>8,H[G+5]=de,de=de>>8,H[G+4]=de;let ie=Number(k>>BigInt(32)&BigInt(4294967295));return H[G+3]=ie,ie=ie>>8,H[G+2]=ie,ie=ie>>8,H[G+1]=ie,ie=ie>>8,H[G]=ie,G+8}I.prototype.writeBigUInt64LE=Be(function(k,G=0){return R(this,k,G,BigInt(0),BigInt("0xffffffffffffffff"))}),I.prototype.writeBigUInt64BE=Be(function(k,G=0){return T(this,k,G,BigInt(0),BigInt("0xffffffffffffffff"))}),I.prototype.writeIntLE=function(k,G,O,ee){if(k=+k,G=G>>>0,!ee){const Oe=Math.pow(2,8*O-1);b(this,k,G,O,Oe-1,-Oe)}let de=0,ie=1,Ee=0;for(this[G]=k&255;++de>0)-Ee&255;return G+O},I.prototype.writeIntBE=function(k,G,O,ee){if(k=+k,G=G>>>0,!ee){const Oe=Math.pow(2,8*O-1);b(this,k,G,O,Oe-1,-Oe)}let de=O-1,ie=1,Ee=0;for(this[G+de]=k&255;--de>=0&&(ie*=256);)k<0&&Ee===0&&this[G+de+1]!==0&&(Ee=1),this[G+de]=(k/ie>>0)-Ee&255;return G+O},I.prototype.writeInt8=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,1,127,-128),k<0&&(k=255+k+1),this[G]=k&255,G+1},I.prototype.writeInt16LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,32767,-32768),this[G]=k&255,this[G+1]=k>>>8,G+2},I.prototype.writeInt16BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,32767,-32768),this[G]=k>>>8,this[G+1]=k&255,G+2},I.prototype.writeInt32LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,2147483647,-2147483648),this[G]=k&255,this[G+1]=k>>>8,this[G+2]=k>>>16,this[G+3]=k>>>24,G+4},I.prototype.writeInt32BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,2147483647,-2147483648),k<0&&(k=4294967295+k+1),this[G]=k>>>24,this[G+1]=k>>>16,this[G+2]=k>>>8,this[G+3]=k&255,G+4},I.prototype.writeBigInt64LE=Be(function(k,G=0){return R(this,k,G,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),I.prototype.writeBigInt64BE=Be(function(k,G=0){return T(this,k,G,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function V(H,k,G,O,ee,de){if(G+O>H.length)throw new RangeError("Index out of range");if(G<0)throw new RangeError("Index out of range")}function P(H,k,G,O,ee){return k=+k,G=G>>>0,ee||V(H,k,G,4),s.write(H,k,G,O,23,4),G+4}I.prototype.writeFloatLE=function(k,G,O){return P(this,k,G,!0,O)},I.prototype.writeFloatBE=function(k,G,O){return P(this,k,G,!1,O)};function F(H,k,G,O,ee){return k=+k,G=G>>>0,ee||V(H,k,G,8),s.write(H,k,G,O,52,8),G+8}I.prototype.writeDoubleLE=function(k,G,O){return F(this,k,G,!0,O)},I.prototype.writeDoubleBE=function(k,G,O){return F(this,k,G,!1,O)},I.prototype.copy=function(k,G,O,ee){if(!I.isBuffer(k))throw new TypeError("argument should be a Buffer");if(O||(O=0),!ee&&ee!==0&&(ee=this.length),G>=k.length&&(G=k.length),G||(G=0),ee>0&&ee=this.length)throw new RangeError("Index out of range");if(ee<0)throw new RangeError("sourceEnd out of bounds");ee>this.length&&(ee=this.length),k.length-G>>0,O=O===void 0?this.length:O>>>0,k||(k=0);let de;if(typeof k=="number")for(de=G;de2**32?ee=te(String(G)):typeof G=="bigint"&&(ee=String(G),(G>BigInt(2)**BigInt(32)||G<-(BigInt(2)**BigInt(32)))&&(ee=te(ee)),ee+="n"),O+=` It must be ${k}. Received ${ee}`,O},RangeError);function te(H){let k="",G=H.length;const O=H[0]==="-"?1:0;for(;G>=O+4;G-=3)k=`_${H.slice(G-3,G)}${k}`;return`${H.slice(0,G)}${k}`}function z(H,k,G){$(k,"offset"),(H[k]===void 0||H[k+G]===void 0)&&le(k,H.length-(G+1))}function q(H,k,G,O,ee,de){if(H>G||H= 0${ie} and < 2${ie} ** ${(de+1)*8}${ie}`:Ee=`>= -(2${ie} ** ${(de+1)*8-1}${ie}) and < 2 ** ${(de+1)*8-1}${ie}`,new Y.ERR_OUT_OF_RANGE("value",Ee,H)}z(O,ee,de)}function $(H,k){if(typeof H!="number")throw new Y.ERR_INVALID_ARG_TYPE(k,"number",H)}function le(H,k,G){throw Math.floor(H)!==H?($(H,G),new Y.ERR_OUT_OF_RANGE("offset","an integer",H)):k<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${k}`,H)}const ae=/[^+/0-9A-Za-z-_]/g;function he(H){if(H=H.split("=")[0],H=H.trim().replace(ae,""),H.length<2)return"";for(;H.length%4!==0;)H=H+"=";return H}function xe(H,k){k=k||1/0;let G;const O=H.length;let ee=null;const de=[];for(let ie=0;ie55295&&G<57344){if(!ee){if(G>56319){(k-=3)>-1&&de.push(239,191,189);continue}else if(ie+1===O){(k-=3)>-1&&de.push(239,191,189);continue}ee=G;continue}if(G<56320){(k-=3)>-1&&de.push(239,191,189),ee=G;continue}G=(ee-55296<<10|G-56320)+65536}else ee&&(k-=3)>-1&&de.push(239,191,189);if(ee=null,G<128){if((k-=1)<0)break;de.push(G)}else if(G<2048){if((k-=2)<0)break;de.push(G>>6|192,G&63|128)}else if(G<65536){if((k-=3)<0)break;de.push(G>>12|224,G>>6&63|128,G&63|128)}else if(G<1114112){if((k-=4)<0)break;de.push(G>>18|240,G>>12&63|128,G>>6&63|128,G&63|128)}else throw new Error("Invalid code point")}return de}function se(H){const k=[];for(let G=0;G>8,ee=G%256,de.push(ee),de.push(O);return de}function Ue(H){return i.toByteArray(he(H))}function fe(H,k,G,O){let ee;for(ee=0;ee=k.length||ee>=H.length);++ee)k[ee+G]=H[ee];return ee}function ce(H,k){return H instanceof k||H!=null&&H.constructor!=null&&H.constructor.name!=null&&H.constructor.name===k.name}function Te(H){return H!==H}const ue=function(){const H="0123456789abcdef",k=new Array(256);for(let G=0;G<16;++G){const O=G*16;for(let ee=0;ee<16;++ee)k[O+ee]=H[G]+H[ee]}return k}();function Be(H){return typeof BigInt>"u"?Ve:H}function Ve(){throw new Error("BigInt not supported")}}(Vv)),Vv}var L0e=mr(),Zv={exports:{}},u9;function mf(){if(u9)return Zv.exports;u9=1;var o=Zv.exports={},i,s;function f(){throw new Error("setTimeout has not been defined")}function l(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?i=setTimeout:i=f}catch{i=f}try{typeof clearTimeout=="function"?s=clearTimeout:s=l}catch{s=l}})();function r(m){if(i===setTimeout)return setTimeout(m,0);if((i===f||!i)&&setTimeout)return i=setTimeout,setTimeout(m,0);try{return i(m,0)}catch{try{return i.call(null,m,0)}catch{return i.call(this,m,0)}}}function B(m){if(s===clearTimeout)return clearTimeout(m);if((s===l||!s)&&clearTimeout)return s=clearTimeout,clearTimeout(m);try{return s(m)}catch{try{return s.call(null,m)}catch{return s.call(this,m)}}}var I=[],p=!1,Q,d=-1;function y(){!p||!Q||(p=!1,Q.length?I=Q.concat(I):d=-1,I.length&&v())}function v(){if(!p){var m=r(y);p=!0;for(var x=I.length;x;){for(Q=I,I=[];++d1)for(var D=1;D>>1,b=C[u];if(0>>1;ul(V,t))Pl(F,V)?(C[u]=F,C[P]=t,u=P):(C[u]=V,C[T]=t,u=T);else if(Pl(F,t))C[u]=F,C[P]=t,u=P;else break e}}return g}function l(C,g){var t=C.sortIndex-g.sortIndex;return t!==0?t:C.id-g.id}if(typeof performance=="object"&&typeof performance.now=="function"){var r=performance;o.unstable_now=function(){return r.now()}}else{var B=Date,I=B.now();o.unstable_now=function(){return B.now()-I}}var p=[],Q=[],d=1,y=null,v=3,w=!1,M=!1,m=!1,x=typeof setTimeout=="function"?setTimeout:null,D=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function K(C){for(var g=s(Q);g!==null;){if(g.callback===null)f(Q);else if(g.startTime<=C)f(Q),g.sortIndex=g.expirationTime,i(p,g);else break;g=s(Q)}}function N(C){if(m=!1,K(C),!M)if(s(p)!==null)M=!0,h(L);else{var g=s(Q);g!==null&&c(N,g.startTime-C)}}function L(C,g){M=!1,m&&(m=!1,D(Z),Z=-1),w=!0;var t=v;try{for(K(g),y=s(p);y!==null&&(!(y.expirationTime>g)||C&&!E());){var u=y.callback;if(typeof u=="function"){y.callback=null,v=y.priorityLevel;var b=u(y.expirationTime<=g);g=o.unstable_now(),typeof b=="function"?y.callback=b:y===s(p)&&f(p),K(g)}else f(p);y=s(p)}if(y!==null)var R=!0;else{var T=s(Q);T!==null&&c(N,T.startTime-g),R=!1}return R}finally{y=null,v=t,w=!1}}var j=!1,re=null,Z=-1,J=5,Ae=-1;function E(){return!(o.unstable_now()-AeC||125u?(C.sortIndex=t,i(Q,C),s(p)===null&&C===s(Q)&&(m?(D(Z),Z=-1):m=!0,c(N,t-u))):(C.sortIndex=b,i(p,C),M||w||(M=!0,h(L))),C},o.unstable_shouldYield=E,o.unstable_wrapCallback=function(C){var g=v;return function(){var t=v;v=g;try{return C.apply(this,arguments)}finally{v=t}}}}(tw)),tw}var C9;function O0e(){return C9||(C9=1,ew.exports=P0e()),ew.exports}/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var E9;function j0e(){if(E9)return Ji;E9=1;var o=wk(),i=O0e();function s(_){for(var U="https://reactjs.org/docs/error-decoder.html?invariant="+_,X=1;X"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),p=Object.prototype.hasOwnProperty,Q=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,d={},y={};function v(_){return p.call(y,_)?!0:p.call(d,_)?!1:Q.test(_)?y[_]=!0:(d[_]=!0,!1)}function w(_,U,X,ne){if(X!==null&&X.type===0)return!1;switch(typeof U){case"function":case"symbol":return!0;case"boolean":return ne?!1:X!==null?!X.acceptsBooleans:(_=_.toLowerCase().slice(0,5),_!=="data-"&&_!=="aria-");default:return!1}}function M(_,U,X,ne){if(U===null||typeof U>"u"||w(_,U,X,ne))return!0;if(ne)return!1;if(X!==null)switch(X.type){case 3:return!U;case 4:return U===!1;case 5:return isNaN(U);case 6:return isNaN(U)||1>U}return!1}function m(_,U,X,ne,Ie,Se,He){this.acceptsBooleans=U===2||U===3||U===4,this.attributeName=ne,this.attributeNamespace=Ie,this.mustUseProperty=X,this.propertyName=_,this.type=U,this.sanitizeURL=Se,this.removeEmptyString=He}var x={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(_){x[_]=new m(_,0,!1,_,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(_){var U=_[0];x[U]=new m(U,1,!1,_[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(_){x[_]=new m(_,2,!1,_.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(_){x[_]=new m(_,2,!1,_,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(_){x[_]=new m(_,3,!1,_.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(_){x[_]=new m(_,3,!0,_,null,!1,!1)}),["capture","download"].forEach(function(_){x[_]=new m(_,4,!1,_,null,!1,!1)}),["cols","rows","size","span"].forEach(function(_){x[_]=new m(_,6,!1,_,null,!1,!1)}),["rowSpan","start"].forEach(function(_){x[_]=new m(_,5,!1,_.toLowerCase(),null,!1,!1)});var D=/[\-:]([a-z])/g;function S(_){return _[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(_){var U=_.replace(D,S);x[U]=new m(U,1,!1,_,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(_){var U=_.replace(D,S);x[U]=new m(U,1,!1,_,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(_){var U=_.replace(D,S);x[U]=new m(U,1,!1,_,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(_){x[_]=new m(_,1,!1,_.toLowerCase(),null,!1,!1)}),x.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(_){x[_]=new m(_,1,!1,_.toLowerCase(),null,!0,!0)});function K(_,U,X,ne){var Ie=x.hasOwnProperty(U)?x[U]:null;(Ie!==null?Ie.type!==0:ne||!(2je||Ie[He]!==Se[je]){var Ze=` -`+Ie[He].replace(" at new "," at ");return _.displayName&&Ze.includes("")&&(Ze=Ze.replace("",_.displayName)),Ze}while(1<=He&&0<=je);break}}}finally{R=!1,Error.prepareStackTrace=X}return(_=_?_.displayName||_.name:"")?b(_):""}function V(_){switch(_.tag){case 5:return b(_.type);case 16:return b("Lazy");case 13:return b("Suspense");case 19:return b("SuspenseList");case 0:case 2:case 15:return _=T(_.type,!1),_;case 11:return _=T(_.type.render,!1),_;case 1:return _=T(_.type,!0),_;default:return""}}function P(_){if(_==null)return null;if(typeof _=="function")return _.displayName||_.name||null;if(typeof _=="string")return _;switch(_){case re:return"Fragment";case j:return"Portal";case J:return"Profiler";case Z:return"StrictMode";case A:return"Suspense";case n:return"SuspenseList"}if(typeof _=="object")switch(_.$$typeof){case E:return(_.displayName||"Context")+".Consumer";case Ae:return(_._context.displayName||"Context")+".Provider";case e:var U=_.render;return _=_.displayName,_||(_=U.displayName||U.name||"",_=_!==""?"ForwardRef("+_+")":"ForwardRef"),_;case a:return U=_.displayName||null,U!==null?U:P(_.type)||"Memo";case h:U=_._payload,_=_._init;try{return P(_(U))}catch{}}return null}function F(_){var U=_.type;switch(_.tag){case 24:return"Cache";case 9:return(U.displayName||"Context")+".Consumer";case 10:return(U._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return _=U.render,_=_.displayName||_.name||"",U.displayName||(_!==""?"ForwardRef("+_+")":"ForwardRef");case 7:return"Fragment";case 5:return U;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return P(U);case 8:return U===Z?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof U=="function")return U.displayName||U.name||null;if(typeof U=="string")return U}return null}function Y(_){switch(typeof _){case"boolean":case"number":case"string":case"undefined":return _;case"object":return _;default:return""}}function W(_){var U=_.type;return(_=_.nodeName)&&_.toLowerCase()==="input"&&(U==="checkbox"||U==="radio")}function te(_){var U=W(_)?"checked":"value",X=Object.getOwnPropertyDescriptor(_.constructor.prototype,U),ne=""+_[U];if(!_.hasOwnProperty(U)&&typeof X<"u"&&typeof X.get=="function"&&typeof X.set=="function"){var Ie=X.get,Se=X.set;return Object.defineProperty(_,U,{configurable:!0,get:function(){return Ie.call(this)},set:function(He){ne=""+He,Se.call(this,He)}}),Object.defineProperty(_,U,{enumerable:X.enumerable}),{getValue:function(){return ne},setValue:function(He){ne=""+He},stopTracking:function(){_._valueTracker=null,delete _[U]}}}}function z(_){_._valueTracker||(_._valueTracker=te(_))}function q(_){if(!_)return!1;var U=_._valueTracker;if(!U)return!0;var X=U.getValue(),ne="";return _&&(ne=W(_)?_.checked?"true":"false":_.value),_=ne,_!==X?(U.setValue(_),!0):!1}function $(_){if(_=_||(typeof document<"u"?document:void 0),typeof _>"u")return null;try{return _.activeElement||_.body}catch{return _.body}}function le(_,U){var X=U.checked;return t({},U,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:X??_._wrapperState.initialChecked})}function ae(_,U){var X=U.defaultValue==null?"":U.defaultValue,ne=U.checked!=null?U.checked:U.defaultChecked;X=Y(U.value!=null?U.value:X),_._wrapperState={initialChecked:ne,initialValue:X,controlled:U.type==="checkbox"||U.type==="radio"?U.checked!=null:U.value!=null}}function he(_,U){U=U.checked,U!=null&&K(_,"checked",U,!1)}function xe(_,U){he(_,U);var X=Y(U.value),ne=U.type;if(X!=null)ne==="number"?(X===0&&_.value===""||_.value!=X)&&(_.value=""+X):_.value!==""+X&&(_.value=""+X);else if(ne==="submit"||ne==="reset"){_.removeAttribute("value");return}U.hasOwnProperty("value")?oe(_,U.type,X):U.hasOwnProperty("defaultValue")&&oe(_,U.type,Y(U.defaultValue)),U.checked==null&&U.defaultChecked!=null&&(_.defaultChecked=!!U.defaultChecked)}function se(_,U,X){if(U.hasOwnProperty("value")||U.hasOwnProperty("defaultValue")){var ne=U.type;if(!(ne!=="submit"&&ne!=="reset"||U.value!==void 0&&U.value!==null))return;U=""+_._wrapperState.initialValue,X||U===_.value||(_.value=U),_.defaultValue=U}X=_.name,X!==""&&(_.name=""),_.defaultChecked=!!_._wrapperState.initialChecked,X!==""&&(_.name=X)}function oe(_,U,X){(U!=="number"||$(_.ownerDocument)!==_)&&(X==null?_.defaultValue=""+_._wrapperState.initialValue:_.defaultValue!==""+X&&(_.defaultValue=""+X))}var Ue=Array.isArray;function fe(_,U,X,ne){if(_=_.options,U){U={};for(var Ie=0;Ie"+U.valueOf().toString()+"",U=k.firstChild;_.firstChild;)_.removeChild(_.firstChild);for(;U.firstChild;)_.appendChild(U.firstChild)}});function O(_,U){if(U){var X=_.firstChild;if(X&&X===_.lastChild&&X.nodeType===3){X.nodeValue=U;return}}_.textContent=U}var ee={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},de=["Webkit","ms","Moz","O"];Object.keys(ee).forEach(function(_){de.forEach(function(U){U=U+_.charAt(0).toUpperCase()+_.substring(1),ee[U]=ee[_]})});function ie(_,U,X){return U==null||typeof U=="boolean"||U===""?"":X||typeof U!="number"||U===0||ee.hasOwnProperty(_)&&ee[_]?(""+U).trim():U+"px"}function Ee(_,U){_=_.style;for(var X in U)if(U.hasOwnProperty(X)){var ne=X.indexOf("--")===0,Ie=ie(X,U[X],ne);X==="float"&&(X="cssFloat"),ne?_.setProperty(X,Ie):_[X]=Ie}}var Oe=t({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ce(_,U){if(U){if(Oe[_]&&(U.children!=null||U.dangerouslySetInnerHTML!=null))throw Error(s(137,_));if(U.dangerouslySetInnerHTML!=null){if(U.children!=null)throw Error(s(60));if(typeof U.dangerouslySetInnerHTML!="object"||!("__html"in U.dangerouslySetInnerHTML))throw Error(s(61))}if(U.style!=null&&typeof U.style!="object")throw Error(s(62))}}function Qe(_,U){if(_.indexOf("-")===-1)return typeof U.is=="string";switch(_){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Je=null;function me(_){return _=_.target||_.srcElement||window,_.correspondingUseElement&&(_=_.correspondingUseElement),_.nodeType===3?_.parentNode:_}var Fe=null,at=null,ve=null;function Ke(_){if(_=Hu(_)){if(typeof Fe!="function")throw Error(s(280));var U=_.stateNode;U&&(U=Zd(U),Fe(_.stateNode,_.type,U))}}function nt(_){at?ve?ve.push(_):ve=[_]:at=_}function we(){if(at){var _=at,U=ve;if(ve=at=null,Ke(_),U)for(_=0;_>>=0,_===0?32:31-(YA(_)/Zo|0)|0}var kd=64,Nd=4194304;function vu(_){switch(_&-_){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return _&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return _&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return _}}function _d(_,U){var X=_.pendingLanes;if(X===0)return 0;var ne=0,Ie=_.suspendedLanes,Se=_.pingedLanes,He=X&268435455;if(He!==0){var je=He&~Ie;je!==0?ne=vu(je):(Se&=He,Se!==0&&(ne=vu(Se)))}else He=X&~Ie,He!==0?ne=vu(He):Se!==0&&(ne=vu(Se));if(ne===0)return 0;if(U!==0&&U!==ne&&!(U&Ie)&&(Ie=ne&-ne,Se=U&-U,Ie>=Se||Ie===16&&(Se&4194240)!==0))return U;if(ne&4&&(ne|=X&16),U=_.entangledLanes,U!==0)for(_=_.entanglements,U&=ne;0X;X++)U.push(_);return U}function wu(_,U,X){_.pendingLanes|=U,U!==536870912&&(_.suspendedLanes=0,_.pingedLanes=0),_=_.eventTimes,U=31-EA(U),_[U]=X}function ehe(_,U){var X=_.pendingLanes&~U;_.pendingLanes=U,_.suspendedLanes=0,_.pingedLanes=0,_.expiredLanes&=U,_.mutableReadLanes&=U,_.entangledLanes&=U,U=_.entanglements;var ne=_.eventTimes;for(_=_.expirationTimes;0=ku),X_=" ",eK=!1;function tK(_,U){switch(_){case"keyup":return Dhe.indexOf(U.keyCode)!==-1;case"keydown":return U.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function AK(_){return _=_.detail,typeof _=="object"&&"data"in _?_.data:null}var s0=!1;function xhe(_,U){switch(_){case"compositionend":return AK(U);case"keypress":return U.which!==32?null:(eK=!0,X_);case"textInput":return _=U.data,_===X_&&eK?null:_;default:return null}}function Rhe(_,U){if(s0)return _==="compositionend"||!Dy&&tK(_,U)?(_=j_(),Ud=yy=Rs=null,s0=!1,_):null;switch(_){case"paste":return null;case"keypress":if(!(U.ctrlKey||U.altKey||U.metaKey)||U.ctrlKey&&U.altKey){if(U.char&&1=U)return{node:X,offset:U-_};_=ne}e:{for(;X;){if(X.nextSibling){X=X.nextSibling;break e}X=X.parentNode}X=void 0}X=fK(X)}}function gK(_,U){return _&&U?_===U?!0:_&&_.nodeType===3?!1:U&&U.nodeType===3?gK(_,U.parentNode):"contains"in _?_.contains(U):_.compareDocumentPosition?!!(_.compareDocumentPosition(U)&16):!1:!1}function uK(){for(var _=window,U=$();U instanceof _.HTMLIFrameElement;){try{var X=typeof U.contentWindow.location.href=="string"}catch{X=!1}if(X)_=U.contentWindow;else break;U=$(_.document)}return U}function Ry(_){var U=_&&_.nodeName&&_.nodeName.toLowerCase();return U&&(U==="input"&&(_.type==="text"||_.type==="search"||_.type==="tel"||_.type==="url"||_.type==="password")||U==="textarea"||_.contentEditable==="true")}function qhe(_){var U=uK(),X=_.focusedElem,ne=_.selectionRange;if(U!==X&&X&&X.ownerDocument&&gK(X.ownerDocument.documentElement,X)){if(ne!==null&&Ry(X)){if(U=ne.start,_=ne.end,_===void 0&&(_=U),"selectionStart"in X)X.selectionStart=U,X.selectionEnd=Math.min(_,X.value.length);else if(_=(U=X.ownerDocument||document)&&U.defaultView||window,_.getSelection){_=_.getSelection();var Ie=X.textContent.length,Se=Math.min(ne.start,Ie);ne=ne.end===void 0?Se:Math.min(ne.end,Ie),!_.extend&&Se>ne&&(Ie=ne,ne=Se,Se=Ie),Ie=hK(X,Se);var He=hK(X,ne);Ie&&He&&(_.rangeCount!==1||_.anchorNode!==Ie.node||_.anchorOffset!==Ie.offset||_.focusNode!==He.node||_.focusOffset!==He.offset)&&(U=U.createRange(),U.setStart(Ie.node,Ie.offset),_.removeAllRanges(),Se>ne?(_.addRange(U),_.extend(He.node,He.offset)):(U.setEnd(He.node,He.offset),_.addRange(U)))}}for(U=[],_=X;_=_.parentNode;)_.nodeType===1&&U.push({element:_,left:_.scrollLeft,top:_.scrollTop});for(typeof X.focus=="function"&&X.focus(),X=0;X=document.documentMode,f0=null,ky=null,Fu=null,Ny=!1;function cK(_,U,X){var ne=X.window===X?X.document:X.nodeType===9?X:X.ownerDocument;Ny||f0==null||f0!==$(ne)||(ne=f0,"selectionStart"in ne&&Ry(ne)?ne={start:ne.selectionStart,end:ne.selectionEnd}:(ne=(ne.ownerDocument&&ne.ownerDocument.defaultView||window).getSelection(),ne={anchorNode:ne.anchorNode,anchorOffset:ne.anchorOffset,focusNode:ne.focusNode,focusOffset:ne.focusOffset}),Fu&&Ku(Fu,ne)||(Fu=ne,ne=jd(ky,"onSelect"),0l0||(_.current=Py[l0],Py[l0]=null,l0--)}function ir(_,U){l0++,Py[l0]=_.current,_.current=U}var Ks={},ui=_s(Ks),Ui=_s(!1),Ff=Ks;function d0(_,U){var X=_.type.contextTypes;if(!X)return Ks;var ne=_.stateNode;if(ne&&ne.__reactInternalMemoizedUnmaskedChildContext===U)return ne.__reactInternalMemoizedMaskedChildContext;var Ie={},Se;for(Se in X)Ie[Se]=U[Se];return ne&&(_=_.stateNode,_.__reactInternalMemoizedUnmaskedChildContext=U,_.__reactInternalMemoizedMaskedChildContext=Ie),Ie}function qi(_){return _=_.childContextTypes,_!=null}function zd(){hr(Ui),hr(ui)}function DK(_,U,X){if(ui.current!==Ks)throw Error(s(168));ir(ui,U),ir(Ui,X)}function SK(_,U,X){var ne=_.stateNode;if(U=U.childContextTypes,typeof ne.getChildContext!="function")return X;ne=ne.getChildContext();for(var Ie in ne)if(!(Ie in U))throw Error(s(108,F(_)||"Unknown",Ie));return t({},X,ne)}function $d(_){return _=(_=_.stateNode)&&_.__reactInternalMemoizedMergedChildContext||Ks,Ff=ui.current,ir(ui,_),ir(Ui,Ui.current),!0}function xK(_,U,X){var ne=_.stateNode;if(!ne)throw Error(s(169));X?(_=SK(_,U,Ff),ne.__reactInternalMemoizedMergedChildContext=_,hr(Ui),hr(ui),ir(ui,_)):hr(Ui),ir(Ui,X)}var Ka=null,Xd=!1,Oy=!1;function RK(_){Ka===null?Ka=[_]:Ka.push(_)}function $he(_){Xd=!0,RK(_)}function Fs(){if(!Oy&&Ka!==null){Oy=!0;var _=0,U=WA;try{var X=Ka;for(WA=1;_>=He,Ie-=He,Fa=1<<32-EA(U)+Ie|X<rA?(Or=Zt,Zt=null):Or=Zt.sibling;var qA=St(ht,Zt,gt[rA],Kt);if(qA===null){Zt===null&&(Zt=Or);break}_&&Zt&&qA.alternate===null&&U(ht,Zt),et=Se(qA,et,rA),Vt===null?Ot=qA:Vt.sibling=qA,Vt=qA,Zt=Or}if(rA===gt.length)return X(ht,Zt),ur&&Lf(ht,rA),Ot;if(Zt===null){for(;rArA?(Or=Zt,Zt=null):Or=Zt.sibling;var Ps=St(ht,Zt,qA.value,Kt);if(Ps===null){Zt===null&&(Zt=Or);break}_&&Zt&&Ps.alternate===null&&U(ht,Zt),et=Se(Ps,et,rA),Vt===null?Ot=Ps:Vt.sibling=Ps,Vt=Ps,Zt=Or}if(qA.done)return X(ht,Zt),ur&&Lf(ht,rA),Ot;if(Zt===null){for(;!qA.done;rA++,qA=gt.next())qA=kt(ht,qA.value,Kt),qA!==null&&(et=Se(qA,et,rA),Vt===null?Ot=qA:Vt.sibling=qA,Vt=qA);return ur&&Lf(ht,rA),Ot}for(Zt=ne(ht,Zt);!qA.done;rA++,qA=gt.next())qA=Lt(Zt,ht,rA,qA.value,Kt),qA!==null&&(_&&qA.alternate!==null&&Zt.delete(qA.key===null?rA:qA.key),et=Se(qA,et,rA),Vt===null?Ot=qA:Vt.sibling=qA,Vt=qA);return _&&Zt.forEach(function(k0e){return U(ht,k0e)}),ur&&Lf(ht,rA),Ot}function Mr(ht,et,gt,Kt){if(typeof gt=="object"&>!==null&>.type===re&>.key===null&&(gt=gt.props.children),typeof gt=="object"&>!==null){switch(gt.$$typeof){case L:e:{for(var Ot=gt.key,Vt=et;Vt!==null;){if(Vt.key===Ot){if(Ot=gt.type,Ot===re){if(Vt.tag===7){X(ht,Vt.sibling),et=Ie(Vt,gt.props.children),et.return=ht,ht=et;break e}}else if(Vt.elementType===Ot||typeof Ot=="object"&&Ot!==null&&Ot.$$typeof===h&&GK(Ot)===Vt.type){X(ht,Vt.sibling),et=Ie(Vt,gt.props),et.ref=Tu(ht,Vt,gt),et.return=ht,ht=et;break e}X(ht,Vt);break}else U(ht,Vt);Vt=Vt.sibling}gt.type===re?(et=Of(gt.props.children,ht.mode,Kt,gt.key),et.return=ht,ht=et):(Kt=bI(gt.type,gt.key,gt.props,null,ht.mode,Kt),Kt.ref=Tu(ht,et,gt),Kt.return=ht,ht=Kt)}return He(ht);case j:e:{for(Vt=gt.key;et!==null;){if(et.key===Vt)if(et.tag===4&&et.stateNode.containerInfo===gt.containerInfo&&et.stateNode.implementation===gt.implementation){X(ht,et.sibling),et=Ie(et,gt.children||[]),et.return=ht,ht=et;break e}else{X(ht,et);break}else U(ht,et);et=et.sibling}et=Yv(gt,ht.mode,Kt),et.return=ht,ht=et}return He(ht);case h:return Vt=gt._init,Mr(ht,et,Vt(gt._payload),Kt)}if(Ue(gt))return Yt(ht,et,gt,Kt);if(g(gt))return Pt(ht,et,gt,Kt);rI(ht,gt)}return typeof gt=="string"&>!==""||typeof gt=="number"?(gt=""+gt,et!==null&&et.tag===6?(X(ht,et.sibling),et=Ie(et,gt),et.return=ht,ht=et):(X(ht,et),et=Tv(gt,ht.mode,Kt),et.return=ht,ht=et),He(ht)):X(ht,et)}return Mr}var E0=LK(!0),UK=LK(!1),iI=_s(null),nI=null,p0=null,$y=null;function Xy(){$y=p0=nI=null}function ev(_){var U=iI.current;hr(iI),_._currentValue=U}function tv(_,U,X){for(;_!==null;){var ne=_.alternate;if((_.childLanes&U)!==U?(_.childLanes|=U,ne!==null&&(ne.childLanes|=U)):ne!==null&&(ne.childLanes&U)!==U&&(ne.childLanes|=U),_===X)break;_=_.return}}function Q0(_,U){nI=_,$y=p0=null,_=_.dependencies,_!==null&&_.firstContext!==null&&(_.lanes&U&&(Hi=!0),_.firstContext=null)}function Sn(_){var U=_._currentValue;if($y!==_)if(_={context:_,memoizedValue:U,next:null},p0===null){if(nI===null)throw Error(s(308));p0=_,nI.dependencies={lanes:0,firstContext:_}}else p0=p0.next=_;return U}var Uf=null;function Av(_){Uf===null?Uf=[_]:Uf.push(_)}function qK(_,U,X,ne){var Ie=U.interleaved;return Ie===null?(X.next=X,Av(U)):(X.next=Ie.next,Ie.next=X),U.interleaved=X,La(_,ne)}function La(_,U){_.lanes|=U;var X=_.alternate;for(X!==null&&(X.lanes|=U),X=_,_=_.return;_!==null;)_.childLanes|=U,X=_.alternate,X!==null&&(X.childLanes|=U),X=_,_=_.return;return X.tag===3?X.stateNode:null}var Gs=!1;function rv(_){_.updateQueue={baseState:_.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function HK(_,U){_=_.updateQueue,U.updateQueue===_&&(U.updateQueue={baseState:_.baseState,firstBaseUpdate:_.firstBaseUpdate,lastBaseUpdate:_.lastBaseUpdate,shared:_.shared,effects:_.effects})}function Ua(_,U){return{eventTime:_,lane:U,tag:0,payload:null,callback:null,next:null}}function Ls(_,U,X){var ne=_.updateQueue;if(ne===null)return null;if(ne=ne.shared,UA&2){var Ie=ne.pending;return Ie===null?U.next=U:(U.next=Ie.next,Ie.next=U),ne.pending=U,La(_,X)}return Ie=ne.interleaved,Ie===null?(U.next=U,Av(ne)):(U.next=Ie.next,Ie.next=U),ne.interleaved=U,La(_,X)}function oI(_,U,X){if(U=U.updateQueue,U!==null&&(U=U.shared,(X&4194240)!==0)){var ne=U.lanes;ne&=_.pendingLanes,X|=ne,U.lanes=X,By(_,X)}}function TK(_,U){var X=_.updateQueue,ne=_.alternate;if(ne!==null&&(ne=ne.updateQueue,X===ne)){var Ie=null,Se=null;if(X=X.firstBaseUpdate,X!==null){do{var He={eventTime:X.eventTime,lane:X.lane,tag:X.tag,payload:X.payload,callback:X.callback,next:null};Se===null?Ie=Se=He:Se=Se.next=He,X=X.next}while(X!==null);Se===null?Ie=Se=U:Se=Se.next=U}else Ie=Se=U;X={baseState:ne.baseState,firstBaseUpdate:Ie,lastBaseUpdate:Se,shared:ne.shared,effects:ne.effects},_.updateQueue=X;return}_=X.lastBaseUpdate,_===null?X.firstBaseUpdate=U:_.next=U,X.lastBaseUpdate=U}function aI(_,U,X,ne){var Ie=_.updateQueue;Gs=!1;var Se=Ie.firstBaseUpdate,He=Ie.lastBaseUpdate,je=Ie.shared.pending;if(je!==null){Ie.shared.pending=null;var Ze=je,lt=Ze.next;Ze.next=null,He===null?Se=lt:He.next=lt,He=Ze;var xt=_.alternate;xt!==null&&(xt=xt.updateQueue,je=xt.lastBaseUpdate,je!==He&&(je===null?xt.firstBaseUpdate=lt:je.next=lt,xt.lastBaseUpdate=Ze))}if(Se!==null){var kt=Ie.baseState;He=0,xt=lt=Ze=null,je=Se;do{var St=je.lane,Lt=je.eventTime;if((ne&St)===St){xt!==null&&(xt=xt.next={eventTime:Lt,lane:0,tag:je.tag,payload:je.payload,callback:je.callback,next:null});e:{var Yt=_,Pt=je;switch(St=U,Lt=X,Pt.tag){case 1:if(Yt=Pt.payload,typeof Yt=="function"){kt=Yt.call(Lt,kt,St);break e}kt=Yt;break e;case 3:Yt.flags=Yt.flags&-65537|128;case 0:if(Yt=Pt.payload,St=typeof Yt=="function"?Yt.call(Lt,kt,St):Yt,St==null)break e;kt=t({},kt,St);break e;case 2:Gs=!0}}je.callback!==null&&je.lane!==0&&(_.flags|=64,St=Ie.effects,St===null?Ie.effects=[je]:St.push(je))}else Lt={eventTime:Lt,lane:St,tag:je.tag,payload:je.payload,callback:je.callback,next:null},xt===null?(lt=xt=Lt,Ze=kt):xt=xt.next=Lt,He|=St;if(je=je.next,je===null){if(je=Ie.shared.pending,je===null)break;St=je,je=St.next,St.next=null,Ie.lastBaseUpdate=St,Ie.shared.pending=null}}while(!0);if(xt===null&&(Ze=kt),Ie.baseState=Ze,Ie.firstBaseUpdate=lt,Ie.lastBaseUpdate=xt,U=Ie.shared.interleaved,U!==null){Ie=U;do He|=Ie.lane,Ie=Ie.next;while(Ie!==U)}else Se===null&&(Ie.shared.lanes=0);Tf|=He,_.lanes=He,_.memoizedState=kt}}function YK(_,U,X){if(_=U.effects,U.effects=null,_!==null)for(U=0;U<_.length;U++){var ne=_[U],Ie=ne.callback;if(Ie!==null){if(ne.callback=null,ne=X,typeof Ie!="function")throw Error(s(191,Ie));Ie.call(ne)}}}var Yu={},$o=_s(Yu),Ju=_s(Yu),Pu=_s(Yu);function qf(_){if(_===Yu)throw Error(s(174));return _}function iv(_,U){switch(ir(Pu,U),ir(Ju,_),ir($o,Yu),_=U.nodeType,_){case 9:case 11:U=(U=U.documentElement)?U.namespaceURI:H(null,"");break;default:_=_===8?U.parentNode:U,U=_.namespaceURI||null,_=_.tagName,U=H(U,_)}hr($o),ir($o,U)}function y0(){hr($o),hr(Ju),hr(Pu)}function JK(_){qf(Pu.current);var U=qf($o.current),X=H(U,_.type);U!==X&&(ir(Ju,_),ir($o,X))}function nv(_){Ju.current===_&&(hr($o),hr(Ju))}var Ir=_s(0);function sI(_){for(var U=_;U!==null;){if(U.tag===13){var X=U.memoizedState;if(X!==null&&(X=X.dehydrated,X===null||X.data==="$?"||X.data==="$!"))return U}else if(U.tag===19&&U.memoizedProps.revealOrder!==void 0){if(U.flags&128)return U}else if(U.child!==null){U.child.return=U,U=U.child;continue}if(U===_)break;for(;U.sibling===null;){if(U.return===null||U.return===_)return null;U=U.return}U.sibling.return=U.return,U=U.sibling}return null}var ov=[];function av(){for(var _=0;_X?X:4,_(!0);var ne=sv.transition;sv.transition={};try{_(!1),U()}finally{WA=X,sv.transition=ne}}function sF(){return xn().memoizedState}function A0e(_,U,X){var ne=Ts(_);if(X={lane:ne,action:X,hasEagerState:!1,eagerState:null,next:null},fF(_))hF(U,X);else if(X=qK(_,U,X,ne),X!==null){var Ie=mi();Do(X,_,ne,Ie),gF(X,U,ne)}}function r0e(_,U,X){var ne=Ts(_),Ie={lane:ne,action:X,hasEagerState:!1,eagerState:null,next:null};if(fF(_))hF(U,Ie);else{var Se=_.alternate;if(_.lanes===0&&(Se===null||Se.lanes===0)&&(Se=U.lastRenderedReducer,Se!==null))try{var He=U.lastRenderedState,je=Se(He,X);if(Ie.hasEagerState=!0,Ie.eagerState=je,vo(je,He)){var Ze=U.interleaved;Ze===null?(Ie.next=Ie,Av(U)):(Ie.next=Ze.next,Ze.next=Ie),U.interleaved=Ie;return}}catch{}finally{}X=qK(_,U,Ie,ne),X!==null&&(Ie=mi(),Do(X,_,ne,Ie),gF(X,U,ne))}}function fF(_){var U=_.alternate;return _===Br||U!==null&&U===Br}function hF(_,U){Ou=hI=!0;var X=_.pending;X===null?U.next=U:(U.next=X.next,X.next=U),_.pending=U}function gF(_,U,X){if(X&4194240){var ne=U.lanes;ne&=_.pendingLanes,X|=ne,U.lanes=X,By(_,X)}}var cI={readContext:Sn,useCallback:ci,useContext:ci,useEffect:ci,useImperativeHandle:ci,useInsertionEffect:ci,useLayoutEffect:ci,useMemo:ci,useReducer:ci,useRef:ci,useState:ci,useDebugValue:ci,useDeferredValue:ci,useTransition:ci,useMutableSource:ci,useSyncExternalStore:ci,useId:ci,unstable_isNewReconciler:!1},i0e={readContext:Sn,useCallback:function(_,U){return Xo().memoizedState=[_,U===void 0?null:U],_},useContext:Sn,useEffect:eF,useImperativeHandle:function(_,U,X){return X=X!=null?X.concat([_]):null,gI(4194308,4,rF.bind(null,U,_),X)},useLayoutEffect:function(_,U){return gI(4194308,4,_,U)},useInsertionEffect:function(_,U){return gI(4,2,_,U)},useMemo:function(_,U){var X=Xo();return U=U===void 0?null:U,_=_(),X.memoizedState=[_,U],_},useReducer:function(_,U,X){var ne=Xo();return U=X!==void 0?X(U):U,ne.memoizedState=ne.baseState=U,_={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:_,lastRenderedState:U},ne.queue=_,_=_.dispatch=A0e.bind(null,Br,_),[ne.memoizedState,_]},useRef:function(_){var U=Xo();return _={current:_},U.memoizedState=_},useState:$K,useDebugValue:dv,useDeferredValue:function(_){return Xo().memoizedState=_},useTransition:function(){var _=$K(!1),U=_[0];return _=t0e.bind(null,_[1]),Xo().memoizedState=_,[U,_]},useMutableSource:function(){},useSyncExternalStore:function(_,U,X){var ne=Br,Ie=Xo();if(ur){if(X===void 0)throw Error(s(407));X=X()}else{if(X=U(),Pr===null)throw Error(s(349));Hf&30||jK(ne,U,X)}Ie.memoizedState=X;var Se={value:X,getSnapshot:U};return Ie.queue=Se,eF(VK.bind(null,ne,Se,_),[_]),ne.flags|=2048,Vu(9,WK.bind(null,ne,Se,X,U),void 0,null),X},useId:function(){var _=Xo(),U=Pr.identifierPrefix;if(ur){var X=Ga,ne=Fa;X=(ne&~(1<<32-EA(ne)-1)).toString(32)+X,U=":"+U+"R"+X,X=ju++,0<\/script>",_=_.removeChild(_.firstChild)):typeof ne.is=="string"?_=He.createElement(X,{is:ne.is}):(_=He.createElement(X),X==="select"&&(He=_,ne.multiple?He.multiple=!0:ne.size&&(He.size=ne.size))):_=He.createElementNS(_,X),_[zo]=U,_[qu]=ne,RF(_,U,!1,!1),U.stateNode=_;e:{switch(He=Qe(X,ne),X){case"dialog":fr("cancel",_),fr("close",_),Ie=ne;break;case"iframe":case"object":case"embed":fr("load",_),Ie=ne;break;case"video":case"audio":for(Ie=0;IeM0&&(U.flags|=128,ne=!0,Zu(Se,!1),U.lanes=4194304)}else{if(!ne)if(_=sI(He),_!==null){if(U.flags|=128,ne=!0,X=_.updateQueue,X!==null&&(U.updateQueue=X,U.flags|=4),Zu(Se,!0),Se.tail===null&&Se.tailMode==="hidden"&&!He.alternate&&!ur)return li(U),null}else 2*Ye()-Se.renderingStartTime>M0&&X!==1073741824&&(U.flags|=128,ne=!0,Zu(Se,!1),U.lanes=4194304);Se.isBackwards?(He.sibling=U.child,U.child=He):(X=Se.last,X!==null?X.sibling=He:U.child=He,Se.last=He)}return Se.tail!==null?(U=Se.tail,Se.rendering=U,Se.tail=U.sibling,Se.renderingStartTime=Ye(),U.sibling=null,X=Ir.current,ir(Ir,ne?X&1|2:X&1),U):(li(U),null);case 22:case 23:return Uv(),ne=U.memoizedState!==null,_!==null&&_.memoizedState!==null!==ne&&(U.flags|=8192),ne&&U.mode&1?an&1073741824&&(li(U),U.subtreeFlags&6&&(U.flags|=8192)):li(U),null;case 24:return null;case 25:return null}throw Error(s(156,U.tag))}function u0e(_,U){switch(Wy(U),U.tag){case 1:return qi(U.type)&&zd(),_=U.flags,_&65536?(U.flags=_&-65537|128,U):null;case 3:return y0(),hr(Ui),hr(ui),av(),_=U.flags,_&65536&&!(_&128)?(U.flags=_&-65537|128,U):null;case 5:return nv(U),null;case 13:if(hr(Ir),_=U.memoizedState,_!==null&&_.dehydrated!==null){if(U.alternate===null)throw Error(s(340));C0()}return _=U.flags,_&65536?(U.flags=_&-65537|128,U):null;case 19:return hr(Ir),null;case 4:return y0(),null;case 10:return ev(U.type._context),null;case 22:case 23:return Uv(),null;case 24:return null;default:return null}}var BI=!1,di=!1,c0e=typeof WeakSet=="function"?WeakSet:Set,Ht=null;function w0(_,U){var X=_.ref;if(X!==null)if(typeof X=="function")try{X(null)}catch(ne){pr(_,U,ne)}else X.current=null}function bv(_,U,X){try{X()}catch(ne){pr(_,U,ne)}}var _F=!1;function l0e(_,U){if(Uy=Gd,_=uK(),Ry(_)){if("selectionStart"in _)var X={start:_.selectionStart,end:_.selectionEnd};else e:{X=(X=_.ownerDocument)&&X.defaultView||window;var ne=X.getSelection&&X.getSelection();if(ne&&ne.rangeCount!==0){X=ne.anchorNode;var Ie=ne.anchorOffset,Se=ne.focusNode;ne=ne.focusOffset;try{X.nodeType,Se.nodeType}catch{X=null;break e}var He=0,je=-1,Ze=-1,lt=0,xt=0,kt=_,St=null;t:for(;;){for(var Lt;kt!==X||Ie!==0&&kt.nodeType!==3||(je=He+Ie),kt!==Se||ne!==0&&kt.nodeType!==3||(Ze=He+ne),kt.nodeType===3&&(He+=kt.nodeValue.length),(Lt=kt.firstChild)!==null;)St=kt,kt=Lt;for(;;){if(kt===_)break t;if(St===X&&++lt===Ie&&(je=He),St===Se&&++xt===ne&&(Ze=He),(Lt=kt.nextSibling)!==null)break;kt=St,St=kt.parentNode}kt=Lt}X=je===-1||Ze===-1?null:{start:je,end:Ze}}else X=null}X=X||{start:0,end:0}}else X=null;for(qy={focusedElem:_,selectionRange:X},Gd=!1,Ht=U;Ht!==null;)if(U=Ht,_=U.child,(U.subtreeFlags&1028)!==0&&_!==null)_.return=U,Ht=_;else for(;Ht!==null;){U=Ht;try{var Yt=U.alternate;if(U.flags&1024)switch(U.tag){case 0:case 11:case 15:break;case 1:if(Yt!==null){var Pt=Yt.memoizedProps,Mr=Yt.memoizedState,ht=U.stateNode,et=ht.getSnapshotBeforeUpdate(U.elementType===U.type?Pt:mo(U.type,Pt),Mr);ht.__reactInternalSnapshotBeforeUpdate=et}break;case 3:var gt=U.stateNode.containerInfo;gt.nodeType===1?gt.textContent="":gt.nodeType===9&>.documentElement&>.removeChild(gt.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(Kt){pr(U,U.return,Kt)}if(_=U.sibling,_!==null){_.return=U.return,Ht=_;break}Ht=U.return}return Yt=_F,_F=!1,Yt}function zu(_,U,X){var ne=U.updateQueue;if(ne=ne!==null?ne.lastEffect:null,ne!==null){var Ie=ne=ne.next;do{if((Ie.tag&_)===_){var Se=Ie.destroy;Ie.destroy=void 0,Se!==void 0&&bv(U,X,Se)}Ie=Ie.next}while(Ie!==ne)}}function CI(_,U){if(U=U.updateQueue,U=U!==null?U.lastEffect:null,U!==null){var X=U=U.next;do{if((X.tag&_)===_){var ne=X.create;X.destroy=ne()}X=X.next}while(X!==U)}}function Dv(_){var U=_.ref;if(U!==null){var X=_.stateNode;switch(_.tag){case 5:_=X;break;default:_=X}typeof U=="function"?U(_):U.current=_}}function KF(_){var U=_.alternate;U!==null&&(_.alternate=null,KF(U)),_.child=null,_.deletions=null,_.sibling=null,_.tag===5&&(U=_.stateNode,U!==null&&(delete U[zo],delete U[qu],delete U[Jy],delete U[Zhe],delete U[zhe])),_.stateNode=null,_.return=null,_.dependencies=null,_.memoizedProps=null,_.memoizedState=null,_.pendingProps=null,_.stateNode=null,_.updateQueue=null}function FF(_){return _.tag===5||_.tag===3||_.tag===4}function GF(_){e:for(;;){for(;_.sibling===null;){if(_.return===null||FF(_.return))return null;_=_.return}for(_.sibling.return=_.return,_=_.sibling;_.tag!==5&&_.tag!==6&&_.tag!==18;){if(_.flags&2||_.child===null||_.tag===4)continue e;_.child.return=_,_=_.child}if(!(_.flags&2))return _.stateNode}}function Sv(_,U,X){var ne=_.tag;if(ne===5||ne===6)_=_.stateNode,U?X.nodeType===8?X.parentNode.insertBefore(_,U):X.insertBefore(_,U):(X.nodeType===8?(U=X.parentNode,U.insertBefore(_,X)):(U=X,U.appendChild(_)),X=X._reactRootContainer,X!=null||U.onclick!==null||(U.onclick=Vd));else if(ne!==4&&(_=_.child,_!==null))for(Sv(_,U,X),_=_.sibling;_!==null;)Sv(_,U,X),_=_.sibling}function xv(_,U,X){var ne=_.tag;if(ne===5||ne===6)_=_.stateNode,U?X.insertBefore(_,U):X.appendChild(_);else if(ne!==4&&(_=_.child,_!==null))for(xv(_,U,X),_=_.sibling;_!==null;)xv(_,U,X),_=_.sibling}var ti=null,Mo=!1;function Us(_,U,X){for(X=X.child;X!==null;)LF(_,U,X),X=X.sibling}function LF(_,U,X){if(It&&typeof It.onCommitFiberUnmount=="function")try{It.onCommitFiberUnmount(ut,X)}catch{}switch(X.tag){case 5:di||w0(X,U);case 6:var ne=ti,Ie=Mo;ti=null,Us(_,U,X),ti=ne,Mo=Ie,ti!==null&&(Mo?(_=ti,X=X.stateNode,_.nodeType===8?_.parentNode.removeChild(X):_.removeChild(X)):ti.removeChild(X.stateNode));break;case 18:ti!==null&&(Mo?(_=ti,X=X.stateNode,_.nodeType===8?Yy(_.parentNode,X):_.nodeType===1&&Yy(_,X),Su(_)):Yy(ti,X.stateNode));break;case 4:ne=ti,Ie=Mo,ti=X.stateNode.containerInfo,Mo=!0,Us(_,U,X),ti=ne,Mo=Ie;break;case 0:case 11:case 14:case 15:if(!di&&(ne=X.updateQueue,ne!==null&&(ne=ne.lastEffect,ne!==null))){Ie=ne=ne.next;do{var Se=Ie,He=Se.destroy;Se=Se.tag,He!==void 0&&(Se&2||Se&4)&&bv(X,U,He),Ie=Ie.next}while(Ie!==ne)}Us(_,U,X);break;case 1:if(!di&&(w0(X,U),ne=X.stateNode,typeof ne.componentWillUnmount=="function"))try{ne.props=X.memoizedProps,ne.state=X.memoizedState,ne.componentWillUnmount()}catch(je){pr(X,U,je)}Us(_,U,X);break;case 21:Us(_,U,X);break;case 22:X.mode&1?(di=(ne=di)||X.memoizedState!==null,Us(_,U,X),di=ne):Us(_,U,X);break;default:Us(_,U,X)}}function UF(_){var U=_.updateQueue;if(U!==null){_.updateQueue=null;var X=_.stateNode;X===null&&(X=_.stateNode=new c0e),U.forEach(function(ne){var Ie=v0e.bind(null,_,ne);X.has(ne)||(X.add(ne),ne.then(Ie,Ie))})}}function bo(_,U){var X=U.deletions;if(X!==null)for(var ne=0;neIe&&(Ie=He),ne&=~Se}if(ne=Ie,ne=Ye()-ne,ne=(120>ne?120:480>ne?480:1080>ne?1080:1920>ne?1920:3e3>ne?3e3:4320>ne?4320:1960*I0e(ne/1960))-ne,10_?16:_,Hs===null)var ne=!1;else{if(_=Hs,Hs=null,vI=0,UA&6)throw Error(s(331));var Ie=UA;for(UA|=4,Ht=_.current;Ht!==null;){var Se=Ht,He=Se.child;if(Ht.flags&16){var je=Se.deletions;if(je!==null){for(var Ze=0;ZeYe()-Nv?Jf(_,0):kv|=X),Yi(_,U)}function $F(_,U){U===0&&(_.mode&1?(U=Nd,Nd<<=1,!(Nd&130023424)&&(Nd=4194304)):U=1);var X=mi();_=La(_,U),_!==null&&(wu(_,U,X),Yi(_,X))}function y0e(_){var U=_.memoizedState,X=0;U!==null&&(X=U.retryLane),$F(_,X)}function v0e(_,U){var X=0;switch(_.tag){case 13:var ne=_.stateNode,Ie=_.memoizedState;Ie!==null&&(X=Ie.retryLane);break;case 19:ne=_.stateNode;break;default:throw Error(s(314))}ne!==null&&ne.delete(U),$F(_,X)}var XF;XF=function(_,U,X){if(_!==null)if(_.memoizedProps!==U.pendingProps||Ui.current)Hi=!0;else{if(!(_.lanes&X)&&!(U.flags&128))return Hi=!1,h0e(_,U,X);Hi=!!(_.flags&131072)}else Hi=!1,ur&&U.flags&1048576&&kK(U,tI,U.index);switch(U.lanes=0,U.tag){case 2:var ne=U.type;II(_,U),_=U.pendingProps;var Ie=d0(U,ui.current);Q0(U,X),Ie=hv(null,U,ne,_,Ie,X);var Se=gv();return U.flags|=1,typeof Ie=="object"&&Ie!==null&&typeof Ie.render=="function"&&Ie.$$typeof===void 0?(U.tag=1,U.memoizedState=null,U.updateQueue=null,qi(ne)?(Se=!0,$d(U)):Se=!1,U.memoizedState=Ie.state!==null&&Ie.state!==void 0?Ie.state:null,rv(U),Ie.updater=lI,U.stateNode=Ie,Ie._reactInternals=U,Bv(U,ne,_,X),U=Qv(null,U,ne,!0,Se,X)):(U.tag=0,ur&&Se&&jy(U),wi(null,U,Ie,X),U=U.child),U;case 16:ne=U.elementType;e:{switch(II(_,U),_=U.pendingProps,Ie=ne._init,ne=Ie(ne._payload),U.type=ne,Ie=U.tag=m0e(ne),_=mo(ne,_),Ie){case 0:U=pv(null,U,ne,_,X);break e;case 1:U=mF(null,U,ne,_,X);break e;case 11:U=pF(null,U,ne,_,X);break e;case 14:U=QF(null,U,ne,mo(ne.type,_),X);break e}throw Error(s(306,ne,""))}return U;case 0:return ne=U.type,Ie=U.pendingProps,Ie=U.elementType===ne?Ie:mo(ne,Ie),pv(_,U,ne,Ie,X);case 1:return ne=U.type,Ie=U.pendingProps,Ie=U.elementType===ne?Ie:mo(ne,Ie),mF(_,U,ne,Ie,X);case 3:e:{if(MF(U),_===null)throw Error(s(387));ne=U.pendingProps,Se=U.memoizedState,Ie=Se.element,HK(_,U),aI(U,ne,null,X);var He=U.memoizedState;if(ne=He.element,Se.isDehydrated)if(Se={element:ne,isDehydrated:!1,cache:He.cache,pendingSuspenseBoundaries:He.pendingSuspenseBoundaries,transitions:He.transitions},U.updateQueue.baseState=Se,U.memoizedState=Se,U.flags&256){Ie=v0(Error(s(423)),U),U=bF(_,U,ne,X,Ie);break e}else if(ne!==Ie){Ie=v0(Error(s(424)),U),U=bF(_,U,ne,X,Ie);break e}else for(on=Ns(U.stateNode.containerInfo.firstChild),nn=U,ur=!0,wo=null,X=UK(U,null,ne,X),U.child=X;X;)X.flags=X.flags&-3|4096,X=X.sibling;else{if(C0(),ne===Ie){U=qa(_,U,X);break e}wi(_,U,ne,X)}U=U.child}return U;case 5:return JK(U),_===null&&Zy(U),ne=U.type,Ie=U.pendingProps,Se=_!==null?_.memoizedProps:null,He=Ie.children,Hy(ne,Ie)?He=null:Se!==null&&Hy(ne,Se)&&(U.flags|=32),wF(_,U),wi(_,U,He,X),U.child;case 6:return _===null&&Zy(U),null;case 13:return DF(_,U,X);case 4:return iv(U,U.stateNode.containerInfo),ne=U.pendingProps,_===null?U.child=E0(U,null,ne,X):wi(_,U,ne,X),U.child;case 11:return ne=U.type,Ie=U.pendingProps,Ie=U.elementType===ne?Ie:mo(ne,Ie),pF(_,U,ne,Ie,X);case 7:return wi(_,U,U.pendingProps,X),U.child;case 8:return wi(_,U,U.pendingProps.children,X),U.child;case 12:return wi(_,U,U.pendingProps.children,X),U.child;case 10:e:{if(ne=U.type._context,Ie=U.pendingProps,Se=U.memoizedProps,He=Ie.value,ir(iI,ne._currentValue),ne._currentValue=He,Se!==null)if(vo(Se.value,He)){if(Se.children===Ie.children&&!Ui.current){U=qa(_,U,X);break e}}else for(Se=U.child,Se!==null&&(Se.return=U);Se!==null;){var je=Se.dependencies;if(je!==null){He=Se.child;for(var Ze=je.firstContext;Ze!==null;){if(Ze.context===ne){if(Se.tag===1){Ze=Ua(-1,X&-X),Ze.tag=2;var lt=Se.updateQueue;if(lt!==null){lt=lt.shared;var xt=lt.pending;xt===null?Ze.next=Ze:(Ze.next=xt.next,xt.next=Ze),lt.pending=Ze}}Se.lanes|=X,Ze=Se.alternate,Ze!==null&&(Ze.lanes|=X),tv(Se.return,X,U),je.lanes|=X;break}Ze=Ze.next}}else if(Se.tag===10)He=Se.type===U.type?null:Se.child;else if(Se.tag===18){if(He=Se.return,He===null)throw Error(s(341));He.lanes|=X,je=He.alternate,je!==null&&(je.lanes|=X),tv(He,X,U),He=Se.sibling}else He=Se.child;if(He!==null)He.return=Se;else for(He=Se;He!==null;){if(He===U){He=null;break}if(Se=He.sibling,Se!==null){Se.return=He.return,He=Se;break}He=He.return}Se=He}wi(_,U,Ie.children,X),U=U.child}return U;case 9:return Ie=U.type,ne=U.pendingProps.children,Q0(U,X),Ie=Sn(Ie),ne=ne(Ie),U.flags|=1,wi(_,U,ne,X),U.child;case 14:return ne=U.type,Ie=mo(ne,U.pendingProps),Ie=mo(ne.type,Ie),QF(_,U,ne,Ie,X);case 15:return yF(_,U,U.type,U.pendingProps,X);case 17:return ne=U.type,Ie=U.pendingProps,Ie=U.elementType===ne?Ie:mo(ne,Ie),II(_,U),U.tag=1,qi(ne)?(_=!0,$d(U)):_=!1,Q0(U,X),cF(U,ne,Ie),Bv(U,ne,Ie,X),Qv(null,U,ne,!0,_,X);case 19:return xF(_,U,X);case 22:return vF(_,U,X)}throw Error(s(156,U.tag))};function e9(_,U){return wt(_,U)}function w0e(_,U,X,ne){this.tag=_,this.key=X,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=U,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=ne,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function kn(_,U,X,ne){return new w0e(_,U,X,ne)}function Hv(_){return _=_.prototype,!(!_||!_.isReactComponent)}function m0e(_){if(typeof _=="function")return Hv(_)?1:0;if(_!=null){if(_=_.$$typeof,_===e)return 11;if(_===a)return 14}return 2}function Js(_,U){var X=_.alternate;return X===null?(X=kn(_.tag,U,_.key,_.mode),X.elementType=_.elementType,X.type=_.type,X.stateNode=_.stateNode,X.alternate=_,_.alternate=X):(X.pendingProps=U,X.type=_.type,X.flags=0,X.subtreeFlags=0,X.deletions=null),X.flags=_.flags&14680064,X.childLanes=_.childLanes,X.lanes=_.lanes,X.child=_.child,X.memoizedProps=_.memoizedProps,X.memoizedState=_.memoizedState,X.updateQueue=_.updateQueue,U=_.dependencies,X.dependencies=U===null?null:{lanes:U.lanes,firstContext:U.firstContext},X.sibling=_.sibling,X.index=_.index,X.ref=_.ref,X}function bI(_,U,X,ne,Ie,Se){var He=2;if(ne=_,typeof _=="function")Hv(_)&&(He=1);else if(typeof _=="string")He=5;else e:switch(_){case re:return Of(X.children,Ie,Se,U);case Z:He=8,Ie|=8;break;case J:return _=kn(12,X,U,Ie|2),_.elementType=J,_.lanes=Se,_;case A:return _=kn(13,X,U,Ie),_.elementType=A,_.lanes=Se,_;case n:return _=kn(19,X,U,Ie),_.elementType=n,_.lanes=Se,_;case c:return DI(X,Ie,Se,U);default:if(typeof _=="object"&&_!==null)switch(_.$$typeof){case Ae:He=10;break e;case E:He=9;break e;case e:He=11;break e;case a:He=14;break e;case h:He=16,ne=null;break e}throw Error(s(130,_==null?_:typeof _,""))}return U=kn(He,X,U,Ie),U.elementType=_,U.type=ne,U.lanes=Se,U}function Of(_,U,X,ne){return _=kn(7,_,ne,U),_.lanes=X,_}function DI(_,U,X,ne){return _=kn(22,_,ne,U),_.elementType=c,_.lanes=X,_.stateNode={isHidden:!1},_}function Tv(_,U,X){return _=kn(6,_,null,U),_.lanes=X,_}function Yv(_,U,X){return U=kn(4,_.children!==null?_.children:[],_.key,U),U.lanes=X,U.stateNode={containerInfo:_.containerInfo,pendingChildren:null,implementation:_.implementation},U}function M0e(_,U,X,ne,Ie){this.tag=U,this.containerInfo=_,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Iy(0),this.expirationTimes=Iy(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Iy(0),this.identifierPrefix=ne,this.onRecoverableError=Ie,this.mutableSourceEagerHydrationData=null}function Jv(_,U,X,ne,Ie,Se,He,je,Ze){return _=new M0e(_,U,X,je,Ze),U===1?(U=1,Se===!0&&(U|=8)):U=0,Se=kn(3,null,null,U),_.current=Se,Se.stateNode=_,Se.memoizedState={element:ne,isDehydrated:X,cache:null,transitions:null,pendingSuspenseBoundaries:null},rv(Se),_}function b0e(_,U,X){var ne=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(i){console.error(i)}}return o(),Xv.exports=j0e(),Xv.exports}var Q9;function V0e(){if(Q9)return FI;Q9=1;var o=W0e();return FI.createRoot=o.createRoot,FI.hydrateRoot=o.hydrateRoot,FI}var Z0e=V0e();const z0e=gr(Z0e),gi={MAINNET:"mainnet",TESTNET:"testnet",CYAN:"cyan",AQUA:"aqua",CELESTE:"celeste"},Si={SAPPHIRE_DEVNET:"sapphire_devnet",SAPPHIRE_MAINNET:"sapphire_mainnet"},$0e=[],Tp={[gi.AQUA]:{migrationCompleted:!0,networkIdentifier:"aqua",networkMigratedTo:Si.SAPPHIRE_MAINNET},[gi.CELESTE]:{migrationCompleted:!0,networkIdentifier:"celeste",networkMigratedTo:Si.SAPPHIRE_MAINNET},[gi.CYAN]:{migrationCompleted:!0,networkIdentifier:"cyan",networkMigratedTo:Si.SAPPHIRE_MAINNET},[gi.MAINNET]:{migrationCompleted:!0,networkIdentifier:"mainnet",networkMigratedTo:Si.SAPPHIRE_MAINNET},[gi.TESTNET]:{migrationCompleted:!0,networkIdentifier:"teal",networkMigratedTo:Si.SAPPHIRE_DEVNET}},X0e={[Si.SAPPHIRE_MAINNET]:"https://signer.web3auth.io",[Si.SAPPHIRE_DEVNET]:"https://signer.web3auth.io",[gi.MAINNET]:"https://signer.web3auth.io",[gi.TESTNET]:"https://signer.web3auth.io",[gi.CYAN]:"https://signer-polygon.web3auth.io",[gi.AQUA]:"https://signer-polygon.web3auth.io",[gi.CELESTE]:"https://signer-polygon.web3auth.io"},ege={[gi.MAINNET]:"https://metadata.web3auth.io",[gi.TESTNET]:"https://metadata.web3auth.io",[gi.CYAN]:"https://metadata.web3auth.io",[gi.AQUA]:"https://metadata.web3auth.io",[gi.CELESTE]:"https://metadata.web3auth.io"},tge="https://fnd.web3auth.io",DE={SECP256K1:"secp256k1",ED25519:"ed25519"},$X={MAINNET:Si.SAPPHIRE_MAINNET,DEVNET:Si.SAPPHIRE_DEVNET};let Fc=function(o){return o.HashedShare="hashedShare",o.SecurityQuestions="tssSecurityQuestions",o.DeviceShare="deviceShare",o.SeedPhrase="seedPhrase",o.PasswordShare="passwordShare",o.SocialShare="socialShare",o.Other="Other",o}({});const GI={Delimiter1:"",Delimiter2:"",Delimiter3:"",Delimiter4:""},Aw={TKEY_SHARES_REQUIRED:"required more shares",INVALID_BACKUP_SHARE:"invalid backup share"};let qo=function(o){return o[o.DEVICE=2]="DEVICE",o[o.RECOVERY=3]="RECOVERY",o}({});const $0=[qo.DEVICE,qo.RECOVERY],Age=32,rw=32*2,y9=10,rge=1;function zc(o){"@babel/helpers - typeof";return zc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},zc(o)}function ige(o,i){if(zc(o)!="object"||!o)return o;var s=o[Symbol.toPrimitive];if(s!==void 0){var f=s.call(o,i||"default");if(zc(f)!="object")return f;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(o)}function nge(o){var i=ige(o,"string");return zc(i)=="symbol"?i:i+""}function $e(o,i,s){return(i=nge(i))in o?Object.defineProperty(o,i,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[i]=s,o}function oge(o,i){const{setPrototypeOf:s}=Object;s?s(o,i):o.__proto__=i}function age(o,i=o.constructor){const{captureStackTrace:s}=Error;s&&s(o,i)}let sge=class extends Error{constructor(i,s){super(i,s),$e(this,"name",void 0),Object.defineProperty(this,"name",{value:new.target.name,enumerable:!1,configurable:!0}),oge(this,new.target.prototype),age(this)}};class fge extends sge{constructor(i,s){super(s),$e(this,"code",void 0),$e(this,"message",void 0),this.code=i,this.message=s||"",Object.defineProperty(this,"name",{value:"TkeyError"})}toJSON(){return{name:this.name,code:this.code,message:this.message}}toString(){return JSON.stringify(this.toJSON())}}class bt extends fge{constructor(i,s){super(i,s),Object.defineProperty(this,"name",{value:"CoreKitError"})}static fromCode(i,s=""){return new bt(i,`${bt.messages[i]} ${s}`)}static default(i=""){return new bt(1e3,`${bt.messages[1e3]} ${i}`)}static chainConfigInvalid(i=""){return bt.fromCode(1001,i)}static clientIdInvalid(i=""){return bt.fromCode(1002,i)}static storageTypeUnsupported(i=""){return bt.fromCode(1003,i)}static oauthLoginUnsupported(i=""){return bt.fromCode(1004,i)}static noValidStorageOptionFound(i=""){return bt.fromCode(1005,i)}static noDataFoundInStorage(i=""){return bt.fromCode(1006,i)}static invalidConfig(i=""){return bt.fromCode(1007,i)}static tssLibRequired(i=""){return bt.fromCode(1101,i)}static tkeyInstanceUninitialized(i=""){return bt.fromCode(1102,i)}static duplicateTssIndex(i=""){return bt.fromCode(1103,i)}static nodeDetailsRetrievalFailed(i=""){return bt.fromCode(1104,i)}static prefetchValueExceeded(i=""){return bt.fromCode(1105,i)}static invalidTorusLoginResponse(i=""){return bt.fromCode(1106,i)}static invalidTorusAggregateLoginResponse(i=""){return bt.fromCode(1107,i)}static unsupportedRedirectMethod(i=""){return bt.fromCode(1108,i)}static postBoxKeyMissing(i=""){return bt.fromCode(1109,i)}static tssShareTypeIndexMissing(i=""){return bt.fromCode(1110,i)}static tssPublicKeyOrEndpointsMissing(i=""){return bt.fromCode(1111,i)}static activeSessionNotFound(i=""){return bt.fromCode(1112,i)}static tssNoncesMissing(i=""){return bt.fromCode(1113,i)}static tssKeyImportNotAllowed(i=""){return bt.fromCode(1114,i)}static factorKeyNotPresent(i=""){return bt.fromCode(1201,i)}static factorKeyAlreadyExists(i=""){return bt.fromCode(1202,i)}static mfaAlreadyEnabled(i=""){return bt.fromCode(1203,i)}static cannotDeleteLastFactor(i=""){return bt.fromCode(1204,i)}static factorInUseCannotBeDeleted(i=""){return bt.fromCode(1205,i)}static userNotLoggedIn(i=""){return bt.fromCode(1206,i)}static providedFactorKeyInvalid(i=""){return bt.fromCode(1207,i)}static factorEncsMissing(i=""){return bt.fromCode(1208,i)}static noMetadataFound(i=""){return bt.fromCode(1209,i)}static newShareIndexInvalid(i=""){return bt.fromCode(1210,i)}static maximumFactorsReached(i=""){return bt.fromCode(1211,i)}static noMetadataShareFound(i=""){return bt.fromCode(1212,i)}static signaturesNotPresent(i=""){return bt.fromCode(1213,i)}static factorPubsMissing(i=""){return bt.fromCode(1214,i)}static commitChangesBeforeMFA(i=""){return bt.fromCode(1301,i)}static mpcCoreKitNotInitialized(i=""){return bt.fromCode(1302,i)}}$e(bt,"messages",{1001:"You must specify a valid eip155 chain configuration in the options.",1002:"You must specify a web3auth clientId.",1003:"Unsupported storage type in this UX mode.",1004:"OAuth login is NOT supported in this UX mode.",1005:"No valid storage option found.",1006:"No data found in storage.",1007:"Invalid config.",1101:"'tssLib' is required when running in this UX mode.",1102:"'tkey' instance has not been initialized.",1103:"Duplicate TSS index found. Ensure that each TSS index is unique.",1104:"Failed to retrieve node details. Please check your network connection and try again.",1105:"The prefetch TSS public keys exceeds the maximum allowed limit of 3.",1106:"Invalid 'TorusLoginResponse' data provided.",1107:"Invalid 'TorusAggregateLoginResponse' data provided.",1108:"Unsupported method type encountered in redirect result.",1109:"OAuthKey not present in state.",1110:"TSS Share Type (Index) not present in state when getting current factor key.",1111:"'tssPubKey' or 'torusNodeTSSEndpoints' are missing.",1112:"No active session found.",1113:"tssNonces not present in metadata when getting tss nonce.",1114:"A TSS key cannot be imported for an existing user who already has a key configured.",1201:"factorKey not present in state when required.",1202:"A factor with the same key already exists.",1203:"MFA is already enabled.",1204:"Cannot delete the last remaining factor as at least one factor is required.",1205:"The factor currently in use cannot be deleted.",1206:"User is not logged in.",1207:"Provided factor key is invalid.",1208:"'factorEncs' mpt [resemt].",1209:"No metadata found for the provided factor key. Consider resetting your account if this error persists.",1210:"The new share index is not valid. It must be one of the valid share indices.",1211:"The maximum number of allowable factors (10) has been reached.",1212:"No metadata share found in the current polynomial.",1213:"No signatures found.",1214:"Factor public keys not present",1301:"The 'CommitChanges' method must be called before enabling MFA.",1302:"The MPC Core Kit is not initialized. Please ensure you call the 'init()' method to initialize the kit properly before attempting any operations."});class XX{constructor(i,s){$e(this,"storage",void 0),$e(this,"_storeKey",void 0),this.storage=s,this._storeKey=i}async toJSON(){const i=await this.storage.getItem(this._storeKey);if(!i)throw bt.noDataFoundInStorage(`No data found in storage under key '${this._storeKey}'.`);return i}async resetStore(){const i=await this.getStore();return await this.storage.setItem(this._storeKey,JSON.stringify({})),i}async getStore(){return JSON.parse(await this.storage.getItem(this._storeKey)||"{}")}async get(i){return JSON.parse(await this.storage.getItem(this._storeKey)||"{}")[i]}async set(i,s){const f=JSON.parse(await this.storage.getItem(this._storeKey)||"{}");f[i]=s,await this.storage.setItem(this._storeKey,JSON.stringify(f))}async remove(i){const s=JSON.parse(await this.storage.getItem(this._storeKey)||"{}");delete s[i],await this.storage.setItem(this._storeKey,JSON.stringify(s))}}let Xn=function(o){return o.secp256k1="secp256k1",o.ed25519="ed25519",o}({});const yA={GOOGLE:"google",FACEBOOK:"facebook",REDDIT:"reddit",DISCORD:"discord",TWITCH:"twitch",APPLE:"apple",GITHUB:"github",LINKEDIN:"linkedin",TWITTER:"twitter",WEIBO:"weibo",LINE:"line",EMAIL_PASSWORD:"email_password",PASSWORDLESS:"passwordless",EMAIL_PASSWORDLESS:"email_passwordless",SMS_PASSWORDLESS:"sms_passwordless",JWT:"jwt",PASSKEYS:"passkeys"},eee={SINGLE_VERIFIER_ID:"single_id_verifier"},ao={POPUP:"popup",REDIRECT:"redirect"},D0={LOCAL_STORAGE:"localStorage",SESSION_STORAGE:"sessionStorage",SERVER:"server"},X0={TRIGGER_LOGIN:"triggerLogin",TRIGGER_AGGREGATE_LOGIN:"triggerAggregateLogin"},v9={FETCH_NODE_DETAILS:"fetchNodeDetails",PUB_ADDRESS_LOOKUP:"pubAddressLookup",FETCH_SHARES:"fetchShares"};function w9(o,i){var s=Object.keys(o);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(o);i&&(f=f.filter(function(l){return Object.getOwnPropertyDescriptor(o,l).enumerable})),s.push.apply(s,f)}return s}function Tt(o){for(var i=1;i=0&&e<=D.levels.SILENT)return e;throw new TypeError("log.setLevel() called with invalid level: "+E)}D.name=m,D.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},D.methodFactory=x||v,D.getLevel=function(){return N??K??S},D.setLevel=function(E,e){return N=J(E),e!==!1&&j(N),d.call(D)},D.setDefaultLevel=function(E){K=J(E),re()||D.setLevel(E,!1)},D.resetLevel=function(){N=null,Z(),d.call(D)},D.enableAll=function(E){D.setLevel(D.levels.TRACE,E)},D.disableAll=function(E){D.setLevel(D.levels.SILENT,E)},D.rebuild=function(){if(B!==D&&(S=J(B.getLevel())),d.call(D),B===D)for(var E in r)r[E].rebuild()},S=J(B?B.getLevel():"WARN");var Ae=re();Ae!=null&&(N=J(Ae)),d.call(D)}B=new w,B.getLogger=function(x){if(typeof x!="symbol"&&typeof x!="string"||x==="")throw new TypeError("You must supply a name when creating a logger.");var D=r[x];return D||(D=r[x]=new w(x,B.methodFactory)),D};var M=typeof window!==s?window.log:void 0;return B.noConflict=function(){return typeof window!==s&&window.log===B&&(window.log=M),B},B.getLoggers=function(){return r},B.default=B,B})}(RC)),RC.exports}var tee=cge();const hs=gr(tee),SE=hs.getLogger("http-helpers");SE.setLevel(tee.levels.INFO);let lge="torus-default";const dge="x-api-key";async function Yp(o,i){let s=null;try{s=new URL(o)}catch{}return fetch(o,i)}function Jp(){const o={};return o[dge]=lge,o}function Pp(o){SE.info(`Response: ${o.status} ${o.statusText}`),SE.info(`Url: ${o.url}`)}function Ige(o){const i=o.headers.get("x-web3-correlation-id");i&&SE.info(`Request tracing with traceID = ${i}`)}const Bge=async(o,i)=>{let s=null;try{const f=new Promise((r,B)=>{s=setTimeout(()=>{B(new Error(`Timed out in ${o}ms`))},o)}),l=await Promise.race([i,f]);return s!=null&&clearTimeout(s),l}catch(f){throw s!=null&&clearTimeout(s),f}},Oo=async(o,i={},s={})=>{const f={mode:"cors",headers:{}};s.useAPIKey&&(f.headers=Tt(Tt({},f.headers),Jp())),i.method="GET";const l=mn(f,i),r=await Yp(o,l);if(r.ok){const B=r.headers.get("content-type");return B!=null&&B.includes("application/json")?r.json():r.text()}throw Pp(r),r},la=(o,i={},s={},f={})=>{const l={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};f.useAPIKey&&(l.headers=Tt(Tt({},l.headers),Jp())),s.method="POST";const r=mn(l,s);return f.isUrlEncodedData?(r.body=i,r.headers["Content-Type"]==="application/json; charset=utf-8"&&delete r.headers["Content-Type"]):r.body=JSON.stringify(i),Bge(f.timeout||6e4,Yp(o,r).then(B=>{if(f.logTracingHeader&&Ige(B),B.ok){const I=B.headers.get("content-type");return I!=null&&I.includes("application/json")?B.json():B.text()}throw Pp(B),B}))},Aee=async(o,i={},s={},f={})=>{const l={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};f.useAPIKey&&(l.headers=Tt(Tt({},l.headers),Jp())),s.method="PATCH";const r=mn(l,s);f.isUrlEncodedData?(r.body=i,r.headers["Content-Type"]==="application/json; charset=utf-8"&&delete r.headers["Content-Type"]):r.body=JSON.stringify(i);const B=await Yp(o,r);if(B.ok){const I=B.headers.get("content-type");return I!=null&&I.includes("application/json")?B.json():B.text()}throw Pp(B),B},ree=async(o,i={},s={},f={})=>{const l={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};f.useAPIKey&&(l.headers=Tt(Tt({},l.headers),Jp())),s.method="PUT";const r=mn(l,s);f.isUrlEncodedData?(r.body=i,r.headers["Content-Type"]==="application/json; charset=utf-8"&&delete r.headers["Content-Type"]):r.body=JSON.stringify(i);const B=await Yp(o,r);if(B.ok){const I=B.headers.get("content-type");return I!=null&&I.includes("application/json")?B.json():B.text()}throw Pp(B),B},Cge="modulepreload",Ege=function(o){return"/"+o},b9={},mk=function(i,s,f){let l=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const B=document.querySelector("meta[property=csp-nonce]"),I=(B==null?void 0:B.nonce)||(B==null?void 0:B.getAttribute("nonce"));l=Promise.allSettled(s.map(p=>{if(p=Ege(p),p in b9)return;b9[p]=!0;const Q=p.endsWith(".css"),d=Q?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${d}`))return;const y=document.createElement("link");if(y.rel=Q?"stylesheet":Cge,Q||(y.as="script"),y.crossOrigin="",y.href=p,I&&y.setAttribute("nonce",I),document.head.appendChild(y),Q)return new Promise((v,w)=>{y.addEventListener("load",v),y.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${p}`)))})}))}function r(B){const I=new Event("vite:preloadError",{cancelable:!0});if(I.payload=B,window.dispatchEvent(I),!I.defaultPrevented)throw B}return l.then(B=>{for(const I of B||[])I.status==="rejected"&&r(I.reason);return i().catch(r)})};function pge(o,i){if(o==null)return{};var s={};for(var f in o)if({}.hasOwnProperty.call(o,f)){if(i.includes(f))continue;s[f]=o[f]}return s}function Gc(o,i){if(o==null)return{};var s,f,l=pge(o,i);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(o);for(f=0;f0&&f[1]||""}static getSecondMatch(i,s){const f=s.match(i);return f&&f.length>1&&f[2]||""}static matchAndReturnConst(i,s,f){if(i.test(s))return f}static getWindowsVersionName(i){switch(i){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(i){const s=i.split(".").splice(0,2).map(f=>parseInt(f,10)||0);if(s.push(0),s[0]===10)switch(s[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(i){const s=i.split(".").splice(0,2).map(f=>parseInt(f,10)||0);if(s.push(0),!(s[0]===1&&s[1]<5)){if(s[0]===1&&s[1]<6)return"Cupcake";if(s[0]===1&&s[1]>=6)return"Donut";if(s[0]===2&&s[1]<2)return"Eclair";if(s[0]===2&&s[1]===2)return"Froyo";if(s[0]===2&&s[1]>2)return"Gingerbread";if(s[0]===3)return"Honeycomb";if(s[0]===4&&s[1]<1)return"Ice Cream Sandwich";if(s[0]===4&&s[1]<4)return"Jelly Bean";if(s[0]===4&&s[1]>=4)return"KitKat";if(s[0]===5)return"Lollipop";if(s[0]===6)return"Marshmallow";if(s[0]===7)return"Nougat";if(s[0]===8)return"Oreo";if(s[0]===9)return"Pie"}}static getVersionPrecision(i){return i.split(".").length}static compareVersions(i,s,f=!1){const l=Dt.getVersionPrecision(i),r=Dt.getVersionPrecision(s);let B=Math.max(l,r),I=0;const p=Dt.map([i,s],Q=>{const d=B-Dt.getVersionPrecision(Q),y=Q+new Array(d+1).join(".0");return Dt.map(y.split("."),v=>new Array(20-v.length).join("0")+v).reverse()});for(f&&(I=B-Math.min(l,r)),B-=1;B>=I;){if(p[0][B]>p[1][B])return 1;if(p[0][B]===p[1][B]){if(B===I)return 0;B-=1}else if(p[0][B]{f[p]=B[p]})}return i}static getBrowserAlias(i){return mge[i]}static getBrowserTypeByAlias(i){return iee[i]||""}}const er=/version\/(\d+(\.?_?\d+)+)/i,Mge=[{test:[/googlebot/i],describe(o){const i={name:"Googlebot"},s=Dt.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/opera/i],describe(o){const i={name:"Opera"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/opr\/|opios/i],describe(o){const i={name:"Opera"},s=Dt.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/SamsungBrowser/i],describe(o){const i={name:"Samsung Internet for Android"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/Whale/i],describe(o){const i={name:"NAVER Whale Browser"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/MZBrowser/i],describe(o){const i={name:"MZ Browser"},s=Dt.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/focus/i],describe(o){const i={name:"Focus"},s=Dt.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/swing/i],describe(o){const i={name:"Swing"},s=Dt.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/coast/i],describe(o){const i={name:"Opera Coast"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(o){const i={name:"Opera Touch"},s=Dt.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/yabrowser/i],describe(o){const i={name:"Yandex Browser"},s=Dt.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/ucbrowser/i],describe(o){const i={name:"UC Browser"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/Maxthon|mxios/i],describe(o){const i={name:"Maxthon"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/epiphany/i],describe(o){const i={name:"Epiphany"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/puffin/i],describe(o){const i={name:"Puffin"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/sleipnir/i],describe(o){const i={name:"Sleipnir"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/k-meleon/i],describe(o){const i={name:"K-Meleon"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/micromessenger/i],describe(o){const i={name:"WeChat"},s=Dt.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/qqbrowser/i],describe(o){const i={name:/qqbrowserlite/i.test(o)?"QQ Browser Lite":"QQ Browser"},s=Dt.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/msie|trident/i],describe(o){const i={name:"Internet Explorer"},s=Dt.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/\sedg\//i],describe(o){const i={name:"Microsoft Edge"},s=Dt.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/edg([ea]|ios)/i],describe(o){const i={name:"Microsoft Edge"},s=Dt.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/vivaldi/i],describe(o){const i={name:"Vivaldi"},s=Dt.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/seamonkey/i],describe(o){const i={name:"SeaMonkey"},s=Dt.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/sailfish/i],describe(o){const i={name:"Sailfish"},s=Dt.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,o);return s&&(i.version=s),i}},{test:[/silk/i],describe(o){const i={name:"Amazon Silk"},s=Dt.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/phantom/i],describe(o){const i={name:"PhantomJS"},s=Dt.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/slimerjs/i],describe(o){const i={name:"SlimerJS"},s=Dt.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(o){const i={name:"BlackBerry"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/(web|hpw)[o0]s/i],describe(o){const i={name:"WebOS Browser"},s=Dt.getFirstMatch(er,o)||Dt.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/bada/i],describe(o){const i={name:"Bada"},s=Dt.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/tizen/i],describe(o){const i={name:"Tizen"},s=Dt.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/qupzilla/i],describe(o){const i={name:"QupZilla"},s=Dt.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/firefox|iceweasel|fxios/i],describe(o){const i={name:"Firefox"},s=Dt.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/electron/i],describe(o){const i={name:"Electron"},s=Dt.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/MiuiBrowser/i],describe(o){const i={name:"Miui"},s=Dt.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/chromium/i],describe(o){const i={name:"Chromium"},s=Dt.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,o)||Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/chrome|crios|crmo/i],describe(o){const i={name:"Chrome"},s=Dt.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/GSA/i],describe(o){const i={name:"Google Search"},s=Dt.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test(o){const i=!o.test(/like android/i),s=o.test(/android/i);return i&&s},describe(o){const i={name:"Android Browser"},s=Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/playstation 4/i],describe(o){const i={name:"PlayStation 4"},s=Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/safari|applewebkit/i],describe(o){const i={name:"Safari"},s=Dt.getFirstMatch(er,o);return s&&(i.version=s),i}},{test:[/.*/i],describe(o){const i=/^(.*)\/(.*) /,s=/^(.*)\/(.*)[ \t]\((.*)/,l=o.search("\\(")!==-1?s:i;return{name:Dt.getFirstMatch(l,o),version:Dt.getSecondMatch(l,o)}}}],bge=[{test:[/Roku\/DVP/],describe(o){const i=Dt.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,o);return{name:Mi.Roku,version:i}}},{test:[/windows phone/i],describe(o){const i=Dt.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,o);return{name:Mi.WindowsPhone,version:i}}},{test:[/windows /i],describe(o){const i=Dt.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,o),s=Dt.getWindowsVersionName(i);return{name:Mi.Windows,version:i,versionName:s}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(o){const i={name:Mi.iOS},s=Dt.getSecondMatch(/(Version\/)(\d[\d.]+)/,o);return s&&(i.version=s),i}},{test:[/macintosh/i],describe(o){const i=Dt.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,o).replace(/[_\s]/g,"."),s=Dt.getMacOSVersionName(i),f={name:Mi.MacOS,version:i};return s&&(f.versionName=s),f}},{test:[/(ipod|iphone|ipad)/i],describe(o){const i=Dt.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,o).replace(/[_\s]/g,".");return{name:Mi.iOS,version:i}}},{test(o){const i=!o.test(/like android/i),s=o.test(/android/i);return i&&s},describe(o){const i=Dt.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,o),s=Dt.getAndroidVersionName(i),f={name:Mi.Android,version:i};return s&&(f.versionName=s),f}},{test:[/(web|hpw)[o0]s/i],describe(o){const i=Dt.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,o),s={name:Mi.WebOS};return i&&i.length&&(s.version=i),s}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(o){const i=Dt.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,o)||Dt.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,o)||Dt.getFirstMatch(/\bbb(\d+)/i,o);return{name:Mi.BlackBerry,version:i}}},{test:[/bada/i],describe(o){const i=Dt.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,o);return{name:Mi.Bada,version:i}}},{test:[/tizen/i],describe(o){const i=Dt.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,o);return{name:Mi.Tizen,version:i}}},{test:[/linux/i],describe(){return{name:Mi.Linux}}},{test:[/CrOS/],describe(){return{name:Mi.ChromeOS}}},{test:[/PlayStation 4/],describe(o){const i=Dt.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,o);return{name:Mi.PlayStation4,version:i}}}],Dge=[{test:[/googlebot/i],describe(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe(o){const i=Dt.getFirstMatch(/(can-l01)/i,o)&&"Nova",s={type:br.mobile,vendor:"Huawei"};return i&&(s.model=i),s}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe(){return{type:br.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe(){return{type:br.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(){return{type:br.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe(){return{type:br.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe(){return{type:br.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe(){return{type:br.tablet}}},{test(o){const i=o.test(/ipod|iphone/i),s=o.test(/like (ipod|iphone)/i);return i&&!s},describe(o){const i=Dt.getFirstMatch(/(ipod|iphone)/i,o);return{type:br.mobile,vendor:"Apple",model:i}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe(){return{type:br.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe(){return{type:br.mobile}}},{test(o){return o.getBrowserName(!0)==="blackberry"},describe(){return{type:br.mobile,vendor:"BlackBerry"}}},{test(o){return o.getBrowserName(!0)==="bada"},describe(){return{type:br.mobile}}},{test(o){return o.getBrowserName()==="windows phone"},describe(){return{type:br.mobile,vendor:"Microsoft"}}},{test(o){const i=Number(String(o.getOSVersion()).split(".")[0]);return o.getOSName(!0)==="android"&&i>=3},describe(){return{type:br.tablet}}},{test(o){return o.getOSName(!0)==="android"},describe(){return{type:br.mobile}}},{test(o){return o.getOSName(!0)==="macos"},describe(){return{type:br.desktop,vendor:"Apple"}}},{test(o){return o.getOSName(!0)==="windows"},describe(){return{type:br.desktop}}},{test(o){return o.getOSName(!0)==="linux"},describe(){return{type:br.desktop}}},{test(o){return o.getOSName(!0)==="playstation 4"},describe(){return{type:br.tv}}},{test(o){return o.getOSName(!0)==="roku"},describe(){return{type:br.tv}}}],Sge=[{test(o){return o.getBrowserName(!0)==="microsoft edge"},describe(o){if(/\sedg\//i.test(o))return{name:rf.Blink};const s=Dt.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,o);return{name:rf.EdgeHTML,version:s}}},{test:[/trident/i],describe(o){const i={name:rf.Trident},s=Dt.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test(o){return o.test(/presto/i)},describe(o){const i={name:rf.Presto},s=Dt.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test(o){const i=o.test(/gecko/i),s=o.test(/like gecko/i);return i&&!s},describe(o){const i={name:rf.Gecko},s=Dt.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}},{test:[/(apple)?webkit\/537\.36/i],describe(){return{name:rf.Blink}}},{test:[/(apple)?webkit/i],describe(o){const i={name:rf.WebKit},s=Dt.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,o);return s&&(i.version=s),i}}];class R9{constructor(i,s=!1){if(i==null||i==="")throw new Error("UserAgent parameter can't be empty");this._ua=i,this.parsedResult={},s!==!0&&this.parse()}getUA(){return this._ua}test(i){return i.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const i=Dt.find(Mge,s=>{if(typeof s.test=="function")return s.test(this);if(s.test instanceof Array)return s.test.some(f=>this.test(f));throw new Error("Browser's test function is not valid")});return i&&(this.parsedResult.browser=i.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(i){return i?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const i=Dt.find(bge,s=>{if(typeof s.test=="function")return s.test(this);if(s.test instanceof Array)return s.test.some(f=>this.test(f));throw new Error("Browser's test function is not valid")});return i&&(this.parsedResult.os=i.describe(this.getUA())),this.parsedResult.os}getOSName(i){const{name:s}=this.getOS();return i?String(s).toLowerCase()||"":s||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(i=!1){const{type:s}=this.getPlatform();return i?String(s).toLowerCase()||"":s||""}parsePlatform(){this.parsedResult.platform={};const i=Dt.find(Dge,s=>{if(typeof s.test=="function")return s.test(this);if(s.test instanceof Array)return s.test.some(f=>this.test(f));throw new Error("Browser's test function is not valid")});return i&&(this.parsedResult.platform=i.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(i){return i?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};const i=Dt.find(Sge,s=>{if(typeof s.test=="function")return s.test(this);if(s.test instanceof Array)return s.test.some(f=>this.test(f));throw new Error("Browser's test function is not valid")});return i&&(this.parsedResult.engine=i.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return Dt.assign({},this.parsedResult)}satisfies(i){const s={};let f=0;const l={};let r=0;if(Object.keys(i).forEach(I=>{const p=i[I];typeof p=="string"?(l[I]=p,r+=1):typeof p=="object"&&(s[I]=p,f+=1)}),f>0){const I=Object.keys(s),p=Dt.find(I,d=>this.isOS(d));if(p){const d=this.satisfies(s[p]);if(d!==void 0)return d}const Q=Dt.find(I,d=>this.isPlatform(d));if(Q){const d=this.satisfies(s[Q]);if(d!==void 0)return d}}if(r>0){const I=Object.keys(l),p=Dt.find(I,Q=>this.isBrowser(Q,!0));if(p!==void 0)return this.compareVersion(l[p])}}isBrowser(i,s=!1){const f=this.getBrowserName().toLowerCase();let l=i.toLowerCase();const r=Dt.getBrowserTypeByAlias(l);return s&&r&&(l=r.toLowerCase()),l===f}compareVersion(i){let s=[0],f=i,l=!1;const r=this.getBrowserVersion();if(typeof r=="string")return i[0]===">"||i[0]==="<"?(f=i.substr(1),i[1]==="="?(l=!0,f=i.substr(2)):s=[],i[0]===">"?s.push(1):s.push(-1)):i[0]==="="?f=i.substr(1):i[0]==="~"&&(l=!0,f=i.substr(1)),s.indexOf(Dt.compareVersions(r,f,l))>-1}isOS(i){return this.getOSName(!0)===String(i).toLowerCase()}isPlatform(i){return this.getPlatformType(!0)===String(i).toLowerCase()}isEngine(i){return this.getEngineName(!0)===String(i).toLowerCase()}is(i,s=!1){return this.isBrowser(i,s)||this.isOS(i)||this.isPlatform(i)}some(i=[]){return i.some(s=>this.is(s))}}/*! - * Bowser - a browser detector - * https://github.com/lancedikson/bowser - * MIT License | (c) Dustin Diaz 2012-2015 - * MIT License | (c) Denis Demchenko 2015-2019 - */class mh{static getParser(i,s=!1){if(typeof i!="string")throw new Error("UserAgent should be a string");return new R9(i,s)}static parse(i){return new R9(i).getResult()}static get BROWSER_MAP(){return iee}static get ENGINE_MAP(){return rf}static get OS_MAP(){return Mi}static get PLATFORMS_MAP(){return br}}var OA=hs.getLogger("customauth");const nee={[yA.APPLE]:"apple",[yA.GITHUB]:"github",[yA.LINKEDIN]:"linkedin",[yA.TWITTER]:"twitter",[yA.WEIBO]:"weibo",[yA.LINE]:"line",[yA.EMAIL_PASSWORD]:"Username-Password-Authentication",[yA.PASSWORDLESS]:"email",[yA.EMAIL_PASSWORDLESS]:"email",[yA.SMS_PASSWORDLESS]:"sms"},Op=o=>o.href.endsWith("/")?o.href:`${o.href}/`,xge=()=>Math.random().toString(36).slice(2),oee={webWorkerSupport:!1};function ow(o,i){return i?o:o.toLowerCase()}const Cg=(o,i,s,f=!0)=>{const{name:l,sub:r}=o;if(s)return ow(o[s],f);switch(i){case yA.PASSWORDLESS:case yA.EMAIL_PASSWORD:case yA.EMAIL_PASSWORDLESS:case yA.SMS_PASSWORDLESS:return ow(l,f);case yA.WEIBO:case yA.GITHUB:case yA.TWITTER:case yA.APPLE:case yA.LINKEDIN:case yA.LINE:case yA.JWT:return ow(r,f);default:throw new Error("Invalid login type to get verifier id")}},aw=(o,i)=>{const s=o.split("&").reduce((r,B)=>{const[I,p]=B.split("=");return r[I]=p,r},{});OA.info(s,i);let f={},l="";return Object.keys(s).length>0&&s.state?(f=JSON.parse(gs.decode(decodeURIComponent(decodeURIComponent(s.state))))||{},l=s.error_description||s.error||l):Object.keys(i).length>0&&i.state&&(f=JSON.parse(gs.decode(decodeURIComponent(decodeURIComponent(i.state))))||{},i.error&&(l=i.error)),{error:l,instanceParameters:f,hashParameters:s}};function Rge(o){let i;try{i=window[o];const s="__storage_test__";return i.setItem(s,s),i.removeItem(s),!0}catch(s){const f=s;return f&&(f.code===22||f.code===1014||f.name==="QuotaExceededError"||f.name==="NS_ERROR_DOM_QUOTA_REACHED")&&i&&i.length!==0}}function kge(){const o=window.screenLeft!==void 0?window.screenLeft:window.screenX,i=window.screenTop!==void 0?window.screenTop:window.screenY,s=1200,f=700,l=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:window.screen.width,r=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:window.screen.height,B=1,I=Math.abs((l-s)/2/B+o),p=Math.abs((r-f)/2/B+i);return`titlebar=0,toolbar=0,status=0,location=0,menubar=0,height=${f/B},width=${s/B},top=${p},left=${I}`}const Nge=()=>{var o;return((o=window)===null||o===void 0||(o=o.navigator)===null||o===void 0?void 0:o.userAgent.toLowerCase().indexOf("firefox"))>-1||!1};function aee(o){const{baseURL:i,query:s,hash:f}=o,l=new URL(i);if(s&&Object.keys(s).forEach(r=>{l.searchParams.append(r,s[r])}),f){const r=new URL(aee({baseURL:i,query:f})).searchParams.toString();l.hash=r}return l.toString()}function _ge(){var o;const i=mh.parse(navigator.userAgent);OA.info(JSON.stringify(i),"current browser info");let s=!0;return(o=navigator)!==null&&o!==void 0&&o.brave&&(s=!1),(i.engine.name===mh.ENGINE_MAP.WebKit||i.engine.name===mh.ENGINE_MAP.Gecko)&&(s=!1),s}const Mk=o=>{try{return new URL(decodeURIComponent(o))}catch(i){throw new Error(`${(i==null?void 0:i.message)||""}, Note: Your jwt domain: (i.e ${o}) must have http:// or https:// prefix`)}};function Kge(){const i=mh.getParser(navigator.userAgent).getPlatform();return i.type===mh.PLATFORMS_MAP.tablet||i.type===mh.PLATFORMS_MAP.mobile}function Fge(o){return(o===yA.FACEBOOK||o===yA.LINE)&&Kge()?1e3*60:1e3*10}function jp(o){const[i,s]=o.split(".");return{header:JSON.parse(gs.decode(i)),payload:JSON.parse(gs.decode(s))}}var qI={exports:{}},k9;function zg(){if(k9)return qI.exports;k9=1;var o=typeof Reflect=="object"?Reflect:null,i=o&&typeof o.apply=="function"?o.apply:function(L,j,re){return Function.prototype.apply.call(L,j,re)},s;o&&typeof o.ownKeys=="function"?s=o.ownKeys:Object.getOwnPropertySymbols?s=function(L){return Object.getOwnPropertyNames(L).concat(Object.getOwnPropertySymbols(L))}:s=function(L){return Object.getOwnPropertyNames(L)};function f(N){console&&console.warn&&console.warn(N)}var l=Number.isNaN||function(L){return L!==L};function r(){r.init.call(this)}qI.exports=r,qI.exports.once=D,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._eventsCount=0,r.prototype._maxListeners=void 0;var B=10;function I(N){if(typeof N!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof N)}Object.defineProperty(r,"defaultMaxListeners",{enumerable:!0,get:function(){return B},set:function(N){if(typeof N!="number"||N<0||l(N))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+N+".");B=N}}),r.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},r.prototype.setMaxListeners=function(L){if(typeof L!="number"||L<0||l(L))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+L+".");return this._maxListeners=L,this};function p(N){return N._maxListeners===void 0?r.defaultMaxListeners:N._maxListeners}r.prototype.getMaxListeners=function(){return p(this)},r.prototype.emit=function(L){for(var j=[],re=1;re0&&(Ae=j[0]),Ae instanceof Error)throw Ae;var E=new Error("Unhandled error."+(Ae?" ("+Ae.message+")":""));throw E.context=Ae,E}var e=J[L];if(e===void 0)return!1;if(typeof e=="function")i(e,this,j);else for(var A=e.length,n=M(e,A),re=0;re0&&Ae.length>Z&&!Ae.warned){Ae.warned=!0;var E=new Error("Possible EventEmitter memory leak detected. "+Ae.length+" "+String(L)+" listeners added. Use emitter.setMaxListeners() to increase limit");E.name="MaxListenersExceededWarning",E.emitter=N,E.type=L,E.count=Ae.length,f(E)}return N}r.prototype.addListener=function(L,j){return Q(this,L,j,!1)},r.prototype.on=r.prototype.addListener,r.prototype.prependListener=function(L,j){return Q(this,L,j,!0)};function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function y(N,L,j){var re={fired:!1,wrapFn:void 0,target:N,type:L,listener:j},Z=d.bind(re);return Z.listener=j,re.wrapFn=Z,Z}r.prototype.once=function(L,j){return I(j),this.on(L,y(this,L,j)),this},r.prototype.prependOnceListener=function(L,j){return I(j),this.prependListener(L,y(this,L,j)),this},r.prototype.removeListener=function(L,j){var re,Z,J,Ae,E;if(I(j),Z=this._events,Z===void 0)return this;if(re=Z[L],re===void 0)return this;if(re===j||re.listener===j)--this._eventsCount===0?this._events=Object.create(null):(delete Z[L],Z.removeListener&&this.emit("removeListener",L,re.listener||j));else if(typeof re!="function"){for(J=-1,Ae=re.length-1;Ae>=0;Ae--)if(re[Ae]===j||re[Ae].listener===j){E=re[Ae].listener,J=Ae;break}if(J<0)return this;J===0?re.shift():m(re,J),re.length===1&&(Z[L]=re[0]),Z.removeListener!==void 0&&this.emit("removeListener",L,E||j)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(L){var j,re,Z;if(re=this._events,re===void 0)return this;if(re.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):re[L]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete re[L]),this;if(arguments.length===0){var J=Object.keys(re),Ae;for(Z=0;Z=0;Z--)this.removeListener(L,j[Z]);return this};function v(N,L,j){var re=N._events;if(re===void 0)return[];var Z=re[L];return Z===void 0?[]:typeof Z=="function"?j?[Z.listener||Z]:[Z]:j?x(Z):M(Z,Z.length)}r.prototype.listeners=function(L){return v(this,L,!0)},r.prototype.rawListeners=function(L){return v(this,L,!1)},r.listenerCount=function(N,L){return typeof N.listenerCount=="function"?N.listenerCount(L):w.call(N,L)},r.prototype.listenerCount=w;function w(N){var L=this._events;if(L!==void 0){var j=L[N];if(typeof j=="function")return 1;if(j!==void 0)return j.length}return 0}r.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]};function M(N,L){for(var j=new Array(L),re=0;re{this.window&&this.window.closed&&(clearInterval(this.windowTimer),setTimeout(()=>{this.iClosedWindow||this.emit("close"),this.iClosedWindow=!1,this.window=void 0},this.timeout)),this.window===void 0&&clearInterval(this.windowTimer)},500))}open(){var i;if(this.window=window.open(this.url.href,this.target,this.features),!this.window)throw new Error("popup window is blocked");return(i=this.window)!==null&&i!==void 0&&i.focus&&this.window.focus(),Promise.resolve()}close(){this.iClosedWindow=!0,this.window&&this.window.close()}redirect(i){i?window.location.replace(this.url.href):window.location.href=this.url.href}}const Lge=["access_token","id_token"];class Bs{constructor(i){$e(this,"nonce",xge()),$e(this,"finalURL",void 0),$e(this,"params",void 0),this.params=i}get state(){return encodeURIComponent(gs.encode(JSON.stringify(Tt(Tt({},this.params.customState||{}),{},{instanceId:this.nonce,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin,redirectToOpener:this.params.redirectToOpener||!1}))))}async handleLoginWindow(i){const s=new see({url:this.finalURL,features:i.popupFeatures,timeout:Fge(this.params.typeOfLogin)});if(this.params.uxMode===ao.REDIRECT)s.redirect(i.locationReplaceOnRedirect);else{const{BroadcastChannel:f}=await mk(async()=>{const{BroadcastChannel:l}=await import("./index-CP_Sedkw.js");return{BroadcastChannel:l}},[]);return new Promise((l,r)=>{let B;const I=async p=>{try{const{error:Q,data:d}=p,y=d||{},{instanceParams:v,hashParams:{access_token:w,id_token:M}}=y,m=Gc(y.hashParams,Lge);if(Q){OA.error(p),r(new Error(`Error: ${Q}. Info: ${JSON.stringify(p.data||{})}`));return}p.data&&v.verifier===this.params.verifier&&(OA.info(p.data),!this.params.redirectToOpener&&B&&await B.postMessage({success:!0}),l(Tt(Tt({accessToken:w,idToken:M||""},m),{},{state:v})))}catch(Q){OA.error(Q),r(Q)}};if(!this.params.redirectToOpener)B=new f(`redirect_channel_${this.nonce}`,oee),B.addEventListener("message",async p=>{await I(p),B.close(),s.close()});else{const p=async Q=>{if(!Q.data)return;const d=Q.data;d.channel===`redirect_channel_${this.nonce}`&&(window.removeEventListener("message",p),I(d),s.close())};window.addEventListener("message",p)}try{s.open()}catch(p){OA.error(p),r(p);return}s.once("close",()=>{B&&B.close(),r(new Error("user closed popup"))})})}return null}}class Uge extends Bs{constructor(i){super(i),$e(this,"RESPONSE_TYPE","token"),$e(this,"SCOPE","identify email"),this.setFinalUrl()}setFinalUrl(){const i=new URL("https://discord.com/api/oauth2/authorize"),s=JSON.parse(JSON.stringify(this.params.jwtParams||{})),f=mn({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE},s);Object.keys(f).forEach(l=>{const r=l;f[r]&&i.searchParams.append(r,f[r])}),this.finalURL=i}async getUserInfo(i){const{accessToken:s}=i,f=await Oo("https://discord.com/api/users/@me",{headers:{Authorization:`Bearer ${s}`}}),{id:l,avatar:r,email:B="",username:I="",discriminator:p=""}=f;return{profileImage:r===null?`https://cdn.discordapp.com/embed/avatars/${Number(p)%5}.png`:`https://cdn.discordapp.com/avatars/${l}/${r}.png?size=2048`,name:`${I}#${p}`,email:B,verifierId:l,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}class qge extends Bs{constructor(i){super(i),$e(this,"RESPONSE_TYPE","token"),$e(this,"SCOPE","public_profile email"),this.setFinalUrl()}setFinalUrl(){const i=new URL("https://www.facebook.com/v20.0/dialog/oauth"),s=JSON.parse(JSON.stringify(this.params.jwtParams||{})),f=mn({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE},s);Object.keys(f).forEach(l=>{const r=l;f[r]&&i.searchParams.append(r,f[r])}),this.finalURL=i}async getUserInfo(i){const{accessToken:s}=i,f=await Oo("https://graph.facebook.com/me?fields=name,email,picture.type(large)",{headers:{Authorization:`Bearer ${s}`}}),{name:l="",id:r,picture:B,email:I=""}=f;return{email:I,name:l,profileImage:B.data.url||"",verifier:this.params.verifier,verifierId:r,typeOfLogin:this.params.typeOfLogin}}}class Hge extends Bs{constructor(i){super(i),$e(this,"RESPONSE_TYPE","token id_token"),$e(this,"SCOPE","profile email openid"),$e(this,"PROMPT","select_account"),this.setFinalUrl()}setFinalUrl(){const i=new URL("https://accounts.google.com/o/oauth2/v2/auth"),s=JSON.parse(JSON.stringify(this.params.jwtParams||{})),f=mn({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,prompt:this.PROMPT,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,nonce:this.nonce},s);Object.keys(f).forEach(l=>{const r=l;f[r]&&i.searchParams.append(r,f[r])}),this.finalURL=i}async getUserInfo(i){const{accessToken:s}=i,f=await Oo("https://www.googleapis.com/userinfo/v2/me",{headers:{Authorization:`Bearer ${s}`}}),{picture:l="",email:r="",name:B=""}=f;return{email:r,name:B,profileImage:l,verifier:this.params.verifier,verifierId:r.toLowerCase(),typeOfLogin:this.params.typeOfLogin}}}class Tge extends Bs{constructor(i){super(i),$e(this,"SCOPE","openid profile email"),$e(this,"RESPONSE_TYPE","token id_token"),$e(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:i}=this.params.jwtParams,s=Mk(i);s.pathname+=s.pathname.endsWith("/")?"authorize":"/authorize";const f=JSON.parse(JSON.stringify(this.params.jwtParams));delete f.domain;const l=mn({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,prompt:this.PROMPT,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,connection:nee[this.params.typeOfLogin],nonce:this.nonce},f);Object.keys(l).forEach(r=>{const B=r;l[B]&&s.searchParams.append(B,l[B])}),this.finalURL=s}async getUserInfo(i){const{idToken:s,accessToken:f}=i,{domain:l,verifierIdField:r,isVerifierIdCaseSensitive:B,user_info_route:I="userinfo"}=this.params.jwtParams;if(f)try{const p=new URL(l),Q=await Oo(`${Op(p)}${I}`,{headers:{Authorization:`Bearer ${f}`}}),{picture:d,name:y,email:v}=Q;return{email:v,name:y,profileImage:d,verifierId:Cg(Q,this.params.typeOfLogin,r,B),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(p){hs.warn(p,"Unable to get userinfo from endpoint")}if(s){const p=jp(s).payload,{name:Q,email:d,picture:y}=p;return{profileImage:y,name:Q,email:d,verifierId:Cg(p,this.params.typeOfLogin,r,B),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}throw new Error("Access/id token not available")}}class Yge extends Bs{constructor(i){super(i),this.setFinalUrl()}setFinalUrl(){const i=JSON.parse(JSON.stringify(this.params.jwtParams));delete i.domain;const s=mn({state:this.state,client_id:this.params.clientId,nonce:this.nonce},i);this.finalURL=new URL(aee({baseURL:this.params.redirect_uri,query:null,hash:s}))}async getUserInfo(i){const{idToken:s,accessToken:f}=i,{domain:l,verifierIdField:r,isVerifierIdCaseSensitive:B,user_info_route:I="userinfo"}=this.params.jwtParams;if(f)try{const p=new URL(l),Q=await Oo(`${Op(p)}${I}`,{headers:{Authorization:`Bearer ${f}`}}),{picture:d,name:y,email:v}=Q;return{email:v,name:y,profileImage:d,verifierId:Cg(Q,this.params.typeOfLogin,r,B),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(p){hs.warn(p,"Unable to get userinfo from endpoint")}if(s){const p=jp(s).payload,{name:Q,email:d,picture:y}=p;return{profileImage:y,name:Q,email:d,verifierId:Cg(p,this.params.typeOfLogin,r,B),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}throw new Error("Access/id token not available")}handleLoginWindow(i){const{id_token:s,access_token:f}=this.params.jwtParams,l=new see({url:this.finalURL,features:i.popupFeatures});if(this.params.uxMode===ao.REDIRECT)l.redirect(i.locationReplaceOnRedirect);else return Promise.resolve({state:{},idToken:s,accessToken:f});return null}}let Jge=class{constructor(){$e(this,"sessionId",void 0)}checkSessionParams(){if(!this.sessionId)throw new Error("Session id is required");this.sessionId=this.sessionId.padStart(64,"0")}request({method:i="GET",url:s,data:f={},headers:l={}}){const r={headers:l};switch(i){case"GET":return Oo(s,r);case"POST":return la(s,f,r);case"PUT":return ree(s,f,r);case"PATCH":return Aee(s,f,r)}throw new Error("Invalid method type")}};var sw={};const Pge="elliptic",Oge="6.6.1",jge="EC cryptography",Wge="lib/elliptic.js",Vge=["lib"],Zge={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},zge={type:"git",url:"git@github.com:indutny/elliptic"},$ge=["EC","Elliptic","curve","Cryptography"],Xge="Fedor Indutny ",eue="MIT",tue={url:"https://github.com/indutny/elliptic/issues"},Aue="https://github.com/indutny/elliptic",rue={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},iue={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},nue={name:Pge,version:Oge,description:jge,main:Wge,files:Vge,scripts:Zge,repository:zge,keywords:$ge,author:Xge,license:eue,bugs:tue,homepage:Aue,devDependencies:rue,dependencies:iue};var fw={},kC={exports:{}};const oue={},aue=Object.freeze(Object.defineProperty({__proto__:null,default:oue},Symbol.toStringTag,{value:"Module"})),tA=K0e(aue);var sue=kC.exports,N9;function Cs(){return N9||(N9=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,sue)}(kC)),kC.exports}var hw,_9;function co(){if(_9)return hw;_9=1,hw=o;function o(i,s){if(!i)throw new Error(s||"Assertion failed")}return o.equal=function(s,f,l){if(s!=f)throw new Error(l||"Assertion failed: "+s+" != "+f)},hw}var gw={},K9;function fee(){return K9||(K9=1,function(o){var i=o;function s(r,B){if(Array.isArray(r))return r.slice();if(!r)return[];var I=[];if(typeof r!="string"){for(var p=0;p>8,y=Q&255;d?I.push(d,y):I.push(y)}return I}i.toArray=s;function f(r){return r.length===1?"0"+r:r}i.zero2=f;function l(r){for(var B="",I=0;I(m>>1)-1?D=(m>>1)-S:D=S,x.isubn(D)):D=0,w[M]=D,x.iushrn(1)}return w}i.getNAF=r;function B(d,y){var v=[[],[]];d=d.clone(),y=y.clone();for(var w=0,M=0,m;d.cmpn(-w)>0||y.cmpn(-M)>0;){var x=d.andln(3)+w&3,D=y.andln(3)+M&3;x===3&&(x=-1),D===3&&(D=-1);var S;x&1?(m=d.andln(7)+w&7,(m===3||m===5)&&D===2?S=-x:S=x):S=0,v[0].push(S);var K;D&1?(m=y.andln(7)+M&7,(m===3||m===5)&&x===2?K=-D:K=D):K=0,v[1].push(K),2*w===S+1&&(w=1-w),2*M===K+1&&(M=1-M),d.iushrn(1),y.iushrn(1)}return v}i.getJSF=B;function I(d,y,v){var w="_"+y;d.prototype[y]=function(){return this[w]!==void 0?this[w]:this[w]=v.call(this)}}i.cachedProperty=I;function p(d){return typeof d=="string"?i.toArray(d,"hex"):d}i.parseBytes=p;function Q(d){return new s(d,"hex","le")}i.intFromLE=Q}(fw)),fw}var HI={exports:{}},dA={},TI={exports:{}},YI={exports:{}},uw={},ic={},G9;function fue(){if(G9)return ic;G9=1,ic.byteLength=I,ic.toByteArray=Q,ic.fromByteArray=v;for(var o=[],i=[],s=typeof Uint8Array<"u"?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,r=f.length;l0)throw new Error("Invalid string. Length must be a multiple of 4");var m=w.indexOf("=");m===-1&&(m=M);var x=m===M?0:4-m%4;return[m,x]}function I(w){var M=B(w),m=M[0],x=M[1];return(m+x)*3/4-x}function p(w,M,m){return(M+m)*3/4-m}function Q(w){var M,m=B(w),x=m[0],D=m[1],S=new s(p(w,x,D)),K=0,N=D>0?x-4:x,L;for(L=0;L>16&255,S[K++]=M>>8&255,S[K++]=M&255;return D===2&&(M=i[w.charCodeAt(L)]<<2|i[w.charCodeAt(L+1)]>>4,S[K++]=M&255),D===1&&(M=i[w.charCodeAt(L)]<<10|i[w.charCodeAt(L+1)]<<4|i[w.charCodeAt(L+2)]>>2,S[K++]=M>>8&255,S[K++]=M&255),S}function d(w){return o[w>>18&63]+o[w>>12&63]+o[w>>6&63]+o[w&63]}function y(w,M,m){for(var x,D=[],S=M;SN?N:K+S));return x===1?(M=w[m-1],D.push(o[M>>2]+o[M<<4&63]+"==")):x===2&&(M=(w[m-2]<<8)+w[m-1],D.push(o[M>>10]+o[M>>4&63]+o[M<<2&63]+"=")),D.join("")}return ic}var JI={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */var L9;function hue(){return L9||(L9=1,JI.read=function(o,i,s,f,l){var r,B,I=l*8-f-1,p=(1<>1,d=-7,y=s?l-1:0,v=s?-1:1,w=o[i+y];for(y+=v,r=w&(1<<-d)-1,w>>=-d,d+=I;d>0;r=r*256+o[i+y],y+=v,d-=8);for(B=r&(1<<-d)-1,r>>=-d,d+=f;d>0;B=B*256+o[i+y],y+=v,d-=8);if(r===0)r=1-Q;else{if(r===p)return B?NaN:(w?-1:1)*(1/0);B=B+Math.pow(2,f),r=r-Q}return(w?-1:1)*B*Math.pow(2,r-f)},JI.write=function(o,i,s,f,l,r){var B,I,p,Q=r*8-l-1,d=(1<>1,v=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=f?0:r-1,M=f?1:-1,m=i<0||i===0&&1/i<0?1:0;for(i=Math.abs(i),isNaN(i)||i===1/0?(I=isNaN(i)?1:0,B=d):(B=Math.floor(Math.log(i)/Math.LN2),i*(p=Math.pow(2,-B))<1&&(B--,p*=2),B+y>=1?i+=v/p:i+=v*Math.pow(2,1-y),i*p>=2&&(B++,p/=2),B+y>=d?(I=0,B=d):B+y>=1?(I=(i*p-1)*Math.pow(2,l),B=B+y):(I=i*Math.pow(2,y-1)*Math.pow(2,l),B=0));l>=8;o[s+w]=I&255,w+=M,I/=256,l-=8);for(B=B<0;o[s+w]=B&255,w+=M,B/=256,Q-=8);o[s+w-M]|=m*128}),JI}/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */var U9;function jo(){return U9||(U9=1,function(o){const i=fue(),s=hue(),f=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;o.Buffer=I,o.SlowBuffer=S,o.INSPECT_MAX_BYTES=50;const l=2147483647;o.kMaxLength=l,I.TYPED_ARRAY_SUPPORT=r(),!I.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function r(){try{const H=new Uint8Array(1),k={foo:function(){return 42}};return Object.setPrototypeOf(k,Uint8Array.prototype),Object.setPrototypeOf(H,k),H.foo()===42}catch{return!1}}Object.defineProperty(I.prototype,"parent",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.buffer}}),Object.defineProperty(I.prototype,"offset",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.byteOffset}});function B(H){if(H>l)throw new RangeError('The value "'+H+'" is invalid for option "size"');const k=new Uint8Array(H);return Object.setPrototypeOf(k,I.prototype),k}function I(H,k,G){if(typeof H=="number"){if(typeof k=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(H)}return p(H,k,G)}I.poolSize=8192;function p(H,k,G){if(typeof H=="string")return v(H,k);if(ArrayBuffer.isView(H))return M(H);if(H==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof H);if(ce(H,ArrayBuffer)||H&&ce(H.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ce(H,SharedArrayBuffer)||H&&ce(H.buffer,SharedArrayBuffer)))return m(H,k,G);if(typeof H=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const O=H.valueOf&&H.valueOf();if(O!=null&&O!==H)return I.from(O,k,G);const ee=x(H);if(ee)return ee;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof H[Symbol.toPrimitive]=="function")return I.from(H[Symbol.toPrimitive]("string"),k,G);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof H)}I.from=function(H,k,G){return p(H,k,G)},Object.setPrototypeOf(I.prototype,Uint8Array.prototype),Object.setPrototypeOf(I,Uint8Array);function Q(H){if(typeof H!="number")throw new TypeError('"size" argument must be of type number');if(H<0)throw new RangeError('The value "'+H+'" is invalid for option "size"')}function d(H,k,G){return Q(H),H<=0?B(H):k!==void 0?typeof G=="string"?B(H).fill(k,G):B(H).fill(k):B(H)}I.alloc=function(H,k,G){return d(H,k,G)};function y(H){return Q(H),B(H<0?0:D(H)|0)}I.allocUnsafe=function(H){return y(H)},I.allocUnsafeSlow=function(H){return y(H)};function v(H,k){if((typeof k!="string"||k==="")&&(k="utf8"),!I.isEncoding(k))throw new TypeError("Unknown encoding: "+k);const G=K(H,k)|0;let O=B(G);const ee=O.write(H,k);return ee!==G&&(O=O.slice(0,ee)),O}function w(H){const k=H.length<0?0:D(H.length)|0,G=B(k);for(let O=0;O=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return H|0}function S(H){return+H!=H&&(H=0),I.alloc(+H)}I.isBuffer=function(k){return k!=null&&k._isBuffer===!0&&k!==I.prototype},I.compare=function(k,G){if(ce(k,Uint8Array)&&(k=I.from(k,k.offset,k.byteLength)),ce(G,Uint8Array)&&(G=I.from(G,G.offset,G.byteLength)),!I.isBuffer(k)||!I.isBuffer(G))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(k===G)return 0;let O=k.length,ee=G.length;for(let de=0,ie=Math.min(O,ee);deee.length?(I.isBuffer(ie)||(ie=I.from(ie)),ie.copy(ee,de)):Uint8Array.prototype.set.call(ee,ie,de);else if(I.isBuffer(ie))ie.copy(ee,de);else throw new TypeError('"list" argument must be an Array of Buffers');de+=ie.length}return ee};function K(H,k){if(I.isBuffer(H))return H.length;if(ArrayBuffer.isView(H)||ce(H,ArrayBuffer))return H.byteLength;if(typeof H!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof H);const G=H.length,O=arguments.length>2&&arguments[2]===!0;if(!O&&G===0)return 0;let ee=!1;for(;;)switch(k){case"ascii":case"latin1":case"binary":return G;case"utf8":case"utf-8":return xe(H).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G*2;case"hex":return G>>>1;case"base64":return Ue(H).length;default:if(ee)return O?-1:xe(H).length;k=(""+k).toLowerCase(),ee=!0}}I.byteLength=K;function N(H,k,G){let O=!1;if((k===void 0||k<0)&&(k=0),k>this.length||((G===void 0||G>this.length)&&(G=this.length),G<=0)||(G>>>=0,k>>>=0,G<=k))return"";for(H||(H="utf8");;)switch(H){case"hex":return g(this,k,G);case"utf8":case"utf-8":return n(this,k,G);case"ascii":return c(this,k,G);case"latin1":case"binary":return C(this,k,G);case"base64":return A(this,k,G);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return t(this,k,G);default:if(O)throw new TypeError("Unknown encoding: "+H);H=(H+"").toLowerCase(),O=!0}}I.prototype._isBuffer=!0;function L(H,k,G){const O=H[k];H[k]=H[G],H[G]=O}I.prototype.swap16=function(){const k=this.length;if(k%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let G=0;GG&&(k+=" ... "),""},f&&(I.prototype[f]=I.prototype.inspect),I.prototype.compare=function(k,G,O,ee,de){if(ce(k,Uint8Array)&&(k=I.from(k,k.offset,k.byteLength)),!I.isBuffer(k))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof k);if(G===void 0&&(G=0),O===void 0&&(O=k?k.length:0),ee===void 0&&(ee=0),de===void 0&&(de=this.length),G<0||O>k.length||ee<0||de>this.length)throw new RangeError("out of range index");if(ee>=de&&G>=O)return 0;if(ee>=de)return-1;if(G>=O)return 1;if(G>>>=0,O>>>=0,ee>>>=0,de>>>=0,this===k)return 0;let ie=de-ee,Ee=O-G;const Oe=Math.min(ie,Ee),Ce=this.slice(ee,de),Qe=k.slice(G,O);for(let Je=0;Je2147483647?G=2147483647:G<-2147483648&&(G=-2147483648),G=+G,Te(G)&&(G=ee?0:H.length-1),G<0&&(G=H.length+G),G>=H.length){if(ee)return-1;G=H.length-1}else if(G<0)if(ee)G=0;else return-1;if(typeof k=="string"&&(k=I.from(k,O)),I.isBuffer(k))return k.length===0?-1:re(H,k,G,O,ee);if(typeof k=="number")return k=k&255,typeof Uint8Array.prototype.indexOf=="function"?ee?Uint8Array.prototype.indexOf.call(H,k,G):Uint8Array.prototype.lastIndexOf.call(H,k,G):re(H,[k],G,O,ee);throw new TypeError("val must be string, number or Buffer")}function re(H,k,G,O,ee){let de=1,ie=H.length,Ee=k.length;if(O!==void 0&&(O=String(O).toLowerCase(),O==="ucs2"||O==="ucs-2"||O==="utf16le"||O==="utf-16le")){if(H.length<2||k.length<2)return-1;de=2,ie/=2,Ee/=2,G/=2}function Oe(Qe,Je){return de===1?Qe[Je]:Qe.readUInt16BE(Je*de)}let Ce;if(ee){let Qe=-1;for(Ce=G;Ceie&&(G=ie-Ee),Ce=G;Ce>=0;Ce--){let Qe=!0;for(let Je=0;Jeee&&(O=ee)):O=ee;const de=k.length;O>de/2&&(O=de/2);let ie;for(ie=0;ie>>0,isFinite(O)?(O=O>>>0,ee===void 0&&(ee="utf8")):(ee=O,O=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const de=this.length-G;if((O===void 0||O>de)&&(O=de),k.length>0&&(O<0||G<0)||G>this.length)throw new RangeError("Attempt to write outside buffer bounds");ee||(ee="utf8");let ie=!1;for(;;)switch(ee){case"hex":return Z(this,k,G,O);case"utf8":case"utf-8":return J(this,k,G,O);case"ascii":case"latin1":case"binary":return Ae(this,k,G,O);case"base64":return E(this,k,G,O);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return e(this,k,G,O);default:if(ie)throw new TypeError("Unknown encoding: "+ee);ee=(""+ee).toLowerCase(),ie=!0}},I.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function A(H,k,G){return k===0&&G===H.length?i.fromByteArray(H):i.fromByteArray(H.slice(k,G))}function n(H,k,G){G=Math.min(H.length,G);const O=[];let ee=k;for(;ee239?4:de>223?3:de>191?2:1;if(ee+Ee<=G){let Oe,Ce,Qe,Je;switch(Ee){case 1:de<128&&(ie=de);break;case 2:Oe=H[ee+1],(Oe&192)===128&&(Je=(de&31)<<6|Oe&63,Je>127&&(ie=Je));break;case 3:Oe=H[ee+1],Ce=H[ee+2],(Oe&192)===128&&(Ce&192)===128&&(Je=(de&15)<<12|(Oe&63)<<6|Ce&63,Je>2047&&(Je<55296||Je>57343)&&(ie=Je));break;case 4:Oe=H[ee+1],Ce=H[ee+2],Qe=H[ee+3],(Oe&192)===128&&(Ce&192)===128&&(Qe&192)===128&&(Je=(de&15)<<18|(Oe&63)<<12|(Ce&63)<<6|Qe&63,Je>65535&&Je<1114112&&(ie=Je))}}ie===null?(ie=65533,Ee=1):ie>65535&&(ie-=65536,O.push(ie>>>10&1023|55296),ie=56320|ie&1023),O.push(ie),ee+=Ee}return h(O)}const a=4096;function h(H){const k=H.length;if(k<=a)return String.fromCharCode.apply(String,H);let G="",O=0;for(;OO)&&(G=O);let ee="";for(let de=k;deO&&(k=O),G<0?(G+=O,G<0&&(G=0)):G>O&&(G=O),GG)throw new RangeError("Trying to access beyond buffer length")}I.prototype.readUintLE=I.prototype.readUIntLE=function(k,G,O){k=k>>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k],de=1,ie=0;for(;++ie>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k+--G],de=1;for(;G>0&&(de*=256);)ee+=this[k+--G]*de;return ee},I.prototype.readUint8=I.prototype.readUInt8=function(k,G){return k=k>>>0,G||u(k,1,this.length),this[k]},I.prototype.readUint16LE=I.prototype.readUInt16LE=function(k,G){return k=k>>>0,G||u(k,2,this.length),this[k]|this[k+1]<<8},I.prototype.readUint16BE=I.prototype.readUInt16BE=function(k,G){return k=k>>>0,G||u(k,2,this.length),this[k]<<8|this[k+1]},I.prototype.readUint32LE=I.prototype.readUInt32LE=function(k,G){return k=k>>>0,G||u(k,4,this.length),(this[k]|this[k+1]<<8|this[k+2]<<16)+this[k+3]*16777216},I.prototype.readUint32BE=I.prototype.readUInt32BE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]*16777216+(this[k+1]<<16|this[k+2]<<8|this[k+3])},I.prototype.readBigUInt64LE=Be(function(k){k=k>>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=G+this[++k]*2**8+this[++k]*2**16+this[++k]*2**24,de=this[++k]+this[++k]*2**8+this[++k]*2**16+O*2**24;return BigInt(ee)+(BigInt(de)<>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=G*2**24+this[++k]*2**16+this[++k]*2**8+this[++k],de=this[++k]*2**24+this[++k]*2**16+this[++k]*2**8+O;return(BigInt(ee)<>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k],de=1,ie=0;for(;++ie=de&&(ee-=Math.pow(2,8*G)),ee},I.prototype.readIntBE=function(k,G,O){k=k>>>0,G=G>>>0,O||u(k,G,this.length);let ee=G,de=1,ie=this[k+--ee];for(;ee>0&&(de*=256);)ie+=this[k+--ee]*de;return de*=128,ie>=de&&(ie-=Math.pow(2,8*G)),ie},I.prototype.readInt8=function(k,G){return k=k>>>0,G||u(k,1,this.length),this[k]&128?(255-this[k]+1)*-1:this[k]},I.prototype.readInt16LE=function(k,G){k=k>>>0,G||u(k,2,this.length);const O=this[k]|this[k+1]<<8;return O&32768?O|4294901760:O},I.prototype.readInt16BE=function(k,G){k=k>>>0,G||u(k,2,this.length);const O=this[k+1]|this[k]<<8;return O&32768?O|4294901760:O},I.prototype.readInt32LE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]|this[k+1]<<8|this[k+2]<<16|this[k+3]<<24},I.prototype.readInt32BE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]<<24|this[k+1]<<16|this[k+2]<<8|this[k+3]},I.prototype.readBigInt64LE=Be(function(k){k=k>>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=this[k+4]+this[k+5]*2**8+this[k+6]*2**16+(O<<24);return(BigInt(ee)<>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=(G<<24)+this[++k]*2**16+this[++k]*2**8+this[++k];return(BigInt(ee)<>>0,G||u(k,4,this.length),s.read(this,k,!0,23,4)},I.prototype.readFloatBE=function(k,G){return k=k>>>0,G||u(k,4,this.length),s.read(this,k,!1,23,4)},I.prototype.readDoubleLE=function(k,G){return k=k>>>0,G||u(k,8,this.length),s.read(this,k,!0,52,8)},I.prototype.readDoubleBE=function(k,G){return k=k>>>0,G||u(k,8,this.length),s.read(this,k,!1,52,8)};function b(H,k,G,O,ee,de){if(!I.isBuffer(H))throw new TypeError('"buffer" argument must be a Buffer instance');if(k>ee||kH.length)throw new RangeError("Index out of range")}I.prototype.writeUintLE=I.prototype.writeUIntLE=function(k,G,O,ee){if(k=+k,G=G>>>0,O=O>>>0,!ee){const Ee=Math.pow(2,8*O)-1;b(this,k,G,O,Ee,0)}let de=1,ie=0;for(this[G]=k&255;++ie>>0,O=O>>>0,!ee){const Ee=Math.pow(2,8*O)-1;b(this,k,G,O,Ee,0)}let de=O-1,ie=1;for(this[G+de]=k&255;--de>=0&&(ie*=256);)this[G+de]=k/ie&255;return G+O},I.prototype.writeUint8=I.prototype.writeUInt8=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,1,255,0),this[G]=k&255,G+1},I.prototype.writeUint16LE=I.prototype.writeUInt16LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,65535,0),this[G]=k&255,this[G+1]=k>>>8,G+2},I.prototype.writeUint16BE=I.prototype.writeUInt16BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,65535,0),this[G]=k>>>8,this[G+1]=k&255,G+2},I.prototype.writeUint32LE=I.prototype.writeUInt32LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,4294967295,0),this[G+3]=k>>>24,this[G+2]=k>>>16,this[G+1]=k>>>8,this[G]=k&255,G+4},I.prototype.writeUint32BE=I.prototype.writeUInt32BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,4294967295,0),this[G]=k>>>24,this[G+1]=k>>>16,this[G+2]=k>>>8,this[G+3]=k&255,G+4};function R(H,k,G,O,ee){q(k,O,ee,H,G,7);let de=Number(k&BigInt(4294967295));H[G++]=de,de=de>>8,H[G++]=de,de=de>>8,H[G++]=de,de=de>>8,H[G++]=de;let ie=Number(k>>BigInt(32)&BigInt(4294967295));return H[G++]=ie,ie=ie>>8,H[G++]=ie,ie=ie>>8,H[G++]=ie,ie=ie>>8,H[G++]=ie,G}function T(H,k,G,O,ee){q(k,O,ee,H,G,7);let de=Number(k&BigInt(4294967295));H[G+7]=de,de=de>>8,H[G+6]=de,de=de>>8,H[G+5]=de,de=de>>8,H[G+4]=de;let ie=Number(k>>BigInt(32)&BigInt(4294967295));return H[G+3]=ie,ie=ie>>8,H[G+2]=ie,ie=ie>>8,H[G+1]=ie,ie=ie>>8,H[G]=ie,G+8}I.prototype.writeBigUInt64LE=Be(function(k,G=0){return R(this,k,G,BigInt(0),BigInt("0xffffffffffffffff"))}),I.prototype.writeBigUInt64BE=Be(function(k,G=0){return T(this,k,G,BigInt(0),BigInt("0xffffffffffffffff"))}),I.prototype.writeIntLE=function(k,G,O,ee){if(k=+k,G=G>>>0,!ee){const Oe=Math.pow(2,8*O-1);b(this,k,G,O,Oe-1,-Oe)}let de=0,ie=1,Ee=0;for(this[G]=k&255;++de>0)-Ee&255;return G+O},I.prototype.writeIntBE=function(k,G,O,ee){if(k=+k,G=G>>>0,!ee){const Oe=Math.pow(2,8*O-1);b(this,k,G,O,Oe-1,-Oe)}let de=O-1,ie=1,Ee=0;for(this[G+de]=k&255;--de>=0&&(ie*=256);)k<0&&Ee===0&&this[G+de+1]!==0&&(Ee=1),this[G+de]=(k/ie>>0)-Ee&255;return G+O},I.prototype.writeInt8=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,1,127,-128),k<0&&(k=255+k+1),this[G]=k&255,G+1},I.prototype.writeInt16LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,32767,-32768),this[G]=k&255,this[G+1]=k>>>8,G+2},I.prototype.writeInt16BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,32767,-32768),this[G]=k>>>8,this[G+1]=k&255,G+2},I.prototype.writeInt32LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,2147483647,-2147483648),this[G]=k&255,this[G+1]=k>>>8,this[G+2]=k>>>16,this[G+3]=k>>>24,G+4},I.prototype.writeInt32BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,2147483647,-2147483648),k<0&&(k=4294967295+k+1),this[G]=k>>>24,this[G+1]=k>>>16,this[G+2]=k>>>8,this[G+3]=k&255,G+4},I.prototype.writeBigInt64LE=Be(function(k,G=0){return R(this,k,G,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),I.prototype.writeBigInt64BE=Be(function(k,G=0){return T(this,k,G,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function V(H,k,G,O,ee,de){if(G+O>H.length)throw new RangeError("Index out of range");if(G<0)throw new RangeError("Index out of range")}function P(H,k,G,O,ee){return k=+k,G=G>>>0,ee||V(H,k,G,4),s.write(H,k,G,O,23,4),G+4}I.prototype.writeFloatLE=function(k,G,O){return P(this,k,G,!0,O)},I.prototype.writeFloatBE=function(k,G,O){return P(this,k,G,!1,O)};function F(H,k,G,O,ee){return k=+k,G=G>>>0,ee||V(H,k,G,8),s.write(H,k,G,O,52,8),G+8}I.prototype.writeDoubleLE=function(k,G,O){return F(this,k,G,!0,O)},I.prototype.writeDoubleBE=function(k,G,O){return F(this,k,G,!1,O)},I.prototype.copy=function(k,G,O,ee){if(!I.isBuffer(k))throw new TypeError("argument should be a Buffer");if(O||(O=0),!ee&&ee!==0&&(ee=this.length),G>=k.length&&(G=k.length),G||(G=0),ee>0&&ee=this.length)throw new RangeError("Index out of range");if(ee<0)throw new RangeError("sourceEnd out of bounds");ee>this.length&&(ee=this.length),k.length-G>>0,O=O===void 0?this.length:O>>>0,k||(k=0);let de;if(typeof k=="number")for(de=G;de2**32?ee=te(String(G)):typeof G=="bigint"&&(ee=String(G),(G>BigInt(2)**BigInt(32)||G<-(BigInt(2)**BigInt(32)))&&(ee=te(ee)),ee+="n"),O+=` It must be ${k}. Received ${ee}`,O},RangeError);function te(H){let k="",G=H.length;const O=H[0]==="-"?1:0;for(;G>=O+4;G-=3)k=`_${H.slice(G-3,G)}${k}`;return`${H.slice(0,G)}${k}`}function z(H,k,G){$(k,"offset"),(H[k]===void 0||H[k+G]===void 0)&&le(k,H.length-(G+1))}function q(H,k,G,O,ee,de){if(H>G||H= 0${ie} and < 2${ie} ** ${(de+1)*8}${ie}`:Ee=`>= -(2${ie} ** ${(de+1)*8-1}${ie}) and < 2 ** ${(de+1)*8-1}${ie}`,new Y.ERR_OUT_OF_RANGE("value",Ee,H)}z(O,ee,de)}function $(H,k){if(typeof H!="number")throw new Y.ERR_INVALID_ARG_TYPE(k,"number",H)}function le(H,k,G){throw Math.floor(H)!==H?($(H,G),new Y.ERR_OUT_OF_RANGE("offset","an integer",H)):k<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${k}`,H)}const ae=/[^+/0-9A-Za-z-_]/g;function he(H){if(H=H.split("=")[0],H=H.trim().replace(ae,""),H.length<2)return"";for(;H.length%4!==0;)H=H+"=";return H}function xe(H,k){k=k||1/0;let G;const O=H.length;let ee=null;const de=[];for(let ie=0;ie55295&&G<57344){if(!ee){if(G>56319){(k-=3)>-1&&de.push(239,191,189);continue}else if(ie+1===O){(k-=3)>-1&&de.push(239,191,189);continue}ee=G;continue}if(G<56320){(k-=3)>-1&&de.push(239,191,189),ee=G;continue}G=(ee-55296<<10|G-56320)+65536}else ee&&(k-=3)>-1&&de.push(239,191,189);if(ee=null,G<128){if((k-=1)<0)break;de.push(G)}else if(G<2048){if((k-=2)<0)break;de.push(G>>6|192,G&63|128)}else if(G<65536){if((k-=3)<0)break;de.push(G>>12|224,G>>6&63|128,G&63|128)}else if(G<1114112){if((k-=4)<0)break;de.push(G>>18|240,G>>12&63|128,G>>6&63|128,G&63|128)}else throw new Error("Invalid code point")}return de}function se(H){const k=[];for(let G=0;G>8,ee=G%256,de.push(ee),de.push(O);return de}function Ue(H){return i.toByteArray(he(H))}function fe(H,k,G,O){let ee;for(ee=0;ee=k.length||ee>=H.length);++ee)k[ee+G]=H[ee];return ee}function ce(H,k){return H instanceof k||H!=null&&H.constructor!=null&&H.constructor.name!=null&&H.constructor.name===k.name}function Te(H){return H!==H}const ue=function(){const H="0123456789abcdef",k=new Array(256);for(let G=0;G<16;++G){const O=G*16;for(let ee=0;ee<16;++ee)k[O+ee]=H[G]+H[ee]}return k}();function Be(H){return typeof BigInt>"u"?Ve:H}function Ve(){throw new Error("BigInt not supported")}}(uw)),uw}/*! safe-buffer. MIT License. Feross Aboukhadijeh */var q9;function xA(){return q9||(q9=1,function(o,i){var s=jo(),f=s.Buffer;function l(B,I){for(var p in B)I[p]=B[p]}f.from&&f.alloc&&f.allocUnsafe&&f.allocUnsafeSlow?o.exports=s:(l(s,i),i.Buffer=r);function r(B,I,p){return f(B,I,p)}r.prototype=Object.create(f.prototype),l(f,r),r.from=function(B,I,p){if(typeof B=="number")throw new TypeError("Argument must not be a number");return f(B,I,p)},r.alloc=function(B,I,p){if(typeof B!="number")throw new TypeError("Argument must be a number");var Q=f(B);return I!==void 0?typeof p=="string"?Q.fill(I,p):Q.fill(I):Q.fill(0),Q},r.allocUnsafe=function(B){if(typeof B!="number")throw new TypeError("Argument must be a number");return f(B)},r.allocUnsafeSlow=function(B){if(typeof B!="number")throw new TypeError("Argument must be a number");return s.SlowBuffer(B)}}(YI,YI.exports)),YI.exports}var H9;function $g(){if(H9)return TI.exports;H9=1;var o=65536,i=4294967295;function s(){throw new Error(`Secure random number generation is not supported by this browser. -Use Chrome, Firefox or Internet Explorer 11`)}var f=xA().Buffer,l=globalThis.crypto||globalThis.msCrypto;l&&l.getRandomValues?TI.exports=r:TI.exports=s;function r(B,I){if(B>i)throw new RangeError("requested too many random bytes");var p=f.allocUnsafe(B);if(B>0)if(B>o)for(var Q=0;Q0?this.tail.next=D:this.head=D,this.tail=D,++this.length}},{key:"unshift",value:function(x){var D={data:x,next:this.head};this.length===0&&(this.tail=D),this.head=D,++this.length}},{key:"shift",value:function(){if(this.length!==0){var x=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,x}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(x){if(this.length===0)return"";for(var D=this.head,S=""+D.data;D=D.next;)S+=x+D.data;return S}},{key:"concat",value:function(x){if(this.length===0)return Q.alloc(0);for(var D=Q.allocUnsafe(x>>>0),S=this.head,K=0;S;)w(S.data,D,K),K+=S.data.length,S=S.next;return D}},{key:"consume",value:function(x,D){var S;return xN.length?N.length:x;if(L===N.length?K+=N:K+=N.slice(0,x),x-=L,x===0){L===N.length?(++S,D.next?this.head=D.next:this.head=this.tail=null):(this.head=D,D.data=N.slice(L));break}++S}return this.length-=S,K}},{key:"_getBuffer",value:function(x){var D=Q.allocUnsafe(x),S=this.head,K=1;for(S.data.copy(D),x-=S.data.length;S=S.next;){var N=S.data,L=x>N.length?N.length:x;if(N.copy(D,D.length-x,0,L),x-=L,x===0){L===N.length?(++K,S.next?this.head=S.next:this.head=this.tail=null):(this.head=S,S.data=N.slice(L));break}++K}return this.length-=K,D}},{key:v,value:function(x,D){return y(this,i(i({},D),{},{depth:0,customInspect:!1}))}}]),M}(),lw}var dw,P9;function gee(){if(P9)return dw;P9=1;function o(B,I){var p=this,Q=this._readableState&&this._readableState.destroyed,d=this._writableState&&this._writableState.destroyed;return Q||d?(I?I(B):B&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(l,this,B)):process.nextTick(l,this,B)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(B||null,function(y){!I&&y?p._writableState?p._writableState.errorEmitted?process.nextTick(s,p):(p._writableState.errorEmitted=!0,process.nextTick(i,p,y)):process.nextTick(i,p,y):I?(process.nextTick(s,p),I(y)):process.nextTick(s,p)}),this)}function i(B,I){l(B,I),s(B)}function s(B){B._writableState&&!B._writableState.emitClose||B._readableState&&!B._readableState.emitClose||B.emit("close")}function f(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function l(B,I){B.emit("error",I)}function r(B,I){var p=B._readableState,Q=B._writableState;p&&p.autoDestroy||Q&&Q.autoDestroy?B.destroy(I):B.emit("error",I)}return dw={destroy:o,undestroy:f,errorOrDestroy:r},dw}var Iw={},O9;function Xg(){if(O9)return Iw;O9=1;function o(I,p){I.prototype=Object.create(p.prototype),I.prototype.constructor=I,I.__proto__=p}var i={};function s(I,p,Q){Q||(Q=Error);function d(v,w,M){return typeof p=="string"?p:p(v,w,M)}var y=function(v){o(w,v);function w(M,m,x){return v.call(this,d(M,m,x))||this}return w}(Q);y.prototype.name=Q.name,y.prototype.code=I,i[I]=y}function f(I,p){if(Array.isArray(I)){var Q=I.length;return I=I.map(function(d){return String(d)}),Q>2?"one of ".concat(p," ").concat(I.slice(0,Q-1).join(", "),", or ")+I[Q-1]:Q===2?"one of ".concat(p," ").concat(I[0]," or ").concat(I[1]):"of ".concat(p," ").concat(I[0])}else return"of ".concat(p," ").concat(String(I))}function l(I,p,Q){return I.substr(0,p.length)===p}function r(I,p,Q){return(Q===void 0||Q>I.length)&&(Q=I.length),I.substring(Q-p.length,Q)===p}function B(I,p,Q){return typeof Q!="number"&&(Q=0),Q+p.length>I.length?!1:I.indexOf(p,Q)!==-1}return s("ERR_INVALID_OPT_VALUE",function(I,p){return'The value "'+p+'" is invalid for option "'+I+'"'},TypeError),s("ERR_INVALID_ARG_TYPE",function(I,p,Q){var d;typeof p=="string"&&l(p,"not ")?(d="must not be",p=p.replace(/^not /,"")):d="must be";var y;if(r(I," argument"))y="The ".concat(I," ").concat(d," ").concat(f(p,"type"));else{var v=B(I,".")?"property":"argument";y='The "'.concat(I,'" ').concat(v," ").concat(d," ").concat(f(p,"type"))}return y+=". Received type ".concat(typeof Q),y},TypeError),s("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),s("ERR_METHOD_NOT_IMPLEMENTED",function(I){return"The "+I+" method is not implemented"}),s("ERR_STREAM_PREMATURE_CLOSE","Premature close"),s("ERR_STREAM_DESTROYED",function(I){return"Cannot call "+I+" after a stream was destroyed"}),s("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),s("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),s("ERR_STREAM_WRITE_AFTER_END","write after end"),s("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),s("ERR_UNKNOWN_ENCODING",function(I){return"Unknown encoding: "+I},TypeError),s("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Iw.codes=i,Iw}var Bw,j9;function uee(){if(j9)return Bw;j9=1;var o=Xg().codes.ERR_INVALID_OPT_VALUE;function i(f,l,r){return f.highWaterMark!=null?f.highWaterMark:l?f[r]:null}function s(f,l,r,B){var I=i(l,B,r);if(I!=null){if(!(isFinite(I)&&Math.floor(I)===I)||I<0){var p=B?r:"highWaterMark";throw new o(p,I)}return Math.floor(I)}return f.objectMode?16:16*1024}return Bw={getHighWaterMark:s},Bw}var Cw,W9;function cee(){if(W9)return Cw;W9=1,Cw=o;function o(s,f){if(i("noDeprecation"))return s;var l=!1;function r(){if(!l){if(i("throwDeprecation"))throw new Error(f);i("traceDeprecation")?console.trace(f):console.warn(f),l=!0}return s.apply(this,arguments)}return r}function i(s){try{if(!globalThis.localStorage)return!1}catch{return!1}var f=globalThis.localStorage[s];return f==null?!1:String(f).toLowerCase()==="true"}return Cw}var Ew,V9;function lee(){if(V9)return Ew;V9=1,Ew=Z;function o(P){var F=this;this.next=null,this.entry=null,this.finish=function(){V(F,P)}}var i;Z.WritableState=j;var s={deprecate:cee()},f=hee(),l=jo().Buffer,r=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function B(P){return l.from(P)}function I(P){return l.isBuffer(P)||P instanceof r}var p=gee(),Q=uee(),d=Q.getHighWaterMark,y=Xg().codes,v=y.ERR_INVALID_ARG_TYPE,w=y.ERR_METHOD_NOT_IMPLEMENTED,M=y.ERR_MULTIPLE_CALLBACK,m=y.ERR_STREAM_CANNOT_PIPE,x=y.ERR_STREAM_DESTROYED,D=y.ERR_STREAM_NULL_VALUES,S=y.ERR_STREAM_WRITE_AFTER_END,K=y.ERR_UNKNOWN_ENCODING,N=p.errorOrDestroy;fA()(Z,f);function L(){}function j(P,F,Y){i=i||Eg(),P=P||{},typeof Y!="boolean"&&(Y=F instanceof i),this.objectMode=!!P.objectMode,Y&&(this.objectMode=this.objectMode||!!P.writableObjectMode),this.highWaterMark=d(this,P,"writableHighWaterMark",Y),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var W=P.decodeStrings===!1;this.decodeStrings=!W,this.defaultEncoding=P.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(te){h(F,te)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=P.emitClose!==!1,this.autoDestroy=!!P.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}j.prototype.getBuffer=function(){for(var F=this.bufferedRequest,Y=[];F;)Y.push(F),F=F.next;return Y},function(){try{Object.defineProperty(j.prototype,"buffer",{get:s.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var re;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(re=Function.prototype[Symbol.hasInstance],Object.defineProperty(Z,Symbol.hasInstance,{value:function(F){return re.call(this,F)?!0:this!==Z?!1:F&&F._writableState instanceof j}})):re=function(F){return F instanceof this};function Z(P){i=i||Eg();var F=this instanceof i;if(!F&&!re.call(Z,this))return new Z(P);this._writableState=new j(P,this,F),this.writable=!0,P&&(typeof P.write=="function"&&(this._write=P.write),typeof P.writev=="function"&&(this._writev=P.writev),typeof P.destroy=="function"&&(this._destroy=P.destroy),typeof P.final=="function"&&(this._final=P.final)),f.call(this)}Z.prototype.pipe=function(){N(this,new m)};function J(P,F){var Y=new S;N(P,Y),process.nextTick(F,Y)}function Ae(P,F,Y,W){var te;return Y===null?te=new D:typeof Y!="string"&&!F.objectMode&&(te=new v("chunk",["string","Buffer"],Y)),te?(N(P,te),process.nextTick(W,te),!1):!0}Z.prototype.write=function(P,F,Y){var W=this._writableState,te=!1,z=!W.objectMode&&I(P);return z&&!l.isBuffer(P)&&(P=B(P)),typeof F=="function"&&(Y=F,F=null),z?F="buffer":F||(F=W.defaultEncoding),typeof Y!="function"&&(Y=L),W.ending?J(this,Y):(z||Ae(this,W,P,Y))&&(W.pendingcb++,te=e(this,W,z,P,F,Y)),te},Z.prototype.cork=function(){this._writableState.corked++},Z.prototype.uncork=function(){var P=this._writableState;P.corked&&(P.corked--,!P.writing&&!P.corked&&!P.bufferProcessing&&P.bufferedRequest&&g(this,P))},Z.prototype.setDefaultEncoding=function(F){if(typeof F=="string"&&(F=F.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((F+"").toLowerCase())>-1))throw new K(F);return this._writableState.defaultEncoding=F,this},Object.defineProperty(Z.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function E(P,F,Y){return!P.objectMode&&P.decodeStrings!==!1&&typeof F=="string"&&(F=l.from(F,Y)),F}Object.defineProperty(Z.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function e(P,F,Y,W,te,z){if(!Y){var q=E(F,W,te);W!==q&&(Y=!0,te="buffer",W=q)}var $=F.objectMode?1:W.length;F.length+=$;var le=F.length>5===6?2:D>>4===14?3:D>>3===30?4:D>>6===2?-1:-2}function B(D,S,K){var N=S.length-1;if(N=0?(L>0&&(D.lastNeed=L-1),L):--N=0?(L>0&&(D.lastNeed=L-2),L):--N=0?(L>0&&(L===2?L=0:D.lastNeed=L-3),L):0))}function I(D,S,K){if((S[0]&192)!==128)return D.lastNeed=0,"�";if(D.lastNeed>1&&S.length>1){if((S[1]&192)!==128)return D.lastNeed=1,"�";if(D.lastNeed>2&&S.length>2&&(S[2]&192)!==128)return D.lastNeed=2,"�"}}function p(D){var S=this.lastTotal-this.lastNeed,K=I(this,D);if(K!==void 0)return K;if(this.lastNeed<=D.length)return D.copy(this.lastChar,S,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);D.copy(this.lastChar,S,0,D.length),this.lastNeed-=D.length}function Q(D,S){var K=B(this,D,S);if(!this.lastNeed)return D.toString("utf8",S);this.lastTotal=K;var N=D.length-(K-this.lastNeed);return D.copy(this.lastChar,0,N),D.toString("utf8",S,N)}function d(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+"�":S}function y(D,S){if((D.length-S)%2===0){var K=D.toString("utf16le",S);if(K){var N=K.charCodeAt(K.length-1);if(N>=55296&&N<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1],K.slice(0,-1)}return K}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=D[D.length-1],D.toString("utf16le",S,D.length-1)}function v(D){var S=D&&D.length?this.write(D):"";if(this.lastNeed){var K=this.lastTotal-this.lastNeed;return S+this.lastChar.toString("utf16le",0,K)}return S}function w(D,S){var K=(D.length-S)%3;return K===0?D.toString("base64",S):(this.lastNeed=3-K,this.lastTotal=3,K===1?this.lastChar[0]=D[D.length-1]:(this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1]),D.toString("base64",S,D.length-K))}function M(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+this.lastChar.toString("base64",0,3-this.lastNeed):S}function m(D){return D.toString(this.encoding)}function x(D){return D&&D.length?this.write(D):""}return Qw}var yw,X9;function bk(){if(X9)return yw;X9=1;var o=Xg().codes.ERR_STREAM_PREMATURE_CLOSE;function i(r){var B=!1;return function(){if(!B){B=!0;for(var I=arguments.length,p=new Array(I),Q=0;Q0)if(typeof q!="string"&&!he.objectMode&&Object.getPrototypeOf(q)!==f.prototype&&(q=r(q)),le)he.endEmitted?L(z,new D):E(z,he,q,!0);else if(he.ended)L(z,new m);else{if(he.destroyed)return!1;he.reading=!1,he.decoder&&!$?(q=he.decoder.write(q),he.objectMode||q.length!==0?E(z,he,q,!1):g(z,he)):E(z,he,q,!1)}else le||(he.reading=!1,g(z,he))}return!he.ended&&(he.length=A?z=A:(z--,z|=z>>>1,z|=z>>>2,z|=z>>>4,z|=z>>>8,z|=z>>>16,z++),z}function a(z,q){return z<=0||q.length===0&&q.ended?0:q.objectMode?1:z!==z?q.flowing&&q.length?q.buffer.head.data.length:q.length:(z>q.highWaterMark&&(q.highWaterMark=n(z)),z<=q.length?z:q.ended?q.length:(q.needReadable=!0,0))}J.prototype.read=function(z){p("read",z),z=parseInt(z,10);var q=this._readableState,$=z;if(z!==0&&(q.emittedReadable=!1),z===0&&q.needReadable&&((q.highWaterMark!==0?q.length>=q.highWaterMark:q.length>0)||q.ended))return p("read: emitReadable",q.length,q.ended),q.length===0&&q.ended?Y(this):c(this),null;if(z=a(z,q),z===0&&q.ended)return q.length===0&&Y(this),null;var le=q.needReadable;p("need readable",le),(q.length===0||q.length-z0?ae=F(z,q):ae=null,ae===null?(q.needReadable=q.length<=q.highWaterMark,z=0):(q.length-=z,q.awaitDrain=0),q.length===0&&(q.ended||(q.needReadable=!0),$!==z&&q.ended&&Y(this)),ae!==null&&this.emit("data",ae),ae};function h(z,q){if(p("onEofChunk"),!q.ended){if(q.decoder){var $=q.decoder.end();$&&$.length&&(q.buffer.push($),q.length+=q.objectMode?1:$.length)}q.ended=!0,q.sync?c(z):(q.needReadable=!1,q.emittedReadable||(q.emittedReadable=!0,C(z)))}}function c(z){var q=z._readableState;p("emitReadable",q.needReadable,q.emittedReadable),q.needReadable=!1,q.emittedReadable||(p("emitReadable",q.flowing),q.emittedReadable=!0,process.nextTick(C,z))}function C(z){var q=z._readableState;p("emitReadable_",q.destroyed,q.length,q.ended),!q.destroyed&&(q.length||q.ended)&&(z.emit("readable"),q.emittedReadable=!1),q.needReadable=!q.flowing&&!q.ended&&q.length<=q.highWaterMark,P(z)}function g(z,q){q.readingMore||(q.readingMore=!0,process.nextTick(t,z,q))}function t(z,q){for(;!q.reading&&!q.ended&&(q.length1&&te(le.pipes,z)!==-1)&&!Ue&&(p("false write response, pause",le.awaitDrain),le.awaitDrain++),$.pause())}function Te(H){p("onerror",H),Ve(),z.removeListener("error",Te),i(z,"error")===0&&L(z,H)}re(z,"error",Te);function ue(){z.removeListener("finish",Be),Ve()}z.once("close",ue);function Be(){p("onfinish"),z.removeListener("close",ue),Ve()}z.once("finish",Be);function Ve(){p("unpipe"),$.unpipe(z)}return z.emit("pipe",$),le.flowing||(p("pipe resume"),$.resume()),z};function u(z){return function(){var $=z._readableState;p("pipeOnDrain",$.awaitDrain),$.awaitDrain&&$.awaitDrain--,$.awaitDrain===0&&i(z,"data")&&($.flowing=!0,P(z))}}J.prototype.unpipe=function(z){var q=this._readableState,$={hasUnpiped:!1};if(q.pipesCount===0)return this;if(q.pipesCount===1)return z&&z!==q.pipes?this:(z||(z=q.pipes),q.pipes=null,q.pipesCount=0,q.flowing=!1,z&&z.emit("unpipe",this,$),this);if(!z){var le=q.pipes,ae=q.pipesCount;q.pipes=null,q.pipesCount=0,q.flowing=!1;for(var he=0;he0,le.flowing!==!1&&this.resume()):z==="readable"&&!le.endEmitted&&!le.readableListening&&(le.readableListening=le.needReadable=!0,le.flowing=!1,le.emittedReadable=!1,p("on readable",le.length,le.reading),le.length?c(this):le.reading||process.nextTick(R,this)),$},J.prototype.addListener=J.prototype.on,J.prototype.removeListener=function(z,q){var $=s.prototype.removeListener.call(this,z,q);return z==="readable"&&process.nextTick(b,this),$},J.prototype.removeAllListeners=function(z){var q=s.prototype.removeAllListeners.apply(this,arguments);return(z==="readable"||z===void 0)&&process.nextTick(b,this),q};function b(z){var q=z._readableState;q.readableListening=z.listenerCount("readable")>0,q.resumeScheduled&&!q.paused?q.flowing=!0:z.listenerCount("data")>0&&z.resume()}function R(z){p("readable nexttick read 0"),z.read(0)}J.prototype.resume=function(){var z=this._readableState;return z.flowing||(p("resume"),z.flowing=!z.readableListening,T(this,z)),z.paused=!1,this};function T(z,q){q.resumeScheduled||(q.resumeScheduled=!0,process.nextTick(V,z,q))}function V(z,q){p("resume",q.reading),q.reading||z.read(0),q.resumeScheduled=!1,z.emit("resume"),P(z),q.flowing&&!q.reading&&z.read(0)}J.prototype.pause=function(){return p("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(p("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function P(z){var q=z._readableState;for(p("flow",q.flowing);q.flowing&&z.read()!==null;);}J.prototype.wrap=function(z){var q=this,$=this._readableState,le=!1;z.on("end",function(){if(p("wrapped end"),$.decoder&&!$.ended){var xe=$.decoder.end();xe&&xe.length&&q.push(xe)}q.push(null)}),z.on("data",function(xe){if(p("wrapped data"),$.decoder&&(xe=$.decoder.write(xe)),!($.objectMode&&xe==null)&&!(!$.objectMode&&(!xe||!xe.length))){var se=q.push(xe);se||(le=!0,z.pause())}});for(var ae in z)this[ae]===void 0&&typeof z[ae]=="function"&&(this[ae]=function(se){return function(){return z[se].apply(z,arguments)}}(ae));for(var he=0;he=q.length?(q.decoder?$=q.buffer.join(""):q.buffer.length===1?$=q.buffer.first():$=q.buffer.concat(q.length),q.buffer.clear()):$=q.buffer.consume(z,q.decoder),$}function Y(z){var q=z._readableState;p("endReadable",q.endEmitted),q.endEmitted||(q.ended=!0,process.nextTick(W,q,z))}function W(z,q){if(p("endReadableNT",z.endEmitted,z.length),!z.endEmitted&&z.length===0&&(z.endEmitted=!0,q.readable=!1,q.emit("end"),z.autoDestroy)){var $=q._writableState;(!$||$.autoDestroy&&$.finished)&&q.destroy()}}typeof Symbol=="function"&&(J.from=function(z,q){return N===void 0&&(N=lue()),N(J,z,q)});function te(z,q){for(var $=0,le=z.length;$0;return I(S,N,L,function(j){x||(x=j),j&&D.forEach(p),!N&&(D.forEach(p),m(x))})});return w.reduce(Q)}return Dw=y,Dw}var Sw,oG;function Bee(){if(oG)return Sw;oG=1,Sw=s;var o=zg().EventEmitter,i=fA();i(s,o),s.Readable=dee(),s.Writable=lee(),s.Duplex=Eg(),s.Transform=Iee(),s.PassThrough=due(),s.finished=bk(),s.pipeline=Iue(),s.Stream=s;function s(){o.call(this)}return s.prototype.pipe=function(f,l){var r=this;function B(w){f.writable&&f.write(w)===!1&&r.pause&&r.pause()}r.on("data",B);function I(){r.readable&&r.resume&&r.resume()}f.on("drain",I),!f._isStdio&&(!l||l.end!==!1)&&(r.on("end",Q),r.on("close",d));var p=!1;function Q(){p||(p=!0,f.end())}function d(){p||(p=!0,typeof f.destroy=="function"&&f.destroy())}function y(w){if(v(),o.listenerCount(this,"error")===0)throw w}r.on("error",y),f.on("error",y);function v(){r.removeListener("data",B),f.removeListener("drain",I),r.removeListener("end",Q),r.removeListener("close",d),r.removeListener("error",y),f.removeListener("error",y),r.removeListener("end",v),r.removeListener("close",v),f.removeListener("close",v)}return r.on("end",v),r.on("close",v),f.on("close",v),f.emit("pipe",r),f},Sw}var xw,aG;function Cee(){if(aG)return xw;aG=1;var o=xA().Buffer,i=Bee().Transform,s=fA();function f(r,B){if(!o.isBuffer(r)&&typeof r!="string")throw new TypeError(B+" must be a string or a buffer")}function l(r){i.call(this),this._block=o.allocUnsafe(r),this._blockSize=r,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}return s(l,i),l.prototype._transform=function(r,B,I){var p=null;try{this.update(r,B)}catch(Q){p=Q}I(p)},l.prototype._flush=function(r){var B=null;try{this.push(this.digest())}catch(I){B=I}r(B)},l.prototype.update=function(r,B){if(f(r,"Data"),this._finalized)throw new Error("Digest already called");o.isBuffer(r)||(r=o.from(r,B));for(var I=this._block,p=0;this._blockOffset+r.length-p>=this._blockSize;){for(var Q=this._blockOffset;Q0;++d)this._length[d]+=y,y=this._length[d]/4294967296|0,y>0&&(this._length[d]-=4294967296*y);return this},l.prototype._update=function(){throw new Error("_update is not implemented")},l.prototype.digest=function(r){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var B=this._digest();r!==void 0&&(B=B.toString(r)),this._block.fill(0),this._blockOffset=0;for(var I=0;I<4;++I)this._length[I]=0;return B},l.prototype._digest=function(){throw new Error("_digest is not implemented")},xw=l,xw}var Rw,sG;function Dk(){if(sG)return Rw;sG=1;var o=fA(),i=Cee(),s=xA().Buffer,f=new Array(16);function l(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}o(l,i),l.prototype._update=function(){for(var d=f,y=0;y<16;++y)d[y]=this._block.readInt32LE(y*4);var v=this._a,w=this._b,M=this._c,m=this._d;v=B(v,w,M,m,d[0],3614090360,7),m=B(m,v,w,M,d[1],3905402710,12),M=B(M,m,v,w,d[2],606105819,17),w=B(w,M,m,v,d[3],3250441966,22),v=B(v,w,M,m,d[4],4118548399,7),m=B(m,v,w,M,d[5],1200080426,12),M=B(M,m,v,w,d[6],2821735955,17),w=B(w,M,m,v,d[7],4249261313,22),v=B(v,w,M,m,d[8],1770035416,7),m=B(m,v,w,M,d[9],2336552879,12),M=B(M,m,v,w,d[10],4294925233,17),w=B(w,M,m,v,d[11],2304563134,22),v=B(v,w,M,m,d[12],1804603682,7),m=B(m,v,w,M,d[13],4254626195,12),M=B(M,m,v,w,d[14],2792965006,17),w=B(w,M,m,v,d[15],1236535329,22),v=I(v,w,M,m,d[1],4129170786,5),m=I(m,v,w,M,d[6],3225465664,9),M=I(M,m,v,w,d[11],643717713,14),w=I(w,M,m,v,d[0],3921069994,20),v=I(v,w,M,m,d[5],3593408605,5),m=I(m,v,w,M,d[10],38016083,9),M=I(M,m,v,w,d[15],3634488961,14),w=I(w,M,m,v,d[4],3889429448,20),v=I(v,w,M,m,d[9],568446438,5),m=I(m,v,w,M,d[14],3275163606,9),M=I(M,m,v,w,d[3],4107603335,14),w=I(w,M,m,v,d[8],1163531501,20),v=I(v,w,M,m,d[13],2850285829,5),m=I(m,v,w,M,d[2],4243563512,9),M=I(M,m,v,w,d[7],1735328473,14),w=I(w,M,m,v,d[12],2368359562,20),v=p(v,w,M,m,d[5],4294588738,4),m=p(m,v,w,M,d[8],2272392833,11),M=p(M,m,v,w,d[11],1839030562,16),w=p(w,M,m,v,d[14],4259657740,23),v=p(v,w,M,m,d[1],2763975236,4),m=p(m,v,w,M,d[4],1272893353,11),M=p(M,m,v,w,d[7],4139469664,16),w=p(w,M,m,v,d[10],3200236656,23),v=p(v,w,M,m,d[13],681279174,4),m=p(m,v,w,M,d[0],3936430074,11),M=p(M,m,v,w,d[3],3572445317,16),w=p(w,M,m,v,d[6],76029189,23),v=p(v,w,M,m,d[9],3654602809,4),m=p(m,v,w,M,d[12],3873151461,11),M=p(M,m,v,w,d[15],530742520,16),w=p(w,M,m,v,d[2],3299628645,23),v=Q(v,w,M,m,d[0],4096336452,6),m=Q(m,v,w,M,d[7],1126891415,10),M=Q(M,m,v,w,d[14],2878612391,15),w=Q(w,M,m,v,d[5],4237533241,21),v=Q(v,w,M,m,d[12],1700485571,6),m=Q(m,v,w,M,d[3],2399980690,10),M=Q(M,m,v,w,d[10],4293915773,15),w=Q(w,M,m,v,d[1],2240044497,21),v=Q(v,w,M,m,d[8],1873313359,6),m=Q(m,v,w,M,d[15],4264355552,10),M=Q(M,m,v,w,d[6],2734768916,15),w=Q(w,M,m,v,d[13],1309151649,21),v=Q(v,w,M,m,d[4],4149444226,6),m=Q(m,v,w,M,d[11],3174756917,10),M=Q(M,m,v,w,d[2],718787259,15),w=Q(w,M,m,v,d[9],3951481745,21),this._a=this._a+v|0,this._b=this._b+w|0,this._c=this._c+M|0,this._d=this._d+m|0},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var d=s.allocUnsafe(16);return d.writeInt32LE(this._a,0),d.writeInt32LE(this._b,4),d.writeInt32LE(this._c,8),d.writeInt32LE(this._d,12),d};function r(d,y){return d<>>32-y}function B(d,y,v,w,M,m,x){return r(d+(y&v|~y&w)+M+m|0,x)+y|0}function I(d,y,v,w,M,m,x){return r(d+(y&w|v&~w)+M+m|0,x)+y|0}function p(d,y,v,w,M,m,x){return r(d+(y^v^w)+M+m|0,x)+y|0}function Q(d,y,v,w,M,m,x){return r(d+(v^(y|~w))+M+m|0,x)+y|0}return Rw=l,Rw}var kw,fG;function Sk(){if(fG)return kw;fG=1;var o=jo().Buffer,i=fA(),s=Cee(),f=new Array(16),l=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],r=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],B=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],I=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],p=[0,1518500249,1859775393,2400959708,2840853838],Q=[1352829926,1548603684,1836072691,2053994217,0];function d(){s.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}i(d,s),d.prototype._update=function(){for(var D=f,S=0;S<16;++S)D[S]=this._block.readInt32LE(S*4);for(var K=this._a|0,N=this._b|0,L=this._c|0,j=this._d|0,re=this._e|0,Z=this._a|0,J=this._b|0,Ae=this._c|0,E=this._d|0,e=this._e|0,A=0;A<80;A+=1){var n,a;A<16?(n=v(K,N,L,j,re,D[l[A]],p[0],B[A]),a=x(Z,J,Ae,E,e,D[r[A]],Q[0],I[A])):A<32?(n=w(K,N,L,j,re,D[l[A]],p[1],B[A]),a=m(Z,J,Ae,E,e,D[r[A]],Q[1],I[A])):A<48?(n=M(K,N,L,j,re,D[l[A]],p[2],B[A]),a=M(Z,J,Ae,E,e,D[r[A]],Q[2],I[A])):A<64?(n=m(K,N,L,j,re,D[l[A]],p[3],B[A]),a=w(Z,J,Ae,E,e,D[r[A]],Q[3],I[A])):(n=x(K,N,L,j,re,D[l[A]],p[4],B[A]),a=v(Z,J,Ae,E,e,D[r[A]],Q[4],I[A])),K=re,re=j,j=y(L,10),L=N,N=n,Z=e,e=E,E=y(Ae,10),Ae=J,J=a}var h=this._b+L+E|0;this._b=this._c+j+e|0,this._c=this._d+re+Z|0,this._d=this._e+K+J|0,this._e=this._a+N+Ae|0,this._a=h},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var D=o.alloc?o.alloc(20):new o(20);return D.writeInt32LE(this._a,0),D.writeInt32LE(this._b,4),D.writeInt32LE(this._c,8),D.writeInt32LE(this._d,12),D.writeInt32LE(this._e,16),D};function y(D,S){return D<>>32-S}function v(D,S,K,N,L,j,re,Z){return y(D+(S^K^N)+j+re|0,Z)+L|0}function w(D,S,K,N,L,j,re,Z){return y(D+(S&K|~S&N)+j+re|0,Z)+L|0}function M(D,S,K,N,L,j,re,Z){return y(D+((S|~K)^N)+j+re|0,Z)+L|0}function m(D,S,K,N,L,j,re,Z){return y(D+(S&N|K&~N)+j+re|0,Z)+L|0}function x(D,S,K,N,L,j,re,Z){return y(D+(S^(K|~N))+j+re|0,Z)+L|0}return kw=d,kw}var Nw={exports:{}},_w,hG;function eu(){if(hG)return _w;hG=1;var o=xA().Buffer;function i(s,f){this._block=o.alloc(s),this._finalSize=f,this._blockSize=s,this._len=0}return i.prototype.update=function(s,f){typeof s=="string"&&(f=f||"utf8",s=o.from(s,f));for(var l=this._block,r=this._blockSize,B=s.length,I=this._len,p=0;p=this._finalSize&&(this._update(this._block),this._block.fill(0));var l=this._len*8;if(l<=4294967295)this._block.writeUInt32BE(l,this._blockSize-4);else{var r=(l&4294967295)>>>0,B=(l-r)/4294967296;this._block.writeUInt32BE(B,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var I=this._hash();return s?I.toString(s):I},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},_w=i,_w}var Kw,gG;function Bue(){if(gG)return Kw;gG=1;var o=fA(),i=eu(),s=xA().Buffer,f=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function B(Q){return Q<<5|Q>>>27}function I(Q){return Q<<30|Q>>>2}function p(Q,d,y,v){return Q===0?d&y|~d&v:Q===2?d&y|d&v|y&v:d^y^v}return r.prototype._update=function(Q){for(var d=this._w,y=this._a|0,v=this._b|0,w=this._c|0,M=this._d|0,m=this._e|0,x=0;x<16;++x)d[x]=Q.readInt32BE(x*4);for(;x<80;++x)d[x]=d[x-3]^d[x-8]^d[x-14]^d[x-16];for(var D=0;D<80;++D){var S=~~(D/20),K=B(y)+p(S,v,w,M)+m+d[D]+f[S]|0;m=M,M=w,w=I(v),v=y,y=K}this._a=y+this._a|0,this._b=v+this._b|0,this._c=w+this._c|0,this._d=M+this._d|0,this._e=m+this._e|0},r.prototype._hash=function(){var Q=s.allocUnsafe(20);return Q.writeInt32BE(this._a|0,0),Q.writeInt32BE(this._b|0,4),Q.writeInt32BE(this._c|0,8),Q.writeInt32BE(this._d|0,12),Q.writeInt32BE(this._e|0,16),Q},Kw=r,Kw}var Fw,uG;function Cue(){if(uG)return Fw;uG=1;var o=fA(),i=eu(),s=xA().Buffer,f=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function B(d){return d<<1|d>>>31}function I(d){return d<<5|d>>>27}function p(d){return d<<30|d>>>2}function Q(d,y,v,w){return d===0?y&v|~y&w:d===2?y&v|y&w|v&w:y^v^w}return r.prototype._update=function(d){for(var y=this._w,v=this._a|0,w=this._b|0,M=this._c|0,m=this._d|0,x=this._e|0,D=0;D<16;++D)y[D]=d.readInt32BE(D*4);for(;D<80;++D)y[D]=B(y[D-3]^y[D-8]^y[D-14]^y[D-16]);for(var S=0;S<80;++S){var K=~~(S/20),N=I(v)+Q(K,w,M,m)+x+y[S]+f[K]|0;x=m,m=M,M=p(w),w=v,v=N}this._a=v+this._a|0,this._b=w+this._b|0,this._c=M+this._c|0,this._d=m+this._d|0,this._e=x+this._e|0},r.prototype._hash=function(){var d=s.allocUnsafe(20);return d.writeInt32BE(this._a|0,0),d.writeInt32BE(this._b|0,4),d.writeInt32BE(this._c|0,8),d.writeInt32BE(this._d|0,12),d.writeInt32BE(this._e|0,16),d},Fw=r,Fw}var Gw,cG;function Eee(){if(cG)return Gw;cG=1;var o=fA(),i=eu(),s=xA().Buffer,f=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],l=new Array(64);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function B(v,w,M){return M^v&(w^M)}function I(v,w,M){return v&w|M&(v|w)}function p(v){return(v>>>2|v<<30)^(v>>>13|v<<19)^(v>>>22|v<<10)}function Q(v){return(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7)}function d(v){return(v>>>7|v<<25)^(v>>>18|v<<14)^v>>>3}function y(v){return(v>>>17|v<<15)^(v>>>19|v<<13)^v>>>10}return r.prototype._update=function(v){for(var w=this._w,M=this._a|0,m=this._b|0,x=this._c|0,D=this._d|0,S=this._e|0,K=this._f|0,N=this._g|0,L=this._h|0,j=0;j<16;++j)w[j]=v.readInt32BE(j*4);for(;j<64;++j)w[j]=y(w[j-2])+w[j-7]+d(w[j-15])+w[j-16]|0;for(var re=0;re<64;++re){var Z=L+Q(S)+B(S,K,N)+f[re]+w[re]|0,J=p(M)+I(M,m,x)|0;L=N,N=K,K=S,S=D+Z|0,D=x,x=m,m=M,M=Z+J|0}this._a=M+this._a|0,this._b=m+this._b|0,this._c=x+this._c|0,this._d=D+this._d|0,this._e=S+this._e|0,this._f=K+this._f|0,this._g=N+this._g|0,this._h=L+this._h|0},r.prototype._hash=function(){var v=s.allocUnsafe(32);return v.writeInt32BE(this._a,0),v.writeInt32BE(this._b,4),v.writeInt32BE(this._c,8),v.writeInt32BE(this._d,12),v.writeInt32BE(this._e,16),v.writeInt32BE(this._f,20),v.writeInt32BE(this._g,24),v.writeInt32BE(this._h,28),v},Gw=r,Gw}var Lw,lG;function Eue(){if(lG)return Lw;lG=1;var o=fA(),i=Eee(),s=eu(),f=xA().Buffer,l=new Array(64);function r(){this.init(),this._w=l,s.call(this,64,56)}return o(r,i),r.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},r.prototype._hash=function(){var B=f.allocUnsafe(28);return B.writeInt32BE(this._a,0),B.writeInt32BE(this._b,4),B.writeInt32BE(this._c,8),B.writeInt32BE(this._d,12),B.writeInt32BE(this._e,16),B.writeInt32BE(this._f,20),B.writeInt32BE(this._g,24),B},Lw=r,Lw}var Uw,dG;function pee(){if(dG)return Uw;dG=1;var o=fA(),i=eu(),s=xA().Buffer,f=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],l=new Array(160);function r(){this.init(),this._w=l,i.call(this,128,112)}o(r,i),r.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function B(m,x,D){return D^m&(x^D)}function I(m,x,D){return m&x|D&(m|x)}function p(m,x){return(m>>>28|x<<4)^(x>>>2|m<<30)^(x>>>7|m<<25)}function Q(m,x){return(m>>>14|x<<18)^(m>>>18|x<<14)^(x>>>9|m<<23)}function d(m,x){return(m>>>1|x<<31)^(m>>>8|x<<24)^m>>>7}function y(m,x){return(m>>>1|x<<31)^(m>>>8|x<<24)^(m>>>7|x<<25)}function v(m,x){return(m>>>19|x<<13)^(x>>>29|m<<3)^m>>>6}function w(m,x){return(m>>>19|x<<13)^(x>>>29|m<<3)^(m>>>6|x<<26)}function M(m,x){return m>>>0>>0?1:0}return r.prototype._update=function(m){for(var x=this._w,D=this._ah|0,S=this._bh|0,K=this._ch|0,N=this._dh|0,L=this._eh|0,j=this._fh|0,re=this._gh|0,Z=this._hh|0,J=this._al|0,Ae=this._bl|0,E=this._cl|0,e=this._dl|0,A=this._el|0,n=this._fl|0,a=this._gl|0,h=this._hl|0,c=0;c<32;c+=2)x[c]=m.readInt32BE(c*4),x[c+1]=m.readInt32BE(c*4+4);for(;c<160;c+=2){var C=x[c-30],g=x[c-15*2+1],t=d(C,g),u=y(g,C);C=x[c-2*2],g=x[c-2*2+1];var b=v(C,g),R=w(g,C),T=x[c-7*2],V=x[c-7*2+1],P=x[c-16*2],F=x[c-16*2+1],Y=u+V|0,W=t+T+M(Y,u)|0;Y=Y+R|0,W=W+b+M(Y,R)|0,Y=Y+F|0,W=W+P+M(Y,F)|0,x[c]=W,x[c+1]=Y}for(var te=0;te<160;te+=2){W=x[te],Y=x[te+1];var z=I(D,S,K),q=I(J,Ae,E),$=p(D,J),le=p(J,D),ae=Q(L,A),he=Q(A,L),xe=f[te],se=f[te+1],oe=B(L,j,re),Ue=B(A,n,a),fe=h+he|0,ce=Z+ae+M(fe,h)|0;fe=fe+Ue|0,ce=ce+oe+M(fe,Ue)|0,fe=fe+se|0,ce=ce+xe+M(fe,se)|0,fe=fe+Y|0,ce=ce+W+M(fe,Y)|0;var Te=le+q|0,ue=$+z+M(Te,le)|0;Z=re,h=a,re=j,a=n,j=L,n=A,A=e+fe|0,L=N+ce+M(A,e)|0,N=K,e=E,K=S,E=Ae,S=D,Ae=J,J=fe+Te|0,D=ce+ue+M(J,fe)|0}this._al=this._al+J|0,this._bl=this._bl+Ae|0,this._cl=this._cl+E|0,this._dl=this._dl+e|0,this._el=this._el+A|0,this._fl=this._fl+n|0,this._gl=this._gl+a|0,this._hl=this._hl+h|0,this._ah=this._ah+D+M(this._al,J)|0,this._bh=this._bh+S+M(this._bl,Ae)|0,this._ch=this._ch+K+M(this._cl,E)|0,this._dh=this._dh+N+M(this._dl,e)|0,this._eh=this._eh+L+M(this._el,A)|0,this._fh=this._fh+j+M(this._fl,n)|0,this._gh=this._gh+re+M(this._gl,a)|0,this._hh=this._hh+Z+M(this._hl,h)|0},r.prototype._hash=function(){var m=s.allocUnsafe(64);function x(D,S,K){m.writeInt32BE(D,K),m.writeInt32BE(S,K+4)}return x(this._ah,this._al,0),x(this._bh,this._bl,8),x(this._ch,this._cl,16),x(this._dh,this._dl,24),x(this._eh,this._el,32),x(this._fh,this._fl,40),x(this._gh,this._gl,48),x(this._hh,this._hl,56),m},Uw=r,Uw}var qw,IG;function pue(){if(IG)return qw;IG=1;var o=fA(),i=pee(),s=eu(),f=xA().Buffer,l=new Array(160);function r(){this.init(),this._w=l,s.call(this,128,112)}return o(r,i),r.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},r.prototype._hash=function(){var B=f.allocUnsafe(48);function I(p,Q,d){B.writeInt32BE(p,d),B.writeInt32BE(Q,d+4)}return I(this._ah,this._al,0),I(this._bh,this._bl,8),I(this._ch,this._cl,16),I(this._dh,this._dl,24),I(this._eh,this._el,32),I(this._fh,this._fl,40),B},qw=r,qw}var BG;function xk(){if(BG)return Nw.exports;BG=1;var o=Nw.exports=function(s){s=s.toLowerCase();var f=o[s];if(!f)throw new Error(s+" is not supported (we accept pull requests)");return new f};return o.sha=Bue(),o.sha1=Cue(),o.sha224=Eue(),o.sha256=Eee(),o.sha384=pue(),o.sha512=pee(),Nw.exports}var Hw,CG;function Mf(){if(CG)return Hw;CG=1;var o=xA().Buffer,i=Bee().Transform,s=$c().StringDecoder,f=fA();function l(r){i.call(this),this.hashMode=typeof r=="string",this.hashMode?this[r]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}return f(l,i),l.prototype.update=function(r,B,I){typeof r=="string"&&(r=o.from(r,B));var p=this._update(r);return this.hashMode?this:(I&&(p=this._toString(p,I)),p)},l.prototype.setAutoPadding=function(){},l.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},l.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},l.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},l.prototype._transform=function(r,B,I){var p;try{this.hashMode?this._update(r):this.push(this._update(r))}catch(Q){p=Q}finally{I(p)}},l.prototype._flush=function(r){var B;try{this.push(this.__final())}catch(I){B=I}r(B)},l.prototype._finalOrDigest=function(r){var B=this.__final()||o.alloc(0);return r&&(B=this._toString(B,r,!0)),B},l.prototype._toString=function(r,B,I){if(this._decoder||(this._decoder=new s(B),this._encoding=B),this._encoding!==B)throw new Error("can't switch encodings");var p=this._decoder.write(r);return I&&(p+=this._decoder.end()),p},Hw=l,Hw}var Tw,EG;function Tl(){if(EG)return Tw;EG=1;var o=fA(),i=Dk(),s=Sk(),f=xk(),l=Mf();function r(B){l.call(this,"digest"),this._hash=B}return o(r,l),r.prototype._update=function(B){this._hash.update(B)},r.prototype._final=function(){return this._hash.digest()},Tw=function(I){return I=I.toLowerCase(),I==="md5"?new i:I==="rmd160"||I==="ripemd160"?new s:new r(f(I))},Tw}var Yw,pG;function Que(){if(pG)return Yw;pG=1;var o=fA(),i=xA().Buffer,s=Mf(),f=i.alloc(128),l=64;function r(B,I){s.call(this,"digest"),typeof I=="string"&&(I=i.from(I)),this._alg=B,this._key=I,I.length>l?I=B(I):I.lengthy){var v=Q==="rmd160"?new r:B(Q);d=v.update(d).digest()}else d.lengtho||s!==s)throw new TypeError("Bad key length")},jw}var Ww,mG;function mee(){if(mG)return Ww;mG=1;var o;if(globalThis.process&&globalThis.process.browser)o="utf-8";else if(globalThis.process&&globalThis.process.version){var i=parseInt(process.version.split(".")[0].slice(1),10);o=i>=6?"utf-8":"binary"}else o="utf-8";return Ww=o,Ww}var Vw,MG;function Mee(){if(MG)return Vw;MG=1;var o=xA().Buffer;return Vw=function(i,s,f){if(o.isBuffer(i))return i;if(typeof i=="string")return o.from(i,s);if(ArrayBuffer.isView(i))return o.from(i.buffer);throw new TypeError(f+" must be a string, a Buffer, a typed array or a DataView")},Vw}var Zw,bG;function bee(){if(bG)return Zw;bG=1;var o=Qee(),i=Sk(),s=xk(),f=xA().Buffer,l=wee(),r=mee(),B=Mee(),I=f.alloc(128),p={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function Q(v,w,M){var m=d(v),x=v==="sha512"||v==="sha384"?128:64;w.length>x?w=m(w):w.length>>0},hn.writeUInt32BE=function(l,r,B){l[0+B]=r>>>24,l[1+B]=r>>>16&255,l[2+B]=r>>>8&255,l[3+B]=r&255},hn.ip=function(l,r,B,I){for(var p=0,Q=0,d=6;d>=0;d-=2){for(var y=0;y<=24;y+=8)p<<=1,p|=r>>>y+d&1;for(var y=0;y<=24;y+=8)p<<=1,p|=l>>>y+d&1}for(var d=6;d>=0;d-=2){for(var y=1;y<=25;y+=8)Q<<=1,Q|=r>>>y+d&1;for(var y=1;y<=25;y+=8)Q<<=1,Q|=l>>>y+d&1}B[I+0]=p>>>0,B[I+1]=Q>>>0},hn.rip=function(l,r,B,I){for(var p=0,Q=0,d=0;d<4;d++)for(var y=24;y>=0;y-=8)p<<=1,p|=r>>>y+d&1,p<<=1,p|=l>>>y+d&1;for(var d=4;d<8;d++)for(var y=24;y>=0;y-=8)Q<<=1,Q|=r>>>y+d&1,Q<<=1,Q|=l>>>y+d&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},hn.pc1=function(l,r,B,I){for(var p=0,Q=0,d=7;d>=5;d--){for(var y=0;y<=24;y+=8)p<<=1,p|=r>>y+d&1;for(var y=0;y<=24;y+=8)p<<=1,p|=l>>y+d&1}for(var y=0;y<=24;y+=8)p<<=1,p|=r>>y+d&1;for(var d=1;d<=3;d++){for(var y=0;y<=24;y+=8)Q<<=1,Q|=r>>y+d&1;for(var y=0;y<=24;y+=8)Q<<=1,Q|=l>>y+d&1}for(var y=0;y<=24;y+=8)Q<<=1,Q|=l>>y+d&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},hn.r28shl=function(l,r){return l<>>28-r};var o=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];hn.pc2=function(l,r,B,I){for(var p=0,Q=0,d=o.length>>>1,y=0;y>>o[y]&1;for(var y=d;y>>o[y]&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},hn.expand=function(l,r,B){var I=0,p=0;I=(l&1)<<5|l>>>27;for(var Q=23;Q>=15;Q-=4)I<<=6,I|=l>>>Q&63;for(var Q=11;Q>=3;Q-=4)p|=l>>>Q&63,p<<=6;p|=(l&31)<<1|l>>>31,r[B+0]=I>>>0,r[B+1]=p>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];hn.substitute=function(l,r){for(var B=0,I=0;I<4;I++){var p=l>>>18-I*6&63,Q=i[I*64+p];B<<=4,B|=Q}for(var I=0;I<4;I++){var p=r>>>18-I*6&63,Q=i[4*64+I*64+p];B<<=4,B|=Q}return B>>>0};var s=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];return hn.permute=function(l){for(var r=0,B=0;B>>s[B]&1;return r>>>0},hn.padSplit=function(l,r,B){for(var I=l.toString(2);I.length0;B--)l+=this._buffer(f,l),r+=this._flushBuffer(I,r);return l+=this._buffer(f,l),I},i.prototype.final=function(f){var l;f&&(l=this.update(f));var r;return this.type==="encrypt"?r=this._finalEncrypt():r=this._finalDecrypt(),l?l.concat(r):r},i.prototype._pad=function(f,l){if(l===0)return!1;for(;l>>1];d=s.r28shl(d,w),y=s.r28shl(y,w),s.pc2(d,y,p.keys,v)}},r.prototype._update=function(p,Q,d,y){var v=this._desState,w=s.readUInt32BE(p,Q),M=s.readUInt32BE(p,Q+4);s.ip(w,M,v.tmp,0),w=v.tmp[0],M=v.tmp[1],this.type==="encrypt"?this._encrypt(v,w,M,v.tmp,0):this._decrypt(v,w,M,v.tmp,0),w=v.tmp[0],M=v.tmp[1],s.writeUInt32BE(d,w,y),s.writeUInt32BE(d,M,y+4)},r.prototype._pad=function(p,Q){if(this.padding===!1)return!1;for(var d=p.length-Q,y=Q;y>>0,w=N}s.rip(M,w,y,v)},r.prototype._decrypt=function(p,Q,d,y,v){for(var w=d,M=Q,m=p.keys.length-2;m>=0;m-=2){var x=p.keys[m],D=p.keys[m+1];s.expand(w,p.tmp,0),x^=p.tmp[0],D^=p.tmp[1];var S=s.substitute(x,D),K=s.permute(S),N=w;w=(M^K)>>>0,M=N}s.rip(w,M,y,v)},Xw}var e1={},NG;function Kue(){if(NG)return e1;NG=1;var o=co(),i=fA(),s={};function f(r){o.equal(r.length,8,"Invalid IV length"),this.iv=new Array(8);for(var B=0;B>I%8,f._prev=s(f._prev,r?d:y);return Q}function s(f,l){var r=f.length,B=-1,I=o.allocUnsafe(f.length);for(f=o.concat([f,o.from([l])]);++B>7;return I}return o1.encrypt=function(f,l,r){for(var B=l.length,I=o.allocUnsafe(B),p=-1;++p>>24]^w[D>>>16&255]^M[S>>>8&255]^m[K&255]^p[Z++],L=v[D>>>24]^w[S>>>16&255]^M[K>>>8&255]^m[x&255]^p[Z++],j=v[S>>>24]^w[K>>>16&255]^M[x>>>8&255]^m[D&255]^p[Z++],re=v[K>>>24]^w[x>>>16&255]^M[D>>>8&255]^m[S&255]^p[Z++],x=N,D=L,S=j,K=re;return N=(d[x>>>24]<<24|d[D>>>16&255]<<16|d[S>>>8&255]<<8|d[K&255])^p[Z++],L=(d[D>>>24]<<24|d[S>>>16&255]<<16|d[K>>>8&255]<<8|d[x&255])^p[Z++],j=(d[S>>>24]<<24|d[K>>>16&255]<<16|d[x>>>8&255]<<8|d[D&255])^p[Z++],re=(d[K>>>24]<<24|d[x>>>16&255]<<16|d[D>>>8&255]<<8|d[S&255])^p[Z++],N=N>>>0,L=L>>>0,j=j>>>0,re=re>>>0,[N,L,j,re]}var l=[0,1,2,4,8,16,32,64,128,27,54],r=function(){for(var I=new Array(256),p=0;p<256;p++)p<128?I[p]=p<<1:I[p]=p<<1^283;for(var Q=[],d=[],y=[[],[],[],[]],v=[[],[],[],[]],w=0,M=0,m=0;m<256;++m){var x=M^M<<1^M<<2^M<<3^M<<4;x=x>>>8^x&255^99,Q[w]=x,d[x]=w;var D=I[w],S=I[D],K=I[S],N=I[x]*257^x*16843008;y[0][w]=N<<24|N>>>8,y[1][w]=N<<16|N>>>16,y[2][w]=N<<8|N>>>24,y[3][w]=N,N=K*16843009^S*65537^D*257^w*16843008,v[0][x]=N<<24|N>>>8,v[1][x]=N<<16|N>>>16,v[2][x]=N<<8|N>>>24,v[3][x]=N,w===0?w=M=1:(w=D^I[I[I[K^D]]],M^=I[I[M]])}return{SBOX:Q,INV_SBOX:d,SUB_MIX:y,INV_SUB_MIX:v}}();function B(I){this._key=i(I),this._reset()}return B.blockSize=4*4,B.keySize=256/8,B.prototype.blockSize=B.blockSize,B.prototype.keySize=B.keySize,B.prototype._reset=function(){for(var I=this._key,p=I.length,Q=p+6,d=(Q+1)*4,y=[],v=0;v>>24,w=r.SBOX[w>>>24]<<24|r.SBOX[w>>>16&255]<<16|r.SBOX[w>>>8&255]<<8|r.SBOX[w&255],w^=l[v/p|0]<<24):p>6&&v%p===4&&(w=r.SBOX[w>>>24]<<24|r.SBOX[w>>>16&255]<<16|r.SBOX[w>>>8&255]<<8|r.SBOX[w&255]),y[v]=y[v-p]^w}for(var M=[],m=0;m>>24]]^r.INV_SUB_MIX[1][r.SBOX[D>>>16&255]]^r.INV_SUB_MIX[2][r.SBOX[D>>>8&255]]^r.INV_SUB_MIX[3][r.SBOX[D&255]]}this._nRounds=Q,this._keySchedule=y,this._invKeySchedule=M},B.prototype.encryptBlockRaw=function(I){return I=i(I),f(I,this._keySchedule,r.SUB_MIX,r.SBOX,this._nRounds)},B.prototype.encryptBlock=function(I){var p=this.encryptBlockRaw(I),Q=o.allocUnsafe(16);return Q.writeUInt32BE(p[0],0),Q.writeUInt32BE(p[1],4),Q.writeUInt32BE(p[2],8),Q.writeUInt32BE(p[3],12),Q},B.prototype.decryptBlock=function(I){I=i(I);var p=I[1];I[1]=I[3],I[3]=p;var Q=f(I,this._invKeySchedule,r.INV_SUB_MIX,r.INV_SBOX,this._nRounds),d=o.allocUnsafe(16);return d.writeUInt32BE(Q[0],0),d.writeUInt32BE(Q[3],4),d.writeUInt32BE(Q[2],8),d.writeUInt32BE(Q[1],12),d},B.prototype.scrub=function(){s(this._keySchedule),s(this._invKeySchedule),s(this._key)},g1.AES=B,g1}var u1,VG;function Wue(){if(VG)return u1;VG=1;var o=xA().Buffer,i=o.alloc(16,0);function s(r){return[r.readUInt32BE(0),r.readUInt32BE(4),r.readUInt32BE(8),r.readUInt32BE(12)]}function f(r){var B=o.allocUnsafe(16);return B.writeUInt32BE(r[0]>>>0,0),B.writeUInt32BE(r[1]>>>0,4),B.writeUInt32BE(r[2]>>>0,8),B.writeUInt32BE(r[3]>>>0,12),B}function l(r){this.h=r,this.state=o.alloc(16,0),this.cache=o.allocUnsafe(0)}return l.prototype.ghash=function(r){for(var B=-1;++B0;I--)r[I]=r[I]>>>1|(r[I-1]&1)<<31;r[0]=r[0]>>>1,Q&&(r[0]=r[0]^225<<24)}this.state=f(B)},l.prototype.update=function(r){this.cache=o.concat([this.cache,r]);for(var B;this.cache.length>=16;)B=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(B)},l.prototype.final=function(r,B){return this.cache.length&&this.ghash(o.concat([this.cache,i],16)),this.ghash(f([0,r,0,B])),this.state},u1=l,u1}var c1,ZG;function Nee(){if(ZG)return c1;ZG=1;var o=Wp(),i=xA().Buffer,s=Mf(),f=fA(),l=Wue(),r=Yl(),B=Ree();function I(d,y){var v=0;d.length!==y.length&&v++;for(var w=Math.min(d.length,y.length),M=0;M0||B>0;){var y=new i;y.update(d),y.update(f),l&&y.update(l),d=y.digest();var v=0;if(I>0){var w=p.length-I;v=Math.min(I,d.length),d.copy(p,w,0,v),I-=v}if(v0){var M=Q.length-B,m=Math.min(B,d.length-v);d.copy(Q,M,v,v+m),B-=m}}return d.fill(0),{key:p,iv:Q}}return d1=s,d1}var XG;function Vue(){if(XG)return WI;XG=1;var o=kk(),i=Nee(),s=xA().Buffer,f=_ee(),l=Mf(),r=Wp(),B=Vp(),I=fA();function p(w,M,m){l.call(this),this._cache=new d,this._cipher=new r.AES(M),this._prev=s.from(m),this._mode=w,this._autopadding=!0}I(p,l),p.prototype._update=function(w){this._cache.add(w);for(var M,m,x=[];M=this._cache.get();)m=this._mode.encrypt(this,M),x.push(m);return s.concat(x)};var Q=s.alloc(16,16);p.prototype._final=function(){var w=this._cache.flush();if(this._autopadding)return w=this._mode.encrypt(this,w),this._cipher.scrub(),w;if(!w.equals(Q))throw this._cipher.scrub(),new Error("data not multiple of block length")},p.prototype.setAutoPadding=function(w){return this._autopadding=!!w,this};function d(){this.cache=s.allocUnsafe(0)}d.prototype.add=function(w){this.cache=s.concat([this.cache,w])},d.prototype.get=function(){if(this.cache.length>15){var w=this.cache.slice(0,16);return this.cache=this.cache.slice(16),w}return null},d.prototype.flush=function(){for(var w=16-this.cache.length,M=s.allocUnsafe(w),m=-1;++m16)return M=this.cache.slice(0,16),this.cache=this.cache.slice(16),M}else if(this.cache.length>=16)return M=this.cache.slice(0,16),this.cache=this.cache.slice(16),M;return null},Q.prototype.flush=function(){if(this.cache.length)return this.cache};function d(w){var M=w[15];if(M<1||M>16)throw new Error("unable to decrypt data");for(var m=-1;++m0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,Xue)}(NC)),NC.exports}var _C={exports:{}},ece=_C.exports,nL;function tce(){return nL||(nL=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,ece)}(_C)),_C.exports}var B1,oL;function Fee(){if(oL)return B1;oL=1;var o=tce(),i=Gk();function s(f){this.rand=f||new i.Rand}return B1=s,s.create=function(l){return new s(l)},s.prototype._randbelow=function(l){var r=l.bitLength(),B=Math.ceil(r/8);do var I=new o(this.rand.generate(B));while(I.cmp(l)>=0);return I},s.prototype._randrange=function(l,r){var B=r.sub(l);return l.add(this._randbelow(B))},s.prototype.test=function(l,r,B){var I=l.bitLength(),p=o.mont(l),Q=new o(1).toRed(p);r||(r=Math.max(1,I/48|0));for(var d=l.subn(1),y=0;!d.testn(y);y++);for(var v=l.shrn(y),w=d.toRed(p),M=!0;r>0;r--){var m=this._randrange(new o(2),d);B&&B(m);var x=m.toRed(p).redPow(v);if(!(x.cmp(Q)===0||x.cmp(w)===0)){for(var D=1;D0;r--){var w=this._randrange(new o(2),Q),M=l.gcd(w);if(M.cmpn(1)!==0)return M;var m=w.toRed(I).redPow(y);if(!(m.cmp(p)===0||m.cmp(v)===0)){for(var x=1;xD;)K.ishrn(1);if(K.isEven()&&K.iadd(r),K.testn(1)||K.iadd(B),S.cmp(B)){if(!S.cmp(I))for(;K.mod(p).cmp(Q);)K.iadd(y)}else for(;K.mod(s).cmp(d);)K.iadd(y);if(N=K.shrn(1),M(N)&&M(K)&&m(N)&&m(K)&&l.test(N)&&l.test(K))return K}}return C1}const Ace={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},rce={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},ice={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},nce={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},oce={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},ace={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},sce={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},fce={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},hce={modp1:Ace,modp2:rce,modp5:ice,modp14:nce,modp15:oce,modp16:ace,modp17:sce,modp18:fce};var E1,sL;function gce(){if(sL)return E1;sL=1;var o=Kee(),i=Fee(),s=new i,f=new o(24),l=new o(11),r=new o(10),B=new o(3),I=new o(7),p=Gee(),Q=$g();E1=M;function d(x,D){return D=D||"utf8",Buffer.isBuffer(x)||(x=new Buffer(x,D)),this._pub=new o(x),this}function y(x,D){return D=D||"utf8",Buffer.isBuffer(x)||(x=new Buffer(x,D)),this._priv=new o(x),this}var v={};function w(x,D){var S=D.toString("hex"),K=[S,x.toString(16)].join("_");if(K in v)return v[K];var N=0;if(x.isEven()||!p.simpleSieve||!p.fermatTest(x)||!s.test(x))return N+=1,S==="02"||S==="05"?N+=8:N+=4,v[K]=N,N;s.test(x.shrn(1))||(N+=2);var L;switch(S){case"02":x.mod(f).cmp(l)&&(N+=8);break;case"05":L=x.mod(r),L.cmp(B)&&L.cmp(I)&&(N+=8);break;default:N+=4}return v[K]=N,N}function M(x,D,S){this.setGenerator(D),this.__prime=new o(x),this._prime=o.mont(this.__prime),this._primeLen=x.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,S?(this.setPublicKey=d,this.setPrivateKey=y):this._primeCode=8}Object.defineProperty(M.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=w(this.__prime,this.__gen)),this._primeCode}}),M.prototype.generateKeys=function(){return this._priv||(this._priv=new o(Q(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},M.prototype.computeSecret=function(x){x=new o(x),x=x.toRed(this._prime);var D=x.redPow(this._priv).fromRed(),S=new Buffer(D.toArray()),K=this.getPrime();if(S.length"u"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?XI.exports={nextTick:o}:XI.exports=process;function o(i,s,f,l){if(typeof i!="function")throw new TypeError('"callback" argument must be a function');var r=arguments.length,B,I;switch(r){case 0:case 1:return process.nextTick(i);case 2:return process.nextTick(function(){i.call(null,s)});case 3:return process.nextTick(function(){i.call(null,s,f)});case 4:return process.nextTick(function(){i.call(null,s,f,l)});default:for(B=new Array(r-1),I=0;I"u"}ri.isPrimitive=w,ri.isBuffer=jo().Buffer.isBuffer;function M(m){return Object.prototype.toString.call(m)}return ri}var y1={exports:{}},dL;function lce(){return dL||(dL=1,function(o){function i(r,B){if(!(r instanceof B))throw new TypeError("Cannot call a class as a function")}var s=_k().Buffer,f=tA;function l(r,B,I){r.copy(B,I)}o.exports=function(){function r(){i(this,r),this.head=null,this.tail=null,this.length=0}return r.prototype.push=function(I){var p={data:I,next:null};this.length>0?this.tail.next=p:this.head=p,this.tail=p,++this.length},r.prototype.unshift=function(I){var p={data:I,next:this.head};this.length===0&&(this.tail=p),this.head=p,++this.length},r.prototype.shift=function(){if(this.length!==0){var I=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,I}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(I){if(this.length===0)return"";for(var p=this.head,Q=""+p.data;p=p.next;)Q+=I+p.data;return Q},r.prototype.concat=function(I){if(this.length===0)return s.alloc(0);for(var p=s.allocUnsafe(I>>>0),Q=this.head,d=0;Q;)l(Q.data,p,d),d+=Q.data.length,Q=Q.next;return p},r}(),f&&f.inspect&&f.inspect.custom&&(o.exports.prototype[f.inspect.custom]=function(){var r=f.inspect({length:this.length});return this.constructor.name+" "+r})}(y1)),y1.exports}var v1,IL;function Uee(){if(IL)return v1;IL=1;var o=Zp();function i(l,r){var B=this,I=this._readableState&&this._readableState.destroyed,p=this._writableState&&this._writableState.destroyed;return I||p?(r?r(l):l&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,o.nextTick(f,this,l)):o.nextTick(f,this,l)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(l||null,function(Q){!r&&Q?B._writableState?B._writableState.errorEmitted||(B._writableState.errorEmitted=!0,o.nextTick(f,B,Q)):o.nextTick(f,B,Q):r&&r(Q)}),this)}function s(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function f(l,r){l.emit("error",r)}return v1={destroy:i,undestroy:s},v1}var w1,BL;function qee(){if(BL)return w1;BL=1;var o=Zp();w1=m;function i(c){var C=this;this.next=null,this.entry=null,this.finish=function(){h(C,c)}}var s=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:o.nextTick,f;m.WritableState=w;var l=Object.create(Jl());l.inherits=fA();var r={deprecate:cee()},B=Lee(),I=_k().Buffer,p=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Q(c){return I.from(c)}function d(c){return I.isBuffer(c)||c instanceof p}var y=Uee();l.inherits(m,B);function v(){}function w(c,C){f=f||pg(),c=c||{};var g=C instanceof f;this.objectMode=!!c.objectMode,g&&(this.objectMode=this.objectMode||!!c.writableObjectMode);var t=c.highWaterMark,u=c.writableHighWaterMark,b=this.objectMode?16:16*1024;t||t===0?this.highWaterMark=t:g&&(u||u===0)?this.highWaterMark=u:this.highWaterMark=b,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var R=c.decodeStrings===!1;this.decodeStrings=!R,this.defaultEncoding=c.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(T){re(C,T)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}w.prototype.getBuffer=function(){for(var C=this.bufferedRequest,g=[];C;)g.push(C),C=C.next;return g},function(){try{Object.defineProperty(w.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var M;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(M=Function.prototype[Symbol.hasInstance],Object.defineProperty(m,Symbol.hasInstance,{value:function(c){return M.call(this,c)?!0:this!==m?!1:c&&c._writableState instanceof w}})):M=function(c){return c instanceof this};function m(c){if(f=f||pg(),!M.call(m,this)&&!(this instanceof f))return new m(c);this._writableState=new w(c,this),this.writable=!0,c&&(typeof c.write=="function"&&(this._write=c.write),typeof c.writev=="function"&&(this._writev=c.writev),typeof c.destroy=="function"&&(this._destroy=c.destroy),typeof c.final=="function"&&(this._final=c.final)),B.call(this)}m.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function x(c,C){var g=new Error("write after end");c.emit("error",g),o.nextTick(C,g)}function D(c,C,g,t){var u=!0,b=!1;return g===null?b=new TypeError("May not write null values to stream"):typeof g!="string"&&g!==void 0&&!C.objectMode&&(b=new TypeError("Invalid non-string/buffer chunk")),b&&(c.emit("error",b),o.nextTick(t,b),u=!1),u}m.prototype.write=function(c,C,g){var t=this._writableState,u=!1,b=!t.objectMode&&d(c);return b&&!I.isBuffer(c)&&(c=Q(c)),typeof C=="function"&&(g=C,C=null),b?C="buffer":C||(C=t.defaultEncoding),typeof g!="function"&&(g=v),t.ended?x(this,g):(b||D(this,t,c,g))&&(t.pendingcb++,u=K(this,t,b,c,C,g)),u},m.prototype.cork=function(){var c=this._writableState;c.corked++},m.prototype.uncork=function(){var c=this._writableState;c.corked&&(c.corked--,!c.writing&&!c.corked&&!c.bufferProcessing&&c.bufferedRequest&&Ae(this,c))},m.prototype.setDefaultEncoding=function(C){if(typeof C=="string"&&(C=C.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((C+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+C);return this._writableState.defaultEncoding=C,this};function S(c,C,g){return!c.objectMode&&c.decodeStrings!==!1&&typeof C=="string"&&(C=I.from(C,g)),C}Object.defineProperty(m.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function K(c,C,g,t,u,b){if(!g){var R=S(C,t,u);t!==R&&(g=!0,u="buffer",t=R)}var T=C.objectMode?1:t.length;C.length+=T;var V=C.length0?(typeof Y!="string"&&!q.objectMode&&Object.getPrototypeOf(Y)!==r.prototype&&(Y=I(Y)),te?q.endEmitted?F.emit("error",new Error("stream.unshift() after end event")):N(F,q,Y,!0):q.ended?F.emit("error",new Error("stream.push() after EOF")):(q.reading=!1,q.decoder&&!W?(Y=q.decoder.write(Y),q.objectMode||Y.length!==0?N(F,q,Y,!1):A(F,q)):N(F,q,Y,!1))):te||(q.reading=!1)}return j(q)}function N(F,Y,W,te){Y.flowing&&Y.length===0&&!Y.sync?(F.emit("data",W),F.read(0)):(Y.length+=Y.objectMode?1:W.length,te?Y.buffer.unshift(W):Y.buffer.push(W),Y.needReadable&&E(F)),A(F,Y)}function L(F,Y){var W;return!p(Y)&&typeof Y!="string"&&Y!==void 0&&!F.objectMode&&(W=new TypeError("Invalid non-string/buffer chunk")),W}function j(F){return!F.ended&&(F.needReadable||F.length=re?F=re:(F--,F|=F>>>1,F|=F>>>2,F|=F>>>4,F|=F>>>8,F|=F>>>16,F++),F}function J(F,Y){return F<=0||Y.length===0&&Y.ended?0:Y.objectMode?1:F!==F?Y.flowing&&Y.length?Y.buffer.head.data.length:Y.length:(F>Y.highWaterMark&&(Y.highWaterMark=Z(F)),F<=Y.length?F:Y.ended?Y.length:(Y.needReadable=!0,0))}S.prototype.read=function(F){y("read",F),F=parseInt(F,10);var Y=this._readableState,W=F;if(F!==0&&(Y.emittedReadable=!1),F===0&&Y.needReadable&&(Y.length>=Y.highWaterMark||Y.ended))return y("read: emitReadable",Y.length,Y.ended),Y.length===0&&Y.ended?T(this):E(this),null;if(F=J(F,Y),F===0&&Y.ended)return Y.length===0&&T(this),null;var te=Y.needReadable;y("need readable",te),(Y.length===0||Y.length-F0?z=t(F,Y):z=null,z===null?(Y.needReadable=!0,F=0):Y.length-=F,Y.length===0&&(Y.ended||(Y.needReadable=!0),W!==F&&Y.ended&&T(this)),z!==null&&this.emit("data",z),z};function Ae(F,Y){if(!Y.ended){if(Y.decoder){var W=Y.decoder.end();W&&W.length&&(Y.buffer.push(W),Y.length+=Y.objectMode?1:W.length)}Y.ended=!0,E(F)}}function E(F){var Y=F._readableState;Y.needReadable=!1,Y.emittedReadable||(y("emitReadable",Y.flowing),Y.emittedReadable=!0,Y.sync?o.nextTick(e,F):e(F))}function e(F){y("emit readable"),F.emit("readable"),g(F)}function A(F,Y){Y.readingMore||(Y.readingMore=!0,o.nextTick(n,F,Y))}function n(F,Y){for(var W=Y.length;!Y.reading&&!Y.flowing&&!Y.ended&&Y.length1&&P(te.pipes,F)!==-1)&&!he&&(y("false write response, pause",te.awaitDrain),te.awaitDrain++,se=!0),W.pause())}function Ue(ue){y("onerror",ue),Te(),F.removeListener("error",Ue),f(F,"error")===0&&F.emit("error",ue)}x(F,"error",Ue);function fe(){F.removeListener("finish",ce),Te()}F.once("close",fe);function ce(){y("onfinish"),F.removeListener("close",fe),Te()}F.once("finish",ce);function Te(){y("unpipe"),W.unpipe(F)}return F.emit("pipe",W),te.flowing||(y("pipe resume"),W.resume()),F};function a(F){return function(){var Y=F._readableState;y("pipeOnDrain",Y.awaitDrain),Y.awaitDrain&&Y.awaitDrain--,Y.awaitDrain===0&&f(F,"data")&&(Y.flowing=!0,g(F))}}S.prototype.unpipe=function(F){var Y=this._readableState,W={hasUnpiped:!1};if(Y.pipesCount===0)return this;if(Y.pipesCount===1)return F&&F!==Y.pipes?this:(F||(F=Y.pipes),Y.pipes=null,Y.pipesCount=0,Y.flowing=!1,F&&F.emit("unpipe",this,W),this);if(!F){var te=Y.pipes,z=Y.pipesCount;Y.pipes=null,Y.pipesCount=0,Y.flowing=!1;for(var q=0;q=Y.length?(Y.decoder?W=Y.buffer.join(""):Y.buffer.length===1?W=Y.buffer.head.data:W=Y.buffer.concat(Y.length),Y.buffer.clear()):W=u(F,Y.buffer,Y.decoder),W}function u(F,Y,W){var te;return Fq.length?q.length:F;if($===q.length?z+=q:z+=q.slice(0,F),F-=$,F===0){$===q.length?(++te,W.next?Y.head=W.next:Y.head=Y.tail=null):(Y.head=W,W.data=q.slice($));break}++te}return Y.length-=te,z}function R(F,Y){var W=r.allocUnsafe(F),te=Y.head,z=1;for(te.data.copy(W),F-=te.data.length;te=te.next;){var q=te.data,$=F>q.length?q.length:F;if(q.copy(W,W.length-F,0,$),F-=$,F===0){$===q.length?(++z,te.next?Y.head=te.next:Y.head=Y.tail=null):(Y.head=te,te.data=q.slice($));break}++z}return Y.length-=z,W}function T(F){var Y=F._readableState;if(Y.length>0)throw new Error('"endReadable()" called on non-empty stream');Y.endEmitted||(Y.ended=!0,o.nextTick(V,Y,F))}function V(F,Y){!F.endEmitted&&F.length===0&&(F.endEmitted=!0,Y.readable=!1,Y.emit("end"))}function P(F,Y){for(var W=0,te=F.length;W0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,h){if(typeof n=="number")return this._initNumber(n,a,h);if(typeof n=="object")return this._initArray(n,a,h);a==="hex"&&(a=16),f(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var c=0;n[0]==="-"&&(c++,this.negative=1),c=0;c-=3)g=n[c]|n[c-1]<<8|n[c-2]<<16,this.words[C]|=g<>>26-t&67108863,t+=24,t>=26&&(t-=26,C++);else if(h==="le")for(c=0,C=0;c>>26-t&67108863,t+=24,t>=26&&(t-=26,C++);return this._strip()};function I(A,n){var a=A.charCodeAt(n);if(a>=48&&a<=57)return a-48;if(a>=65&&a<=70)return a-55;if(a>=97&&a<=102)return a-87;f(!1,"Invalid character in "+A)}function p(A,n,a){var h=I(A,a);return a-1>=n&&(h|=I(A,a-1)<<4),h}r.prototype._parseHex=function(n,a,h){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var c=0;c=a;c-=2)t=p(n,a,c)<=18?(C-=18,g+=1,this.words[g]|=t>>>26):C+=8;else{var u=n.length-a;for(c=u%2===0?a+1:a;c=18?(C-=18,g+=1,this.words[g]|=t>>>26):C+=8}this._strip()};function Q(A,n,a,h){for(var c=0,C=0,g=Math.min(A.length,a),t=n;t=49?C=u-49+10:u>=17?C=u-17+10:C=u,f(u>=0&&C1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{r.prototype[Symbol.for("nodejs.util.inspect.custom")]=y}catch{r.prototype.inspect=y}else r.prototype.inspect=y;function y(){return(this.red?""}var v=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],w=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],M=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var h;if(n===16||n==="hex"){h="";for(var c=0,C=0,g=0;g>>24-c&16777215,c+=2,c>=26&&(c-=26,g--),C!==0||g!==this.length-1?h=v[6-u.length]+u+h:h=u+h}for(C!==0&&(h=C.toString(16)+h);h.length%a!==0;)h="0"+h;return this.negative!==0&&(h="-"+h),h}if(n===(n|0)&&n>=2&&n<=36){var b=w[n],R=M[n];h="";var T=this.clone();for(T.negative=0;!T.isZero();){var V=T.modrn(R).toString(n);T=T.idivn(R),T.isZero()?h=V+h:h=v[b-V.length]+V+h}for(this.isZero()&&(h="0"+h);h.length%a!==0;)h="0"+h;return this.negative!==0&&(h="-"+h),h}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16,2)},B&&(r.prototype.toBuffer=function(n,a){return this.toArrayLike(B,n,a)}),r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)};var m=function(n,a){return n.allocUnsafe?n.allocUnsafe(a):new n(a)};r.prototype.toArrayLike=function(n,a,h){this._strip();var c=this.byteLength(),C=h||Math.max(1,c);f(c<=C,"byte array longer than desired length"),f(C>0,"Requested array length <= 0");var g=m(n,C),t=a==="le"?"LE":"BE";return this["_toArrayLike"+t](g,c),g},r.prototype._toArrayLikeLE=function(n,a){for(var h=0,c=0,C=0,g=0;C>8&255),h>16&255),g===6?(h>24&255),c=0,g=0):(c=t>>>24,g+=2)}if(h=0&&(n[h--]=t>>8&255),h>=0&&(n[h--]=t>>16&255),g===6?(h>=0&&(n[h--]=t>>24&255),c=0,g=0):(c=t>>>24,g+=2)}if(h>=0)for(n[h--]=c;h>=0;)n[h--]=0},Math.clz32?r.prototype._countBits=function(n){return 32-Math.clz32(n)}:r.prototype._countBits=function(n){var a=n,h=0;return a>=4096&&(h+=13,a>>>=13),a>=64&&(h+=7,a>>>=7),a>=8&&(h+=4,a>>>=4),a>=2&&(h+=2,a>>>=2),h+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,h=0;return a&8191||(h+=13,a>>>=13),a&127||(h+=7,a>>>=7),a&15||(h+=4,a>>>=4),a&3||(h+=2,a>>>=2),a&1||h++,h},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function x(A){for(var n=new Array(A.bitLength()),a=0;a>>c&1}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var h=0;hn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,h;this.length>n.length?(a=this,h=n):(a=n,h=this);for(var c=0;cn.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){f(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,h=n%26;this._expand(a),h>0&&a--;for(var c=0;c0&&(this.words[c]=~this.words[c]&67108863>>26-h),this._strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){f(typeof n=="number"&&n>=0);var h=n/26|0,c=n%26;return this._expand(h+1),a?this.words[h]=this.words[h]|1<n.length?(h=this,c=n):(h=n,c=this);for(var C=0,g=0;g>>26;for(;C!==0&&g>>26;if(this.length=h.length,C!==0)this.words[this.length]=C,this.length++;else if(h!==this)for(;gn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var h=this.cmp(n);if(h===0)return this.negative=0,this.length=1,this.words[0]=0,this;var c,C;h>0?(c=this,C=n):(c=n,C=this);for(var g=0,t=0;t>26,this.words[t]=a&67108863;for(;g!==0&&t>26,this.words[t]=a&67108863;if(g===0&&t>>26,T=u&67108863,V=Math.min(b,n.length-1),P=Math.max(0,b-A.length+1);P<=V;P++){var F=b-P|0;c=A.words[F]|0,C=n.words[P]|0,g=c*C+T,R+=g/67108864|0,T=g&67108863}a.words[b]=T|0,u=R|0}return u!==0?a.words[b]=u|0:a.length--,a._strip()}var S=function(n,a,h){var c=n.words,C=a.words,g=h.words,t=0,u,b,R,T=c[0]|0,V=T&8191,P=T>>>13,F=c[1]|0,Y=F&8191,W=F>>>13,te=c[2]|0,z=te&8191,q=te>>>13,$=c[3]|0,le=$&8191,ae=$>>>13,he=c[4]|0,xe=he&8191,se=he>>>13,oe=c[5]|0,Ue=oe&8191,fe=oe>>>13,ce=c[6]|0,Te=ce&8191,ue=ce>>>13,Be=c[7]|0,Ve=Be&8191,H=Be>>>13,k=c[8]|0,G=k&8191,O=k>>>13,ee=c[9]|0,de=ee&8191,ie=ee>>>13,Ee=C[0]|0,Oe=Ee&8191,Ce=Ee>>>13,Qe=C[1]|0,Je=Qe&8191,me=Qe>>>13,Fe=C[2]|0,at=Fe&8191,ve=Fe>>>13,Ke=C[3]|0,nt=Ke&8191,we=Ke>>>13,Re=C[4]|0,Le=Re&8191,ge=Re>>>13,ye=C[5]|0,We=ye&8191,pe=ye>>>13,ke=C[6]|0,ot=ke&8191,Me=ke>>>13,Ne=C[7]|0,st=Ne&8191,be=Ne>>>13,Ge=C[8]|0,ft=Ge&8191,De=Ge>>>13,_e=C[9]|0,At=_e&8191,tt=_e>>>13;h.negative=n.negative^a.negative,h.length=19,u=Math.imul(V,Oe),b=Math.imul(V,Ce),b=b+Math.imul(P,Oe)|0,R=Math.imul(P,Ce);var Qt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,u=Math.imul(Y,Oe),b=Math.imul(Y,Ce),b=b+Math.imul(W,Oe)|0,R=Math.imul(W,Ce),u=u+Math.imul(V,Je)|0,b=b+Math.imul(V,me)|0,b=b+Math.imul(P,Je)|0,R=R+Math.imul(P,me)|0;var Et=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Et>>>26)|0,Et&=67108863,u=Math.imul(z,Oe),b=Math.imul(z,Ce),b=b+Math.imul(q,Oe)|0,R=Math.imul(q,Ce),u=u+Math.imul(Y,Je)|0,b=b+Math.imul(Y,me)|0,b=b+Math.imul(W,Je)|0,R=R+Math.imul(W,me)|0,u=u+Math.imul(V,at)|0,b=b+Math.imul(V,ve)|0,b=b+Math.imul(P,at)|0,R=R+Math.imul(P,ve)|0;var vt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(vt>>>26)|0,vt&=67108863,u=Math.imul(le,Oe),b=Math.imul(le,Ce),b=b+Math.imul(ae,Oe)|0,R=Math.imul(ae,Ce),u=u+Math.imul(z,Je)|0,b=b+Math.imul(z,me)|0,b=b+Math.imul(q,Je)|0,R=R+Math.imul(q,me)|0,u=u+Math.imul(Y,at)|0,b=b+Math.imul(Y,ve)|0,b=b+Math.imul(W,at)|0,R=R+Math.imul(W,ve)|0,u=u+Math.imul(V,nt)|0,b=b+Math.imul(V,we)|0,b=b+Math.imul(P,nt)|0,R=R+Math.imul(P,we)|0;var wt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(wt>>>26)|0,wt&=67108863,u=Math.imul(xe,Oe),b=Math.imul(xe,Ce),b=b+Math.imul(se,Oe)|0,R=Math.imul(se,Ce),u=u+Math.imul(le,Je)|0,b=b+Math.imul(le,me)|0,b=b+Math.imul(ae,Je)|0,R=R+Math.imul(ae,me)|0,u=u+Math.imul(z,at)|0,b=b+Math.imul(z,ve)|0,b=b+Math.imul(q,at)|0,R=R+Math.imul(q,ve)|0,u=u+Math.imul(Y,nt)|0,b=b+Math.imul(Y,we)|0,b=b+Math.imul(W,nt)|0,R=R+Math.imul(W,we)|0,u=u+Math.imul(V,Le)|0,b=b+Math.imul(V,ge)|0,b=b+Math.imul(P,Le)|0,R=R+Math.imul(P,ge)|0;var mt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(mt>>>26)|0,mt&=67108863,u=Math.imul(Ue,Oe),b=Math.imul(Ue,Ce),b=b+Math.imul(fe,Oe)|0,R=Math.imul(fe,Ce),u=u+Math.imul(xe,Je)|0,b=b+Math.imul(xe,me)|0,b=b+Math.imul(se,Je)|0,R=R+Math.imul(se,me)|0,u=u+Math.imul(le,at)|0,b=b+Math.imul(le,ve)|0,b=b+Math.imul(ae,at)|0,R=R+Math.imul(ae,ve)|0,u=u+Math.imul(z,nt)|0,b=b+Math.imul(z,we)|0,b=b+Math.imul(q,nt)|0,R=R+Math.imul(q,we)|0,u=u+Math.imul(Y,Le)|0,b=b+Math.imul(Y,ge)|0,b=b+Math.imul(W,Le)|0,R=R+Math.imul(W,ge)|0,u=u+Math.imul(V,We)|0,b=b+Math.imul(V,pe)|0,b=b+Math.imul(P,We)|0,R=R+Math.imul(P,pe)|0;var Mt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,u=Math.imul(Te,Oe),b=Math.imul(Te,Ce),b=b+Math.imul(ue,Oe)|0,R=Math.imul(ue,Ce),u=u+Math.imul(Ue,Je)|0,b=b+Math.imul(Ue,me)|0,b=b+Math.imul(fe,Je)|0,R=R+Math.imul(fe,me)|0,u=u+Math.imul(xe,at)|0,b=b+Math.imul(xe,ve)|0,b=b+Math.imul(se,at)|0,R=R+Math.imul(se,ve)|0,u=u+Math.imul(le,nt)|0,b=b+Math.imul(le,we)|0,b=b+Math.imul(ae,nt)|0,R=R+Math.imul(ae,we)|0,u=u+Math.imul(z,Le)|0,b=b+Math.imul(z,ge)|0,b=b+Math.imul(q,Le)|0,R=R+Math.imul(q,ge)|0,u=u+Math.imul(Y,We)|0,b=b+Math.imul(Y,pe)|0,b=b+Math.imul(W,We)|0,R=R+Math.imul(W,pe)|0,u=u+Math.imul(V,ot)|0,b=b+Math.imul(V,Me)|0,b=b+Math.imul(P,ot)|0,R=R+Math.imul(P,Me)|0;var qe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(qe>>>26)|0,qe&=67108863,u=Math.imul(Ve,Oe),b=Math.imul(Ve,Ce),b=b+Math.imul(H,Oe)|0,R=Math.imul(H,Ce),u=u+Math.imul(Te,Je)|0,b=b+Math.imul(Te,me)|0,b=b+Math.imul(ue,Je)|0,R=R+Math.imul(ue,me)|0,u=u+Math.imul(Ue,at)|0,b=b+Math.imul(Ue,ve)|0,b=b+Math.imul(fe,at)|0,R=R+Math.imul(fe,ve)|0,u=u+Math.imul(xe,nt)|0,b=b+Math.imul(xe,we)|0,b=b+Math.imul(se,nt)|0,R=R+Math.imul(se,we)|0,u=u+Math.imul(le,Le)|0,b=b+Math.imul(le,ge)|0,b=b+Math.imul(ae,Le)|0,R=R+Math.imul(ae,ge)|0,u=u+Math.imul(z,We)|0,b=b+Math.imul(z,pe)|0,b=b+Math.imul(q,We)|0,R=R+Math.imul(q,pe)|0,u=u+Math.imul(Y,ot)|0,b=b+Math.imul(Y,Me)|0,b=b+Math.imul(W,ot)|0,R=R+Math.imul(W,Me)|0,u=u+Math.imul(V,st)|0,b=b+Math.imul(V,be)|0,b=b+Math.imul(P,st)|0,R=R+Math.imul(P,be)|0;var Ye=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,u=Math.imul(G,Oe),b=Math.imul(G,Ce),b=b+Math.imul(O,Oe)|0,R=Math.imul(O,Ce),u=u+Math.imul(Ve,Je)|0,b=b+Math.imul(Ve,me)|0,b=b+Math.imul(H,Je)|0,R=R+Math.imul(H,me)|0,u=u+Math.imul(Te,at)|0,b=b+Math.imul(Te,ve)|0,b=b+Math.imul(ue,at)|0,R=R+Math.imul(ue,ve)|0,u=u+Math.imul(Ue,nt)|0,b=b+Math.imul(Ue,we)|0,b=b+Math.imul(fe,nt)|0,R=R+Math.imul(fe,we)|0,u=u+Math.imul(xe,Le)|0,b=b+Math.imul(xe,ge)|0,b=b+Math.imul(se,Le)|0,R=R+Math.imul(se,ge)|0,u=u+Math.imul(le,We)|0,b=b+Math.imul(le,pe)|0,b=b+Math.imul(ae,We)|0,R=R+Math.imul(ae,pe)|0,u=u+Math.imul(z,ot)|0,b=b+Math.imul(z,Me)|0,b=b+Math.imul(q,ot)|0,R=R+Math.imul(q,Me)|0,u=u+Math.imul(Y,st)|0,b=b+Math.imul(Y,be)|0,b=b+Math.imul(W,st)|0,R=R+Math.imul(W,be)|0,u=u+Math.imul(V,ft)|0,b=b+Math.imul(V,De)|0,b=b+Math.imul(P,ft)|0,R=R+Math.imul(P,De)|0;var Pe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,u=Math.imul(de,Oe),b=Math.imul(de,Ce),b=b+Math.imul(ie,Oe)|0,R=Math.imul(ie,Ce),u=u+Math.imul(G,Je)|0,b=b+Math.imul(G,me)|0,b=b+Math.imul(O,Je)|0,R=R+Math.imul(O,me)|0,u=u+Math.imul(Ve,at)|0,b=b+Math.imul(Ve,ve)|0,b=b+Math.imul(H,at)|0,R=R+Math.imul(H,ve)|0,u=u+Math.imul(Te,nt)|0,b=b+Math.imul(Te,we)|0,b=b+Math.imul(ue,nt)|0,R=R+Math.imul(ue,we)|0,u=u+Math.imul(Ue,Le)|0,b=b+Math.imul(Ue,ge)|0,b=b+Math.imul(fe,Le)|0,R=R+Math.imul(fe,ge)|0,u=u+Math.imul(xe,We)|0,b=b+Math.imul(xe,pe)|0,b=b+Math.imul(se,We)|0,R=R+Math.imul(se,pe)|0,u=u+Math.imul(le,ot)|0,b=b+Math.imul(le,Me)|0,b=b+Math.imul(ae,ot)|0,R=R+Math.imul(ae,Me)|0,u=u+Math.imul(z,st)|0,b=b+Math.imul(z,be)|0,b=b+Math.imul(q,st)|0,R=R+Math.imul(q,be)|0,u=u+Math.imul(Y,ft)|0,b=b+Math.imul(Y,De)|0,b=b+Math.imul(W,ft)|0,R=R+Math.imul(W,De)|0,u=u+Math.imul(V,At)|0,b=b+Math.imul(V,tt)|0,b=b+Math.imul(P,At)|0,R=R+Math.imul(P,tt)|0;var ze=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ze>>>26)|0,ze&=67108863,u=Math.imul(de,Je),b=Math.imul(de,me),b=b+Math.imul(ie,Je)|0,R=Math.imul(ie,me),u=u+Math.imul(G,at)|0,b=b+Math.imul(G,ve)|0,b=b+Math.imul(O,at)|0,R=R+Math.imul(O,ve)|0,u=u+Math.imul(Ve,nt)|0,b=b+Math.imul(Ve,we)|0,b=b+Math.imul(H,nt)|0,R=R+Math.imul(H,we)|0,u=u+Math.imul(Te,Le)|0,b=b+Math.imul(Te,ge)|0,b=b+Math.imul(ue,Le)|0,R=R+Math.imul(ue,ge)|0,u=u+Math.imul(Ue,We)|0,b=b+Math.imul(Ue,pe)|0,b=b+Math.imul(fe,We)|0,R=R+Math.imul(fe,pe)|0,u=u+Math.imul(xe,ot)|0,b=b+Math.imul(xe,Me)|0,b=b+Math.imul(se,ot)|0,R=R+Math.imul(se,Me)|0,u=u+Math.imul(le,st)|0,b=b+Math.imul(le,be)|0,b=b+Math.imul(ae,st)|0,R=R+Math.imul(ae,be)|0,u=u+Math.imul(z,ft)|0,b=b+Math.imul(z,De)|0,b=b+Math.imul(q,ft)|0,R=R+Math.imul(q,De)|0,u=u+Math.imul(Y,At)|0,b=b+Math.imul(Y,tt)|0,b=b+Math.imul(W,At)|0,R=R+Math.imul(W,tt)|0;var Xe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,u=Math.imul(de,at),b=Math.imul(de,ve),b=b+Math.imul(ie,at)|0,R=Math.imul(ie,ve),u=u+Math.imul(G,nt)|0,b=b+Math.imul(G,we)|0,b=b+Math.imul(O,nt)|0,R=R+Math.imul(O,we)|0,u=u+Math.imul(Ve,Le)|0,b=b+Math.imul(Ve,ge)|0,b=b+Math.imul(H,Le)|0,R=R+Math.imul(H,ge)|0,u=u+Math.imul(Te,We)|0,b=b+Math.imul(Te,pe)|0,b=b+Math.imul(ue,We)|0,R=R+Math.imul(ue,pe)|0,u=u+Math.imul(Ue,ot)|0,b=b+Math.imul(Ue,Me)|0,b=b+Math.imul(fe,ot)|0,R=R+Math.imul(fe,Me)|0,u=u+Math.imul(xe,st)|0,b=b+Math.imul(xe,be)|0,b=b+Math.imul(se,st)|0,R=R+Math.imul(se,be)|0,u=u+Math.imul(le,ft)|0,b=b+Math.imul(le,De)|0,b=b+Math.imul(ae,ft)|0,R=R+Math.imul(ae,De)|0,u=u+Math.imul(z,At)|0,b=b+Math.imul(z,tt)|0,b=b+Math.imul(q,At)|0,R=R+Math.imul(q,tt)|0;var rt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(rt>>>26)|0,rt&=67108863,u=Math.imul(de,nt),b=Math.imul(de,we),b=b+Math.imul(ie,nt)|0,R=Math.imul(ie,we),u=u+Math.imul(G,Le)|0,b=b+Math.imul(G,ge)|0,b=b+Math.imul(O,Le)|0,R=R+Math.imul(O,ge)|0,u=u+Math.imul(Ve,We)|0,b=b+Math.imul(Ve,pe)|0,b=b+Math.imul(H,We)|0,R=R+Math.imul(H,pe)|0,u=u+Math.imul(Te,ot)|0,b=b+Math.imul(Te,Me)|0,b=b+Math.imul(ue,ot)|0,R=R+Math.imul(ue,Me)|0,u=u+Math.imul(Ue,st)|0,b=b+Math.imul(Ue,be)|0,b=b+Math.imul(fe,st)|0,R=R+Math.imul(fe,be)|0,u=u+Math.imul(xe,ft)|0,b=b+Math.imul(xe,De)|0,b=b+Math.imul(se,ft)|0,R=R+Math.imul(se,De)|0,u=u+Math.imul(le,At)|0,b=b+Math.imul(le,tt)|0,b=b+Math.imul(ae,At)|0,R=R+Math.imul(ae,tt)|0;var it=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(it>>>26)|0,it&=67108863,u=Math.imul(de,Le),b=Math.imul(de,ge),b=b+Math.imul(ie,Le)|0,R=Math.imul(ie,ge),u=u+Math.imul(G,We)|0,b=b+Math.imul(G,pe)|0,b=b+Math.imul(O,We)|0,R=R+Math.imul(O,pe)|0,u=u+Math.imul(Ve,ot)|0,b=b+Math.imul(Ve,Me)|0,b=b+Math.imul(H,ot)|0,R=R+Math.imul(H,Me)|0,u=u+Math.imul(Te,st)|0,b=b+Math.imul(Te,be)|0,b=b+Math.imul(ue,st)|0,R=R+Math.imul(ue,be)|0,u=u+Math.imul(Ue,ft)|0,b=b+Math.imul(Ue,De)|0,b=b+Math.imul(fe,ft)|0,R=R+Math.imul(fe,De)|0,u=u+Math.imul(xe,At)|0,b=b+Math.imul(xe,tt)|0,b=b+Math.imul(se,At)|0,R=R+Math.imul(se,tt)|0;var ct=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ct>>>26)|0,ct&=67108863,u=Math.imul(de,We),b=Math.imul(de,pe),b=b+Math.imul(ie,We)|0,R=Math.imul(ie,pe),u=u+Math.imul(G,ot)|0,b=b+Math.imul(G,Me)|0,b=b+Math.imul(O,ot)|0,R=R+Math.imul(O,Me)|0,u=u+Math.imul(Ve,st)|0,b=b+Math.imul(Ve,be)|0,b=b+Math.imul(H,st)|0,R=R+Math.imul(H,be)|0,u=u+Math.imul(Te,ft)|0,b=b+Math.imul(Te,De)|0,b=b+Math.imul(ue,ft)|0,R=R+Math.imul(ue,De)|0,u=u+Math.imul(Ue,At)|0,b=b+Math.imul(Ue,tt)|0,b=b+Math.imul(fe,At)|0,R=R+Math.imul(fe,tt)|0;var ut=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ut>>>26)|0,ut&=67108863,u=Math.imul(de,ot),b=Math.imul(de,Me),b=b+Math.imul(ie,ot)|0,R=Math.imul(ie,Me),u=u+Math.imul(G,st)|0,b=b+Math.imul(G,be)|0,b=b+Math.imul(O,st)|0,R=R+Math.imul(O,be)|0,u=u+Math.imul(Ve,ft)|0,b=b+Math.imul(Ve,De)|0,b=b+Math.imul(H,ft)|0,R=R+Math.imul(H,De)|0,u=u+Math.imul(Te,At)|0,b=b+Math.imul(Te,tt)|0,b=b+Math.imul(ue,At)|0,R=R+Math.imul(ue,tt)|0;var It=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(It>>>26)|0,It&=67108863,u=Math.imul(de,st),b=Math.imul(de,be),b=b+Math.imul(ie,st)|0,R=Math.imul(ie,be),u=u+Math.imul(G,ft)|0,b=b+Math.imul(G,De)|0,b=b+Math.imul(O,ft)|0,R=R+Math.imul(O,De)|0,u=u+Math.imul(Ve,At)|0,b=b+Math.imul(Ve,tt)|0,b=b+Math.imul(H,At)|0,R=R+Math.imul(H,tt)|0;var pt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(pt>>>26)|0,pt&=67108863,u=Math.imul(de,ft),b=Math.imul(de,De),b=b+Math.imul(ie,ft)|0,R=Math.imul(ie,De),u=u+Math.imul(G,At)|0,b=b+Math.imul(G,tt)|0,b=b+Math.imul(O,At)|0,R=R+Math.imul(O,tt)|0;var EA=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(de,At),b=Math.imul(de,tt),b=b+Math.imul(ie,At)|0,R=Math.imul(ie,tt);var YA=(t+u|0)+((b&8191)<<13)|0;return t=(R+(b>>>13)|0)+(YA>>>26)|0,YA&=67108863,g[0]=Qt,g[1]=Et,g[2]=vt,g[3]=wt,g[4]=mt,g[5]=Mt,g[6]=qe,g[7]=Ye,g[8]=Pe,g[9]=ze,g[10]=Xe,g[11]=rt,g[12]=it,g[13]=ct,g[14]=ut,g[15]=It,g[16]=pt,g[17]=EA,g[18]=YA,t!==0&&(g[19]=t,h.length++),h};Math.imul||(S=D);function K(A,n,a){a.negative=n.negative^A.negative,a.length=A.length+n.length;for(var h=0,c=0,C=0;C>>26)|0,c+=g>>>26,g&=67108863}a.words[C]=t,h=g,g=c}return h!==0?a.words[C]=h:a.length--,a._strip()}function N(A,n,a){return K(A,n,a)}r.prototype.mulTo=function(n,a){var h,c=this.length+n.length;return this.length===10&&n.length===10?h=S(this,n,a):c<63?h=D(this,n,a):c<1024?h=K(this,n,a):h=N(this,n,a),h},r.prototype.mul=function(n){var a=new r(null);return a.words=new Array(this.length+n.length),this.mulTo(n,a)},r.prototype.mulf=function(n){var a=new r(null);return a.words=new Array(this.length+n.length),N(this,n,a)},r.prototype.imul=function(n){return this.clone().mulTo(n,this)},r.prototype.imuln=function(n){var a=n<0;a&&(n=-n),f(typeof n=="number"),f(n<67108864);for(var h=0,c=0;c>=26,h+=C/67108864|0,h+=g>>>26,this.words[c]=g&67108863}return h!==0&&(this.words[c]=h,this.length++),a?this.ineg():this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=x(n);if(a.length===0)return new r(1);for(var h=this,c=0;c=0);var a=n%26,h=(n-a)/26,c=67108863>>>26-a<<26-a,C;if(a!==0){var g=0;for(C=0;C>>26-a}g&&(this.words[C]=g,this.length++)}if(h!==0){for(C=this.length-1;C>=0;C--)this.words[C+h]=this.words[C];for(C=0;C=0);var c;a?c=(a-a%26)/26:c=0;var C=n%26,g=Math.min((n-C)/26,this.length),t=67108863^67108863>>>C<g)for(this.length-=g,b=0;b=0&&(R!==0||b>=c);b--){var T=this.words[b]|0;this.words[b]=R<<26-C|T>>>C,R=T&t}return u&&R!==0&&(u.words[u.length++]=R),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},r.prototype.ishrn=function(n,a,h){return f(this.negative===0),this.iushrn(n,a,h)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){f(typeof n=="number"&&n>=0);var a=n%26,h=(n-a)/26,c=1<=0);var a=n%26,h=(n-a)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=h)return this;if(a!==0&&h++,this.length=Math.min(h,this.length),a!==0){var c=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(f(typeof n=="number"),f(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[C+h]=g&67108863}for(;C>26,this.words[C+h]=g&67108863;if(t===0)return this._strip();for(f(t===-1),t=0,C=0;C>26,this.words[C]=g&67108863;return this.negative=1,this._strip()},r.prototype._wordDiv=function(n,a){var h=this.length-n.length,c=this.clone(),C=n,g=C.words[C.length-1]|0,t=this._countBits(g);h=26-t,h!==0&&(C=C.ushln(h),c.iushln(h),g=C.words[C.length-1]|0);var u=c.length-C.length,b;if(a!=="mod"){b=new r(null),b.length=u+1,b.words=new Array(b.length);for(var R=0;R=0;V--){var P=(c.words[C.length+V]|0)*67108864+(c.words[C.length+V-1]|0);for(P=Math.min(P/g|0,67108863),c._ishlnsubmul(C,P,V);c.negative!==0;)P--,c.negative=0,c._ishlnsubmul(C,1,V),c.isZero()||(c.negative^=1);b&&(b.words[V]=P)}return b&&b._strip(),c._strip(),a!=="div"&&h!==0&&c.iushrn(h),{div:b||null,mod:c}},r.prototype.divmod=function(n,a,h){if(f(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var c,C,g;return this.negative!==0&&n.negative===0?(g=this.neg().divmod(n,a),a!=="mod"&&(c=g.div.neg()),a!=="div"&&(C=g.mod.neg(),h&&C.negative!==0&&C.iadd(n)),{div:c,mod:C}):this.negative===0&&n.negative!==0?(g=this.divmod(n.neg(),a),a!=="mod"&&(c=g.div.neg()),{div:c,mod:g.mod}):this.negative&n.negative?(g=this.neg().divmod(n.neg(),a),a!=="div"&&(C=g.mod.neg(),h&&C.negative!==0&&C.isub(n)),{div:g.div,mod:C}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modrn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modrn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var h=a.div.negative!==0?a.mod.isub(n):a.mod,c=n.ushrn(1),C=n.andln(1),g=h.cmp(c);return g<0||C===1&&g===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modrn=function(n){var a=n<0;a&&(n=-n),f(n<=67108863);for(var h=(1<<26)%n,c=0,C=this.length-1;C>=0;C--)c=(h*c+(this.words[C]|0))%n;return a?-c:c},r.prototype.modn=function(n){return this.modrn(n)},r.prototype.idivn=function(n){var a=n<0;a&&(n=-n),f(n<=67108863);for(var h=0,c=this.length-1;c>=0;c--){var C=(this.words[c]|0)+h*67108864;this.words[c]=C/n|0,h=C%n}return this._strip(),a?this.ineg():this},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){f(n.negative===0),f(!n.isZero());var a=this,h=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var c=new r(1),C=new r(0),g=new r(0),t=new r(1),u=0;a.isEven()&&h.isEven();)a.iushrn(1),h.iushrn(1),++u;for(var b=h.clone(),R=a.clone();!a.isZero();){for(var T=0,V=1;!(a.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(a.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(b),C.isub(R)),c.iushrn(1),C.iushrn(1);for(var P=0,F=1;!(h.words[0]&F)&&P<26;++P,F<<=1);if(P>0)for(h.iushrn(P);P-- >0;)(g.isOdd()||t.isOdd())&&(g.iadd(b),t.isub(R)),g.iushrn(1),t.iushrn(1);a.cmp(h)>=0?(a.isub(h),c.isub(g),C.isub(t)):(h.isub(a),g.isub(c),t.isub(C))}return{a:g,b:t,gcd:h.iushln(u)}},r.prototype._invmp=function(n){f(n.negative===0),f(!n.isZero());var a=this,h=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var c=new r(1),C=new r(0),g=h.clone();a.cmpn(1)>0&&h.cmpn(1)>0;){for(var t=0,u=1;!(a.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(a.iushrn(t);t-- >0;)c.isOdd()&&c.iadd(g),c.iushrn(1);for(var b=0,R=1;!(h.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(h.iushrn(b);b-- >0;)C.isOdd()&&C.iadd(g),C.iushrn(1);a.cmp(h)>=0?(a.isub(h),c.isub(C)):(h.isub(a),C.isub(c))}var T;return a.cmpn(1)===0?T=c:T=C,T.cmpn(0)<0&&T.iadd(n),T},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),h=n.clone();a.negative=0,h.negative=0;for(var c=0;a.isEven()&&h.isEven();c++)a.iushrn(1),h.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;h.isEven();)h.iushrn(1);var C=a.cmp(h);if(C<0){var g=a;a=h,h=g}else if(C===0||h.cmpn(1)===0)break;a.isub(h)}while(!0);return h.iushln(c)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){f(typeof n=="number");var a=n%26,h=(n-a)/26,c=1<>>26,t&=67108863,this.words[g]=t}return C!==0&&(this.words[g]=C,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this._strip();var h;if(this.length>1)h=1;else{a&&(n=-n),f(n<=67108863,"Number is too big");var c=this.words[0]|0;h=c===n?0:cn.length)return 1;if(this.length=0;h--){var c=this.words[h]|0,C=n.words[h]|0;if(c!==C){cC&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new E(n)},r.prototype.toRed=function(n){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return f(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return f(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var L={k256:null,p224:null,p192:null,p25519:null};function j(A,n){this.name=A,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}j.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},j.prototype.ireduce=function(n){var a=n,h;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),h=a.bitLength();while(h>this.n);var c=h0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},j.prototype.split=function(n,a){n.iushrn(this.n,0,a)},j.prototype.imulK=function(n){return n.imul(this.k)};function re(){j.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(re,j),re.prototype.split=function(n,a){for(var h=4194303,c=Math.min(n.length,9),C=0;C>>22,g=t}g>>>=22,n.words[C-10]=g,g===0&&n.length>10?n.length-=10:n.length-=9},re.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,h=0;h>>=26,n.words[h]=C,a=c}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(L[n])return L[n];var a;if(n==="k256")a=new re;else if(n==="p224")a=new Z;else if(n==="p192")a=new J;else if(n==="p25519")a=new Ae;else throw new Error("Unknown prime "+n);return L[n]=a,a};function E(A){if(typeof A=="string"){var n=r._prime(A);this.m=n.p,this.prime=n}else f(A.gtn(1),"modulus must be greater than 1"),this.m=A,this.prime=null}E.prototype._verify1=function(n){f(n.negative===0,"red works only with positives"),f(n.red,"red works only with red numbers")},E.prototype._verify2=function(n,a){f((n.negative|a.negative)===0,"red works only with positives"),f(n.red&&n.red===a.red,"red works only with red numbers")},E.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):(d(n,n.umod(this.m)._forceRed(this)),n)},E.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},E.prototype.add=function(n,a){this._verify2(n,a);var h=n.add(a);return h.cmp(this.m)>=0&&h.isub(this.m),h._forceRed(this)},E.prototype.iadd=function(n,a){this._verify2(n,a);var h=n.iadd(a);return h.cmp(this.m)>=0&&h.isub(this.m),h},E.prototype.sub=function(n,a){this._verify2(n,a);var h=n.sub(a);return h.cmpn(0)<0&&h.iadd(this.m),h._forceRed(this)},E.prototype.isub=function(n,a){this._verify2(n,a);var h=n.isub(a);return h.cmpn(0)<0&&h.iadd(this.m),h},E.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},E.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},E.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},E.prototype.isqr=function(n){return this.imul(n,n.clone())},E.prototype.sqr=function(n){return this.mul(n,n)},E.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(f(a%2===1),a===3){var h=this.m.add(new r(1)).iushrn(2);return this.pow(n,h)}for(var c=this.m.subn(1),C=0;!c.isZero()&&c.andln(1)===0;)C++,c.iushrn(1);f(!c.isZero());var g=new r(1).toRed(this),t=g.redNeg(),u=this.m.subn(1).iushrn(1),b=this.m.bitLength();for(b=new r(2*b*b).toRed(this);this.pow(b,u).cmp(t)!==0;)b.redIAdd(t);for(var R=this.pow(b,c),T=this.pow(n,c.addn(1).iushrn(1)),V=this.pow(n,c),P=C;V.cmp(g)!==0;){for(var F=V,Y=0;F.cmp(g)!==0;Y++)F=F.redSqr();f(Y=0;C--){for(var R=a.words[C],T=b-1;T>=0;T--){var V=R>>T&1;if(g!==c[0]&&(g=this.sqr(g)),V===0&&t===0){u=0;continue}t<<=1,t|=V,u++,!(u!==h&&(C!==0||T!==0))&&(g=this.mul(g,c[t]),u=0,t=0)}b=26}return g},E.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},E.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new e(n)};function e(A){E.call(this,A),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(e,E),e.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},e.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},e.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var h=n.imul(a),c=h.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),C=h.isub(c).iushrn(this.shift),g=C;return C.cmp(this.m)>=0?g=C.isub(this.m):C.cmpn(0)<0&&(g=C.iadd(this.m)),g._forceRed(this)},e.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var h=n.mul(a),c=h.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),C=h.isub(c).iushrn(this.shift),g=C;return C.cmp(this.m)>=0?g=C.isub(this.m):C.cmpn(0)<0&&(g=C.iadd(this.m)),g._forceRed(this)},e.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(o,Bce)}(KC)),KC.exports}var S1,wL;function Kk(){if(wL)return S1;wL=1;var o=Pl(),i=$g();function s(r){var B=f(r),I=B.toRed(o.mont(r.modulus)).redPow(new o(r.publicExponent)).fromRed();return{blinder:I,unblinder:B.invm(r.modulus)}}function f(r){var B=r.modulus.byteLength(),I;do I=new o(i(B));while(I.cmp(r.modulus)>=0||!I.umod(r.prime1)||!I.umod(r.prime2));return I}function l(r,B){var I=s(B),p=B.modulus.byteLength(),Q=new o(r).mul(I.blinder).umod(B.modulus),d=Q.toRed(o.mont(B.prime1)),y=Q.toRed(o.mont(B.prime2)),v=B.coefficient,w=B.prime1,M=B.prime2,m=d.redPow(B.exponent1).fromRed(),x=y.redPow(B.exponent2).fromRed(),D=m.isub(x).imul(v).umod(w).imul(M);return x.iadd(D).imul(I.unblinder).umod(B.modulus).toArrayLike(Buffer,"be",p)}return l.getr=f,S1=l,S1}var Kn={},x1={},FC={exports:{}},Cce=FC.exports,mL;function Ece(){return mL||(mL=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,Cce)}(FC)),FC.exports}var R1={},ML;function pce(){return ML||(ML=1,function(o){var i=Ol(),s=fA(),f=o;f.define=function(B,I){return new l(B,I)};function l(r,B){this.name=r,this.body=B,this.decoders={},this.encoders={}}l.prototype._createNamed=function(B){var I;try{I=tA.runInThisContext("(function "+this.name+`(entity) { - this._initNamed(entity); -})`)}catch{I=function(Q){this._initNamed(Q)}}return s(I,B),I.prototype._initNamed=function(Q){B.call(this,Q)},new I(this)},l.prototype._getDecoder=function(B){return B=B||"der",this.decoders.hasOwnProperty(B)||(this.decoders[B]=this._createNamed(i.decoders[B])),this.decoders[B]},l.prototype.decode=function(B,I,p){return this._getDecoder(I).decode(B,p)},l.prototype._getEncoder=function(B){return B=B||"der",this.encoders.hasOwnProperty(B)||(this.encoders[B]=this._createNamed(i.encoders[B])),this.encoders[B]},l.prototype.encode=function(B,I,p){return this._getEncoder(I).encode(B,p)}}(R1)),R1}var k1={},N1={},bL;function Qce(){if(bL)return N1;bL=1;var o=fA();function i(f){this._reporterState={obj:null,path:[],options:f||{},errors:[]}}N1.Reporter=i,i.prototype.isError=function(l){return l instanceof s},i.prototype.save=function(){var l=this._reporterState;return{obj:l.obj,pathLen:l.path.length}},i.prototype.restore=function(l){var r=this._reporterState;r.obj=l.obj,r.path=r.path.slice(0,l.pathLen)},i.prototype.enterKey=function(l){return this._reporterState.path.push(l)},i.prototype.exitKey=function(l){var r=this._reporterState;r.path=r.path.slice(0,l-1)},i.prototype.leaveKey=function(l,r,B){var I=this._reporterState;this.exitKey(l),I.obj!==null&&(I.obj[r]=B)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){var l=this._reporterState,r=l.obj;return l.obj={},r},i.prototype.leaveObject=function(l){var r=this._reporterState,B=r.obj;return r.obj=l,B},i.prototype.error=function(l){var r,B=this._reporterState,I=l instanceof s;if(I?r=l:r=new s(B.path.map(function(p){return"["+JSON.stringify(p)+"]"}).join(""),l.message||l,l.stack),!B.options.partial)throw r;return I||B.errors.push(r),r},i.prototype.wrapResult=function(l){var r=this._reporterState;return r.options.partial?{result:this.isError(l)?null:l,errors:r.errors}:l};function s(f,l){this.path=f,this.rethrow(l)}return o(s,Error),s.prototype.rethrow=function(l){if(this.message=l+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,s),!this.stack)try{throw new Error(this.message)}catch(r){this.stack=r.stack}return this},N1}var tB={},DL;function SL(){if(DL)return tB;DL=1;var o=fA(),i=Lc().Reporter,s=jo().Buffer;function f(r,B){if(i.call(this,B),!s.isBuffer(r)){this.error("Input not Buffer");return}this.base=r,this.offset=0,this.length=r.length}o(f,i),tB.DecoderBuffer=f,f.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},f.prototype.restore=function(B){var I=new f(this.base);return I.offset=B.offset,I.length=this.offset,this.offset=B.offset,i.prototype.restore.call(this,B.reporter),I},f.prototype.isEmpty=function(){return this.offset===this.length},f.prototype.readUInt8=function(B){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(B||"DecoderBuffer overrun")},f.prototype.skip=function(B,I){if(!(this.offset+B<=this.length))return this.error(I||"DecoderBuffer overrun");var p=new f(this.base);return p._reporterState=this._reporterState,p.offset=this.offset,p.length=this.offset+B,this.offset+=B,p},f.prototype.raw=function(B){return this.base.slice(B?B.offset:this.offset,this.length)};function l(r,B){if(Array.isArray(r))this.length=0,this.value=r.map(function(I){return I instanceof l||(I=new l(I,B)),this.length+=I.length,I},this);else if(typeof r=="number"){if(!(0<=r&&r<=255))return B.error("non-byte EncoderBuffer value");this.value=r,this.length=1}else if(typeof r=="string")this.value=r,this.length=s.byteLength(r);else if(s.isBuffer(r))this.value=r,this.length=r.length;else return B.error("Unsupported type: "+typeof r)}return tB.EncoderBuffer=l,l.prototype.join=function(B,I){return B||(B=new s(this.length)),I||(I=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(p){p.join(B,I),I+=p.length}):(typeof this.value=="number"?B[I]=this.value:typeof this.value=="string"?B.write(this.value,I):s.isBuffer(this.value)&&this.value.copy(B,I),I+=this.length)),B},tB}var _1,xL;function yce(){if(xL)return _1;xL=1;var o=Lc().Reporter,i=Lc().EncoderBuffer,s=Lc().DecoderBuffer,f=co(),l=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],r=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(l),B=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function I(Q,d){var y={};this._baseState=y,y.enc=Q,y.parent=d||null,y.children=null,y.tag=null,y.args=null,y.reverseArgs=null,y.choice=null,y.optional=!1,y.any=!1,y.obj=!1,y.use=null,y.useDecoder=null,y.key=null,y.default=null,y.explicit=null,y.implicit=null,y.contains=null,y.parent||(y.children=[],this._wrap())}_1=I;var p=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];return I.prototype.clone=function(){var d=this._baseState,y={};p.forEach(function(w){y[w]=d[w]});var v=new this.constructor(y.parent);return v._baseState=y,v},I.prototype._wrap=function(){var d=this._baseState;r.forEach(function(y){this[y]=function(){var w=new this.constructor(this);return d.children.push(w),w[y].apply(w,arguments)}},this)},I.prototype._init=function(d){var y=this._baseState;f(y.parent===null),d.call(this),y.children=y.children.filter(function(v){return v._baseState.parent===this},this),f.equal(y.children.length,1,"Root node can have only one child")},I.prototype._useArgs=function(d){var y=this._baseState,v=d.filter(function(w){return w instanceof this.constructor},this);d=d.filter(function(w){return!(w instanceof this.constructor)},this),v.length!==0&&(f(y.children===null),y.children=v,v.forEach(function(w){w._baseState.parent=this},this)),d.length!==0&&(f(y.args===null),y.args=d,y.reverseArgs=d.map(function(w){if(typeof w!="object"||w.constructor!==Object)return w;var M={};return Object.keys(w).forEach(function(m){m==(m|0)&&(m|=0);var x=w[m];M[x]=m}),M}))},B.forEach(function(Q){I.prototype[Q]=function(){var y=this._baseState;throw new Error(Q+" not implemented for encoding: "+y.enc)}}),l.forEach(function(Q){I.prototype[Q]=function(){var y=this._baseState,v=Array.prototype.slice.call(arguments);return f(y.tag===null),y.tag=Q,this._useArgs(v),this}}),I.prototype.use=function(d){f(d);var y=this._baseState;return f(y.use===null),y.use=d,this},I.prototype.optional=function(){var d=this._baseState;return d.optional=!0,this},I.prototype.def=function(d){var y=this._baseState;return f(y.default===null),y.default=d,y.optional=!0,this},I.prototype.explicit=function(d){var y=this._baseState;return f(y.explicit===null&&y.implicit===null),y.explicit=d,this},I.prototype.implicit=function(d){var y=this._baseState;return f(y.explicit===null&&y.implicit===null),y.implicit=d,this},I.prototype.obj=function(){var d=this._baseState,y=Array.prototype.slice.call(arguments);return d.obj=!0,y.length!==0&&this._useArgs(y),this},I.prototype.key=function(d){var y=this._baseState;return f(y.key===null),y.key=d,this},I.prototype.any=function(){var d=this._baseState;return d.any=!0,this},I.prototype.choice=function(d){var y=this._baseState;return f(y.choice===null),y.choice=d,this._useArgs(Object.keys(d).map(function(v){return d[v]})),this},I.prototype.contains=function(d){var y=this._baseState;return f(y.use===null),y.contains=d,this},I.prototype._decode=function(d,y){var v=this._baseState;if(v.parent===null)return d.wrapResult(v.children[0]._decode(d,y));var w=v.default,M=!0,m=null;if(v.key!==null&&(m=d.enterKey(v.key)),v.optional){var x=null;if(v.explicit!==null?x=v.explicit:v.implicit!==null?x=v.implicit:v.tag!==null&&(x=v.tag),x===null&&!v.any){var D=d.save();try{v.choice===null?this._decodeGeneric(v.tag,d,y):this._decodeChoice(d,y),M=!0}catch{M=!1}d.restore(D)}else if(M=this._peekTag(d,x,v.any),d.isError(M))return M}var S;if(v.obj&&M&&(S=d.enterObject()),M){if(v.explicit!==null){var K=this._decodeTag(d,v.explicit);if(d.isError(K))return K;d=K}var N=d.offset;if(v.use===null&&v.choice===null){if(v.any)var D=d.save();var L=this._decodeTag(d,v.implicit!==null?v.implicit:v.tag,v.any);if(d.isError(L))return L;v.any?w=d.raw(D):d=L}if(y&&y.track&&v.tag!==null&&y.track(d.path(),N,d.length,"tagged"),y&&y.track&&v.tag!==null&&y.track(d.path(),d.offset,d.length,"content"),v.any?w=w:v.choice===null?w=this._decodeGeneric(v.tag,d,y):w=this._decodeChoice(d,y),d.isError(w))return w;if(!v.any&&v.choice===null&&v.children!==null&&v.children.forEach(function(Z){Z._decode(d,y)}),v.contains&&(v.tag==="octstr"||v.tag==="bitstr")){var j=new s(w);w=this._getUse(v.contains,d._reporterState.obj)._decode(j,y)}}return v.obj&&M&&(w=d.leaveObject(S)),v.key!==null&&(w!==null||M===!0)?d.leaveKey(m,v.key,w):m!==null&&d.exitKey(m),w},I.prototype._decodeGeneric=function(d,y,v){var w=this._baseState;return d==="seq"||d==="set"?null:d==="seqof"||d==="setof"?this._decodeList(y,d,w.args[0],v):/str$/.test(d)?this._decodeStr(y,d,v):d==="objid"&&w.args?this._decodeObjid(y,w.args[0],w.args[1],v):d==="objid"?this._decodeObjid(y,null,null,v):d==="gentime"||d==="utctime"?this._decodeTime(y,d,v):d==="null_"?this._decodeNull(y,v):d==="bool"?this._decodeBool(y,v):d==="objDesc"?this._decodeStr(y,d,v):d==="int"||d==="enum"?this._decodeInt(y,w.args&&w.args[0],v):w.use!==null?this._getUse(w.use,y._reporterState.obj)._decode(y,v):y.error("unknown tag: "+d)},I.prototype._getUse=function(d,y){var v=this._baseState;return v.useDecoder=this._use(d,y),f(v.useDecoder._baseState.parent===null),v.useDecoder=v.useDecoder._baseState.children[0],v.implicit!==v.useDecoder._baseState.implicit&&(v.useDecoder=v.useDecoder.clone(),v.useDecoder._baseState.implicit=v.implicit),v.useDecoder},I.prototype._decodeChoice=function(d,y){var v=this._baseState,w=null,M=!1;return Object.keys(v.choice).some(function(m){var x=d.save(),D=v.choice[m];try{var S=D._decode(d,y);if(d.isError(S))return!1;w={type:m,value:S},M=!0}catch{return d.restore(x),!1}return!0},this),M?w:d.error("Choice not matched")},I.prototype._createEncoderBuffer=function(d){return new i(d,this.reporter)},I.prototype._encode=function(d,y,v){var w=this._baseState;if(!(w.default!==null&&w.default===d)){var M=this._encodeValue(d,y,v);if(M!==void 0&&!this._skipDefault(M,y,v))return M}},I.prototype._encodeValue=function(d,y,v){var w=this._baseState;if(w.parent===null)return w.children[0]._encode(d,y||new o);var D=null;if(this.reporter=y,w.optional&&d===void 0)if(w.default!==null)d=w.default;else return;var M=null,m=!1;if(w.any)D=this._createEncoderBuffer(d);else if(w.choice)D=this._encodeChoice(d,y);else if(w.contains)M=this._getUse(w.contains,v)._encode(d,y),m=!0;else if(w.children)M=w.children.map(function(N){if(N._baseState.tag==="null_")return N._encode(null,y,d);if(N._baseState.key===null)return y.error("Child should have a key");var L=y.enterKey(N._baseState.key);if(typeof d!="object")return y.error("Child expected, but input is not object");var j=N._encode(d[N._baseState.key],y,d);return y.leaveKey(L),j},this).filter(function(N){return N}),M=this._createEncoderBuffer(M);else if(w.tag==="seqof"||w.tag==="setof"){if(!(w.args&&w.args.length===1))return y.error("Too many args for : "+w.tag);if(!Array.isArray(d))return y.error("seqof/setof, but data is not Array");var x=this.clone();x._baseState.implicit=null,M=this._createEncoderBuffer(d.map(function(N){var L=this._baseState;return this._getUse(L.args[0],d)._encode(N,y)},x))}else w.use!==null?D=this._getUse(w.use,v)._encode(d,y):(M=this._encodePrimitive(w.tag,d),m=!0);var D;if(!w.any&&w.choice===null){var S=w.implicit!==null?w.implicit:w.tag,K=w.implicit===null?"universal":"context";S===null?w.use===null&&y.error("Tag could be omitted only for .use()"):w.use===null&&(D=this._encodeComposite(S,m,K,M))}return w.explicit!==null&&(D=this._encodeComposite(w.explicit,!1,"context",D)),D},I.prototype._encodeChoice=function(d,y){var v=this._baseState,w=v.choice[d.type];return w||f(!1,d.type+" not found in "+JSON.stringify(Object.keys(v.choice))),w._encode(d.value,y)},I.prototype._encodePrimitive=function(d,y){var v=this._baseState;if(/str$/.test(d))return this._encodeStr(y,d);if(d==="objid"&&v.args)return this._encodeObjid(y,v.reverseArgs[0],v.args[1]);if(d==="objid")return this._encodeObjid(y,null,null);if(d==="gentime"||d==="utctime")return this._encodeTime(y,d);if(d==="null_")return this._encodeNull();if(d==="int"||d==="enum")return this._encodeInt(y,v.args&&v.reverseArgs[0]);if(d==="bool")return this._encodeBool(y);if(d==="objDesc")return this._encodeStr(y,d);throw new Error("Unsupported tag: "+d)},I.prototype._isNumstr=function(d){return/^[0-9 ]*$/.test(d)},I.prototype._isPrintstr=function(d){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(d)},_1}var RL;function Lc(){return RL||(RL=1,function(o){var i=o;i.Reporter=Qce().Reporter,i.DecoderBuffer=SL().DecoderBuffer,i.EncoderBuffer=SL().EncoderBuffer,i.Node=yce()}(k1)),k1}var K1={},F1={},kL;function vce(){return kL||(kL=1,function(o){var i=Yee();o.tagClass={0:"universal",1:"application",2:"context",3:"private"},o.tagClassByName=i._reverse(o.tagClass),o.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},o.tagByName=i._reverse(o.tag)}(F1)),F1}var NL;function Yee(){return NL||(NL=1,function(o){var i=o;i._reverse=function(f){var l={};return Object.keys(f).forEach(function(r){(r|0)==r&&(r=r|0);var B=f[r];l[B]=r}),l},i.der=vce()}(K1)),K1}var G1={},L1,_L;function Jee(){if(_L)return L1;_L=1;var o=fA(),i=Ol(),s=i.base,f=i.bignum,l=i.constants.der;function r(Q){this.enc="der",this.name=Q.name,this.entity=Q,this.tree=new B,this.tree._init(Q.body)}L1=r,r.prototype.decode=function(d,y){return d instanceof s.DecoderBuffer||(d=new s.DecoderBuffer(d,y)),this.tree._decode(d,y)};function B(Q){s.Node.call(this,"der",Q)}o(B,s.Node),B.prototype._peekTag=function(d,y,v){if(d.isEmpty())return!1;var w=d.save(),M=I(d,'Failed to peek tag: "'+y+'"');return d.isError(M)?M:(d.restore(w),M.tag===y||M.tagStr===y||M.tagStr+"of"===y||v)},B.prototype._decodeTag=function(d,y,v){var w=I(d,'Failed to decode tag of "'+y+'"');if(d.isError(w))return w;var M=p(d,w.primitive,'Failed to get length of "'+y+'"');if(d.isError(M))return M;if(!v&&w.tag!==y&&w.tagStr!==y&&w.tagStr+"of"!==y)return d.error('Failed to match tag: "'+y+'"');if(w.primitive||M!==null)return d.skip(M,'Failed to match body of: "'+y+'"');var m=d.save(),x=this._skipUntilEnd(d,'Failed to skip indefinite length body: "'+this.tag+'"');return d.isError(x)?x:(M=d.offset-m.offset,d.restore(m),d.skip(M,'Failed to match body of: "'+y+'"'))},B.prototype._skipUntilEnd=function(d,y){for(;;){var v=I(d,y);if(d.isError(v))return v;var w=p(d,v.primitive,y);if(d.isError(w))return w;var M;if(v.primitive||w!==null?M=d.skip(w):M=this._skipUntilEnd(d,y),d.isError(M))return M;if(v.tagStr==="end")break}},B.prototype._decodeList=function(d,y,v,w){for(var M=[];!d.isEmpty();){var m=this._peekTag(d,"end");if(d.isError(m))return m;var x=v.decode(d,"der",w);if(d.isError(x)&&m)break;M.push(x)}return M},B.prototype._decodeStr=function(d,y){if(y==="bitstr"){var v=d.readUInt8();return d.isError(v)?v:{unused:v,data:d.raw()}}else if(y==="bmpstr"){var w=d.raw();if(w.length%2===1)return d.error("Decoding of string type: bmpstr length mismatch");for(var M="",m=0;m>6],w=(y&32)===0;if((y&31)===31){var M=y;for(y=0;(M&128)===128;){if(M=Q.readUInt8(d),Q.isError(M))return M;y<<=7,y|=M&127}}else y&=31;var m=l.tag[y];return{cls:v,primitive:w,tag:y,tagStr:m}}function p(Q,d,y){var v=Q.readUInt8(y);if(Q.isError(v))return v;if(!d&&v===128)return null;if(!(v&128))return v;var w=v&127;if(w>4)return Q.error("length octect is too long");v=0;for(var M=0;M=256;x>>=8)m++;var D=new i(2+m);D[0]=M,D[1]=128|m;for(var x=1+m,S=w.length;S>0;x--,S>>=8)D[x]=S&255;return this._createEncoderBuffer([D,w])},B.prototype._encodeStr=function(d,y){if(y==="bitstr")return this._createEncoderBuffer([d.unused|0,d.data]);if(y==="bmpstr"){for(var v=new i(d.length*2),w=0;w=40)return this.reporter.error("Second objid identifier OOB");d.splice(0,2,d[0]*40+d[1])}for(var M=0,w=0;w=128;m>>=7)M++}for(var x=new i(M),D=x.length-1,w=d.length-1;w>=0;w--){var m=d[w];for(x[D--]=m&127;(m>>=7)>0;)x[D--]=128|m&127}return this._createEncoderBuffer(x)};function I(Q){return Q<10?"0"+Q:Q}B.prototype._encodeTime=function(d,y){var v,w=new Date(d);return y==="gentime"?v=[I(w.getFullYear()),I(w.getUTCMonth()+1),I(w.getUTCDate()),I(w.getUTCHours()),I(w.getUTCMinutes()),I(w.getUTCSeconds()),"Z"].join(""):y==="utctime"?v=[I(w.getFullYear()%100),I(w.getUTCMonth()+1),I(w.getUTCDate()),I(w.getUTCHours()),I(w.getUTCMinutes()),I(w.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+y+" time is not supported yet"),this._encodeStr(v,"octstr")},B.prototype._encodeNull=function(){return this._createEncoderBuffer("")},B.prototype._encodeInt=function(d,y){if(typeof d=="string"){if(!y)return this.reporter.error("String int or enum given, but no values map");if(!y.hasOwnProperty(d))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(d));d=y[d]}if(typeof d!="number"&&!i.isBuffer(d)){var v=d.toArray();!d.sign&&v[0]&128&&v.unshift(0),d=new i(v)}if(i.isBuffer(d)){var w=d.length;d.length===0&&w++;var m=new i(w);return d.copy(m),d.length===0&&(m[0]=0),this._createEncoderBuffer(m)}if(d<128)return this._createEncoderBuffer(d);if(d<256)return this._createEncoderBuffer([0,d]);for(var w=1,M=d;M>=256;M>>=8)w++;for(var m=new Array(w),M=m.length-1;M>=0;M--)m[M]=d&255,d>>=8;return m[0]&128&&m.unshift(0),this._createEncoderBuffer(new i(m))},B.prototype._encodeBool=function(d){return this._createEncoderBuffer(d?255:0)},B.prototype._use=function(d,y){return typeof d=="function"&&(d=d(y)),d._getEncoder("der").tree},B.prototype._skipDefault=function(d,y,v){var w=this._baseState,M;if(w.default===null)return!1;var m=d.join();if(w.defaultBuffer===void 0&&(w.defaultBuffer=this._encodeValue(w.default,y,v).join()),m.length!==w.defaultBuffer.length)return!1;for(M=0;M=31?v.error("Multi-octet tag encoding unsupported"):(d||(w|=32),w|=l.tagClassByName[y||"universal"]<<6,w)}return H1}var T1,LL;function Mce(){if(LL)return T1;LL=1;var o=fA(),i=Pee();function s(f){i.call(this,f),this.enc="pem"}return o(s,i),T1=s,s.prototype.encode=function(l,r){for(var B=i.prototype.encode.call(this,l),I=B.toString("base64"),p=["-----BEGIN "+r.label+"-----"],Q=0;Q0&&K.ishrn(N),K}function M(D,S){D=w(D,S),D=D.mod(S);var K=o.from(D.toArray());if(K.length=0)throw new Error("invalid sig")}return O1=r,O1}var j1,jL;function _ce(){if(jL)return j1;jL=1;var o=xA().Buffer,i=Tl(),s=Ice(),f=fA(),l=kce(),r=Nce(),B=vee;Object.keys(B).forEach(function(y){B[y].id=o.from(B[y].id,"hex"),B[y.toLowerCase()]=B[y]});function I(y){s.Writable.call(this);var v=B[y];if(!v)throw new Error("Unknown message digest");this._hashType=v.hash,this._hash=i(v.hash),this._tag=v.id,this._signType=v.sign}f(I,s.Writable),I.prototype._write=function(v,w,M){this._hash.update(v),M()},I.prototype.update=function(v,w){return this._hash.update(typeof v=="string"?o.from(v,w):v),this},I.prototype.sign=function(v,w){this.end();var M=this._hash.digest(),m=l(M,v,this._hashType,this._signType,this._tag);return w?m.toString(w):m};function p(y){s.Writable.call(this);var v=B[y];if(!v)throw new Error("Unknown message digest");this._hash=i(v.hash),this._tag=v.id,this._signType=v.sign}f(p,s.Writable),p.prototype._write=function(v,w,M){this._hash.update(v),M()},p.prototype.update=function(v,w){return this._hash.update(typeof v=="string"?o.from(v,w):v),this},p.prototype.verify=function(v,w,M){var m=typeof w=="string"?o.from(w,M):w;this.end();var x=this._hash.digest();return r(m,x,v,this._signType,this._tag)};function Q(y){return new I(y)}function d(y){return new p(y)}return j1={Sign:Q,Verify:d,createSign:Q,createVerify:d},j1}var GC={exports:{}},Kce=GC.exports,WL;function Fce(){return WL||(WL=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,Kce)}(GC)),GC.exports}var W1,VL;function Gce(){if(VL)return W1;VL=1;var o=Xp(),i=Fce();W1=function(B){return new f(B)};var s={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};s.p224=s.secp224r1,s.p256=s.secp256r1=s.prime256v1,s.p192=s.secp192r1=s.prime192v1,s.p384=s.secp384r1,s.p521=s.secp521r1;function f(r){this.curveType=s[r],this.curveType||(this.curveType={name:r}),this.curve=new o.ec(this.curveType.name),this.keys=void 0}f.prototype.generateKeys=function(r,B){return this.keys=this.curve.genKeyPair(),this.getPublicKey(r,B)},f.prototype.computeSecret=function(r,B,I){B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B));var p=this.curve.keyFromPublic(r).getPublic(),Q=p.mul(this.keys.getPrivate()).getX();return l(Q,I,this.curveType.byteLength)},f.prototype.getPublicKey=function(r,B){var I=this.keys.getPublic(B==="compressed",!0);return B==="hybrid"&&(I[I.length-1]%2?I[0]=7:I[0]=6),l(I,r)},f.prototype.getPrivateKey=function(r){return l(this.keys.getPrivate(),r)},f.prototype.setPublicKey=function(r,B){return B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B)),this.keys._importPublic(r),this},f.prototype.setPrivateKey=function(r,B){B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B));var I=new i(r);return I=I.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(I),this};function l(r,B,I){Array.isArray(r)||(r=r.toArray());var p=new Buffer(r);if(I&&p.length0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,Lce)}(LC)),LC.exports}var $1,XL;function Vee(){if(XL)return $1;XL=1;var o=Fk(),i=xA().Buffer;function s(f,l){return i.from(f.toRed(o.mont(l.modulus)).redPow(new o(l.publicExponent)).fromRed().toArray())}return $1=s,$1}var X1,e7;function Uce(){if(e7)return X1;e7=1;var o=zp(),i=$g(),s=Tl(),f=jee(),l=Wee(),r=Fk(),B=Vee(),I=Kk(),p=xA().Buffer;X1=function(w,M,m){var x;w.padding?x=w.padding:m?x=1:x=4;var D=o(w),S;if(x===4)S=Q(D,M);else if(x===1)S=d(D,M,m);else if(x===3){if(S=new r(M),S.cmp(D.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return m?I(S,D):B(S,D)};function Q(v,w){var M=v.modulus.byteLength(),m=w.length,x=s("sha1").update(p.alloc(0)).digest(),D=x.length,S=2*D;if(m>M-S-2)throw new Error("message too long");var K=p.alloc(M-m-S-2),N=M-D-1,L=i(D),j=l(p.concat([x,K,p.alloc(1,1),w],N),f(L,N)),re=l(L,f(j,D));return new r(p.concat([p.alloc(1),re,j],M))}function d(v,w,M){var m=w.length,x=v.modulus.byteLength();if(m>x-11)throw new Error("message too long");var D;return M?D=p.alloc(x-m-3,255):D=y(x-m-3),new r(p.concat([p.from([0,M?1:2]),D,p.alloc(1),w],x))}function y(v){for(var w=p.allocUnsafe(v),M=0,m=i(v*2),x=0,D;MD||new f(w).cmp(x.modulus)>=0)throw new Error("decryption error");var S;M?S=B(new f(w),x):S=l(w,x);var K=I.alloc(D-S.length);if(S=I.concat([K,S],D),m===4)return p(x,S);if(m===1)return Q(x,S,M);if(m===3)return S;throw new Error("unknown padding")};function p(y,v){var w=y.modulus.byteLength(),M=r("sha1").update(I.alloc(0)).digest(),m=M.length;if(v[0]!==0)throw new Error("decryption error");var x=v.slice(1,m+1),D=v.slice(m+1),S=s(x,i(D,m)),K=s(D,i(S,w-m-1));if(d(M,K.slice(0,m)))throw new Error("decryption error");for(var N=m;K[N]===0;)N++;if(K[N++]!==1)throw new Error("decryption error");return K.slice(N)}function Q(y,v,w){for(var M=v.slice(0,2),m=2,x=0;v[m++]!==0;)if(m>=v.length){x++;break}var D=v.slice(2,m-1);if((M.toString("hex")!=="0002"&&!w||M.toString("hex")!=="0001"&&w)&&x++,D.length<8&&x++,x)throw new Error("decryption error");return v.slice(m)}function d(y,v){y=I.from(y),v=I.from(v);var w=0,M=y.length;y.length!==v.length&&(w++,M=Math.min(y.length,v.length));for(var m=-1;++mB||v<0)throw new TypeError("offset must be a uint32");if(v>l||v>w)throw new RangeError("offset out of range")}function p(v,w,M){if(typeof v!="number"||v!==v)throw new TypeError("size must be a number");if(v>B||v<0)throw new TypeError("size must be a uint32");if(v+w>M||v>l)throw new RangeError("buffer too small")}r&&r.getRandomValues||!process.browser?(S0.randomFill=Q,S0.randomFillSync=y):(S0.randomFill=o,S0.randomFillSync=o);function Q(v,w,M,m){if(!f.isBuffer(v)&&!(v instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof w=="function")m=w,w=0,M=v.length;else if(typeof M=="function")m=M,M=v.length-w;else if(typeof m!="function")throw new TypeError('"cb" argument must be a function');return I(w,v.length),p(M,w,v.length),d(v,w,M,m)}function d(v,w,M,m){if(process.browser){var x=v.buffer,D=new Uint8Array(x,w,M);if(r.getRandomValues(D),m){process.nextTick(function(){m(null,v)});return}return v}if(m){s(M,function(K,N){if(K)return m(K);N.copy(v,w),m(null,v)});return}var S=s(M);return S.copy(v,w),v}function y(v,w,M){if(typeof w>"u"&&(w=0),!f.isBuffer(v)&&!(v instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return I(w,v.length),M===void 0&&(M=v.length-w),p(M,w,v.length),d(v,w,M)}return S0}var i7;function Zee(){if(i7)return dA;i7=1,dA.randomBytes=dA.rng=dA.pseudoRandomBytes=dA.prng=$g(),dA.createHash=dA.Hash=Tl(),dA.createHmac=dA.Hmac=yee();var o=Nue(),i=Object.keys(o),s=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);dA.getHashes=function(){return s};var f=Dee();dA.pbkdf2=f.pbkdf2,dA.pbkdf2Sync=f.pbkdf2Sync;var l=$ue();dA.Cipher=l.Cipher,dA.createCipher=l.createCipher,dA.Cipheriv=l.Cipheriv,dA.createCipheriv=l.createCipheriv,dA.Decipher=l.Decipher,dA.createDecipher=l.createDecipher,dA.Decipheriv=l.Decipheriv,dA.createDecipheriv=l.createDecipheriv,dA.getCiphers=l.getCiphers,dA.listCiphers=l.listCiphers;var r=uce();dA.DiffieHellmanGroup=r.DiffieHellmanGroup,dA.createDiffieHellmanGroup=r.createDiffieHellmanGroup,dA.getDiffieHellman=r.getDiffieHellman,dA.createDiffieHellman=r.createDiffieHellman,dA.DiffieHellman=r.DiffieHellman;var B=_ce();dA.createSign=B.createSign,dA.Sign=B.Sign,dA.createVerify=B.createVerify,dA.Verify=B.Verify,dA.createECDH=Gce();var I=Hce();dA.publicEncrypt=I.publicEncrypt,dA.privateEncrypt=I.privateEncrypt,dA.publicDecrypt=I.publicDecrypt,dA.privateDecrypt=I.privateDecrypt;var p=Tce();return dA.randomFill=p.randomFill,dA.randomFillSync=p.randomFillSync,dA.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` -`))},dA.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},dA}var n7;function Gk(){if(n7)return HI.exports;n7=1;var o;HI.exports=function(l){return o||(o=new i(null)),o.generate(l)};function i(f){this.rand=f}if(HI.exports.Rand=i,i.prototype.generate=function(l){return this._rand(l)},i.prototype._rand=function(l){if(this.rand.getBytes)return this.rand.getBytes(l);for(var r=new Uint8Array(l),B=0;B0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}Am=r,r.prototype.point=function(){throw new Error("Not implemented")},r.prototype.validate=function(){throw new Error("Not implemented")},r.prototype._fixedNafMul=function(p,Q){l(p.precomputed);var d=p._getDoubles(),y=s(Q,1,this._bitLength),v=(1<=M;x--)m=(m<<1)+y[x];w.push(m)}for(var D=this.jpoint(null,null,null),S=this.jpoint(null,null,null),K=v;K>0;K--){for(M=0;M=0;m--){for(var x=0;m>=0&&w[m]===0;m--)x++;if(m>=0&&x++,M=M.dblp(x),m<0)break;var D=w[m];l(D!==0),p.type==="affine"?D>0?M=M.mixedAdd(v[D-1>>1]):M=M.mixedAdd(v[-D-1>>1].neg()):D>0?M=M.add(v[D-1>>1]):M=M.add(v[-D-1>>1].neg())}return p.type==="affine"?M.toP():M},r.prototype._wnafMulAdd=function(p,Q,d,y,v){var w=this._wnafT1,M=this._wnafT2,m=this._wnafT3,x=0,D,S,K;for(D=0;D=1;D-=2){var L=D-1,j=D;if(w[L]!==1||w[j]!==1){m[L]=s(d[L],w[L],this._bitLength),m[j]=s(d[j],w[j],this._bitLength),x=Math.max(m[L].length,x),x=Math.max(m[j].length,x);continue}var re=[Q[L],null,null,Q[j]];Q[L].y.cmp(Q[j].y)===0?(re[1]=Q[L].add(Q[j]),re[2]=Q[L].toJ().mixedAdd(Q[j].neg())):Q[L].y.cmp(Q[j].y.redNeg())===0?(re[1]=Q[L].toJ().mixedAdd(Q[j]),re[2]=Q[L].add(Q[j].neg())):(re[1]=Q[L].toJ().mixedAdd(Q[j]),re[2]=Q[L].toJ().mixedAdd(Q[j].neg()));var Z=[-3,-1,-5,-7,0,7,5,1,3],J=f(d[L],d[j]);for(x=Math.max(J[0].length,x),m[L]=new Array(x),m[j]=new Array(x),S=0;S=0;D--){for(var n=0;D>=0;){var a=!0;for(S=0;S=0&&n++,e=e.dblp(n),D<0)break;for(S=0;S0?K=M[S][h-1>>1]:h<0&&(K=M[S][-h-1>>1].neg()),K.type==="affine"?e=e.mixedAdd(K):e=e.add(K))}}for(D=0;D=Math.ceil((p.bitLength()+1)/Q.step):!1},B.prototype._getDoubles=function(p,Q){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var d=[this],y=this,v=0;v=0&&(L=D,j=S),K.negative&&(K=K.neg(),N=N.neg()),L.negative&&(L=L.neg(),j=j.neg()),[{a:K,b:N},{a:L,b:j}]},r.prototype._endoSplit=function(Q){var d=this.endo.basis,y=d[0],v=d[1],w=v.b.mul(Q).divRound(this.n),M=y.b.neg().mul(Q).divRound(this.n),m=w.mul(y.a),x=M.mul(v.a),D=w.mul(y.b),S=M.mul(v.b),K=Q.sub(m).sub(x),N=D.add(S).neg();return{k1:K,k2:N}},r.prototype.pointFromX=function(Q,d){Q=new i(Q,16),Q.red||(Q=Q.toRed(this.red));var y=Q.redSqr().redMul(Q).redIAdd(Q.redMul(this.a)).redIAdd(this.b),v=y.redSqrt();if(v.redSqr().redSub(y).cmp(this.zero)!==0)throw new Error("invalid point");var w=v.fromRed().isOdd();return(d&&!w||!d&&w)&&(v=v.redNeg()),this.point(Q,v)},r.prototype.validate=function(Q){if(Q.inf)return!0;var d=Q.x,y=Q.y,v=this.a.redMul(d),w=d.redSqr().redMul(d).redIAdd(v).redIAdd(this.b);return y.redSqr().redISub(w).cmpn(0)===0},r.prototype._endoWnafMulAdd=function(Q,d,y){for(var v=this._endoWnafT1,w=this._endoWnafT2,M=0;M":""},B.prototype.isInfinity=function(){return this.inf},B.prototype.add=function(Q){if(this.inf)return Q;if(Q.inf)return this;if(this.eq(Q))return this.dbl();if(this.neg().eq(Q))return this.curve.point(null,null);if(this.x.cmp(Q.x)===0)return this.curve.point(null,null);var d=this.y.redSub(Q.y);d.cmpn(0)!==0&&(d=d.redMul(this.x.redSub(Q.x).redInvm()));var y=d.redSqr().redISub(this.x).redISub(Q.x),v=d.redMul(this.x.redSub(y)).redISub(this.y);return this.curve.point(y,v)},B.prototype.dbl=function(){if(this.inf)return this;var Q=this.y.redAdd(this.y);if(Q.cmpn(0)===0)return this.curve.point(null,null);var d=this.curve.a,y=this.x.redSqr(),v=Q.redInvm(),w=y.redAdd(y).redIAdd(y).redIAdd(d).redMul(v),M=w.redSqr().redISub(this.x.redAdd(this.x)),m=w.redMul(this.x.redSub(M)).redISub(this.y);return this.curve.point(M,m)},B.prototype.getX=function(){return this.x.fromRed()},B.prototype.getY=function(){return this.y.fromRed()},B.prototype.mul=function(Q){return Q=new i(Q,16),this.isInfinity()?this:this._hasDoubles(Q)?this.curve._fixedNafMul(this,Q):this.curve.endo?this.curve._endoWnafMulAdd([this],[Q]):this.curve._wnafMul(this,Q)},B.prototype.mulAdd=function(Q,d,y){var v=[this,d],w=[Q,y];return this.curve.endo?this.curve._endoWnafMulAdd(v,w):this.curve._wnafMulAdd(1,v,w,2)},B.prototype.jmulAdd=function(Q,d,y){var v=[this,d],w=[Q,y];return this.curve.endo?this.curve._endoWnafMulAdd(v,w,!0):this.curve._wnafMulAdd(1,v,w,2,!0)},B.prototype.eq=function(Q){return this===Q||this.inf===Q.inf&&(this.inf||this.x.cmp(Q.x)===0&&this.y.cmp(Q.y)===0)},B.prototype.neg=function(Q){if(this.inf)return this;var d=this.curve.point(this.x,this.y.redNeg());if(Q&&this.precomputed){var y=this.precomputed,v=function(w){return w.neg()};d.precomputed={naf:y.naf&&{wnd:y.naf.wnd,points:y.naf.points.map(v)},doubles:y.doubles&&{step:y.doubles.step,points:y.doubles.points.map(v)}}}return d},B.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var Q=this.curve.jpoint(this.x,this.y,this.curve.one);return Q};function I(p,Q,d,y){f.BasePoint.call(this,p,"jacobian"),Q===null&&d===null&&y===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(Q,16),this.y=new i(d,16),this.z=new i(y,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}return s(I,f.BasePoint),r.prototype.jpoint=function(Q,d,y){return new I(this,Q,d,y)},I.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var Q=this.z.redInvm(),d=Q.redSqr(),y=this.x.redMul(d),v=this.y.redMul(d).redMul(Q);return this.curve.point(y,v)},I.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},I.prototype.add=function(Q){if(this.isInfinity())return Q;if(Q.isInfinity())return this;var d=Q.z.redSqr(),y=this.z.redSqr(),v=this.x.redMul(d),w=Q.x.redMul(y),M=this.y.redMul(d.redMul(Q.z)),m=Q.y.redMul(y.redMul(this.z)),x=v.redSub(w),D=M.redSub(m);if(x.cmpn(0)===0)return D.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var S=x.redSqr(),K=S.redMul(x),N=v.redMul(S),L=D.redSqr().redIAdd(K).redISub(N).redISub(N),j=D.redMul(N.redISub(L)).redISub(M.redMul(K)),re=this.z.redMul(Q.z).redMul(x);return this.curve.jpoint(L,j,re)},I.prototype.mixedAdd=function(Q){if(this.isInfinity())return Q.toJ();if(Q.isInfinity())return this;var d=this.z.redSqr(),y=this.x,v=Q.x.redMul(d),w=this.y,M=Q.y.redMul(d).redMul(this.z),m=y.redSub(v),x=w.redSub(M);if(m.cmpn(0)===0)return x.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=m.redSqr(),S=D.redMul(m),K=y.redMul(D),N=x.redSqr().redIAdd(S).redISub(K).redISub(K),L=x.redMul(K.redISub(N)).redISub(w.redMul(S)),j=this.z.redMul(m);return this.curve.jpoint(N,L,j)},I.prototype.dblp=function(Q){if(Q===0)return this;if(this.isInfinity())return this;if(!Q)return this.dbl();var d;if(this.curve.zeroA||this.curve.threeA){var y=this;for(d=0;d=0)return!1;if(y.redIAdd(w),this.x.cmp(y)===0)return!0}},I.prototype.inspect=function(){return this.isInfinity()?"":""},I.prototype.isInfinity=function(){return this.z.cmpn(0)===0},rm}var im,s7;function Jce(){if(s7)return im;s7=1;var o=Cs(),i=fA(),s=$p(),f=lo();function l(B){s.call(this,"mont",B),this.a=new o(B.a,16).toRed(this.red),this.b=new o(B.b,16).toRed(this.red),this.i4=new o(4).toRed(this.red).redInvm(),this.two=new o(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}i(l,s),im=l,l.prototype.validate=function(I){var p=I.normalize().x,Q=p.redSqr(),d=Q.redMul(p).redAdd(Q.redMul(this.a)).redAdd(p),y=d.redSqrt();return y.redSqr().cmp(d)===0};function r(B,I,p){s.BasePoint.call(this,B,"projective"),I===null&&p===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new o(I,16),this.z=new o(p,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}return i(r,s.BasePoint),l.prototype.decodePoint=function(I,p){return this.point(f.toArray(I,p),1)},l.prototype.point=function(I,p){return new r(this,I,p)},l.prototype.pointFromJSON=function(I){return r.fromJSON(this,I)},r.prototype.precompute=function(){},r.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},r.fromJSON=function(I,p){return new r(I,p[0],p[1]||I.one)},r.prototype.inspect=function(){return this.isInfinity()?"":""},r.prototype.isInfinity=function(){return this.z.cmpn(0)===0},r.prototype.dbl=function(){var I=this.x.redAdd(this.z),p=I.redSqr(),Q=this.x.redSub(this.z),d=Q.redSqr(),y=p.redSub(d),v=p.redMul(d),w=y.redMul(d.redAdd(this.curve.a24.redMul(y)));return this.curve.point(v,w)},r.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.diffAdd=function(I,p){var Q=this.x.redAdd(this.z),d=this.x.redSub(this.z),y=I.x.redAdd(I.z),v=I.x.redSub(I.z),w=v.redMul(Q),M=y.redMul(d),m=p.z.redMul(w.redAdd(M).redSqr()),x=p.x.redMul(w.redISub(M).redSqr());return this.curve.point(m,x)},r.prototype.mul=function(I){for(var p=I.clone(),Q=this,d=this.curve.point(null,null),y=this,v=[];p.cmpn(0)!==0;p.iushrn(1))v.push(p.andln(1));for(var w=v.length-1;w>=0;w--)v[w]===0?(Q=Q.diffAdd(d,y),d=d.dbl()):(d=Q.diffAdd(d,y),Q=Q.dbl());return d},r.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.eq=function(I){return this.getX().cmp(I.getX())===0},r.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},r.prototype.getX=function(){return this.normalize(),this.x.fromRed()},im}var nm,f7;function Pce(){if(f7)return nm;f7=1;var o=lo(),i=Cs(),s=fA(),f=$p(),l=o.assert;function r(I){this.twisted=(I.a|0)!==1,this.mOneA=this.twisted&&(I.a|0)===-1,this.extended=this.mOneA,f.call(this,"edwards",I),this.a=new i(I.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(I.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(I.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),l(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(I.c|0)===1}s(r,f),nm=r,r.prototype._mulA=function(p){return this.mOneA?p.redNeg():this.a.redMul(p)},r.prototype._mulC=function(p){return this.oneC?p:this.c.redMul(p)},r.prototype.jpoint=function(p,Q,d,y){return this.point(p,Q,d,y)},r.prototype.pointFromX=function(p,Q){p=new i(p,16),p.red||(p=p.toRed(this.red));var d=p.redSqr(),y=this.c2.redSub(this.a.redMul(d)),v=this.one.redSub(this.c2.redMul(this.d).redMul(d)),w=y.redMul(v.redInvm()),M=w.redSqrt();if(M.redSqr().redSub(w).cmp(this.zero)!==0)throw new Error("invalid point");var m=M.fromRed().isOdd();return(Q&&!m||!Q&&m)&&(M=M.redNeg()),this.point(p,M)},r.prototype.pointFromY=function(p,Q){p=new i(p,16),p.red||(p=p.toRed(this.red));var d=p.redSqr(),y=d.redSub(this.c2),v=d.redMul(this.d).redMul(this.c2).redSub(this.a),w=y.redMul(v.redInvm());if(w.cmp(this.zero)===0){if(Q)throw new Error("invalid point");return this.point(this.zero,p)}var M=w.redSqrt();if(M.redSqr().redSub(w).cmp(this.zero)!==0)throw new Error("invalid point");return M.fromRed().isOdd()!==Q&&(M=M.redNeg()),this.point(M,p)},r.prototype.validate=function(p){if(p.isInfinity())return!0;p.normalize();var Q=p.x.redSqr(),d=p.y.redSqr(),y=Q.redMul(this.a).redAdd(d),v=this.c2.redMul(this.one.redAdd(this.d.redMul(Q).redMul(d)));return y.cmp(v)===0};function B(I,p,Q,d,y){f.BasePoint.call(this,I,"projective"),p===null&&Q===null&&d===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(p,16),this.y=new i(Q,16),this.z=d?new i(d,16):this.curve.one,this.t=y&&new i(y,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}return s(B,f.BasePoint),r.prototype.pointFromJSON=function(p){return B.fromJSON(this,p)},r.prototype.point=function(p,Q,d,y){return new B(this,p,Q,d,y)},B.fromJSON=function(p,Q){return new B(p,Q[0],Q[1],Q[2])},B.prototype.inspect=function(){return this.isInfinity()?"":""},B.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},B.prototype._extDbl=function(){var p=this.x.redSqr(),Q=this.y.redSqr(),d=this.z.redSqr();d=d.redIAdd(d);var y=this.curve._mulA(p),v=this.x.redAdd(this.y).redSqr().redISub(p).redISub(Q),w=y.redAdd(Q),M=w.redSub(d),m=y.redSub(Q),x=v.redMul(M),D=w.redMul(m),S=v.redMul(m),K=M.redMul(w);return this.curve.point(x,D,K,S)},B.prototype._projDbl=function(){var p=this.x.redAdd(this.y).redSqr(),Q=this.x.redSqr(),d=this.y.redSqr(),y,v,w,M,m,x;if(this.curve.twisted){M=this.curve._mulA(Q);var D=M.redAdd(d);this.zOne?(y=p.redSub(Q).redSub(d).redMul(D.redSub(this.curve.two)),v=D.redMul(M.redSub(d)),w=D.redSqr().redSub(D).redSub(D)):(m=this.z.redSqr(),x=D.redSub(m).redISub(m),y=p.redSub(Q).redISub(d).redMul(x),v=D.redMul(M.redSub(d)),w=D.redMul(x))}else M=Q.redAdd(d),m=this.curve._mulC(this.z).redSqr(),x=M.redSub(m).redSub(m),y=this.curve._mulC(p.redISub(M)).redMul(x),v=this.curve._mulC(M).redMul(Q.redISub(d)),w=M.redMul(x);return this.curve.point(y,v,w)},B.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},B.prototype._extAdd=function(p){var Q=this.y.redSub(this.x).redMul(p.y.redSub(p.x)),d=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),y=this.t.redMul(this.curve.dd).redMul(p.t),v=this.z.redMul(p.z.redAdd(p.z)),w=d.redSub(Q),M=v.redSub(y),m=v.redAdd(y),x=d.redAdd(Q),D=w.redMul(M),S=m.redMul(x),K=w.redMul(x),N=M.redMul(m);return this.curve.point(D,S,N,K)},B.prototype._projAdd=function(p){var Q=this.z.redMul(p.z),d=Q.redSqr(),y=this.x.redMul(p.x),v=this.y.redMul(p.y),w=this.curve.d.redMul(y).redMul(v),M=d.redSub(w),m=d.redAdd(w),x=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(y).redISub(v),D=Q.redMul(M).redMul(x),S,K;return this.curve.twisted?(S=Q.redMul(m).redMul(v.redSub(this.curve._mulA(y))),K=M.redMul(m)):(S=Q.redMul(m).redMul(v.redSub(y)),K=this.curve._mulC(M).redMul(m)),this.curve.point(D,S,K)},B.prototype.add=function(p){return this.isInfinity()?p:p.isInfinity()?this:this.curve.extended?this._extAdd(p):this._projAdd(p)},B.prototype.mul=function(p){return this._hasDoubles(p)?this.curve._fixedNafMul(this,p):this.curve._wnafMul(this,p)},B.prototype.mulAdd=function(p,Q,d){return this.curve._wnafMulAdd(1,[this,Q],[p,d],2,!1)},B.prototype.jmulAdd=function(p,Q,d){return this.curve._wnafMulAdd(1,[this,Q],[p,d],2,!0)},B.prototype.normalize=function(){if(this.zOne)return this;var p=this.z.redInvm();return this.x=this.x.redMul(p),this.y=this.y.redMul(p),this.t&&(this.t=this.t.redMul(p)),this.z=this.curve.one,this.zOne=!0,this},B.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},B.prototype.getX=function(){return this.normalize(),this.x.fromRed()},B.prototype.getY=function(){return this.normalize(),this.y.fromRed()},B.prototype.eq=function(p){return this===p||this.getX().cmp(p.getX())===0&&this.getY().cmp(p.getY())===0},B.prototype.eqXToP=function(p){var Q=p.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(Q)===0)return!0;for(var d=p.clone(),y=this.curve.redN.redMul(this.z);;){if(d.iadd(this.curve.n),d.cmp(this.curve.p)>=0)return!1;if(Q.redIAdd(y),this.x.cmp(Q)===0)return!0}},B.prototype.toP=B.prototype.normalize,B.prototype.mixedAdd=B.prototype.add,nm}var h7;function zee(){return h7||(h7=1,function(o){var i=o;i.base=$p(),i.short=Yce(),i.mont=Jce(),i.edwards=Pce()}(tm)),tm}var om={},am={},ZA={},g7;function Da(){if(g7)return ZA;g7=1;var o=co(),i=fA();ZA.inherits=i;function s(e,A){return(e.charCodeAt(A)&64512)!==55296||A<0||A+1>=e.length?!1:(e.charCodeAt(A+1)&64512)===56320}function f(e,A){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if(typeof e=="string")if(A){if(A==="hex")for(e=e.replace(/[^a-z0-9]+/ig,""),e.length%2!==0&&(e="0"+e),h=0;h>6|192,n[a++]=c&63|128):s(e,h)?(c=65536+((c&1023)<<10)+(e.charCodeAt(++h)&1023),n[a++]=c>>18|240,n[a++]=c>>12&63|128,n[a++]=c>>6&63|128,n[a++]=c&63|128):(n[a++]=c>>12|224,n[a++]=c>>6&63|128,n[a++]=c&63|128)}else for(h=0;h>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24;return A>>>0}ZA.htonl=r;function B(e,A){for(var n="",a=0;a>>0}return c}ZA.join32=Q;function d(e,A){for(var n=new Array(e.length*4),a=0,h=0;a>>24,n[h+1]=c>>>16&255,n[h+2]=c>>>8&255,n[h+3]=c&255):(n[h+3]=c>>>24,n[h+2]=c>>>16&255,n[h+1]=c>>>8&255,n[h]=c&255)}return n}ZA.split32=d;function y(e,A){return e>>>A|e<<32-A}ZA.rotr32=y;function v(e,A){return e<>>32-A}ZA.rotl32=v;function w(e,A){return e+A>>>0}ZA.sum32=w;function M(e,A,n){return e+A+n>>>0}ZA.sum32_3=M;function m(e,A,n,a){return e+A+n+a>>>0}ZA.sum32_4=m;function x(e,A,n,a,h){return e+A+n+a+h>>>0}ZA.sum32_5=x;function D(e,A,n,a){var h=e[A],c=e[A+1],C=a+c>>>0,g=(C>>0,e[A+1]=C}ZA.sum64=D;function S(e,A,n,a){var h=A+a>>>0,c=(h>>0}ZA.sum64_hi=S;function K(e,A,n,a){var h=A+a;return h>>>0}ZA.sum64_lo=K;function N(e,A,n,a,h,c,C,g){var t=0,u=A;u=u+a>>>0,t+=u>>0,t+=u>>0,t+=u>>0}ZA.sum64_4_hi=N;function L(e,A,n,a,h,c,C,g){var t=A+a+c+g;return t>>>0}ZA.sum64_4_lo=L;function j(e,A,n,a,h,c,C,g,t,u){var b=0,R=A;R=R+a>>>0,b+=R>>0,b+=R>>0,b+=R>>0,b+=R>>0}ZA.sum64_5_hi=j;function re(e,A,n,a,h,c,C,g,t,u){var b=A+a+c+g+u;return b>>>0}ZA.sum64_5_lo=re;function Z(e,A,n){var a=A<<32-n|e>>>n;return a>>>0}ZA.rotr64_hi=Z;function J(e,A,n){var a=e<<32-n|A>>>n;return a>>>0}ZA.rotr64_lo=J;function Ae(e,A,n){return e>>>n}ZA.shr64_hi=Ae;function E(e,A,n){var a=e<<32-n|A>>>n;return a>>>0}return ZA.shr64_lo=E,ZA}var sm={},u7;function jl(){if(u7)return sm;u7=1;var o=Da(),i=co();function s(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}return sm.BlockHash=s,s.prototype.update=function(l,r){if(l=o.toArray(l,r),this.pending?this.pending=this.pending.concat(l):this.pending=l,this.pendingTotal+=l.length,this.pending.length>=this._delta8){l=this.pending;var B=l.length%this._delta8;this.pending=l.slice(l.length-B,l.length),this.pending.length===0&&(this.pending=null),l=o.join32(l,0,l.length-B,this.endian);for(var I=0;I>>24&255,I[p++]=l>>>16&255,I[p++]=l>>>8&255,I[p++]=l&255}else for(I[p++]=l&255,I[p++]=l>>>8&255,I[p++]=l>>>16&255,I[p++]=l>>>24&255,I[p++]=0,I[p++]=0,I[p++]=0,I[p++]=0,Q=8;Q>>3}ta.g0_256=p;function Q(d){return i(d,17)^i(d,19)^d>>>10}return ta.g1_256=Q,ta}var fm,l7;function Oce(){if(l7)return fm;l7=1;var o=Da(),i=jl(),s=$ee(),f=o.rotl32,l=o.sum32,r=o.sum32_5,B=s.ft_1,I=i.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function Q(){if(!(this instanceof Q))return new Q;I.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}return o.inherits(Q,I),fm=Q,Q.blockSize=512,Q.outSize=160,Q.hmacStrength=80,Q.padLength=64,Q.prototype._update=function(y,v){for(var w=this.W,M=0;M<16;M++)w[M]=y[v+M];for(;Mthis.blockSize&&(l=new this.Hash().update(l).digest()),i(l.length<=this.blockSize);for(var r=l.length;r=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(r,B,I)}return Bm=f,f.prototype._init=function(r,B,I){var p=r.concat(B).concat(I);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var Q=0;Q=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(r.concat(I||[])),this._reseed=1},f.prototype.generate=function(r,B,I,p){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof B!="string"&&(p=I,I=B,B=null),I&&(I=i.toArray(I,p||"hex"),this._update(I));for(var Q=[];Q.length"},Cm}var Em,b7;function tle(){if(b7)return Em;b7=1;var o=Cs(),i=lo(),s=i.assert;function f(p,Q){if(p instanceof f)return p;this._importDER(p,Q)||(s(p.r&&p.s,"Signature without r or s"),this.r=new o(p.r,16),this.s=new o(p.s,16),p.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=p.recoveryParam)}Em=f;function l(){this.place=0}function r(p,Q){var d=p[Q.place++];if(!(d&128))return d;var y=d&15;if(y===0||y>4||p[Q.place]===0)return!1;for(var v=0,w=0,M=Q.place;w>>=0;return v<=127?!1:(Q.place=M,v)}function B(p){for(var Q=0,d=p.length-1;!p[Q]&&!(p[Q+1]&128)&&Q>>3);for(p.push(d|128);--d;)p.push(Q>>>(d<<3)&255);p.push(Q)}return f.prototype.toDER=function(Q){var d=this.r.toArray(),y=this.s.toArray();for(d[0]&128&&(d=[0].concat(d)),y[0]&128&&(y=[0].concat(y)),d=B(d),y=B(y);!y[0]&&!(y[1]&128);)y=y.slice(1);var v=[2];I(v,d.length),v=v.concat(d),v.push(2),I(v,y.length);var w=v.concat(y),M=[48];return I(M,w.length),M=M.concat(w),i.encode(M,Q)},Em}var pm,D7;function Ale(){if(D7)return pm;D7=1;var o=Cs(),i=Xce(),s=lo(),f=Uk(),l=Gk(),r=s.assert,B=ele(),I=tle();function p(Q){if(!(this instanceof p))return new p(Q);typeof Q=="string"&&(r(Object.prototype.hasOwnProperty.call(f,Q),"Unknown curve "+Q),Q=f[Q]),Q instanceof f.PresetCurve&&(Q={curve:Q}),this.curve=Q.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=Q.curve.g,this.g.precompute(Q.curve.n.bitLength()+1),this.hash=Q.hash||Q.curve.hash}return pm=p,p.prototype.keyPair=function(d){return new B(this,d)},p.prototype.keyFromPrivate=function(d,y){return B.fromPrivate(this,d,y)},p.prototype.keyFromPublic=function(d,y){return B.fromPublic(this,d,y)},p.prototype.genKeyPair=function(d){d||(d={});for(var y=new i({hash:this.hash,pers:d.pers,persEnc:d.persEnc||"utf8",entropy:d.entropy||l(this.hash.hmacStrength),entropyEnc:d.entropy&&d.entropyEnc||"utf8",nonce:this.n.toArray()}),v=this.n.byteLength(),w=this.n.sub(new o(2));;){var M=new o(y.generate(v));if(!(M.cmp(w)>0))return M.iaddn(1),this.keyFromPrivate(M)}},p.prototype._truncateToN=function(d,y,v){var w;if(o.isBN(d)||typeof d=="number")d=new o(d,16),w=d.byteLength();else if(typeof d=="object")w=d.length,d=new o(d,16);else{var M=d.toString();w=M.length+1>>>1,d=new o(M,16)}typeof v!="number"&&(v=w*8);var m=v-this.n.bitLength();return m>0&&(d=d.ushrn(m)),!y&&d.cmp(this.n)>=0?d.sub(this.n):d},p.prototype.sign=function(d,y,v,w){if(typeof v=="object"&&(w=v,v=null),w||(w={}),typeof d!="string"&&typeof d!="number"&&!o.isBN(d)){r(typeof d=="object"&&d&&typeof d.length=="number","Expected message to be an array-like, a hex string, or a BN instance"),r(d.length>>>0===d.length);for(var M=0;M=0)){var j=this.g.mul(L);if(!j.isInfinity()){var re=j.getX(),Z=re.umod(this.n);if(Z.cmpn(0)!==0){var J=L.invm(this.n).mul(Z.mul(y.getPrivate()).iadd(d));if(J=J.umod(this.n),J.cmpn(0)!==0){var Ae=(j.getY().isOdd()?1:0)|(re.cmp(Z)!==0?2:0);return w.canonical&&J.cmp(this.nh)>0&&(J=this.n.sub(J),Ae^=1),new I({r:Z,s:J,recoveryParam:Ae})}}}}}},p.prototype.verify=function(d,y,v,w,M){M||(M={}),d=this._truncateToN(d,!1,M.msgBitLength),v=this.keyFromPublic(v,w),y=new I(y,"hex");var m=y.r,x=y.s;if(m.cmpn(1)<0||m.cmp(this.n)>=0||x.cmpn(1)<0||x.cmp(this.n)>=0)return!1;var D=x.invm(this.n),S=D.mul(d).umod(this.n),K=D.mul(m).umod(this.n),N;return this.curve._maxwellTrick?(N=this.g.jmulAdd(S,v.getPublic(),K),N.isInfinity()?!1:N.eqXToP(m)):(N=this.g.mulAdd(S,v.getPublic(),K),N.isInfinity()?!1:N.getX().umod(this.n).cmp(m)===0)},p.prototype.recoverPubKey=function(Q,d,y,v){r((3&y)===y,"The recovery param is more than two bits"),d=new I(d,v);var w=this.n,M=new o(Q),m=d.r,x=d.s,D=y&1,S=y>>1;if(m.cmp(this.curve.p.umod(this.curve.n))>=0&&S)throw new Error("Unable to find sencond key candinate");S?m=this.curve.pointFromX(m.add(this.curve.n),D):m=this.curve.pointFromX(m,D);var K=d.r.invm(w),N=w.sub(M).mul(K).umod(w),L=x.mul(K).umod(w);return this.g.mulAdd(N,m,L)},p.prototype.getKeyRecoveryParam=function(Q,d,y,v){if(d=new I(d,v),d.recoveryParam!==null)return d.recoveryParam;for(var w=0;w<4;w++){var M;try{M=this.recoverPubKey(Q,d,w)}catch{continue}if(M.eq(y))return w}throw new Error("Unable to find valid recovery factor")},pm}var Qm,S7;function rle(){if(S7)return Qm;S7=1;var o=lo(),i=o.assert,s=o.parseBytes,f=o.cachedProperty;function l(r,B){this.eddsa=r,this._secret=s(B.secret),r.isPoint(B.pub)?this._pub=B.pub:this._pubBytes=s(B.pub)}return l.fromPublic=function(B,I){return I instanceof l?I:new l(B,{pub:I})},l.fromSecret=function(B,I){return I instanceof l?I:new l(B,{secret:I})},l.prototype.secret=function(){return this._secret},f(l,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),f(l,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),f(l,"privBytes",function(){var B=this.eddsa,I=this.hash(),p=B.encodingLength-1,Q=I.slice(0,B.encodingLength);return Q[0]&=248,Q[p]&=127,Q[p]|=64,Q}),f(l,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),f(l,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),f(l,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),l.prototype.sign=function(B){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(B,this)},l.prototype.verify=function(B,I){return this.eddsa.verify(B,I,this)},l.prototype.getSecret=function(B){return i(this._secret,"KeyPair is public only"),o.encode(this.secret(),B)},l.prototype.getPublic=function(B){return o.encode(this.pubBytes(),B)},Qm=l,Qm}var ym,x7;function ile(){if(x7)return ym;x7=1;var o=Cs(),i=lo(),s=i.assert,f=i.cachedProperty,l=i.parseBytes;function r(B,I){this.eddsa=B,typeof I!="object"&&(I=l(I)),Array.isArray(I)&&(s(I.length===B.encodingLength*2,"Signature has invalid size"),I={R:I.slice(0,B.encodingLength),S:I.slice(B.encodingLength)}),s(I.R&&I.S,"Signature without R or S"),B.isPoint(I.R)&&(this._R=I.R),I.S instanceof o&&(this._S=I.S),this._Rencoded=Array.isArray(I.R)?I.R:I.Rencoded,this._Sencoded=Array.isArray(I.S)?I.S:I.Sencoded}return f(r,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),f(r,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),f(r,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),f(r,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),r.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},r.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},ym=r,ym}var vm,R7;function nle(){if(R7)return vm;R7=1;var o=Lk(),i=Uk(),s=lo(),f=s.assert,l=s.parseBytes,r=rle(),B=ile();function I(p){if(f(p==="ed25519","only tested with ed25519 so far"),!(this instanceof I))return new I(p);p=i[p].curve,this.curve=p,this.g=p.g,this.g.precompute(p.n.bitLength()+1),this.pointClass=p.point().constructor,this.encodingLength=Math.ceil(p.n.bitLength()/8),this.hash=o.sha512}return vm=I,I.prototype.sign=function(Q,d){Q=l(Q);var y=this.keyFromSecret(d),v=this.hashInt(y.messagePrefix(),Q),w=this.g.mul(v),M=this.encodePoint(w),m=this.hashInt(M,y.pubBytes(),Q).mul(y.priv()),x=v.add(m).umod(this.curve.n);return this.makeSignature({R:w,S:x,Rencoded:M})},I.prototype.verify=function(Q,d,y){if(Q=l(Q),d=this.makeSignature(d),d.S().gte(d.eddsa.curve.n)||d.S().isNeg())return!1;var v=this.keyFromPublic(y),w=this.hashInt(d.Rencoded(),v.pubBytes(),Q),M=this.g.mul(d.S()),m=d.R().add(v.pub().mul(w));return m.eq(M)},I.prototype.hashInt=function(){for(var Q=this.hash(),d=0;d0&&o.compare(ale)<0:!1}function hle(o,i){if(o.length!==i.length)return!1;let s=0;for(let f=0;f"u")return Buffer.from(Cn.randomBytes(o));const i=new Uint8Array(o);return Cn.getRandomValues(i),Buffer.from(i)}async function tte(o){if(!Cn.createHash){const f=await of.digest("SHA-512",o);return new Uint8Array(f)}const s=Cn.createHash("sha512").update(o).digest();return new Uint8Array(s)}function Ate(o){return async function(i,s,f){if(of&&of[o]&&of.importKey){const l={name:"AES-CBC"},r=await of.importKey("raw",s,l,!1,[o]),B={name:"AES-CBC",iv:i},I=await of[o](B,r,f);return Buffer.from(new Uint8Array(I))}else if(o==="encrypt"&&Cn.createCipheriv){const l=Cn.createCipheriv("aes-256-cbc",s,i),r=l.update(f),B=l.final();return Buffer.concat([r,B])}else if(o==="decrypt"&&Cn.createDecipheriv){const l=Cn.createDecipheriv("aes-256-cbc",s,i),r=l.update(f),B=l.final();return Buffer.concat([r,B])}throw new Error(`Unsupported operation: ${o}`)}}const gle=Ate("encrypt"),ule=Ate("decrypt");async function rte(o,i){if(!Cn.createHmac){const l={name:"HMAC",hash:{name:"SHA-256"}},r=await of.importKey("raw",new Uint8Array(o),l,!1,["sign","verify"]),B=await of.sign("HMAC",r,i);return Buffer.from(new Uint8Array(B))}const s=Cn.createHmac("sha256",Buffer.from(o));return s.update(i),s.digest()}async function cle(o,i,s){const f=await rte(o,i);return hle(f,s)}const qk=function(){let o=Uc(32);for(;!tu(o);)o=Uc(32);return o},En=function(o){return _r(o.length===32,"Bad private key"),_r(tu(o),"Bad private key"),Buffer.from(Qg.keyFromPrivate(o).getPublic("array"))},Mh=async function(o,i){return _r(o.length===32,"Bad private key"),_r(tu(o),"Bad private key"),_r(i.length>0,"Message should not be empty"),_r(i.length<=32,"Message is too long"),Buffer.from(Qg.sign(i,o,{canonical:!0}).toDER())},lle=async function(o,i){_r(Buffer.isBuffer(o),"Bad private key"),_r(Buffer.isBuffer(i),"Bad public key"),_r(o.length===32,"Bad private key"),_r(tu(o),"Bad private key"),_r(i.length===65||i.length===33,"Bad public key"),i.length===65&&_r(i[0]===4,"Bad public key"),i.length===33&&_r(i[0]===2||i[0]===3,"Bad public key");const s=Qg.keyFromPrivate(o),f=Qg.keyFromPublic(i),l=s.derive(f.getPublic());return Buffer.from(l.toArray())},ite=lle,dle=async function(o,i){_r(Buffer.isBuffer(o),"Bad private key"),_r(Buffer.isBuffer(i),"Bad public key"),_r(o.length===32,"Bad private key"),_r(tu(o),"Bad private key"),_r(i.length===65||i.length===33,"Bad public key"),i.length===65&&_r(i[0]===4,"Bad public key"),i.length===33&&_r(i[0]===2||i[0]===3,"Bad public key");const s=Qg.keyFromPrivate(o),f=Qg.keyFromPublic(i),l=s.derive(f.getPublic());return Buffer.from(l.toString(16,64),"hex")},Hk=async function(o,i,s){s=s||{};let f=s.ephemPrivateKey||Uc(32);for(;!tu(f);)f=s.ephemPrivateKey||Uc(32);const l=En(f),r=await ite(f,o),B=await tte(r),I=s.iv||Uc(16),p=B.slice(0,32),Q=B.slice(32),y=await gle(I,Buffer.from(p),i),v=Buffer.concat([I,l,y]),w=await rte(Buffer.from(Q),v);return{iv:I,ephemPublicKey:l,ciphertext:y,mac:w}},eQ=async function(o,i,s){const f=s??!1,r=await(f?dle:ite)(o,i.ephemPublicKey),B=await tte(r),I=B.slice(0,32),p=B.slice(32),Q=Buffer.concat([i.iv,i.ephemPublicKey,i.ciphertext]),d=await cle(Buffer.from(p),Q,i.mac);if(!d&&f===!1)return eQ(o,i,!0);if(!d&&f===!0)throw new Error("bad MAC after trying padded");const y=await ule(i.iv,Buffer.from(I),i.ciphertext);return Buffer.from(new Uint8Array(y))};var AB={},wm,N7;function Ile(){if(N7)return wm;N7=1;var o,i,s={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` -`,r:"\r",t:" "},f;function l(w){throw{name:"SyntaxError",message:w,at:o,text:f}}function r(w){return w&&w!==i&&l("Expected '"+w+"' instead of '"+i+"'"),i=f.charAt(o),o+=1,i}function B(){var w,M="";for(i==="-"&&(M="-",r("-"));i>="0"&&i<="9";)M+=i,r();if(i===".")for(M+=".";r()&&i>="0"&&i<="9";)M+=i;if(i==="e"||i==="E")for(M+=i,r(),(i==="-"||i==="+")&&(M+=i,r());i>="0"&&i<="9";)M+=i,r();return w=Number(M),isFinite(w)||l("Bad number"),w}function I(){var w,M,m="",x;if(i==='"')for(;r();){if(i==='"')return r(),m;if(i==="\\")if(r(),i==="u"){for(x=0,M=0;M<4&&(w=parseInt(r(),16),!!isFinite(w));M+=1)x=x*16+w;m+=String.fromCharCode(x)}else if(typeof s[i]=="string")m+=s[i];else break;else m+=i}l("Bad string")}function p(){for(;i&&i<=" ";)r()}function Q(){switch(i){case"t":return r("t"),r("r"),r("u"),r("e"),!0;case"f":return r("f"),r("a"),r("l"),r("s"),r("e"),!1;case"n":return r("n"),r("u"),r("l"),r("l"),null;default:l("Unexpected '"+i+"'")}}function d(){var w=[];if(i==="["){if(r("["),p(),i==="]")return r("]"),w;for(;i;){if(w.push(v()),p(),i==="]")return r("]"),w;r(","),p()}}l("Bad array")}function y(){var w,M={};if(i==="{"){if(r("{"),p(),i==="}")return r("}"),M;for(;i;){if(w=I(),p(),r(":"),Object.prototype.hasOwnProperty.call(M,w)&&l('Duplicate key "'+w+'"'),M[w]=v(),p(),i==="}")return r("}"),M;r(","),p()}}l("Bad object")}function v(){switch(p(),i){case"{":return y();case"[":return d();case'"':return I();case"-":return B();default:return i>="0"&&i<="9"?B():Q()}}return wm=function(w,M){var m;return f=w,o=0,i=" ",m=v(),p(),i&&l("Syntax error"),typeof M=="function"?function x(D,S){var K,N,L=D[S];if(L&&typeof L=="object")for(K in v)Object.prototype.hasOwnProperty.call(L,K)&&(N=x(L,K),typeof N>"u"?delete L[K]:L[K]=N);return M.call(D,S,L)}({"":m},""):m},wm}var mm,_7;function Ble(){if(_7)return mm;_7=1;var o=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,i,s,f={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},l;function r(I){return o.lastIndex=0,o.test(I)?'"'+I.replace(o,function(p){var Q=f[p];return typeof Q=="string"?Q:"\\u"+("0000"+p.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+I+'"'}function B(I,p){var Q,d,y,v,w=i,M,m=p[I];switch(m&&typeof m=="object"&&typeof m.toJSON=="function"&&(m=m.toJSON(I)),typeof l=="function"&&(m=l.call(p,I,m)),typeof m){case"string":return r(m);case"number":return isFinite(m)?String(m):"null";case"boolean":case"null":return String(m);case"object":if(!m)return"null";if(i+=s,M=[],Object.prototype.toString.apply(m)==="[object Array]"){for(v=m.length,Q=0;Q=0&&o.call(s.callee)==="[object Function]"),l},bm}var Dm,L7;function ple(){if(L7)return Dm;L7=1;var o;if(!Object.keys){var i=Object.prototype.hasOwnProperty,s=Object.prototype.toString,f=nte(),l=Object.prototype.propertyIsEnumerable,r=!l.call({toString:null},"toString"),B=l.call(function(){},"prototype"),I=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],p=function(v){var w=v.constructor;return w&&w.prototype===v},Q={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},d=function(){if(typeof window>"u")return!1;for(var v in window)try{if(!Q["$"+v]&&i.call(window,v)&&window[v]!==null&&typeof window[v]=="object")try{p(window[v])}catch{return!0}}catch{return!0}return!1}(),y=function(v){if(typeof window>"u"||!d)return p(v);try{return p(v)}catch{return!1}};o=function(w){var M=w!==null&&typeof w=="object",m=s.call(w)==="[object Function]",x=f(w),D=M&&s.call(w)==="[object String]",S=[];if(!M&&!m&&!x)throw new TypeError("Object.keys called on a non-object");var K=B&&m;if(D&&w.length>0&&!i.call(w,0))for(var N=0;N0)for(var L=0;L"u"||!m?o:m(Uint8Array),S={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?o:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?o:ArrayBuffer,"%ArrayIteratorPrototype%":w&&m?m([][Symbol.iterator]()):o,"%AsyncFromSyncIteratorPrototype%":o,"%AsyncFunction%":x,"%AsyncGenerator%":x,"%AsyncGeneratorFunction%":x,"%AsyncIteratorPrototype%":x,"%Atomics%":typeof Atomics>"u"?o:Atomics,"%BigInt%":typeof BigInt>"u"?o:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?o:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?o:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?o:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":s,"%Float32Array%":typeof Float32Array>"u"?o:Float32Array,"%Float64Array%":typeof Float64Array>"u"?o:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?o:FinalizationRegistry,"%Function%":p,"%GeneratorFunction%":x,"%Int8Array%":typeof Int8Array>"u"?o:Int8Array,"%Int16Array%":typeof Int16Array>"u"?o:Int16Array,"%Int32Array%":typeof Int32Array>"u"?o:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":w&&m?m(m([][Symbol.iterator]())):o,"%JSON%":typeof JSON=="object"?JSON:o,"%Map%":typeof Map>"u"?o:Map,"%MapIteratorPrototype%":typeof Map>"u"||!w||!m?o:m(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?o:Promise,"%Proxy%":typeof Proxy>"u"?o:Proxy,"%RangeError%":f,"%ReferenceError%":l,"%Reflect%":typeof Reflect>"u"?o:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?o:Set,"%SetIteratorPrototype%":typeof Set>"u"||!w||!m?o:m(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?o:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":w&&m?m(""[Symbol.iterator]()):o,"%Symbol%":w?Symbol:o,"%SyntaxError%":r,"%ThrowTypeError%":v,"%TypedArray%":D,"%TypeError%":B,"%Uint8Array%":typeof Uint8Array>"u"?o:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?o:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?o:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?o:Uint32Array,"%URIError%":I,"%WeakMap%":typeof WeakMap>"u"?o:WeakMap,"%WeakRef%":typeof WeakRef>"u"?o:WeakRef,"%WeakSet%":typeof WeakSet>"u"?o:WeakSet};if(m)try{null.error}catch(c){var K=m(m(c));S["%Error.prototype%"]=K}var N=function c(C){var g;if(C==="%AsyncFunction%")g=Q("async function () {}");else if(C==="%GeneratorFunction%")g=Q("function* () {}");else if(C==="%AsyncGeneratorFunction%")g=Q("async function* () {}");else if(C==="%AsyncGenerator%"){var t=c("%AsyncGeneratorFunction%");t&&(g=t.prototype)}else if(C==="%AsyncIteratorPrototype%"){var u=c("%AsyncGenerator%");u&&m&&(g=m(u.prototype))}return S[C]=g,g},L={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},j=Tk(),re=Rle(),Z=j.call(Function.call,Array.prototype.concat),J=j.call(Function.apply,Array.prototype.splice),Ae=j.call(Function.call,String.prototype.replace),E=j.call(Function.call,String.prototype.slice),e=j.call(Function.call,RegExp.prototype.exec),A=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,n=/\\(\\)?/g,a=function(C){var g=E(C,0,1),t=E(C,-1);if(g==="%"&&t!=="%")throw new r("invalid intrinsic syntax, expected closing `%`");if(t==="%"&&g!=="%")throw new r("invalid intrinsic syntax, expected opening `%`");var u=[];return Ae(C,A,function(b,R,T,V){u[u.length]=T?Ae(V,n,"$1"):R||b}),u},h=function(C,g){var t=C,u;if(re(L,t)&&(u=L[t],t="%"+u[0]+"%"),re(S,t)){var b=S[t];if(b===x&&(b=N(t)),typeof b>"u"&&!g)throw new B("intrinsic "+C+" exists, but is not available. Please file an issue!");return{alias:u,name:t,value:b}}throw new r("intrinsic "+C+" does not exist!")};return Jm=function(C,g){if(typeof C!="string"||C.length===0)throw new B("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof g!="boolean")throw new B('"allowMissing" argument must be a boolean');if(e(/^%?[^%]*%?$/,C)===null)throw new r("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var t=a(C),u=t.length>0?t[0]:"",b=h("%"+u+"%",g),R=b.name,T=b.value,V=!1,P=b.alias;P&&(u=P[0],J(t,Z([0,1],P)));for(var F=1,Y=!0;F=t.length){var q=d(T,W);Y=!!q,Y&&"get"in q&&!("originalValue"in q.get)?T=q.get:T=T[W]}else Y=re(T,W),T=T[W];Y&&!V&&(S[R]=T)}}return T},Jm}var Pm,eU;function Yk(){if(eU)return Pm;eU=1;var o=Wl(),i=o("%Object.defineProperty%",!0)||!1;if(i)try{i({},"a",{value:1})}catch{i=!1}return Pm=i,Pm}var Om,tU;function ate(){if(tU)return Om;tU=1;var o=Wl(),i=o("%Object.getOwnPropertyDescriptor%",!0);if(i)try{i([],"length")}catch{i=null}return Om=i,Om}var jm,AU;function kle(){if(AU)return jm;AU=1;var o=Yk(),i=ote(),s=tQ(),f=ate();return jm=function(r,B,I){if(!r||typeof r!="object"&&typeof r!="function")throw new s("`obj` must be an object or a function`");if(typeof B!="string"&&typeof B!="symbol")throw new s("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new s("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new s("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new s("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new s("`loose`, if provided, must be a boolean");var p=arguments.length>3?arguments[3]:null,Q=arguments.length>4?arguments[4]:null,d=arguments.length>5?arguments[5]:null,y=arguments.length>6?arguments[6]:!1,v=!!f&&f(r,B);if(o)o(r,B,{configurable:d===null&&v?v.configurable:!d,enumerable:p===null&&v?v.enumerable:!p,value:I,writable:Q===null&&v?v.writable:!Q});else if(y||!p&&!Q&&!d)r[B]=I;else throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},jm}var Wm,rU;function Nle(){if(rU)return Wm;rU=1;var o=Yk(),i=function(){return!!o};return i.hasArrayLengthDefineBug=function(){if(!o)return null;try{return o([],"length",{value:1}).length!==1}catch{return!0}},Wm=i,Wm}var Vm,iU;function _le(){if(iU)return Vm;iU=1;var o=Wl(),i=kle(),s=Nle()(),f=ate(),l=tQ(),r=o("%Math.floor%");return Vm=function(I,p){if(typeof I!="function")throw new l("`fn` is not a function");if(typeof p!="number"||p<0||p>4294967295||r(p)!==p)throw new l("`length` must be a positive 32-bit integer");var Q=arguments.length>2&&!!arguments[2],d=!0,y=!0;if("length"in I&&f){var v=f(I,"length");v&&!v.configurable&&(d=!1),v&&!v.writable&&(y=!1)}return(d||y||!Q)&&(s?i(I,"length",p,!0,!0):i(I,"length",p)),I},Vm}var nU;function ste(){return nU||(nU=1,function(o){var i=Tk(),s=Wl(),f=_le(),l=tQ(),r=s("%Function.prototype.apply%"),B=s("%Function.prototype.call%"),I=s("%Reflect.apply%",!0)||i.call(B,r),p=Yk(),Q=s("%Math.max%");o.exports=function(v){if(typeof v!="function")throw new l("a function is required");var w=I(i,B,arguments);return f(w,1+Q(0,v.length-(arguments.length-1)),!0)};var d=function(){return I(i,r,arguments)};p?p(o.exports,"apply",{value:d}):o.exports.apply=d}(xm)),xm.exports}var Zm,oU;function Kle(){if(oU)return Zm;oU=1;var o=Wl(),i=ste(),s=i(o("String.prototype.indexOf"));return Zm=function(l,r){var B=o(l,!!r);return typeof B=="function"&&s(l,".prototype.")>-1?i(B):B},Zm}var zm,aU;function Fle(){if(aU)return zm;aU=1;var o=(typeof JSON<"u"?JSON:Cle()).stringify,i=Ele(),s=Qle(),f=ste(),l=Kle(),r=l("Array.prototype.join"),B=l("Array.prototype.push"),I=function(d,y){for(var v="",w=0;w1?arguments[1]:void 0,v=y&&y.space||"";typeof v=="number"&&(v=I(v," "));var w=!!y&&typeof y.cycles=="boolean"&&y.cycles,M=y&&y.replacer?f(y.replacer):p,m=typeof y=="function"?y:y&&y.cmp,x=m&&function(S){var K=m.length>2&&function(L){return S[L]};return function(N,L){return m({key:N,value:S[N]},{key:L,value:S[L]},K?{__proto__:null,get:K}:void 0)}},D=[];return function S(K,N,L,j){var re=v?` -`+I(j,v):"",Z=v?": ":":";if(L&&L.toJSON&&typeof L.toJSON=="function"&&(L=L.toJSON()),L=M(K,N,L),L!==void 0){if(typeof L!="object"||L===null)return o(L);if(i(L)){for(var e=[],J=0;J0&&!i.includes(o.length))throw new Error(`Uint8Array expected of length ${i}, not of length=${o.length}`)}function qle(o){if(typeof o!="function"||typeof o.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Xc(o.outputLen),Xc(o.blockLen)}function el(o,i=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(i&&o.finished)throw new Error("Hash#digest() has already been called")}function Jk(o,i){AQ(o);const s=i.outputLen;if(o.length>sU&rB)}:{h:Number(o>>sU&rB)|0,l:Number(o&rB)|0}}function Yle(o,i=!1){let s=new Uint32Array(o.length),f=new Uint32Array(o.length);for(let l=0;lo<>>32-s,Ple=(o,i,s)=>i<>>32-s,Ole=(o,i,s)=>i<>>64-s,jle=(o,i,s)=>o<>>64-s,$m=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Wle=o=>new Uint32Array(o.buffer,o.byteOffset,Math.floor(o.byteLength/4)),Xm=o=>new DataView(o.buffer,o.byteOffset,o.byteLength),Aa=(o,i)=>o<<32-i|o>>>i,fU=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,Vle=o=>o<<24&4278190080|o<<8&16711680|o>>>8&65280|o>>>24&255;function hU(o){for(let i=0;io().update(Pk(f)).digest(),s=o();return i.outputLen=s.outputLen,i.blockLen=s.blockLen,i.create=()=>o(),i}function zle(o=32){if($m&&typeof $m.getRandomValues=="function")return $m.getRandomValues(new Uint8Array(o));throw new Error("crypto.getRandomValues must be defined")}const gte=[],ute=[],cte=[],$le=BigInt(0),oc=BigInt(1),Xle=BigInt(2),ede=BigInt(7),tde=BigInt(256),Ade=BigInt(113);for(let o=0,i=oc,s=1,f=0;o<24;o++){[s,f]=[f,(2*s+3*f)%5],gte.push(2*(5*f+s)),ute.push((o+1)*(o+2)/2%64);let l=$le;for(let r=0;r<7;r++)i=(i<>ede)*Ade)%tde,i&Xle&&(l^=oc<<(oc<s>32?Ole(o,i,s):Jle(o,i,s),uU=(o,i,s)=>s>32?jle(o,i,s):Ple(o,i,s);function nde(o,i=24){const s=new Uint32Array(10);for(let f=24-i;f<24;f++){for(let B=0;B<10;B++)s[B]=o[B]^o[B+10]^o[B+20]^o[B+30]^o[B+40];for(let B=0;B<10;B+=2){const I=(B+8)%10,p=(B+2)%10,Q=s[p],d=s[p+1],y=gU(Q,d,1)^s[I],v=uU(Q,d,1)^s[I+1];for(let w=0;w<50;w+=10)o[B+w]^=y,o[B+w+1]^=v}let l=o[2],r=o[3];for(let B=0;B<24;B++){const I=ute[B],p=gU(l,r,I),Q=uU(l,r,I),d=gte[B];l=o[d],r=o[d+1],o[d]=p,o[d+1]=Q}for(let B=0;B<50;B+=10){for(let I=0;I<10;I++)s[I]=o[B+I];for(let I=0;I<10;I++)o[B+I]^=~s[(I+2)%10]&s[(I+4)%10]}o[0]^=rde[f],o[1]^=ide[f]}s.fill(0)}let ode=class lte extends fte{constructor(i,s,f,l=!1,r=24){if(super(),this.blockLen=i,this.suffix=s,this.outputLen=f,this.enableXOF=l,this.rounds=r,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Xc(f),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Wle(this.state)}keccak(){fU||hU(this.state32),nde(this.state32,this.rounds),fU||hU(this.state32),this.posOut=0,this.pos=0}update(i){el(this);const{blockLen:s,state:f}=this;i=Pk(i);const l=i.length;for(let r=0;r=f&&this.keccak();const B=Math.min(f-this.posOut,r-l);i.set(s.subarray(this.posOut,this.posOut+B),l),this.posOut+=B,l+=B}return i}xofInto(i){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(i)}xof(i){return Xc(i),this.xofInto(new Uint8Array(i))}digestInto(i){if(Jk(i,this),this.finished)throw new Error("digest() was already called");return this.writeInto(i),this.destroy(),i}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(i){const{blockLen:s,suffix:f,outputLen:l,rounds:r,enableXOF:B}=this;return i||(i=new lte(s,f,l,B,r)),i.state32.set(this.state32),i.pos=this.pos,i.posOut=this.posOut,i.finished=this.finished,i.rounds=r,i.suffix=f,i.outputLen=l,i.enableXOF=B,i.destroyed=this.destroyed,i}};const ade=(o,i,s)=>hte(()=>new ode(i,o,s)),cU=ade(1,136,256/8);function dte(o){return i=>(Hle.bytes(i),o(i))}(()=>{const o=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0,i=typeof module<"u"&&typeof module.require=="function"&&module.require.bind(module);return{node:i&&!o?i("crypto"):void 0,web:o}})();const bh=(()=>{const o=dte(cU);return o.create=cU.create,o})();function pa(o){return Buffer.from(bh(o))}const sde=new Io.ec("secp256k1");function fde(o){return{iv:Buffer.from(o.iv,"hex"),ephemPublicKey:Buffer.from(o.ephemPublicKey,"hex"),ciphertext:Buffer.from(o.ciphertext,"hex"),mac:Buffer.from(o.mac,"hex")}}function hde(o){return{iv:Buffer.from(o.iv).toString("hex"),ephemPublicKey:Buffer.from(o.ephemPublicKey).toString("hex"),ciphertext:Buffer.from(o.ciphertext).toString("hex"),mac:Buffer.from(o.mac).toString("hex")}}async function Dh(o,i){const s=JSON.stringify(i),f=Buffer.from(s,"utf-8"),l=await Hk(En(Buffer.from(o,"hex")),f),r=hde(l);return JSON.stringify(r)}async function Ok(o,i){const s=JSON.parse(i),f=fde(s),l=sde.keyFromPrivate(o),B=(await eQ(Buffer.from(l.getPrivate().toString("hex",64),"hex"),f)).toString("utf-8");return JSON.parse(B)}const gde=86400;let ude=class extends Jge{constructor({sessionServerBaseUrl:i,sessionNamespace:s,sessionTime:f,sessionId:l,allowedOrigin:r}={}){super(),$e(this,"sessionServerBaseUrl","https://session.web3auth.io"),$e(this,"sessionNamespace",void 0),$e(this,"allowedOrigin",void 0),$e(this,"sessionTime",gde),$e(this,"sessionId",""),i&&(this.sessionServerBaseUrl=i),s&&(this.sessionNamespace=s),f&&(this.sessionTime=f),l&&(this.sessionId=l.padStart(64,"0")),r&&(this.allowedOrigin=r||"*")}static generateRandomSessionKey(){return qk().toString("hex").padStart(64,"0")}async createSession(i,s={}){super.checkSessionParams();const f=Buffer.from(this.sessionId,"hex"),l=En(f).toString("hex"),r=await Dh(this.sessionId,i),B=(await Mh(f,pa(Buffer.from(r,"utf8")))).toString("hex"),I={key:l,data:r,signature:B,namespace:this.sessionNamespace,timeout:this.sessionTime,allowedOrigin:this.allowedOrigin};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:I,headers:s}),this.sessionId}async authorizeSession({headers:i}={headers:{}}){super.checkSessionParams();const f={key:En(Buffer.from(this.sessionId,"hex")).toString("hex"),namespace:this.sessionNamespace},l=await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/get`,data:f,headers:i});if(!l.message)throw new Error("Session Expired or Invalid public key");const r=await Ok(this.sessionId,l.message);if(r.error)throw new Error("There was an error decrypting data.");return r}async updateSession(i,s={}){super.checkSessionParams();const f=Buffer.from(this.sessionId,"hex"),l=En(f).toString("hex"),r=await Dh(this.sessionId,i),B=(await Mh(f,pa(Buffer.from(r,"utf8")))).toString("hex"),I={key:l,data:r,signature:B,namespace:this.sessionNamespace,allowedOrigin:this.allowedOrigin};await super.request({method:"PUT",url:`${this.sessionServerBaseUrl}/v2/store/update`,data:I,headers:s})}async invalidateSession(i={}){super.checkSessionParams();const s=Buffer.from(this.sessionId,"hex"),f=En(s).toString("hex"),l=await Dh(this.sessionId,{}),r=(await Mh(s,pa(Buffer.from(l,"utf8")))).toString("hex"),B={key:f,data:l,signature:r,namespace:this.sessionNamespace,timeout:1};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:B,headers:i}),this.sessionId="",!0}};async function cde(o,i){try{return await new ude({sessionId:o,sessionServerBaseUrl:i,allowedOrigin:!0}).authorizeSession()}catch(s){throw hs.error("fetch data from storage server error",s),new Error("Unable to retrieve data from storage server, invalid key or key expired.")}}class lde extends Bs{constructor(i){super(i),this.setFinalUrl()}setFinalUrl(){const{passkeysHostUrl:i}=this.params.customState||{};if(!i)throw new Error("Invalid passkeys url.");const s=new URL(i),f=JSON.parse(JSON.stringify(this.params.jwtParams||{})),l=mn({state:this.state,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri},f);Object.keys(l).forEach(r=>{const B=r;l[B]&&s.searchParams.append(B,l[B])}),this.finalURL=s}async getUserInfo(i,s){const{idToken:f,extraParams:l}=i,{sessionId:r}=JSON.parse(gs.decode(l))||{};if(!r)throw new Error("sessionId not found");const{verifier_id:B,signature:I,clientDataJSON:p,authenticatorData:Q,publicKey:d,challenge:y,rpOrigin:v,rpId:w,credId:M,transports:m,username:x}=await cde(r,s);if(I!==f)throw new Error("idtoken should be equal to signature");return{email:"",name:"Passkeys Login",profileImage:"",verifier:this.params.verifier,verifierId:B,typeOfLogin:this.params.typeOfLogin,extraVerifierParams:{signature:I,clientDataJSON:p,authenticatorData:Q,publicKey:d,challenge:y,rpOrigin:v,rpId:w,credId:M,transports:m,username:x}}}}const dde=["access_token","id_token"];class Ide extends Bs{constructor(i){super(i),$e(this,"SCOPE","openid profile email"),$e(this,"RESPONSE_TYPE","token id_token"),$e(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:i}=this.params.jwtParams,s=Mk(i);s.pathname="/passwordless/start",this.finalURL=s}async getUserInfo(i){const{idToken:s,accessToken:f}=i,{domain:l,verifierIdField:r,isVerifierIdCaseSensitive:B}=this.params.jwtParams;try{const I=new URL(l),p=await Oo(`${Op(I)}userinfo`,{headers:{Authorization:`Bearer ${f}`}}),{picture:Q,name:d,email:y}=p;return{email:y,name:d,profileImage:Q,verifierId:Cg(p,this.params.typeOfLogin,r,B),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}catch(I){OA.error(I);const p=jp(s).payload,{name:Q,email:d,picture:y}=p;return{profileImage:y,name:Q,email:d,verifierId:Cg(p,this.params.typeOfLogin,r,B),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}async handleLoginWindow(){const{BroadcastChannel:i}=await mk(async()=>{const{BroadcastChannel:s}=await import("./index-CP_Sedkw.js");return{BroadcastChannel:s}},[]);return new Promise((s,f)=>{if(this.params.redirectToOpener){f(new Error("Cannot use redirect to opener for passwordless"));return}const l=B=>{try{const{error:I,data:p}=B,Q=p||{},{instanceParams:d,hashParams:{access_token:y,id_token:v}}=Q,w=Gc(Q.hashParams,dde);if(I){OA.error(B.error),f(new Error(I));return}B.data&&d.verifier===this.params.verifier&&(OA.info(B.data),s(Tt(Tt({accessToken:y,idToken:v||""},w),{},{state:d})))}catch(I){OA.error(I),f(I)}},r=new i(`redirect_channel_${this.nonce}`,oee);r.addEventListener("message",async B=>{l(B),r.close()});try{const{connection:B="email",login_hint:I}=this.params.jwtParams,p=mn({client_id:this.params.clientId,connection:B,email:B==="email"?I:void 0,phone_number:B==="sms"?I:void 0,send:"link",authParams:{scope:this.SCOPE,state:this.state,response_type:this.RESPONSE_TYPE,redirect_uri:this.params.redirect_uri,nonce:this.nonce,prompt:this.PROMPT}},{authParams:this.params.jwtParams});la(this.finalURL.href,JSON.parse(JSON.stringify(p))).then(Q=>{OA.info("posted",Q)}).catch(Q=>{OA.error(Q),f(Q)})}catch(B){OA.error(B),f(B)}})}}class Bde extends Bs{constructor(i){super(i),$e(this,"RESPONSE_TYPE","token"),$e(this,"SCOPE","user:read:email"),this.setFinalUrl()}setFinalUrl(){const i=new URL("https://id.twitch.tv/oauth2/authorize"),s=JSON.parse(JSON.stringify(this.params.jwtParams||{})),f=mn({state:this.state,response_type:this.RESPONSE_TYPE,client_id:this.params.clientId,redirect_uri:this.params.redirect_uri,scope:this.SCOPE,force_verify:"true"},s);Object.keys(f).forEach(l=>{const r=l;f[r]&&i.searchParams.append(r,f[r])}),this.finalURL=i}async getUserInfo(i){const{accessToken:s}=i,f=await Oo("https://api.twitch.tv/helix/users",{headers:{Authorization:`Bearer ${s}`,"Client-ID":this.params.clientId}}),[{profile_image_url:l="",display_name:r="",email:B="",id:I}]=f.data||[];return{profileImage:l,name:r,email:B,verifierId:I,verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}const Cde={link:"link",code:"code"};class Ede extends Bs{constructor(i){super(i),$e(this,"SCOPE","openid profile email"),$e(this,"RESPONSE_TYPE","token id_token"),$e(this,"PROMPT","login"),this.setFinalUrl()}setFinalUrl(){const{domain:i}=this.params.jwtParams||{},s=Mk(i||"https://passwordless.web3auth.io/v6");s.pathname+=s.pathname.endsWith("/")?"authorize":"/authorize";const f=JSON.parse(JSON.stringify(this.params.jwtParams||{}));delete f.domain,this.params.customState=Tt(Tt({},this.params.customState||{}),{},{client:this.params.web3AuthClientId});const l=mn({state:this.state,client_id:this.params.clientId||this.params.web3AuthClientId,redirect_uri:this.params.redirect_uri,nonce:this.nonce,network:this.params.web3AuthNetwork,connection:nee[this.params.typeOfLogin],scope:this.SCOPE,response_type:this.RESPONSE_TYPE,prompt:this.PROMPT,flow_type:(f==null?void 0:f.flow_type)||Cde.code},f);Object.keys(l).forEach(r=>{const B=r;l[B]&&s.searchParams.append(B,l[B])}),this.finalURL=s}async getUserInfo(i){const{idToken:s}=i,f=jp(s).payload,{name:l,email:r,picture:B}=f;return{profileImage:B,name:l,email:r,verifierId:l.toLowerCase(),verifier:this.params.verifier,typeOfLogin:this.params.typeOfLogin}}}const pde=o=>{const{verifier:i,typeOfLogin:s,clientId:f,jwtParams:l}=o;if(!i||!s||!f)throw new Error("Invalid params. Missing verifier, typeOfLogin or clientId");const{domain:r,login_hint:B,id_token:I,access_token:p}=l||{};switch(s){case yA.GOOGLE:return new Hge(o);case yA.FACEBOOK:return new qge(o);case yA.TWITCH:return new Bde(o);case yA.DISCORD:return new Uge(o);case yA.EMAIL_PASSWORDLESS:case yA.SMS_PASSWORDLESS:if(!B)throw new Error("Invalid params. Missing login_hint for web3auth passwordless login");return new Ede(o);case yA.PASSWORDLESS:if(!r||!B)throw new Error("Invalid params. Missing domain or login_hint for passwordless login");return new Ide(o);case yA.APPLE:case yA.GITHUB:case yA.LINKEDIN:case yA.TWITTER:case yA.WEIBO:case yA.LINE:case yA.EMAIL_PASSWORD:case yA.JWT:case yA.REDDIT:if(I||p)return new Yge(o);if(!r)throw new Error("Invalid params for jwt login. Missing domain");return new Tge(o);case yA.PASSKEYS:return new lde(o);default:throw new Error("Unsupported login type")}};var lU=pde;const jk={[Si.SAPPHIRE_DEVNET]:["https://node-1.dev-node.web3auth.io","https://node-2.dev-node.web3auth.io","https://node-3.dev-node.web3auth.io","https://node-4.dev-node.web3auth.io","https://node-5.dev-node.web3auth.io"],[Si.SAPPHIRE_MAINNET]:["https://node-1.node.web3auth.io","https://node-2.node.web3auth.io","https://node-3.node.web3auth.io","https://node-4.node.web3auth.io","https://node-5.node.web3auth.io"]},dU=(o,i)=>{const s=jk[o];if(!s||s.length===0)throw new Error(`Unsupported network: ${o}`);const f=Tp[i];return s.map(l=>f&&f.networkIdentifier?`${l}/sss/${f.networkIdentifier}/jrpc`:`${l}/sss/jrpc`)},Qde=(o,i)=>{const s=jk[o];if(!s||s.length===0)throw new Error(`Unsupported network: ${o}`);const f=Tp[i];return s.map(l=>f&&f.networkIdentifier?`${l}/rss/${f.networkIdentifier}`:`${l}/rss`)},yde=(o,i,s=DE.SECP256K1)=>{const f=jk[o];if(!f||f.length===0)throw new Error(`Unsupported network: ${o}`);const l=s===DE.ED25519?"tss-frost":"tss",r=Tp[i];return f.map(B=>r&&r.networkIdentifier?`${B}/${l}/${r.networkIdentifier}`:`${B}/${l}`)},vde={[Si.SAPPHIRE_MAINNET]:[{X:"e0925898fee0e9e941fdca7ee88deec99939ae9407e923535c4d4a3a3ff8b052",Y:"54b9fea924e3f3e40791f9987f4234ae4222412d65b74068032fa5d8b63375c1"},{X:"9124cf1e280aab32ba50dffd2de81cecabc13d82d2c1fe9de82f3b3523f9b637",Y:"fca939a1ceb42ce745c55b21ef094f543b457630cb63a94ef4f1afeee2b1f107"},{X:"555f681a63d469cc6c3a58a97e29ebd277425f0e6159708e7c7bf05f18f89476",Y:"606f2bcc0884fa5b64366fc3e8362e4939841b56acd60d5f4553cf36b891ac4e"},{X:"2b5f58d8e340f1ab922e89b3a69a68930edfe51364644a456335e179bc130128",Y:"4b4daa05939426e3cbe7d08f0e773d2bf36f64c00d04620ee6df2a7af4d2247"},{X:"3ecbb6a68afe72cf34ec6c0a12b5cb78a0d2e83ba402983b6adbc5f36219861a",Y:"dc1031c5cc8f0472bd521a62a64ebca9e163902c247bf05937daf4ae835091e4"}],[Si.SAPPHIRE_DEVNET]:[{X:"f74389b0a4c8d10d2a687ae575f69b20f412d41ab7f1fe6b358aa14871327247",Y:"54e3a73098ed9bced3ef8821736e9794f9264a1420c0c7ad15d2fa617ba35ef7"},{X:"bc38813a6873e526087918507c78fc3a61624670ee851ecfb4f3bef55d027b5a",Y:"ac4b21229f662a0aefdfdac21cf17c3261a392c74a8790db218b34e3e4c1d56a"},{X:"b56541684ea5fa40c8337b7688d502f0e9e092098962ad344c34e94f06d293fb",Y:"759a998cef79d389082f9a75061a29190eec0cac99b8c25ddcf6b58569dad55c"},{X:"7bcb058d4c6ffc6ba4bfdfd93d141af35a66338a62c7c27cdad2ae3f8289b767",Y:"336ab1935e41ed4719e162587f0ab55518db4207a1eb36cc72303f1b86689d2b"},{X:"bf12a136ef94399ea098f926f04e26a4ec4ac70f69cce274e8893704c4951773",Y:"bdd44828020f52ce510e026338216ada184a6867eb4e19fb4c2d495d4a7e15e4"}]},IU=(o,i,s)=>({currentEpoch:"1",torusNodeEndpoints:dU(o,i),torusNodeSSSEndpoints:dU(o,i),torusNodeRSSEndpoints:Qde(o,i),torusNodeTSSEndpoints:yde(o,i,s),torusIndexes:[1,2,3,4,5],torusNodePub:vde[o]});function UC(o,i){if(Object.values(Si).includes(o))return IU(o,void 0,i);if(Object.values(gi).includes(o)){const s=Tp[o];if(s.migrationCompleted)return IU(s.networkMigratedTo,o,i)}}const iB=hs.getLogger("fnd");let wde=class{constructor({network:i=Si.SAPPHIRE_MAINNET,keyType:s=DE.SECP256K1,fndServerEndpoint:f,enableLogging:l=!1}={}){$e(this,"fndServerEndpoint",`${tge}/node-details`),$e(this,"_currentEpoch","1"),$e(this,"_keyType",void 0),$e(this,"_torusNodeEndpoints",[]),$e(this,"_torusNodeRSSEndpoints",[]),$e(this,"_torusNodeSSSEndpoints",[]),$e(this,"_torusNodeTSSEndpoints",[]),$e(this,"_torusNodePub",[]),$e(this,"_torusIndexes",[]),$e(this,"updated",void 0),$e(this,"network",void 0),this.network=i,this._keyType=s,this.updated=!1,f&&(this.fndServerEndpoint=f),l?iB.enableAll():iB.disableAll()}get _nodeDetails(){return{currentEpoch:this._currentEpoch,torusNodeEndpoints:this._torusNodeEndpoints,torusNodeSSSEndpoints:this._torusNodeSSSEndpoints,torusNodeRSSEndpoints:this._torusNodeRSSEndpoints,torusNodeTSSEndpoints:this._torusNodeTSSEndpoints,torusNodePub:this._torusNodePub,torusIndexes:this._torusIndexes,updated:this.updated}}async getNodeDetails({verifier:i,verifierId:s}){try{if(this.updated&&!$0e.includes(this.network))return this._nodeDetails;try{const{nodeDetails:l}=await Oo(`${this.fndServerEndpoint}?network=${this.network}&verifier=${i}&verifierId=${s}&keyType=${this._keyType}`);return this.setNodeDetails(l),this._nodeDetails}catch(l){iB.error("Failed to fetch node details from server, using local.",l)}const f=UC(this.network,this._keyType);if(!f)throw new Error("Failed to fetch node details");return this.setNodeDetails(f),this._nodeDetails}catch(f){throw iB.error("Failed to fetch node details",f),f}}async getMetadataUrl(){return Object.values(gi).includes(this.network)?ege[this.network]:(await this.getNodeDetails({verifier:"test-verifier",verifierId:"test-verifier-id"})).torusNodeEndpoints[0].replace("/sss/jrpc","/metadata")}setNodeDetails(i){const{currentEpoch:s,torusNodeEndpoints:f,torusNodeSSSEndpoints:l,torusNodeRSSEndpoints:r,torusNodeTSSEndpoints:B,torusNodePub:I,torusIndexes:p}=i;this._torusNodeEndpoints=f,this._torusNodeSSSEndpoints=l||[],this._torusNodeRSSEndpoints=r||[],this._torusNodeTSSEndpoints=B||[],this._torusNodePub=I,this._torusIndexes=p,this._currentEpoch=s,this.updated=!0}};var mde=wde;const uo={GET_OR_SET_KEY:"GetPubKeyOrKeyAssign",VERIFIER_LOOKUP:"VerifierLookupRequest",COMMITMENT_REQUEST:"CommitmentRequest",IMPORT_SHARES:"ImportShares",GET_SHARE_OR_KEY_ASSIGN:"GetShareOrKeyAssign",RETRIEVE_SHARES_WITH_LINKED_PASSKEY:"RetrieveSharesWithLinkedPasskey",GENERATE_AUTH_MESSAGE:"GenerateAuthMessage",LINK_PASSKEY:"LinkPasskey",UNLINK_PASSKEY:"UnlinkPasskey",GET_LINKED_PASSKEYS:"GetLinkedPasskeys"},Mde="https://node-1.node.web3auth.io/metadata",bde="https://node-1.dev-node.web3auth.io/metadata";function tl(o){"@babel/helpers - typeof";return tl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},tl(o)}function Dde(o,i){if(tl(o)!="object"||!o)return o;var s=o[Symbol.toPrimitive];if(s!==void 0){var f=s.call(o,i||"default");if(tl(f)!="object")return f;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(o)}function Sde(o){var i=Dde(o,"string");return tl(i)=="symbol"?i:i+""}function hi(o,i,s){return(i=Sde(i))in o?Object.defineProperty(o,i,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[i]=s,o}var qC={exports:{}},xde=qC.exports,BU;function rQ(){return BU||(BU=1,function(o){(function(i,s){function f(A,n){if(!A)throw new Error(n||"Assertion failed")}function l(A,n){A.super_=n;var a=function(){};a.prototype=n.prototype,A.prototype=new a,A.prototype.constructor=A}function r(A,n,a){if(r.isBN(A))return A;this.negative=0,this.words=null,this.length=0,this.red=null,A!==null&&((n==="le"||n==="be")&&(a=n,n=10),this._init(A||0,n||10,a||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(n){return n instanceof r?!0:n!==null&&typeof n=="object"&&n.constructor.wordSize===r.wordSize&&Array.isArray(n.words)},r.max=function(n,a){return n.cmp(a)>0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,h){if(typeof n=="number")return this._initNumber(n,a,h);if(typeof n=="object")return this._initArray(n,a,h);a==="hex"&&(a=16),f(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var c=0;n[0]==="-"&&(c++,this.negative=1),c=0;c-=3)g=n[c]|n[c-1]<<8|n[c-2]<<16,this.words[C]|=g<>>26-t&67108863,t+=24,t>=26&&(t-=26,C++);else if(h==="le")for(c=0,C=0;c>>26-t&67108863,t+=24,t>=26&&(t-=26,C++);return this._strip()};function I(A,n){var a=A.charCodeAt(n);if(a>=48&&a<=57)return a-48;if(a>=65&&a<=70)return a-55;if(a>=97&&a<=102)return a-87;f(!1,"Invalid character in "+A)}function p(A,n,a){var h=I(A,a);return a-1>=n&&(h|=I(A,a-1)<<4),h}r.prototype._parseHex=function(n,a,h){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var c=0;c=a;c-=2)t=p(n,a,c)<=18?(C-=18,g+=1,this.words[g]|=t>>>26):C+=8;else{var u=n.length-a;for(c=u%2===0?a+1:a;c=18?(C-=18,g+=1,this.words[g]|=t>>>26):C+=8}this._strip()};function Q(A,n,a,h){for(var c=0,C=0,g=Math.min(A.length,a),t=n;t=49?C=u-49+10:u>=17?C=u-17+10:C=u,f(u>=0&&C1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{r.prototype[Symbol.for("nodejs.util.inspect.custom")]=y}catch{r.prototype.inspect=y}else r.prototype.inspect=y;function y(){return(this.red?""}var v=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],w=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],M=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var h;if(n===16||n==="hex"){h="";for(var c=0,C=0,g=0;g>>24-c&16777215,c+=2,c>=26&&(c-=26,g--),C!==0||g!==this.length-1?h=v[6-u.length]+u+h:h=u+h}for(C!==0&&(h=C.toString(16)+h);h.length%a!==0;)h="0"+h;return this.negative!==0&&(h="-"+h),h}if(n===(n|0)&&n>=2&&n<=36){var b=w[n],R=M[n];h="";var T=this.clone();for(T.negative=0;!T.isZero();){var V=T.modrn(R).toString(n);T=T.idivn(R),T.isZero()?h=V+h:h=v[b-V.length]+V+h}for(this.isZero()&&(h="0"+h);h.length%a!==0;)h="0"+h;return this.negative!==0&&(h="-"+h),h}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16,2)},B&&(r.prototype.toBuffer=function(n,a){return this.toArrayLike(B,n,a)}),r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)};var m=function(n,a){return n.allocUnsafe?n.allocUnsafe(a):new n(a)};r.prototype.toArrayLike=function(n,a,h){this._strip();var c=this.byteLength(),C=h||Math.max(1,c);f(c<=C,"byte array longer than desired length"),f(C>0,"Requested array length <= 0");var g=m(n,C),t=a==="le"?"LE":"BE";return this["_toArrayLike"+t](g,c),g},r.prototype._toArrayLikeLE=function(n,a){for(var h=0,c=0,C=0,g=0;C>8&255),h>16&255),g===6?(h>24&255),c=0,g=0):(c=t>>>24,g+=2)}if(h=0&&(n[h--]=t>>8&255),h>=0&&(n[h--]=t>>16&255),g===6?(h>=0&&(n[h--]=t>>24&255),c=0,g=0):(c=t>>>24,g+=2)}if(h>=0)for(n[h--]=c;h>=0;)n[h--]=0},Math.clz32?r.prototype._countBits=function(n){return 32-Math.clz32(n)}:r.prototype._countBits=function(n){var a=n,h=0;return a>=4096&&(h+=13,a>>>=13),a>=64&&(h+=7,a>>>=7),a>=8&&(h+=4,a>>>=4),a>=2&&(h+=2,a>>>=2),h+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,h=0;return a&8191||(h+=13,a>>>=13),a&127||(h+=7,a>>>=7),a&15||(h+=4,a>>>=4),a&3||(h+=2,a>>>=2),a&1||h++,h},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function x(A){for(var n=new Array(A.bitLength()),a=0;a>>c&1}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var h=0;hn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,h;this.length>n.length?(a=this,h=n):(a=n,h=this);for(var c=0;cn.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){f(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,h=n%26;this._expand(a),h>0&&a--;for(var c=0;c0&&(this.words[c]=~this.words[c]&67108863>>26-h),this._strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){f(typeof n=="number"&&n>=0);var h=n/26|0,c=n%26;return this._expand(h+1),a?this.words[h]=this.words[h]|1<n.length?(h=this,c=n):(h=n,c=this);for(var C=0,g=0;g>>26;for(;C!==0&&g>>26;if(this.length=h.length,C!==0)this.words[this.length]=C,this.length++;else if(h!==this)for(;gn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var h=this.cmp(n);if(h===0)return this.negative=0,this.length=1,this.words[0]=0,this;var c,C;h>0?(c=this,C=n):(c=n,C=this);for(var g=0,t=0;t>26,this.words[t]=a&67108863;for(;g!==0&&t>26,this.words[t]=a&67108863;if(g===0&&t>>26,T=u&67108863,V=Math.min(b,n.length-1),P=Math.max(0,b-A.length+1);P<=V;P++){var F=b-P|0;c=A.words[F]|0,C=n.words[P]|0,g=c*C+T,R+=g/67108864|0,T=g&67108863}a.words[b]=T|0,u=R|0}return u!==0?a.words[b]=u|0:a.length--,a._strip()}var S=function(n,a,h){var c=n.words,C=a.words,g=h.words,t=0,u,b,R,T=c[0]|0,V=T&8191,P=T>>>13,F=c[1]|0,Y=F&8191,W=F>>>13,te=c[2]|0,z=te&8191,q=te>>>13,$=c[3]|0,le=$&8191,ae=$>>>13,he=c[4]|0,xe=he&8191,se=he>>>13,oe=c[5]|0,Ue=oe&8191,fe=oe>>>13,ce=c[6]|0,Te=ce&8191,ue=ce>>>13,Be=c[7]|0,Ve=Be&8191,H=Be>>>13,k=c[8]|0,G=k&8191,O=k>>>13,ee=c[9]|0,de=ee&8191,ie=ee>>>13,Ee=C[0]|0,Oe=Ee&8191,Ce=Ee>>>13,Qe=C[1]|0,Je=Qe&8191,me=Qe>>>13,Fe=C[2]|0,at=Fe&8191,ve=Fe>>>13,Ke=C[3]|0,nt=Ke&8191,we=Ke>>>13,Re=C[4]|0,Le=Re&8191,ge=Re>>>13,ye=C[5]|0,We=ye&8191,pe=ye>>>13,ke=C[6]|0,ot=ke&8191,Me=ke>>>13,Ne=C[7]|0,st=Ne&8191,be=Ne>>>13,Ge=C[8]|0,ft=Ge&8191,De=Ge>>>13,_e=C[9]|0,At=_e&8191,tt=_e>>>13;h.negative=n.negative^a.negative,h.length=19,u=Math.imul(V,Oe),b=Math.imul(V,Ce),b=b+Math.imul(P,Oe)|0,R=Math.imul(P,Ce);var Qt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,u=Math.imul(Y,Oe),b=Math.imul(Y,Ce),b=b+Math.imul(W,Oe)|0,R=Math.imul(W,Ce),u=u+Math.imul(V,Je)|0,b=b+Math.imul(V,me)|0,b=b+Math.imul(P,Je)|0,R=R+Math.imul(P,me)|0;var Et=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Et>>>26)|0,Et&=67108863,u=Math.imul(z,Oe),b=Math.imul(z,Ce),b=b+Math.imul(q,Oe)|0,R=Math.imul(q,Ce),u=u+Math.imul(Y,Je)|0,b=b+Math.imul(Y,me)|0,b=b+Math.imul(W,Je)|0,R=R+Math.imul(W,me)|0,u=u+Math.imul(V,at)|0,b=b+Math.imul(V,ve)|0,b=b+Math.imul(P,at)|0,R=R+Math.imul(P,ve)|0;var vt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(vt>>>26)|0,vt&=67108863,u=Math.imul(le,Oe),b=Math.imul(le,Ce),b=b+Math.imul(ae,Oe)|0,R=Math.imul(ae,Ce),u=u+Math.imul(z,Je)|0,b=b+Math.imul(z,me)|0,b=b+Math.imul(q,Je)|0,R=R+Math.imul(q,me)|0,u=u+Math.imul(Y,at)|0,b=b+Math.imul(Y,ve)|0,b=b+Math.imul(W,at)|0,R=R+Math.imul(W,ve)|0,u=u+Math.imul(V,nt)|0,b=b+Math.imul(V,we)|0,b=b+Math.imul(P,nt)|0,R=R+Math.imul(P,we)|0;var wt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(wt>>>26)|0,wt&=67108863,u=Math.imul(xe,Oe),b=Math.imul(xe,Ce),b=b+Math.imul(se,Oe)|0,R=Math.imul(se,Ce),u=u+Math.imul(le,Je)|0,b=b+Math.imul(le,me)|0,b=b+Math.imul(ae,Je)|0,R=R+Math.imul(ae,me)|0,u=u+Math.imul(z,at)|0,b=b+Math.imul(z,ve)|0,b=b+Math.imul(q,at)|0,R=R+Math.imul(q,ve)|0,u=u+Math.imul(Y,nt)|0,b=b+Math.imul(Y,we)|0,b=b+Math.imul(W,nt)|0,R=R+Math.imul(W,we)|0,u=u+Math.imul(V,Le)|0,b=b+Math.imul(V,ge)|0,b=b+Math.imul(P,Le)|0,R=R+Math.imul(P,ge)|0;var mt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(mt>>>26)|0,mt&=67108863,u=Math.imul(Ue,Oe),b=Math.imul(Ue,Ce),b=b+Math.imul(fe,Oe)|0,R=Math.imul(fe,Ce),u=u+Math.imul(xe,Je)|0,b=b+Math.imul(xe,me)|0,b=b+Math.imul(se,Je)|0,R=R+Math.imul(se,me)|0,u=u+Math.imul(le,at)|0,b=b+Math.imul(le,ve)|0,b=b+Math.imul(ae,at)|0,R=R+Math.imul(ae,ve)|0,u=u+Math.imul(z,nt)|0,b=b+Math.imul(z,we)|0,b=b+Math.imul(q,nt)|0,R=R+Math.imul(q,we)|0,u=u+Math.imul(Y,Le)|0,b=b+Math.imul(Y,ge)|0,b=b+Math.imul(W,Le)|0,R=R+Math.imul(W,ge)|0,u=u+Math.imul(V,We)|0,b=b+Math.imul(V,pe)|0,b=b+Math.imul(P,We)|0,R=R+Math.imul(P,pe)|0;var Mt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,u=Math.imul(Te,Oe),b=Math.imul(Te,Ce),b=b+Math.imul(ue,Oe)|0,R=Math.imul(ue,Ce),u=u+Math.imul(Ue,Je)|0,b=b+Math.imul(Ue,me)|0,b=b+Math.imul(fe,Je)|0,R=R+Math.imul(fe,me)|0,u=u+Math.imul(xe,at)|0,b=b+Math.imul(xe,ve)|0,b=b+Math.imul(se,at)|0,R=R+Math.imul(se,ve)|0,u=u+Math.imul(le,nt)|0,b=b+Math.imul(le,we)|0,b=b+Math.imul(ae,nt)|0,R=R+Math.imul(ae,we)|0,u=u+Math.imul(z,Le)|0,b=b+Math.imul(z,ge)|0,b=b+Math.imul(q,Le)|0,R=R+Math.imul(q,ge)|0,u=u+Math.imul(Y,We)|0,b=b+Math.imul(Y,pe)|0,b=b+Math.imul(W,We)|0,R=R+Math.imul(W,pe)|0,u=u+Math.imul(V,ot)|0,b=b+Math.imul(V,Me)|0,b=b+Math.imul(P,ot)|0,R=R+Math.imul(P,Me)|0;var qe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(qe>>>26)|0,qe&=67108863,u=Math.imul(Ve,Oe),b=Math.imul(Ve,Ce),b=b+Math.imul(H,Oe)|0,R=Math.imul(H,Ce),u=u+Math.imul(Te,Je)|0,b=b+Math.imul(Te,me)|0,b=b+Math.imul(ue,Je)|0,R=R+Math.imul(ue,me)|0,u=u+Math.imul(Ue,at)|0,b=b+Math.imul(Ue,ve)|0,b=b+Math.imul(fe,at)|0,R=R+Math.imul(fe,ve)|0,u=u+Math.imul(xe,nt)|0,b=b+Math.imul(xe,we)|0,b=b+Math.imul(se,nt)|0,R=R+Math.imul(se,we)|0,u=u+Math.imul(le,Le)|0,b=b+Math.imul(le,ge)|0,b=b+Math.imul(ae,Le)|0,R=R+Math.imul(ae,ge)|0,u=u+Math.imul(z,We)|0,b=b+Math.imul(z,pe)|0,b=b+Math.imul(q,We)|0,R=R+Math.imul(q,pe)|0,u=u+Math.imul(Y,ot)|0,b=b+Math.imul(Y,Me)|0,b=b+Math.imul(W,ot)|0,R=R+Math.imul(W,Me)|0,u=u+Math.imul(V,st)|0,b=b+Math.imul(V,be)|0,b=b+Math.imul(P,st)|0,R=R+Math.imul(P,be)|0;var Ye=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,u=Math.imul(G,Oe),b=Math.imul(G,Ce),b=b+Math.imul(O,Oe)|0,R=Math.imul(O,Ce),u=u+Math.imul(Ve,Je)|0,b=b+Math.imul(Ve,me)|0,b=b+Math.imul(H,Je)|0,R=R+Math.imul(H,me)|0,u=u+Math.imul(Te,at)|0,b=b+Math.imul(Te,ve)|0,b=b+Math.imul(ue,at)|0,R=R+Math.imul(ue,ve)|0,u=u+Math.imul(Ue,nt)|0,b=b+Math.imul(Ue,we)|0,b=b+Math.imul(fe,nt)|0,R=R+Math.imul(fe,we)|0,u=u+Math.imul(xe,Le)|0,b=b+Math.imul(xe,ge)|0,b=b+Math.imul(se,Le)|0,R=R+Math.imul(se,ge)|0,u=u+Math.imul(le,We)|0,b=b+Math.imul(le,pe)|0,b=b+Math.imul(ae,We)|0,R=R+Math.imul(ae,pe)|0,u=u+Math.imul(z,ot)|0,b=b+Math.imul(z,Me)|0,b=b+Math.imul(q,ot)|0,R=R+Math.imul(q,Me)|0,u=u+Math.imul(Y,st)|0,b=b+Math.imul(Y,be)|0,b=b+Math.imul(W,st)|0,R=R+Math.imul(W,be)|0,u=u+Math.imul(V,ft)|0,b=b+Math.imul(V,De)|0,b=b+Math.imul(P,ft)|0,R=R+Math.imul(P,De)|0;var Pe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,u=Math.imul(de,Oe),b=Math.imul(de,Ce),b=b+Math.imul(ie,Oe)|0,R=Math.imul(ie,Ce),u=u+Math.imul(G,Je)|0,b=b+Math.imul(G,me)|0,b=b+Math.imul(O,Je)|0,R=R+Math.imul(O,me)|0,u=u+Math.imul(Ve,at)|0,b=b+Math.imul(Ve,ve)|0,b=b+Math.imul(H,at)|0,R=R+Math.imul(H,ve)|0,u=u+Math.imul(Te,nt)|0,b=b+Math.imul(Te,we)|0,b=b+Math.imul(ue,nt)|0,R=R+Math.imul(ue,we)|0,u=u+Math.imul(Ue,Le)|0,b=b+Math.imul(Ue,ge)|0,b=b+Math.imul(fe,Le)|0,R=R+Math.imul(fe,ge)|0,u=u+Math.imul(xe,We)|0,b=b+Math.imul(xe,pe)|0,b=b+Math.imul(se,We)|0,R=R+Math.imul(se,pe)|0,u=u+Math.imul(le,ot)|0,b=b+Math.imul(le,Me)|0,b=b+Math.imul(ae,ot)|0,R=R+Math.imul(ae,Me)|0,u=u+Math.imul(z,st)|0,b=b+Math.imul(z,be)|0,b=b+Math.imul(q,st)|0,R=R+Math.imul(q,be)|0,u=u+Math.imul(Y,ft)|0,b=b+Math.imul(Y,De)|0,b=b+Math.imul(W,ft)|0,R=R+Math.imul(W,De)|0,u=u+Math.imul(V,At)|0,b=b+Math.imul(V,tt)|0,b=b+Math.imul(P,At)|0,R=R+Math.imul(P,tt)|0;var ze=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ze>>>26)|0,ze&=67108863,u=Math.imul(de,Je),b=Math.imul(de,me),b=b+Math.imul(ie,Je)|0,R=Math.imul(ie,me),u=u+Math.imul(G,at)|0,b=b+Math.imul(G,ve)|0,b=b+Math.imul(O,at)|0,R=R+Math.imul(O,ve)|0,u=u+Math.imul(Ve,nt)|0,b=b+Math.imul(Ve,we)|0,b=b+Math.imul(H,nt)|0,R=R+Math.imul(H,we)|0,u=u+Math.imul(Te,Le)|0,b=b+Math.imul(Te,ge)|0,b=b+Math.imul(ue,Le)|0,R=R+Math.imul(ue,ge)|0,u=u+Math.imul(Ue,We)|0,b=b+Math.imul(Ue,pe)|0,b=b+Math.imul(fe,We)|0,R=R+Math.imul(fe,pe)|0,u=u+Math.imul(xe,ot)|0,b=b+Math.imul(xe,Me)|0,b=b+Math.imul(se,ot)|0,R=R+Math.imul(se,Me)|0,u=u+Math.imul(le,st)|0,b=b+Math.imul(le,be)|0,b=b+Math.imul(ae,st)|0,R=R+Math.imul(ae,be)|0,u=u+Math.imul(z,ft)|0,b=b+Math.imul(z,De)|0,b=b+Math.imul(q,ft)|0,R=R+Math.imul(q,De)|0,u=u+Math.imul(Y,At)|0,b=b+Math.imul(Y,tt)|0,b=b+Math.imul(W,At)|0,R=R+Math.imul(W,tt)|0;var Xe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,u=Math.imul(de,at),b=Math.imul(de,ve),b=b+Math.imul(ie,at)|0,R=Math.imul(ie,ve),u=u+Math.imul(G,nt)|0,b=b+Math.imul(G,we)|0,b=b+Math.imul(O,nt)|0,R=R+Math.imul(O,we)|0,u=u+Math.imul(Ve,Le)|0,b=b+Math.imul(Ve,ge)|0,b=b+Math.imul(H,Le)|0,R=R+Math.imul(H,ge)|0,u=u+Math.imul(Te,We)|0,b=b+Math.imul(Te,pe)|0,b=b+Math.imul(ue,We)|0,R=R+Math.imul(ue,pe)|0,u=u+Math.imul(Ue,ot)|0,b=b+Math.imul(Ue,Me)|0,b=b+Math.imul(fe,ot)|0,R=R+Math.imul(fe,Me)|0,u=u+Math.imul(xe,st)|0,b=b+Math.imul(xe,be)|0,b=b+Math.imul(se,st)|0,R=R+Math.imul(se,be)|0,u=u+Math.imul(le,ft)|0,b=b+Math.imul(le,De)|0,b=b+Math.imul(ae,ft)|0,R=R+Math.imul(ae,De)|0,u=u+Math.imul(z,At)|0,b=b+Math.imul(z,tt)|0,b=b+Math.imul(q,At)|0,R=R+Math.imul(q,tt)|0;var rt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(rt>>>26)|0,rt&=67108863,u=Math.imul(de,nt),b=Math.imul(de,we),b=b+Math.imul(ie,nt)|0,R=Math.imul(ie,we),u=u+Math.imul(G,Le)|0,b=b+Math.imul(G,ge)|0,b=b+Math.imul(O,Le)|0,R=R+Math.imul(O,ge)|0,u=u+Math.imul(Ve,We)|0,b=b+Math.imul(Ve,pe)|0,b=b+Math.imul(H,We)|0,R=R+Math.imul(H,pe)|0,u=u+Math.imul(Te,ot)|0,b=b+Math.imul(Te,Me)|0,b=b+Math.imul(ue,ot)|0,R=R+Math.imul(ue,Me)|0,u=u+Math.imul(Ue,st)|0,b=b+Math.imul(Ue,be)|0,b=b+Math.imul(fe,st)|0,R=R+Math.imul(fe,be)|0,u=u+Math.imul(xe,ft)|0,b=b+Math.imul(xe,De)|0,b=b+Math.imul(se,ft)|0,R=R+Math.imul(se,De)|0,u=u+Math.imul(le,At)|0,b=b+Math.imul(le,tt)|0,b=b+Math.imul(ae,At)|0,R=R+Math.imul(ae,tt)|0;var it=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(it>>>26)|0,it&=67108863,u=Math.imul(de,Le),b=Math.imul(de,ge),b=b+Math.imul(ie,Le)|0,R=Math.imul(ie,ge),u=u+Math.imul(G,We)|0,b=b+Math.imul(G,pe)|0,b=b+Math.imul(O,We)|0,R=R+Math.imul(O,pe)|0,u=u+Math.imul(Ve,ot)|0,b=b+Math.imul(Ve,Me)|0,b=b+Math.imul(H,ot)|0,R=R+Math.imul(H,Me)|0,u=u+Math.imul(Te,st)|0,b=b+Math.imul(Te,be)|0,b=b+Math.imul(ue,st)|0,R=R+Math.imul(ue,be)|0,u=u+Math.imul(Ue,ft)|0,b=b+Math.imul(Ue,De)|0,b=b+Math.imul(fe,ft)|0,R=R+Math.imul(fe,De)|0,u=u+Math.imul(xe,At)|0,b=b+Math.imul(xe,tt)|0,b=b+Math.imul(se,At)|0,R=R+Math.imul(se,tt)|0;var ct=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ct>>>26)|0,ct&=67108863,u=Math.imul(de,We),b=Math.imul(de,pe),b=b+Math.imul(ie,We)|0,R=Math.imul(ie,pe),u=u+Math.imul(G,ot)|0,b=b+Math.imul(G,Me)|0,b=b+Math.imul(O,ot)|0,R=R+Math.imul(O,Me)|0,u=u+Math.imul(Ve,st)|0,b=b+Math.imul(Ve,be)|0,b=b+Math.imul(H,st)|0,R=R+Math.imul(H,be)|0,u=u+Math.imul(Te,ft)|0,b=b+Math.imul(Te,De)|0,b=b+Math.imul(ue,ft)|0,R=R+Math.imul(ue,De)|0,u=u+Math.imul(Ue,At)|0,b=b+Math.imul(Ue,tt)|0,b=b+Math.imul(fe,At)|0,R=R+Math.imul(fe,tt)|0;var ut=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ut>>>26)|0,ut&=67108863,u=Math.imul(de,ot),b=Math.imul(de,Me),b=b+Math.imul(ie,ot)|0,R=Math.imul(ie,Me),u=u+Math.imul(G,st)|0,b=b+Math.imul(G,be)|0,b=b+Math.imul(O,st)|0,R=R+Math.imul(O,be)|0,u=u+Math.imul(Ve,ft)|0,b=b+Math.imul(Ve,De)|0,b=b+Math.imul(H,ft)|0,R=R+Math.imul(H,De)|0,u=u+Math.imul(Te,At)|0,b=b+Math.imul(Te,tt)|0,b=b+Math.imul(ue,At)|0,R=R+Math.imul(ue,tt)|0;var It=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(It>>>26)|0,It&=67108863,u=Math.imul(de,st),b=Math.imul(de,be),b=b+Math.imul(ie,st)|0,R=Math.imul(ie,be),u=u+Math.imul(G,ft)|0,b=b+Math.imul(G,De)|0,b=b+Math.imul(O,ft)|0,R=R+Math.imul(O,De)|0,u=u+Math.imul(Ve,At)|0,b=b+Math.imul(Ve,tt)|0,b=b+Math.imul(H,At)|0,R=R+Math.imul(H,tt)|0;var pt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(pt>>>26)|0,pt&=67108863,u=Math.imul(de,ft),b=Math.imul(de,De),b=b+Math.imul(ie,ft)|0,R=Math.imul(ie,De),u=u+Math.imul(G,At)|0,b=b+Math.imul(G,tt)|0,b=b+Math.imul(O,At)|0,R=R+Math.imul(O,tt)|0;var EA=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(de,At),b=Math.imul(de,tt),b=b+Math.imul(ie,At)|0,R=Math.imul(ie,tt);var YA=(t+u|0)+((b&8191)<<13)|0;return t=(R+(b>>>13)|0)+(YA>>>26)|0,YA&=67108863,g[0]=Qt,g[1]=Et,g[2]=vt,g[3]=wt,g[4]=mt,g[5]=Mt,g[6]=qe,g[7]=Ye,g[8]=Pe,g[9]=ze,g[10]=Xe,g[11]=rt,g[12]=it,g[13]=ct,g[14]=ut,g[15]=It,g[16]=pt,g[17]=EA,g[18]=YA,t!==0&&(g[19]=t,h.length++),h};Math.imul||(S=D);function K(A,n,a){a.negative=n.negative^A.negative,a.length=A.length+n.length;for(var h=0,c=0,C=0;C>>26)|0,c+=g>>>26,g&=67108863}a.words[C]=t,h=g,g=c}return h!==0?a.words[C]=h:a.length--,a._strip()}function N(A,n,a){return K(A,n,a)}r.prototype.mulTo=function(n,a){var h,c=this.length+n.length;return this.length===10&&n.length===10?h=S(this,n,a):c<63?h=D(this,n,a):c<1024?h=K(this,n,a):h=N(this,n,a),h},r.prototype.mul=function(n){var a=new r(null);return a.words=new Array(this.length+n.length),this.mulTo(n,a)},r.prototype.mulf=function(n){var a=new r(null);return a.words=new Array(this.length+n.length),N(this,n,a)},r.prototype.imul=function(n){return this.clone().mulTo(n,this)},r.prototype.imuln=function(n){var a=n<0;a&&(n=-n),f(typeof n=="number"),f(n<67108864);for(var h=0,c=0;c>=26,h+=C/67108864|0,h+=g>>>26,this.words[c]=g&67108863}return h!==0&&(this.words[c]=h,this.length++),a?this.ineg():this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=x(n);if(a.length===0)return new r(1);for(var h=this,c=0;c=0);var a=n%26,h=(n-a)/26,c=67108863>>>26-a<<26-a,C;if(a!==0){var g=0;for(C=0;C>>26-a}g&&(this.words[C]=g,this.length++)}if(h!==0){for(C=this.length-1;C>=0;C--)this.words[C+h]=this.words[C];for(C=0;C=0);var c;a?c=(a-a%26)/26:c=0;var C=n%26,g=Math.min((n-C)/26,this.length),t=67108863^67108863>>>C<g)for(this.length-=g,b=0;b=0&&(R!==0||b>=c);b--){var T=this.words[b]|0;this.words[b]=R<<26-C|T>>>C,R=T&t}return u&&R!==0&&(u.words[u.length++]=R),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},r.prototype.ishrn=function(n,a,h){return f(this.negative===0),this.iushrn(n,a,h)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){f(typeof n=="number"&&n>=0);var a=n%26,h=(n-a)/26,c=1<=0);var a=n%26,h=(n-a)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=h)return this;if(a!==0&&h++,this.length=Math.min(h,this.length),a!==0){var c=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(f(typeof n=="number"),f(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[C+h]=g&67108863}for(;C>26,this.words[C+h]=g&67108863;if(t===0)return this._strip();for(f(t===-1),t=0,C=0;C>26,this.words[C]=g&67108863;return this.negative=1,this._strip()},r.prototype._wordDiv=function(n,a){var h=this.length-n.length,c=this.clone(),C=n,g=C.words[C.length-1]|0,t=this._countBits(g);h=26-t,h!==0&&(C=C.ushln(h),c.iushln(h),g=C.words[C.length-1]|0);var u=c.length-C.length,b;if(a!=="mod"){b=new r(null),b.length=u+1,b.words=new Array(b.length);for(var R=0;R=0;V--){var P=(c.words[C.length+V]|0)*67108864+(c.words[C.length+V-1]|0);for(P=Math.min(P/g|0,67108863),c._ishlnsubmul(C,P,V);c.negative!==0;)P--,c.negative=0,c._ishlnsubmul(C,1,V),c.isZero()||(c.negative^=1);b&&(b.words[V]=P)}return b&&b._strip(),c._strip(),a!=="div"&&h!==0&&c.iushrn(h),{div:b||null,mod:c}},r.prototype.divmod=function(n,a,h){if(f(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var c,C,g;return this.negative!==0&&n.negative===0?(g=this.neg().divmod(n,a),a!=="mod"&&(c=g.div.neg()),a!=="div"&&(C=g.mod.neg(),h&&C.negative!==0&&C.iadd(n)),{div:c,mod:C}):this.negative===0&&n.negative!==0?(g=this.divmod(n.neg(),a),a!=="mod"&&(c=g.div.neg()),{div:c,mod:g.mod}):this.negative&n.negative?(g=this.neg().divmod(n.neg(),a),a!=="div"&&(C=g.mod.neg(),h&&C.negative!==0&&C.isub(n)),{div:g.div,mod:C}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modrn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modrn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var h=a.div.negative!==0?a.mod.isub(n):a.mod,c=n.ushrn(1),C=n.andln(1),g=h.cmp(c);return g<0||C===1&&g===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modrn=function(n){var a=n<0;a&&(n=-n),f(n<=67108863);for(var h=(1<<26)%n,c=0,C=this.length-1;C>=0;C--)c=(h*c+(this.words[C]|0))%n;return a?-c:c},r.prototype.modn=function(n){return this.modrn(n)},r.prototype.idivn=function(n){var a=n<0;a&&(n=-n),f(n<=67108863);for(var h=0,c=this.length-1;c>=0;c--){var C=(this.words[c]|0)+h*67108864;this.words[c]=C/n|0,h=C%n}return this._strip(),a?this.ineg():this},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){f(n.negative===0),f(!n.isZero());var a=this,h=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var c=new r(1),C=new r(0),g=new r(0),t=new r(1),u=0;a.isEven()&&h.isEven();)a.iushrn(1),h.iushrn(1),++u;for(var b=h.clone(),R=a.clone();!a.isZero();){for(var T=0,V=1;!(a.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(a.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(b),C.isub(R)),c.iushrn(1),C.iushrn(1);for(var P=0,F=1;!(h.words[0]&F)&&P<26;++P,F<<=1);if(P>0)for(h.iushrn(P);P-- >0;)(g.isOdd()||t.isOdd())&&(g.iadd(b),t.isub(R)),g.iushrn(1),t.iushrn(1);a.cmp(h)>=0?(a.isub(h),c.isub(g),C.isub(t)):(h.isub(a),g.isub(c),t.isub(C))}return{a:g,b:t,gcd:h.iushln(u)}},r.prototype._invmp=function(n){f(n.negative===0),f(!n.isZero());var a=this,h=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var c=new r(1),C=new r(0),g=h.clone();a.cmpn(1)>0&&h.cmpn(1)>0;){for(var t=0,u=1;!(a.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(a.iushrn(t);t-- >0;)c.isOdd()&&c.iadd(g),c.iushrn(1);for(var b=0,R=1;!(h.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(h.iushrn(b);b-- >0;)C.isOdd()&&C.iadd(g),C.iushrn(1);a.cmp(h)>=0?(a.isub(h),c.isub(C)):(h.isub(a),C.isub(c))}var T;return a.cmpn(1)===0?T=c:T=C,T.cmpn(0)<0&&T.iadd(n),T},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),h=n.clone();a.negative=0,h.negative=0;for(var c=0;a.isEven()&&h.isEven();c++)a.iushrn(1),h.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;h.isEven();)h.iushrn(1);var C=a.cmp(h);if(C<0){var g=a;a=h,h=g}else if(C===0||h.cmpn(1)===0)break;a.isub(h)}while(!0);return h.iushln(c)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){f(typeof n=="number");var a=n%26,h=(n-a)/26,c=1<>>26,t&=67108863,this.words[g]=t}return C!==0&&(this.words[g]=C,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this._strip();var h;if(this.length>1)h=1;else{a&&(n=-n),f(n<=67108863,"Number is too big");var c=this.words[0]|0;h=c===n?0:cn.length)return 1;if(this.length=0;h--){var c=this.words[h]|0,C=n.words[h]|0;if(c!==C){cC&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new E(n)},r.prototype.toRed=function(n){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return f(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return f(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var L={k256:null,p224:null,p192:null,p25519:null};function j(A,n){this.name=A,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}j.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},j.prototype.ireduce=function(n){var a=n,h;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),h=a.bitLength();while(h>this.n);var c=h0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},j.prototype.split=function(n,a){n.iushrn(this.n,0,a)},j.prototype.imulK=function(n){return n.imul(this.k)};function re(){j.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(re,j),re.prototype.split=function(n,a){for(var h=4194303,c=Math.min(n.length,9),C=0;C>>22,g=t}g>>>=22,n.words[C-10]=g,g===0&&n.length>10?n.length-=10:n.length-=9},re.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,h=0;h>>=26,n.words[h]=C,a=c}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(L[n])return L[n];var a;if(n==="k256")a=new re;else if(n==="p224")a=new Z;else if(n==="p192")a=new J;else if(n==="p25519")a=new Ae;else throw new Error("Unknown prime "+n);return L[n]=a,a};function E(A){if(typeof A=="string"){var n=r._prime(A);this.m=n.p,this.prime=n}else f(A.gtn(1),"modulus must be greater than 1"),this.m=A,this.prime=null}E.prototype._verify1=function(n){f(n.negative===0,"red works only with positives"),f(n.red,"red works only with red numbers")},E.prototype._verify2=function(n,a){f((n.negative|a.negative)===0,"red works only with positives"),f(n.red&&n.red===a.red,"red works only with red numbers")},E.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):(d(n,n.umod(this.m)._forceRed(this)),n)},E.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},E.prototype.add=function(n,a){this._verify2(n,a);var h=n.add(a);return h.cmp(this.m)>=0&&h.isub(this.m),h._forceRed(this)},E.prototype.iadd=function(n,a){this._verify2(n,a);var h=n.iadd(a);return h.cmp(this.m)>=0&&h.isub(this.m),h},E.prototype.sub=function(n,a){this._verify2(n,a);var h=n.sub(a);return h.cmpn(0)<0&&h.iadd(this.m),h._forceRed(this)},E.prototype.isub=function(n,a){this._verify2(n,a);var h=n.isub(a);return h.cmpn(0)<0&&h.iadd(this.m),h},E.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},E.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},E.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},E.prototype.isqr=function(n){return this.imul(n,n.clone())},E.prototype.sqr=function(n){return this.mul(n,n)},E.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(f(a%2===1),a===3){var h=this.m.add(new r(1)).iushrn(2);return this.pow(n,h)}for(var c=this.m.subn(1),C=0;!c.isZero()&&c.andln(1)===0;)C++,c.iushrn(1);f(!c.isZero());var g=new r(1).toRed(this),t=g.redNeg(),u=this.m.subn(1).iushrn(1),b=this.m.bitLength();for(b=new r(2*b*b).toRed(this);this.pow(b,u).cmp(t)!==0;)b.redIAdd(t);for(var R=this.pow(b,c),T=this.pow(n,c.addn(1).iushrn(1)),V=this.pow(n,c),P=C;V.cmp(g)!==0;){for(var F=V,Y=0;F.cmp(g)!==0;Y++)F=F.redSqr();f(Y=0;C--){for(var R=a.words[C],T=b-1;T>=0;T--){var V=R>>T&1;if(g!==c[0]&&(g=this.sqr(g)),V===0&&t===0){u=0;continue}t<<=1,t|=V,u++,!(u!==h&&(C!==0||T!==0))&&(g=this.mul(g,c[t]),u=0,t=0)}b=26}return g},E.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},E.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new e(n)};function e(A){E.call(this,A),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(e,E),e.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},e.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},e.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var h=n.imul(a),c=h.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),C=h.isub(c).iushrn(this.shift),g=C;return C.cmp(this.m)>=0?g=C.isub(this.m):C.cmpn(0)<0&&(g=C.iadd(this.m)),g._forceRed(this)},e.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var h=n.mul(a),c=h.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),C=h.isub(c).iushrn(this.shift),g=C;return C.cmp(this.m)>=0?g=C.isub(this.m):C.cmpn(0)<0&&(g=C.iadd(this.m)),g._forceRed(this)},e.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(o,xde)}(qC)),qC.exports}var AR=rQ();const cA=gr(AR);let Rde=class Ite{constructor(i,s){hi(this,"share",void 0),hi(this,"shareIndex",void 0),this.share=new cA(s,"hex"),this.shareIndex=new cA(i,"hex")}static fromJSON(i){const{share:s,shareIndex:f}=i;return new Ite(f,s)}toJSON(){return{share:this.share.toString("hex",64),shareIndex:this.shareIndex.toString("hex",64)}}},kde=class{constructor(i,s){hi(this,"polynomial",void 0),hi(this,"ecCurve",void 0),this.polynomial=i,this.ecCurve=s}getThreshold(){return this.polynomial.length}polyEval(i){const s=new cA(i,"hex");let f=new cA(s),l=new cA(0);l=l.add(this.polynomial[0]);for(let r=1;rtypeof l=="number"?new cA(l):l instanceof cA?l:typeof l=="string"?new cA(l,"hex"):l),f={};for(let l=0;l=0&&e<=D.levels.SILENT)return e;throw new TypeError("log.setLevel() called with invalid level: "+E)}D.name=m,D.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},D.methodFactory=x||v,D.getLevel=function(){return N??K??S},D.setLevel=function(E,e){return N=J(E),e!==!1&&j(N),d.call(D)},D.setDefaultLevel=function(E){K=J(E),re()||D.setLevel(E,!1)},D.resetLevel=function(){N=null,Z(),d.call(D)},D.enableAll=function(E){D.setLevel(D.levels.TRACE,E)},D.disableAll=function(E){D.setLevel(D.levels.SILENT,E)},D.rebuild=function(){if(B!==D&&(S=J(B.getLevel())),d.call(D),B===D)for(var E in r)r[E].rebuild()},S=J(B?B.getLevel():"WARN");var Ae=re();Ae!=null&&(N=J(Ae)),d.call(D)}B=new w,B.getLogger=function(x){if(typeof x!="symbol"&&typeof x!="string"||x==="")throw new TypeError("You must supply a name when creating a logger.");var D=r[x];return D||(D=r[x]=new w(x,B.methodFactory)),D};var M=typeof window!==s?window.log:void 0;return B.noConflict=function(){return typeof window!==s&&window.log===B&&(window.log=M),B},B.getLoggers=function(){return r},B.default=B,B})}(HC)),HC.exports}var Cte=Lde();const Vl=gr(Cte),xE=Vl.getLogger("http-helpers");xE.setLevel(Cte.levels.INFO);let rR="torus-default",iR="";const Ude="x-api-key",qde="x-embed-host";function Hde(o){iR=o}function Tde(o){rR=o}async function Ete(o,i){let s=null;try{s=new URL(o)}catch{}return fetch(o,i)}function pte(){const o={};return rR&&(o[Ude]=rR),iR&&(o[qde]=iR),o}function Qte(o){xE.info(`Response: ${o.status} ${o.statusText}`),xE.info(`Url: ${o.url}`)}function Yde(o){const i=o.headers.get("x-web3-correlation-id");i&&xE.info(`Request tracing with traceID = ${i}`)}const Jde=async(o,i)=>{let s=null;try{const f=new Promise((r,B)=>{s=setTimeout(()=>{B(new Error(`Timed out in ${o}ms`))},o)}),l=await Promise.race([i,f]);return s!=null&&clearTimeout(s),l}catch(f){throw s!=null&&clearTimeout(s),f}},Pde=async(o,i={},s={})=>{const f={mode:"cors",headers:{}};s.useAPIKey&&(f.headers=vr(vr({},f.headers),pte())),i.method="GET";const l=Bte(f,i),r=await Ete(o,l);if(r.ok){const B=r.headers.get("content-type");return B!=null&&B.includes("application/json")?r.json():r.text()}throw Qte(r),r},ki=(o,i={},s={},f={})=>{const l={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};f.useAPIKey&&(l.headers=vr(vr({},l.headers),pte())),s.method="POST";const r=Bte(l,s);return f.isUrlEncodedData?(r.body=i,r.headers["Content-Type"]==="application/json; charset=utf-8"&&delete r.headers["Content-Type"]):r.body=JSON.stringify(i),Jde(f.timeout||6e4,Ete(o,r).then(B=>{if(f.logTracingHeader&&Yde(B),B.ok){const I=B.headers.get("content-type");return I!=null&&I.includes("application/json")?B.json():B.text()}throw Qte(B),B}))},va=(o,i)=>({jsonrpc:"2.0",method:o,id:10,params:i});var t2={};const Ode="elliptic",jde="6.5.7",Wde="EC cryptography",Vde="lib/elliptic.js",Zde=["lib"],zde={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},$de={type:"git",url:"git@github.com:indutny/elliptic"},Xde=["EC","Elliptic","curve","Cryptography"],eIe="Fedor Indutny ",tIe="MIT",AIe={url:"https://github.com/indutny/elliptic/issues"},rIe="https://github.com/indutny/elliptic",iIe={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},nIe={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},oIe={name:Ode,version:jde,description:Wde,main:Vde,files:Zde,scripts:zde,repository:$de,keywords:Xde,author:eIe,license:tIe,bugs:AIe,homepage:rIe,devDependencies:iIe,dependencies:nIe};var A2={},TC={exports:{}},aIe=TC.exports,QU;function Es(){return QU||(QU=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,aIe)}(TC)),TC.exports}var r2,yU;function Bo(){if(yU)return r2;yU=1,r2=o;function o(i,s){if(!i)throw new Error(s||"Assertion failed")}return o.equal=function(s,f,l){if(s!=f)throw new Error(l||"Assertion failed: "+s+" != "+f)},r2}var i2={},vU;function yte(){return vU||(vU=1,function(o){var i=o;function s(r,B){if(Array.isArray(r))return r.slice();if(!r)return[];var I=[];if(typeof r!="string"){for(var p=0;p>8,y=Q&255;d?I.push(d,y):I.push(y)}return I}i.toArray=s;function f(r){return r.length===1?"0"+r:r}i.zero2=f;function l(r){for(var B="",I=0;I(m>>1)-1?D=(m>>1)-S:D=S,x.isubn(D)):D=0,w[M]=D,x.iushrn(1)}return w}i.getNAF=r;function B(d,y){var v=[[],[]];d=d.clone(),y=y.clone();for(var w=0,M=0,m;d.cmpn(-w)>0||y.cmpn(-M)>0;){var x=d.andln(3)+w&3,D=y.andln(3)+M&3;x===3&&(x=-1),D===3&&(D=-1);var S;x&1?(m=d.andln(7)+w&7,(m===3||m===5)&&D===2?S=-x:S=x):S=0,v[0].push(S);var K;D&1?(m=y.andln(7)+M&7,(m===3||m===5)&&x===2?K=-D:K=D):K=0,v[1].push(K),2*w===S+1&&(w=1-w),2*M===K+1&&(M=1-M),d.iushrn(1),y.iushrn(1)}return v}i.getJSF=B;function I(d,y,v){var w="_"+y;d.prototype[y]=function(){return this[w]!==void 0?this[w]:this[w]=v.call(this)}}i.cachedProperty=I;function p(d){return typeof d=="string"?i.toArray(d,"hex"):d}i.parseBytes=p;function Q(d){return new s(d,"hex","le")}i.intFromLE=Q}(A2)),A2}var nB={exports:{}},IA={},oB={exports:{}},aB={exports:{}},n2={},ac={},mU;function sIe(){if(mU)return ac;mU=1,ac.byteLength=I,ac.toByteArray=Q,ac.fromByteArray=v;for(var o=[],i=[],s=typeof Uint8Array<"u"?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,r=f.length;l0)throw new Error("Invalid string. Length must be a multiple of 4");var m=w.indexOf("=");m===-1&&(m=M);var x=m===M?0:4-m%4;return[m,x]}function I(w){var M=B(w),m=M[0],x=M[1];return(m+x)*3/4-x}function p(w,M,m){return(M+m)*3/4-m}function Q(w){var M,m=B(w),x=m[0],D=m[1],S=new s(p(w,x,D)),K=0,N=D>0?x-4:x,L;for(L=0;L>16&255,S[K++]=M>>8&255,S[K++]=M&255;return D===2&&(M=i[w.charCodeAt(L)]<<2|i[w.charCodeAt(L+1)]>>4,S[K++]=M&255),D===1&&(M=i[w.charCodeAt(L)]<<10|i[w.charCodeAt(L+1)]<<4|i[w.charCodeAt(L+2)]>>2,S[K++]=M>>8&255,S[K++]=M&255),S}function d(w){return o[w>>18&63]+o[w>>12&63]+o[w>>6&63]+o[w&63]}function y(w,M,m){for(var x,D=[],S=M;SN?N:K+S));return x===1?(M=w[m-1],D.push(o[M>>2]+o[M<<4&63]+"==")):x===2&&(M=(w[m-2]<<8)+w[m-1],D.push(o[M>>10]+o[M>>4&63]+o[M<<2&63]+"=")),D.join("")}return ac}var sB={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */var MU;function fIe(){return MU||(MU=1,sB.read=function(o,i,s,f,l){var r,B,I=l*8-f-1,p=(1<>1,d=-7,y=s?l-1:0,v=s?-1:1,w=o[i+y];for(y+=v,r=w&(1<<-d)-1,w>>=-d,d+=I;d>0;r=r*256+o[i+y],y+=v,d-=8);for(B=r&(1<<-d)-1,r>>=-d,d+=f;d>0;B=B*256+o[i+y],y+=v,d-=8);if(r===0)r=1-Q;else{if(r===p)return B?NaN:(w?-1:1)*(1/0);B=B+Math.pow(2,f),r=r-Q}return(w?-1:1)*B*Math.pow(2,r-f)},sB.write=function(o,i,s,f,l,r){var B,I,p,Q=r*8-l-1,d=(1<>1,v=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=f?0:r-1,M=f?1:-1,m=i<0||i===0&&1/i<0?1:0;for(i=Math.abs(i),isNaN(i)||i===1/0?(I=isNaN(i)?1:0,B=d):(B=Math.floor(Math.log(i)/Math.LN2),i*(p=Math.pow(2,-B))<1&&(B--,p*=2),B+y>=1?i+=v/p:i+=v*Math.pow(2,1-y),i*p>=2&&(B++,p/=2),B+y>=d?(I=0,B=d):B+y>=1?(I=(i*p-1)*Math.pow(2,l),B=B+y):(I=i*Math.pow(2,y-1)*Math.pow(2,l),B=0));l>=8;o[s+w]=I&255,w+=M,I/=256,l-=8);for(B=B<0;o[s+w]=B&255,w+=M,B/=256,Q-=8);o[s+w-M]|=m*128}),sB}/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */var bU;function Wo(){return bU||(bU=1,function(o){const i=sIe(),s=fIe(),f=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;o.Buffer=I,o.SlowBuffer=S,o.INSPECT_MAX_BYTES=50;const l=2147483647;o.kMaxLength=l,I.TYPED_ARRAY_SUPPORT=r(),!I.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function r(){try{const H=new Uint8Array(1),k={foo:function(){return 42}};return Object.setPrototypeOf(k,Uint8Array.prototype),Object.setPrototypeOf(H,k),H.foo()===42}catch{return!1}}Object.defineProperty(I.prototype,"parent",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.buffer}}),Object.defineProperty(I.prototype,"offset",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.byteOffset}});function B(H){if(H>l)throw new RangeError('The value "'+H+'" is invalid for option "size"');const k=new Uint8Array(H);return Object.setPrototypeOf(k,I.prototype),k}function I(H,k,G){if(typeof H=="number"){if(typeof k=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(H)}return p(H,k,G)}I.poolSize=8192;function p(H,k,G){if(typeof H=="string")return v(H,k);if(ArrayBuffer.isView(H))return M(H);if(H==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof H);if(ce(H,ArrayBuffer)||H&&ce(H.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ce(H,SharedArrayBuffer)||H&&ce(H.buffer,SharedArrayBuffer)))return m(H,k,G);if(typeof H=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const O=H.valueOf&&H.valueOf();if(O!=null&&O!==H)return I.from(O,k,G);const ee=x(H);if(ee)return ee;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof H[Symbol.toPrimitive]=="function")return I.from(H[Symbol.toPrimitive]("string"),k,G);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof H)}I.from=function(H,k,G){return p(H,k,G)},Object.setPrototypeOf(I.prototype,Uint8Array.prototype),Object.setPrototypeOf(I,Uint8Array);function Q(H){if(typeof H!="number")throw new TypeError('"size" argument must be of type number');if(H<0)throw new RangeError('The value "'+H+'" is invalid for option "size"')}function d(H,k,G){return Q(H),H<=0?B(H):k!==void 0?typeof G=="string"?B(H).fill(k,G):B(H).fill(k):B(H)}I.alloc=function(H,k,G){return d(H,k,G)};function y(H){return Q(H),B(H<0?0:D(H)|0)}I.allocUnsafe=function(H){return y(H)},I.allocUnsafeSlow=function(H){return y(H)};function v(H,k){if((typeof k!="string"||k==="")&&(k="utf8"),!I.isEncoding(k))throw new TypeError("Unknown encoding: "+k);const G=K(H,k)|0;let O=B(G);const ee=O.write(H,k);return ee!==G&&(O=O.slice(0,ee)),O}function w(H){const k=H.length<0?0:D(H.length)|0,G=B(k);for(let O=0;O=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return H|0}function S(H){return+H!=H&&(H=0),I.alloc(+H)}I.isBuffer=function(k){return k!=null&&k._isBuffer===!0&&k!==I.prototype},I.compare=function(k,G){if(ce(k,Uint8Array)&&(k=I.from(k,k.offset,k.byteLength)),ce(G,Uint8Array)&&(G=I.from(G,G.offset,G.byteLength)),!I.isBuffer(k)||!I.isBuffer(G))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(k===G)return 0;let O=k.length,ee=G.length;for(let de=0,ie=Math.min(O,ee);deee.length?(I.isBuffer(ie)||(ie=I.from(ie)),ie.copy(ee,de)):Uint8Array.prototype.set.call(ee,ie,de);else if(I.isBuffer(ie))ie.copy(ee,de);else throw new TypeError('"list" argument must be an Array of Buffers');de+=ie.length}return ee};function K(H,k){if(I.isBuffer(H))return H.length;if(ArrayBuffer.isView(H)||ce(H,ArrayBuffer))return H.byteLength;if(typeof H!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof H);const G=H.length,O=arguments.length>2&&arguments[2]===!0;if(!O&&G===0)return 0;let ee=!1;for(;;)switch(k){case"ascii":case"latin1":case"binary":return G;case"utf8":case"utf-8":return xe(H).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G*2;case"hex":return G>>>1;case"base64":return Ue(H).length;default:if(ee)return O?-1:xe(H).length;k=(""+k).toLowerCase(),ee=!0}}I.byteLength=K;function N(H,k,G){let O=!1;if((k===void 0||k<0)&&(k=0),k>this.length||((G===void 0||G>this.length)&&(G=this.length),G<=0)||(G>>>=0,k>>>=0,G<=k))return"";for(H||(H="utf8");;)switch(H){case"hex":return g(this,k,G);case"utf8":case"utf-8":return n(this,k,G);case"ascii":return c(this,k,G);case"latin1":case"binary":return C(this,k,G);case"base64":return A(this,k,G);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return t(this,k,G);default:if(O)throw new TypeError("Unknown encoding: "+H);H=(H+"").toLowerCase(),O=!0}}I.prototype._isBuffer=!0;function L(H,k,G){const O=H[k];H[k]=H[G],H[G]=O}I.prototype.swap16=function(){const k=this.length;if(k%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let G=0;GG&&(k+=" ... "),""},f&&(I.prototype[f]=I.prototype.inspect),I.prototype.compare=function(k,G,O,ee,de){if(ce(k,Uint8Array)&&(k=I.from(k,k.offset,k.byteLength)),!I.isBuffer(k))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof k);if(G===void 0&&(G=0),O===void 0&&(O=k?k.length:0),ee===void 0&&(ee=0),de===void 0&&(de=this.length),G<0||O>k.length||ee<0||de>this.length)throw new RangeError("out of range index");if(ee>=de&&G>=O)return 0;if(ee>=de)return-1;if(G>=O)return 1;if(G>>>=0,O>>>=0,ee>>>=0,de>>>=0,this===k)return 0;let ie=de-ee,Ee=O-G;const Oe=Math.min(ie,Ee),Ce=this.slice(ee,de),Qe=k.slice(G,O);for(let Je=0;Je2147483647?G=2147483647:G<-2147483648&&(G=-2147483648),G=+G,Te(G)&&(G=ee?0:H.length-1),G<0&&(G=H.length+G),G>=H.length){if(ee)return-1;G=H.length-1}else if(G<0)if(ee)G=0;else return-1;if(typeof k=="string"&&(k=I.from(k,O)),I.isBuffer(k))return k.length===0?-1:re(H,k,G,O,ee);if(typeof k=="number")return k=k&255,typeof Uint8Array.prototype.indexOf=="function"?ee?Uint8Array.prototype.indexOf.call(H,k,G):Uint8Array.prototype.lastIndexOf.call(H,k,G):re(H,[k],G,O,ee);throw new TypeError("val must be string, number or Buffer")}function re(H,k,G,O,ee){let de=1,ie=H.length,Ee=k.length;if(O!==void 0&&(O=String(O).toLowerCase(),O==="ucs2"||O==="ucs-2"||O==="utf16le"||O==="utf-16le")){if(H.length<2||k.length<2)return-1;de=2,ie/=2,Ee/=2,G/=2}function Oe(Qe,Je){return de===1?Qe[Je]:Qe.readUInt16BE(Je*de)}let Ce;if(ee){let Qe=-1;for(Ce=G;Ceie&&(G=ie-Ee),Ce=G;Ce>=0;Ce--){let Qe=!0;for(let Je=0;Jeee&&(O=ee)):O=ee;const de=k.length;O>de/2&&(O=de/2);let ie;for(ie=0;ie>>0,isFinite(O)?(O=O>>>0,ee===void 0&&(ee="utf8")):(ee=O,O=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const de=this.length-G;if((O===void 0||O>de)&&(O=de),k.length>0&&(O<0||G<0)||G>this.length)throw new RangeError("Attempt to write outside buffer bounds");ee||(ee="utf8");let ie=!1;for(;;)switch(ee){case"hex":return Z(this,k,G,O);case"utf8":case"utf-8":return J(this,k,G,O);case"ascii":case"latin1":case"binary":return Ae(this,k,G,O);case"base64":return E(this,k,G,O);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return e(this,k,G,O);default:if(ie)throw new TypeError("Unknown encoding: "+ee);ee=(""+ee).toLowerCase(),ie=!0}},I.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function A(H,k,G){return k===0&&G===H.length?i.fromByteArray(H):i.fromByteArray(H.slice(k,G))}function n(H,k,G){G=Math.min(H.length,G);const O=[];let ee=k;for(;ee239?4:de>223?3:de>191?2:1;if(ee+Ee<=G){let Oe,Ce,Qe,Je;switch(Ee){case 1:de<128&&(ie=de);break;case 2:Oe=H[ee+1],(Oe&192)===128&&(Je=(de&31)<<6|Oe&63,Je>127&&(ie=Je));break;case 3:Oe=H[ee+1],Ce=H[ee+2],(Oe&192)===128&&(Ce&192)===128&&(Je=(de&15)<<12|(Oe&63)<<6|Ce&63,Je>2047&&(Je<55296||Je>57343)&&(ie=Je));break;case 4:Oe=H[ee+1],Ce=H[ee+2],Qe=H[ee+3],(Oe&192)===128&&(Ce&192)===128&&(Qe&192)===128&&(Je=(de&15)<<18|(Oe&63)<<12|(Ce&63)<<6|Qe&63,Je>65535&&Je<1114112&&(ie=Je))}}ie===null?(ie=65533,Ee=1):ie>65535&&(ie-=65536,O.push(ie>>>10&1023|55296),ie=56320|ie&1023),O.push(ie),ee+=Ee}return h(O)}const a=4096;function h(H){const k=H.length;if(k<=a)return String.fromCharCode.apply(String,H);let G="",O=0;for(;OO)&&(G=O);let ee="";for(let de=k;deO&&(k=O),G<0?(G+=O,G<0&&(G=0)):G>O&&(G=O),GG)throw new RangeError("Trying to access beyond buffer length")}I.prototype.readUintLE=I.prototype.readUIntLE=function(k,G,O){k=k>>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k],de=1,ie=0;for(;++ie>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k+--G],de=1;for(;G>0&&(de*=256);)ee+=this[k+--G]*de;return ee},I.prototype.readUint8=I.prototype.readUInt8=function(k,G){return k=k>>>0,G||u(k,1,this.length),this[k]},I.prototype.readUint16LE=I.prototype.readUInt16LE=function(k,G){return k=k>>>0,G||u(k,2,this.length),this[k]|this[k+1]<<8},I.prototype.readUint16BE=I.prototype.readUInt16BE=function(k,G){return k=k>>>0,G||u(k,2,this.length),this[k]<<8|this[k+1]},I.prototype.readUint32LE=I.prototype.readUInt32LE=function(k,G){return k=k>>>0,G||u(k,4,this.length),(this[k]|this[k+1]<<8|this[k+2]<<16)+this[k+3]*16777216},I.prototype.readUint32BE=I.prototype.readUInt32BE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]*16777216+(this[k+1]<<16|this[k+2]<<8|this[k+3])},I.prototype.readBigUInt64LE=Be(function(k){k=k>>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=G+this[++k]*2**8+this[++k]*2**16+this[++k]*2**24,de=this[++k]+this[++k]*2**8+this[++k]*2**16+O*2**24;return BigInt(ee)+(BigInt(de)<>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=G*2**24+this[++k]*2**16+this[++k]*2**8+this[++k],de=this[++k]*2**24+this[++k]*2**16+this[++k]*2**8+O;return(BigInt(ee)<>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k],de=1,ie=0;for(;++ie=de&&(ee-=Math.pow(2,8*G)),ee},I.prototype.readIntBE=function(k,G,O){k=k>>>0,G=G>>>0,O||u(k,G,this.length);let ee=G,de=1,ie=this[k+--ee];for(;ee>0&&(de*=256);)ie+=this[k+--ee]*de;return de*=128,ie>=de&&(ie-=Math.pow(2,8*G)),ie},I.prototype.readInt8=function(k,G){return k=k>>>0,G||u(k,1,this.length),this[k]&128?(255-this[k]+1)*-1:this[k]},I.prototype.readInt16LE=function(k,G){k=k>>>0,G||u(k,2,this.length);const O=this[k]|this[k+1]<<8;return O&32768?O|4294901760:O},I.prototype.readInt16BE=function(k,G){k=k>>>0,G||u(k,2,this.length);const O=this[k+1]|this[k]<<8;return O&32768?O|4294901760:O},I.prototype.readInt32LE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]|this[k+1]<<8|this[k+2]<<16|this[k+3]<<24},I.prototype.readInt32BE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]<<24|this[k+1]<<16|this[k+2]<<8|this[k+3]},I.prototype.readBigInt64LE=Be(function(k){k=k>>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=this[k+4]+this[k+5]*2**8+this[k+6]*2**16+(O<<24);return(BigInt(ee)<>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=(G<<24)+this[++k]*2**16+this[++k]*2**8+this[++k];return(BigInt(ee)<>>0,G||u(k,4,this.length),s.read(this,k,!0,23,4)},I.prototype.readFloatBE=function(k,G){return k=k>>>0,G||u(k,4,this.length),s.read(this,k,!1,23,4)},I.prototype.readDoubleLE=function(k,G){return k=k>>>0,G||u(k,8,this.length),s.read(this,k,!0,52,8)},I.prototype.readDoubleBE=function(k,G){return k=k>>>0,G||u(k,8,this.length),s.read(this,k,!1,52,8)};function b(H,k,G,O,ee,de){if(!I.isBuffer(H))throw new TypeError('"buffer" argument must be a Buffer instance');if(k>ee||kH.length)throw new RangeError("Index out of range")}I.prototype.writeUintLE=I.prototype.writeUIntLE=function(k,G,O,ee){if(k=+k,G=G>>>0,O=O>>>0,!ee){const Ee=Math.pow(2,8*O)-1;b(this,k,G,O,Ee,0)}let de=1,ie=0;for(this[G]=k&255;++ie>>0,O=O>>>0,!ee){const Ee=Math.pow(2,8*O)-1;b(this,k,G,O,Ee,0)}let de=O-1,ie=1;for(this[G+de]=k&255;--de>=0&&(ie*=256);)this[G+de]=k/ie&255;return G+O},I.prototype.writeUint8=I.prototype.writeUInt8=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,1,255,0),this[G]=k&255,G+1},I.prototype.writeUint16LE=I.prototype.writeUInt16LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,65535,0),this[G]=k&255,this[G+1]=k>>>8,G+2},I.prototype.writeUint16BE=I.prototype.writeUInt16BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,65535,0),this[G]=k>>>8,this[G+1]=k&255,G+2},I.prototype.writeUint32LE=I.prototype.writeUInt32LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,4294967295,0),this[G+3]=k>>>24,this[G+2]=k>>>16,this[G+1]=k>>>8,this[G]=k&255,G+4},I.prototype.writeUint32BE=I.prototype.writeUInt32BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,4294967295,0),this[G]=k>>>24,this[G+1]=k>>>16,this[G+2]=k>>>8,this[G+3]=k&255,G+4};function R(H,k,G,O,ee){q(k,O,ee,H,G,7);let de=Number(k&BigInt(4294967295));H[G++]=de,de=de>>8,H[G++]=de,de=de>>8,H[G++]=de,de=de>>8,H[G++]=de;let ie=Number(k>>BigInt(32)&BigInt(4294967295));return H[G++]=ie,ie=ie>>8,H[G++]=ie,ie=ie>>8,H[G++]=ie,ie=ie>>8,H[G++]=ie,G}function T(H,k,G,O,ee){q(k,O,ee,H,G,7);let de=Number(k&BigInt(4294967295));H[G+7]=de,de=de>>8,H[G+6]=de,de=de>>8,H[G+5]=de,de=de>>8,H[G+4]=de;let ie=Number(k>>BigInt(32)&BigInt(4294967295));return H[G+3]=ie,ie=ie>>8,H[G+2]=ie,ie=ie>>8,H[G+1]=ie,ie=ie>>8,H[G]=ie,G+8}I.prototype.writeBigUInt64LE=Be(function(k,G=0){return R(this,k,G,BigInt(0),BigInt("0xffffffffffffffff"))}),I.prototype.writeBigUInt64BE=Be(function(k,G=0){return T(this,k,G,BigInt(0),BigInt("0xffffffffffffffff"))}),I.prototype.writeIntLE=function(k,G,O,ee){if(k=+k,G=G>>>0,!ee){const Oe=Math.pow(2,8*O-1);b(this,k,G,O,Oe-1,-Oe)}let de=0,ie=1,Ee=0;for(this[G]=k&255;++de>0)-Ee&255;return G+O},I.prototype.writeIntBE=function(k,G,O,ee){if(k=+k,G=G>>>0,!ee){const Oe=Math.pow(2,8*O-1);b(this,k,G,O,Oe-1,-Oe)}let de=O-1,ie=1,Ee=0;for(this[G+de]=k&255;--de>=0&&(ie*=256);)k<0&&Ee===0&&this[G+de+1]!==0&&(Ee=1),this[G+de]=(k/ie>>0)-Ee&255;return G+O},I.prototype.writeInt8=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,1,127,-128),k<0&&(k=255+k+1),this[G]=k&255,G+1},I.prototype.writeInt16LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,32767,-32768),this[G]=k&255,this[G+1]=k>>>8,G+2},I.prototype.writeInt16BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,32767,-32768),this[G]=k>>>8,this[G+1]=k&255,G+2},I.prototype.writeInt32LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,2147483647,-2147483648),this[G]=k&255,this[G+1]=k>>>8,this[G+2]=k>>>16,this[G+3]=k>>>24,G+4},I.prototype.writeInt32BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,2147483647,-2147483648),k<0&&(k=4294967295+k+1),this[G]=k>>>24,this[G+1]=k>>>16,this[G+2]=k>>>8,this[G+3]=k&255,G+4},I.prototype.writeBigInt64LE=Be(function(k,G=0){return R(this,k,G,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),I.prototype.writeBigInt64BE=Be(function(k,G=0){return T(this,k,G,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function V(H,k,G,O,ee,de){if(G+O>H.length)throw new RangeError("Index out of range");if(G<0)throw new RangeError("Index out of range")}function P(H,k,G,O,ee){return k=+k,G=G>>>0,ee||V(H,k,G,4),s.write(H,k,G,O,23,4),G+4}I.prototype.writeFloatLE=function(k,G,O){return P(this,k,G,!0,O)},I.prototype.writeFloatBE=function(k,G,O){return P(this,k,G,!1,O)};function F(H,k,G,O,ee){return k=+k,G=G>>>0,ee||V(H,k,G,8),s.write(H,k,G,O,52,8),G+8}I.prototype.writeDoubleLE=function(k,G,O){return F(this,k,G,!0,O)},I.prototype.writeDoubleBE=function(k,G,O){return F(this,k,G,!1,O)},I.prototype.copy=function(k,G,O,ee){if(!I.isBuffer(k))throw new TypeError("argument should be a Buffer");if(O||(O=0),!ee&&ee!==0&&(ee=this.length),G>=k.length&&(G=k.length),G||(G=0),ee>0&&ee=this.length)throw new RangeError("Index out of range");if(ee<0)throw new RangeError("sourceEnd out of bounds");ee>this.length&&(ee=this.length),k.length-G>>0,O=O===void 0?this.length:O>>>0,k||(k=0);let de;if(typeof k=="number")for(de=G;de2**32?ee=te(String(G)):typeof G=="bigint"&&(ee=String(G),(G>BigInt(2)**BigInt(32)||G<-(BigInt(2)**BigInt(32)))&&(ee=te(ee)),ee+="n"),O+=` It must be ${k}. Received ${ee}`,O},RangeError);function te(H){let k="",G=H.length;const O=H[0]==="-"?1:0;for(;G>=O+4;G-=3)k=`_${H.slice(G-3,G)}${k}`;return`${H.slice(0,G)}${k}`}function z(H,k,G){$(k,"offset"),(H[k]===void 0||H[k+G]===void 0)&&le(k,H.length-(G+1))}function q(H,k,G,O,ee,de){if(H>G||H= 0${ie} and < 2${ie} ** ${(de+1)*8}${ie}`:Ee=`>= -(2${ie} ** ${(de+1)*8-1}${ie}) and < 2 ** ${(de+1)*8-1}${ie}`,new Y.ERR_OUT_OF_RANGE("value",Ee,H)}z(O,ee,de)}function $(H,k){if(typeof H!="number")throw new Y.ERR_INVALID_ARG_TYPE(k,"number",H)}function le(H,k,G){throw Math.floor(H)!==H?($(H,G),new Y.ERR_OUT_OF_RANGE("offset","an integer",H)):k<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${k}`,H)}const ae=/[^+/0-9A-Za-z-_]/g;function he(H){if(H=H.split("=")[0],H=H.trim().replace(ae,""),H.length<2)return"";for(;H.length%4!==0;)H=H+"=";return H}function xe(H,k){k=k||1/0;let G;const O=H.length;let ee=null;const de=[];for(let ie=0;ie55295&&G<57344){if(!ee){if(G>56319){(k-=3)>-1&&de.push(239,191,189);continue}else if(ie+1===O){(k-=3)>-1&&de.push(239,191,189);continue}ee=G;continue}if(G<56320){(k-=3)>-1&&de.push(239,191,189),ee=G;continue}G=(ee-55296<<10|G-56320)+65536}else ee&&(k-=3)>-1&&de.push(239,191,189);if(ee=null,G<128){if((k-=1)<0)break;de.push(G)}else if(G<2048){if((k-=2)<0)break;de.push(G>>6|192,G&63|128)}else if(G<65536){if((k-=3)<0)break;de.push(G>>12|224,G>>6&63|128,G&63|128)}else if(G<1114112){if((k-=4)<0)break;de.push(G>>18|240,G>>12&63|128,G>>6&63|128,G&63|128)}else throw new Error("Invalid code point")}return de}function se(H){const k=[];for(let G=0;G>8,ee=G%256,de.push(ee),de.push(O);return de}function Ue(H){return i.toByteArray(he(H))}function fe(H,k,G,O){let ee;for(ee=0;ee=k.length||ee>=H.length);++ee)k[ee+G]=H[ee];return ee}function ce(H,k){return H instanceof k||H!=null&&H.constructor!=null&&H.constructor.name!=null&&H.constructor.name===k.name}function Te(H){return H!==H}const ue=function(){const H="0123456789abcdef",k=new Array(256);for(let G=0;G<16;++G){const O=G*16;for(let ee=0;ee<16;++ee)k[O+ee]=H[G]+H[ee]}return k}();function Be(H){return typeof BigInt>"u"?Ve:H}function Ve(){throw new Error("BigInt not supported")}}(n2)),n2}/*! safe-buffer. MIT License. Feross Aboukhadijeh */var DU;function wA(){return DU||(DU=1,function(o,i){var s=Wo(),f=s.Buffer;function l(B,I){for(var p in B)I[p]=B[p]}f.from&&f.alloc&&f.allocUnsafe&&f.allocUnsafeSlow?o.exports=s:(l(s,i),i.Buffer=r);function r(B,I,p){return f(B,I,p)}r.prototype=Object.create(f.prototype),l(f,r),r.from=function(B,I,p){if(typeof B=="number")throw new TypeError("Argument must not be a number");return f(B,I,p)},r.alloc=function(B,I,p){if(typeof B!="number")throw new TypeError("Argument must be a number");var Q=f(B);return I!==void 0?typeof p=="string"?Q.fill(I,p):Q.fill(I):Q.fill(0),Q},r.allocUnsafe=function(B){if(typeof B!="number")throw new TypeError("Argument must be a number");return f(B)},r.allocUnsafeSlow=function(B){if(typeof B!="number")throw new TypeError("Argument must be a number");return s.SlowBuffer(B)}}(aB,aB.exports)),aB.exports}var SU;function Au(){if(SU)return oB.exports;SU=1;var o=65536,i=4294967295;function s(){throw new Error(`Secure random number generation is not supported by this browser. -Use Chrome, Firefox or Internet Explorer 11`)}var f=wA().Buffer,l=globalThis.crypto||globalThis.msCrypto;l&&l.getRandomValues?oB.exports=r:oB.exports=s;function r(B,I){if(B>i)throw new RangeError("requested too many random bytes");var p=f.allocUnsafe(B);if(B>0)if(B>o)for(var Q=0;Q0&&(Ae=j[0]),Ae instanceof Error)throw Ae;var E=new Error("Unhandled error."+(Ae?" ("+Ae.message+")":""));throw E.context=Ae,E}var e=J[L];if(e===void 0)return!1;if(typeof e=="function")i(e,this,j);else for(var A=e.length,n=M(e,A),re=0;re0&&Ae.length>Z&&!Ae.warned){Ae.warned=!0;var E=new Error("Possible EventEmitter memory leak detected. "+Ae.length+" "+String(L)+" listeners added. Use emitter.setMaxListeners() to increase limit");E.name="MaxListenersExceededWarning",E.emitter=N,E.type=L,E.count=Ae.length,f(E)}return N}r.prototype.addListener=function(L,j){return Q(this,L,j,!1)},r.prototype.on=r.prototype.addListener,r.prototype.prependListener=function(L,j){return Q(this,L,j,!0)};function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function y(N,L,j){var re={fired:!1,wrapFn:void 0,target:N,type:L,listener:j},Z=d.bind(re);return Z.listener=j,re.wrapFn=Z,Z}r.prototype.once=function(L,j){return I(j),this.on(L,y(this,L,j)),this},r.prototype.prependOnceListener=function(L,j){return I(j),this.prependListener(L,y(this,L,j)),this},r.prototype.removeListener=function(L,j){var re,Z,J,Ae,E;if(I(j),Z=this._events,Z===void 0)return this;if(re=Z[L],re===void 0)return this;if(re===j||re.listener===j)--this._eventsCount===0?this._events=Object.create(null):(delete Z[L],Z.removeListener&&this.emit("removeListener",L,re.listener||j));else if(typeof re!="function"){for(J=-1,Ae=re.length-1;Ae>=0;Ae--)if(re[Ae]===j||re[Ae].listener===j){E=re[Ae].listener,J=Ae;break}if(J<0)return this;J===0?re.shift():m(re,J),re.length===1&&(Z[L]=re[0]),Z.removeListener!==void 0&&this.emit("removeListener",L,E||j)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(L){var j,re,Z;if(re=this._events,re===void 0)return this;if(re.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):re[L]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete re[L]),this;if(arguments.length===0){var J=Object.keys(re),Ae;for(Z=0;Z=0;Z--)this.removeListener(L,j[Z]);return this};function v(N,L,j){var re=N._events;if(re===void 0)return[];var Z=re[L];return Z===void 0?[]:typeof Z=="function"?j?[Z.listener||Z]:[Z]:j?x(Z):M(Z,Z.length)}r.prototype.listeners=function(L){return v(this,L,!0)},r.prototype.rawListeners=function(L){return v(this,L,!1)},r.listenerCount=function(N,L){return typeof N.listenerCount=="function"?N.listenerCount(L):w.call(N,L)},r.prototype.listenerCount=w;function w(N){var L=this._events;if(L!==void 0){var j=L[N];if(typeof j=="function")return 1;if(j!==void 0)return j.length}return 0}r.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]};function M(N,L){for(var j=new Array(L),re=0;re0?this.tail.next=D:this.head=D,this.tail=D,++this.length}},{key:"unshift",value:function(x){var D={data:x,next:this.head};this.length===0&&(this.tail=D),this.head=D,++this.length}},{key:"shift",value:function(){if(this.length!==0){var x=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,x}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(x){if(this.length===0)return"";for(var D=this.head,S=""+D.data;D=D.next;)S+=x+D.data;return S}},{key:"concat",value:function(x){if(this.length===0)return Q.alloc(0);for(var D=Q.allocUnsafe(x>>>0),S=this.head,K=0;S;)w(S.data,D,K),K+=S.data.length,S=S.next;return D}},{key:"consume",value:function(x,D){var S;return xN.length?N.length:x;if(L===N.length?K+=N:K+=N.slice(0,x),x-=L,x===0){L===N.length?(++S,D.next?this.head=D.next:this.head=this.tail=null):(this.head=D,D.data=N.slice(L));break}++S}return this.length-=S,K}},{key:"_getBuffer",value:function(x){var D=Q.allocUnsafe(x),S=this.head,K=1;for(S.data.copy(D),x-=S.data.length;S=S.next;){var N=S.data,L=x>N.length?N.length:x;if(N.copy(D,D.length-x,0,L),x-=L,x===0){L===N.length?(++K,S.next?this.head=S.next:this.head=this.tail=null):(this.head=S,S.data=N.slice(L));break}++K}return this.length-=K,D}},{key:v,value:function(x,D){return y(this,i(i({},D),{},{depth:0,customInspect:!1}))}}]),M}(),a2}var s2,_U;function wte(){if(_U)return s2;_U=1;function o(B,I){var p=this,Q=this._readableState&&this._readableState.destroyed,d=this._writableState&&this._writableState.destroyed;return Q||d?(I?I(B):B&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(l,this,B)):process.nextTick(l,this,B)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(B||null,function(y){!I&&y?p._writableState?p._writableState.errorEmitted?process.nextTick(s,p):(p._writableState.errorEmitted=!0,process.nextTick(i,p,y)):process.nextTick(i,p,y):I?(process.nextTick(s,p),I(y)):process.nextTick(s,p)}),this)}function i(B,I){l(B,I),s(B)}function s(B){B._writableState&&!B._writableState.emitClose||B._readableState&&!B._readableState.emitClose||B.emit("close")}function f(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function l(B,I){B.emit("error",I)}function r(B,I){var p=B._readableState,Q=B._writableState;p&&p.autoDestroy||Q&&Q.autoDestroy?B.destroy(I):B.emit("error",I)}return s2={destroy:o,undestroy:f,errorOrDestroy:r},s2}var f2={},KU;function ru(){if(KU)return f2;KU=1;function o(I,p){I.prototype=Object.create(p.prototype),I.prototype.constructor=I,I.__proto__=p}var i={};function s(I,p,Q){Q||(Q=Error);function d(v,w,M){return typeof p=="string"?p:p(v,w,M)}var y=function(v){o(w,v);function w(M,m,x){return v.call(this,d(M,m,x))||this}return w}(Q);y.prototype.name=Q.name,y.prototype.code=I,i[I]=y}function f(I,p){if(Array.isArray(I)){var Q=I.length;return I=I.map(function(d){return String(d)}),Q>2?"one of ".concat(p," ").concat(I.slice(0,Q-1).join(", "),", or ")+I[Q-1]:Q===2?"one of ".concat(p," ").concat(I[0]," or ").concat(I[1]):"of ".concat(p," ").concat(I[0])}else return"of ".concat(p," ").concat(String(I))}function l(I,p,Q){return I.substr(0,p.length)===p}function r(I,p,Q){return(Q===void 0||Q>I.length)&&(Q=I.length),I.substring(Q-p.length,Q)===p}function B(I,p,Q){return typeof Q!="number"&&(Q=0),Q+p.length>I.length?!1:I.indexOf(p,Q)!==-1}return s("ERR_INVALID_OPT_VALUE",function(I,p){return'The value "'+p+'" is invalid for option "'+I+'"'},TypeError),s("ERR_INVALID_ARG_TYPE",function(I,p,Q){var d;typeof p=="string"&&l(p,"not ")?(d="must not be",p=p.replace(/^not /,"")):d="must be";var y;if(r(I," argument"))y="The ".concat(I," ").concat(d," ").concat(f(p,"type"));else{var v=B(I,".")?"property":"argument";y='The "'.concat(I,'" ').concat(v," ").concat(d," ").concat(f(p,"type"))}return y+=". Received type ".concat(typeof Q),y},TypeError),s("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),s("ERR_METHOD_NOT_IMPLEMENTED",function(I){return"The "+I+" method is not implemented"}),s("ERR_STREAM_PREMATURE_CLOSE","Premature close"),s("ERR_STREAM_DESTROYED",function(I){return"Cannot call "+I+" after a stream was destroyed"}),s("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),s("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),s("ERR_STREAM_WRITE_AFTER_END","write after end"),s("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),s("ERR_UNKNOWN_ENCODING",function(I){return"Unknown encoding: "+I},TypeError),s("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),f2.codes=i,f2}var h2,FU;function mte(){if(FU)return h2;FU=1;var o=ru().codes.ERR_INVALID_OPT_VALUE;function i(f,l,r){return f.highWaterMark!=null?f.highWaterMark:l?f[r]:null}function s(f,l,r,B){var I=i(l,B,r);if(I!=null){if(!(isFinite(I)&&Math.floor(I)===I)||I<0){var p=B?r:"highWaterMark";throw new o(p,I)}return Math.floor(I)}return f.objectMode?16:16*1024}return h2={getHighWaterMark:s},h2}var g2,GU;function Mte(){if(GU)return g2;GU=1,g2=o;function o(s,f){if(i("noDeprecation"))return s;var l=!1;function r(){if(!l){if(i("throwDeprecation"))throw new Error(f);i("traceDeprecation")?console.trace(f):console.warn(f),l=!0}return s.apply(this,arguments)}return r}function i(s){try{if(!globalThis.localStorage)return!1}catch{return!1}var f=globalThis.localStorage[s];return f==null?!1:String(f).toLowerCase()==="true"}return g2}var u2,LU;function Wk(){if(LU)return u2;LU=1,u2=Z;function o(P){var F=this;this.next=null,this.entry=null,this.finish=function(){V(F,P)}}var i;Z.WritableState=j;var s={deprecate:Mte()},f=vte(),l=Wo().Buffer,r=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function B(P){return l.from(P)}function I(P){return l.isBuffer(P)||P instanceof r}var p=wte(),Q=mte(),d=Q.getHighWaterMark,y=ru().codes,v=y.ERR_INVALID_ARG_TYPE,w=y.ERR_METHOD_NOT_IMPLEMENTED,M=y.ERR_MULTIPLE_CALLBACK,m=y.ERR_STREAM_CANNOT_PIPE,x=y.ERR_STREAM_DESTROYED,D=y.ERR_STREAM_NULL_VALUES,S=y.ERR_STREAM_WRITE_AFTER_END,K=y.ERR_UNKNOWN_ENCODING,N=p.errorOrDestroy;hA()(Z,f);function L(){}function j(P,F,Y){i=i||Th(),P=P||{},typeof Y!="boolean"&&(Y=F instanceof i),this.objectMode=!!P.objectMode,Y&&(this.objectMode=this.objectMode||!!P.writableObjectMode),this.highWaterMark=d(this,P,"writableHighWaterMark",Y),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var W=P.decodeStrings===!1;this.decodeStrings=!W,this.defaultEncoding=P.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(te){h(F,te)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=P.emitClose!==!1,this.autoDestroy=!!P.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}j.prototype.getBuffer=function(){for(var F=this.bufferedRequest,Y=[];F;)Y.push(F),F=F.next;return Y},function(){try{Object.defineProperty(j.prototype,"buffer",{get:s.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var re;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(re=Function.prototype[Symbol.hasInstance],Object.defineProperty(Z,Symbol.hasInstance,{value:function(F){return re.call(this,F)?!0:this!==Z?!1:F&&F._writableState instanceof j}})):re=function(F){return F instanceof this};function Z(P){i=i||Th();var F=this instanceof i;if(!F&&!re.call(Z,this))return new Z(P);this._writableState=new j(P,this,F),this.writable=!0,P&&(typeof P.write=="function"&&(this._write=P.write),typeof P.writev=="function"&&(this._writev=P.writev),typeof P.destroy=="function"&&(this._destroy=P.destroy),typeof P.final=="function"&&(this._final=P.final)),f.call(this)}Z.prototype.pipe=function(){N(this,new m)};function J(P,F){var Y=new S;N(P,Y),process.nextTick(F,Y)}function Ae(P,F,Y,W){var te;return Y===null?te=new D:typeof Y!="string"&&!F.objectMode&&(te=new v("chunk",["string","Buffer"],Y)),te?(N(P,te),process.nextTick(W,te),!1):!0}Z.prototype.write=function(P,F,Y){var W=this._writableState,te=!1,z=!W.objectMode&&I(P);return z&&!l.isBuffer(P)&&(P=B(P)),typeof F=="function"&&(Y=F,F=null),z?F="buffer":F||(F=W.defaultEncoding),typeof Y!="function"&&(Y=L),W.ending?J(this,Y):(z||Ae(this,W,P,Y))&&(W.pendingcb++,te=e(this,W,z,P,F,Y)),te},Z.prototype.cork=function(){this._writableState.corked++},Z.prototype.uncork=function(){var P=this._writableState;P.corked&&(P.corked--,!P.writing&&!P.corked&&!P.bufferProcessing&&P.bufferedRequest&&g(this,P))},Z.prototype.setDefaultEncoding=function(F){if(typeof F=="string"&&(F=F.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((F+"").toLowerCase())>-1))throw new K(F);return this._writableState.defaultEncoding=F,this},Object.defineProperty(Z.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function E(P,F,Y){return!P.objectMode&&P.decodeStrings!==!1&&typeof F=="string"&&(F=l.from(F,Y)),F}Object.defineProperty(Z.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function e(P,F,Y,W,te,z){if(!Y){var q=E(F,W,te);W!==q&&(Y=!0,te="buffer",W=q)}var $=F.objectMode?1:W.length;F.length+=$;var le=F.length>5===6?2:D>>4===14?3:D>>3===30?4:D>>6===2?-1:-2}function B(D,S,K){var N=S.length-1;if(N=0?(L>0&&(D.lastNeed=L-1),L):--N=0?(L>0&&(D.lastNeed=L-2),L):--N=0?(L>0&&(L===2?L=0:D.lastNeed=L-3),L):0))}function I(D,S,K){if((S[0]&192)!==128)return D.lastNeed=0,"�";if(D.lastNeed>1&&S.length>1){if((S[1]&192)!==128)return D.lastNeed=1,"�";if(D.lastNeed>2&&S.length>2&&(S[2]&192)!==128)return D.lastNeed=2,"�"}}function p(D){var S=this.lastTotal-this.lastNeed,K=I(this,D);if(K!==void 0)return K;if(this.lastNeed<=D.length)return D.copy(this.lastChar,S,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);D.copy(this.lastChar,S,0,D.length),this.lastNeed-=D.length}function Q(D,S){var K=B(this,D,S);if(!this.lastNeed)return D.toString("utf8",S);this.lastTotal=K;var N=D.length-(K-this.lastNeed);return D.copy(this.lastChar,0,N),D.toString("utf8",S,N)}function d(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+"�":S}function y(D,S){if((D.length-S)%2===0){var K=D.toString("utf16le",S);if(K){var N=K.charCodeAt(K.length-1);if(N>=55296&&N<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1],K.slice(0,-1)}return K}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=D[D.length-1],D.toString("utf16le",S,D.length-1)}function v(D){var S=D&&D.length?this.write(D):"";if(this.lastNeed){var K=this.lastTotal-this.lastNeed;return S+this.lastChar.toString("utf16le",0,K)}return S}function w(D,S){var K=(D.length-S)%3;return K===0?D.toString("base64",S):(this.lastNeed=3-K,this.lastTotal=3,K===1?this.lastChar[0]=D[D.length-1]:(this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1]),D.toString("base64",S,D.length-K))}function M(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+this.lastChar.toString("base64",0,3-this.lastNeed):S}function m(D){return D.toString(this.encoding)}function x(D){return D&&D.length?this.write(D):""}return l2}var d2,HU;function iQ(){if(HU)return d2;HU=1;var o=ru().codes.ERR_STREAM_PREMATURE_CLOSE;function i(r){var B=!1;return function(){if(!B){B=!0;for(var I=arguments.length,p=new Array(I),Q=0;Q0)if(typeof q!="string"&&!he.objectMode&&Object.getPrototypeOf(q)!==f.prototype&&(q=r(q)),le)he.endEmitted?L(z,new D):E(z,he,q,!0);else if(he.ended)L(z,new m);else{if(he.destroyed)return!1;he.reading=!1,he.decoder&&!$?(q=he.decoder.write(q),he.objectMode||q.length!==0?E(z,he,q,!1):g(z,he)):E(z,he,q,!1)}else le||(he.reading=!1,g(z,he))}return!he.ended&&(he.length=A?z=A:(z--,z|=z>>>1,z|=z>>>2,z|=z>>>4,z|=z>>>8,z|=z>>>16,z++),z}function a(z,q){return z<=0||q.length===0&&q.ended?0:q.objectMode?1:z!==z?q.flowing&&q.length?q.buffer.head.data.length:q.length:(z>q.highWaterMark&&(q.highWaterMark=n(z)),z<=q.length?z:q.ended?q.length:(q.needReadable=!0,0))}J.prototype.read=function(z){p("read",z),z=parseInt(z,10);var q=this._readableState,$=z;if(z!==0&&(q.emittedReadable=!1),z===0&&q.needReadable&&((q.highWaterMark!==0?q.length>=q.highWaterMark:q.length>0)||q.ended))return p("read: emitReadable",q.length,q.ended),q.length===0&&q.ended?Y(this):c(this),null;if(z=a(z,q),z===0&&q.ended)return q.length===0&&Y(this),null;var le=q.needReadable;p("need readable",le),(q.length===0||q.length-z0?ae=F(z,q):ae=null,ae===null?(q.needReadable=q.length<=q.highWaterMark,z=0):(q.length-=z,q.awaitDrain=0),q.length===0&&(q.ended||(q.needReadable=!0),$!==z&&q.ended&&Y(this)),ae!==null&&this.emit("data",ae),ae};function h(z,q){if(p("onEofChunk"),!q.ended){if(q.decoder){var $=q.decoder.end();$&&$.length&&(q.buffer.push($),q.length+=q.objectMode?1:$.length)}q.ended=!0,q.sync?c(z):(q.needReadable=!1,q.emittedReadable||(q.emittedReadable=!0,C(z)))}}function c(z){var q=z._readableState;p("emitReadable",q.needReadable,q.emittedReadable),q.needReadable=!1,q.emittedReadable||(p("emitReadable",q.flowing),q.emittedReadable=!0,process.nextTick(C,z))}function C(z){var q=z._readableState;p("emitReadable_",q.destroyed,q.length,q.ended),!q.destroyed&&(q.length||q.ended)&&(z.emit("readable"),q.emittedReadable=!1),q.needReadable=!q.flowing&&!q.ended&&q.length<=q.highWaterMark,P(z)}function g(z,q){q.readingMore||(q.readingMore=!0,process.nextTick(t,z,q))}function t(z,q){for(;!q.reading&&!q.ended&&(q.length1&&te(le.pipes,z)!==-1)&&!Ue&&(p("false write response, pause",le.awaitDrain),le.awaitDrain++),$.pause())}function Te(H){p("onerror",H),Ve(),z.removeListener("error",Te),i(z,"error")===0&&L(z,H)}re(z,"error",Te);function ue(){z.removeListener("finish",Be),Ve()}z.once("close",ue);function Be(){p("onfinish"),z.removeListener("close",ue),Ve()}z.once("finish",Be);function Ve(){p("unpipe"),$.unpipe(z)}return z.emit("pipe",$),le.flowing||(p("pipe resume"),$.resume()),z};function u(z){return function(){var $=z._readableState;p("pipeOnDrain",$.awaitDrain),$.awaitDrain&&$.awaitDrain--,$.awaitDrain===0&&i(z,"data")&&($.flowing=!0,P(z))}}J.prototype.unpipe=function(z){var q=this._readableState,$={hasUnpiped:!1};if(q.pipesCount===0)return this;if(q.pipesCount===1)return z&&z!==q.pipes?this:(z||(z=q.pipes),q.pipes=null,q.pipesCount=0,q.flowing=!1,z&&z.emit("unpipe",this,$),this);if(!z){var le=q.pipes,ae=q.pipesCount;q.pipes=null,q.pipesCount=0,q.flowing=!1;for(var he=0;he0,le.flowing!==!1&&this.resume()):z==="readable"&&!le.endEmitted&&!le.readableListening&&(le.readableListening=le.needReadable=!0,le.flowing=!1,le.emittedReadable=!1,p("on readable",le.length,le.reading),le.length?c(this):le.reading||process.nextTick(R,this)),$},J.prototype.addListener=J.prototype.on,J.prototype.removeListener=function(z,q){var $=s.prototype.removeListener.call(this,z,q);return z==="readable"&&process.nextTick(b,this),$},J.prototype.removeAllListeners=function(z){var q=s.prototype.removeAllListeners.apply(this,arguments);return(z==="readable"||z===void 0)&&process.nextTick(b,this),q};function b(z){var q=z._readableState;q.readableListening=z.listenerCount("readable")>0,q.resumeScheduled&&!q.paused?q.flowing=!0:z.listenerCount("data")>0&&z.resume()}function R(z){p("readable nexttick read 0"),z.read(0)}J.prototype.resume=function(){var z=this._readableState;return z.flowing||(p("resume"),z.flowing=!z.readableListening,T(this,z)),z.paused=!1,this};function T(z,q){q.resumeScheduled||(q.resumeScheduled=!0,process.nextTick(V,z,q))}function V(z,q){p("resume",q.reading),q.reading||z.read(0),q.resumeScheduled=!1,z.emit("resume"),P(z),q.flowing&&!q.reading&&z.read(0)}J.prototype.pause=function(){return p("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(p("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function P(z){var q=z._readableState;for(p("flow",q.flowing);q.flowing&&z.read()!==null;);}J.prototype.wrap=function(z){var q=this,$=this._readableState,le=!1;z.on("end",function(){if(p("wrapped end"),$.decoder&&!$.ended){var xe=$.decoder.end();xe&&xe.length&&q.push(xe)}q.push(null)}),z.on("data",function(xe){if(p("wrapped data"),$.decoder&&(xe=$.decoder.write(xe)),!($.objectMode&&xe==null)&&!(!$.objectMode&&(!xe||!xe.length))){var se=q.push(xe);se||(le=!0,z.pause())}});for(var ae in z)this[ae]===void 0&&typeof z[ae]=="function"&&(this[ae]=function(se){return function(){return z[se].apply(z,arguments)}}(ae));for(var he=0;he=q.length?(q.decoder?$=q.buffer.join(""):q.buffer.length===1?$=q.buffer.first():$=q.buffer.concat(q.length),q.buffer.clear()):$=q.buffer.consume(z,q.decoder),$}function Y(z){var q=z._readableState;p("endReadable",q.endEmitted),q.endEmitted||(q.ended=!0,process.nextTick(W,q,z))}function W(z,q){if(p("endReadableNT",z.endEmitted,z.length),!z.endEmitted&&z.length===0&&(z.endEmitted=!0,q.readable=!1,q.emit("end"),z.autoDestroy)){var $=q._writableState;(!$||$.autoDestroy&&$.finished)&&q.destroy()}}typeof Symbol=="function"&&(J.from=function(z,q){return N===void 0&&(N=uIe()),N(J,z,q)});function te(z,q){for(var $=0,le=z.length;$0;return I(S,N,L,function(j){x||(x=j),j&&D.forEach(p),!N&&(D.forEach(p),m(x))})});return w.reduce(Q)}return Q2=y,Q2}var WU;function cIe(){return WU||(WU=1,function(o,i){i=o.exports=Vk(),i.Stream=i,i.Readable=i,i.Writable=Wk(),i.Duplex=Th(),i.Transform=Zk(),i.PassThrough=bte(),i.finished=iQ(),i.pipeline=Dte()}(hB,hB.exports)),hB.exports}var y2,VU;function Ste(){if(VU)return y2;VU=1;var o=wA().Buffer,i=cIe().Transform,s=hA();function f(r,B){if(!o.isBuffer(r)&&typeof r!="string")throw new TypeError(B+" must be a string or a buffer")}function l(r){i.call(this),this._block=o.allocUnsafe(r),this._blockSize=r,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}return s(l,i),l.prototype._transform=function(r,B,I){var p=null;try{this.update(r,B)}catch(Q){p=Q}I(p)},l.prototype._flush=function(r){var B=null;try{this.push(this.digest())}catch(I){B=I}r(B)},l.prototype.update=function(r,B){if(f(r,"Data"),this._finalized)throw new Error("Digest already called");o.isBuffer(r)||(r=o.from(r,B));for(var I=this._block,p=0;this._blockOffset+r.length-p>=this._blockSize;){for(var Q=this._blockOffset;Q0;++d)this._length[d]+=y,y=this._length[d]/4294967296|0,y>0&&(this._length[d]-=4294967296*y);return this},l.prototype._update=function(){throw new Error("_update is not implemented")},l.prototype.digest=function(r){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var B=this._digest();r!==void 0&&(B=B.toString(r)),this._block.fill(0),this._blockOffset=0;for(var I=0;I<4;++I)this._length[I]=0;return B},l.prototype._digest=function(){throw new Error("_digest is not implemented")},y2=l,y2}var v2,ZU;function zk(){if(ZU)return v2;ZU=1;var o=hA(),i=Ste(),s=wA().Buffer,f=new Array(16);function l(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}o(l,i),l.prototype._update=function(){for(var d=f,y=0;y<16;++y)d[y]=this._block.readInt32LE(y*4);var v=this._a,w=this._b,M=this._c,m=this._d;v=B(v,w,M,m,d[0],3614090360,7),m=B(m,v,w,M,d[1],3905402710,12),M=B(M,m,v,w,d[2],606105819,17),w=B(w,M,m,v,d[3],3250441966,22),v=B(v,w,M,m,d[4],4118548399,7),m=B(m,v,w,M,d[5],1200080426,12),M=B(M,m,v,w,d[6],2821735955,17),w=B(w,M,m,v,d[7],4249261313,22),v=B(v,w,M,m,d[8],1770035416,7),m=B(m,v,w,M,d[9],2336552879,12),M=B(M,m,v,w,d[10],4294925233,17),w=B(w,M,m,v,d[11],2304563134,22),v=B(v,w,M,m,d[12],1804603682,7),m=B(m,v,w,M,d[13],4254626195,12),M=B(M,m,v,w,d[14],2792965006,17),w=B(w,M,m,v,d[15],1236535329,22),v=I(v,w,M,m,d[1],4129170786,5),m=I(m,v,w,M,d[6],3225465664,9),M=I(M,m,v,w,d[11],643717713,14),w=I(w,M,m,v,d[0],3921069994,20),v=I(v,w,M,m,d[5],3593408605,5),m=I(m,v,w,M,d[10],38016083,9),M=I(M,m,v,w,d[15],3634488961,14),w=I(w,M,m,v,d[4],3889429448,20),v=I(v,w,M,m,d[9],568446438,5),m=I(m,v,w,M,d[14],3275163606,9),M=I(M,m,v,w,d[3],4107603335,14),w=I(w,M,m,v,d[8],1163531501,20),v=I(v,w,M,m,d[13],2850285829,5),m=I(m,v,w,M,d[2],4243563512,9),M=I(M,m,v,w,d[7],1735328473,14),w=I(w,M,m,v,d[12],2368359562,20),v=p(v,w,M,m,d[5],4294588738,4),m=p(m,v,w,M,d[8],2272392833,11),M=p(M,m,v,w,d[11],1839030562,16),w=p(w,M,m,v,d[14],4259657740,23),v=p(v,w,M,m,d[1],2763975236,4),m=p(m,v,w,M,d[4],1272893353,11),M=p(M,m,v,w,d[7],4139469664,16),w=p(w,M,m,v,d[10],3200236656,23),v=p(v,w,M,m,d[13],681279174,4),m=p(m,v,w,M,d[0],3936430074,11),M=p(M,m,v,w,d[3],3572445317,16),w=p(w,M,m,v,d[6],76029189,23),v=p(v,w,M,m,d[9],3654602809,4),m=p(m,v,w,M,d[12],3873151461,11),M=p(M,m,v,w,d[15],530742520,16),w=p(w,M,m,v,d[2],3299628645,23),v=Q(v,w,M,m,d[0],4096336452,6),m=Q(m,v,w,M,d[7],1126891415,10),M=Q(M,m,v,w,d[14],2878612391,15),w=Q(w,M,m,v,d[5],4237533241,21),v=Q(v,w,M,m,d[12],1700485571,6),m=Q(m,v,w,M,d[3],2399980690,10),M=Q(M,m,v,w,d[10],4293915773,15),w=Q(w,M,m,v,d[1],2240044497,21),v=Q(v,w,M,m,d[8],1873313359,6),m=Q(m,v,w,M,d[15],4264355552,10),M=Q(M,m,v,w,d[6],2734768916,15),w=Q(w,M,m,v,d[13],1309151649,21),v=Q(v,w,M,m,d[4],4149444226,6),m=Q(m,v,w,M,d[11],3174756917,10),M=Q(M,m,v,w,d[2],718787259,15),w=Q(w,M,m,v,d[9],3951481745,21),this._a=this._a+v|0,this._b=this._b+w|0,this._c=this._c+M|0,this._d=this._d+m|0},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var d=s.allocUnsafe(16);return d.writeInt32LE(this._a,0),d.writeInt32LE(this._b,4),d.writeInt32LE(this._c,8),d.writeInt32LE(this._d,12),d};function r(d,y){return d<>>32-y}function B(d,y,v,w,M,m,x){return r(d+(y&v|~y&w)+M+m|0,x)+y|0}function I(d,y,v,w,M,m,x){return r(d+(y&w|v&~w)+M+m|0,x)+y|0}function p(d,y,v,w,M,m,x){return r(d+(y^v^w)+M+m|0,x)+y|0}function Q(d,y,v,w,M,m,x){return r(d+(v^(y|~w))+M+m|0,x)+y|0}return v2=l,v2}var w2,zU;function $k(){if(zU)return w2;zU=1;var o=Wo().Buffer,i=hA(),s=Ste(),f=new Array(16),l=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],r=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],B=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],I=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],p=[0,1518500249,1859775393,2400959708,2840853838],Q=[1352829926,1548603684,1836072691,2053994217,0];function d(){s.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}i(d,s),d.prototype._update=function(){for(var D=f,S=0;S<16;++S)D[S]=this._block.readInt32LE(S*4);for(var K=this._a|0,N=this._b|0,L=this._c|0,j=this._d|0,re=this._e|0,Z=this._a|0,J=this._b|0,Ae=this._c|0,E=this._d|0,e=this._e|0,A=0;A<80;A+=1){var n,a;A<16?(n=v(K,N,L,j,re,D[l[A]],p[0],B[A]),a=x(Z,J,Ae,E,e,D[r[A]],Q[0],I[A])):A<32?(n=w(K,N,L,j,re,D[l[A]],p[1],B[A]),a=m(Z,J,Ae,E,e,D[r[A]],Q[1],I[A])):A<48?(n=M(K,N,L,j,re,D[l[A]],p[2],B[A]),a=M(Z,J,Ae,E,e,D[r[A]],Q[2],I[A])):A<64?(n=m(K,N,L,j,re,D[l[A]],p[3],B[A]),a=w(Z,J,Ae,E,e,D[r[A]],Q[3],I[A])):(n=x(K,N,L,j,re,D[l[A]],p[4],B[A]),a=v(Z,J,Ae,E,e,D[r[A]],Q[4],I[A])),K=re,re=j,j=y(L,10),L=N,N=n,Z=e,e=E,E=y(Ae,10),Ae=J,J=a}var h=this._b+L+E|0;this._b=this._c+j+e|0,this._c=this._d+re+Z|0,this._d=this._e+K+J|0,this._e=this._a+N+Ae|0,this._a=h},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var D=o.alloc?o.alloc(20):new o(20);return D.writeInt32LE(this._a,0),D.writeInt32LE(this._b,4),D.writeInt32LE(this._c,8),D.writeInt32LE(this._d,12),D.writeInt32LE(this._e,16),D};function y(D,S){return D<>>32-S}function v(D,S,K,N,L,j,re,Z){return y(D+(S^K^N)+j+re|0,Z)+L|0}function w(D,S,K,N,L,j,re,Z){return y(D+(S&K|~S&N)+j+re|0,Z)+L|0}function M(D,S,K,N,L,j,re,Z){return y(D+((S|~K)^N)+j+re|0,Z)+L|0}function m(D,S,K,N,L,j,re,Z){return y(D+(S&N|K&~N)+j+re|0,Z)+L|0}function x(D,S,K,N,L,j,re,Z){return y(D+(S^(K|~N))+j+re|0,Z)+L|0}return w2=d,w2}var m2={exports:{}},M2,$U;function iu(){if($U)return M2;$U=1;var o=wA().Buffer;function i(s,f){this._block=o.alloc(s),this._finalSize=f,this._blockSize=s,this._len=0}return i.prototype.update=function(s,f){typeof s=="string"&&(f=f||"utf8",s=o.from(s,f));for(var l=this._block,r=this._blockSize,B=s.length,I=this._len,p=0;p=this._finalSize&&(this._update(this._block),this._block.fill(0));var l=this._len*8;if(l<=4294967295)this._block.writeUInt32BE(l,this._blockSize-4);else{var r=(l&4294967295)>>>0,B=(l-r)/4294967296;this._block.writeUInt32BE(B,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var I=this._hash();return s?I.toString(s):I},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},M2=i,M2}var b2,XU;function lIe(){if(XU)return b2;XU=1;var o=hA(),i=iu(),s=wA().Buffer,f=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function B(Q){return Q<<5|Q>>>27}function I(Q){return Q<<30|Q>>>2}function p(Q,d,y,v){return Q===0?d&y|~d&v:Q===2?d&y|d&v|y&v:d^y^v}return r.prototype._update=function(Q){for(var d=this._w,y=this._a|0,v=this._b|0,w=this._c|0,M=this._d|0,m=this._e|0,x=0;x<16;++x)d[x]=Q.readInt32BE(x*4);for(;x<80;++x)d[x]=d[x-3]^d[x-8]^d[x-14]^d[x-16];for(var D=0;D<80;++D){var S=~~(D/20),K=B(y)+p(S,v,w,M)+m+d[D]+f[S]|0;m=M,M=w,w=I(v),v=y,y=K}this._a=y+this._a|0,this._b=v+this._b|0,this._c=w+this._c|0,this._d=M+this._d|0,this._e=m+this._e|0},r.prototype._hash=function(){var Q=s.allocUnsafe(20);return Q.writeInt32BE(this._a|0,0),Q.writeInt32BE(this._b|0,4),Q.writeInt32BE(this._c|0,8),Q.writeInt32BE(this._d|0,12),Q.writeInt32BE(this._e|0,16),Q},b2=r,b2}var D2,eq;function dIe(){if(eq)return D2;eq=1;var o=hA(),i=iu(),s=wA().Buffer,f=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function B(d){return d<<1|d>>>31}function I(d){return d<<5|d>>>27}function p(d){return d<<30|d>>>2}function Q(d,y,v,w){return d===0?y&v|~y&w:d===2?y&v|y&w|v&w:y^v^w}return r.prototype._update=function(d){for(var y=this._w,v=this._a|0,w=this._b|0,M=this._c|0,m=this._d|0,x=this._e|0,D=0;D<16;++D)y[D]=d.readInt32BE(D*4);for(;D<80;++D)y[D]=B(y[D-3]^y[D-8]^y[D-14]^y[D-16]);for(var S=0;S<80;++S){var K=~~(S/20),N=I(v)+Q(K,w,M,m)+x+y[S]+f[K]|0;x=m,m=M,M=p(w),w=v,v=N}this._a=v+this._a|0,this._b=w+this._b|0,this._c=M+this._c|0,this._d=m+this._d|0,this._e=x+this._e|0},r.prototype._hash=function(){var d=s.allocUnsafe(20);return d.writeInt32BE(this._a|0,0),d.writeInt32BE(this._b|0,4),d.writeInt32BE(this._c|0,8),d.writeInt32BE(this._d|0,12),d.writeInt32BE(this._e|0,16),d},D2=r,D2}var S2,tq;function xte(){if(tq)return S2;tq=1;var o=hA(),i=iu(),s=wA().Buffer,f=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],l=new Array(64);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function B(v,w,M){return M^v&(w^M)}function I(v,w,M){return v&w|M&(v|w)}function p(v){return(v>>>2|v<<30)^(v>>>13|v<<19)^(v>>>22|v<<10)}function Q(v){return(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7)}function d(v){return(v>>>7|v<<25)^(v>>>18|v<<14)^v>>>3}function y(v){return(v>>>17|v<<15)^(v>>>19|v<<13)^v>>>10}return r.prototype._update=function(v){for(var w=this._w,M=this._a|0,m=this._b|0,x=this._c|0,D=this._d|0,S=this._e|0,K=this._f|0,N=this._g|0,L=this._h|0,j=0;j<16;++j)w[j]=v.readInt32BE(j*4);for(;j<64;++j)w[j]=y(w[j-2])+w[j-7]+d(w[j-15])+w[j-16]|0;for(var re=0;re<64;++re){var Z=L+Q(S)+B(S,K,N)+f[re]+w[re]|0,J=p(M)+I(M,m,x)|0;L=N,N=K,K=S,S=D+Z|0,D=x,x=m,m=M,M=Z+J|0}this._a=M+this._a|0,this._b=m+this._b|0,this._c=x+this._c|0,this._d=D+this._d|0,this._e=S+this._e|0,this._f=K+this._f|0,this._g=N+this._g|0,this._h=L+this._h|0},r.prototype._hash=function(){var v=s.allocUnsafe(32);return v.writeInt32BE(this._a,0),v.writeInt32BE(this._b,4),v.writeInt32BE(this._c,8),v.writeInt32BE(this._d,12),v.writeInt32BE(this._e,16),v.writeInt32BE(this._f,20),v.writeInt32BE(this._g,24),v.writeInt32BE(this._h,28),v},S2=r,S2}var x2,Aq;function IIe(){if(Aq)return x2;Aq=1;var o=hA(),i=xte(),s=iu(),f=wA().Buffer,l=new Array(64);function r(){this.init(),this._w=l,s.call(this,64,56)}return o(r,i),r.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},r.prototype._hash=function(){var B=f.allocUnsafe(28);return B.writeInt32BE(this._a,0),B.writeInt32BE(this._b,4),B.writeInt32BE(this._c,8),B.writeInt32BE(this._d,12),B.writeInt32BE(this._e,16),B.writeInt32BE(this._f,20),B.writeInt32BE(this._g,24),B},x2=r,x2}var R2,rq;function Rte(){if(rq)return R2;rq=1;var o=hA(),i=iu(),s=wA().Buffer,f=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],l=new Array(160);function r(){this.init(),this._w=l,i.call(this,128,112)}o(r,i),r.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function B(m,x,D){return D^m&(x^D)}function I(m,x,D){return m&x|D&(m|x)}function p(m,x){return(m>>>28|x<<4)^(x>>>2|m<<30)^(x>>>7|m<<25)}function Q(m,x){return(m>>>14|x<<18)^(m>>>18|x<<14)^(x>>>9|m<<23)}function d(m,x){return(m>>>1|x<<31)^(m>>>8|x<<24)^m>>>7}function y(m,x){return(m>>>1|x<<31)^(m>>>8|x<<24)^(m>>>7|x<<25)}function v(m,x){return(m>>>19|x<<13)^(x>>>29|m<<3)^m>>>6}function w(m,x){return(m>>>19|x<<13)^(x>>>29|m<<3)^(m>>>6|x<<26)}function M(m,x){return m>>>0>>0?1:0}return r.prototype._update=function(m){for(var x=this._w,D=this._ah|0,S=this._bh|0,K=this._ch|0,N=this._dh|0,L=this._eh|0,j=this._fh|0,re=this._gh|0,Z=this._hh|0,J=this._al|0,Ae=this._bl|0,E=this._cl|0,e=this._dl|0,A=this._el|0,n=this._fl|0,a=this._gl|0,h=this._hl|0,c=0;c<32;c+=2)x[c]=m.readInt32BE(c*4),x[c+1]=m.readInt32BE(c*4+4);for(;c<160;c+=2){var C=x[c-30],g=x[c-15*2+1],t=d(C,g),u=y(g,C);C=x[c-2*2],g=x[c-2*2+1];var b=v(C,g),R=w(g,C),T=x[c-7*2],V=x[c-7*2+1],P=x[c-16*2],F=x[c-16*2+1],Y=u+V|0,W=t+T+M(Y,u)|0;Y=Y+R|0,W=W+b+M(Y,R)|0,Y=Y+F|0,W=W+P+M(Y,F)|0,x[c]=W,x[c+1]=Y}for(var te=0;te<160;te+=2){W=x[te],Y=x[te+1];var z=I(D,S,K),q=I(J,Ae,E),$=p(D,J),le=p(J,D),ae=Q(L,A),he=Q(A,L),xe=f[te],se=f[te+1],oe=B(L,j,re),Ue=B(A,n,a),fe=h+he|0,ce=Z+ae+M(fe,h)|0;fe=fe+Ue|0,ce=ce+oe+M(fe,Ue)|0,fe=fe+se|0,ce=ce+xe+M(fe,se)|0,fe=fe+Y|0,ce=ce+W+M(fe,Y)|0;var Te=le+q|0,ue=$+z+M(Te,le)|0;Z=re,h=a,re=j,a=n,j=L,n=A,A=e+fe|0,L=N+ce+M(A,e)|0,N=K,e=E,K=S,E=Ae,S=D,Ae=J,J=fe+Te|0,D=ce+ue+M(J,fe)|0}this._al=this._al+J|0,this._bl=this._bl+Ae|0,this._cl=this._cl+E|0,this._dl=this._dl+e|0,this._el=this._el+A|0,this._fl=this._fl+n|0,this._gl=this._gl+a|0,this._hl=this._hl+h|0,this._ah=this._ah+D+M(this._al,J)|0,this._bh=this._bh+S+M(this._bl,Ae)|0,this._ch=this._ch+K+M(this._cl,E)|0,this._dh=this._dh+N+M(this._dl,e)|0,this._eh=this._eh+L+M(this._el,A)|0,this._fh=this._fh+j+M(this._fl,n)|0,this._gh=this._gh+re+M(this._gl,a)|0,this._hh=this._hh+Z+M(this._hl,h)|0},r.prototype._hash=function(){var m=s.allocUnsafe(64);function x(D,S,K){m.writeInt32BE(D,K),m.writeInt32BE(S,K+4)}return x(this._ah,this._al,0),x(this._bh,this._bl,8),x(this._ch,this._cl,16),x(this._dh,this._dl,24),x(this._eh,this._el,32),x(this._fh,this._fl,40),x(this._gh,this._gl,48),x(this._hh,this._hl,56),m},R2=r,R2}var k2,iq;function BIe(){if(iq)return k2;iq=1;var o=hA(),i=Rte(),s=iu(),f=wA().Buffer,l=new Array(160);function r(){this.init(),this._w=l,s.call(this,128,112)}return o(r,i),r.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},r.prototype._hash=function(){var B=f.allocUnsafe(48);function I(p,Q,d){B.writeInt32BE(p,d),B.writeInt32BE(Q,d+4)}return I(this._ah,this._al,0),I(this._bh,this._bl,8),I(this._ch,this._cl,16),I(this._dh,this._dl,24),I(this._eh,this._el,32),I(this._fh,this._fl,40),B},k2=r,k2}var nq;function Xk(){if(nq)return m2.exports;nq=1;var o=m2.exports=function(s){s=s.toLowerCase();var f=o[s];if(!f)throw new Error(s+" is not supported (we accept pull requests)");return new f};return o.sha=lIe(),o.sha1=dIe(),o.sha224=IIe(),o.sha256=xte(),o.sha384=BIe(),o.sha512=Rte(),m2.exports}var N2,oq;function CIe(){if(oq)return N2;oq=1,N2=s;var o=Zl().EventEmitter,i=hA();i(s,o),s.Readable=Vk(),s.Writable=Wk(),s.Duplex=Th(),s.Transform=Zk(),s.PassThrough=bte(),s.finished=iQ(),s.pipeline=Dte(),s.Stream=s;function s(){o.call(this)}return s.prototype.pipe=function(f,l){var r=this;function B(w){f.writable&&f.write(w)===!1&&r.pause&&r.pause()}r.on("data",B);function I(){r.readable&&r.resume&&r.resume()}f.on("drain",I),!f._isStdio&&(!l||l.end!==!1)&&(r.on("end",Q),r.on("close",d));var p=!1;function Q(){p||(p=!0,f.end())}function d(){p||(p=!0,typeof f.destroy=="function"&&f.destroy())}function y(w){if(v(),o.listenerCount(this,"error")===0)throw w}r.on("error",y),f.on("error",y);function v(){r.removeListener("data",B),f.removeListener("drain",I),r.removeListener("end",Q),r.removeListener("close",d),r.removeListener("error",y),f.removeListener("error",y),r.removeListener("end",v),r.removeListener("close",v),f.removeListener("close",v)}return r.on("end",v),r.on("close",v),f.on("close",v),f.emit("pipe",r),f},N2}var _2,aq;function bf(){if(aq)return _2;aq=1;var o=wA().Buffer,i=CIe().Transform,s=nR().StringDecoder,f=hA();function l(r){i.call(this),this.hashMode=typeof r=="string",this.hashMode?this[r]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}return f(l,i),l.prototype.update=function(r,B,I){typeof r=="string"&&(r=o.from(r,B));var p=this._update(r);return this.hashMode?this:(I&&(p=this._toString(p,I)),p)},l.prototype.setAutoPadding=function(){},l.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},l.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},l.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},l.prototype._transform=function(r,B,I){var p;try{this.hashMode?this._update(r):this.push(this._update(r))}catch(Q){p=Q}finally{I(p)}},l.prototype._flush=function(r){var B;try{this.push(this.__final())}catch(I){B=I}r(B)},l.prototype._finalOrDigest=function(r){var B=this.__final()||o.alloc(0);return r&&(B=this._toString(B,r,!0)),B},l.prototype._toString=function(r,B,I){if(this._decoder||(this._decoder=new s(B),this._encoding=B),this._encoding!==B)throw new Error("can't switch encodings");var p=this._decoder.write(r);return I&&(p+=this._decoder.end()),p},_2=l,_2}var K2,sq;function zl(){if(sq)return K2;sq=1;var o=hA(),i=zk(),s=$k(),f=Xk(),l=bf();function r(B){l.call(this,"digest"),this._hash=B}return o(r,l),r.prototype._update=function(B){this._hash.update(B)},r.prototype._final=function(){return this._hash.digest()},K2=function(I){return I=I.toLowerCase(),I==="md5"?new i:I==="rmd160"||I==="ripemd160"?new s:new r(f(I))},K2}var F2,fq;function EIe(){if(fq)return F2;fq=1;var o=hA(),i=wA().Buffer,s=bf(),f=i.alloc(128),l=64;function r(B,I){s.call(this,"digest"),typeof I=="string"&&(I=i.from(I)),this._alg=B,this._key=I,I.length>l?I=B(I):I.lengthy){var v=Q==="rmd160"?new r:B(Q);d=v.update(d).digest()}else d.lengtho||s!==s)throw new TypeError("Bad key length")},q2}var H2,lq;function Fte(){if(lq)return H2;lq=1;var o;if(globalThis.process&&globalThis.process.browser)o="utf-8";else if(globalThis.process&&globalThis.process.version){var i=parseInt(process.version.split(".")[0].slice(1),10);o=i>=6?"utf-8":"binary"}else o="utf-8";return H2=o,H2}var T2,dq;function Gte(){if(dq)return T2;dq=1;var o=wA().Buffer;return T2=function(i,s,f){if(o.isBuffer(i))return i;if(typeof i=="string")return o.from(i,s);if(ArrayBuffer.isView(i))return o.from(i.buffer);throw new TypeError(f+" must be a string, a Buffer, a typed array or a DataView")},T2}var Y2,Iq;function Lte(){if(Iq)return Y2;Iq=1;var o=kte(),i=$k(),s=Xk(),f=wA().Buffer,l=Kte(),r=Fte(),B=Gte(),I=f.alloc(128),p={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function Q(v,w,M){var m=d(v),x=v==="sha512"||v==="sha384"?128:64;w.length>x?w=m(w):w.length>>0},gn.writeUInt32BE=function(l,r,B){l[0+B]=r>>>24,l[1+B]=r>>>16&255,l[2+B]=r>>>8&255,l[3+B]=r&255},gn.ip=function(l,r,B,I){for(var p=0,Q=0,d=6;d>=0;d-=2){for(var y=0;y<=24;y+=8)p<<=1,p|=r>>>y+d&1;for(var y=0;y<=24;y+=8)p<<=1,p|=l>>>y+d&1}for(var d=6;d>=0;d-=2){for(var y=1;y<=25;y+=8)Q<<=1,Q|=r>>>y+d&1;for(var y=1;y<=25;y+=8)Q<<=1,Q|=l>>>y+d&1}B[I+0]=p>>>0,B[I+1]=Q>>>0},gn.rip=function(l,r,B,I){for(var p=0,Q=0,d=0;d<4;d++)for(var y=24;y>=0;y-=8)p<<=1,p|=r>>>y+d&1,p<<=1,p|=l>>>y+d&1;for(var d=4;d<8;d++)for(var y=24;y>=0;y-=8)Q<<=1,Q|=r>>>y+d&1,Q<<=1,Q|=l>>>y+d&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},gn.pc1=function(l,r,B,I){for(var p=0,Q=0,d=7;d>=5;d--){for(var y=0;y<=24;y+=8)p<<=1,p|=r>>y+d&1;for(var y=0;y<=24;y+=8)p<<=1,p|=l>>y+d&1}for(var y=0;y<=24;y+=8)p<<=1,p|=r>>y+d&1;for(var d=1;d<=3;d++){for(var y=0;y<=24;y+=8)Q<<=1,Q|=r>>y+d&1;for(var y=0;y<=24;y+=8)Q<<=1,Q|=l>>y+d&1}for(var y=0;y<=24;y+=8)Q<<=1,Q|=l>>y+d&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},gn.r28shl=function(l,r){return l<>>28-r};var o=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];gn.pc2=function(l,r,B,I){for(var p=0,Q=0,d=o.length>>>1,y=0;y>>o[y]&1;for(var y=d;y>>o[y]&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},gn.expand=function(l,r,B){var I=0,p=0;I=(l&1)<<5|l>>>27;for(var Q=23;Q>=15;Q-=4)I<<=6,I|=l>>>Q&63;for(var Q=11;Q>=3;Q-=4)p|=l>>>Q&63,p<<=6;p|=(l&31)<<1|l>>>31,r[B+0]=I>>>0,r[B+1]=p>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];gn.substitute=function(l,r){for(var B=0,I=0;I<4;I++){var p=l>>>18-I*6&63,Q=i[I*64+p];B<<=4,B|=Q}for(var I=0;I<4;I++){var p=r>>>18-I*6&63,Q=i[4*64+I*64+p];B<<=4,B|=Q}return B>>>0};var s=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];return gn.permute=function(l){for(var r=0,B=0;B>>s[B]&1;return r>>>0},gn.padSplit=function(l,r,B){for(var I=l.toString(2);I.length0;B--)l+=this._buffer(f,l),r+=this._flushBuffer(I,r);return l+=this._buffer(f,l),I},i.prototype.final=function(f){var l;f&&(l=this.update(f));var r;return this.type==="encrypt"?r=this._finalEncrypt():r=this._finalDecrypt(),l?l.concat(r):r},i.prototype._pad=function(f,l){if(l===0)return!1;for(;l>>1];d=s.r28shl(d,w),y=s.r28shl(y,w),s.pc2(d,y,p.keys,v)}},r.prototype._update=function(p,Q,d,y){var v=this._desState,w=s.readUInt32BE(p,Q),M=s.readUInt32BE(p,Q+4);s.ip(w,M,v.tmp,0),w=v.tmp[0],M=v.tmp[1],this.type==="encrypt"?this._encrypt(v,w,M,v.tmp,0):this._decrypt(v,w,M,v.tmp,0),w=v.tmp[0],M=v.tmp[1],s.writeUInt32BE(d,w,y),s.writeUInt32BE(d,M,y+4)},r.prototype._pad=function(p,Q){if(this.padding===!1)return!1;for(var d=p.length-Q,y=Q;y>>0,w=N}s.rip(M,w,y,v)},r.prototype._decrypt=function(p,Q,d,y,v){for(var w=d,M=Q,m=p.keys.length-2;m>=0;m-=2){var x=p.keys[m],D=p.keys[m+1];s.expand(w,p.tmp,0),x^=p.tmp[0],D^=p.tmp[1];var S=s.substitute(x,D),K=s.permute(S),N=w;w=(M^K)>>>0,M=N}s.rip(w,M,y,v)},O2}var j2={},yq;function NIe(){if(yq)return j2;yq=1;var o=Bo(),i=hA(),s={};function f(r){o.equal(r.length,8,"Invalid IV length"),this.iv=new Array(8);for(var B=0;B>I%8,f._prev=s(f._prev,r?d:y);return Q}function s(f,l){var r=f.length,B=-1,I=o.allocUnsafe(f.length);for(f=o.concat([f,o.from([l])]);++B>7;return I}return X2.encrypt=function(f,l,r){for(var B=l.length,I=o.allocUnsafe(B),p=-1;++p>>24]^w[D>>>16&255]^M[S>>>8&255]^m[K&255]^p[Z++],L=v[D>>>24]^w[S>>>16&255]^M[K>>>8&255]^m[x&255]^p[Z++],j=v[S>>>24]^w[K>>>16&255]^M[x>>>8&255]^m[D&255]^p[Z++],re=v[K>>>24]^w[x>>>16&255]^M[D>>>8&255]^m[S&255]^p[Z++],x=N,D=L,S=j,K=re;return N=(d[x>>>24]<<24|d[D>>>16&255]<<16|d[S>>>8&255]<<8|d[K&255])^p[Z++],L=(d[D>>>24]<<24|d[S>>>16&255]<<16|d[K>>>8&255]<<8|d[x&255])^p[Z++],j=(d[S>>>24]<<24|d[K>>>16&255]<<16|d[x>>>8&255]<<8|d[D&255])^p[Z++],re=(d[K>>>24]<<24|d[x>>>16&255]<<16|d[D>>>8&255]<<8|d[S&255])^p[Z++],N=N>>>0,L=L>>>0,j=j>>>0,re=re>>>0,[N,L,j,re]}var l=[0,1,2,4,8,16,32,64,128,27,54],r=function(){for(var I=new Array(256),p=0;p<256;p++)p<128?I[p]=p<<1:I[p]=p<<1^283;for(var Q=[],d=[],y=[[],[],[],[]],v=[[],[],[],[]],w=0,M=0,m=0;m<256;++m){var x=M^M<<1^M<<2^M<<3^M<<4;x=x>>>8^x&255^99,Q[w]=x,d[x]=w;var D=I[w],S=I[D],K=I[S],N=I[x]*257^x*16843008;y[0][w]=N<<24|N>>>8,y[1][w]=N<<16|N>>>16,y[2][w]=N<<8|N>>>24,y[3][w]=N,N=K*16843009^S*65537^D*257^w*16843008,v[0][x]=N<<24|N>>>8,v[1][x]=N<<16|N>>>16,v[2][x]=N<<8|N>>>24,v[3][x]=N,w===0?w=M=1:(w=D^I[I[I[K^D]]],M^=I[I[M]])}return{SBOX:Q,INV_SBOX:d,SUB_MIX:y,INV_SUB_MIX:v}}();function B(I){this._key=i(I),this._reset()}return B.blockSize=4*4,B.keySize=256/8,B.prototype.blockSize=B.blockSize,B.prototype.keySize=B.keySize,B.prototype._reset=function(){for(var I=this._key,p=I.length,Q=p+6,d=(Q+1)*4,y=[],v=0;v>>24,w=r.SBOX[w>>>24]<<24|r.SBOX[w>>>16&255]<<16|r.SBOX[w>>>8&255]<<8|r.SBOX[w&255],w^=l[v/p|0]<<24):p>6&&v%p===4&&(w=r.SBOX[w>>>24]<<24|r.SBOX[w>>>16&255]<<16|r.SBOX[w>>>8&255]<<8|r.SBOX[w&255]),y[v]=y[v-p]^w}for(var M=[],m=0;m>>24]]^r.INV_SUB_MIX[1][r.SBOX[D>>>16&255]]^r.INV_SUB_MIX[2][r.SBOX[D>>>8&255]]^r.INV_SUB_MIX[3][r.SBOX[D&255]]}this._nRounds=Q,this._keySchedule=y,this._invKeySchedule=M},B.prototype.encryptBlockRaw=function(I){return I=i(I),f(I,this._keySchedule,r.SUB_MIX,r.SBOX,this._nRounds)},B.prototype.encryptBlock=function(I){var p=this.encryptBlockRaw(I),Q=o.allocUnsafe(16);return Q.writeUInt32BE(p[0],0),Q.writeUInt32BE(p[1],4),Q.writeUInt32BE(p[2],8),Q.writeUInt32BE(p[3],12),Q},B.prototype.decryptBlock=function(I){I=i(I);var p=I[1];I[1]=I[3],I[3]=p;var Q=f(I,this._invKeySchedule,r.INV_SUB_MIX,r.INV_SBOX,this._nRounds),d=o.allocUnsafe(16);return d.writeUInt32BE(Q[0],0),d.writeUInt32BE(Q[3],4),d.writeUInt32BE(Q[2],8),d.writeUInt32BE(Q[1],12),d},B.prototype.scrub=function(){s(this._keySchedule),s(this._invKeySchedule),s(this._key)},iM.AES=B,iM}var nM,Lq;function OIe(){if(Lq)return nM;Lq=1;var o=wA().Buffer,i=o.alloc(16,0);function s(r){return[r.readUInt32BE(0),r.readUInt32BE(4),r.readUInt32BE(8),r.readUInt32BE(12)]}function f(r){var B=o.allocUnsafe(16);return B.writeUInt32BE(r[0]>>>0,0),B.writeUInt32BE(r[1]>>>0,4),B.writeUInt32BE(r[2]>>>0,8),B.writeUInt32BE(r[3]>>>0,12),B}function l(r){this.h=r,this.state=o.alloc(16,0),this.cache=o.allocUnsafe(0)}return l.prototype.ghash=function(r){for(var B=-1;++B0;I--)r[I]=r[I]>>>1|(r[I-1]&1)<<31;r[0]=r[0]>>>1,Q&&(r[0]=r[0]^225<<24)}this.state=f(B)},l.prototype.update=function(r){this.cache=o.concat([this.cache,r]);for(var B;this.cache.length>=16;)B=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(B)},l.prototype.final=function(r,B){return this.cache.length&&this.ghash(o.concat([this.cache,i],16)),this.ghash(f([0,r,0,B])),this.state},nM=l,nM}var oM,Uq;function Jte(){if(Uq)return oM;Uq=1;var o=nQ(),i=wA().Buffer,s=bf(),f=hA(),l=OIe(),r=$l(),B=Tte();function I(d,y){var v=0;d.length!==y.length&&v++;for(var w=Math.min(d.length,y.length),M=0;M0||B>0;){var y=new i;y.update(d),y.update(f),l&&y.update(l),d=y.digest();var v=0;if(I>0){var w=p.length-I;v=Math.min(I,d.length),d.copy(p,w,0,v),I-=v}if(v0){var M=Q.length-B,m=Math.min(B,d.length-v);d.copy(Q,M,v,v+m),B-=m}}return d.fill(0),{key:p,iv:Q}}return sM=s,sM}var Tq;function jIe(){if(Tq)return cB;Tq=1;var o=tN(),i=Jte(),s=wA().Buffer,f=Pte(),l=bf(),r=nQ(),B=oQ(),I=hA();function p(w,M,m){l.call(this),this._cache=new d,this._cipher=new r.AES(M),this._prev=s.from(m),this._mode=w,this._autopadding=!0}I(p,l),p.prototype._update=function(w){this._cache.add(w);for(var M,m,x=[];M=this._cache.get();)m=this._mode.encrypt(this,M),x.push(m);return s.concat(x)};var Q=s.alloc(16,16);p.prototype._final=function(){var w=this._cache.flush();if(this._autopadding)return w=this._mode.encrypt(this,w),this._cipher.scrub(),w;if(!w.equals(Q))throw this._cipher.scrub(),new Error("data not multiple of block length")},p.prototype.setAutoPadding=function(w){return this._autopadding=!!w,this};function d(){this.cache=s.allocUnsafe(0)}d.prototype.add=function(w){this.cache=s.concat([this.cache,w])},d.prototype.get=function(){if(this.cache.length>15){var w=this.cache.slice(0,16);return this.cache=this.cache.slice(16),w}return null},d.prototype.flush=function(){for(var w=16-this.cache.length,M=s.allocUnsafe(w),m=-1;++m16)return M=this.cache.slice(0,16),this.cache=this.cache.slice(16),M}else if(this.cache.length>=16)return M=this.cache.slice(0,16),this.cache=this.cache.slice(16),M;return null},Q.prototype.flush=function(){if(this.cache.length)return this.cache};function d(w){var M=w[15];if(M<1||M>16)throw new Error("unable to decrypt data");for(var m=-1;++m0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,zIe)}(YC)),YC.exports}var JC={exports:{}},$Ie=JC.exports,Wq;function XIe(){return Wq||(Wq=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,$Ie)}(JC)),JC.exports}var hM,Vq;function jte(){if(Vq)return hM;Vq=1;var o=XIe(),i=oN();function s(f){this.rand=f||new i.Rand}return hM=s,s.create=function(l){return new s(l)},s.prototype._randbelow=function(l){var r=l.bitLength(),B=Math.ceil(r/8);do var I=new o(this.rand.generate(B));while(I.cmp(l)>=0);return I},s.prototype._randrange=function(l,r){var B=r.sub(l);return l.add(this._randbelow(B))},s.prototype.test=function(l,r,B){var I=l.bitLength(),p=o.mont(l),Q=new o(1).toRed(p);r||(r=Math.max(1,I/48|0));for(var d=l.subn(1),y=0;!d.testn(y);y++);for(var v=l.shrn(y),w=d.toRed(p),M=!0;r>0;r--){var m=this._randrange(new o(2),d);B&&B(m);var x=m.toRed(p).redPow(v);if(!(x.cmp(Q)===0||x.cmp(w)===0)){for(var D=1;D0;r--){var w=this._randrange(new o(2),Q),M=l.gcd(w);if(M.cmpn(1)!==0)return M;var m=w.toRed(I).redPow(y);if(!(m.cmp(p)===0||m.cmp(v)===0)){for(var x=1;xD;)K.ishrn(1);if(K.isEven()&&K.iadd(r),K.testn(1)||K.iadd(B),S.cmp(B)){if(!S.cmp(I))for(;K.mod(p).cmp(Q);)K.iadd(y)}else for(;K.mod(s).cmp(d);)K.iadd(y);if(N=K.shrn(1),M(N)&&M(K)&&m(N)&&m(K)&&l.test(N)&&l.test(K))return K}}return gM}const eBe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},tBe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},ABe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},rBe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},iBe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},nBe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},oBe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},aBe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},sBe={modp1:eBe,modp2:tBe,modp5:ABe,modp14:rBe,modp15:iBe,modp16:nBe,modp17:oBe,modp18:aBe};var uM,zq;function fBe(){if(zq)return uM;zq=1;var o=Ote(),i=jte(),s=new i,f=new o(24),l=new o(11),r=new o(10),B=new o(3),I=new o(7),p=Wte(),Q=Au();uM=M;function d(x,D){return D=D||"utf8",Buffer.isBuffer(x)||(x=new Buffer(x,D)),this._pub=new o(x),this}function y(x,D){return D=D||"utf8",Buffer.isBuffer(x)||(x=new Buffer(x,D)),this._priv=new o(x),this}var v={};function w(x,D){var S=D.toString("hex"),K=[S,x.toString(16)].join("_");if(K in v)return v[K];var N=0;if(x.isEven()||!p.simpleSieve||!p.fermatTest(x)||!s.test(x))return N+=1,S==="02"||S==="05"?N+=8:N+=4,v[K]=N,N;s.test(x.shrn(1))||(N+=2);var L;switch(S){case"02":x.mod(f).cmp(l)&&(N+=8);break;case"05":L=x.mod(r),L.cmp(B)&&L.cmp(I)&&(N+=8);break;default:N+=4}return v[K]=N,N}function M(x,D,S){this.setGenerator(D),this.__prime=new o(x),this._prime=o.mont(this.__prime),this._primeLen=x.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,S?(this.setPublicKey=d,this.setPrivateKey=y):this._primeCode=8}Object.defineProperty(M.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=w(this.__prime,this.__gen)),this._primeCode}}),M.prototype.generateKeys=function(){return this._priv||(this._priv=new o(Q(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},M.prototype.computeSecret=function(x){x=new o(x),x=x.toRed(this._prime);var D=x.redPow(this._priv).fromRed(),S=new Buffer(D.toArray()),K=this.getPrime();if(S.length"u"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?CB.exports={nextTick:o}:CB.exports=process;function o(i,s,f,l){if(typeof i!="function")throw new TypeError('"callback" argument must be a function');var r=arguments.length,B,I;switch(r){case 0:case 1:return process.nextTick(i);case 2:return process.nextTick(function(){i.call(null,s)});case 3:return process.nextTick(function(){i.call(null,s,f)});case 4:return process.nextTick(function(){i.call(null,s,f,l)});default:for(B=new Array(r-1),I=0;I"u"}ii.isPrimitive=w,ii.isBuffer=Wo().Buffer.isBuffer;function M(m){return Object.prototype.toString.call(m)}return ii}var dM={exports:{}},iH;function uBe(){return iH||(iH=1,function(o){function i(r,B){if(!(r instanceof B))throw new TypeError("Cannot call a class as a function")}var s=rN().Buffer,f=tA;function l(r,B,I){r.copy(B,I)}o.exports=function(){function r(){i(this,r),this.head=null,this.tail=null,this.length=0}return r.prototype.push=function(I){var p={data:I,next:null};this.length>0?this.tail.next=p:this.head=p,this.tail=p,++this.length},r.prototype.unshift=function(I){var p={data:I,next:this.head};this.length===0&&(this.tail=p),this.head=p,++this.length},r.prototype.shift=function(){if(this.length!==0){var I=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,I}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(I){if(this.length===0)return"";for(var p=this.head,Q=""+p.data;p=p.next;)Q+=I+p.data;return Q},r.prototype.concat=function(I){if(this.length===0)return s.alloc(0);for(var p=s.allocUnsafe(I>>>0),Q=this.head,d=0;Q;)l(Q.data,p,d),d+=Q.data.length,Q=Q.next;return p},r}(),f&&f.inspect&&f.inspect.custom&&(o.exports.prototype[f.inspect.custom]=function(){var r=f.inspect({length:this.length});return this.constructor.name+" "+r})}(dM)),dM.exports}var IM,nH;function Zte(){if(nH)return IM;nH=1;var o=aQ();function i(l,r){var B=this,I=this._readableState&&this._readableState.destroyed,p=this._writableState&&this._writableState.destroyed;return I||p?(r?r(l):l&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,o.nextTick(f,this,l)):o.nextTick(f,this,l)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(l||null,function(Q){!r&&Q?B._writableState?B._writableState.errorEmitted||(B._writableState.errorEmitted=!0,o.nextTick(f,B,Q)):o.nextTick(f,B,Q):r&&r(Q)}),this)}function s(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function f(l,r){l.emit("error",r)}return IM={destroy:i,undestroy:s},IM}var BM,oH;function zte(){if(oH)return BM;oH=1;var o=aQ();BM=m;function i(c){var C=this;this.next=null,this.entry=null,this.finish=function(){h(C,c)}}var s=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:o.nextTick,f;m.WritableState=w;var l=Object.create(Xl());l.inherits=hA();var r={deprecate:Mte()},B=Vte(),I=rN().Buffer,p=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Q(c){return I.from(c)}function d(c){return I.isBuffer(c)||c instanceof p}var y=Zte();l.inherits(m,B);function v(){}function w(c,C){f=f||yg(),c=c||{};var g=C instanceof f;this.objectMode=!!c.objectMode,g&&(this.objectMode=this.objectMode||!!c.writableObjectMode);var t=c.highWaterMark,u=c.writableHighWaterMark,b=this.objectMode?16:16*1024;t||t===0?this.highWaterMark=t:g&&(u||u===0)?this.highWaterMark=u:this.highWaterMark=b,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var R=c.decodeStrings===!1;this.decodeStrings=!R,this.defaultEncoding=c.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(T){re(C,T)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}w.prototype.getBuffer=function(){for(var C=this.bufferedRequest,g=[];C;)g.push(C),C=C.next;return g},function(){try{Object.defineProperty(w.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var M;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(M=Function.prototype[Symbol.hasInstance],Object.defineProperty(m,Symbol.hasInstance,{value:function(c){return M.call(this,c)?!0:this!==m?!1:c&&c._writableState instanceof w}})):M=function(c){return c instanceof this};function m(c){if(f=f||yg(),!M.call(m,this)&&!(this instanceof f))return new m(c);this._writableState=new w(c,this),this.writable=!0,c&&(typeof c.write=="function"&&(this._write=c.write),typeof c.writev=="function"&&(this._writev=c.writev),typeof c.destroy=="function"&&(this._destroy=c.destroy),typeof c.final=="function"&&(this._final=c.final)),B.call(this)}m.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function x(c,C){var g=new Error("write after end");c.emit("error",g),o.nextTick(C,g)}function D(c,C,g,t){var u=!0,b=!1;return g===null?b=new TypeError("May not write null values to stream"):typeof g!="string"&&g!==void 0&&!C.objectMode&&(b=new TypeError("Invalid non-string/buffer chunk")),b&&(c.emit("error",b),o.nextTick(t,b),u=!1),u}m.prototype.write=function(c,C,g){var t=this._writableState,u=!1,b=!t.objectMode&&d(c);return b&&!I.isBuffer(c)&&(c=Q(c)),typeof C=="function"&&(g=C,C=null),b?C="buffer":C||(C=t.defaultEncoding),typeof g!="function"&&(g=v),t.ended?x(this,g):(b||D(this,t,c,g))&&(t.pendingcb++,u=K(this,t,b,c,C,g)),u},m.prototype.cork=function(){var c=this._writableState;c.corked++},m.prototype.uncork=function(){var c=this._writableState;c.corked&&(c.corked--,!c.writing&&!c.corked&&!c.bufferProcessing&&c.bufferedRequest&&Ae(this,c))},m.prototype.setDefaultEncoding=function(C){if(typeof C=="string"&&(C=C.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((C+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+C);return this._writableState.defaultEncoding=C,this};function S(c,C,g){return!c.objectMode&&c.decodeStrings!==!1&&typeof C=="string"&&(C=I.from(C,g)),C}Object.defineProperty(m.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function K(c,C,g,t,u,b){if(!g){var R=S(C,t,u);t!==R&&(g=!0,u="buffer",t=R)}var T=C.objectMode?1:t.length;C.length+=T;var V=C.length>5===6?2:D>>4===14?3:D>>3===30?4:D>>6===2?-1:-2}function B(D,S,K){var N=S.length-1;if(N=0?(L>0&&(D.lastNeed=L-1),L):--N=0?(L>0&&(D.lastNeed=L-2),L):--N=0?(L>0&&(L===2?L=0:D.lastNeed=L-3),L):0))}function I(D,S,K){if((S[0]&192)!==128)return D.lastNeed=0,"�";if(D.lastNeed>1&&S.length>1){if((S[1]&192)!==128)return D.lastNeed=1,"�";if(D.lastNeed>2&&S.length>2&&(S[2]&192)!==128)return D.lastNeed=2,"�"}}function p(D){var S=this.lastTotal-this.lastNeed,K=I(this,D);if(K!==void 0)return K;if(this.lastNeed<=D.length)return D.copy(this.lastChar,S,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);D.copy(this.lastChar,S,0,D.length),this.lastNeed-=D.length}function Q(D,S){var K=B(this,D,S);if(!this.lastNeed)return D.toString("utf8",S);this.lastTotal=K;var N=D.length-(K-this.lastNeed);return D.copy(this.lastChar,0,N),D.toString("utf8",S,N)}function d(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+"�":S}function y(D,S){if((D.length-S)%2===0){var K=D.toString("utf16le",S);if(K){var N=K.charCodeAt(K.length-1);if(N>=55296&&N<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1],K.slice(0,-1)}return K}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=D[D.length-1],D.toString("utf16le",S,D.length-1)}function v(D){var S=D&&D.length?this.write(D):"";if(this.lastNeed){var K=this.lastTotal-this.lastNeed;return S+this.lastChar.toString("utf16le",0,K)}return S}function w(D,S){var K=(D.length-S)%3;return K===0?D.toString("base64",S):(this.lastNeed=3-K,this.lastTotal=3,K===1?this.lastChar[0]=D[D.length-1]:(this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1]),D.toString("base64",S,D.length-K))}function M(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+this.lastChar.toString("base64",0,3-this.lastNeed):S}function m(D){return D.toString(this.encoding)}function x(D){return D&&D.length?this.write(D):""}return EM}var pM,gH;function $te(){if(gH)return pM;gH=1;var o=aQ();pM=S;var i=gBe(),s;S.ReadableState=D,Zl().EventEmitter;var f=function(F,Y){return F.listeners(Y).length},l=Vte(),r=rN().Buffer,B=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function I(F){return r.from(F)}function p(F){return r.isBuffer(F)||F instanceof B}var Q=Object.create(Xl());Q.inherits=hA();var d=tA,y=void 0;d&&d.debuglog?y=d.debuglog("stream"):y=function(){};var v=uBe(),w=Zte(),M;Q.inherits(S,l);var m=["error","close","destroy","pause","resume"];function x(F,Y,W){if(typeof F.prependListener=="function")return F.prependListener(Y,W);!F._events||!F._events[Y]?F.on(Y,W):i(F._events[Y])?F._events[Y].unshift(W):F._events[Y]=[W,F._events[Y]]}function D(F,Y){s=s||yg(),F=F||{};var W=Y instanceof s;this.objectMode=!!F.objectMode,W&&(this.objectMode=this.objectMode||!!F.readableObjectMode);var te=F.highWaterMark,z=F.readableHighWaterMark,q=this.objectMode?16:16*1024;te||te===0?this.highWaterMark=te:W&&(z||z===0)?this.highWaterMark=z:this.highWaterMark=q,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=F.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,F.encoding&&(M||(M=hH().StringDecoder),this.decoder=new M(F.encoding),this.encoding=F.encoding)}function S(F){if(s=s||yg(),!(this instanceof S))return new S(F);this._readableState=new D(F,this),this.readable=!0,F&&(typeof F.read=="function"&&(this._read=F.read),typeof F.destroy=="function"&&(this._destroy=F.destroy)),l.call(this)}Object.defineProperty(S.prototype,"destroyed",{get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(F){this._readableState&&(this._readableState.destroyed=F)}}),S.prototype.destroy=w.destroy,S.prototype._undestroy=w.undestroy,S.prototype._destroy=function(F,Y){this.push(null),Y(F)},S.prototype.push=function(F,Y){var W=this._readableState,te;return W.objectMode?te=!0:typeof F=="string"&&(Y=Y||W.defaultEncoding,Y!==W.encoding&&(F=r.from(F,Y),Y=""),te=!0),K(this,F,Y,!1,te)},S.prototype.unshift=function(F){return K(this,F,null,!0,!1)};function K(F,Y,W,te,z){var q=F._readableState;if(Y===null)q.reading=!1,Ae(F,q);else{var $;z||($=L(q,Y)),$?F.emit("error",$):q.objectMode||Y&&Y.length>0?(typeof Y!="string"&&!q.objectMode&&Object.getPrototypeOf(Y)!==r.prototype&&(Y=I(Y)),te?q.endEmitted?F.emit("error",new Error("stream.unshift() after end event")):N(F,q,Y,!0):q.ended?F.emit("error",new Error("stream.push() after EOF")):(q.reading=!1,q.decoder&&!W?(Y=q.decoder.write(Y),q.objectMode||Y.length!==0?N(F,q,Y,!1):A(F,q)):N(F,q,Y,!1))):te||(q.reading=!1)}return j(q)}function N(F,Y,W,te){Y.flowing&&Y.length===0&&!Y.sync?(F.emit("data",W),F.read(0)):(Y.length+=Y.objectMode?1:W.length,te?Y.buffer.unshift(W):Y.buffer.push(W),Y.needReadable&&E(F)),A(F,Y)}function L(F,Y){var W;return!p(Y)&&typeof Y!="string"&&Y!==void 0&&!F.objectMode&&(W=new TypeError("Invalid non-string/buffer chunk")),W}function j(F){return!F.ended&&(F.needReadable||F.length=re?F=re:(F--,F|=F>>>1,F|=F>>>2,F|=F>>>4,F|=F>>>8,F|=F>>>16,F++),F}function J(F,Y){return F<=0||Y.length===0&&Y.ended?0:Y.objectMode?1:F!==F?Y.flowing&&Y.length?Y.buffer.head.data.length:Y.length:(F>Y.highWaterMark&&(Y.highWaterMark=Z(F)),F<=Y.length?F:Y.ended?Y.length:(Y.needReadable=!0,0))}S.prototype.read=function(F){y("read",F),F=parseInt(F,10);var Y=this._readableState,W=F;if(F!==0&&(Y.emittedReadable=!1),F===0&&Y.needReadable&&(Y.length>=Y.highWaterMark||Y.ended))return y("read: emitReadable",Y.length,Y.ended),Y.length===0&&Y.ended?T(this):E(this),null;if(F=J(F,Y),F===0&&Y.ended)return Y.length===0&&T(this),null;var te=Y.needReadable;y("need readable",te),(Y.length===0||Y.length-F0?z=t(F,Y):z=null,z===null?(Y.needReadable=!0,F=0):Y.length-=F,Y.length===0&&(Y.ended||(Y.needReadable=!0),W!==F&&Y.ended&&T(this)),z!==null&&this.emit("data",z),z};function Ae(F,Y){if(!Y.ended){if(Y.decoder){var W=Y.decoder.end();W&&W.length&&(Y.buffer.push(W),Y.length+=Y.objectMode?1:W.length)}Y.ended=!0,E(F)}}function E(F){var Y=F._readableState;Y.needReadable=!1,Y.emittedReadable||(y("emitReadable",Y.flowing),Y.emittedReadable=!0,Y.sync?o.nextTick(e,F):e(F))}function e(F){y("emit readable"),F.emit("readable"),g(F)}function A(F,Y){Y.readingMore||(Y.readingMore=!0,o.nextTick(n,F,Y))}function n(F,Y){for(var W=Y.length;!Y.reading&&!Y.flowing&&!Y.ended&&Y.length1&&P(te.pipes,F)!==-1)&&!he&&(y("false write response, pause",te.awaitDrain),te.awaitDrain++,se=!0),W.pause())}function Ue(ue){y("onerror",ue),Te(),F.removeListener("error",Ue),f(F,"error")===0&&F.emit("error",ue)}x(F,"error",Ue);function fe(){F.removeListener("finish",ce),Te()}F.once("close",fe);function ce(){y("onfinish"),F.removeListener("close",fe),Te()}F.once("finish",ce);function Te(){y("unpipe"),W.unpipe(F)}return F.emit("pipe",W),te.flowing||(y("pipe resume"),W.resume()),F};function a(F){return function(){var Y=F._readableState;y("pipeOnDrain",Y.awaitDrain),Y.awaitDrain&&Y.awaitDrain--,Y.awaitDrain===0&&f(F,"data")&&(Y.flowing=!0,g(F))}}S.prototype.unpipe=function(F){var Y=this._readableState,W={hasUnpiped:!1};if(Y.pipesCount===0)return this;if(Y.pipesCount===1)return F&&F!==Y.pipes?this:(F||(F=Y.pipes),Y.pipes=null,Y.pipesCount=0,Y.flowing=!1,F&&F.emit("unpipe",this,W),this);if(!F){var te=Y.pipes,z=Y.pipesCount;Y.pipes=null,Y.pipesCount=0,Y.flowing=!1;for(var q=0;q=Y.length?(Y.decoder?W=Y.buffer.join(""):Y.buffer.length===1?W=Y.buffer.head.data:W=Y.buffer.concat(Y.length),Y.buffer.clear()):W=u(F,Y.buffer,Y.decoder),W}function u(F,Y,W){var te;return Fq.length?q.length:F;if($===q.length?z+=q:z+=q.slice(0,F),F-=$,F===0){$===q.length?(++te,W.next?Y.head=W.next:Y.head=Y.tail=null):(Y.head=W,W.data=q.slice($));break}++te}return Y.length-=te,z}function R(F,Y){var W=r.allocUnsafe(F),te=Y.head,z=1;for(te.data.copy(W),F-=te.data.length;te=te.next;){var q=te.data,$=F>q.length?q.length:F;if(q.copy(W,W.length-F,0,$),F-=$,F===0){$===q.length?(++z,te.next?Y.head=te.next:Y.head=Y.tail=null):(Y.head=te,te.data=q.slice($));break}++z}return Y.length-=z,W}function T(F){var Y=F._readableState;if(Y.length>0)throw new Error('"endReadable()" called on non-empty stream');Y.endEmitted||(Y.ended=!0,o.nextTick(V,Y,F))}function V(F,Y){!F.endEmitted&&F.length===0&&(F.endEmitted=!0,Y.readable=!1,Y.emit("end"))}function P(F,Y){for(var W=0,te=F.length;W=0||!I.umod(r.prime1)||!I.umod(r.prime2));return I}function l(r,B){var I=s(B),p=B.modulus.byteLength(),Q=new o(r).mul(I.blinder).umod(B.modulus),d=Q.toRed(o.mont(B.prime1)),y=Q.toRed(o.mont(B.prime2)),v=B.coefficient,w=B.prime1,M=B.prime2,m=d.redPow(B.exponent1).fromRed(),x=y.redPow(B.exponent2).fromRed(),D=m.isub(x).imul(v).umod(w).imul(M);return x.iadd(D).imul(I.unblinder).umod(B.modulus).toArrayLike(Buffer,"be",p)}return l.getr=f,vM=l,vM}var Ln={},wM={},PC={exports:{}},IBe=PC.exports,IH;function BBe(){return IH||(IH=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,IBe)}(PC)),PC.exports}var mM={},BH;function CBe(){return BH||(BH=1,function(o){var i=ed(),s=hA(),f=o;f.define=function(B,I){return new l(B,I)};function l(r,B){this.name=r,this.body=B,this.decoders={},this.encoders={}}l.prototype._createNamed=function(B){var I;try{I=tA.runInThisContext("(function "+this.name+`(entity) { - this._initNamed(entity); -})`)}catch{I=function(Q){this._initNamed(Q)}}return s(I,B),I.prototype._initNamed=function(Q){B.call(this,Q)},new I(this)},l.prototype._getDecoder=function(B){return B=B||"der",this.decoders.hasOwnProperty(B)||(this.decoders[B]=this._createNamed(i.decoders[B])),this.decoders[B]},l.prototype.decode=function(B,I,p){return this._getDecoder(I).decode(B,p)},l.prototype._getEncoder=function(B){return B=B||"der",this.encoders.hasOwnProperty(B)||(this.encoders[B]=this._createNamed(i.encoders[B])),this.encoders[B]},l.prototype.encode=function(B,I,p){return this._getEncoder(I).encode(B,p)}}(mM)),mM}var MM={},bM={},CH;function EBe(){if(CH)return bM;CH=1;var o=hA();function i(f){this._reporterState={obj:null,path:[],options:f||{},errors:[]}}bM.Reporter=i,i.prototype.isError=function(l){return l instanceof s},i.prototype.save=function(){var l=this._reporterState;return{obj:l.obj,pathLen:l.path.length}},i.prototype.restore=function(l){var r=this._reporterState;r.obj=l.obj,r.path=r.path.slice(0,l.pathLen)},i.prototype.enterKey=function(l){return this._reporterState.path.push(l)},i.prototype.exitKey=function(l){var r=this._reporterState;r.path=r.path.slice(0,l-1)},i.prototype.leaveKey=function(l,r,B){var I=this._reporterState;this.exitKey(l),I.obj!==null&&(I.obj[r]=B)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){var l=this._reporterState,r=l.obj;return l.obj={},r},i.prototype.leaveObject=function(l){var r=this._reporterState,B=r.obj;return r.obj=l,B},i.prototype.error=function(l){var r,B=this._reporterState,I=l instanceof s;if(I?r=l:r=new s(B.path.map(function(p){return"["+JSON.stringify(p)+"]"}).join(""),l.message||l,l.stack),!B.options.partial)throw r;return I||B.errors.push(r),r},i.prototype.wrapResult=function(l){var r=this._reporterState;return r.options.partial?{result:this.isError(l)?null:l,errors:r.errors}:l};function s(f,l){this.path=f,this.rethrow(l)}return o(s,Error),s.prototype.rethrow=function(l){if(this.message=l+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,s),!this.stack)try{throw new Error(this.message)}catch(r){this.stack=r.stack}return this},bM}var QB={},EH;function pH(){if(EH)return QB;EH=1;var o=hA(),i=qc().Reporter,s=Wo().Buffer;function f(r,B){if(i.call(this,B),!s.isBuffer(r)){this.error("Input not Buffer");return}this.base=r,this.offset=0,this.length=r.length}o(f,i),QB.DecoderBuffer=f,f.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},f.prototype.restore=function(B){var I=new f(this.base);return I.offset=B.offset,I.length=this.offset,this.offset=B.offset,i.prototype.restore.call(this,B.reporter),I},f.prototype.isEmpty=function(){return this.offset===this.length},f.prototype.readUInt8=function(B){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(B||"DecoderBuffer overrun")},f.prototype.skip=function(B,I){if(!(this.offset+B<=this.length))return this.error(I||"DecoderBuffer overrun");var p=new f(this.base);return p._reporterState=this._reporterState,p.offset=this.offset,p.length=this.offset+B,this.offset+=B,p},f.prototype.raw=function(B){return this.base.slice(B?B.offset:this.offset,this.length)};function l(r,B){if(Array.isArray(r))this.length=0,this.value=r.map(function(I){return I instanceof l||(I=new l(I,B)),this.length+=I.length,I},this);else if(typeof r=="number"){if(!(0<=r&&r<=255))return B.error("non-byte EncoderBuffer value");this.value=r,this.length=1}else if(typeof r=="string")this.value=r,this.length=s.byteLength(r);else if(s.isBuffer(r))this.value=r,this.length=r.length;else return B.error("Unsupported type: "+typeof r)}return QB.EncoderBuffer=l,l.prototype.join=function(B,I){return B||(B=new s(this.length)),I||(I=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(p){p.join(B,I),I+=p.length}):(typeof this.value=="number"?B[I]=this.value:typeof this.value=="string"?B.write(this.value,I):s.isBuffer(this.value)&&this.value.copy(B,I),I+=this.length)),B},QB}var DM,QH;function pBe(){if(QH)return DM;QH=1;var o=qc().Reporter,i=qc().EncoderBuffer,s=qc().DecoderBuffer,f=Bo(),l=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],r=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(l),B=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function I(Q,d){var y={};this._baseState=y,y.enc=Q,y.parent=d||null,y.children=null,y.tag=null,y.args=null,y.reverseArgs=null,y.choice=null,y.optional=!1,y.any=!1,y.obj=!1,y.use=null,y.useDecoder=null,y.key=null,y.default=null,y.explicit=null,y.implicit=null,y.contains=null,y.parent||(y.children=[],this._wrap())}DM=I;var p=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];return I.prototype.clone=function(){var d=this._baseState,y={};p.forEach(function(w){y[w]=d[w]});var v=new this.constructor(y.parent);return v._baseState=y,v},I.prototype._wrap=function(){var d=this._baseState;r.forEach(function(y){this[y]=function(){var w=new this.constructor(this);return d.children.push(w),w[y].apply(w,arguments)}},this)},I.prototype._init=function(d){var y=this._baseState;f(y.parent===null),d.call(this),y.children=y.children.filter(function(v){return v._baseState.parent===this},this),f.equal(y.children.length,1,"Root node can have only one child")},I.prototype._useArgs=function(d){var y=this._baseState,v=d.filter(function(w){return w instanceof this.constructor},this);d=d.filter(function(w){return!(w instanceof this.constructor)},this),v.length!==0&&(f(y.children===null),y.children=v,v.forEach(function(w){w._baseState.parent=this},this)),d.length!==0&&(f(y.args===null),y.args=d,y.reverseArgs=d.map(function(w){if(typeof w!="object"||w.constructor!==Object)return w;var M={};return Object.keys(w).forEach(function(m){m==(m|0)&&(m|=0);var x=w[m];M[x]=m}),M}))},B.forEach(function(Q){I.prototype[Q]=function(){var y=this._baseState;throw new Error(Q+" not implemented for encoding: "+y.enc)}}),l.forEach(function(Q){I.prototype[Q]=function(){var y=this._baseState,v=Array.prototype.slice.call(arguments);return f(y.tag===null),y.tag=Q,this._useArgs(v),this}}),I.prototype.use=function(d){f(d);var y=this._baseState;return f(y.use===null),y.use=d,this},I.prototype.optional=function(){var d=this._baseState;return d.optional=!0,this},I.prototype.def=function(d){var y=this._baseState;return f(y.default===null),y.default=d,y.optional=!0,this},I.prototype.explicit=function(d){var y=this._baseState;return f(y.explicit===null&&y.implicit===null),y.explicit=d,this},I.prototype.implicit=function(d){var y=this._baseState;return f(y.explicit===null&&y.implicit===null),y.implicit=d,this},I.prototype.obj=function(){var d=this._baseState,y=Array.prototype.slice.call(arguments);return d.obj=!0,y.length!==0&&this._useArgs(y),this},I.prototype.key=function(d){var y=this._baseState;return f(y.key===null),y.key=d,this},I.prototype.any=function(){var d=this._baseState;return d.any=!0,this},I.prototype.choice=function(d){var y=this._baseState;return f(y.choice===null),y.choice=d,this._useArgs(Object.keys(d).map(function(v){return d[v]})),this},I.prototype.contains=function(d){var y=this._baseState;return f(y.use===null),y.contains=d,this},I.prototype._decode=function(d,y){var v=this._baseState;if(v.parent===null)return d.wrapResult(v.children[0]._decode(d,y));var w=v.default,M=!0,m=null;if(v.key!==null&&(m=d.enterKey(v.key)),v.optional){var x=null;if(v.explicit!==null?x=v.explicit:v.implicit!==null?x=v.implicit:v.tag!==null&&(x=v.tag),x===null&&!v.any){var D=d.save();try{v.choice===null?this._decodeGeneric(v.tag,d,y):this._decodeChoice(d,y),M=!0}catch{M=!1}d.restore(D)}else if(M=this._peekTag(d,x,v.any),d.isError(M))return M}var S;if(v.obj&&M&&(S=d.enterObject()),M){if(v.explicit!==null){var K=this._decodeTag(d,v.explicit);if(d.isError(K))return K;d=K}var N=d.offset;if(v.use===null&&v.choice===null){if(v.any)var D=d.save();var L=this._decodeTag(d,v.implicit!==null?v.implicit:v.tag,v.any);if(d.isError(L))return L;v.any?w=d.raw(D):d=L}if(y&&y.track&&v.tag!==null&&y.track(d.path(),N,d.length,"tagged"),y&&y.track&&v.tag!==null&&y.track(d.path(),d.offset,d.length,"content"),v.any?w=w:v.choice===null?w=this._decodeGeneric(v.tag,d,y):w=this._decodeChoice(d,y),d.isError(w))return w;if(!v.any&&v.choice===null&&v.children!==null&&v.children.forEach(function(Z){Z._decode(d,y)}),v.contains&&(v.tag==="octstr"||v.tag==="bitstr")){var j=new s(w);w=this._getUse(v.contains,d._reporterState.obj)._decode(j,y)}}return v.obj&&M&&(w=d.leaveObject(S)),v.key!==null&&(w!==null||M===!0)?d.leaveKey(m,v.key,w):m!==null&&d.exitKey(m),w},I.prototype._decodeGeneric=function(d,y,v){var w=this._baseState;return d==="seq"||d==="set"?null:d==="seqof"||d==="setof"?this._decodeList(y,d,w.args[0],v):/str$/.test(d)?this._decodeStr(y,d,v):d==="objid"&&w.args?this._decodeObjid(y,w.args[0],w.args[1],v):d==="objid"?this._decodeObjid(y,null,null,v):d==="gentime"||d==="utctime"?this._decodeTime(y,d,v):d==="null_"?this._decodeNull(y,v):d==="bool"?this._decodeBool(y,v):d==="objDesc"?this._decodeStr(y,d,v):d==="int"||d==="enum"?this._decodeInt(y,w.args&&w.args[0],v):w.use!==null?this._getUse(w.use,y._reporterState.obj)._decode(y,v):y.error("unknown tag: "+d)},I.prototype._getUse=function(d,y){var v=this._baseState;return v.useDecoder=this._use(d,y),f(v.useDecoder._baseState.parent===null),v.useDecoder=v.useDecoder._baseState.children[0],v.implicit!==v.useDecoder._baseState.implicit&&(v.useDecoder=v.useDecoder.clone(),v.useDecoder._baseState.implicit=v.implicit),v.useDecoder},I.prototype._decodeChoice=function(d,y){var v=this._baseState,w=null,M=!1;return Object.keys(v.choice).some(function(m){var x=d.save(),D=v.choice[m];try{var S=D._decode(d,y);if(d.isError(S))return!1;w={type:m,value:S},M=!0}catch{return d.restore(x),!1}return!0},this),M?w:d.error("Choice not matched")},I.prototype._createEncoderBuffer=function(d){return new i(d,this.reporter)},I.prototype._encode=function(d,y,v){var w=this._baseState;if(!(w.default!==null&&w.default===d)){var M=this._encodeValue(d,y,v);if(M!==void 0&&!this._skipDefault(M,y,v))return M}},I.prototype._encodeValue=function(d,y,v){var w=this._baseState;if(w.parent===null)return w.children[0]._encode(d,y||new o);var D=null;if(this.reporter=y,w.optional&&d===void 0)if(w.default!==null)d=w.default;else return;var M=null,m=!1;if(w.any)D=this._createEncoderBuffer(d);else if(w.choice)D=this._encodeChoice(d,y);else if(w.contains)M=this._getUse(w.contains,v)._encode(d,y),m=!0;else if(w.children)M=w.children.map(function(N){if(N._baseState.tag==="null_")return N._encode(null,y,d);if(N._baseState.key===null)return y.error("Child should have a key");var L=y.enterKey(N._baseState.key);if(typeof d!="object")return y.error("Child expected, but input is not object");var j=N._encode(d[N._baseState.key],y,d);return y.leaveKey(L),j},this).filter(function(N){return N}),M=this._createEncoderBuffer(M);else if(w.tag==="seqof"||w.tag==="setof"){if(!(w.args&&w.args.length===1))return y.error("Too many args for : "+w.tag);if(!Array.isArray(d))return y.error("seqof/setof, but data is not Array");var x=this.clone();x._baseState.implicit=null,M=this._createEncoderBuffer(d.map(function(N){var L=this._baseState;return this._getUse(L.args[0],d)._encode(N,y)},x))}else w.use!==null?D=this._getUse(w.use,v)._encode(d,y):(M=this._encodePrimitive(w.tag,d),m=!0);var D;if(!w.any&&w.choice===null){var S=w.implicit!==null?w.implicit:w.tag,K=w.implicit===null?"universal":"context";S===null?w.use===null&&y.error("Tag could be omitted only for .use()"):w.use===null&&(D=this._encodeComposite(S,m,K,M))}return w.explicit!==null&&(D=this._encodeComposite(w.explicit,!1,"context",D)),D},I.prototype._encodeChoice=function(d,y){var v=this._baseState,w=v.choice[d.type];return w||f(!1,d.type+" not found in "+JSON.stringify(Object.keys(v.choice))),w._encode(d.value,y)},I.prototype._encodePrimitive=function(d,y){var v=this._baseState;if(/str$/.test(d))return this._encodeStr(y,d);if(d==="objid"&&v.args)return this._encodeObjid(y,v.reverseArgs[0],v.args[1]);if(d==="objid")return this._encodeObjid(y,null,null);if(d==="gentime"||d==="utctime")return this._encodeTime(y,d);if(d==="null_")return this._encodeNull();if(d==="int"||d==="enum")return this._encodeInt(y,v.args&&v.reverseArgs[0]);if(d==="bool")return this._encodeBool(y);if(d==="objDesc")return this._encodeStr(y,d);throw new Error("Unsupported tag: "+d)},I.prototype._isNumstr=function(d){return/^[0-9 ]*$/.test(d)},I.prototype._isPrintstr=function(d){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(d)},DM}var yH;function qc(){return yH||(yH=1,function(o){var i=o;i.Reporter=EBe().Reporter,i.DecoderBuffer=pH().DecoderBuffer,i.EncoderBuffer=pH().EncoderBuffer,i.Node=pBe()}(MM)),MM}var SM={},xM={},vH;function QBe(){return vH||(vH=1,function(o){var i=eAe();o.tagClass={0:"universal",1:"application",2:"context",3:"private"},o.tagClassByName=i._reverse(o.tagClass),o.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},o.tagByName=i._reverse(o.tag)}(xM)),xM}var wH;function eAe(){return wH||(wH=1,function(o){var i=o;i._reverse=function(f){var l={};return Object.keys(f).forEach(function(r){(r|0)==r&&(r=r|0);var B=f[r];l[B]=r}),l},i.der=QBe()}(SM)),SM}var RM={},kM,mH;function tAe(){if(mH)return kM;mH=1;var o=hA(),i=ed(),s=i.base,f=i.bignum,l=i.constants.der;function r(Q){this.enc="der",this.name=Q.name,this.entity=Q,this.tree=new B,this.tree._init(Q.body)}kM=r,r.prototype.decode=function(d,y){return d instanceof s.DecoderBuffer||(d=new s.DecoderBuffer(d,y)),this.tree._decode(d,y)};function B(Q){s.Node.call(this,"der",Q)}o(B,s.Node),B.prototype._peekTag=function(d,y,v){if(d.isEmpty())return!1;var w=d.save(),M=I(d,'Failed to peek tag: "'+y+'"');return d.isError(M)?M:(d.restore(w),M.tag===y||M.tagStr===y||M.tagStr+"of"===y||v)},B.prototype._decodeTag=function(d,y,v){var w=I(d,'Failed to decode tag of "'+y+'"');if(d.isError(w))return w;var M=p(d,w.primitive,'Failed to get length of "'+y+'"');if(d.isError(M))return M;if(!v&&w.tag!==y&&w.tagStr!==y&&w.tagStr+"of"!==y)return d.error('Failed to match tag: "'+y+'"');if(w.primitive||M!==null)return d.skip(M,'Failed to match body of: "'+y+'"');var m=d.save(),x=this._skipUntilEnd(d,'Failed to skip indefinite length body: "'+this.tag+'"');return d.isError(x)?x:(M=d.offset-m.offset,d.restore(m),d.skip(M,'Failed to match body of: "'+y+'"'))},B.prototype._skipUntilEnd=function(d,y){for(;;){var v=I(d,y);if(d.isError(v))return v;var w=p(d,v.primitive,y);if(d.isError(w))return w;var M;if(v.primitive||w!==null?M=d.skip(w):M=this._skipUntilEnd(d,y),d.isError(M))return M;if(v.tagStr==="end")break}},B.prototype._decodeList=function(d,y,v,w){for(var M=[];!d.isEmpty();){var m=this._peekTag(d,"end");if(d.isError(m))return m;var x=v.decode(d,"der",w);if(d.isError(x)&&m)break;M.push(x)}return M},B.prototype._decodeStr=function(d,y){if(y==="bitstr"){var v=d.readUInt8();return d.isError(v)?v:{unused:v,data:d.raw()}}else if(y==="bmpstr"){var w=d.raw();if(w.length%2===1)return d.error("Decoding of string type: bmpstr length mismatch");for(var M="",m=0;m>6],w=(y&32)===0;if((y&31)===31){var M=y;for(y=0;(M&128)===128;){if(M=Q.readUInt8(d),Q.isError(M))return M;y<<=7,y|=M&127}}else y&=31;var m=l.tag[y];return{cls:v,primitive:w,tag:y,tagStr:m}}function p(Q,d,y){var v=Q.readUInt8(y);if(Q.isError(v))return v;if(!d&&v===128)return null;if(!(v&128))return v;var w=v&127;if(w>4)return Q.error("length octect is too long");v=0;for(var M=0;M=256;x>>=8)m++;var D=new i(2+m);D[0]=M,D[1]=128|m;for(var x=1+m,S=w.length;S>0;x--,S>>=8)D[x]=S&255;return this._createEncoderBuffer([D,w])},B.prototype._encodeStr=function(d,y){if(y==="bitstr")return this._createEncoderBuffer([d.unused|0,d.data]);if(y==="bmpstr"){for(var v=new i(d.length*2),w=0;w=40)return this.reporter.error("Second objid identifier OOB");d.splice(0,2,d[0]*40+d[1])}for(var M=0,w=0;w=128;m>>=7)M++}for(var x=new i(M),D=x.length-1,w=d.length-1;w>=0;w--){var m=d[w];for(x[D--]=m&127;(m>>=7)>0;)x[D--]=128|m&127}return this._createEncoderBuffer(x)};function I(Q){return Q<10?"0"+Q:Q}B.prototype._encodeTime=function(d,y){var v,w=new Date(d);return y==="gentime"?v=[I(w.getFullYear()),I(w.getUTCMonth()+1),I(w.getUTCDate()),I(w.getUTCHours()),I(w.getUTCMinutes()),I(w.getUTCSeconds()),"Z"].join(""):y==="utctime"?v=[I(w.getFullYear()%100),I(w.getUTCMonth()+1),I(w.getUTCDate()),I(w.getUTCHours()),I(w.getUTCMinutes()),I(w.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+y+" time is not supported yet"),this._encodeStr(v,"octstr")},B.prototype._encodeNull=function(){return this._createEncoderBuffer("")},B.prototype._encodeInt=function(d,y){if(typeof d=="string"){if(!y)return this.reporter.error("String int or enum given, but no values map");if(!y.hasOwnProperty(d))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(d));d=y[d]}if(typeof d!="number"&&!i.isBuffer(d)){var v=d.toArray();!d.sign&&v[0]&128&&v.unshift(0),d=new i(v)}if(i.isBuffer(d)){var w=d.length;d.length===0&&w++;var m=new i(w);return d.copy(m),d.length===0&&(m[0]=0),this._createEncoderBuffer(m)}if(d<128)return this._createEncoderBuffer(d);if(d<256)return this._createEncoderBuffer([0,d]);for(var w=1,M=d;M>=256;M>>=8)w++;for(var m=new Array(w),M=m.length-1;M>=0;M--)m[M]=d&255,d>>=8;return m[0]&128&&m.unshift(0),this._createEncoderBuffer(new i(m))},B.prototype._encodeBool=function(d){return this._createEncoderBuffer(d?255:0)},B.prototype._use=function(d,y){return typeof d=="function"&&(d=d(y)),d._getEncoder("der").tree},B.prototype._skipDefault=function(d,y,v){var w=this._baseState,M;if(w.default===null)return!1;var m=d.join();if(w.defaultBuffer===void 0&&(w.defaultBuffer=this._encodeValue(w.default,y,v).join()),m.length!==w.defaultBuffer.length)return!1;for(M=0;M=31?v.error("Multi-octet tag encoding unsupported"):(d||(w|=32),w|=l.tagClassByName[y||"universal"]<<6,w)}return KM}var FM,SH;function wBe(){if(SH)return FM;SH=1;var o=hA(),i=AAe();function s(f){i.call(this,f),this.enc="pem"}return o(s,i),FM=s,s.prototype.encode=function(l,r){for(var B=i.prototype.encode.call(this,l),I=B.toString("base64"),p=["-----BEGIN "+r.label+"-----"],Q=0;Q0&&K.ishrn(N),K}function M(D,S){D=w(D,S),D=D.mod(S);var K=o.from(D.toArray());if(K.length=0)throw new Error("invalid sig")}return qM=r,qM}var HM,LH;function kBe(){if(LH)return HM;LH=1;var o=wA().Buffer,i=zl(),s=dBe(),f=hA(),l=xBe(),r=RBe(),B=_te;Object.keys(B).forEach(function(y){B[y].id=o.from(B[y].id,"hex"),B[y.toLowerCase()]=B[y]});function I(y){s.Writable.call(this);var v=B[y];if(!v)throw new Error("Unknown message digest");this._hashType=v.hash,this._hash=i(v.hash),this._tag=v.id,this._signType=v.sign}f(I,s.Writable),I.prototype._write=function(v,w,M){this._hash.update(v),M()},I.prototype.update=function(v,w){return this._hash.update(typeof v=="string"?o.from(v,w):v),this},I.prototype.sign=function(v,w){this.end();var M=this._hash.digest(),m=l(M,v,this._hashType,this._signType,this._tag);return w?m.toString(w):m};function p(y){s.Writable.call(this);var v=B[y];if(!v)throw new Error("Unknown message digest");this._hash=i(v.hash),this._tag=v.id,this._signType=v.sign}f(p,s.Writable),p.prototype._write=function(v,w,M){this._hash.update(v),M()},p.prototype.update=function(v,w){return this._hash.update(typeof v=="string"?o.from(v,w):v),this},p.prototype.verify=function(v,w,M){var m=typeof w=="string"?o.from(w,M):w;this.end();var x=this._hash.digest();return r(m,x,v,this._signType,this._tag)};function Q(y){return new I(y)}function d(y){return new p(y)}return HM={Sign:Q,Verify:d,createSign:Q,createVerify:d},HM}var OC={exports:{}},NBe=OC.exports,UH;function _Be(){return UH||(UH=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,NBe)}(OC)),OC.exports}var TM,qH;function KBe(){if(qH)return TM;qH=1;var o=hQ(),i=_Be();TM=function(B){return new f(B)};var s={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};s.p224=s.secp224r1,s.p256=s.secp256r1=s.prime256v1,s.p192=s.secp192r1=s.prime192v1,s.p384=s.secp384r1,s.p521=s.secp521r1;function f(r){this.curveType=s[r],this.curveType||(this.curveType={name:r}),this.curve=new o.ec(this.curveType.name),this.keys=void 0}f.prototype.generateKeys=function(r,B){return this.keys=this.curve.genKeyPair(),this.getPublicKey(r,B)},f.prototype.computeSecret=function(r,B,I){B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B));var p=this.curve.keyFromPublic(r).getPublic(),Q=p.mul(this.keys.getPrivate()).getX();return l(Q,I,this.curveType.byteLength)},f.prototype.getPublicKey=function(r,B){var I=this.keys.getPublic(B==="compressed",!0);return B==="hybrid"&&(I[I.length-1]%2?I[0]=7:I[0]=6),l(I,r)},f.prototype.getPrivateKey=function(r){return l(this.keys.getPrivate(),r)},f.prototype.setPublicKey=function(r,B){return B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B)),this.keys._importPublic(r),this},f.prototype.setPrivateKey=function(r,B){B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B));var I=new i(r);return I=I.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(I),this};function l(r,B,I){Array.isArray(r)||(r=r.toArray());var p=new Buffer(r);if(I&&p.length0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n,a+=2,a>=26&&(a-=26,c--)}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,FBe)}(jC)),jC.exports}var OM,JH;function oAe(){if(JH)return OM;JH=1;var o=nN(),i=wA().Buffer;function s(f,l){return i.from(f.toRed(o.mont(l.modulus)).redPow(new o(l.publicExponent)).fromRed().toArray())}return OM=s,OM}var jM,PH;function GBe(){if(PH)return jM;PH=1;var o=sQ(),i=Au(),s=zl(),f=iAe(),l=nAe(),r=nN(),B=oAe(),I=iN(),p=wA().Buffer;jM=function(w,M,m){var x;w.padding?x=w.padding:m?x=1:x=4;var D=o(w),S;if(x===4)S=Q(D,M);else if(x===1)S=d(D,M,m);else if(x===3){if(S=new r(M),S.cmp(D.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return m?I(S,D):B(S,D)};function Q(v,w){var M=v.modulus.byteLength(),m=w.length,x=s("sha1").update(p.alloc(0)).digest(),D=x.length,S=2*D;if(m>M-S-2)throw new Error("message too long");var K=p.alloc(M-m-S-2),N=M-D-1,L=i(D),j=l(p.concat([x,K,p.alloc(1,1),w],N),f(L,N)),re=l(L,f(j,D));return new r(p.concat([p.alloc(1),re,j],M))}function d(v,w,M){var m=w.length,x=v.modulus.byteLength();if(m>x-11)throw new Error("message too long");var D;return M?D=p.alloc(x-m-3,255):D=y(x-m-3),new r(p.concat([p.from([0,M?1:2]),D,p.alloc(1),w],x))}function y(v){for(var w=p.allocUnsafe(v),M=0,m=i(v*2),x=0,D;MD||new f(w).cmp(x.modulus)>=0)throw new Error("decryption error");var S;M?S=B(new f(w),x):S=l(w,x);var K=I.alloc(D-S.length);if(S=I.concat([K,S],D),m===4)return p(x,S);if(m===1)return Q(x,S,M);if(m===3)return S;throw new Error("unknown padding")};function p(y,v){var w=y.modulus.byteLength(),M=r("sha1").update(I.alloc(0)).digest(),m=M.length;if(v[0]!==0)throw new Error("decryption error");var x=v.slice(1,m+1),D=v.slice(m+1),S=s(x,i(D,m)),K=s(D,i(S,w-m-1));if(d(M,K.slice(0,m)))throw new Error("decryption error");for(var N=m;K[N]===0;)N++;if(K[N++]!==1)throw new Error("decryption error");return K.slice(N)}function Q(y,v,w){for(var M=v.slice(0,2),m=2,x=0;v[m++]!==0;)if(m>=v.length){x++;break}var D=v.slice(2,m-1);if((M.toString("hex")!=="0002"&&!w||M.toString("hex")!=="0001"&&w)&&x++,D.length<8&&x++,x)throw new Error("decryption error");return v.slice(m)}function d(y,v){y=I.from(y),v=I.from(v);var w=0,M=y.length;y.length!==v.length&&(w++,M=Math.min(y.length,v.length));for(var m=-1;++mB||v<0)throw new TypeError("offset must be a uint32");if(v>l||v>w)throw new RangeError("offset out of range")}function p(v,w,M){if(typeof v!="number"||v!==v)throw new TypeError("size must be a number");if(v>B||v<0)throw new TypeError("size must be a uint32");if(v+w>M||v>l)throw new RangeError("buffer too small")}r&&r.getRandomValues||!process.browser?(x0.randomFill=Q,x0.randomFillSync=y):(x0.randomFill=o,x0.randomFillSync=o);function Q(v,w,M,m){if(!f.isBuffer(v)&&!(v instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof w=="function")m=w,w=0,M=v.length;else if(typeof M=="function")m=M,M=v.length-w;else if(typeof m!="function")throw new TypeError('"cb" argument must be a function');return I(w,v.length),p(M,w,v.length),d(v,w,M,m)}function d(v,w,M,m){if(process.browser){var x=v.buffer,D=new Uint8Array(x,w,M);if(r.getRandomValues(D),m){process.nextTick(function(){m(null,v)});return}return v}if(m){s(M,function(K,N){if(K)return m(K);N.copy(v,w),m(null,v)});return}var S=s(M);return S.copy(v,w),v}function y(v,w,M){if(typeof w>"u"&&(w=0),!f.isBuffer(v)&&!(v instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return I(w,v.length),M===void 0&&(M=v.length-w),p(M,w,v.length),d(v,w,M)}return x0}var VH;function HBe(){if(VH)return IA;VH=1,IA.randomBytes=IA.rng=IA.pseudoRandomBytes=IA.prng=Au(),IA.createHash=IA.Hash=zl(),IA.createHmac=IA.Hmac=Nte();var o=RIe(),i=Object.keys(o),s=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);IA.getHashes=function(){return s};var f=Ute();IA.pbkdf2=f.pbkdf2,IA.pbkdf2Sync=f.pbkdf2Sync;var l=ZIe();IA.Cipher=l.Cipher,IA.createCipher=l.createCipher,IA.Cipheriv=l.Cipheriv,IA.createCipheriv=l.createCipheriv,IA.Decipher=l.Decipher,IA.createDecipher=l.createDecipher,IA.Decipheriv=l.Decipheriv,IA.createDecipheriv=l.createDecipheriv,IA.getCiphers=l.getCiphers,IA.listCiphers=l.listCiphers;var r=hBe();IA.DiffieHellmanGroup=r.DiffieHellmanGroup,IA.createDiffieHellmanGroup=r.createDiffieHellmanGroup,IA.getDiffieHellman=r.getDiffieHellman,IA.createDiffieHellman=r.createDiffieHellman,IA.DiffieHellman=r.DiffieHellman;var B=kBe();IA.createSign=B.createSign,IA.Sign=B.Sign,IA.createVerify=B.createVerify,IA.Verify=B.Verify,IA.createECDH=KBe();var I=UBe();IA.publicEncrypt=I.publicEncrypt,IA.privateEncrypt=I.privateEncrypt,IA.publicDecrypt=I.publicDecrypt,IA.privateDecrypt=I.privateDecrypt;var p=qBe();return IA.randomFill=p.randomFill,IA.randomFillSync=p.randomFillSync,IA.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` -`))},IA.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},IA}var ZH;function oN(){if(ZH)return nB.exports;ZH=1;var o;nB.exports=function(l){return o||(o=new i(null)),o.generate(l)};function i(f){this.rand=f}if(nB.exports.Rand=i,i.prototype.generate=function(l){return this._rand(l)},i.prototype._rand=function(l){if(this.rand.getBytes)return this.rand.getBytes(l);for(var r=new Uint8Array(l),B=0;B0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}ZM=r,r.prototype.point=function(){throw new Error("Not implemented")},r.prototype.validate=function(){throw new Error("Not implemented")},r.prototype._fixedNafMul=function(p,Q){l(p.precomputed);var d=p._getDoubles(),y=s(Q,1,this._bitLength),v=(1<=M;x--)m=(m<<1)+y[x];w.push(m)}for(var D=this.jpoint(null,null,null),S=this.jpoint(null,null,null),K=v;K>0;K--){for(M=0;M=0;m--){for(var x=0;m>=0&&w[m]===0;m--)x++;if(m>=0&&x++,M=M.dblp(x),m<0)break;var D=w[m];l(D!==0),p.type==="affine"?D>0?M=M.mixedAdd(v[D-1>>1]):M=M.mixedAdd(v[-D-1>>1].neg()):D>0?M=M.add(v[D-1>>1]):M=M.add(v[-D-1>>1].neg())}return p.type==="affine"?M.toP():M},r.prototype._wnafMulAdd=function(p,Q,d,y,v){var w=this._wnafT1,M=this._wnafT2,m=this._wnafT3,x=0,D,S,K;for(D=0;D=1;D-=2){var L=D-1,j=D;if(w[L]!==1||w[j]!==1){m[L]=s(d[L],w[L],this._bitLength),m[j]=s(d[j],w[j],this._bitLength),x=Math.max(m[L].length,x),x=Math.max(m[j].length,x);continue}var re=[Q[L],null,null,Q[j]];Q[L].y.cmp(Q[j].y)===0?(re[1]=Q[L].add(Q[j]),re[2]=Q[L].toJ().mixedAdd(Q[j].neg())):Q[L].y.cmp(Q[j].y.redNeg())===0?(re[1]=Q[L].toJ().mixedAdd(Q[j]),re[2]=Q[L].add(Q[j].neg())):(re[1]=Q[L].toJ().mixedAdd(Q[j]),re[2]=Q[L].toJ().mixedAdd(Q[j].neg()));var Z=[-3,-1,-5,-7,0,7,5,1,3],J=f(d[L],d[j]);for(x=Math.max(J[0].length,x),m[L]=new Array(x),m[j]=new Array(x),S=0;S=0;D--){for(var n=0;D>=0;){var a=!0;for(S=0;S=0&&n++,e=e.dblp(n),D<0)break;for(S=0;S0?K=M[S][h-1>>1]:h<0&&(K=M[S][-h-1>>1].neg()),K.type==="affine"?e=e.mixedAdd(K):e=e.add(K))}}for(D=0;D=Math.ceil((p.bitLength()+1)/Q.step):!1},B.prototype._getDoubles=function(p,Q){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var d=[this],y=this,v=0;v=0&&(L=D,j=S),K.negative&&(K=K.neg(),N=N.neg()),L.negative&&(L=L.neg(),j=j.neg()),[{a:K,b:N},{a:L,b:j}]},r.prototype._endoSplit=function(Q){var d=this.endo.basis,y=d[0],v=d[1],w=v.b.mul(Q).divRound(this.n),M=y.b.neg().mul(Q).divRound(this.n),m=w.mul(y.a),x=M.mul(v.a),D=w.mul(y.b),S=M.mul(v.b),K=Q.sub(m).sub(x),N=D.add(S).neg();return{k1:K,k2:N}},r.prototype.pointFromX=function(Q,d){Q=new i(Q,16),Q.red||(Q=Q.toRed(this.red));var y=Q.redSqr().redMul(Q).redIAdd(Q.redMul(this.a)).redIAdd(this.b),v=y.redSqrt();if(v.redSqr().redSub(y).cmp(this.zero)!==0)throw new Error("invalid point");var w=v.fromRed().isOdd();return(d&&!w||!d&&w)&&(v=v.redNeg()),this.point(Q,v)},r.prototype.validate=function(Q){if(Q.inf)return!0;var d=Q.x,y=Q.y,v=this.a.redMul(d),w=d.redSqr().redMul(d).redIAdd(v).redIAdd(this.b);return y.redSqr().redISub(w).cmpn(0)===0},r.prototype._endoWnafMulAdd=function(Q,d,y){for(var v=this._endoWnafT1,w=this._endoWnafT2,M=0;M":""},B.prototype.isInfinity=function(){return this.inf},B.prototype.add=function(Q){if(this.inf)return Q;if(Q.inf)return this;if(this.eq(Q))return this.dbl();if(this.neg().eq(Q))return this.curve.point(null,null);if(this.x.cmp(Q.x)===0)return this.curve.point(null,null);var d=this.y.redSub(Q.y);d.cmpn(0)!==0&&(d=d.redMul(this.x.redSub(Q.x).redInvm()));var y=d.redSqr().redISub(this.x).redISub(Q.x),v=d.redMul(this.x.redSub(y)).redISub(this.y);return this.curve.point(y,v)},B.prototype.dbl=function(){if(this.inf)return this;var Q=this.y.redAdd(this.y);if(Q.cmpn(0)===0)return this.curve.point(null,null);var d=this.curve.a,y=this.x.redSqr(),v=Q.redInvm(),w=y.redAdd(y).redIAdd(y).redIAdd(d).redMul(v),M=w.redSqr().redISub(this.x.redAdd(this.x)),m=w.redMul(this.x.redSub(M)).redISub(this.y);return this.curve.point(M,m)},B.prototype.getX=function(){return this.x.fromRed()},B.prototype.getY=function(){return this.y.fromRed()},B.prototype.mul=function(Q){return Q=new i(Q,16),this.isInfinity()?this:this._hasDoubles(Q)?this.curve._fixedNafMul(this,Q):this.curve.endo?this.curve._endoWnafMulAdd([this],[Q]):this.curve._wnafMul(this,Q)},B.prototype.mulAdd=function(Q,d,y){var v=[this,d],w=[Q,y];return this.curve.endo?this.curve._endoWnafMulAdd(v,w):this.curve._wnafMulAdd(1,v,w,2)},B.prototype.jmulAdd=function(Q,d,y){var v=[this,d],w=[Q,y];return this.curve.endo?this.curve._endoWnafMulAdd(v,w,!0):this.curve._wnafMulAdd(1,v,w,2,!0)},B.prototype.eq=function(Q){return this===Q||this.inf===Q.inf&&(this.inf||this.x.cmp(Q.x)===0&&this.y.cmp(Q.y)===0)},B.prototype.neg=function(Q){if(this.inf)return this;var d=this.curve.point(this.x,this.y.redNeg());if(Q&&this.precomputed){var y=this.precomputed,v=function(w){return w.neg()};d.precomputed={naf:y.naf&&{wnd:y.naf.wnd,points:y.naf.points.map(v)},doubles:y.doubles&&{step:y.doubles.step,points:y.doubles.points.map(v)}}}return d},B.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var Q=this.curve.jpoint(this.x,this.y,this.curve.one);return Q};function I(p,Q,d,y){f.BasePoint.call(this,p,"jacobian"),Q===null&&d===null&&y===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(Q,16),this.y=new i(d,16),this.z=new i(y,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}return s(I,f.BasePoint),r.prototype.jpoint=function(Q,d,y){return new I(this,Q,d,y)},I.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var Q=this.z.redInvm(),d=Q.redSqr(),y=this.x.redMul(d),v=this.y.redMul(d).redMul(Q);return this.curve.point(y,v)},I.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},I.prototype.add=function(Q){if(this.isInfinity())return Q;if(Q.isInfinity())return this;var d=Q.z.redSqr(),y=this.z.redSqr(),v=this.x.redMul(d),w=Q.x.redMul(y),M=this.y.redMul(d.redMul(Q.z)),m=Q.y.redMul(y.redMul(this.z)),x=v.redSub(w),D=M.redSub(m);if(x.cmpn(0)===0)return D.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var S=x.redSqr(),K=S.redMul(x),N=v.redMul(S),L=D.redSqr().redIAdd(K).redISub(N).redISub(N),j=D.redMul(N.redISub(L)).redISub(M.redMul(K)),re=this.z.redMul(Q.z).redMul(x);return this.curve.jpoint(L,j,re)},I.prototype.mixedAdd=function(Q){if(this.isInfinity())return Q.toJ();if(Q.isInfinity())return this;var d=this.z.redSqr(),y=this.x,v=Q.x.redMul(d),w=this.y,M=Q.y.redMul(d).redMul(this.z),m=y.redSub(v),x=w.redSub(M);if(m.cmpn(0)===0)return x.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=m.redSqr(),S=D.redMul(m),K=y.redMul(D),N=x.redSqr().redIAdd(S).redISub(K).redISub(K),L=x.redMul(K.redISub(N)).redISub(w.redMul(S)),j=this.z.redMul(m);return this.curve.jpoint(N,L,j)},I.prototype.dblp=function(Q){if(Q===0)return this;if(this.isInfinity())return this;if(!Q)return this.dbl();var d;if(this.curve.zeroA||this.curve.threeA){var y=this;for(d=0;d=0)return!1;if(y.redIAdd(w),this.x.cmp(y)===0)return!0}},I.prototype.inspect=function(){return this.isInfinity()?"":""},I.prototype.isInfinity=function(){return this.z.cmpn(0)===0},zM}var $M,XH;function YBe(){if(XH)return $M;XH=1;var o=Es(),i=hA(),s=fQ(),f=Co();function l(B){s.call(this,"mont",B),this.a=new o(B.a,16).toRed(this.red),this.b=new o(B.b,16).toRed(this.red),this.i4=new o(4).toRed(this.red).redInvm(),this.two=new o(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}i(l,s),$M=l,l.prototype.validate=function(I){var p=I.normalize().x,Q=p.redSqr(),d=Q.redMul(p).redAdd(Q.redMul(this.a)).redAdd(p),y=d.redSqrt();return y.redSqr().cmp(d)===0};function r(B,I,p){s.BasePoint.call(this,B,"projective"),I===null&&p===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new o(I,16),this.z=new o(p,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}return i(r,s.BasePoint),l.prototype.decodePoint=function(I,p){return this.point(f.toArray(I,p),1)},l.prototype.point=function(I,p){return new r(this,I,p)},l.prototype.pointFromJSON=function(I){return r.fromJSON(this,I)},r.prototype.precompute=function(){},r.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},r.fromJSON=function(I,p){return new r(I,p[0],p[1]||I.one)},r.prototype.inspect=function(){return this.isInfinity()?"":""},r.prototype.isInfinity=function(){return this.z.cmpn(0)===0},r.prototype.dbl=function(){var I=this.x.redAdd(this.z),p=I.redSqr(),Q=this.x.redSub(this.z),d=Q.redSqr(),y=p.redSub(d),v=p.redMul(d),w=y.redMul(d.redAdd(this.curve.a24.redMul(y)));return this.curve.point(v,w)},r.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.diffAdd=function(I,p){var Q=this.x.redAdd(this.z),d=this.x.redSub(this.z),y=I.x.redAdd(I.z),v=I.x.redSub(I.z),w=v.redMul(Q),M=y.redMul(d),m=p.z.redMul(w.redAdd(M).redSqr()),x=p.x.redMul(w.redISub(M).redSqr());return this.curve.point(m,x)},r.prototype.mul=function(I){for(var p=I.clone(),Q=this,d=this.curve.point(null,null),y=this,v=[];p.cmpn(0)!==0;p.iushrn(1))v.push(p.andln(1));for(var w=v.length-1;w>=0;w--)v[w]===0?(Q=Q.diffAdd(d,y),d=d.dbl()):(d=Q.diffAdd(d,y),Q=Q.dbl());return d},r.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.eq=function(I){return this.getX().cmp(I.getX())===0},r.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},r.prototype.getX=function(){return this.normalize(),this.x.fromRed()},$M}var XM,eT;function JBe(){if(eT)return XM;eT=1;var o=Co(),i=Es(),s=hA(),f=fQ(),l=o.assert;function r(I){this.twisted=(I.a|0)!==1,this.mOneA=this.twisted&&(I.a|0)===-1,this.extended=this.mOneA,f.call(this,"edwards",I),this.a=new i(I.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(I.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(I.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),l(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(I.c|0)===1}s(r,f),XM=r,r.prototype._mulA=function(p){return this.mOneA?p.redNeg():this.a.redMul(p)},r.prototype._mulC=function(p){return this.oneC?p:this.c.redMul(p)},r.prototype.jpoint=function(p,Q,d,y){return this.point(p,Q,d,y)},r.prototype.pointFromX=function(p,Q){p=new i(p,16),p.red||(p=p.toRed(this.red));var d=p.redSqr(),y=this.c2.redSub(this.a.redMul(d)),v=this.one.redSub(this.c2.redMul(this.d).redMul(d)),w=y.redMul(v.redInvm()),M=w.redSqrt();if(M.redSqr().redSub(w).cmp(this.zero)!==0)throw new Error("invalid point");var m=M.fromRed().isOdd();return(Q&&!m||!Q&&m)&&(M=M.redNeg()),this.point(p,M)},r.prototype.pointFromY=function(p,Q){p=new i(p,16),p.red||(p=p.toRed(this.red));var d=p.redSqr(),y=d.redSub(this.c2),v=d.redMul(this.d).redMul(this.c2).redSub(this.a),w=y.redMul(v.redInvm());if(w.cmp(this.zero)===0){if(Q)throw new Error("invalid point");return this.point(this.zero,p)}var M=w.redSqrt();if(M.redSqr().redSub(w).cmp(this.zero)!==0)throw new Error("invalid point");return M.fromRed().isOdd()!==Q&&(M=M.redNeg()),this.point(M,p)},r.prototype.validate=function(p){if(p.isInfinity())return!0;p.normalize();var Q=p.x.redSqr(),d=p.y.redSqr(),y=Q.redMul(this.a).redAdd(d),v=this.c2.redMul(this.one.redAdd(this.d.redMul(Q).redMul(d)));return y.cmp(v)===0};function B(I,p,Q,d,y){f.BasePoint.call(this,I,"projective"),p===null&&Q===null&&d===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(p,16),this.y=new i(Q,16),this.z=d?new i(d,16):this.curve.one,this.t=y&&new i(y,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}return s(B,f.BasePoint),r.prototype.pointFromJSON=function(p){return B.fromJSON(this,p)},r.prototype.point=function(p,Q,d,y){return new B(this,p,Q,d,y)},B.fromJSON=function(p,Q){return new B(p,Q[0],Q[1],Q[2])},B.prototype.inspect=function(){return this.isInfinity()?"":""},B.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},B.prototype._extDbl=function(){var p=this.x.redSqr(),Q=this.y.redSqr(),d=this.z.redSqr();d=d.redIAdd(d);var y=this.curve._mulA(p),v=this.x.redAdd(this.y).redSqr().redISub(p).redISub(Q),w=y.redAdd(Q),M=w.redSub(d),m=y.redSub(Q),x=v.redMul(M),D=w.redMul(m),S=v.redMul(m),K=M.redMul(w);return this.curve.point(x,D,K,S)},B.prototype._projDbl=function(){var p=this.x.redAdd(this.y).redSqr(),Q=this.x.redSqr(),d=this.y.redSqr(),y,v,w,M,m,x;if(this.curve.twisted){M=this.curve._mulA(Q);var D=M.redAdd(d);this.zOne?(y=p.redSub(Q).redSub(d).redMul(D.redSub(this.curve.two)),v=D.redMul(M.redSub(d)),w=D.redSqr().redSub(D).redSub(D)):(m=this.z.redSqr(),x=D.redSub(m).redISub(m),y=p.redSub(Q).redISub(d).redMul(x),v=D.redMul(M.redSub(d)),w=D.redMul(x))}else M=Q.redAdd(d),m=this.curve._mulC(this.z).redSqr(),x=M.redSub(m).redSub(m),y=this.curve._mulC(p.redISub(M)).redMul(x),v=this.curve._mulC(M).redMul(Q.redISub(d)),w=M.redMul(x);return this.curve.point(y,v,w)},B.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},B.prototype._extAdd=function(p){var Q=this.y.redSub(this.x).redMul(p.y.redSub(p.x)),d=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),y=this.t.redMul(this.curve.dd).redMul(p.t),v=this.z.redMul(p.z.redAdd(p.z)),w=d.redSub(Q),M=v.redSub(y),m=v.redAdd(y),x=d.redAdd(Q),D=w.redMul(M),S=m.redMul(x),K=w.redMul(x),N=M.redMul(m);return this.curve.point(D,S,N,K)},B.prototype._projAdd=function(p){var Q=this.z.redMul(p.z),d=Q.redSqr(),y=this.x.redMul(p.x),v=this.y.redMul(p.y),w=this.curve.d.redMul(y).redMul(v),M=d.redSub(w),m=d.redAdd(w),x=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(y).redISub(v),D=Q.redMul(M).redMul(x),S,K;return this.curve.twisted?(S=Q.redMul(m).redMul(v.redSub(this.curve._mulA(y))),K=M.redMul(m)):(S=Q.redMul(m).redMul(v.redSub(y)),K=this.curve._mulC(M).redMul(m)),this.curve.point(D,S,K)},B.prototype.add=function(p){return this.isInfinity()?p:p.isInfinity()?this:this.curve.extended?this._extAdd(p):this._projAdd(p)},B.prototype.mul=function(p){return this._hasDoubles(p)?this.curve._fixedNafMul(this,p):this.curve._wnafMul(this,p)},B.prototype.mulAdd=function(p,Q,d){return this.curve._wnafMulAdd(1,[this,Q],[p,d],2,!1)},B.prototype.jmulAdd=function(p,Q,d){return this.curve._wnafMulAdd(1,[this,Q],[p,d],2,!0)},B.prototype.normalize=function(){if(this.zOne)return this;var p=this.z.redInvm();return this.x=this.x.redMul(p),this.y=this.y.redMul(p),this.t&&(this.t=this.t.redMul(p)),this.z=this.curve.one,this.zOne=!0,this},B.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},B.prototype.getX=function(){return this.normalize(),this.x.fromRed()},B.prototype.getY=function(){return this.normalize(),this.y.fromRed()},B.prototype.eq=function(p){return this===p||this.getX().cmp(p.getX())===0&&this.getY().cmp(p.getY())===0},B.prototype.eqXToP=function(p){var Q=p.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(Q)===0)return!0;for(var d=p.clone(),y=this.curve.redN.redMul(this.z);;){if(d.iadd(this.curve.n),d.cmp(this.curve.p)>=0)return!1;if(Q.redIAdd(y),this.x.cmp(Q)===0)return!0}},B.prototype.toP=B.prototype.normalize,B.prototype.mixedAdd=B.prototype.add,XM}var tT;function aAe(){return tT||(tT=1,function(o){var i=o;i.base=fQ(),i.short=TBe(),i.mont=YBe(),i.edwards=JBe()}(VM)),VM}var eb={},tb={},zA={},AT;function Sa(){if(AT)return zA;AT=1;var o=Bo(),i=hA();zA.inherits=i;function s(e,A){return(e.charCodeAt(A)&64512)!==55296||A<0||A+1>=e.length?!1:(e.charCodeAt(A+1)&64512)===56320}function f(e,A){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if(typeof e=="string")if(A){if(A==="hex")for(e=e.replace(/[^a-z0-9]+/ig,""),e.length%2!==0&&(e="0"+e),h=0;h>6|192,n[a++]=c&63|128):s(e,h)?(c=65536+((c&1023)<<10)+(e.charCodeAt(++h)&1023),n[a++]=c>>18|240,n[a++]=c>>12&63|128,n[a++]=c>>6&63|128,n[a++]=c&63|128):(n[a++]=c>>12|224,n[a++]=c>>6&63|128,n[a++]=c&63|128)}else for(h=0;h>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24;return A>>>0}zA.htonl=r;function B(e,A){for(var n="",a=0;a>>0}return c}zA.join32=Q;function d(e,A){for(var n=new Array(e.length*4),a=0,h=0;a>>24,n[h+1]=c>>>16&255,n[h+2]=c>>>8&255,n[h+3]=c&255):(n[h+3]=c>>>24,n[h+2]=c>>>16&255,n[h+1]=c>>>8&255,n[h]=c&255)}return n}zA.split32=d;function y(e,A){return e>>>A|e<<32-A}zA.rotr32=y;function v(e,A){return e<>>32-A}zA.rotl32=v;function w(e,A){return e+A>>>0}zA.sum32=w;function M(e,A,n){return e+A+n>>>0}zA.sum32_3=M;function m(e,A,n,a){return e+A+n+a>>>0}zA.sum32_4=m;function x(e,A,n,a,h){return e+A+n+a+h>>>0}zA.sum32_5=x;function D(e,A,n,a){var h=e[A],c=e[A+1],C=a+c>>>0,g=(C>>0,e[A+1]=C}zA.sum64=D;function S(e,A,n,a){var h=A+a>>>0,c=(h>>0}zA.sum64_hi=S;function K(e,A,n,a){var h=A+a;return h>>>0}zA.sum64_lo=K;function N(e,A,n,a,h,c,C,g){var t=0,u=A;u=u+a>>>0,t+=u>>0,t+=u>>0,t+=u>>0}zA.sum64_4_hi=N;function L(e,A,n,a,h,c,C,g){var t=A+a+c+g;return t>>>0}zA.sum64_4_lo=L;function j(e,A,n,a,h,c,C,g,t,u){var b=0,R=A;R=R+a>>>0,b+=R>>0,b+=R>>0,b+=R>>0,b+=R>>0}zA.sum64_5_hi=j;function re(e,A,n,a,h,c,C,g,t,u){var b=A+a+c+g+u;return b>>>0}zA.sum64_5_lo=re;function Z(e,A,n){var a=A<<32-n|e>>>n;return a>>>0}zA.rotr64_hi=Z;function J(e,A,n){var a=e<<32-n|A>>>n;return a>>>0}zA.rotr64_lo=J;function Ae(e,A,n){return e>>>n}zA.shr64_hi=Ae;function E(e,A,n){var a=e<<32-n|A>>>n;return a>>>0}return zA.shr64_lo=E,zA}var Ab={},rT;function td(){if(rT)return Ab;rT=1;var o=Sa(),i=Bo();function s(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}return Ab.BlockHash=s,s.prototype.update=function(l,r){if(l=o.toArray(l,r),this.pending?this.pending=this.pending.concat(l):this.pending=l,this.pendingTotal+=l.length,this.pending.length>=this._delta8){l=this.pending;var B=l.length%this._delta8;this.pending=l.slice(l.length-B,l.length),this.pending.length===0&&(this.pending=null),l=o.join32(l,0,l.length-B,this.endian);for(var I=0;I>>24&255,I[p++]=l>>>16&255,I[p++]=l>>>8&255,I[p++]=l&255}else for(I[p++]=l&255,I[p++]=l>>>8&255,I[p++]=l>>>16&255,I[p++]=l>>>24&255,I[p++]=0,I[p++]=0,I[p++]=0,I[p++]=0,Q=8;Q>>3}ra.g0_256=p;function Q(d){return i(d,17)^i(d,19)^d>>>10}return ra.g1_256=Q,ra}var rb,nT;function PBe(){if(nT)return rb;nT=1;var o=Sa(),i=td(),s=sAe(),f=o.rotl32,l=o.sum32,r=o.sum32_5,B=s.ft_1,I=i.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function Q(){if(!(this instanceof Q))return new Q;I.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}return o.inherits(Q,I),rb=Q,Q.blockSize=512,Q.outSize=160,Q.hmacStrength=80,Q.padLength=64,Q.prototype._update=function(y,v){for(var w=this.W,M=0;M<16;M++)w[M]=y[v+M];for(;Mthis.blockSize&&(l=new this.Hash().update(l).digest()),i(l.length<=this.blockSize);for(var r=l.length;r=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(r,B,I)}return gb=f,f.prototype._init=function(r,B,I){var p=r.concat(B).concat(I);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var Q=0;Q=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(r.concat(I||[])),this._reseed=1},f.prototype.generate=function(r,B,I,p){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof B!="string"&&(p=I,I=B,B=null),I&&(I=i.toArray(I,p||"hex"),this._update(I));for(var Q=[];Q.length"},ub}var cb,CT;function eCe(){if(CT)return cb;CT=1;var o=Es(),i=Co(),s=i.assert;function f(p,Q){if(p instanceof f)return p;this._importDER(p,Q)||(s(p.r&&p.s,"Signature without r or s"),this.r=new o(p.r,16),this.s=new o(p.s,16),p.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=p.recoveryParam)}cb=f;function l(){this.place=0}function r(p,Q){var d=p[Q.place++];if(!(d&128))return d;var y=d&15;if(y===0||y>4||p[Q.place]===0)return!1;for(var v=0,w=0,M=Q.place;w>>=0;return v<=127?!1:(Q.place=M,v)}function B(p){for(var Q=0,d=p.length-1;!p[Q]&&!(p[Q+1]&128)&&Q>>3);for(p.push(d|128);--d;)p.push(Q>>>(d<<3)&255);p.push(Q)}return f.prototype.toDER=function(Q){var d=this.r.toArray(),y=this.s.toArray();for(d[0]&128&&(d=[0].concat(d)),y[0]&128&&(y=[0].concat(y)),d=B(d),y=B(y);!y[0]&&!(y[1]&128);)y=y.slice(1);var v=[2];I(v,d.length),v=v.concat(d),v.push(2),I(v,y.length);var w=v.concat(y),M=[48];return I(M,w.length),M=M.concat(w),i.encode(M,Q)},cb}var lb,ET;function tCe(){if(ET)return lb;ET=1;var o=Es(),i=$Be(),s=Co(),f=sN(),l=oN(),r=s.assert,B=XBe(),I=eCe();function p(Q){if(!(this instanceof p))return new p(Q);typeof Q=="string"&&(r(Object.prototype.hasOwnProperty.call(f,Q),"Unknown curve "+Q),Q=f[Q]),Q instanceof f.PresetCurve&&(Q={curve:Q}),this.curve=Q.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=Q.curve.g,this.g.precompute(Q.curve.n.bitLength()+1),this.hash=Q.hash||Q.curve.hash}return lb=p,p.prototype.keyPair=function(d){return new B(this,d)},p.prototype.keyFromPrivate=function(d,y){return B.fromPrivate(this,d,y)},p.prototype.keyFromPublic=function(d,y){return B.fromPublic(this,d,y)},p.prototype.genKeyPair=function(d){d||(d={});for(var y=new i({hash:this.hash,pers:d.pers,persEnc:d.persEnc||"utf8",entropy:d.entropy||l(this.hash.hmacStrength),entropyEnc:d.entropy&&d.entropyEnc||"utf8",nonce:this.n.toArray()}),v=this.n.byteLength(),w=this.n.sub(new o(2));;){var M=new o(y.generate(v));if(!(M.cmp(w)>0))return M.iaddn(1),this.keyFromPrivate(M)}},p.prototype._truncateToN=function(d,y){var v=d.byteLength()*8-this.n.bitLength();return v>0&&(d=d.ushrn(v)),!y&&d.cmp(this.n)>=0?d.sub(this.n):d},p.prototype.sign=function(d,y,v,w){typeof v=="object"&&(w=v,v=null),w||(w={}),y=this.keyFromPrivate(y,v),d=this._truncateToN(new o(d,16));for(var M=this.n.byteLength(),m=y.getPrivate().toArray("be",M),x=d.toArray("be",M),D=new i({hash:this.hash,entropy:m,nonce:x,pers:w.pers,persEnc:w.persEnc||"utf8"}),S=this.n.sub(new o(1)),K=0;;K++){var N=w.k?w.k(K):new o(D.generate(this.n.byteLength()));if(N=this._truncateToN(N,!0),!(N.cmpn(1)<=0||N.cmp(S)>=0)){var L=this.g.mul(N);if(!L.isInfinity()){var j=L.getX(),re=j.umod(this.n);if(re.cmpn(0)!==0){var Z=N.invm(this.n).mul(re.mul(y.getPrivate()).iadd(d));if(Z=Z.umod(this.n),Z.cmpn(0)!==0){var J=(L.getY().isOdd()?1:0)|(j.cmp(re)!==0?2:0);return w.canonical&&Z.cmp(this.nh)>0&&(Z=this.n.sub(Z),J^=1),new I({r:re,s:Z,recoveryParam:J})}}}}}},p.prototype.verify=function(d,y,v,w){d=this._truncateToN(new o(d,16)),v=this.keyFromPublic(v,w),y=new I(y,"hex");var M=y.r,m=y.s;if(M.cmpn(1)<0||M.cmp(this.n)>=0||m.cmpn(1)<0||m.cmp(this.n)>=0)return!1;var x=m.invm(this.n),D=x.mul(d).umod(this.n),S=x.mul(M).umod(this.n),K;return this.curve._maxwellTrick?(K=this.g.jmulAdd(D,v.getPublic(),S),K.isInfinity()?!1:K.eqXToP(M)):(K=this.g.mulAdd(D,v.getPublic(),S),K.isInfinity()?!1:K.getX().umod(this.n).cmp(M)===0)},p.prototype.recoverPubKey=function(Q,d,y,v){r((3&y)===y,"The recovery param is more than two bits"),d=new I(d,v);var w=this.n,M=new o(Q),m=d.r,x=d.s,D=y&1,S=y>>1;if(m.cmp(this.curve.p.umod(this.curve.n))>=0&&S)throw new Error("Unable to find sencond key candinate");S?m=this.curve.pointFromX(m.add(this.curve.n),D):m=this.curve.pointFromX(m,D);var K=d.r.invm(w),N=w.sub(M).mul(K).umod(w),L=x.mul(K).umod(w);return this.g.mulAdd(N,m,L)},p.prototype.getKeyRecoveryParam=function(Q,d,y,v){if(d=new I(d,v),d.recoveryParam!==null)return d.recoveryParam;for(var w=0;w<4;w++){var M;try{M=this.recoverPubKey(Q,d,w)}catch{continue}if(M.eq(y))return w}throw new Error("Unable to find valid recovery factor")},lb}var db,pT;function ACe(){if(pT)return db;pT=1;var o=Co(),i=o.assert,s=o.parseBytes,f=o.cachedProperty;function l(r,B){this.eddsa=r,this._secret=s(B.secret),r.isPoint(B.pub)?this._pub=B.pub:this._pubBytes=s(B.pub)}return l.fromPublic=function(B,I){return I instanceof l?I:new l(B,{pub:I})},l.fromSecret=function(B,I){return I instanceof l?I:new l(B,{secret:I})},l.prototype.secret=function(){return this._secret},f(l,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),f(l,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),f(l,"privBytes",function(){var B=this.eddsa,I=this.hash(),p=B.encodingLength-1,Q=I.slice(0,B.encodingLength);return Q[0]&=248,Q[p]&=127,Q[p]|=64,Q}),f(l,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),f(l,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),f(l,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),l.prototype.sign=function(B){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(B,this)},l.prototype.verify=function(B,I){return this.eddsa.verify(B,I,this)},l.prototype.getSecret=function(B){return i(this._secret,"KeyPair is public only"),o.encode(this.secret(),B)},l.prototype.getPublic=function(B){return o.encode(this.pubBytes(),B)},db=l,db}var Ib,QT;function rCe(){if(QT)return Ib;QT=1;var o=Es(),i=Co(),s=i.assert,f=i.cachedProperty,l=i.parseBytes;function r(B,I){this.eddsa=B,typeof I!="object"&&(I=l(I)),Array.isArray(I)&&(s(I.length===B.encodingLength*2,"Signature has invalid size"),I={R:I.slice(0,B.encodingLength),S:I.slice(B.encodingLength)}),s(I.R&&I.S,"Signature without R or S"),B.isPoint(I.R)&&(this._R=I.R),I.S instanceof o&&(this._S=I.S),this._Rencoded=Array.isArray(I.R)?I.R:I.Rencoded,this._Sencoded=Array.isArray(I.S)?I.S:I.Sencoded}return f(r,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),f(r,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),f(r,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),f(r,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),r.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},r.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},Ib=r,Ib}var Bb,yT;function iCe(){if(yT)return Bb;yT=1;var o=aN(),i=sN(),s=Co(),f=s.assert,l=s.parseBytes,r=ACe(),B=rCe();function I(p){if(f(p==="ed25519","only tested with ed25519 so far"),!(this instanceof I))return new I(p);p=i[p].curve,this.curve=p,this.g=p.g,this.g.precompute(p.n.bitLength()+1),this.pointClass=p.point().constructor,this.encodingLength=Math.ceil(p.n.bitLength()/8),this.hash=o.sha512}return Bb=I,I.prototype.sign=function(Q,d){Q=l(Q);var y=this.keyFromSecret(d),v=this.hashInt(y.messagePrefix(),Q),w=this.g.mul(v),M=this.encodePoint(w),m=this.hashInt(M,y.pubBytes(),Q).mul(y.priv()),x=v.add(m).umod(this.curve.n);return this.makeSignature({R:w,S:x,Rencoded:M})},I.prototype.verify=function(Q,d,y){if(Q=l(Q),d=this.makeSignature(d),d.S().gte(d.eddsa.curve.n)||d.S().isNeg())return!1;var v=this.keyFromPublic(y),w=this.hashInt(d.Rencoded(),v.pubBytes(),Q),M=this.g.mul(d.S()),m=d.R().add(v.pub().mul(w));return m.eq(M)},I.prototype.hashInt=function(){for(var Q=this.hash(),d=0;d0&&!i.includes(o.length))throw new Error(`Uint8Array expected of length ${i}, not of length=${o.length}`)}function gAe(o){if(typeof o!="function"||typeof o.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Al(o.outputLen),Al(o.blockLen)}function Yh(o,i=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(i&&o.finished)throw new Error("Hash#digest() has already been called")}function fN(o,i){nu(o);const s=i.outputLen;if(o.lengthnew Uint32Array(o.buffer,o.byteOffset,Math.floor(o.byteLength/4)),pb=o=>new DataView(o.buffer,o.byteOffset,o.byteLength),ia=(o,i)=>o<<32-i|o>>>i,wT=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,fCe=o=>o<<24&4278190080|o<<8&16711680|o>>>8&65280|o>>>24&255;function mT(o){for(let i=0;io().update(gQ(f)).digest(),s=o();return i.outputLen=s.outputLen,i.blockLen=s.blockLen,i.create=()=>o(),i}function uAe(o=32){if(Eb&&typeof Eb.getRandomValues=="function")return Eb.getRandomValues(new Uint8Array(o));throw new Error("crypto.getRandomValues must be defined")}function uCe(o,i,s,f){if(typeof o.setBigUint64=="function")return o.setBigUint64(i,s,f);const l=BigInt(32),r=BigInt(4294967295),B=Number(s>>l&r),I=Number(s&r),p=f?4:0,Q=f?0:4;o.setUint32(i+p,B,f),o.setUint32(i+Q,I,f)}const cCe=(o,i,s)=>o&i^~o&s,lCe=(o,i,s)=>o&i^o&s^i&s;let cAe=class extends hN{constructor(i,s,f,l){super(),this.blockLen=i,this.outputLen=s,this.padOffset=f,this.isLE=l,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(i),this.view=pb(this.buffer)}update(i){Yh(this);const{view:s,buffer:f,blockLen:l}=this;i=gQ(i);const r=i.length;for(let B=0;Bl-B&&(this.process(f,0),B=0);for(let y=B;yd.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;y>>3,m=ia(w,17)^ia(w,19)^w>>>10;js[y]=m+js[y-7]+M+js[y-16]|0}let{A:f,B:l,C:r,D:B,E:I,F:p,G:Q,H:d}=this;for(let y=0;y<64;y++){const v=ia(I,6)^ia(I,11)^ia(I,25),w=d+v+cCe(I,p,Q)+dCe[y]+js[y]|0,m=(ia(f,2)^ia(f,13)^ia(f,22))+lCe(f,l,r)|0;d=Q,Q=p,p=I,I=B+w|0,B=r,r=l,l=f,f=w+m|0}f=f+this.A|0,l=l+this.B|0,r=r+this.C|0,B=B+this.D|0,I=I+this.E|0,p=p+this.F|0,Q=Q+this.G|0,d=d+this.H|0,this.set(f,l,r,B,I,p,Q,d)}roundClean(){js.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};const BCe=gN(()=>new ICe);let lAe=class extends hN{constructor(i,s){super(),this.finished=!1,this.destroyed=!1,gAe(i);const f=gQ(s);if(this.iHash=i.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const l=this.blockLen,r=new Uint8Array(l);r.set(f.length>l?i.create().update(f).digest():f);for(let B=0;Bnew lAe(o,i).update(s).digest();dAe.create=(o,i)=>new lAe(o,i);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const IAe=BigInt(0),uQ=BigInt(1),CCe=BigInt(2);function Jh(o){return o instanceof Uint8Array||o!=null&&typeof o=="object"&&o.constructor.name==="Uint8Array"}function Ad(o){if(!Jh(o))throw new Error("Uint8Array expected")}const ECe=Array.from({length:256},(o,i)=>i.toString(16).padStart(2,"0"));function vg(o){Ad(o);let i="";for(let s=0;s=Ya._0&&o<=Ya._9)return o-Ya._0;if(o>=Ya._A&&o<=Ya._F)return o-(Ya._A-10);if(o>=Ya._a&&o<=Ya._f)return o-(Ya._a-10)}function wg(o){if(typeof o!="string")throw new Error("hex string expected, got "+typeof o);const i=o.length,s=i/2;if(i%2)throw new Error("padded hex string expected, got unpadded hex of length "+i);const f=new Uint8Array(s);for(let l=0,r=0;lIAe;o>>=uQ,i+=1);return i}function wCe(o,i){return o>>BigInt(i)&uQ}function mCe(o,i,s){return o|(s?uQ:IAe)<(CCe<new Uint8Array(o),bT=o=>Uint8Array.from(o);function CAe(o,i,s){if(typeof o!="number"||o<2)throw new Error("hashLen must be a number");if(typeof i!="number"||i<2)throw new Error("qByteLen must be a number");if(typeof s!="function")throw new Error("hmacFn must be a function");let f=Qb(o),l=Qb(o),r=0;const B=()=>{f.fill(1),l.fill(0),r=0},I=(...y)=>s(l,f,...y),p=(y=Qb())=>{l=I(bT([0]),y),f=I(),y.length!==0&&(l=I(bT([1]),y),f=I())},Q=()=>{if(r++>=1e3)throw new Error("drbg: tried 1000 values");let y=0;const v=[];for(;y{B(),p(y);let w;for(;!(w=v(Q()));)p();return B(),w}}const MCe={bigint:o=>typeof o=="bigint",function:o=>typeof o=="function",boolean:o=>typeof o=="boolean",string:o=>typeof o=="string",stringOrUint8Array:o=>typeof o=="string"||Jh(o),isSafeInteger:o=>Number.isSafeInteger(o),array:o=>Array.isArray(o),field:(o,i)=>i.Fp.isValid(o),hash:o=>typeof o=="function"&&Number.isSafeInteger(o.outputLen)};function rd(o,i,s={}){const f=(l,r,B)=>{const I=MCe[r];if(typeof I!="function")throw new Error(`Invalid validator "${r}", expected function`);const p=o[l];if(!(B&&p===void 0)&&!I(p,o))throw new Error(`Invalid param ${String(l)}=${p} (${typeof p}), expected ${r}`)};for(const[l,r]of Object.entries(i))f(l,r,!1);for(const[l,r]of Object.entries(s))f(l,r,!0);return o}const bCe=Object.freeze(Object.defineProperty({__proto__:null,abytes:Ad,bitGet:wCe,bitLen:vCe,bitMask:dN,bitSet:mCe,bytesToHex:vg,bytesToNumberBE:Sh,bytesToNumberLE:cN,concatBytes:rl,createHmacDrbg:CAe,ensureBytes:ko,equalBytes:QCe,hexToBytes:wg,hexToNumber:uN,isBytes:Jh,numberToBytesBE:mg,numberToBytesLE:lN,numberToHexUnpadded:BAe,numberToVarBytesBE:pCe,utf8ToBytes:yCe,validateObject:rd},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const $r=BigInt(0),Sr=BigInt(1),lh=BigInt(2),DCe=BigInt(3),oR=BigInt(4),DT=BigInt(5),ST=BigInt(8);BigInt(9);BigInt(16);function ji(o,i){const s=o%i;return s>=$r?s:i+s}function SCe(o,i,s){if(s<=$r||i<$r)throw new Error("Expected power/modulo > 0");if(s===Sr)return $r;let f=Sr;for(;i>$r;)i&Sr&&(f=f*o%s),o=o*o%s,i>>=Sr;return f}function Un(o,i,s){let f=o;for(;i-- >$r;)f*=f,f%=s;return f}function aR(o,i){if(o===$r||i<=$r)throw new Error(`invert: expected positive integers, got n=${o} mod=${i}`);let s=ji(o,i),f=i,l=$r,r=Sr;for(;s!==$r;){const I=f/s,p=f%s,Q=l-r*I;f=s,s=p,l=r,r=Q}if(f!==Sr)throw new Error("invert: does not exist");return ji(l,i)}function xCe(o){const i=(o-Sr)/lh;let s,f,l;for(s=o-Sr,f=0;s%lh===$r;s/=lh,f++);for(l=lh;l(f[l]="function",f),i);return rd(o,s)}function _Ce(o,i,s){if(s<$r)throw new Error("Expected power > 0");if(s===$r)return o.ONE;if(s===Sr)return i;let f=o.ONE,l=i;for(;s>$r;)s&Sr&&(f=o.mul(f,l)),l=o.sqr(l),s>>=Sr;return f}function KCe(o,i){const s=new Array(i.length),f=i.reduce((r,B,I)=>o.is0(B)?r:(s[I]=r,o.mul(r,B)),o.ONE),l=o.inv(f);return i.reduceRight((r,B,I)=>o.is0(B)?r:(s[I]=o.mul(r,s[I]),o.mul(r,B)),l),s}function EAe(o,i){const s=i!==void 0?i:o.toString(2).length,f=Math.ceil(s/8);return{nBitLength:s,nByteLength:f}}function FCe(o,i,s=!1,f={}){if(o<=$r)throw new Error(`Expected Field ORDER > 0, got ${o}`);const{nBitLength:l,nByteLength:r}=EAe(o,i);if(r>2048)throw new Error("Field lengths over 2048 bytes are not supported");const B=RCe(o),I=Object.freeze({ORDER:o,BITS:l,BYTES:r,MASK:dN(l),ZERO:$r,ONE:Sr,create:p=>ji(p,o),isValid:p=>{if(typeof p!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof p}`);return $r<=p&&pp===$r,isOdd:p=>(p&Sr)===Sr,neg:p=>ji(-p,o),eql:(p,Q)=>p===Q,sqr:p=>ji(p*p,o),add:(p,Q)=>ji(p+Q,o),sub:(p,Q)=>ji(p-Q,o),mul:(p,Q)=>ji(p*Q,o),pow:(p,Q)=>_Ce(I,p,Q),div:(p,Q)=>ji(p*aR(Q,o),o),sqrN:p=>p*p,addN:(p,Q)=>p+Q,subN:(p,Q)=>p-Q,mulN:(p,Q)=>p*Q,inv:p=>aR(p,o),sqrt:f.sqrt||(p=>B(I,p)),invertBatch:p=>KCe(I,p),cmov:(p,Q,d)=>d?Q:p,toBytes:p=>s?lN(p,r):mg(p,r),fromBytes:p=>{if(p.length!==r)throw new Error(`Fp.fromBytes: expected ${r}, got ${p.length}`);return s?cN(p):Sh(p)}});return Object.freeze(I)}function pAe(o){if(typeof o!="bigint")throw new Error("field order must be bigint");const i=o.toString(2).length;return Math.ceil(i/8)}function QAe(o){const i=pAe(o);return i+Math.ceil(i/2)}function GCe(o,i,s=!1){const f=o.length,l=pAe(i),r=QAe(i);if(f<16||f1024)throw new Error(`expected ${r}-1024 bytes of input, got ${f}`);const B=s?Sh(o):cN(o),I=ji(B,i-Sr)+Sr;return s?lN(I,l):mg(I,l)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const LCe=BigInt(0),yb=BigInt(1);function UCe(o,i){const s=(l,r)=>{const B=r.negate();return l?B:r},f=l=>{const r=Math.ceil(i/l)+1,B=2**(l-1);return{windows:r,windowSize:B}};return{constTimeNegate:s,unsafeLadder(l,r){let B=o.ZERO,I=l;for(;r>LCe;)r&yb&&(B=B.add(I)),I=I.double(),r>>=yb;return B},precomputeWindow(l,r){const{windows:B,windowSize:I}=f(r),p=[];let Q=l,d=Q;for(let y=0;y>=w,x>p&&(x-=v,B+=yb);const D=m,S=m+Math.abs(x)-1,K=M%2!==0,N=x<0;x===0?d=d.add(s(K,r[D])):Q=Q.add(s(N,r[S]))}return{p:Q,f:d}},wNAFCached(l,r,B,I){const p=l._WINDOW_SIZE||1;let Q=r.get(l);return Q||(Q=this.precomputeWindow(l,p),p!==1&&r.set(l,I(Q))),this.wNAF(p,Q,B)}}}function yAe(o){return NCe(o.Fp),rd(o,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...EAe(o.n,o.nBitLength),...o,p:o.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function qCe(o){const i=yAe(o);rd(i,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:s,Fp:f,a:l}=i;if(s){if(!f.eql(l,f.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof s!="object"||typeof s.beta!="bigint"||typeof s.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...i})}const{bytesToNumberBE:HCe,hexToBytes:TCe}=bCe,Ch={Err:class extends Error{constructor(i=""){super(i)}},_parseInt(o){const{Err:i}=Ch;if(o.length<2||o[0]!==2)throw new i("Invalid signature integer tag");const s=o[1],f=o.subarray(2,s+2);if(!s||f.length!==s)throw new i("Invalid signature integer: wrong length");if(f[0]&128)throw new i("Invalid signature integer: negative");if(f[0]===0&&!(f[1]&128))throw new i("Invalid signature integer: unnecessary leading zero");return{d:HCe(f),l:o.subarray(s+2)}},toSig(o){const{Err:i}=Ch,s=typeof o=="string"?TCe(o):o;Ad(s);let f=s.length;if(f<2||s[0]!=48)throw new i("Invalid signature tag");if(s[1]!==f-2)throw new i("Invalid signature: incorrect length");const{d:l,l:r}=Ch._parseInt(s.subarray(2)),{d:B,l:I}=Ch._parseInt(r);if(I.length)throw new i("Invalid signature: left bytes after parsing");return{r:l,s:B}},hexFromSig(o){const i=Q=>Number.parseInt(Q[0],16)&8?"00"+Q:Q,s=Q=>{const d=Q.toString(16);return d.length&1?`0${d}`:d},f=i(s(o.s)),l=i(s(o.r)),r=f.length/2,B=l.length/2,I=s(r),p=s(B);return`30${s(B+r+4)}02${p}${l}02${I}${f}`}},ns=BigInt(0),eo=BigInt(1);BigInt(2);const xT=BigInt(3);BigInt(4);function YCe(o){const i=qCe(o),{Fp:s}=i,f=i.toBytes||((M,m,x)=>{const D=m.toAffine();return rl(Uint8Array.from([4]),s.toBytes(D.x),s.toBytes(D.y))}),l=i.fromBytes||(M=>{const m=M.subarray(1),x=s.fromBytes(m.subarray(0,s.BYTES)),D=s.fromBytes(m.subarray(s.BYTES,2*s.BYTES));return{x,y:D}});function r(M){const{a:m,b:x}=i,D=s.sqr(M),S=s.mul(D,M);return s.add(s.add(S,s.mul(M,m)),x)}if(!s.eql(s.sqr(i.Gy),r(i.Gx)))throw new Error("bad generator point: equation left != right");function B(M){return typeof M=="bigint"&&nss.eql(K,s.ZERO);return S(x)&&S(D)?y.ZERO:new y(x,D,s.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(m){const x=s.invertBatch(m.map(D=>D.pz));return m.map((D,S)=>D.toAffine(x[S])).map(y.fromAffine)}static fromHex(m){const x=y.fromAffine(l(ko("pointHex",m)));return x.assertValidity(),x}static fromPrivateKey(m){return y.BASE.multiply(p(m))}_setWindowSize(m){this._WINDOW_SIZE=m,Q.delete(this)}assertValidity(){if(this.is0()){if(i.allowInfinityPoint&&!s.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:m,y:x}=this.toAffine();if(!s.isValid(m)||!s.isValid(x))throw new Error("bad point: x or y not FE");const D=s.sqr(x),S=r(m);if(!s.eql(D,S))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:m}=this.toAffine();if(s.isOdd)return!s.isOdd(m);throw new Error("Field doesn't support isOdd")}equals(m){d(m);const{px:x,py:D,pz:S}=this,{px:K,py:N,pz:L}=m,j=s.eql(s.mul(x,L),s.mul(K,S)),re=s.eql(s.mul(D,L),s.mul(N,S));return j&&re}negate(){return new y(this.px,s.neg(this.py),this.pz)}double(){const{a:m,b:x}=i,D=s.mul(x,xT),{px:S,py:K,pz:N}=this;let L=s.ZERO,j=s.ZERO,re=s.ZERO,Z=s.mul(S,S),J=s.mul(K,K),Ae=s.mul(N,N),E=s.mul(S,K);return E=s.add(E,E),re=s.mul(S,N),re=s.add(re,re),L=s.mul(m,re),j=s.mul(D,Ae),j=s.add(L,j),L=s.sub(J,j),j=s.add(J,j),j=s.mul(L,j),L=s.mul(E,L),re=s.mul(D,re),Ae=s.mul(m,Ae),E=s.sub(Z,Ae),E=s.mul(m,E),E=s.add(E,re),re=s.add(Z,Z),Z=s.add(re,Z),Z=s.add(Z,Ae),Z=s.mul(Z,E),j=s.add(j,Z),Ae=s.mul(K,N),Ae=s.add(Ae,Ae),Z=s.mul(Ae,E),L=s.sub(L,Z),re=s.mul(Ae,J),re=s.add(re,re),re=s.add(re,re),new y(L,j,re)}add(m){d(m);const{px:x,py:D,pz:S}=this,{px:K,py:N,pz:L}=m;let j=s.ZERO,re=s.ZERO,Z=s.ZERO;const J=i.a,Ae=s.mul(i.b,xT);let E=s.mul(x,K),e=s.mul(D,N),A=s.mul(S,L),n=s.add(x,D),a=s.add(K,N);n=s.mul(n,a),a=s.add(E,e),n=s.sub(n,a),a=s.add(x,S);let h=s.add(K,L);return a=s.mul(a,h),h=s.add(E,A),a=s.sub(a,h),h=s.add(D,S),j=s.add(N,L),h=s.mul(h,j),j=s.add(e,A),h=s.sub(h,j),Z=s.mul(J,a),j=s.mul(Ae,A),Z=s.add(j,Z),j=s.sub(e,Z),Z=s.add(e,Z),re=s.mul(j,Z),e=s.add(E,E),e=s.add(e,E),A=s.mul(J,A),a=s.mul(Ae,a),e=s.add(e,A),A=s.sub(E,A),A=s.mul(J,A),a=s.add(a,A),E=s.mul(e,a),re=s.add(re,E),E=s.mul(h,a),j=s.mul(n,j),j=s.sub(j,E),E=s.mul(n,e),Z=s.mul(h,Z),Z=s.add(Z,E),new y(j,re,Z)}subtract(m){return this.add(m.negate())}is0(){return this.equals(y.ZERO)}wNAF(m){return w.wNAFCached(this,Q,m,x=>{const D=s.invertBatch(x.map(S=>S.pz));return x.map((S,K)=>S.toAffine(D[K])).map(y.fromAffine)})}multiplyUnsafe(m){const x=y.ZERO;if(m===ns)return x;if(I(m),m===eo)return this;const{endo:D}=i;if(!D)return w.unsafeLadder(this,m);let{k1neg:S,k1:K,k2neg:N,k2:L}=D.splitScalar(m),j=x,re=x,Z=this;for(;K>ns||L>ns;)K&eo&&(j=j.add(Z)),L&eo&&(re=re.add(Z)),Z=Z.double(),K>>=eo,L>>=eo;return S&&(j=j.negate()),N&&(re=re.negate()),re=new y(s.mul(re.px,D.beta),re.py,re.pz),j.add(re)}multiply(m){I(m);let x=m,D,S;const{endo:K}=i;if(K){const{k1neg:N,k1:L,k2neg:j,k2:re}=K.splitScalar(x);let{p:Z,f:J}=this.wNAF(L),{p:Ae,f:E}=this.wNAF(re);Z=w.constTimeNegate(N,Z),Ae=w.constTimeNegate(j,Ae),Ae=new y(s.mul(Ae.px,K.beta),Ae.py,Ae.pz),D=Z.add(Ae),S=J.add(E)}else{const{p:N,f:L}=this.wNAF(x);D=N,S=L}return y.normalizeZ([D,S])[0]}multiplyAndAddUnsafe(m,x,D){const S=y.BASE,K=(L,j)=>j===ns||j===eo||!L.equals(S)?L.multiplyUnsafe(j):L.multiply(j),N=K(this,x).add(K(m,D));return N.is0()?void 0:N}toAffine(m){const{px:x,py:D,pz:S}=this,K=this.is0();m==null&&(m=K?s.ONE:s.inv(S));const N=s.mul(x,m),L=s.mul(D,m),j=s.mul(S,m);if(K)return{x:s.ZERO,y:s.ZERO};if(!s.eql(j,s.ONE))throw new Error("invZ was invalid");return{x:N,y:L}}isTorsionFree(){const{h:m,isTorsionFree:x}=i;if(m===eo)return!0;if(x)return x(y,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:m,clearCofactor:x}=i;return m===eo?this:x?x(y,this):this.multiplyUnsafe(i.h)}toRawBytes(m=!0){return this.assertValidity(),f(y,this,m)}toHex(m=!0){return vg(this.toRawBytes(m))}}y.BASE=new y(i.Gx,i.Gy,s.ONE),y.ZERO=new y(s.ZERO,s.ONE,s.ZERO);const v=i.nBitLength,w=UCe(y,i.endo?Math.ceil(v/2):v);return{CURVE:i,ProjectivePoint:y,normPrivateKeyToScalar:p,weierstrassEquation:r,isWithinCurveOrder:B}}function JCe(o){const i=yAe(o);return rd(i,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...i})}function PCe(o){const i=JCe(o),{Fp:s,n:f}=i,l=s.BYTES+1,r=2*s.BYTES+1;function B(a){return nsvg(mg(a,i.nByteLength));function M(a){const h=f>>eo;return a>h}function m(a){return M(a)?I(-a):a}const x=(a,h,c)=>Sh(a.slice(h,c));class D{constructor(h,c,C){this.r=h,this.s=c,this.recovery=C,this.assertValidity()}static fromCompact(h){const c=i.nByteLength;return h=ko("compactSignature",h,c*2),new D(x(h,0,c),x(h,c,2*c))}static fromDER(h){const{r:c,s:C}=Ch.toSig(ko("DER",h));return new D(c,C)}assertValidity(){if(!v(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!v(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(h){return new D(this.r,this.s,h)}recoverPublicKey(h){const{r:c,s:C,recovery:g}=this,t=re(ko("msgHash",h));if(g==null||![0,1,2,3].includes(g))throw new Error("recovery id invalid");const u=g===2||g===3?c+i.n:c;if(u>=s.ORDER)throw new Error("recovery id 2 or 3 invalid");const b=g&1?"03":"02",R=Q.fromHex(b+w(u)),T=p(u),V=I(-t*T),P=I(C*T),F=Q.BASE.multiplyAndAddUnsafe(R,V,P);if(!F)throw new Error("point at infinify");return F.assertValidity(),F}hasHighS(){return M(this.s)}normalizeS(){return this.hasHighS()?new D(this.r,I(-this.s),this.recovery):this}toDERRawBytes(){return wg(this.toDERHex())}toDERHex(){return Ch.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return wg(this.toCompactHex())}toCompactHex(){return w(this.r)+w(this.s)}}const S={isValidPrivateKey(a){try{return d(a),!0}catch{return!1}},normPrivateKeyToScalar:d,randomPrivateKey:()=>{const a=QAe(i.n);return GCe(i.randomBytes(a),i.n)},precompute(a=8,h=Q.BASE){return h._setWindowSize(a),h.multiply(BigInt(3)),h}};function K(a,h=!0){return Q.fromPrivateKey(a).toRawBytes(h)}function N(a){const h=Jh(a),c=typeof a=="string",C=(h||c)&&a.length;return h?C===l||C===r:c?C===2*l||C===2*r:a instanceof Q}function L(a,h,c=!0){if(N(a))throw new Error("first arg must be private key");if(!N(h))throw new Error("second arg must be public key");return Q.fromHex(h).multiply(d(a)).toRawBytes(c)}const j=i.bits2int||function(a){const h=Sh(a),c=a.length*8-i.nBitLength;return c>0?h>>BigInt(c):h},re=i.bits2int_modN||function(a){return I(j(a))},Z=dN(i.nBitLength);function J(a){if(typeof a!="bigint")throw new Error("bigint expected");if(!(ns<=a&&aW in c))throw new Error("sign() legacy options not supported");const{hash:C,randomBytes:g}=i;let{lowS:t,prehash:u,extraEntropy:b}=c;t==null&&(t=!0),a=ko("msgHash",a),u&&(a=ko("prehashed msgHash",C(a)));const R=re(a),T=d(h),V=[J(T),J(R)];if(b!=null&&b!==!1){const W=b===!0?g(s.BYTES):b;V.push(ko("extraEntropy",W))}const P=rl(...V),F=R;function Y(W){const te=j(W);if(!v(te))return;const z=p(te),q=Q.BASE.multiply(te).toAffine(),$=I(q.x);if($===ns)return;const le=I(z*I(F+$*T));if(le===ns)return;let ae=(q.x===$?0:2)|Number(q.y&eo),he=le;return t&&M(le)&&(he=m(le),ae^=1),new D($,he,ae)}return{seed:P,k2sig:Y}}const E={lowS:i.lowS,prehash:!1},e={lowS:i.lowS,prehash:!1};function A(a,h,c=E){const{seed:C,k2sig:g}=Ae(a,h,c),t=i;return CAe(t.hash.outputLen,t.nByteLength,t.hmac)(C,g)}Q.BASE._setWindowSize(8);function n(a,h,c,C=e){var q;const g=a;if(h=ko("msgHash",h),c=ko("publicKey",c),"strict"in C)throw new Error("options.strict was renamed to lowS");const{lowS:t,prehash:u}=C;let b,R;try{if(typeof g=="string"||Jh(g))try{b=D.fromDER(g)}catch($){if(!($ instanceof Ch.Err))throw $;b=D.fromCompact(g)}else if(typeof g=="object"&&typeof g.r=="bigint"&&typeof g.s=="bigint"){const{r:$,s:le}=g;b=new D($,le)}else throw new Error("PARSE");R=Q.fromHex(c)}catch($){if($.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(t&&b.hasHighS())return!1;u&&(h=i.hash(h));const{r:T,s:V}=b,P=re(h),F=p(V),Y=I(P*F),W=I(T*F),te=(q=Q.BASE.multiplyAndAddUnsafe(R,Y,W))==null?void 0:q.toAffine();return te?I(te.x)===T:!1}return{CURVE:i,getPublicKey:K,getSharedSecret:L,sign:A,verify:n,ProjectivePoint:Q,Signature:D,utils:S}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function OCe(o){return{hash:o,hmac:(i,...s)=>dAe(o,i,gCe(...s)),randomBytes:uAe}}function jCe(o,i){const s=f=>PCe({...o,...OCe(f)});return Object.freeze({...s(i),create:s})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const vAe=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),RT=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),WCe=BigInt(1),sR=BigInt(2),kT=(o,i)=>(o+i/sR)/i;function VCe(o){const i=vAe,s=BigInt(3),f=BigInt(6),l=BigInt(11),r=BigInt(22),B=BigInt(23),I=BigInt(44),p=BigInt(88),Q=o*o*o%i,d=Q*Q*o%i,y=Un(d,s,i)*d%i,v=Un(y,s,i)*d%i,w=Un(v,sR,i)*Q%i,M=Un(w,l,i)*w%i,m=Un(M,r,i)*M%i,x=Un(m,I,i)*m%i,D=Un(x,p,i)*x%i,S=Un(D,I,i)*m%i,K=Un(S,s,i)*d%i,N=Un(K,B,i)*M%i,L=Un(N,f,i)*Q%i,j=Un(L,sR,i);if(!fR.eql(fR.sqr(j),o))throw new Error("Cannot find square root");return j}const fR=FCe(vAe,void 0,void 0,{sqrt:VCe}),cQ=jCe({a:BigInt(0),b:BigInt(7),Fp:fR,n:RT,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:o=>{const i=RT,s=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),f=-WCe*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),l=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),r=s,B=BigInt("0x100000000000000000000000000000000"),I=kT(r*o,i),p=kT(-f*o,i);let Q=ji(o-I*s-p*l,i),d=ji(-I*f-p*r,i);const y=Q>B,v=d>B;if(y&&(Q=i-Q),v&&(d=i-d),Q>B||d>B)throw new Error("splitScalar: Endomorphism failed, k="+o);return{k1neg:y,k1:Q,k2neg:v,k2:d}}}},BCe);BigInt(0);cQ.ProjectivePoint;const pn=globalThis.crypto||globalThis.msCrypto||{},sf=pn.subtle||pn.webkitSubtle,ZCe=Buffer.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),zCe=Buffer.alloc(32,0);function Ei(o,i){if(!o)throw new Error(i||"Assertion failed")}function $Ce(o){return Buffer.isBuffer(o)&&o.length===32}function id(o){return $Ce(o)?o.compare(zCe)>0&&o.compare(ZCe)<0:!1}function XCe(o,i){if(o.length!==i.length)return!1;let s=0;for(let f=0;f"u")return Buffer.from(pn.randomBytes(o));const i=new Uint8Array(o);return pn.getRandomValues(i),Buffer.from(i)}async function wAe(o){if(!pn.createHash){const f=await sf.digest("SHA-512",o);return new Uint8Array(f)}const s=pn.createHash("sha512").update(o).digest();return new Uint8Array(s)}function mAe(o){return async function(i,s,f){if(sf&&sf[o]&&sf.importKey){const l={name:"AES-CBC"},r=await sf.importKey("raw",s,l,!1,[o]),B={name:"AES-CBC",iv:i},I=await sf[o](B,r,f);return Buffer.from(new Uint8Array(I))}else if(o==="encrypt"&&pn.createCipheriv){const l=pn.createCipheriv("aes-256-cbc",s,i),r=l.update(f),B=l.final();return Buffer.concat([r,B])}else if(o==="decrypt"&&pn.createDecipheriv){const l=pn.createDecipheriv("aes-256-cbc",s,i),r=l.update(f),B=l.final();return Buffer.concat([r,B])}throw new Error(`Unsupported operation: ${o}`)}}const eEe=mAe("encrypt"),tEe=mAe("decrypt");async function MAe(o,i){if(!pn.createHmac){const l={name:"HMAC",hash:{name:"SHA-256"}},r=await sf.importKey("raw",new Uint8Array(o),l,!1,["sign","verify"]),B=await sf.sign("HMAC",r,i);return Buffer.from(new Uint8Array(B))}const s=pn.createHmac("sha256",Buffer.from(o));return s.update(i),s.digest()}async function AEe(o,i,s){const f=await MAe(o,i);return XCe(f,s)}const bAe=function(){let o=Hc(32);for(;!id(o);)o=Hc(32);return o},IN=function(o){return Ei(o.length===32,"Bad private key"),Ei(id(o),"Bad private key"),Buffer.from(cQ.getPublicKey(o,!1))},rEe=async function(o,i){Ei(Buffer.isBuffer(o),"Bad private key"),Ei(Buffer.isBuffer(i),"Bad public key"),Ei(o.length===32,"Bad private key"),Ei(id(o),"Bad private key"),Ei(i.length===65||i.length===33,"Bad public key"),i.length===65&&Ei(i[0]===4,"Bad public key"),i.length===33&&Ei(i[0]===2||i[0]===3,"Bad public key");const s=cQ.getSharedSecret(o,i);return Buffer.from(s).subarray(s.length-32)},DAe=rEe,iEe=async function(o,i){Ei(Buffer.isBuffer(o),"Bad private key"),Ei(Buffer.isBuffer(i),"Bad public key"),Ei(o.length===32,"Bad private key"),Ei(id(o),"Bad private key"),Ei(i.length===65||i.length===33,"Bad public key"),i.length===65&&Ei(i[0]===4,"Bad public key"),i.length===33&&Ei(i[0]===2||i[0]===3,"Bad public key");const s=cQ.getSharedSecret(o,i);return Buffer.from(s).subarray(s.length-32)},SAe=async function(o,i,s){s=s||{};let f=s.ephemPrivateKey||Hc(32);for(;!id(f);)f=s.ephemPrivateKey||Hc(32);const l=IN(f),r=await DAe(f,o),B=await wAe(r),I=s.iv||Hc(16),p=B.slice(0,32),Q=B.slice(32),y=await eEe(I,Buffer.from(p),i),v=Buffer.concat([I,l,y]),w=await MAe(Buffer.from(Q),v);return{iv:I,ephemPublicKey:l,ciphertext:y,mac:w}},il=async function(o,i,s){const f=s??!1,r=await(f?iEe:DAe)(o,i.ephemPublicKey),B=await wAe(r),I=B.slice(0,32),p=B.slice(32),Q=Buffer.concat([i.iv,i.ephemPublicKey,i.ciphertext]),d=await AEe(Buffer.from(p),Q,i.mac);if(!d&&f===!1)return il(o,i,!0);if(!d&&f===!0)throw new Error("bad MAC after trying padded");const y=await tEe(i.iv,Buffer.from(I),i.ciphertext);return Buffer.from(new Uint8Array(y))};async function nEe(o){return uAe(o)}function oEe(o){return o.charAt(0).toUpperCase()+o.slice(1)}class aEe extends Error{constructor({errors:i,responses:s,predicate:f}){const l=`Unable to resolve enough promises. - errors: ${i.map(r=>(r==null?void 0:r.message)||r).join(", ")}, - predicate error: ${f}, - ${s.length} responses, - responses: ${JSON.stringify(s)}`;super(l),hi(this,"errors",void 0),hi(this,"responses",void 0),hi(this,"predicate",void 0),this.errors=i,this.responses=s,this.predicate=f}get message(){return`${super.message}. errors: ${this.errors.map(i=>(i==null?void 0:i.message)||i).join(", ")} and ${this.responses.length} responses: ${JSON.stringify(this.responses)}, - predicate error: ${this.predicate}`}toString(){return this.message}}const Df=(o,i)=>new Promise((s,f)=>{let l=0;const r={resolved:!1},B=new Array(o.length).fill(void 0),I=new Array(o.length).fill(void 0);let p;o.forEach((Q,d)=>{Q.then(y=>{I[d]=y}).catch(y=>{B[d]=y}).finally(()=>{if(!r.resolved)return i(I.slice(0),r).then(y=>{r.resolved=!0,s(y)}).catch(y=>{p=y}).finally(()=>{if(l+=1,l===o.length){const v=Object.values(I.reduce((w,M)=>{if(M){var m;const{id:x,error:D}=M;(D==null||(m=D.data)===null||m===void 0?void 0:m.length)>0&&(D.data.startsWith("Error occurred while verifying params")?w[x]=oEe(D.data):w[x]=D.data)}return w},{}));if(v.length>0){const w=v.length>1?` -${v.map(M=>`• ${M}`).join(` -`)}`:v[0];f(new Error(w))}else{var y;f(new aEe({errors:B,responses:I,predicate:((y=p)===null||y===void 0?void 0:y.message)||p}))}}})})})}),yB=BigInt(2**32-1),hR=BigInt(32);function xAe(o,i=!1){return i?{h:Number(o&yB),l:Number(o>>hR&yB)}:{h:Number(o>>hR&yB)|0,l:Number(o&yB)|0}}function RAe(o,i=!1){let s=new Uint32Array(o.length),f=new Uint32Array(o.length);for(let l=0;lBigInt(o>>>0)<>>0),fEe=(o,i,s)=>o>>>s,hEe=(o,i,s)=>o<<32-s|i>>>s,gEe=(o,i,s)=>o>>>s|i<<32-s,uEe=(o,i,s)=>o<<32-s|i>>>s,cEe=(o,i,s)=>o<<64-s|i>>>s-32,lEe=(o,i,s)=>o>>>s-32|i<<64-s,dEe=(o,i)=>i,IEe=(o,i)=>o,kAe=(o,i,s)=>o<>>32-s,NAe=(o,i,s)=>i<>>32-s,_Ae=(o,i,s)=>i<>>64-s,KAe=(o,i,s)=>o<>>64-s;function BEe(o,i,s,f){const l=(i>>>0)+(f>>>0);return{h:o+s+(l/2**32|0)|0,l:l|0}}const CEe=(o,i,s)=>(o>>>0)+(i>>>0)+(s>>>0),EEe=(o,i,s,f)=>i+s+f+(o/2**32|0)|0,pEe=(o,i,s,f)=>(o>>>0)+(i>>>0)+(s>>>0)+(f>>>0),QEe=(o,i,s,f,l)=>i+s+f+l+(o/2**32|0)|0,yEe=(o,i,s,f,l)=>(o>>>0)+(i>>>0)+(s>>>0)+(f>>>0)+(l>>>0),vEe=(o,i,s,f,l,r)=>i+s+f+l+r+(o/2**32|0)|0,QA={fromBig:xAe,split:RAe,toBig:sEe,shrSH:fEe,shrSL:hEe,rotrSH:gEe,rotrSL:uEe,rotrBH:cEe,rotrBL:lEe,rotr32H:dEe,rotr32L:IEe,rotlSH:kAe,rotlSL:NAe,rotlBH:_Ae,rotlBL:KAe,add:BEe,add3L:CEe,add3H:EEe,add4L:pEe,add4H:QEe,add5H:vEe,add5L:yEe},FAe=[],GAe=[],LAe=[],wEe=BigInt(0),fc=BigInt(1),mEe=BigInt(2),MEe=BigInt(7),bEe=BigInt(256),DEe=BigInt(113);for(let o=0,i=fc,s=1,f=0;o<24;o++){[s,f]=[f,(2*s+3*f)%5],FAe.push(2*(5*f+s)),GAe.push((o+1)*(o+2)/2%64);let l=wEe;for(let r=0;r<7;r++)i=(i<>MEe)*DEe)%bEe,i&mEe&&(l^=fc<<(fc<s>32?_Ae(o,i,s):kAe(o,i,s),_T=(o,i,s)=>s>32?KAe(o,i,s):NAe(o,i,s);function REe(o,i=24){const s=new Uint32Array(10);for(let f=24-i;f<24;f++){for(let B=0;B<10;B++)s[B]=o[B]^o[B+10]^o[B+20]^o[B+30]^o[B+40];for(let B=0;B<10;B+=2){const I=(B+8)%10,p=(B+2)%10,Q=s[p],d=s[p+1],y=NT(Q,d,1)^s[I],v=_T(Q,d,1)^s[I+1];for(let w=0;w<50;w+=10)o[B+w]^=y,o[B+w+1]^=v}let l=o[2],r=o[3];for(let B=0;B<24;B++){const I=GAe[B],p=NT(l,r,I),Q=_T(l,r,I),d=FAe[B];l=o[d],r=o[d+1],o[d]=p,o[d+1]=Q}for(let B=0;B<50;B+=10){for(let I=0;I<10;I++)s[I]=o[B+I];for(let I=0;I<10;I++)o[B+I]^=~s[(I+2)%10]&s[(I+4)%10]}o[0]^=SEe[f],o[1]^=xEe[f]}s.fill(0)}let kEe=class UAe extends hN{constructor(i,s,f,l=!1,r=24){if(super(),this.blockLen=i,this.suffix=s,this.outputLen=f,this.enableXOF=l,this.rounds=r,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Al(f),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=sCe(this.state)}keccak(){wT||mT(this.state32),REe(this.state32,this.rounds),wT||mT(this.state32),this.posOut=0,this.pos=0}update(i){Yh(this);const{blockLen:s,state:f}=this;i=gQ(i);const l=i.length;for(let r=0;r=f&&this.keccak();const B=Math.min(f-this.posOut,r-l);i.set(s.subarray(this.posOut,this.posOut+B),l),this.posOut+=B,l+=B}return i}xofInto(i){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(i)}xof(i){return Al(i),this.xofInto(new Uint8Array(i))}digestInto(i){if(fN(i,this),this.finished)throw new Error("digest() was already called");return this.writeInto(i),this.destroy(),i}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(i){const{blockLen:s,suffix:f,outputLen:l,rounds:r,enableXOF:B}=this;return i||(i=new UAe(s,f,l,B,r)),i.state32.set(this.state32),i.pos=this.pos,i.posOut=this.posOut,i.finished=this.finished,i.rounds=r,i.suffix=f,i.outputLen=l,i.enableXOF=B,i.destroyed=this.destroyed,i}};const NEe=(o,i,s)=>gN(()=>new kEe(i,o,s)),KT=NEe(1,136,256/8);function qAe(o){return i=>(aCe.bytes(i),o(i))}(()=>{const o=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0,i=typeof module<"u"&&typeof module.require=="function"&&module.require.bind(module);return{node:i&&!o?i("crypto"):void 0,web:o}})();const BN=(()=>{const o=qAe(KT);return o.create=KT.create,o})();var vB={},vb,FT;function _Ee(){if(FT)return vb;FT=1;var o,i,s={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` -`,r:"\r",t:" "},f;function l(w){throw{name:"SyntaxError",message:w,at:o,text:f}}function r(w){return w&&w!==i&&l("Expected '"+w+"' instead of '"+i+"'"),i=f.charAt(o),o+=1,i}function B(){var w,M="";for(i==="-"&&(M="-",r("-"));i>="0"&&i<="9";)M+=i,r();if(i===".")for(M+=".";r()&&i>="0"&&i<="9";)M+=i;if(i==="e"||i==="E")for(M+=i,r(),(i==="-"||i==="+")&&(M+=i,r());i>="0"&&i<="9";)M+=i,r();return w=Number(M),isFinite(w)||l("Bad number"),w}function I(){var w,M,m="",x;if(i==='"')for(;r();){if(i==='"')return r(),m;if(i==="\\")if(r(),i==="u"){for(x=0,M=0;M<4&&(w=parseInt(r(),16),!!isFinite(w));M+=1)x=x*16+w;m+=String.fromCharCode(x)}else if(typeof s[i]=="string")m+=s[i];else break;else m+=i}l("Bad string")}function p(){for(;i&&i<=" ";)r()}function Q(){switch(i){case"t":return r("t"),r("r"),r("u"),r("e"),!0;case"f":return r("f"),r("a"),r("l"),r("s"),r("e"),!1;case"n":return r("n"),r("u"),r("l"),r("l"),null;default:l("Unexpected '"+i+"'")}}function d(){var w=[];if(i==="["){if(r("["),p(),i==="]")return r("]"),w;for(;i;){if(w.push(v()),p(),i==="]")return r("]"),w;r(","),p()}}l("Bad array")}function y(){var w,M={};if(i==="{"){if(r("{"),p(),i==="}")return r("}"),M;for(;i;){if(w=I(),p(),r(":"),Object.prototype.hasOwnProperty.call(M,w)&&l('Duplicate key "'+w+'"'),M[w]=v(),p(),i==="}")return r("}"),M;r(","),p()}}l("Bad object")}function v(){switch(p(),i){case"{":return y();case"[":return d();case'"':return I();case"-":return B();default:return i>="0"&&i<="9"?B():Q()}}return vb=function(w,M){var m;return f=w,o=0,i=" ",m=v(),p(),i&&l("Syntax error"),typeof M=="function"?function x(D,S){var K,N,L=D[S];if(L&&typeof L=="object")for(K in v)Object.prototype.hasOwnProperty.call(L,K)&&(N=x(L,K),typeof N>"u"?delete L[K]:L[K]=N);return M.call(D,S,L)}({"":m},""):m},vb}var wb,GT;function KEe(){if(GT)return wb;GT=1;var o=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,i,s,f={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},l;function r(I){return o.lastIndex=0,o.test(I)?'"'+I.replace(o,function(p){var Q=f[p];return typeof Q=="string"?Q:"\\u"+("0000"+p.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+I+'"'}function B(I,p){var Q,d,y,v,w=i,M,m=p[I];switch(m&&typeof m=="object"&&typeof m.toJSON=="function"&&(m=m.toJSON(I)),typeof l=="function"&&(m=l.call(p,I,m)),typeof m){case"string":return r(m);case"number":return isFinite(m)?String(m):"null";case"boolean":case"null":return String(m);case"object":if(!m)return"null";if(i+=s,M=[],Object.prototype.toString.apply(m)==="[object Array]"){for(v=m.length,Q=0;Q=0&&o.call(s.callee)==="[object Function]"),l},Mb}var bb,HT;function LEe(){if(HT)return bb;HT=1;var o;if(!Object.keys){var i=Object.prototype.hasOwnProperty,s=Object.prototype.toString,f=HAe(),l=Object.prototype.propertyIsEnumerable,r=!l.call({toString:null},"toString"),B=l.call(function(){},"prototype"),I=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],p=function(v){var w=v.constructor;return w&&w.prototype===v},Q={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},d=function(){if(typeof window>"u")return!1;for(var v in window)try{if(!Q["$"+v]&&i.call(window,v)&&window[v]!==null&&typeof window[v]=="object")try{p(window[v])}catch{return!0}}catch{return!0}return!1}(),y=function(v){if(typeof window>"u"||!d)return p(v);try{return p(v)}catch{return!1}};o=function(w){var M=w!==null&&typeof w=="object",m=s.call(w)==="[object Function]",x=f(w),D=M&&s.call(w)==="[object String]",S=[];if(!M&&!m&&!x)throw new TypeError("Object.keys called on a non-object");var K=B&&m;if(D&&w.length>0&&!i.call(w,0))for(var N=0;N0)for(var L=0;L"u"||!m?o:m(Uint8Array),S={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?o:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?o:ArrayBuffer,"%ArrayIteratorPrototype%":w&&m?m([][Symbol.iterator]()):o,"%AsyncFromSyncIteratorPrototype%":o,"%AsyncFunction%":x,"%AsyncGenerator%":x,"%AsyncGeneratorFunction%":x,"%AsyncIteratorPrototype%":x,"%Atomics%":typeof Atomics>"u"?o:Atomics,"%BigInt%":typeof BigInt>"u"?o:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?o:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?o:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?o:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":s,"%Float32Array%":typeof Float32Array>"u"?o:Float32Array,"%Float64Array%":typeof Float64Array>"u"?o:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?o:FinalizationRegistry,"%Function%":p,"%GeneratorFunction%":x,"%Int8Array%":typeof Int8Array>"u"?o:Int8Array,"%Int16Array%":typeof Int16Array>"u"?o:Int16Array,"%Int32Array%":typeof Int32Array>"u"?o:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":w&&m?m(m([][Symbol.iterator]())):o,"%JSON%":typeof JSON=="object"?JSON:o,"%Map%":typeof Map>"u"?o:Map,"%MapIteratorPrototype%":typeof Map>"u"||!w||!m?o:m(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?o:Promise,"%Proxy%":typeof Proxy>"u"?o:Proxy,"%RangeError%":f,"%ReferenceError%":l,"%Reflect%":typeof Reflect>"u"?o:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?o:Set,"%SetIteratorPrototype%":typeof Set>"u"||!w||!m?o:m(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?o:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":w&&m?m(""[Symbol.iterator]()):o,"%Symbol%":w?Symbol:o,"%SyntaxError%":r,"%ThrowTypeError%":v,"%TypedArray%":D,"%TypeError%":B,"%Uint8Array%":typeof Uint8Array>"u"?o:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?o:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?o:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?o:Uint32Array,"%URIError%":I,"%WeakMap%":typeof WeakMap>"u"?o:WeakMap,"%WeakRef%":typeof WeakRef>"u"?o:WeakRef,"%WeakSet%":typeof WeakSet>"u"?o:WeakSet};if(m)try{null.error}catch(c){var K=m(m(c));S["%Error.prototype%"]=K}var N=function c(C){var g;if(C==="%AsyncFunction%")g=Q("async function () {}");else if(C==="%GeneratorFunction%")g=Q("function* () {}");else if(C==="%AsyncGeneratorFunction%")g=Q("async function* () {}");else if(C==="%AsyncGenerator%"){var t=c("%AsyncGeneratorFunction%");t&&(g=t.prototype)}else if(C==="%AsyncIteratorPrototype%"){var u=c("%AsyncGenerator%");u&&m&&(g=m(u.prototype))}return S[C]=g,g},L={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},j=CN(),re=VEe(),Z=j.call(Function.call,Array.prototype.concat),J=j.call(Function.apply,Array.prototype.splice),Ae=j.call(Function.call,String.prototype.replace),E=j.call(Function.call,String.prototype.slice),e=j.call(Function.call,RegExp.prototype.exec),A=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,n=/\\(\\)?/g,a=function(C){var g=E(C,0,1),t=E(C,-1);if(g==="%"&&t!=="%")throw new r("invalid intrinsic syntax, expected closing `%`");if(t==="%"&&g!=="%")throw new r("invalid intrinsic syntax, expected opening `%`");var u=[];return Ae(C,A,function(b,R,T,V){u[u.length]=T?Ae(V,n,"$1"):R||b}),u},h=function(C,g){var t=C,u;if(re(L,t)&&(u=L[t],t="%"+u[0]+"%"),re(S,t)){var b=S[t];if(b===x&&(b=N(t)),typeof b>"u"&&!g)throw new B("intrinsic "+C+" exists, but is not available. Please file an issue!");return{alias:u,name:t,value:b}}throw new r("intrinsic "+C+" does not exist!")};return Yb=function(C,g){if(typeof C!="string"||C.length===0)throw new B("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof g!="boolean")throw new B('"allowMissing" argument must be a boolean');if(e(/^%?[^%]*%?$/,C)===null)throw new r("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var t=a(C),u=t.length>0?t[0]:"",b=h("%"+u+"%",g),R=b.name,T=b.value,V=!1,P=b.alias;P&&(u=P[0],J(t,Z([0,1],P)));for(var F=1,Y=!0;F=t.length){var q=d(T,W);Y=!!q,Y&&"get"in q&&!("originalValue"in q.get)?T=q.get:T=T[W]}else Y=re(T,W),T=T[W];Y&&!V&&(S[R]=T)}}return T},Yb}var Jb,rY;function EN(){if(rY)return Jb;rY=1;var o=nd(),i=o("%Object.defineProperty%",!0)||!1;if(i)try{i({},"a",{value:1})}catch{i=!1}return Jb=i,Jb}var Pb,iY;function YAe(){if(iY)return Pb;iY=1;var o=nd(),i=o("%Object.getOwnPropertyDescriptor%",!0);if(i)try{i([],"length")}catch{i=null}return Pb=i,Pb}var Ob,nY;function ZEe(){if(nY)return Ob;nY=1;var o=EN(),i=TAe(),s=lQ(),f=YAe();return Ob=function(r,B,I){if(!r||typeof r!="object"&&typeof r!="function")throw new s("`obj` must be an object or a function`");if(typeof B!="string"&&typeof B!="symbol")throw new s("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new s("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new s("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new s("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new s("`loose`, if provided, must be a boolean");var p=arguments.length>3?arguments[3]:null,Q=arguments.length>4?arguments[4]:null,d=arguments.length>5?arguments[5]:null,y=arguments.length>6?arguments[6]:!1,v=!!f&&f(r,B);if(o)o(r,B,{configurable:d===null&&v?v.configurable:!d,enumerable:p===null&&v?v.enumerable:!p,value:I,writable:Q===null&&v?v.writable:!Q});else if(y||!p&&!Q&&!d)r[B]=I;else throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Ob}var jb,oY;function zEe(){if(oY)return jb;oY=1;var o=EN(),i=function(){return!!o};return i.hasArrayLengthDefineBug=function(){if(!o)return null;try{return o([],"length",{value:1}).length!==1}catch{return!0}},jb=i,jb}var Wb,aY;function $Ee(){if(aY)return Wb;aY=1;var o=nd(),i=ZEe(),s=zEe()(),f=YAe(),l=lQ(),r=o("%Math.floor%");return Wb=function(I,p){if(typeof I!="function")throw new l("`fn` is not a function");if(typeof p!="number"||p<0||p>4294967295||r(p)!==p)throw new l("`length` must be a positive 32-bit integer");var Q=arguments.length>2&&!!arguments[2],d=!0,y=!0;if("length"in I&&f){var v=f(I,"length");v&&!v.configurable&&(d=!1),v&&!v.writable&&(y=!1)}return(d||y||!Q)&&(s?i(I,"length",p,!0,!0):i(I,"length",p)),I},Wb}var sY;function JAe(){return sY||(sY=1,function(o){var i=CN(),s=nd(),f=$Ee(),l=lQ(),r=s("%Function.prototype.apply%"),B=s("%Function.prototype.call%"),I=s("%Reflect.apply%",!0)||i.call(B,r),p=EN(),Q=s("%Math.max%");o.exports=function(v){if(typeof v!="function")throw new l("a function is required");var w=I(i,B,arguments);return f(w,1+Q(0,v.length-(arguments.length-1)),!0)};var d=function(){return I(i,r,arguments)};p?p(o.exports,"apply",{value:d}):o.exports.apply=d}(Sb)),Sb.exports}var Vb,fY;function XEe(){if(fY)return Vb;fY=1;var o=nd(),i=JAe(),s=i(o("String.prototype.indexOf"));return Vb=function(l,r){var B=o(l,!!r);return typeof B=="function"&&s(l,".prototype.")>-1?i(B):B},Vb}var Zb,hY;function epe(){if(hY)return Zb;hY=1;var o=(typeof JSON<"u"?JSON:FEe()).stringify,i=GEe(),s=UEe(),f=JAe(),l=XEe(),r=l("Array.prototype.join"),B=l("Array.prototype.push"),I=function(d,y){for(var v="",w=0;w1?arguments[1]:void 0,v=y&&y.space||"";typeof v=="number"&&(v=I(v," "));var w=!!y&&typeof y.cycles=="boolean"&&y.cycles,M=y&&y.replacer?f(y.replacer):p,m=typeof y=="function"?y:y&&y.cmp,x=m&&function(S){var K=m.length>2&&function(L){return S[L]};return function(N,L){return m({key:N,value:S[N]},{key:L,value:S[L]},K?{__proto__:null,get:K}:void 0)}},D=[];return function S(K,N,L,j){var re=v?` -`+I(j,v):"",Z=v?": ":":";if(L&&L.toJSON&&typeof L.toJSON=="function"&&(L=L.toJSON()),L=M(K,N,L),L!==void 0){if(typeof L!="object"||L===null)return o(L);if(i(L)){for(var e=[],J=0;Jo.genKeyPair().getPrivate().toArrayLike(i),go=o=>{if(o===tr.ED25519)return new RE.ec(tr.ED25519);if(o===tr.SECP256K1)return new RE.ec(tr.SECP256K1);throw new Error(`Invalid keyType: ${o}`)},Ape=o=>{const i={keys:[],is_new_key:o.is_new_key};if(o&&o.keys&&o.keys.length>0){const s=o.keys[0];i.keys=[{pub_key_X:s.pub_key_X,pub_key_Y:s.pub_key_Y,address:s.address}]}return i},rpe=o=>{const i={keys:[]};if(o&&o.keys&&o.keys.length>0){const s=o.keys[0];i.keys=[{pub_key_X:s.pub_key_X,pub_key_Y:s.pub_key_Y,address:s.address}]}return i},PAe=(o,i)=>{let s=o;if(typeof s=="number"&&(s=Array.from({length:s},(r,B)=>B)),i>s.length||i<=0)return[];if(i===s.length)return[s];if(i===1)return s.reduce((r,B)=>[...r,[B]],[]);const f=[];let l=[];for(let r=0;r<=s.length-i+1;r+=1){l=PAe(s.slice(r+1),i-1);for(let B=0;B{const s={};for(let f=0;f{o>0?setTimeout(i,o):s(new Error("value of milliseconds must be greater than 0"))})}function npe(o,i){async function s(f){try{if(f>0){const r=2**f*100;await ipe(r)}return await o()}catch(l){const r=l.message,B=["Timed out","Failed to fetch","fetch failed","Load failed","cancelled","NetworkError when attempting to fetch resource.","TypeError: Failed to fetch","TypeError: cancelled","TypeError: NetworkError when attempting to fetch resource."];if(f{if(o.length>=255)throw new TypeError("Alphabet too long");const i=new Uint8Array(256);for(let Q=0;Q>>0,m=new Uint8Array(M);for(;v!==w;){let S=Q[v],K=0;for(let N=M-1;(S!==0||K>>0,m[N]=S%s>>>0,S=S/s>>>0;if(S!==0)throw new Error("Non-zero carry");y=K,v++}let x=M-y;for(;x!==M&&m[x]===0;)x++;let D=f.repeat(d);for(;x>>0,M=new Uint8Array(w);for(;Q[d];){let S=i[Q.charCodeAt(d)];if(S===255)return;let K=0;for(let N=w-1;(S!==0||K>>0,M[N]=S%256>>>0,S=S/256>>>0;if(S!==0)throw new Error("Non-zero carry");v=K,d++}let m=w-v;for(;m!==w&&M[m]===0;)m++;const x=new Uint8Array(y+(w-m));let D=y;for(;m!==w;)x[D++]=M[m++];return x}function p(Q){const d=I(Q);if(d)return d;throw new Error(`Non-base${s} character`)}return{encode:B,decodeUnsafe:I,decode:p}},ape="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",spe=ope(ape),[fpe,hpe]=QA.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(o=>BigInt(o))),Ws=new Uint32Array(80),Vs=new Uint32Array(80);class gpe extends cAe{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:i,Al:s,Bh:f,Bl:l,Ch:r,Cl:B,Dh:I,Dl:p,Eh:Q,El:d,Fh:y,Fl:v,Gh:w,Gl:M,Hh:m,Hl:x}=this;return[i,s,f,l,r,B,I,p,Q,d,y,v,w,M,m,x]}set(i,s,f,l,r,B,I,p,Q,d,y,v,w,M,m,x){this.Ah=i|0,this.Al=s|0,this.Bh=f|0,this.Bl=l|0,this.Ch=r|0,this.Cl=B|0,this.Dh=I|0,this.Dl=p|0,this.Eh=Q|0,this.El=d|0,this.Fh=y|0,this.Fl=v|0,this.Gh=w|0,this.Gl=M|0,this.Hh=m|0,this.Hl=x|0}process(i,s){for(let K=0;K<16;K++,s+=4)Ws[K]=i.getUint32(s),Vs[K]=i.getUint32(s+=4);for(let K=16;K<80;K++){const N=Ws[K-15]|0,L=Vs[K-15]|0,j=QA.rotrSH(N,L,1)^QA.rotrSH(N,L,8)^QA.shrSH(N,L,7),re=QA.rotrSL(N,L,1)^QA.rotrSL(N,L,8)^QA.shrSL(N,L,7),Z=Ws[K-2]|0,J=Vs[K-2]|0,Ae=QA.rotrSH(Z,J,19)^QA.rotrBH(Z,J,61)^QA.shrSH(Z,J,6),E=QA.rotrSL(Z,J,19)^QA.rotrBL(Z,J,61)^QA.shrSL(Z,J,6),e=QA.add4L(re,E,Vs[K-7],Vs[K-16]),A=QA.add4H(e,j,Ae,Ws[K-7],Ws[K-16]);Ws[K]=A|0,Vs[K]=e|0}let{Ah:f,Al:l,Bh:r,Bl:B,Ch:I,Cl:p,Dh:Q,Dl:d,Eh:y,El:v,Fh:w,Fl:M,Gh:m,Gl:x,Hh:D,Hl:S}=this;for(let K=0;K<80;K++){const N=QA.rotrSH(y,v,14)^QA.rotrSH(y,v,18)^QA.rotrBH(y,v,41),L=QA.rotrSL(y,v,14)^QA.rotrSL(y,v,18)^QA.rotrBL(y,v,41),j=y&w^~y&m,re=v&M^~v&x,Z=QA.add5L(S,L,re,hpe[K],Vs[K]),J=QA.add5H(Z,D,N,j,fpe[K],Ws[K]),Ae=Z|0,E=QA.rotrSH(f,l,28)^QA.rotrBH(f,l,34)^QA.rotrBH(f,l,39),e=QA.rotrSL(f,l,28)^QA.rotrBL(f,l,34)^QA.rotrBL(f,l,39),A=f&r^f&I^r&I,n=l&B^l&p^B&p;D=m|0,S=x|0,m=w|0,x=M|0,w=y|0,M=v|0,{h:y,l:v}=QA.add(Q|0,d|0,J|0,Ae|0),Q=I|0,d=p|0,I=r|0,p=B|0,r=f|0,B=l|0;const a=QA.add3L(Ae,e,n);f=QA.add3H(a,J,E,A),l=a|0}({h:f,l}=QA.add(this.Ah|0,this.Al|0,f|0,l|0)),{h:r,l:B}=QA.add(this.Bh|0,this.Bl|0,r|0,B|0),{h:I,l:p}=QA.add(this.Ch|0,this.Cl|0,I|0,p|0),{h:Q,l:d}=QA.add(this.Dh|0,this.Dl|0,Q|0,d|0),{h:y,l:v}=QA.add(this.Eh|0,this.El|0,y|0,v|0),{h:w,l:M}=QA.add(this.Fh|0,this.Fl|0,w|0,M|0),{h:m,l:x}=QA.add(this.Gh|0,this.Gl|0,m|0,x|0),{h:D,l:S}=QA.add(this.Hh|0,this.Hl|0,D|0,S|0),this.set(f,l,r,B,I,p,Q,d,y,v,w,M,m,x,D,S)}roundClean(){Ws.fill(0),Vs.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const upe=gN(()=>new gpe),cpe=qAe(upe);function gR(o,i){const s=new cA(pN(i,Buffer));return o.find(f=>f.eq(s))?gR(o,i):s}function lpe(o,i,s){if(i.length!==s.length)throw new Error("shares not equal to nodeIndex length in lagrangeInterpolation");let f=new cA(0);for(let l=0;l{const i=go(tr.SECP256K1),s=o.toString("hex",64),f=BN(Buffer.from(s,"hex")),l=new cA(f).umod(i.n).toString("hex",64),r=Buffer.from(l,"hex"),B=i.keyFromPrivate(r);if(r.length!==32)throw new Error(`Key length must be equal to 32. got ${r.length}`);return{scalar:B.getPrivate(),point:B.getPublic()}};async function gY(o,i,s){const f=QN(o);return await il(s,vr(vr({},f),{},{ciphertext:Buffer.from(i,"hex")}))}async function Ipe(o,i,s){const f=QN(o);try{return await il(s,vr(vr({},f),{},{ciphertext:Buffer.from(i,"hex")}))}catch(l){const r=i.padStart(64,"0");return Vl.warn("Failed to decrypt padded share cipher",l),il(s,vr(vr({},f),{},{ciphertext:Buffer.from(r,"hex")}))}}function Bpe(o,i,s,f){const l=o.keyFromPrivate(f.toString("hex",64),"hex"),r={data:s,timestamp:new cA(~~(i+Date.now()/1e3)).toString(16)},B=l.sign(Kr(Buffer.from(od(r),"utf8")).slice(2));return{pub_key_X:l.getPublic().getX().toString("hex"),pub_key_Y:l.getPublic().getY().toString("hex"),set_data:r,signature:Buffer.from(B.r.toString(16,64)+B.s.toString(16,64)+new cA("").toString(16,2),"hex").toString("base64")}}async function kE(o,i,s={}){try{const f=await ki(`${o}/get`,i,s,{useAPIKey:!0});return!f||!f.message?new cA(0):new cA(f.message,16)}catch(f){return Vl.error("get metadata error",f),new cA(0)}}function WAe(o,i,s,f,l,r){const B=go(tr.SECP256K1).keyFromPrivate(s.toString("hex",64),"hex"),I={operation:i,timestamp:new cA(~~(o+Date.now()/1e3)).toString(16)};l&&(I.data=l.toString("hex",64)),r?I.seed=r:I.seed="";const p=B.sign(Kr(Buffer.from(od(I),"utf8")).slice(2));return{pub_key_X:B.getPublic().getX().toString("hex",64),pub_key_Y:B.getPublic().getY().toString("hex",64),set_data:I,key_type:f,signature:Buffer.from(p.r.toString(16,64)+p.s.toString(16,64)+new cA("").toString(16,2),"hex").toString("base64")}}async function VAe(o,i,s,f,l,r,B=!1,I=!0,p=new cA(0),Q="secp256k1",d=""){if(I){let w;const M=B?"getNonce":"getOrSetNonce";return r?w=Bpe(i,s,M,r):w={pub_key_X:f,pub_key_Y:l,set_data:{data:M}},ki(`${o}/get_or_set_nonce`,w,void 0,{useAPIKey:!0})}const y=B?"getNonce":"getOrSetNonce";if(y==="getOrSetNonce"){if(!r)throw new Error("privKey is required while `getOrSetNonce` for non legacy metadata");if(p.cmp(new cA(0))===0)throw new Error("nonce is required while `getOrSetNonce` for non legacy metadata");if(Q===tr.ED25519&&!d)throw new Error("seed is required while `getOrSetNonce` for non legacy metadata for ed25519 key type");const w=WAe(s,y,r,Q,p,d);return ki(`${o}/get_or_set_nonce`,w,void 0,{useAPIKey:!0})}const v={pub_key_X:f,pub_key_Y:l,set_data:{operation:y},key_type:Q};return ki(`${o}/get_or_set_nonce`,v,void 0,{useAPIKey:!0})}const Cpe=async(o,i)=>{const s=Mg(i),f=Buffer.from(o,"base64").toString("utf-8"),l=JSON.parse(f),r=vr(vr({},QN(l.metadata)),{},{mode:"AES256"}),B=s.scalar.toArrayLike(Buffer,"be",32);return await il(B,vr(vr({},r),{},{ciphertext:Buffer.from(l.enc_text,"hex")}))};async function ZAe(o,i,s,f,l){if(Go[o])throw new Error("getOrSetSapphireMetadataNonce should only be used for sapphire networks");let r={pub_key_X:i,pub_key_Y:s,key_type:"secp256k1",set_data:{operation:"getOrSetNonce"}};if(l){const I=go(tr.SECP256K1).keyFromPrivate(l.toString("hex",64),"hex"),p={operation:"getOrSetNonce",timestamp:new cA(~~(f+Date.now()/1e3)).toString(16)},Q=I.sign(Kr(Buffer.from(od(p),"utf8")).slice(2));r=vr(vr({},r),{},{set_data:p,signature:Buffer.from(Q.r.toString(16,64)+Q.s.toString(16,64)+new cA("").toString(16,2),"hex").toString("base64")})}const B=o===af.SAPPHIRE_DEVNET?bde:Mde;return ki(`${B}/get_or_set_nonce`,r,void 0,{useAPIKey:!0})}function Epe(o){return o.startsWith("0x")?o.slice(2):o}function ppe(o){const i=Epe(o).toLowerCase(),s=Buffer.from(i,"utf8"),f=Buffer.from(BN(s)).toString("hex");let l="0x";for(let r=0;r=8?l+=i[r].toUpperCase():l+=i[r];return l}function Qpe(o){return o[0]&=248,o[31]&=127,o[31]|=64,o}function dQ(o){const i=go(tr.ED25519),s=32,f=i.g,l=i.n;if(o.length!==32)throw Vl.error("Invalid seed for ed25519 key derivation",o.length),new Error("Invalid seed for ed25519 key derivation");const r=cpe(o);if(r.length!==64)throw new Error("Invalid hash length for ed25519 seed");const B=new cA(Qpe(Buffer.from(r.slice(0,s))),"le"),I=new cA(B.umod(l),"le"),p=f.mul(I);return{scalar:I,point:p}}function NE(o){const i=go(tr.ED25519),s=Math.ceil(i.n.bitLength()/8),f=o.getY().toArrayLike(Buffer,"le",s);return f[s-1]|=o.getX().isOdd()?128:0,f}const ype=async o=>{const i=go(tr.ED25519),s=dQ(o),f=Mg(s.scalar),l=await SAe(Buffer.from(f.point.encodeCompressed("hex"),"hex"),o),r={enc_text:l.ciphertext.toString("hex"),metadata:OAe(l),public_key:NE(s.point).toString("hex")},B=Buffer.from(JSON.stringify(r),"utf-8").toString("base64"),I=i.genKeyPair().getPrivate(),p=s.scalar.sub(I).umod(i.n),Q=i.keyFromPrivate(p.toArrayLike(Buffer)),d=Mg(Q.getPrivate());return{oAuthKeyScalar:Q.getPrivate(),oAuthPubX:Q.getPublic().getX(),oAuthPubY:Q.getPublic().getY(),SigningPubX:d.point.getX(),SigningPubY:d.point.getY(),metadataNonce:I,metadataSigningKey:d.scalar,encryptedSeed:B,finalUserPubKeyPoint:s.point}},vpe=async o=>{const i=go(tr.SECP256K1),s=new cA(o),f=new cA(pN(i,Buffer)),l=s.sub(f).umod(i.n),r=i.keyFromPrivate(l.toArrayLike(Buffer)),B=r.getPublic(),I=i.keyFromPrivate(s.toString("hex",64),"hex");return{oAuthKeyScalar:r.getPrivate(),oAuthPubX:B.getX(),oAuthPubY:B.getY(),SigningPubX:B.getX(),SigningPubY:B.getY(),metadataNonce:f,encryptedSeed:"",metadataSigningKey:r.getPrivate(),finalUserPubKeyPoint:I.getPublic()}};function zAe(o,i){if(o===tr.SECP256K1){const s=i.getPublic().encode("hex",!1).slice(2),f=`0x${Kr(Buffer.from(s,"hex")).slice(26)}`;return ppe(f)}else if(o===tr.ED25519){const s=NE(i.getPublic());return spe.encode(s)}throw new Error(`Invalid keyType: ${o}`)}function wpe(o,i){const f=go(o).keyFromPrivate(i.toString("hex",64),"hex");return zAe(o,f)}function Sc(o,i,s){const l=go(o).keyFromPublic({x:i.toString("hex",64),y:s.toString("hex",64)});return zAe(o,l)}function uY(o,i){const s=i.toString(16,64);return o.keyFromPrivate(s,"hex").getPublic()}const mpe=()=>new RE.ec("secp256k1"),$Ae=async(o,i,s,f,l,r)=>{const B=i===tr.ED25519?await ype(r):await vpe(r),{metadataNonce:I,oAuthKeyScalar:p,encryptedSeed:Q,metadataSigningKey:d}=B,v=~~(l.length/2)+1-1,w=[];for(const j of f)w.push(new cA(j));const M=o.keyFromPrivate(p.toString("hex",64),"hex").getPublic(),x=dpe(o,v,p).generateShares(w),D=WAe(s,"getOrSetNonce",d,i,I,Q),S=Buffer.from(od(D.set_data),"utf8").toString("base64"),K=[],N=[];for(let j=0;j{const{endpoints:i,network:s,verifier:f,verifierId:l,extendedVerifierId:r,keyType:B}=o,I=~~(i.length/2)+1,p=i.map(v=>ki(v,va(uo.GET_OR_SET_KEY,{distributed_metadata:!0,verifier:f,verifier_id:l.toString(),extended_verifier_id:r,one_key_flow:!0,key_type:B,fetch_node_index:!0,client_time:Math.floor(Date.now()/1e3).toString()}),{},{logTracingHeader:Yo.logRequestTracing}).catch(w=>Qa.error(`${uo.GET_OR_SET_KEY} request failed`,w)));let Q;const d=[];return await Df(p,async v=>{const w=v.filter(S=>S&&!S.error?S:!1),M=Ph(v.map(S=>S&&S.error),I),m=Ph(w.map(S=>S&&Ape(S.result)),I);if(m&&!Q&&!r&&!Go[s]){for(let S=0;S{if(K&&K.result){const N=K.result.keys[0].pub_key_X.toLowerCase(),L=m.keys[0].pub_key_X.toLowerCase();if(N===L){const re=Number.parseInt(K.result.node_index);re&&d.push(re)}const j=K.result.server_time_offset?Number.parseInt(K.result.server_time_offset,10):0;D.push(j)}});const S=m?yN(D):0;return Promise.resolve({keyResult:m,serverTimeOffset:S,nodeIndexes:d,errorResult:M,nonceResult:Q})}return Promise.reject(new Error(`invalid public key result: ${JSON.stringify(v)} and nonce result:${JSON.stringify(Q||{})} for verifier: ${f}, verifierId: ${l} and extendedVerifierId: ${r} `))})},bpe=async o=>{const{endpoints:i,verifier:s,verifierId:f,keyType:l}=o,r=~~(i.length/2)+1,B=i.map(p=>ki(p,va(uo.VERIFIER_LOOKUP,{verifier:s,verifier_id:f.toString(),key_type:l,client_time:Math.floor(Date.now()/1e3).toString()}),{},{logTracingHeader:Yo.logRequestTracing}).catch(Q=>Qa.error(`${uo.GET_OR_SET_KEY} request failed`,Q)));return await Df(B,async p=>{const Q=p.filter(w=>w&&!w.error?w:!1),d=Ph(p.map(w=>w&&w.error),r),y=Ph(Q.map(w=>w&&rpe(w.result)),r),v=[];if(y||d){const w=y?yN(v):0;return Promise.resolve({keyResult:y,serverTimeOffset:w,errorResult:d})}return Promise.reject(new Error(`invalid lookup result: ${JSON.stringify(p)} - )} for verifier: ${s}, verifierId: ${f}`))})},Dpe=async o=>{const{idToken:i,endpoints:s,indexes:f,keyType:l,verifier:r,verifierParams:B,pubKeyX:I,pubKeyY:p,finalImportedShares:Q,overrideExistingKey:d}=o,y=Kr(Buffer.from(i,"utf8")),v=~~(s.length*3/4)+1,w=~~(s.length/2)+1,M=[];for(let m=0;mki(s[m],va(uo.COMMITMENT_REQUEST,{messageprefix:"mug00",keytype:l,tokencommitment:y.slice(2),temppubx:I,temppuby:p,verifieridentifier:r,verifier_id:B.verifier_id,extended_verifier_id:B.extended_verifier_id,is_import_key_flow:Q.length>0}),{},{logTracingHeader:Yo.logRequestTracing}),4);M.push(D)}return new Promise((m,x)=>{Df(M,D=>{const S=D.filter(K=>!(!K||typeof K!="object"||K.error));if(Q.length>0){if(d&&S.length===s.length){if(S.find(N=>!!N))return Promise.resolve(D)}else if(!d&&S.length>=v){const K=[];for(let re=0;rere&&re.pub_key_x),w),L=jAe(s,r,B.verifier_id),j=f[L].toString(10);if((N||!N&&S.length===s.length)&&S.find(Z=>{var J;return!!(Z&&((J=Z.result)===null||J===void 0?void 0:J.nodeindex)===j)}))return Promise.resolve(D)}}else if(S.length>=v&&S.find(N=>!!N))return Promise.resolve(D);return Promise.reject(new Error(`invalid commitment results ${JSON.stringify(D)}`))}).then(D=>m(D)).catch(x)})};async function XAe(o,i){const{legacyMetadataHost:s,serverTimeOffset:f,sessionAuthKey:l,enableOneKey:r,ecCurve:B,keyType:I,network:p,verifierParams:Q,verifier:d,endpoints:y,isImportedShares:v}=o,w=~~(y.length/2)+1;return Df(i,async(M,m)=>{let x,D=[];if(M.length===1&&M[0]&&Array.isArray(M[0].result)){const J=M[0];M[0].result.forEach(Ae=>{D.push({id:J.id,jsonrpc:"2.0",result:Ae,error:J.error})})}else D=M;const S=D.filter(J=>!(!J||typeof J!="object"||J.error)),K=D.map(J=>{if(J&&J.result&&J.result.keys[0].public_key)return J.result.keys[0].public_key}),N=Ph(K,w);if(!N)throw new Error("invalid result from nodes, threshold number of public key results are not matching");D.forEach(J=>{const Ae=J&&J.result&&J.result.keys[0].public_key&&J.result.keys[0];if(Ae&&!x&&!Q.extended_verifier_id){var E;const e=Ae.public_key;((E=Ae.nonce_data)===null||E===void 0||(E=E.pubNonce)===null||E===void 0?void 0:E.x)&&e.X===N.X&&(x=Ae.nonce_data)}});const L=v?y.length:w;if(S.length>=L&&N){const J=[],Ae=[],E=[],e=[],A=[],n=[],a=[];for(let F=0;F0){var re;q&&(re=q[0])!==null&&re!==void 0&&re.ephemPublicKey?Ae.push(gY(q[0],z[0],l).catch(he=>Qa.error("session sig decryption",he))):Ae.push(Promise.resolve(Buffer.from(z[0],"hex")))}else Ae.push(Promise.resolve(void 0));if((W==null?void 0:W.length)>0){var Z;te&&(Z=te[0])!==null&&Z!==void 0&&Z.ephemPublicKey?E.push(gY(te[0],W[0],l).catch(he=>Qa.error("session token sig decryption",he))):E.push(Promise.resolve(Buffer.from(W[0],"base64")))}else E.push(Promise.resolve(void 0));if(($==null?void 0:$.length)>0){const he=Y.result.keys[0];e.push(new cA(he.node_index)),he.share_metadata&&J.push(Ipe(he.share_metadata,Buffer.from(he.share,"base64").toString("binary"),l).catch(xe=>Qa.error("share decryption",xe)))}else e.push(void 0),J.push(Promise.resolve(void 0))}const h=await Promise.all(J.concat(Ae).concat(E)),c=h.slice(0,J.length),C=h.slice(J.length,J.length+Ae.length),g=h.slice(J.length+Ae.length,h.length),t=C.filter(F=>!!F);if(!Q.extended_verifier_id&&t.length!!F);if(!Q.extended_verifier_id&&u.length{!F||!C[Y]?A.push(void 0):A.push({token:F.toString("base64"),signature:C[Y].toString("hex"),node_pubx:S[Y].result.node_pubx,node_puby:S[Y].result.node_puby})}),m.resolved)return;const b=c.reduce((F,Y,W)=>(Y&&F.push({index:e[W],value:new cA(Y)}),F),[]),R=PAe(b.length,w);let T=null;for(let F=0;FY.includes(xe)),te=W.map(he=>he.value),z=W.map(he=>he.index),q=lpe(B,te,z);if(!q)continue;const $=uY(B,q),le=$.getX(),ae=$.getY();if(le.cmp(new cA(N.X,16))===0&&ae.cmp(new cA(N.Y,16))===0){T=q;break}}if(T==null)throw new Error("could not derive private key");let V=!1;n.forEach(F=>{F.isNewKey==="true"&&F.publicKey.toLowerCase()===N.X.toLowerCase()&&(V=!0)});const P=a.map(F=>Number.parseInt(F,10));return{privateKey:T,sessionTokenData:A,thresholdNonceData:x,nodeIndexes:e,thresholdPubKey:N,isNewKey:V,serverTimeOffsetResponse:f||yN(P)}}throw S.length{var m;const{privateKey:x,thresholdPubKey:D,sessionTokenData:S,nodeIndexes:K,thresholdNonceData:N,isNewKey:L,serverTimeOffsetResponse:j}=M;let re=N;if(!x)throw new Error("Invalid private key returned");const Z=x,J=uY(B,Z),Ae=J.getX().toString("hex",64),E=J.getY().toString("hex",64);if(!re&&!Q.extended_verifier_id&&!Go[p]){const T=await ZAe(p,D.X,D.Y,f,Z);if(T&&!N)re=T;else throw new Error(`invalid metadata result from nodes, nonce metadata is empty for verifier: ${d} and verifierId: ${Q.verifier_id}`)}let e=new cA((m=re)!==null&&m!==void 0&&m.nonce?re.nonce.padStart(64,"0"):"0","hex"),A,n,a="v1";if(Q.extended_verifier_id)a="v2",A=B.keyFromPublic({x:Ae,y:E}).getPublic();else if(Go[p])if(r)if(re=await VAe(s,B,j,Ae,E,Z,!L),e=new cA(re.nonce||"0",16),a=re.typeOfUser,a==="v2")n={X:re.pubNonce.x,Y:re.pubNonce.y},A=B.keyFromPublic({x:Ae,y:E}).getPublic().add(B.keyFromPublic({x:re.pubNonce.x,y:re.pubNonce.y}).getPublic());else{a="v1",e=await kE(s,{pub_key_X:Ae,pub_key_Y:E});const T=Z.add(e).umod(B.n);A=B.keyFromPrivate(T.toString(16,64),"hex").getPublic()}else{a="v1",e=await kE(s,{pub_key_X:Ae,pub_key_Y:E});const T=Z.add(e).umod(B.n);A=B.keyFromPrivate(T.toString(16,64),"hex").getPublic()}else a="v2",A=B.keyFromPublic({x:Ae,y:E}).getPublic().add(B.keyFromPublic({x:re.pubNonce.x,y:re.pubNonce.y}).getPublic()),n={X:re.pubNonce.x,Y:re.pubNonce.y};if(!A)throw new Error("Invalid public key, this might be a bug, please report this to web3auth team");let h="",c=!1;const C=wpe(I,Z),g=Sc(I,A.getX(),A.getY());let t="";if(a==="v1"?c=null:a==="v2"&&(c=e.eq(new cA("0"))),(a==="v1"||a==="v2"&&e.gt(new cA(0)))&&(t=Z.add(e).umod(B.n).toString("hex",64)),I===tr.SECP256K1)h=t;else if(I===tr.ED25519){if(t&&!re.seed)throw new Error("Invalid data, seed data is missing for ed25519 key, Please report this bug");t&&re.seed&&(h=(await Cpe(re.seed,new cA(t,"hex"))).toString("hex"))}else throw new Error(`Invalid keyType: ${I}`);let u=Z,b=Ae,R=E;if(I===tr.ED25519){const{scalar:T,point:V}=Mg(x);if(u=T,b=V.getX().toString(16,64),R=V.getY().toString(16,64),D.SignerX.padStart(64,"0")!==b||D.SignerY.padStart(64,"0")!==R)throw new Error("Invalid postbox key")}return{finalKeyData:{walletAddress:g,X:A.getX().toString(16,64),Y:A.getY().toString(16,64),privKey:h},oAuthKeyData:{walletAddress:C,X:Ae,Y:E,privKey:Z.toString("hex",64)},postboxKeyData:{privKey:u.toString("hex",64),X:b,Y:R},sessionData:{sessionTokenData:S,sessionAuthKey:l.toString("hex").padStart(64,"0")},metadata:{pubNonce:n,nonce:e,typeOfUser:a,upgraded:c,serverTimeOffset:j},nodesData:{nodeIndexes:K.map(T=>T.toNumber())}}})}async function cY(o){const{legacyMetadataHost:i,enableOneKey:s,ecCurve:f,keyType:l,allowHost:r,network:B,clientId:I,endpoints:p,nodePubkeys:Q,indexes:d,verifier:y,verifierParams:v,idToken:w,overrideExistingKey:M,newImportedShares:m,extraParams:x,useDkg:D=!0,serverTimeOffset:S,checkCommitment:K=!0}=o;await Pde(r,{headers:{verifier:y,verifierid:v.verifier_id,network:B,clientid:I,enablegating:"true"}},{useAPIKey:!0});const N=bAe(),L=IN(N).toString("hex"),j=L.slice(2,66),re=L.slice(66);let Z=[];const J=~~(p.length/2)+1;if((m==null?void 0:m.length)>0){if(m.length!==p.length)throw new Error("Invalid imported shares length");Z=m}else if(!D){const c=l===tr.SECP256K1?pN(f,Buffer):await nEe(32),C=await $Ae(f,l,S,d,Q,Buffer.from(c));Z=[...Z,...C]}let Ae=[],E;const e=[];if(K){Ae=await Dpe({idToken:w,endpoints:p,indexes:d,keyType:l,verifier:y,verifierParams:v,pubKeyX:j,pubKeyY:re,finalImportedShares:Z,overrideExistingKey:M});for(let c=0;cc&&c.pub_key_x),J)}else if(!K&&Z.length>0&&!M){var A,n;const c=await bpe({endpoints:p,verifier:y,verifierId:v.verifier_id,keyType:l});if(c.errorResult&&!((A=c.errorResult)!==null&&A!==void 0&&(A=A.data)!==null&&A!==void 0&&A.includes("Verifier + VerifierID has not yet been assigned")))throw new Error(`node results do not match at first lookup ${JSON.stringify(c.keyResult||{})}, ${JSON.stringify(c.errorResult||{})}`);((n=c.keyResult)===null||n===void 0||(n=n.keys)===null||n===void 0?void 0:n.length)>0&&(E=!!c.keyResult.keys[0])}const a=[],h=M||!D&&!E;if(h){const c=jAe(p,y,v.verifier_id),C=[];for(let t=0;tQa.error("share req",t));a.push(g)}else for(let c=0;c{const{verifier:i,verifierId:s,passkeyPubKey:f,endpoints:l,requiredNodeIndexes:r}=o,B=~~(l.length*3/4)+1;if(!s&&!f)throw new Error("Verifier ID or passkey pub key is required");const I=[];for(let p=0;p{Df(I,d=>{const y=d.filter(v=>!(!v||typeof v!="object"||v.error));if(y.length>=B)if(r.length>0){const v={};if(y.forEach(M=>{v[M.result.node_index]=!0}),r.filter(M=>v[M]?!1:M).length===0)return Promise.resolve(y)}else return Promise.resolve(y);return Promise.reject(new Error("Failed to get auth message from threshold number of nodes"))}).then(d=>{const y=d.map(v=>({message:v.result.message,nodeIndex:v.result.node_index}));return p(y)}).catch(Q)})},xpe=async o=>{const{endpoints:i,messages:s,label:f,passkeyPubKey:l,oAuthKeySignatures:r,keyType:B,sessionData:I,passkeyAuthData:p}=o,Q=~~(i.length/2)+1;if(!i||i.length{Df(d,w=>{const M=w.filter(m=>!(!m||typeof m!="object"||m.error));return M.length>=Q?Promise.resolve(M):Promise.reject(new Error("Failed to get auth message from threshold number of nodes"))}).then(w=>y(w)).catch(v)})},Rpe=async o=>{const{endpoints:i,messages:s,passkeyPubKey:f,oAuthKeySignatures:l,sessionData:r,keyType:B}=o,I=~~(i.length/2)+1;if(!i||i.length{Df(p,y=>{const v=y.filter(w=>!(!w||typeof w!="object"||w.error));return v.length>=I?Promise.resolve(v):Promise.reject(new Error("Failed to get auth message from threshold number of nodes"))}).then(y=>Q(y)).catch(d)})},kpe=async o=>{const{endpoints:i,messages:s,oAuthKeySignatures:f,keyType:l}=o,r=~~(i.length/2)+1;if(!i||i.length{Df(B,Q=>{const d=Q.filter(y=>!(!y||typeof y!="object"||y.error));if(d.length>=r){const y=new Map;d.forEach(w=>{(w.result.passkeys||[]).forEach(m=>{const x=y.get(m.passkey_pub_key);x?x.count++:y.set(m.passkey_pub_key,{count:1,passkey:m})})});const v=Array.from(y.values()).filter(w=>w.count>=r).map(w=>w.passkey);return Promise.resolve(v)}}).then(Q=>I(Q)).catch(p)})};async function Npe(o){const{endpoints:i,passkeyPublicKey:s,idToken:f,keyType:l,sessionExpSecond:r,extraParams:B,serverTimeOffset:I,ecCurve:p,network:Q}=o,d=bAe(),y=IN(d).toString("hex"),v=y.slice(2,66),w=y.slice(66),M=[],m=vr({},B);for(let x=0;x0;)y[v]=arguments[v+1];I&&I[d]&&I[d].apply(I,y)};"serviceWorker"in navigator&&i.then(function(){o()?(l(B,Q,p),navigator.serviceWorker.ready.then(function(d){Q("ready",d)}).catch(function(d){return s(Q,d)})):(f(B,Q,p),navigator.serviceWorker.ready.then(function(d){Q("ready",d)}).catch(function(d){return s(Q,d)}))})};function s(r,B){navigator.onLine||r("offline"),r("error",B)}function f(r,B,I){navigator.serviceWorker.register(r,I).then(function(p){if(B("registered",p),p.waiting){B("updated",p);return}p.onupdatefound=function(){B("updatefound",p);var Q=p.installing;Q.onstatechange=function(){Q.state==="installed"&&(navigator.serviceWorker.controller?B("updated",p):B("cached",p))}}}).catch(function(p){return s(B,p)})}function l(r,B,I){fetch(r).then(function(p){p.status===404?(B("error",new Error("Service worker not found at "+r)),unregister()):p.headers.get("content-type").indexOf("javascript")===-1?(B("error",new Error("Expected "+r+" to have javascript content-type, but received "+p.headers.get("content-type"))),unregister()):f(r,B,I)}).catch(function(p){return s(B,p)})}return wB.unregister=function(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(function(B){B.unregister()}).catch(function(B){return s(emit,B)})},wB}var Kpe=_pe();const Fpe=o=>new Promise((i,s)=>{const f=`${o}sw.js`;"serviceWorker"in window.navigator?Kpe.register(f,{ready(){OA.info(`App is being served from cache by a service worker. - For more details, visit https://goo.gl/AFskqB`),i(void 0)},registered(){OA.info("Service worker has been registered."),i(void 0)},cached(){OA.info("Content has been cached for offline use."),i(void 0)},updatefound(){OA.info("New content is downloading.")},updated(){OA.info("New content is available; please refresh.")},offline(){OA.info("No internet connection found. App is running in offline mode."),s(new Error("App is offline"))},error(l){OA.error("Error during service worker registration:",l),s(l)}}):s(new Error("Service workers are not supported"))});class Gpe{constructor(i){$e(this,"sentry",null),this.sentry=i}startSpan(i,s){return this.sentry?this.sentry.startSpan(i,s):s(null)}}const ere=async o=>{const i=o instanceof Error,s=typeof o=="string",f=o&&typeof o=="object"&&"status"in o&&"type"in o;let l;if(f){const r=o,B=r.headers.get("content-type");if(B.includes("application/json")){const I=await r.json();l=new Error((I==null?void 0:I.error)||(I==null?void 0:I.message)||JSON.stringify(I))}else B.includes("text/plain")?l=new Error(await r.text()):l=new Error(`${r.status} ${r.type.toString()} ${r.statusText}`)}else s?l=new Error(o):i?l=o:l=new Error("Unknown error");return l};class Lpe{constructor(i){$e(this,"currentStorageMethod",D0.LOCAL_STORAGE),$e(this,"isInitialized",!1),$e(this,"storageServerUrl","https://session.web3auth.io"),$e(this,"localStorageAvailable",!0),this.storageServerUrl=i}get storageMethodUsed(){return this.currentStorageMethod}init(){const i=_ge(),s=Rge(D0.LOCAL_STORAGE);this.localStorageAvailable=s,i&&s?this.currentStorageMethod=D0.LOCAL_STORAGE:this.currentStorageMethod=D0.SERVER,this.isInitialized=!0}async storeLoginDetails(i,s){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");if(this.currentStorageMethod===D0.SERVER){const f=pa(Buffer.from(s,"utf8")),l=f.toString("hex"),r=En(f).toString("hex"),B=await Dh(l,i),I=(await Mh(f,pa(Buffer.from(B,"utf8")))).toString("hex");await la(`${this.storageServerUrl}/store/set`,{key:r,data:B,signature:I})}this.localStorageAvailable&&window.localStorage.setItem(`torus_login_${s}`,JSON.stringify(i))}async retrieveLoginDetails(i){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");if(this.localStorageAvailable){const s=window.localStorage.getItem(`torus_login_${i}`);if(s)return JSON.parse(s||"{}")}if(this.currentStorageMethod===D0.SERVER){const s=pa(Buffer.from(i,"utf8")),f=s.toString("hex"),l=En(s).toString("hex");try{const r=await Oo(`${this.storageServerUrl}/store/get?key=${l}`);if(r.message)return await Ok(f,r.message)}catch(r){if(r.status===404)OA.warn(r,"Session likely expired");else throw r}}}clearLoginDetailsStorage(i){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");this.localStorageAvailable&&window.localStorage.removeItem(`torus_login_${i}`)}clearOrphanedLoginDetails(){if(!this.isInitialized)throw new Error("StorageHelper is not initialized");if(!this.localStorageAvailable)return;Object.keys(window.localStorage).forEach(s=>{s.startsWith("torus_login_")&&window.localStorage.removeItem(s)})}}const Upe=["access_token","id_token"],qpe=["access_token","id_token"],Hpe=["args","method"];class Tpe{constructor({baseUrl:i,network:s,enableLogging:f=!1,redirectToOpener:l=!1,redirectPathName:r="redirect",apiKey:B="torus-default",uxMode:I=ao.POPUP,locationReplaceOnRedirect:p=!1,popupFeatures:Q,storageServerUrl:d="https://session.web3auth.io",sentry:y,enableOneKey:v=!1,web3AuthClientId:w,useDkg:M,metadataUrl:m="https://metadata.tor.us",keyType:x="secp256k1",serverTimeOffset:D=0,nodeDetails:S,checkCommitment:K=!0}){if($e(this,"isInitialized",void 0),$e(this,"config",void 0),$e(this,"torus",void 0),$e(this,"nodeDetailManager",void 0),$e(this,"storageHelper",void 0),$e(this,"sentryHandler",void 0),!w)throw new Error("Please provide a valid web3AuthClientId in constructor");if(!s)throw new Error("Please provide a valid network in constructor");this.isInitialized=!1;const N=new URL(i);this.config={baseUrl:Op(N),get redirect_uri(){return`${this.baseUrl}${r}`},redirectToOpener:l,uxMode:I,locationReplaceOnRedirect:p,popupFeatures:Q,useDkg:M,web3AuthClientId:w,web3AuthNetwork:s,keyType:x,nodeDetails:S,checkCommitment:K};const L=new fo({network:s,enableOneKey:v,serverTimeOffset:D,clientId:w,legacyMetadataHost:m,keyType:x});fo.setAPIKey(B),this.torus=L,this.nodeDetailManager=new mde({network:s}),f?OA.enableAll():OA.disableAll(),this.storageHelper=new Lpe(d),this.sentryHandler=new Gpe(y)}async init({skipSw:i=!1,skipInit:s=!1,skipPrefetch:f=!1}={}){if(this.storageHelper.init(),s){this.isInitialized=!0;return}if(!i)if((await fetch(`${this.config.baseUrl}sw.js`,{cache:"reload"})).ok)try{await Fpe(this.config.baseUrl),this.isInitialized=!0;return}catch(r){OA.warn(r)}else throw new Error("Service worker is not being served. Please serve it");if(!f){if(Nge()){this.isInitialized=!0;return}await this.handlePrefetchRedirectUri();return}this.isInitialized=!0}async triggerLogin(i){const{verifier:s,typeOfLogin:f,clientId:l,jwtParams:r,hash:B,queryParameters:I,customState:p}=i;if(OA.info("Verifier: ",s),!this.isInitialized)throw new Error("Not initialized yet");const Q=lU({typeOfLogin:f,clientId:l,verifier:s,redirect_uri:this.config.redirect_uri,redirectToOpener:this.config.redirectToOpener,jwtParams:r,uxMode:this.config.uxMode,customState:p,web3AuthClientId:this.config.web3AuthClientId,web3AuthNetwork:this.config.web3AuthNetwork});let d;if(B&&I){const{error:w,hashParameters:M,instanceParameters:m}=aw(B,I);if(w)throw new Error(w);const{access_token:x,id_token:D}=M,S=Gc(M,Upe);d=Tt(Tt({accessToken:x,idToken:D},S),{},{state:m})}else if(this.storageHelper.clearOrphanedLoginDetails(),this.config.uxMode===ao.REDIRECT&&await this.storageHelper.storeLoginDetails({method:X0.TRIGGER_LOGIN,args:i},Q.nonce),d=await Q.handleLoginWindow({locationReplaceOnRedirect:this.config.locationReplaceOnRedirect,popupFeatures:this.config.popupFeatures}),this.config.uxMode===ao.REDIRECT)return null;const y=await Q.getUserInfo(d),v=await this.getTorusKey(s,y.verifierId,{verifier_id:y.verifierId},d.idToken||d.accessToken,y.extraVerifierParams);return Tt(Tt({},v),{},{userInfo:Tt(Tt({},y),d)})}async triggerAggregateLogin(i){const{aggregateVerifierType:s,verifierIdentifier:f,subVerifierDetailsArray:l}=i;if(!this.isInitialized)throw new Error("Not initialized yet");if(!s||!f||!Array.isArray(l))throw new Error("Invalid params. Missing aggregateVerifierType, verifierIdentifier or subVerifierDetailsArray");if(s===eee.SINGLE_VERIFIER_ID&&l.length!==1)throw new Error("Single id verifier can only have one sub verifier");const r=[],B=[];for(const m of l){const{clientId:x,typeOfLogin:D,verifier:S,jwtParams:K,hash:N,queryParameters:L,customState:j}=m,re=lU({typeOfLogin:D,clientId:x,verifier:S,redirect_uri:this.config.redirect_uri,redirectToOpener:this.config.redirectToOpener,jwtParams:K,uxMode:this.config.uxMode,customState:j,web3AuthClientId:this.config.web3AuthClientId,web3AuthNetwork:this.config.web3AuthNetwork});let Z;if(N&&L){const{error:J,hashParameters:Ae,instanceParameters:E}=aw(N,L);if(J)throw new Error(J);const{access_token:e,id_token:A}=Ae,n=Gc(Ae,qpe);Z=Tt(Tt({accessToken:e,idToken:A},n),{},{state:E})}else if(this.storageHelper.clearOrphanedLoginDetails(),this.config.uxMode===ao.REDIRECT&&await this.storageHelper.storeLoginDetails({method:X0.TRIGGER_AGGREGATE_LOGIN,args:i},re.nonce),Z=await re.handleLoginWindow({locationReplaceOnRedirect:this.config.locationReplaceOnRedirect,popupFeatures:this.config.popupFeatures}),this.config.uxMode===ao.REDIRECT)return null;r.push(re.getUserInfo(Z)),B.push(Z)}const p=(await Promise.all(r)).map(m=>Tt(Tt({},m),{},{aggregateVerifier:f})),Q={verify_params:[],sub_verifier_ids:[],verifier_id:""},d=[];let y="",v={};for(let m=0;mTt(Tt({},m),B[x]))})}async getTorusKey(i,s,f,l,r){const B=await this.sentryHandler.startSpan({name:v9.FETCH_NODE_DETAILS},async()=>this.config.nodeDetails?this.config.nodeDetails:this.nodeDetailManager.getNodeDetails({verifier:i,verifierId:s}));OA.debug("torus-direct/getTorusKey",{torusNodeEndpoints:B.torusNodeEndpoints});const I=await this.sentryHandler.startSpan({name:v9.FETCH_SHARES},async()=>this.torus.retrieveShares({endpoints:B.torusNodeEndpoints,indexes:B.torusIndexes,verifier:i,verifierParams:f,idToken:l,nodePubkeys:B.torusNodePub,extraParams:Tt({},r),useDkg:this.config.useDkg,checkCommitment:this.config.checkCommitment}));return OA.debug("torus-direct/getTorusKey",{retrieveShares:I}),I}async getAggregateTorusKey(i,s,f){const l={verify_params:[],sub_verifier_ids:[],verifier_id:""},r=[];let B={};for(let p=0;p{r[D]=x}),!l&&Object.keys(r).length===0)throw new Error("Found Empty hash and query parameters. This can happen if user reloads the page");const{error:B,instanceParameters:I,hashParameters:p}=aw(l,r),{instanceId:Q}=I;OA.info(Q,"instanceId");const y=await this.storageHelper.retrieveLoginDetails(Q)||{},{args:v,method:w}=y,M=Gc(y,Hpe);if(OA.info(v,w),B)return{error:B,state:I||{},method:w,result:{},hashParameters:p,args:v};let m;try{if(w===X0.TRIGGER_LOGIN){const x=v;x.hash=l,x.queryParameters=r,m=await this.triggerLogin(x)}else if(w===X0.TRIGGER_AGGREGATE_LOGIN){const x=v;x.subVerifierDetailsArray.forEach(D=>{D.hash=l,D.queryParameters=r}),m=await this.triggerAggregateLogin(x)}}catch(x){const D=await ere(x);return OA.error(D),s&&this.storageHelper.clearLoginDetailsStorage(Q),Tt({error:`${D.message||""}`,state:I||{},method:w,result:{},hashParameters:p,args:v},M)}if(!m)return Tt({error:`Init parameters not found. It might be because storage is not available. Please retry the login in a different browser. Used storage method: ${this.storageHelper.storageMethodUsed}`,state:I||{},method:w,result:{},hashParameters:p,args:v},M);if(i){const x=window.location.origin+window.location.pathname;window.history.replaceState(Tt(Tt({},window.history.state),{},{as:x,url:x}),"",x)}return s&&this.storageHelper.clearLoginDetailsStorage(Q),Tt({method:w,result:m,state:I||{},hashParameters:p,args:v},M)}async handlePrefetchRedirectUri(){return document?new Promise((i,s)=>{const f=document.createElement("link");f.href=this.config.redirect_uri,window.location.origin!==new URL(this.config.redirect_uri).origin&&(f.crossOrigin="anonymous"),f.type="text/html",f.rel="prefetch";const l=()=>{this.isInitialized=!0,i()};try{f.relList&&f.relList.supports&&f.relList.supports("prefetch")?(f.onload=l,f.onerror=()=>{s(new Error(`Please serve redirect.html present in serviceworker folder of this package on ${this.config.redirect_uri}`))},document.head.appendChild(f)):l()}catch{l()}}):Promise.resolve()}}var Ype=Tpe,Jpe=Pl();const Bt=gr(Jpe),DA=new Io.ec("secp256k1");async function xh(o,i){const s=await Hk(o,i);return{ciphertext:s.ciphertext.toString("hex"),ephemPublicKey:s.ephemPublicKey.toString("hex"),iv:s.iv.toString("hex"),mac:s.mac.toString("hex")}}async function Rh(o,i){const s={ciphertext:Buffer.from(i.ciphertext,"hex"),ephemPublicKey:Buffer.from(i.ephemPublicKey,"hex"),iv:Buffer.from(i.iv,"hex"),mac:Buffer.from(i.mac,"hex")};return eQ(o,s)}const Ppe=o=>o&&o.stack&&o.message!=="";async function eg(o){return Ppe(o)?o:ere(o)}function uf(o){const i=new Bt(qk());return o.find(s=>s.eq(i))?uf(o):i}const uR="KEY_NOT_FOUND",WC="SHARE_DELETED";function dY(o){return o.slice(0,2)==="0x"?o.slice(2):o}let Ope=class nf{constructor(i,s){$e(this,"x",void 0),$e(this,"y",void 0),this.x=new Bt(i,"hex"),this.y=new Bt(s,"hex")}static fromScalar(i,s){const f=s.g.mul(i);return nf.fromElliptic(f)}static fromCompressedPub(i){const f=DA.keyFromPublic(i,"hex").getPublic();return new nf(f.getX(),f.getY())}static fromJSON(i){const{x:s,y:f}=i;return new nf(s,f)}static fromElliptic(i){return i.isInfinity()?new nf(null,null):new nf(i.getX(),i.getY())}static fromSEC1(i,s){if(s.length===2&&s==="00"){const r=i.g.mul(new Bt(0));return nf.fromElliptic(r)}const l=i.keyFromPublic(s,"hex").getPublic();return nf.fromElliptic(l)}encode(i){switch(i){case"arr":return Buffer.concat([Buffer.from("0x04","hex"),Buffer.from(this.x.toString("hex"),"hex"),Buffer.from(this.y.toString("hex"),"hex")]);case"elliptic-compressed":{const f=DA.keyFromPublic({x:this.x.toString("hex"),y:this.y.toString("hex")},"hex");return Buffer.from(f.getPublic(!0,"hex"))}default:throw new Error("encoding doesnt exist in Point")}}toEllipticPoint(i){return this.isIdentity()?i.g.mul(new Bt(0)):i.keyFromPublic({x:this.x.toString("hex"),y:this.y.toString("hex")},"hex").getPublic()}toSEC1(i,s=!1){if(this.isIdentity())return Buffer.from("00","hex");const f=this.toEllipticPoint(i);return Buffer.from(f.encode("hex",s),"hex")}toJSON(){return{x:this.x.toString("hex"),y:this.y.toString("hex")}}isIdentity(){return this.x===null&&this.y===null}equals(i){return this.isIdentity()?i.isIdentity():this.x.eq(i.x)&&this.y.eq(i.y)}};var TA=Ope;const og=o=>DA.keyFromPrivate(o.toString("hex",64)),ou=o=>{const i=new Bt(o,"hex");return Buffer.from(i.toString("hex",64),"hex")},jpe=o=>DA.keyFromPrivate(o.toString("hex",64)).getPublic(),_E=o=>En(ou(o)),kh=o=>{const i=jpe(o);return new TA(i.getX().toString("hex"),i.getY().toString("hex"))};class vN{constructor(i){$e(this,"polynomialCommitments",void 0),$e(this,"polynomialId",void 0),this.polynomialCommitments=i}static fromJSON(i){const s=i.polynomialCommitments.map(f=>TA.fromJSON(f));return new vN(s)}getThreshold(){return this.polynomialCommitments.length}getPolynomialID(){let i="";for(let s=0;snew Bt(f,"hex")))}getThreshold(){return this.polynomial.length}polyEval(i){const s=new Bt(i,"hex");let f=new Bt(s),l=new Bt(0);l=l.add(this.polynomial[0]);for(let r=1;rtypeof l=="number"?new Bt(l):l instanceof Bt?l:typeof l=="string"?new Bt(l,"hex"):l),f={};for(let l=0;li.toString("hex"))}}}var rre=MN;class bN{constructor(i,s){$e(this,"share",void 0),$e(this,"polynomialID",void 0),this.share=i,this.polynomialID=s}static fromJSON(i){const{share:s,polynomialID:f}=i;return new bN(ag.fromJSON(s),f)}toJSON(){return{share:this.share,polynomialID:this.polynomialID.toString()}}}var Dr=bN;function Wpe(o,i){var s=Object.setPrototypeOf;s?s(o,i):o.__proto__=i}function Vpe(o,i){i===void 0&&(i=o.constructor);var s=Error.captureStackTrace;s&&s(o,i)}var Zpe=function(){var o=function(s,f){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,r){l.__proto__=r}||function(l,r){for(var B in r)Object.prototype.hasOwnProperty.call(r,B)&&(l[B]=r[B])},o(s,f)};return function(i,s){if(typeof s!="function"&&s!==null)throw new TypeError("Class extends value "+String(s)+" is not a constructor or null");o(i,s);function f(){this.constructor=i}i.prototype=s===null?Object.create(s):(f.prototype=s.prototype,new f)}}(),zpe=function(o){Zpe(i,o);function i(s,f){var l=this.constructor,r=o.call(this,s,f)||this;return Object.defineProperty(r,"name",{value:l.name,enumerable:!1,configurable:!0}),Wpe(r,l.prototype),Vpe(r),r}return i}(Error);class ire extends zpe{constructor(i,s){super(s),$e(this,"code",void 0),$e(this,"message",void 0),this.code=i,this.message=s||"",Object.defineProperty(this,"name",{value:"TkeyError"})}toJSON(){return{name:this.name,code:this.code,message:this.message}}toString(){return JSON.stringify(this.toJSON())}}const cR="__ONE_KEY_DELETE_NONCE__",$pe="noncev2";class No extends ire{constructor(i,s){super(i,s),Object.defineProperty(this,"name",{value:"ShareSerializationError"})}static fromCode(i,s=""){return new No(i,`${No.messages[i]}${s}`)}static default(i=""){return new No(7e3,`${No.messages[7e3]}${i}`)}static typeNotSupported(i=""){return No.fromCode(7010,i)}static invalidEntropy(i=""){return No.fromCode(7011,i)}static invalidChecksum(i=""){return No.fromCode(7012,i)}static invalidMnemonic(i=""){return No.fromCode(7013,i)}}$e(No,"messages",{7e3:"Custom",7010:"Type is not supported",7011:"Invalid Entropy",7012:"Invalid Checksum",7013:"Invalid mnemonic"});var Lo=No;const IY=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];function Xpe(o,i,s,f){if(typeof o.setBigUint64=="function")return o.setBigUint64(i,s,f);const l=BigInt(32),r=BigInt(4294967295),B=Number(s>>l&r),I=Number(s&r),p=f?4:0,Q=f?0:4;o.setUint32(i+p,B,f),o.setUint32(i+Q,I,f)}const eQe=(o,i,s)=>o&i^~o&s,tQe=(o,i,s)=>o&i^o&s^i&s;let AQe=class extends fte{constructor(i,s,f,l){super(),this.blockLen=i,this.outputLen=s,this.padOffset=f,this.isLE=l,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(i),this.view=Xm(this.buffer)}update(i){el(this);const{view:s,buffer:f,blockLen:l}=this;i=Pk(i);const r=i.length;for(let B=0;Bl-B&&(this.process(f,0),B=0);for(let y=B;yd.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;y>>3,m=Aa(w,17)^Aa(w,19)^w>>>10;zs[y]=m+zs[y-7]+M+zs[y-16]|0}let{A:f,B:l,C:r,D:B,E:I,F:p,G:Q,H:d}=this;for(let y=0;y<64;y++){const v=Aa(I,6)^Aa(I,11)^Aa(I,25),w=d+v+eQe(I,p,Q)+rQe[y]+zs[y]|0,m=(Aa(f,2)^Aa(f,13)^Aa(f,22))+tQe(f,l,r)|0;d=Q,Q=p,p=I,I=B+w|0,B=r,r=l,l=f,f=w+m|0}f=f+this.A|0,l=l+this.B|0,r=r+this.C|0,B=B+this.D|0,I=I+this.E|0,p=p+this.F|0,Q=Q+this.G|0,d=d+this.H|0,this.set(f,l,r,B,I,p,Q,d)}roundClean(){zs.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};const nQe=hte(()=>new iQe),oQe=dte(nQe);function aQe(o){return(o||"").normalize("NFKD")}function nre(o){return parseInt(o,2)}function ore(o,i,s){let f=o;for(;f.lengthore(i.toString(2),"0",8)).join("")}function sre(o){const s=o.length*8/32,f=oQe(o);return are(Array.from(f)).slice(0,s)}function sQe(o,i){let s;if(Buffer.isBuffer(o)||(s=Buffer.from(o,"hex")),s.length<16||s.length>32||s.length%4!==0)throw Lo.invalidEntropy();const f=are(Array.from(s)),l=sre(s),I=(f+l).match(/(.{1,11})/g).map(p=>{const Q=nre(p);return i[Q]});return i[0]==="あいこくしん"?I.join(" "):I.join(" ")}function fQe(o,i){const s=aQe(o).split(" ");if(s.length%3!==0)throw Lo.invalidMnemonic();const f=s.map(d=>{const y=i.indexOf(d);if(y===-1)throw Lo.invalidMnemonic();return ore(y.toString(2),"0",11)}).join(""),l=Math.floor(f.length/33)*32,r=f.slice(0,l),B=f.slice(l),I=r.match(/(.{1,8})/g).map(nre);if(I.length<16||I.length>32||I.length%4!==0)throw Lo.invalidEntropy();const p=Buffer.from(I);if(sre(p)!==B)throw Lo.invalidChecksum();return p.toString("hex")}const hQe="shareSerialization";class KE{constructor(){$e(this,"moduleName",void 0),$e(this,"tbSDK",void 0),this.moduleName=hQe}static serializeMnemonic(i){return sQe(i.toString("hex").padStart(64,"0"),IY)}static deserializeMnemonic(i){return new Bt(fQe(i,IY),"hex")}setModuleReferences(i){this.tbSDK=i,this.tbSDK._addShareSerializationMiddleware(this.serialize.bind(this),this.deserialize.bind(this))}async initialize(){}async serialize(i,s){if(s==="mnemonic")return KE.serializeMnemonic(i);throw Lo.typeNotSupported()}async deserialize(i,s){if(s==="mnemonic")return KE.deserializeMnemonic(i);throw Lo.typeNotSupported()}}var DN=KE;function gQe(o){return DN.deserializeMnemonic(o).toString("hex")}function BY(o){const i=new Bt(o,"hex");return DN.serializeMnemonic(i)}class SN{constructor({enableLogging:i=!1,postboxKey:s}){$e(this,"enableLogging",void 0),$e(this,"postboxKey",void 0),$e(this,"serviceProviderName",void 0),$e(this,"migratableKey",null),this.enableLogging=i,this.postboxKey=new Bt(s,"hex"),this.serviceProviderName="ServiceProviderBase"}static fromJSON(i){const{enableLogging:s,postboxKey:f,serviceProviderName:l}=i;if(l==="ServiceProviderBase")return new SN({enableLogging:s,postboxKey:f})}async encrypt(i){const s=this.retrievePubKey("ecc");return xh(s,i)}async decrypt(i){return Rh(ou(this.postboxKey),i)}retrievePubKeyPoint(){return og(this.postboxKey).getPublic()}retrievePubKey(i){if(i==="ecc")return _E(this.postboxKey);throw new Error("Unsupported pub key type")}sign(i){const s=new Bt(i,"hex"),f=og(this.postboxKey).sign(s.toString("hex"));return Buffer.from(f.r.toString(16,64)+f.s.toString(16,64)+new Bt(0).toString(16,2),"hex").toString("base64")}toJSON(){return{enableLogging:this.enableLogging,postboxKey:this.postboxKey.toString("hex"),serviceProviderName:this.serviceProviderName}}}var uQe=SN;class xN extends uQe{constructor({enableLogging:i=!1,postboxKey:s,customAuthArgs:f}){super({enableLogging:i,postboxKey:s}),$e(this,"customAuthInstance",void 0),$e(this,"singleLoginKey",void 0),$e(this,"torusKey",void 0),$e(this,"migratableKey",null),$e(this,"customAuthArgs",void 0),this.customAuthArgs=f,this.customAuthInstance=new Ype(f),this.serviceProviderName="TorusServiceProvider"}static fromJSON(i){const{enableLogging:s,postboxKey:f,customAuthArgs:l,serviceProviderName:r}=i;if(r==="TorusServiceProvider")return new xN({enableLogging:s,postboxKey:f,customAuthArgs:l})}async init(i){return this.customAuthInstance.init(i)}async triggerLogin(i){const s=await this.customAuthInstance.triggerLogin(i);if(s){const f=fo.getPostboxKey(s);if(this.torusKey=s,!s.metadata.upgraded){const{finalKeyData:l,oAuthKeyData:r}=s,B=l.privKey||r.privKey;this.migratableKey=new Bt(B,"hex")}this.postboxKey=new Bt(f,"hex")}return s}async triggerAggregateLogin(i){const s=await this.customAuthInstance.triggerAggregateLogin(i);if(s){const f=fo.getPostboxKey(s);if(this.torusKey=s,!s.metadata.upgraded){const{finalKeyData:l,oAuthKeyData:r}=s,B=l.privKey||r.privKey;this.migratableKey=new Bt(B,"hex")}this.postboxKey=new Bt(f,"hex")}return s}toJSON(){return Tt(Tt({},super.toJSON()),{},{serviceProviderName:this.serviceProviderName,customAuthArgs:this.customAuthArgs})}}var cQe=xN;const fre=(o,i)=>{let s=o;if(typeof s=="number"&&(s=Array.from({length:s},(r,B)=>B)),i>s.length||i<=0)return[];if(i===s.length)return[s];if(i===1)return s.reduce((r,B)=>[...r,[B]],[]);const f=[];let l=[];for(let r=0;r<=s.length-i+1;r+=1){l=fre(s.slice(r+1),i-1);for(let B=0;Bnew Bt(Q)),r=new Bt(s),B=new Bt(f);let I=new Bt(1),p=new Bt(1);for(let Q=0;Q({x:f.X,y:f.Y})),serverThreshold:Math.ceil(i.length/2)}}async getTSSPubKey(i,s){if(!this.verifierName||!this.verifierId)throw new Error("verifier userinfo not found, not logged in yet");const f=await this.customAuthInstance.nodeDetailManager.getNodeDetails({verifier:this.verifierName,verifierId:this.verifierId}),l=await this.customAuthInstance.torus.getPublicAddress(f.torusNodeSSSEndpoints,f.torusNodePub,{verifier:this.verifierName,verifierId:this.verifierId,extendedVerifierId:lQe(this.verifierId,i,s)});return{pubKey:new TA(l.finalKeyData.X,l.finalKeyData.Y),nodeIndexes:l.nodesData.nodeIndexes||[]}}getVerifierNameVerifierId(){return`${this.verifierName}${this.verifierId}`}async triggerLogin(i){const s=await super.triggerLogin(i);if(s){const{verifier:f,verifierId:l}=s.userInfo;this.verifierName=f,this.verifierId=l}return s}async triggerAggregateLogin(i){const s=await super.triggerAggregateLogin(i);if(s){const{verifier:f,verifierId:l}=s.userInfo[0];this.verifierName=f,this.verifierId=l}return s}}class cr extends ire{constructor(i,s){super(i,s),Object.defineProperty(this,"name",{value:"CoreError"})}static fromCode(i,s=""){return new cr(i,`${cr.messages[i]} ${s}`)}static default(i=""){return new cr(1e3,`${cr.messages[1e3]} ${i}`)}static metadataUndefined(i=""){return cr.fromCode(1101,i)}static delete1OutOf1OnlyManualSync(i=""){return cr.fromCode(1601,i)}static metadataGetFailed(i=""){return cr.fromCode(1102,i)}static metadataPostFailed(i=""){return cr.fromCode(1103,i)}static tkeyStoreInvalid(i=""){return cr.fromCode(1201,i)}static tkeyEncryptionFailed(i=""){return cr.fromCode(1202,i)}static tkeyDecryptionFailed(i=""){return cr.fromCode(1203,i)}static privateKeyUnavailable(i=""){return cr.fromCode(1301,i)}static unableToReconstruct(i=""){return cr.fromCode(1302,i)}static incorrectReconstruction(i=""){return cr.fromCode(1303,i)}static encryptedShareStoreUnavailable(i=""){return cr.fromCode(1306,i)}static acquireLockFailed(i=""){return cr.fromCode(1401,i)}static releaseLockFailed(i=""){return cr.fromCode(1402,i)}static privKeyUnavailable(i=""){return cr.fromCode(1501,i)}static metadataPubKeyUnavailable(i=""){return cr.fromCode(1502,i)}static authMetadataGetUnavailable(i=""){return cr.fromCode(1503,i)}static authMetadataSetUnavailable(i=""){return cr.fromCode(1504,i)}}$e(cr,"messages",{1e3:"Custom",1001:"Unable to delete service provider share",1002:"Wrong share index",1003:"Unable to updateSDK",1101:"metadata not found, SDK likely not initialized",1102:"getMetadata errored",1103:"setMetadata errored",1104:"previouslyFetchedCloudMetadata provided in initialization is outdated",1105:"previouslyFetchedCloudMetadata.nonce should never be higher than the latestShareDetails, please contact support",1201:"Invalid tkeyStore",1202:"Encryption failed",1203:"Decryption failed",1301:"Private key not available. Please reconstruct key first",1302:"Unable to reconstruct",1303:"reconstructed key is not pub key",1304:"Share found in unexpected polynomial",1305:"Input is not supported",1306:"no encrypted share store for share exists",1307:"Share doesn't exist",1308:"Share was deleted",1401:"Unable to acquire lock",1402:"Unable to release lock",1501:"privkey unavailable",1502:"metadata pubkey unavailable",1503:"getAuthMetadata errored",1504:"setAuthMetadata errored",1601:"delete1OutOf1 requires manualSync=true"});var Ct=cr;function RN(){return DA.genKeyPair().getPrivate()}const lR=o=>Array.from({length:o},()=>new Bt(0)),IQe=(o,i)=>{let s=new Bt(1);const f=i[o].x;for(let l=i.length-1;l>=0;l-=1)if(o!==l){let r=new Bt(f);r=r.sub(i[l].x),r=r.umod(DA.curve.n),s=s.mul(r),s=s.umod(DA.curve.n)}return s},BQe=(o,i)=>{let s=lR(i.length);const f=IQe(o,i);if(f.cmp(new Bt(0))===0)throw Ct.default("Denominator for interpolationPoly is 0");s[0]=f.invm(DA.curve.n);for(let l=0;l=0;B-=1){r[B+1]=r[B+1].add(s[B]),r[B+1]=r[B+1].umod(DA.curve.n);let I=new Bt(i[l].x);I=I.mul(s[B]),I=I.umod(DA.curve.n),r[B]=r[B].sub(I),r[B]=r[B].umod(DA.curve.n)}s=r}}return s},CQe=o=>{const i=[...o];return i.sort((s,f)=>s.x.cmp(f.x)),i},EQe=o=>{const i=CQe(o),s=lR(i.length);for(let f=0;fo)throw Ct.default("deterministicShares in generateRandomPolynomial should be less or equal than degree to ensure an element of randomness");const l={};s.forEach(r=>{l[r.shareIndex.toString("hex")]=new TA(r.shareIndex,r.share)});for(let r=0;rnew TA(D.x,D.y))}if(d){M.tssNonces={};for(const x in d)M.tssNonces[x]=d[x]}if(y){M.factorPubs={};for(const x in y)M.factorPubs[x]=y[x].map(D=>new TA(D.x,D.y))}v&&(M.factorEncs=v);for(let x=0;xJ==="0x0"),N=S.slice(0,K),L=S.slice(K+1,S.length),j=N.join("|"),re=[];N.forEach(J=>{re.push(TA.fromCompressedPub(J))});const Z=new tre(re);M.publicPolynomials[j]=Z,m.push([j,L])}return M.polyIDList=m,M}getShareIndexesForPolynomial(i){const s=this.polyIDList.filter(f=>f[0]===i);if(s.length<1)throw Ct.default("there is no matching polyID");if(s.length>1)throw Ct.default("there is more than one matching polyID");return s[0][1]}getLatestPublicPolynomial(){return this.publicPolynomials[this.polyIDList[this.polyIDList.length-1][0]]}addPublicShare(i,s){i in this.publicShares||(this.publicShares[i]={}),this.publicShares[i][s.shareIndex.toString("hex")]=s}setGeneralStoreDomain(i,s){this.generalStore[i]=s}getGeneralStoreDomain(i){return this.generalStore[i]}deleteGeneralStoreDomain(i){delete this.generalStore[i]}setTkeyStoreDomain(i,s){this.tkeyStore[i]=s}getTkeyStoreDomain(i){return this.tkeyStore[i]}addFromPolynomialAndShares(i,s){const f=i.getPublicPolynomial(),l=f.getPolynomialID();this.publicPolynomials[l]=f;const r=[];if(Array.isArray(s))for(let B=0;B-1)f[i].splice(l,1);else throw Ct.default(`No share description found for the given shareIndex: ${i} - and description: ${s}`)}updateShareDescription(i,s,f){const l=this.getGeneralStoreDomain("shareDescriptions"),r=l[i].indexOf(s);if(r>-1)l[i][r]=f;else throw Ct.default(`No share description found for the given shareIndex: - ${i} and description: ${s}`)}shareToShareStore(i){const s=kh(i);for(let f=this.polyIDList.length-1;f>=0;f-=1){const l=this.polyIDList[f][0];for(let r=0;rnew Bt(I,"hex").cmp(new Bt(p,"hex"))),B=f.split("|").concat("0x0").concat(...r).join("|");i.push(B)}return Tt(Tt(Tt(Tt(Tt({pubKey:this.pubKey.toSEC1(DA,!0).toString("hex"),polyIDList:i,scopedStore:this.scopedStore,generalStore:this.generalStore,tkeyStore:this.tkeyStore,nonce:this.nonce},this.tssKeyTypes&&{tssKeyTypes:this.tssKeyTypes}),this.tssNonces&&{tssNonces:this.tssNonces}),this.tssPolyCommits&&{tssPolyCommits:this.tssPolyCommits}),this.factorPubs&&{factorPubs:this.factorPubs}),this.factorEncs&&{factorEncs:this.factorEncs})}updateTSSData(i){const{tssKeyType:s,tssTag:f,tssNonce:l,tssPolyCommits:r,factorPubs:B,factorEncs:I}=i;s&&(this.tssKeyTypes[f]=s),l!==void 0&&(this.tssNonces[f]=l),r&&(this.tssPolyCommits[f]=r),B&&(this.factorPubs[f]=B),I&&(this.factorEncs[f]=I)}}var P0=FE;class kN{constructor(i,s){$e(this,"metadata",void 0),$e(this,"privKey",void 0),this.metadata=i,this.privKey=s}static fromJSON(i){const{data:s,sig:f}=i;if(!s)throw Ct.metadataUndefined();const l=P0.fromJSON(s);if(!l.pubKey)throw Ct.metadataPubKeyUnavailable();if(!DA.keyFromPublic(l.pubKey.toSEC1(DA)).verify(dY(Kr(Buffer.from(so(s),"utf8"))),f))throw Ct.default("Signature not valid for returning metadata");return new kN(l)}toJSON(){const i=this.metadata;if(!this.privKey)throw Ct.privKeyUnavailable();const f=og(this.privKey).sign(dY(Kr(Buffer.from(so(i),"utf8"))));return{data:i,sig:f.toDER("hex")}}}var R0=kN;async function yQe(o){return zle(o)}const Xb="ed25519Seed";class GE{constructor(i){$e(this,"modules",void 0),$e(this,"enableLogging",void 0),$e(this,"serviceProvider",void 0),$e(this,"storageLayer",void 0),$e(this,"shares",void 0),$e(this,"lastFetchedCloudMetadata",void 0),$e(this,"metadata",void 0),$e(this,"manualSync",void 0),$e(this,"_localMetadataTransitions",void 0),$e(this,"_refreshMiddleware",void 0),$e(this,"_reconstructKeyMiddleware",void 0),$e(this,"_shareSerializationMiddleware",void 0),$e(this,"storeDeviceShare",void 0),$e(this,"haveWriteMetadataLock",void 0),$e(this,"serverTimeOffset",0),$e(this,"privKey",void 0),$e(this,"_ed25519Seed",void 0);const{enableLogging:s=!1,modules:f={},serviceProvider:l,storageLayer:r,manualSync:B=!1,serverTimeOffset:I}=i||{};this.enableLogging=s,this.serviceProvider=l,this.storageLayer=r,this.modules=f,this.shares={},this.privKey=void 0,this.manualSync=B,this._refreshMiddleware={},this._reconstructKeyMiddleware={},this._shareSerializationMiddleware=void 0,this.storeDeviceShare=void 0,this._localMetadataTransitions=[[],[]],this.setModuleReferences(),this.haveWriteMetadataLock="",this.serverTimeOffset=I}get secp256k1Key(){return typeof this.privKey<"u"?this.privKey:null}get ed25519Key(){return typeof this._ed25519Seed<"u"?this._ed25519Seed:null}set secp256k1Key(i){this.privKey=i}set ed25519Key(i){this._ed25519Seed=i}static async fromJSON(i,s){const{enableLogging:f,privKey:l,metadata:r,shares:B,_localMetadataTransitions:I,manualSync:p,lastFetchedCloudMetadata:Q,serverTimeOffset:d}=i,{storageLayer:y,serviceProvider:v,modules:w}=s,M=new GE({enableLogging:f,storageLayer:y,serviceProvider:v,modules:w,manualSync:p,serverTimeOffset:d});l&&(M.privKey=new Bt(l,"hex"));for(const L in B)if(Object.prototype.hasOwnProperty.call(B,L)){const j=B[L];for(const re in j)if(Object.prototype.hasOwnProperty.call(j,re)){const Z=j[re];j[re]=Dr.fromJSON(Z)}}M.shares=B;const m=Object.keys(JSON.parse(so(new R0(new P0(new TA("0","0")),new Bt("0","hex"))))),x=Object.keys(JSON.parse(so(new Dr(new ag("0","0"),"")))),D={message:"Sample message",dateAdded:Date.now()},S=Object.keys(D),K=[],N=[];if(I[0].forEach((L,j)=>{L?K.push(new Bt(L,"hex")):K.push(void 0);const re=Object.keys(I[1][j]);if(re.length===m.length&&re.every(Z=>m.includes(Z))){const Z=R0.fromJSON(I[1][j]);Z.privKey=l,N.push(Z)}else if(re.length===x.length&&re.every(Z=>x.includes(Z)))N.push(Dr.fromJSON(I[1][j]));else if(re.length===S.length&&re.every(Z=>S.includes(Z)))N.push(I[1][j]);else throw Ct.default("fromJSON failed. Could not deserialise _localMetadataTransitions")}),r||Q){let L,j,re;if(M.serviceProvider.postboxKey.toString("hex")==="0"){const Z=P0.fromJSON(Q).getLatestPublicPolynomial().getPolynomialID(),J=Object.keys(B[Z]),Ae=J[Math.floor(Math.random()*(J.length-1))];J.length>=1&&(re=B[Z][Ae])}r&&(L=P0.fromJSON(r)),Q&&(j=P0.fromJSON(Q)),await M.initialize({neverInitializeNewKey:!0,transitionMetadata:L,previouslyFetchedCloudMetadata:j,previousLocalMetadataTransitions:[K,N],withShare:re})}else await M.initialize({neverInitializeNewKey:!0});return M}getStorageLayer(){return this.storageLayer}getMetadata(){if(typeof this.metadata<"u")return this.metadata;throw Ct.metadataUndefined()}async initialize(i){const s=i||{};if(s.delete1OutOf1&&!this.manualSync)throw Ct.delete1OutOf1OnlyManualSync();const{withShare:f,importKey:l,importEd25519Seed:r,neverInitializeNewKey:B,transitionMetadata:I,previouslyFetchedCloudMetadata:p,previousLocalMetadataTransitions:Q}=s,d=Q&&Q[0].length>0&&Q[1].length>0,y=I&&d,v=y&&p===void 0;let w;if(f instanceof Dr)w=f;else if(typeof f=="object")w=Dr.fromJSON(f);else{if(f)throw Ct.default("Input is not supported");{const S=v,K=v?Q:void 0,N=await this.getGenericMetadataWithTransitionStates({serviceProvider:this.serviceProvider,includeLocalMetadataTransitions:S,_localMetadataTransitions:K,fromJSONConstructor:{fromJSON(j){return j}}});if(N.message===uR){if(B)throw Ct.default("key has not been generated yet");if(this.serviceProvider.migratableKey&&!(l||r)){const j=this.manualSync;this.manualSync=!0,await this._initializeNewKey({initializeModules:!0,importedKey:this.serviceProvider.migratableKey,delete1OutOf1:!0}),j||await this.syncLocalMetadataTransitions(),this.manualSync=j}else await this._initializeNewKey({initializeModules:!0,importedKey:l,delete1OutOf1:s.delete1OutOf1,importEd25519Seed:r});return this.getKeyDetails()}w=Dr.fromJSON(N)}}let M,m,x;try{x=await this.catchupToLatestShare({shareStore:w})}catch(S){const K=S;if(!(K.code===1503)||!y)throw K}if(y&&!v){if(p.noncex.shareMetadata.nonce)throw Ct.fromCode(1105);m=p}else m=x?x.shareMetadata.clone():void 0;y?(M=I,this._localMetadataTransitions=Q):M=x.shareMetadata,this.lastFetchedCloudMetadata=m,this.metadata=M;const D=x?x.latestShare:w;if(this.inputShareStore(D),r&&this.getEd25519PublicKey())throw Ct.default("Ed25119 key already exists");return await this.initializeModules(),this.getKeyDetails()}async catchupToLatestShare(i){const{shareStore:s,polyID:f,includeLocalMetadataTransitions:l}=i;let r;try{r=await this.getAuthMetadata({privKey:s.share.share,includeLocalMetadataTransitions:l})}catch(B){const I=B;if(I&&I.code===1308)throw I;const p=await eg(I);throw Ct.authMetadataGetUnavailable(`, ${p.message}`)}try{if(f&&s.polynomialID===f)return{latestShare:s,shareMetadata:r};const B=await r.getEncryptedShare(s);return await this.catchupToLatestShare({shareStore:B,polyID:f,includeLocalMetadataTransitions:l})}catch(B){const I=B;if(I&&I.code===1308)throw I;return{latestShare:s,shareMetadata:r}}}async reconstructKey(i=!0){if(!this.metadata)throw Ct.metadataUndefined();const s=this.metadata.getLatestPublicPolynomial(),f=s.getThreshold(),l=s.getPolynomialID();let r=f;const B=this.metadata.getShareIndexesForPolynomial(l),I={};for(let m=0;m=0&&r>0;m-=1){const x=this.shares[this.metadata.polyIDList[m][0]];if(x){const D=Object.keys(x);for(let S=0;S0;S+=1)if(D[S]in I){const K=x[D[S]];if(K.polynomialID===l)p.push(K);else{const N=await this.catchupToLatestShare({shareStore:K,polyID:l,includeLocalMetadataTransitions:!0});if(N.latestShare.polynomialID===l)p.push(N.latestShare);else throw new Ct(1304,"Share found in unexpected polynomial")}delete I[D[S]],r-=1}}}if(p.forEach(m=>{this.inputShareStore(m)}),r>0)throw Ct.unableToReconstruct(` require ${f} but have ${f-r}`);const Q=Object.keys(this.shares[l]),d=[],y=[];for(let m=0;m0&&await Promise.all(Object.keys(this._reconstructKeyMiddleware).map(async m=>{if(Object.prototype.hasOwnProperty.call(this._reconstructKeyMiddleware,m)){const x=await this._reconstructKeyMiddleware[m]();M[m]=x,M.allKeys.push(...x)}})),this.getEd25519PublicKey()){const m=await this.retrieveEd25519Seed();if(!m)throw Ct.default("Ed25519 seed not found");this._ed25519Seed=m}return Tt({secp256k1Key:v,ed25519Seed:this._ed25519Seed},M)}reconstructLatestPoly(){if(!this.metadata)throw Ct.metadataUndefined();const i=this.metadata.getLatestPublicPolynomial(),s=i.getPolynomialID(),f=i.getThreshold(),l=[],r=Object.keys(this.shares[s]);if(r.length{const y=new Bt(d,"hex");y.cmp(s)!==0&&I.push(y.toString("hex"))}),B.length===I.length)throw Ct.default("Share index does not exist in latest polynomial");if(I.lengthnew Bt(p,"hex")),r=new Bt(uf(l));return{newShareStores:(await this._refreshShares(i.getThreshold(),[...f,r.toString("hex")],s)).shareStores,newShareIndex:r}}getEd25519PublicKey(){if(!this.metadata)throw Ct.metadataUndefined();const i=this.metadata.getGeneralStoreDomain(Xb);return i==null?void 0:i.publicKey}async retrieveEd25519Seed(){if(!this.metadata)throw Ct.metadataUndefined();if(!this.privKey)throw Ct.privateKeyUnavailable();const i=this.metadata.getGeneralStoreDomain(Xb),s=await this.decrypt(i.message);return this._ed25519Seed=s,s}async addLocalMetadataTransitions(i){const{privKey:s,input:f}=i;this._localMetadataTransitions[0]=[...this._localMetadataTransitions[0],...s],this._localMetadataTransitions[1]=[...this._localMetadataTransitions[1],...f],this.manualSync||await this.syncLocalMetadataTransitions()}async syncLocalMetadataTransitions(){if(!this.metadata)throw Ct.metadataUndefined();if(!(Array.isArray(this._localMetadataTransitions[0])&&this._localMetadataTransitions[0].length>0))return;let i=!1;this.lastFetchedCloudMetadata&&(await this.acquireWriteMetadataLock(),i=!0);try{await this.storageLayer.setMetadataStream({input:this._localMetadataTransitions[1],privKey:this._localMetadataTransitions[0],serviceProvider:this.serviceProvider}),this._localMetadataTransitions=[[],[]],this.lastFetchedCloudMetadata=this.metadata.clone()}catch(s){const f=await eg(s);throw Ct.metadataPostFailed(f.message)}finally{i&&await this.releaseWriteMetadataLock()}}async readMetadata(i){return this.storageLayer.getMetadata({privKey:i})}async updateSDK(i){const s=new GE({enableLogging:this.enableLogging,modules:this.modules,serviceProvider:this.serviceProvider,storageLayer:this.storageLayer,manualSync:this.manualSync});try{await s.initialize({neverInitializeNewKey:!0,withShare:i&&i.withShare})}catch(B){throw Ct.fromCode(1103,`${B.message}`)}const f=s.metadata.polyIDList;let l;Object.keys(this.shares).forEach(B=>{f.find(I=>I[0]===B)?l=B:delete this.shares[B]});const r=Object.keys(this.shares[l]).map(B=>s.inputShareStoreSafe(this.outputShareStore(B,l)));return await Promise.all(r),s}inputShareStore(i){let s;if(i instanceof Dr)s=i;else if(typeof i=="object")s=Dr.fromJSON(i);else throw Ct.default("can only add type ShareStore into shares");s.polynomialID in this.shares||(this.shares[s.polynomialID]={}),this.shares[s.polynomialID][s.share.shareIndex.toString("hex")]=s}async inputShareStoreSafe(i,s=!1){if(!this.metadata)throw Ct.metadataUndefined();let f;if(i instanceof Dr)f=i;else if(typeof i=="object")f=Dr.fromJSON(i);else throw Ct.default("can only add type ShareStore into shares");const l=this.metadata.getLatestPublicPolynomial().getPolynomialID();if(f.polynomialID!==l){const r=await this.catchupToLatestShare({shareStore:f,includeLocalMetadataTransitions:!0});if(!r.shareMetadata.polyIDList.find(B=>B[0]===l))throw Ct.fromCode(1307);if(l!==r.latestShare.polynomialID)if(s)this.metadata=r.shareMetadata;else throw Ct.default(`TKey SDK metadata seems to be outdated because shareIndex: ${r.latestShare.share.shareIndex.toString("hex")} has a more recent metadata. Please call updateSDK first`);r.latestShare.polynomialID in this.shares||(this.shares[r.latestShare.polynomialID]={}),this.shares[r.latestShare.polynomialID][r.latestShare.share.shareIndex.toString("hex")]=r.latestShare}else f.polynomialID in this.shares||(this.shares[f.polynomialID]={}),this.shares[f.polynomialID][f.share.shareIndex.toString("hex")]=f}outputShareStore(i,s){if(!this.metadata)throw Ct.metadataUndefined();let f;typeof i=="number"?f=new Bt(i):Bt.isBN(i)?f=i:typeof i=="string"&&(f=new Bt(i,"hex"));let l;if(s?l=s:l=this.metadata.getLatestPublicPolynomial().getPolynomialID(),!this.metadata.getShareIndexesForPolynomial(l).includes(f.toString("hex")))throw new Ct(1002,"no such share index created");const r=this.shares[l][f.toString("hex")];if(r)return r;const I=this.reconstructLatestPoly().generateShares([f]);return new Dr(I[f.toString("hex")],l)}getCurrentShareIndexes(){if(!this.metadata)throw Ct.metadataUndefined();const s=this.metadata.getLatestPublicPolynomial().getPolynomialID();return Object.keys(this.shares[s])}getKeyDetails(){if(!this.metadata)throw Ct.metadataUndefined();const i=this.metadata.getLatestPublicPolynomial(),s=i.getPolynomialID(),f=i.getThreshold()-Object.keys(this.shares[s]).length;let l=this.metadata.getShareDescription();if(l){const r=this.metadata.getShareIndexesForPolynomial(s);l=Object.keys(l).reduce((B,I)=>(r.indexOf(I)>=0&&(B[I]=l[I]),B),{})}return{pubKey:this.metadata.pubKey,ed25519PublicKey:this.getEd25519PublicKey(),requiredShares:f,threshold:i.getThreshold(),totalShares:this.metadata.getShareIndexesForPolynomial(s).length,shareDescriptions:l}}generateAuthMetadata(i){const{input:s}=i,f=[];for(let l=0;l=0;r-=1){const B=f[0][r];if((i.privKey&&B&&B.cmp(i.privKey)===0||i.serviceProvider&&!B)&&(l=r),l!==null)break}if(l!==null)return f[1][l]}let s;try{s=await this.storageLayer.getMetadata(i)}catch(f){const l=await eg(f);throw Ct.metadataGetFailed(l.message)}if(s.message===WC)throw Ct.fromCode(1308);return i.fromJSONConstructor.fromJSON(s)}async acquireWriteMetadataLock(){if(this.haveWriteMetadataLock)return this.metadata.nonce;if(!this.privKey)throw Ct.privateKeyUnavailable();let i;const s=this.lastFetchedCloudMetadata.getLatestPublicPolynomial().getPolynomialID(),f=Object.keys(this.shares[s]),l=f[Math.floor(Math.random()*(f.length-1))];f.length>=1?i=this.shares[s][l]:i=this.outputShareStore(l,s);const B=(await this.catchupToLatestShare({shareStore:i})).shareMetadata;if(B.nonce>this.lastFetchedCloudMetadata.nonce)throw Ct.acquireLockFailed(`unable to acquire write access for metadata due to - lastFetchedCloudMetadata (${this.lastFetchedCloudMetadata.nonce}) - being lower than last written metadata nonce (${B.nonce}). perhaps update metadata SDK (create new tKey and init)`);if(B.noncef.share.share);await this.syncMultipleShareMetadata(s,i)}async syncMultipleShareMetadata(i,s){if(!this.metadata)throw Ct.metadataUndefined();this.metadata.nonce+=1;const f=i.map(async r=>{const B=this.metadata.clone();let I;try{I=await this.getAuthMetadata({privKey:r,includeLocalMetadataTransitions:!0})}catch(Q){const d=await eg(Q);throw Ct.authMetadataGetUnavailable(d.message)}let p;return s?p=s(I.scopedStore):p=I.scopedStore,B.scopedStore=p,B}),l=await Promise.all(f);return this.setAuthMetadataBulk({input:l,privKey:i})}_addRefreshMiddleware(i,s){this._refreshMiddleware[i]=s}_addReconstructKeyMiddleware(i,s){this._reconstructKeyMiddleware[i]=s}_addShareSerializationMiddleware(i,s){this._shareSerializationMiddleware={serialize:i,deserialize:s}}_setDeviceStorage(i){if(this.storeDeviceShare)throw Ct.default("storeDeviceShare already set");this.storeDeviceShare=i}async addShareDescription(i,s,f){if(!this.metadata)throw Ct.metadataUndefined();this.metadata.addShareDescription(i,s),f&&await this._syncShareMetadata()}async deleteShareDescription(i,s,f){if(!this.metadata)throw Ct.metadataUndefined();this.metadata.deleteShareDescription(i,s),f&&await this._syncShareMetadata()}async updateShareDescription(i,s,f,l){if(!this.metadata)throw Ct.metadataUndefined();this.metadata.updateShareDescription(i,s,f),l&&await this._syncShareMetadata()}async encrypt(i){if(!this.privKey)throw Ct.privateKeyUnavailable();return xh(_E(this.privKey),i)}async decrypt(i){if(!this.privKey)throw Ct.privateKeyUnavailable();return Rh(ou(this.privKey),i)}async _setTKeyStoreItem(i,s){if(!this.metadata)throw Ct.metadataUndefined();const f=this.metadata.getTkeyStoreDomain(i)||[],l=await Promise.all(f.map(async I=>{const p=await this.decrypt(I);return JSON.parse(p.toString())})),r=await this.encrypt(Buffer.from(so(s))),B=l.findIndex(I=>I.id===s.id);B>-1?f[B]=r:f.push(r),this.metadata.setTkeyStoreDomain(i,f),await this._syncShareMetadata()}async _deleteTKeyStoreItem(i,s){if(!this.metadata)throw Ct.metadataUndefined();const f=this.metadata.getTkeyStoreDomain(i)||[],r=(await Promise.all(f.map(async B=>{const I=await this.decrypt(B);return JSON.parse(I.toString())}))).filter(B=>B.id!==s);this.metadata.setTkeyStoreDomain(i,r),await this._syncShareMetadata()}async getTKeyStore(i){if(!this.metadata)throw Ct.metadataUndefined();const s=this.metadata.getTkeyStoreDomain(i)||[];return await Promise.all(s.map(async l=>{const r=await this.decrypt(l);return JSON.parse(r.toString())}))}async getTKeyStoreItem(i,s){if(!this.metadata)throw Ct.metadataUndefined();const f=this.metadata.getTkeyStoreDomain(i)||[];return(await Promise.all(f.map(async B=>{const I=await this.decrypt(B);return JSON.parse(I.toString())}))).find(B=>B.id===s)}async outputShare(i,s){const{share:f}=this.outputShareStore(i).share;return s?this._shareSerializationMiddleware.serialize(f,s):f}async inputShare(i,s){if(!this.metadata)throw Ct.metadataUndefined();let f;if(!s)f=this.metadata.shareToShareStore(i);else{const I=await this._shareSerializationMiddleware.deserialize(i,s);f=this.metadata.shareToShareStore(I)}const r=this.metadata.getLatestPublicPolynomial().getPolynomialID();if(!this.metadata.getShareIndexesForPolynomial(r).includes(f.share.shareIndex.toString("hex")))throw Ct.default("Latest poly doesn't include this share");await this.inputShareStoreSafe(f)}toJSON(){return{shares:this.shares,enableLogging:this.enableLogging,privKey:this.privKey?this.privKey.toString("hex"):void 0,metadata:this.metadata,lastFetchedCloudMetadata:this.lastFetchedCloudMetadata,_localMetadataTransitions:this._localMetadataTransitions,manualSync:this.manualSync,serviceProvider:this.serviceProvider,storageLayer:this.storageLayer}}getAllShareStoresForLatestPolynomial(){const i=this.metadata.getLatestPublicPolynomial(),s=i.getPolynomialID(),f=this.metadata.getShareIndexesForPolynomial(s),l=i.getThreshold(),r=[],B=Object.keys(this.shares[s]);if(B.lengththis.metadata.shareToShareStore(p[d].share))}async CRITICAL_deleteTkey(){if(!this.metadata)throw Ct.metadataUndefined();if(!this.privKey)throw Ct.privateKeyUnavailable();if(this._localMetadataTransitions[0].length>0||this._localMetadataTransitions[1].length>0)throw Ct.default("Please sync all local state before calling this function");const i=this.getAllShareStoresForLatestPolynomial();await this.addLocalMetadataTransitions({input:[...Array(i.length).fill({message:WC,dateAdded:Date.now()}),{message:uR}],privKey:[...i.map(s=>s.share.share),void 0]}),await this.syncLocalMetadataTransitions(),this.privKey=void 0,this.metadata=void 0,this.shares={},this.lastFetchedCloudMetadata=void 0}getApi(){return{getMetadata:this.getMetadata.bind(this),getStorageLayer:this.getStorageLayer.bind(this),initialize:this.initialize.bind(this),catchupToLatestShare:this.catchupToLatestShare.bind(this),_syncShareMetadata:this._syncShareMetadata.bind(this),_addRefreshMiddleware:this._addRefreshMiddleware.bind(this),_addReconstructKeyMiddleware:this._addReconstructKeyMiddleware.bind(this),_addShareSerializationMiddleware:this._addShareSerializationMiddleware.bind(this),addShareDescription:this.addShareDescription.bind(this),generateNewShare:this.generateNewShare.bind(this),inputShareStore:this.inputShareStore.bind(this),inputShareStoreSafe:this.inputShareStoreSafe.bind(this),outputShareStore:this.outputShareStore.bind(this),inputShare:this.inputShare.bind(this),outputShare:this.outputShare.bind(this),_setDeviceStorage:this._setDeviceStorage.bind(this),encrypt:this.encrypt.bind(this),decrypt:this.decrypt.bind(this),getTKeyStore:this.getTKeyStore.bind(this),getTKeyStoreItem:this.getTKeyStoreItem.bind(this),_setTKeyStoreItem:this._setTKeyStoreItem.bind(this),_deleteTKeyStoreItem:this._deleteTKeyStoreItem.bind(this),deleteShare:this.deleteShare.bind(this)}}setModuleReferences(){Object.keys(this.modules).map(i=>this.modules[i].setModuleReferences(this.getApi()))}async initializeModules(){return Promise.all(Object.keys(this.modules).map(i=>this.modules[i].initialize()))}async _refreshShares(i,s,f){if(!this.metadata)throw Ct.metadataUndefined();if(!this.privKey)throw Ct.privateKeyUnavailable();if(i>s.length)throw Ct.default(`threshold should not be greater than share indexes. ${i} > ${s.length}`);this.metadata.nonce+=1;const l=$b(i-1,this.privKey),r=l.generateShares(s),B=this.metadata.getShareIndexesForPolynomial(f),I=[],p=Object.keys(this.shares[f]);if(p.length{v[L]=new Dr(r[L],w)});const M=this.metadata.clone(),m={},x=await Promise.all(d.map(async L=>{const j=Q.polyEval(new Bt(L,"hex")),re=await xh(_E(j),Buffer.from(JSON.stringify(v[L])));return m[kh(j).x.toString("hex")]=re,y[L]=new Dr(new ag(L,j),f),j}));M.setScopedStore("encryptedShares",m);const D=Array(x.length).fill(M);for(const L in this._refreshMiddleware)if(Object.prototype.hasOwnProperty.call(this._refreshMiddleware,L)){const j=this._refreshMiddleware[L](this.metadata.getGeneralStoreDomain(L),y,v);j?this.metadata.setGeneralStoreDomain(L,j):this.metadata.deleteGeneralStoreDomain(L)}const S=[],K=s.map(L=>{const j=this.metadata.clone();return S.push(j),v[L].share.share}),N=this.generateAuthMetadata({input:[...D,...S]});await this.addLocalMetadataTransitions({input:[...N,v[1]],privKey:[...x,...K,void 0]});for(let L=0;L(w.push(this.metadata),Q[D.toString("hex")].share)),m=this.generateAuthMetadata({input:w});await this.addLocalMetadataTransitions({input:[...m,v],privKey:[...M,void 0]}),r&&await this.addLocalMetadataTransitions({input:[{message:cR}],privKey:[this.serviceProvider.postboxKey]});for(let D=0;Do.length)throw new Error("trying to select more elements than available");const s=[],f=o.slice();for(;s.lengthnew Bt(Q)),r=new Bt(i),B=new Bt(s);let I=new Bt(1),p=new Bt(1);for(let Q=0;Q{const n=this.serverEndpoints[A-1];return uc(n,"/rss_round_1",{round_name:"rss_round_1",server_set:"new",server_index:A,new_servers_info:Q,user_temp_pubkey:Bi(this.tempPubKey),target_index:B,auth:{label:f,sigs:l},key_type:this.keyType})}),y=B.map(A=>Xf([0,1],0,A,this.ecCurve.n).umod(this.ecCurve.n)),v=[],w=[],M=[],m=[],x=()=>this.ecCurve.genKeyPair().getPrivate();for(let A=0;A{const C=this.ecCurve.g.mul(c);return Bi(C)}));const h=mB(Q.threshold-1,N0(a,1,this.ecCurve.n),x);M.push(h),m.push(h.map(c=>Bi(this.ecCurve.g.mul(c))))}const D=[],S=[];for(let A=0;A{A({target_index:B,data:K})}));const N=await Promise.all(d),L=B.map((A,n)=>{for(let c=0;cln(this.ecCurve,u)),h=t.map(u=>ln(this.ecCurve,u));continue}a=a.map((u,b)=>ln(this.ecCurve,g[b]).add(u)),h=h.map((u,b)=>ln(this.ecCurve,t[b]).add(u))}return{mc:a,sc:h}});B.map((A,n)=>{const{mc:a,sc:h}=L[n],c=ln(this.ecCurve,r).mul(Xf([1,A],1,0,this.ecCurve.n)),C=a[0].mul(Xf([1,A],A,0,this.ecCurve.n));if(!c.add(C).eq(this.tssPubKey))throw new Error("master poly commits inconsistent with tssPubKey");if(!a[0].add(a[1]).eq(h[0]))throw new Error("server poly commits inconsistent with master poly commits");return null});const j=Buffer.from(this.tempPrivKey.toString(16,64),"hex"),re=[];for(let A=0;At.data[A].target_encryptions.user_enc),h=(await Promise.all(n.map(t=>QY(j,t)))).map(t=>new Bt(t)).reduce((t,u)=>t.add(u).umod(this.ecCurve.n),new Bt(0)),{mc:c}=L[A],C=this.ecCurve.g.mul(h),g=c[0].add(c[1].mul(new Bt(99)));if(!C.eq(g))throw new Error("decrypted user shares inconsistent with poly commits");re.push(h)}const Z=await Promise.all(re.map((A,n)=>{const a=p[n];return k0(Buffer.from(`04${a.x.padStart(64,"0")}${a.y.padStart(64,"0")}`,"hex"),Buffer.from(A.toString(16,64),"hex"))})),J=B.map((A,n)=>{const a=N.map(c=>c.data[n].target_encryptions.server_encs),h=[];for(let c=0;cn+1),E=await Promise.all(Ae.map(A=>{const n=[];B.map((h,c)=>{const{mc:C,sc:g}=L[c],t={master_commits:C.map(Bi),server_commits:g.map(Bi),server_encs:J[c][A-1],factor_pubkeys:[p[c]]};return n.push(t),null});const a=this.serverEndpoints[A-1];return uc(a,"/rss_round_2",{round_name:"rss_round_2",server_index:A,target_index:B,data:n,key_type:this.keyType}).catch(h=>hs.error(h))}));if(E.filter(A=>A).lengthn&&n.data[A].encs[0]),userFactorEnc:Z[A]});return e}async refresh(i){const{targetIndexes:s,inputIndex:f,selectedServers:l,oldLabel:r,newLabel:B,sigs:I,dkgNewPub:p,inputShare:Q,factorPubs:d}=i;if(d.length!==s.length)throw new Error("inconsistent factorPubs and targetIndexes lengths");const y={pubkeys:this.serverPubKeys,selected:l,threshold:this.serverThreshold},v=l.map(h=>{const c=this.serverEndpoints[h-1];return uc(c,"/rss_round_1",{round_name:"rss_round_1",server_set:"old",server_index:h,old_servers_info:y,new_servers_info:y,old_user_share_index:f,user_temp_pubkey:Bi(this.tempPubKey),target_index:s,auth:{label:r,sigs:I},key_type:this.keyType})}).concat(l.map(h=>{const c=this.serverEndpoints[h-1];return uc(c,"/rss_round_1",{round_name:"rss_round_1",server_set:"new",server_index:h,old_servers_info:y,new_servers_info:y,old_user_share_index:f,user_temp_pubkey:Bi(this.tempPubKey),target_index:s,auth:{label:B,sigs:I},key_type:this.keyType})})),w=Xf([1,f],f,0,this.ecCurve.n),M=s.map(h=>w.mul(Xf([0,1],0,h,this.ecCurve.n)).umod(this.ecCurve.n)),m=[],x=[],D=[],S=[],K=()=>this.ecCurve.genKeyPair().getPrivate();for(let h=0;h{const u=this.ecCurve.g.mul(t);return Bi(u)}));const g=mB(y.threshold-1,N0(C,1,this.ecCurve.n),K);D.push(g),S.push(g.map(t=>Bi(this.ecCurve.g.mul(t))))}const N=[],L=[];for(let h=0;h{h({target_index:s,data:j})}));const re=await Promise.all(v),Z=s.map((h,c)=>{for(let t=0;tln(this.ecCurve,T)),g=R.map(T=>ln(this.ecCurve,T));continue}C=C.map((T,V)=>ln(this.ecCurve,b[V]).add(T)),g=g.map((T,V)=>ln(this.ecCurve,R[V]).add(T))}return{mc:C,sc:g}});s.map((h,c)=>{const{mc:C,sc:g}=Z[c],t=ln(this.ecCurve,p).mul(Xf([1,h],1,0,this.ecCurve.n)),u=C[0].mul(Xf([1,h],h,0,this.ecCurve.n));if(!t.add(u).eq(this.tssPubKey))throw new Error("master poly commits inconsistent with tssPubKey");if(!C[0].add(C[1]).eq(g[0]))throw new Error("server poly commits inconsistent with master poly commits");return null});const J=Buffer.from(this.tempPrivKey.toString(16,64),"hex"),Ae=[];for(let h=0;hR.data[h].target_encryptions.user_enc),g=(await Promise.all(c.map(R=>QY(J,R)))).map(R=>new Bt(R)).reduce((R,T)=>R.add(T).umod(this.ecCurve.n),new Bt(0)),{mc:t}=Z[h],u=this.ecCurve.g.mul(g),b=t[0].add(t[1].mul(new Bt(99)));if(!u.eq(b))throw new Error("decrypted user shares inconsistent with poly commits");Ae.push(g)}const E=await Promise.all(Ae.map((h,c)=>{const C=d[c];return k0(Buffer.from(`04${C.x.padStart(64,"0")}${C.y.padStart(64,"0")}`,"hex"),Buffer.from(h.toString(16,64),"hex"))})),e=s.map((h,c)=>{const C=re.map(t=>t.data[c].target_encryptions.server_encs),g=[];for(let t=0;tc+1),n=await Promise.all(A.map(h=>{const c=[];s.map((g,t)=>{const{mc:u,sc:b}=Z[t],R={master_commits:u.map(Bi),server_commits:b.map(Bi),server_encs:e[t][h-1],factor_pubkeys:[d[t]]};return c.push(R),null});const C=this.serverEndpoints[h-1];return uc(C,"/rss_round_2",{round_name:"rss_round_2",server_index:h,target_index:s,data:c,key_type:this.keyType}).catch(g=>hs.error(g))}));if(n.filter(h=>h).lengthc&&c.data[h].encs[0]),userFactorEnc:E[h]});return a}}const MB="tssModule",wY="default",wQe="secp256k1",or=new Io.ec(wQe),mY="secp256k1";class mQe extends vQe{constructor(i){super(i),$e(this,"serviceProvider",null),$e(this,"_tssKeyType",void 0),$e(this,"_tssCurve",void 0),$e(this,"_tssTag",void 0),$e(this,"_accountSalt",void 0);const{serviceProvider:s,storageLayer:f,tssTag:l="default",tssKeyType:r}=i;if(s.customAuthArgs.keyType!==r)throw Ct.default(`service provider keyType mismatch: ${s.customAuthArgs.keyType} !== ${r}`);this.serviceProvider=s,this.storageLayer=f,this._tssTag=l,this._tssKeyType=r,this._tssCurve=new Io.ec(r)}get tssTag(){return this._tssTag}get tssKeyType(){return this._tssKeyType}get tssCurve(){return this._tssCurve}set tssTag(i){if((this.metadata.tssKeyTypes[this.tssTag]||mY)!==this.tssKeyType)throw Ct.default(`tssKeyType mismatch: ${this.metadata.tssKeyTypes[this.tssTag]} !== ${this.tssKeyType}`);this._tssTag=i}async initialize(i){const s=await super.initialize(i);if(!this.metadata.tssPolyCommits[this.tssTag]&&!(i!=null&&i.skipTssInit||i!=null&&i.neverInitializeNewKey)){const{factorEncs:f,factorPubs:l,tssPolyCommits:r}=await this._initializeNewTSSKey(this.tssTag,i.deviceTSSShare,i.factorPub,i.deviceTSSIndex);this.metadata.updateTSSData({tssKeyType:this._tssKeyType,tssTag:this.tssTag,tssNonce:0,tssPolyCommits:r,factorPubs:l,factorEncs:f});const B=zb(this._tssCurve);await this._setTKeyStoreItem(MB,{id:"accountSalt",value:B}),this._accountSalt=B}if(this.metadata.tssPolyCommits[this.tssTag]&&(this.metadata.tssKeyTypes[this.tssTag]||mY)!==this.tssKeyType)throw Ct.default(`tssKeyType mismatch: ${this.metadata.tssKeyTypes[this.tssTag]} !== ${this.tssKeyType}`);return s}getFactorEncs(i){if(!this.metadata)throw Ct.metadataUndefined();if(!this.metadata.factorEncs)throw Ct.default("no factor encs mapping");if(!this.metadata.factorPubs)throw Ct.default("no factor pubs mapping");const s=this.metadata.factorPubs[this.tssTag];if(!s)throw Ct.default(`no factor pubs for this tssTag ${this.tssTag}`);if(s.filter(l=>l.x.cmp(i.x)===0&&l.y.cmp(i.y)===0).length===0)throw Ct.default(`factor pub ${i} not found for tssTag ${this.tssTag}`);if(!this.metadata.factorEncs[this.tssTag])throw Ct.default(`no factor encs for tssTag ${this.tssTag}`);const f=i.x.toString(16,64);return this.metadata.factorEncs[this.tssTag][f]}async getTSSShare(i,s){const f=ua(i,or),l=this.getFactorEncs(f),{userEnc:r,serverEncs:B,tssIndex:I,type:p}=l,Q=await Rh(Buffer.from(i.toString(16,64),"hex"),r),d=await Promise.all(B.map(j=>j===null?null:Rh(Buffer.from(i.toString(16,64),"hex"),j))),v=[Q].concat(d).map(j=>j===null?null:new Bt(j)),w=this._tssCurve,M=this.getTSSCommits().map(j=>w.keyFromPublic({x:j.x.toString(16,64),y:j.y.toString(16,64)}).getPublic()),m=v[0],x=(s==null?void 0:s.accountIndex)||0,D=(s==null?void 0:s.coefficient)||new Bt(1);if(p==="direct"){const j=w.g.mul(m),re=M[0],Z=M[1],J=re.add(Z.mul(new Bt(I)));if(j.eq(J)){const Ae=this.adjustTssShare(m,x,D);return{tssIndex:I,tssShare:Ae}}throw new Error("user decryption does not match tss commitments...")}const S=v.slice(1),K=new Array(S.length).fill(null).map((j,re)=>re+1),N=(s==null?void 0:s.threshold)||Math.ceil(S.length/2),L=fre(S.length,N);for(let j=0;jre.indexOf(g)>-1);if(Z.includes(null))continue;const J=K.filter((C,g)=>re.indexOf(g)>-1),Ae=J.map(C=>hc(w,J,C)),E=yY(Ae,Z,w.n),e=[hc(w,[1,99],1),hc(w,[1,99],99)],A=yY(e,[E,m],w.n),n=w.g.mul(A),a=M[0],h=M[1];let c=a;for(let C=0;C0){const l=this.computeAccountNonce(i),r=s.keyFromPrivate(l.toString("hex")).getPublic(),I=f[0].toEllipticPoint(s).add(r);return TA.fromElliptic(I)}return f[0]}async _getRssNodeDetails(){const{serverEndpoints:i,serverPubKeys:s,serverThreshold:f}=await this.serviceProvider.getRSSNodeDetails();if(!Array.isArray(i)||i.length===0)throw new Error("service provider tss server endpoints are missing");if(!Array.isArray(s)||s.length===0)throw new Error("service provider pub keys are missing");return{serverEndpoints:i,serverPubKeys:s,serverThreshold:f||Math.floor(i.length/2)+1}}async importTssKey(i,s){const f=this._tssCurve;if(!this.secp256k1Key)throw Ct.privateKeyUnavailable();if(!this.metadata)throw Ct.metadataUndefined();const{importKey:l,factorPub:r,newTSSIndex:B,tag:I}=i,p=this.tssTag;this._tssTag=I;try{const{selectedServers:Q=[],authSignatures:d=[]}=s||{};if(!I)throw Ct.default("invalid param, tag is required");if(!r)throw Ct.default("invalid param, newFactorPub is required");if(!B)throw Ct.default("invalid param, newTSSIndex is required");if(d.length===0)throw Ct.default("invalid param, authSignatures is required");const y=this.metadata.factorPubs[I];if((y==null?void 0:y.length)>0)throw Ct.default("Duplicate account tag, please use a unique tag for importing key");const v=[r],w=await(async()=>{if(this._tssKeyType===Xn.secp256k1)return new Bt(l);if(this._tssKeyType===Xn.ed25519){const h=EY(this.tssTag||wY);if(this.metadata.getGeneralStoreDomain(h))throw new Error("Seed already exists");const{scalar:C}=dQ(l),g=Buffer.from(Mg(C).point.encodeCompressed("hex"),"hex"),t=await xh(g,l);return this.metadata.setGeneralStoreDomain(h,{message:t}),C}throw new Error("Invalid key type")})();if(!w||w.eq(new Bt("0")))throw new Error("Invalid importedKey");const M=[B],m=this.metadata.tssNonces[this.tssTag],x=m&&m>0?m+1:0,S=`${this.serviceProvider.getVerifierNameVerifierId()}${this.tssTag}${x}`,K=Bi(f.g.mul(w)),N=await this._getRssNodeDetails(),{pubKey:L,nodeIndexes:j}=await this.serviceProvider.getTSSPubKey(this.tssTag,x);let re=Q;(j==null?void 0:j.length)>0?Q.length?re=j.slice(0,Math.min(Q.length,j.length)):re=j.slice(0,3):(Q==null?void 0:Q.length)===0&&(re=eD(new Array(N.serverEndpoints.length).fill(null).map((h,c)=>c+1),Math.ceil(N.serverEndpoints.length/2)));const{serverEndpoints:Z,serverPubKeys:J,serverThreshold:Ae}=N,e=await new vY({serverEndpoints:Z,serverPubKeys:J,serverThreshold:Ae,tssPubKey:K,keyType:this._tssKeyType}).import({importKey:w,dkgNewPub:gc(L),selectedServers:re,factorPubs:v.map(h=>gc(h)),targetIndexes:M,newLabel:S,sigs:d}),A=L.toEllipticPoint(f).add(ln(f,K).neg()),n=[TA.fromJSON(K),TA.fromJSON({x:A.getX().toString(16,64),y:A.getY().toString(16,64)})],a={};for(let h=0;h0&&(j=L.slice(0,Math.min(M.length,L.length)));const re=await x.refresh({factorPubs:l.map(E=>gc(E)),targetIndexes:r,oldLabel:S,newLabel:K,sigs:m,dkgNewPub:gc(N),inputShare:s,inputIndex:f,selectedServers:j}),Z=N.toEllipticPoint(this._tssCurve).add(ln(this._tssCurve,d).neg()),J=[TA.fromJSON(d),TA.fromJSON({x:Z.getX().toString(16,64),y:Z.getY().toString(16,64)})],Ae={};for(let E=0;EK+1),Math.ceil(w.serverEndpoints.length/2)),m=r||M,D=d.map(S=>this.getFactorEncs(S).tssIndex).concat([l]);await this._refreshTSSShares(!1,p,Q,y,D,v,Tt(Tt({},w),{},{selectedServers:m,authSignatures:B}))}else{if(Q!==l)throw Ct.default("newTSSIndex does not match existing tssIndex, set refreshShares to true to refresh shares");const d=this.metadata.factorPubs[this.tssTag].concat([f]),y=JSON.parse(JSON.stringify(this.metadata.factorEncs[this.tssTag])),v=f.x.toString(16,64);y[v]={tssIndex:Q,type:"direct",userEnc:await xh(f.toSEC1(DA,!1),p.toArrayLike(Buffer,"be",32)),serverEncs:[]},this.metadata.updateTSSData({tssKeyType:this.tssKeyType,tssTag:this.tssTag,factorPubs:d,factorEncs:y})}await this._syncShareMetadata()}async deleteFactorPub(i){if(!this.metadata)throw Ct.metadataUndefined("metadata is undefined");if(!this.secp256k1Key)throw new Error("Tkey is not reconstructed");if(!this.metadata.tssPolyCommits[this.tssTag])throw new Error(`tss key has not been initialized for tssTag ${this.tssTag}`);const{factorKey:s,deleteFactorPub:f,selectedServers:l,authSignatures:r}=i,B=this.metadata.factorPubs[this.tssTag],{tssShare:I,tssIndex:p}=await this.getTSSShare(s),Q=B.filter(m=>m.x.eq(f.x)&&m.y.eq(f.y));if(Q.length===0)throw Ct.default("could not find factorPub to delete");if(Q.length>1)throw Ct.default("found two or more factorPubs that match, error in metadata");const d=B.filter(m=>!m.x.eq(f.x)||!m.y.eq(f.y));this.metadata.updateTSSData({tssKeyType:this._tssKeyType,tssTag:this.tssTag,factorPubs:d});const y=await this._getRssNodeDetails(),v=eD(new Array(y.serverEndpoints.length).fill(null).map((m,x)=>x+1),Math.ceil(y.serverEndpoints.length/2)),w=l||v,M=d.map(m=>this.getFactorEncs(m).tssIndex);await this._refreshTSSShares(!1,I,p,d,M,this.serviceProvider.getVerifierNameVerifierId(),Tt(Tt({},y),{},{selectedServers:w,authSignatures:r})),await this._syncShareMetadata()}adjustTssShare(i,s,f){const l=this.computeAccountNonce(s);return i.mul(f).add(l).umod(this._tssCurve.n)}async _initializeNewTSSKey(i,s,f,l){const r=this._tssCurve;let B;const I=l||2;s?B=s:B=this._tssCurve.genKeyPair().getPrivate();const{pubKey:p}=await this.serviceProvider.getTSSPubKey(i,0),Q=p.toEllipticPoint(r),d=this._tssCurve.g.mul(B),y=hc(r,[1,I],1,0),v=hc(r,[1,I],I,0),w=Q.mul(y).add(d.mul(v)),M=Q.add(w.neg()),m=[TA.fromElliptic(w),TA.fromElliptic(M)],x=[f],D={};for(let S=0;Sthis.generateMetadataParams(await Tc.serializeMetadataParamsInput(d,s,f[y]),s,f[y]))),I=new FormData;B.forEach((d,y)=>{I.append(y.toString(),JSON.stringify(d))});const p={mode:"cors",method:"POST",headers:{}},Q={isUrlEncodedData:!0,timeout:600*1e3};return await la(`${this.hostUrl}/bulk_set_stream`,I,p,Q)}catch(s){throw await eg(s)}}generateMetadataParams(i,s,f){let l,r,B,I="tkey";const p={data:i,timestamp:new Bt(~~(this.serverTimeOffset+Date.now()/1e3)).toString(16)};i===cR&&(I=$pe,p.data="");const Q=bh(Buffer.from(so(p),"utf8"));if(f){const d=og(f).sign(Q);l=Buffer.from(d.r.toString(16,64)+d.s.toString(16,64)+new Bt(0).toString(16,2),"hex").toString("base64");const y=kh(f);r=y.x.toString("hex"),B=y.y.toString("hex")}else{const d=s.retrievePubKeyPoint();l=s.sign(new Bt(Q)),r=d.getX().toString("hex"),B=d.getY().toString("hex")}return{pub_key_X:r,pub_key_Y:B,set_data:p,signature:l,namespace:I}}async acquireWriteLock(i){const{serviceProvider:s,privKey:f}=i,l={timestamp:Math.floor(this.serverTimeOffset+Date.now()/1e3)};let r;f?r=MY(l,f):r=s.sign(new Bt(bh(Buffer.from(so(l),"utf8"))));const B={key:og(f).getPublic("hex"),data:l,signature:r};return la(`${this.hostUrl}/acquireLock`,B)}async releaseWriteLock(i){const{serviceProvider:s,privKey:f,id:l}=i,r={timestamp:Math.floor(this.serverTimeOffset+Date.now()/1e3)};let B;f?B=MY(r,f):B=s.sign(new Bt(bh(Buffer.from(so(r),"utf8"))));const I={key:og(f).getPublic("hex"),data:r,signature:B,id:l};return la(`${this.hostUrl}/releaseLock`,I)}toJSON(){return{enableLogging:this.enableLogging,hostUrl:this.hostUrl,storageLayerName:this.storageLayerName}}}var MQe=Tc;class bQe extends ole.ec{constructor(){super("ed25519")}bufferToScalar(i){return new Bt(i,"le")}generateScalar(){return this.genKeyPair().getPrivate()}scalarToBuffer(i,s){return i.toString("hex"),i.toArrayLike(s,"le",32)}pointToBuffer(i,s){const f=i.getX(),r=i.getY().toArrayLike(s,"le",32);return r[r.length-1]|=f.and(new Bt(1)).eqn(1)?128:0,r}}class DQe{constructor(){$e(this,"sessionId",void 0)}checkSessionParams(){if(!this.sessionId)throw new Error("Session id is required");this.sessionId=this.sessionId.padStart(64,"0")}request({method:i="GET",url:s,data:f={},headers:l={}}){const r={headers:l};switch(i){case"GET":return Oo(s,r);case"POST":return la(s,f,r);case"PUT":return ree(s,f,r);case"PATCH":return Aee(s,f,r)}throw new Error("Invalid method type")}}const SQe=86400;class bY extends DQe{constructor({sessionServerBaseUrl:i,sessionNamespace:s,sessionTime:f,sessionId:l,allowedOrigin:r}={}){super(),$e(this,"sessionServerBaseUrl","https://session.web3auth.io"),$e(this,"sessionNamespace",void 0),$e(this,"allowedOrigin",void 0),$e(this,"sessionTime",SQe),$e(this,"sessionId",""),i&&(this.sessionServerBaseUrl=i),s&&(this.sessionNamespace=s),f&&(this.sessionTime=f),l&&(this.sessionId=l.padStart(64,"0")),r&&(this.allowedOrigin=r||"*")}static generateRandomSessionKey(){return qk().toString("hex").padStart(64,"0")}async createSession(i,s={}){super.checkSessionParams();const f=Buffer.from(this.sessionId,"hex"),l=En(f).toString("hex"),r=await Dh(this.sessionId,i),B=(await Mh(f,pa(Buffer.from(r,"utf8")))).toString("hex"),I={key:l,data:r,signature:B,namespace:this.sessionNamespace,timeout:this.sessionTime,allowedOrigin:this.allowedOrigin};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:I,headers:s}),this.sessionId}async authorizeSession({headers:i}={headers:{}}){super.checkSessionParams();const f={key:En(Buffer.from(this.sessionId,"hex")).toString("hex"),namespace:this.sessionNamespace},l=await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/get`,data:f,headers:i});if(!l.message)throw new Error("Session Expired or Invalid public key");const r=await Ok(this.sessionId,l.message);if(r.error)throw new Error("There was an error decrypting data.");return r}async updateSession(i,s={}){super.checkSessionParams();const f=Buffer.from(this.sessionId,"hex"),l=En(f).toString("hex"),r=await Dh(this.sessionId,i),B=(await Mh(f,pa(Buffer.from(r,"utf8")))).toString("hex"),I={key:l,data:r,signature:B,namespace:this.sessionNamespace,allowedOrigin:this.allowedOrigin};await super.request({method:"PUT",url:`${this.sessionServerBaseUrl}/v2/store/update`,data:I,headers:s})}async invalidateSession(i={}){super.checkSessionParams();const s=Buffer.from(this.sessionId,"hex"),f=En(s).toString("hex"),l=await Dh(this.sessionId,{}),r=(await Mh(s,pa(Buffer.from(l,"utf8")))).toString("hex"),B={key:f,data:l,signature:r,namespace:this.sessionNamespace,timeout:1};return await super.request({method:"POST",url:`${this.sessionServerBaseUrl}/v2/store/set`,data:B,headers:i}),this.sessionId="",!0}}var xQe=Zee();const RQe=gr(xQe);new Io.ec("secp256k1");const LE=globalThis.crypto||globalThis.msCrypto||{};LE.subtle||LE.webkitSubtle;const kQe=Buffer.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),NQe=Buffer.alloc(32,0);function _Qe(o){return Buffer.isBuffer(o)&&o.length===32}function KQe(o){return _Qe(o)?o.compare(NQe)>0&&o.compare(kQe)<0:!1}function DY(o){const i=new Uint8Array(o);return typeof LE.getRandomValues>"u"?Buffer.from(RQe.randomBytes(o)):(LE.getRandomValues(i),Buffer.from(i))}const FQe=function(){let o=DY(32);for(;!KQe(o);)o=DY(32);return o},wa=Object.create(null);wa.open="0";wa.close="1";wa.ping="2";wa.pong="3";wa.message="4";wa.upgrade="5";wa.noop="6";const ZC=Object.create(null);Object.keys(wa).forEach(o=>{ZC[wa[o]]=o});const dR={type:"error",data:"parser error"},ure=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",cre=typeof ArrayBuffer=="function",lre=o=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(o):o&&o.buffer instanceof ArrayBuffer,NN=({type:o,data:i},s,f)=>ure&&i instanceof Blob?s?f(i):SY(i,f):cre&&(i instanceof ArrayBuffer||lre(i))?s?f(i):SY(new Blob([i]),f):f(wa[o]+(i||"")),SY=(o,i)=>{const s=new FileReader;return s.onload=function(){const f=s.result.split(",")[1];i("b"+(f||""))},s.readAsDataURL(o)};function xY(o){return o instanceof Uint8Array?o:o instanceof ArrayBuffer?new Uint8Array(o):new Uint8Array(o.buffer,o.byteOffset,o.byteLength)}let tD;function GQe(o,i){if(ure&&o.data instanceof Blob)return o.data.arrayBuffer().then(xY).then(i);if(cre&&(o.data instanceof ArrayBuffer||lre(o.data)))return i(xY(o.data));NN(o,!1,s=>{tD||(tD=new TextEncoder),i(tD.encode(s))})}const RY="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xc=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let o=0;o{let i=o.length*.75,s=o.length,f,l=0,r,B,I,p;o[o.length-1]==="="&&(i--,o[o.length-2]==="="&&i--);const Q=new ArrayBuffer(i),d=new Uint8Array(Q);for(f=0;f>4,d[l++]=(B&15)<<4|I>>2,d[l++]=(I&3)<<6|p&63;return Q},UQe=typeof ArrayBuffer=="function",_N=(o,i)=>{if(typeof o!="string")return{type:"message",data:dre(o,i)};const s=o.charAt(0);return s==="b"?{type:"message",data:qQe(o.substring(1),i)}:ZC[s]?o.length>1?{type:ZC[s],data:o.substring(1)}:{type:ZC[s]}:dR},qQe=(o,i)=>{if(UQe){const s=LQe(o);return dre(s,i)}else return{base64:!0,data:o}},dre=(o,i)=>{switch(i){case"blob":return o instanceof Blob?o:new Blob([o]);case"arraybuffer":default:return o instanceof ArrayBuffer?o:o.buffer}},Ire="",HQe=(o,i)=>{const s=o.length,f=new Array(s);let l=0;o.forEach((r,B)=>{NN(r,!1,I=>{f[B]=I,++l===s&&i(f.join(Ire))})})},TQe=(o,i)=>{const s=o.split(Ire),f=[];for(let l=0;l{const f=s.length;let l;if(f<126)l=new Uint8Array(1),new DataView(l.buffer).setUint8(0,f);else if(f<65536){l=new Uint8Array(3);const r=new DataView(l.buffer);r.setUint8(0,126),r.setUint16(1,f)}else{l=new Uint8Array(9);const r=new DataView(l.buffer);r.setUint8(0,127),r.setBigUint64(1,BigInt(f))}o.data&&typeof o.data!="string"&&(l[0]|=128),i.enqueue(l),i.enqueue(s)})}})}let AD;function bB(o){return o.reduce((i,s)=>i+s.length,0)}function DB(o,i){if(o[0].length===i)return o.shift();const s=new Uint8Array(i);let f=0;for(let l=0;lMath.pow(2,21)-1){I.enqueue(dR);break}l=d*Math.pow(2,32)+Q.getUint32(4),f=3}else{if(bB(s)o){I.enqueue(dR);break}}}})}const Bre=4;function Fr(o){if(o)return PQe(o)}function PQe(o){for(var i in Fr.prototype)o[i]=Fr.prototype[i];return o}Fr.prototype.on=Fr.prototype.addEventListener=function(o,i){return this._callbacks=this._callbacks||{},(this._callbacks["$"+o]=this._callbacks["$"+o]||[]).push(i),this};Fr.prototype.once=function(o,i){function s(){this.off(o,s),i.apply(this,arguments)}return s.fn=i,this.on(o,s),this};Fr.prototype.off=Fr.prototype.removeListener=Fr.prototype.removeAllListeners=Fr.prototype.removeEventListener=function(o,i){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var s=this._callbacks["$"+o];if(!s)return this;if(arguments.length==1)return delete this._callbacks["$"+o],this;for(var f,l=0;l(o.hasOwnProperty(f)&&(s[f]=o[f]),s),{})}const OQe=Ao.setTimeout,jQe=Ao.clearTimeout;function IQ(o,i){i.useNativeTimers?(o.setTimeoutFn=OQe.bind(Ao),o.clearTimeoutFn=jQe.bind(Ao)):(o.setTimeoutFn=Ao.setTimeout.bind(Ao),o.clearTimeoutFn=Ao.clearTimeout.bind(Ao))}const WQe=1.33;function VQe(o){return typeof o=="string"?ZQe(o):Math.ceil((o.byteLength||o.size)*WQe)}function ZQe(o){let i=0,s=0;for(let f=0,l=o.length;f=57344?s+=3:(f++,s+=4);return s}function zQe(o){let i="";for(let s in o)o.hasOwnProperty(s)&&(i.length&&(i+="&"),i+=encodeURIComponent(s)+"="+encodeURIComponent(o[s]));return i}function $Qe(o){let i={},s=o.split("&");for(let f=0,l=s.length;f0);return i}function pre(){const o=_Y(+new Date);return o!==NY?(kY=0,NY=o):o+"."+_Y(kY++)}for(;SB{this.readyState="paused",i()};if(this.polling||!this.writable){let f=0;this.polling&&(f++,this.once("pollComplete",function(){--f||s()})),this.writable||(f++,this.once("drain",function(){--f||s()}))}else s()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(i){const s=f=>{if(this.readyState==="opening"&&f.type==="open"&&this.onOpen(),f.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(f)};TQe(i,this.socket.binaryType).forEach(s),this.readyState!=="closed"&&(this.polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this.poll())}doClose(){const i=()=>{this.write([{type:"close"}])};this.readyState==="open"?i():this.once("open",i)}write(i){this.writable=!1,HQe(i,s=>{this.doWrite(s,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const i=this.opts.secure?"https":"http",s=this.query||{};return this.opts.timestampRequests!==!1&&(s[this.opts.timestampParam]=pre()),!this.supportsBinary&&!s.sid&&(s.b64=1),this.createUri(i,s)}request(i={}){return Object.assign(i,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new sg(this.uri(),i)}doWrite(i,s){const f=this.request({method:"POST",data:i});f.on("success",s),f.on("error",(l,r)=>{this.onError("xhr post error",l,r)})}doPoll(){const i=this.request();i.on("data",this.onData.bind(this)),i.on("error",(s,f)=>{this.onError("xhr poll error",s,f)}),this.pollXhr=i}}let sg=class zC extends Fr{constructor(i,s){super(),IQ(this,s),this.opts=s,this.method=s.method||"GET",this.uri=i,this.data=s.data!==void 0?s.data:null,this.create()}create(){var i;const s=Cre(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");s.xdomain=!!this.opts.xd;const f=this.xhr=new yre(s);try{f.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders){f.setDisableHeaderCheck&&f.setDisableHeaderCheck(!0);for(let l in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(l)&&f.setRequestHeader(l,this.opts.extraHeaders[l])}}catch{}if(this.method==="POST")try{f.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{f.setRequestHeader("Accept","*/*")}catch{}(i=this.opts.cookieJar)===null||i===void 0||i.addCookies(f),"withCredentials"in f&&(f.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(f.timeout=this.opts.requestTimeout),f.onreadystatechange=()=>{var l;f.readyState===3&&((l=this.opts.cookieJar)===null||l===void 0||l.parseCookies(f)),f.readyState===4&&(f.status===200||f.status===1223?this.onLoad():this.setTimeoutFn(()=>{this.onError(typeof f.status=="number"?f.status:0)},0))},f.send(this.data)}catch(l){this.setTimeoutFn(()=>{this.onError(l)},0);return}typeof document<"u"&&(this.index=zC.requestsCount++,zC.requests[this.index]=this)}onError(i){this.emitReserved("error",i,this.xhr),this.cleanup(!0)}cleanup(i){if(!(typeof this.xhr>"u"||this.xhr===null)){if(this.xhr.onreadystatechange=Aye,i)try{this.xhr.abort()}catch{}typeof document<"u"&&delete zC.requests[this.index],this.xhr=null}}onLoad(){const i=this.xhr.responseText;i!==null&&(this.emitReserved("data",i),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}};sg.requestsCount=0;sg.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",KY);else if(typeof addEventListener=="function"){const o="onpagehide"in Ao?"pagehide":"unload";addEventListener(o,KY,!1)}}function KY(){for(let o in sg.requests)sg.requests.hasOwnProperty(o)&&sg.requests[o].abort()}const FN=typeof Promise=="function"&&typeof Promise.resolve=="function"?i=>Promise.resolve().then(i):(i,s)=>s(i,0),xB=Ao.WebSocket||Ao.MozWebSocket,FY=!0,nye="arraybuffer",GY=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class oye extends KN{constructor(i){super(i),this.supportsBinary=!i.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const i=this.uri(),s=this.opts.protocols,f=GY?{}:Cre(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(f.headers=this.opts.extraHeaders);try{this.ws=FY&&!GY?s?new xB(i,s):new xB(i):new xB(i,s,f)}catch(l){return this.emitReserved("error",l)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=i=>this.onClose({description:"websocket connection closed",context:i}),this.ws.onmessage=i=>this.onData(i.data),this.ws.onerror=i=>this.onError("websocket error",i)}write(i){this.writable=!1;for(let s=0;s{const B={};try{FY&&this.ws.send(r)}catch{}l&&FN(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){const i=this.opts.secure?"wss":"ws",s=this.query||{};return this.opts.timestampRequests&&(s[this.opts.timestampParam]=pre()),this.supportsBinary||(s.b64=1),this.createUri(i,s)}check(){return!!xB}}class aye extends KN{get name(){return"webtransport"}doOpen(){typeof WebTransport=="function"&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then(()=>{this.onClose()}).catch(i=>{this.onError("webtransport error",i)}),this.transport.ready.then(()=>{this.transport.createBidirectionalStream().then(i=>{const s=JQe(Number.MAX_SAFE_INTEGER,this.socket.binaryType),f=i.readable.pipeThrough(s).getReader(),l=YQe();l.readable.pipeTo(i.writable),this.writer=l.writable.getWriter();const r=()=>{f.read().then(({done:I,value:p})=>{I||(this.onPacket(p),r())}).catch(I=>{})};r();const B={type:"open"};this.query.sid&&(B.data=`{"sid":"${this.query.sid}"}`),this.writer.write(B).then(()=>this.onOpen())})}))}write(i){this.writable=!1;for(let s=0;s{l&&FN(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var i;(i=this.transport)===null||i===void 0||i.close()}}const sye={websocket:oye,webtransport:aye,polling:iye},fye=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,hye=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function BR(o){if(o.length>2e3)throw"URI too long";const i=o,s=o.indexOf("["),f=o.indexOf("]");s!=-1&&f!=-1&&(o=o.substring(0,s)+o.substring(s,f).replace(/:/g,";")+o.substring(f,o.length));let l=fye.exec(o||""),r={},B=14;for(;B--;)r[hye[B]]=l[B]||"";return s!=-1&&f!=-1&&(r.source=i,r.host=r.host.substring(1,r.host.length-1).replace(/;/g,":"),r.authority=r.authority.replace("[","").replace("]","").replace(/;/g,":"),r.ipv6uri=!0),r.pathNames=gye(r,r.path),r.queryKey=uye(r,r.query),r}function gye(o,i){const s=/\/{2,9}/g,f=i.replace(s,"/").split("/");return(i.slice(0,1)=="/"||i.length===0)&&f.splice(0,1),i.slice(-1)=="/"&&f.splice(f.length-1,1),f}function uye(o,i){const s={};return i.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(f,l,r){l&&(s[l]=r)}),s}let vre=class O0 extends Fr{constructor(i,s={}){super(),this.binaryType=nye,this.writeBuffer=[],i&&typeof i=="object"&&(s=i,i=null),i?(i=BR(i),s.hostname=i.host,s.secure=i.protocol==="https"||i.protocol==="wss",s.port=i.port,i.query&&(s.query=i.query)):s.host&&(s.hostname=BR(s.host).host),IQ(this,s),this.secure=s.secure!=null?s.secure:typeof location<"u"&&location.protocol==="https:",s.hostname&&!s.port&&(s.port=this.secure?"443":"80"),this.hostname=s.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=s.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=s.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},s),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=$Qe(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,typeof addEventListener=="function"&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(i){const s=Object.assign({},this.opts.query);s.EIO=Bre,s.transport=i,this.id&&(s.sid=this.id);const f=Object.assign({},this.opts,{query:s,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[i]);return new sye[i](f)}open(){let i;if(this.opts.rememberUpgrade&&O0.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)i="websocket";else if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}else i=this.transports[0];this.readyState="opening";try{i=this.createTransport(i)}catch{this.transports.shift(),this.open();return}i.open(),this.setTransport(i)}setTransport(i){this.transport&&this.transport.removeAllListeners(),this.transport=i,i.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",s=>this.onClose("transport close",s))}probe(i){let s=this.createTransport(i),f=!1;O0.priorWebsocketSuccess=!1;const l=()=>{f||(s.send([{type:"ping",data:"probe"}]),s.once("packet",y=>{if(!f)if(y.type==="pong"&&y.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",s),!s)return;O0.priorWebsocketSuccess=s.name==="websocket",this.transport.pause(()=>{f||this.readyState!=="closed"&&(d(),this.setTransport(s),s.send([{type:"upgrade"}]),this.emitReserved("upgrade",s),s=null,this.upgrading=!1,this.flush())})}else{const v=new Error("probe error");v.transport=s.name,this.emitReserved("upgradeError",v)}}))};function r(){f||(f=!0,d(),s.close(),s=null)}const B=y=>{const v=new Error("probe error: "+y);v.transport=s.name,r(),this.emitReserved("upgradeError",v)};function I(){B("transport closed")}function p(){B("socket closed")}function Q(y){s&&y.name!==s.name&&r()}const d=()=>{s.removeListener("open",l),s.removeListener("error",B),s.removeListener("close",I),this.off("close",p),this.off("upgrading",Q)};s.once("open",l),s.once("error",B),s.once("close",I),this.once("close",p),this.once("upgrading",Q),this.upgrades.indexOf("webtransport")!==-1&&i!=="webtransport"?this.setTimeoutFn(()=>{f||s.open()},200):s.open()}onOpen(){if(this.readyState="open",O0.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush(),this.readyState==="open"&&this.opts.upgrade){let i=0;const s=this.upgrades.length;for(;i{this.onClose("ping timeout")},this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const i=this.getWritablePackets();this.transport.send(i),this.prevBufferLen=i.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let s=1;for(let f=0;f0&&s>this.maxPayload)return this.writeBuffer.slice(0,f);s+=2}return this.writeBuffer}write(i,s,f){return this.sendPacket("message",i,s,f),this}send(i,s,f){return this.sendPacket("message",i,s,f),this}sendPacket(i,s,f,l){if(typeof s=="function"&&(l=s,s=void 0),typeof f=="function"&&(l=f,f=null),this.readyState==="closing"||this.readyState==="closed")return;f=f||{},f.compress=f.compress!==!1;const r={type:i,data:s,options:f};this.emitReserved("packetCreate",r),this.writeBuffer.push(r),l&&this.once("flush",l),this.flush()}close(){const i=()=>{this.onClose("forced close"),this.transport.close()},s=()=>{this.off("upgrade",s),this.off("upgradeError",s),i()},f=()=>{this.once("upgrade",s),this.once("upgradeError",s)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?f():i()}):this.upgrading?f():i()),this}onError(i){O0.priorWebsocketSuccess=!1,this.emitReserved("error",i),this.onClose("transport error",i)}onClose(i,s){(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")&&(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),typeof removeEventListener=="function"&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",i,s),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(i){const s=[];let f=0;const l=i.length;for(;ftypeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(o):o.buffer instanceof ArrayBuffer,wre=Object.prototype.toString,Iye=typeof Blob=="function"||typeof Blob<"u"&&wre.call(Blob)==="[object BlobConstructor]",Bye=typeof File=="function"||typeof File<"u"&&wre.call(File)==="[object FileConstructor]";function GN(o){return lye&&(o instanceof ArrayBuffer||dye(o))||Iye&&o instanceof Blob||Bye&&o instanceof File}function $C(o,i){if(!o||typeof o!="object")return!1;if(Array.isArray(o)){for(let s=0,f=o.length;s=0&&o.num{delete this.acks[i];for(let I=0;I{this.io.clearTimeoutFn(r),s.apply(this,I)};B.withError=!0,this.acks[i]=B}emitWithAck(i,...s){return new Promise((f,l)=>{const r=(B,I)=>B?l(B):f(I);r.withError=!0,s.push(r),this.emit(i,...s)})}_addToQueue(i){let s;typeof i[i.length-1]=="function"&&(s=i.pop());const f={id:this._queueSeq++,tryCount:0,pending:!1,args:i,flags:Object.assign({fromQueue:!0},this.flags)};i.push((l,...r)=>f!==this._queue[0]?void 0:(l!==null?f.tryCount>this._opts.retries&&(this._queue.shift(),s&&s(l)):(this._queue.shift(),s&&s(null,...r)),f.pending=!1,this._drainQueue())),this._queue.push(f),this._drainQueue()}_drainQueue(i=!1){if(!this.connected||this._queue.length===0)return;const s=this._queue[0];s.pending&&!i||(s.pending=!0,s.tryCount++,this.flags=s.flags,this.emit.apply(this,s.args))}packet(i){i.nsp=this.nsp,this.io._packet(i)}onopen(){typeof this.auth=="function"?this.auth(i=>{this._sendConnectPacket(i)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(i){this.packet({type:KA.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},i):i})}onerror(i){this.connected||this.emitReserved("connect_error",i)}onclose(i,s){this.connected=!1,delete this.id,this.emitReserved("disconnect",i,s),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(i=>{if(!this.sendBuffer.some(f=>String(f.id)===i)){const f=this.acks[i];delete this.acks[i],f.withError&&f.call(this,new Error("socket has been disconnected"))}})}onpacket(i){if(i.nsp===this.nsp)switch(i.type){case KA.CONNECT:i.data&&i.data.sid?this.onconnect(i.data.sid,i.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case KA.EVENT:case KA.BINARY_EVENT:this.onevent(i);break;case KA.ACK:case KA.BINARY_ACK:this.onack(i);break;case KA.DISCONNECT:this.ondisconnect();break;case KA.CONNECT_ERROR:this.destroy();const f=new Error(i.data.message);f.data=i.data.data,this.emitReserved("connect_error",f);break}}onevent(i){const s=i.data||[];i.id!=null&&s.push(this.ack(i.id)),this.connected?this.emitEvent(s):this.receiveBuffer.push(Object.freeze(s))}emitEvent(i){if(this._anyListeners&&this._anyListeners.length){const s=this._anyListeners.slice();for(const f of s)f.apply(this,i)}super.emit.apply(this,i),this._pid&&i.length&&typeof i[i.length-1]=="string"&&(this._lastOffset=i[i.length-1])}ack(i){const s=this;let f=!1;return function(...l){f||(f=!0,s.packet({type:KA.ACK,id:i,data:l}))}}onack(i){const s=this.acks[i.id];typeof s=="function"&&(delete this.acks[i.id],s.withError&&i.data.unshift(null),s.apply(this,i.data))}onconnect(i,s){this.id=i,this.recovered=s&&this._pid===s,this._pid=s,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(i=>this.emitEvent(i)),this.receiveBuffer=[],this.sendBuffer.forEach(i=>{this.notifyOutgoingListeners(i),this.packet(i)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(i=>i()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:KA.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(i){return this.flags.compress=i,this}get volatile(){return this.flags.volatile=!0,this}timeout(i){return this.flags.timeout=i,this}onAny(i){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(i),this}prependAny(i){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(i),this}offAny(i){if(!this._anyListeners)return this;if(i){const s=this._anyListeners;for(let f=0;f0&&o.jitter<=1?o.jitter:0,this.attempts=0}au.prototype.duration=function(){var o=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var i=Math.random(),s=Math.floor(i*this.jitter*o);o=Math.floor(i*10)&1?o+s:o-s}return Math.min(o,this.max)|0};au.prototype.reset=function(){this.attempts=0};au.prototype.setMin=function(o){this.ms=o};au.prototype.setMax=function(o){this.max=o};au.prototype.setJitter=function(o){this.jitter=o};class pR extends Fr{constructor(i,s){var f;super(),this.nsps={},this.subs=[],i&&typeof i=="object"&&(s=i,i=void 0),s=s||{},s.path=s.path||"/socket.io",this.opts=s,IQ(this,s),this.reconnection(s.reconnection!==!1),this.reconnectionAttempts(s.reconnectionAttempts||1/0),this.reconnectionDelay(s.reconnectionDelay||1e3),this.reconnectionDelayMax(s.reconnectionDelayMax||5e3),this.randomizationFactor((f=s.randomizationFactor)!==null&&f!==void 0?f:.5),this.backoff=new au({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(s.timeout==null?2e4:s.timeout),this._readyState="closed",this.uri=i;const l=s.parser||mye;this.encoder=new l.Encoder,this.decoder=new l.Decoder,this._autoConnect=s.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(i){return arguments.length?(this._reconnection=!!i,this):this._reconnection}reconnectionAttempts(i){return i===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=i,this)}reconnectionDelay(i){var s;return i===void 0?this._reconnectionDelay:(this._reconnectionDelay=i,(s=this.backoff)===null||s===void 0||s.setMin(i),this)}randomizationFactor(i){var s;return i===void 0?this._randomizationFactor:(this._randomizationFactor=i,(s=this.backoff)===null||s===void 0||s.setJitter(i),this)}reconnectionDelayMax(i){var s;return i===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=i,(s=this.backoff)===null||s===void 0||s.setMax(i),this)}timeout(i){return arguments.length?(this._timeout=i,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(i){if(~this._readyState.indexOf("open"))return this;this.engine=new vre(this.uri,this.opts);const s=this.engine,f=this;this._readyState="opening",this.skipReconnect=!1;const l=Ko(s,"open",function(){f.onopen(),i&&i()}),r=I=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",I),i?i(I):this.maybeReconnectOnOpen()},B=Ko(s,"error",r);if(this._timeout!==!1){const I=this._timeout,p=this.setTimeoutFn(()=>{l(),r(new Error("timeout")),s.close()},I);this.opts.autoUnref&&p.unref(),this.subs.push(()=>{this.clearTimeoutFn(p)})}return this.subs.push(l),this.subs.push(B),this}connect(i){return this.open(i)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const i=this.engine;this.subs.push(Ko(i,"ping",this.onping.bind(this)),Ko(i,"data",this.ondata.bind(this)),Ko(i,"error",this.onerror.bind(this)),Ko(i,"close",this.onclose.bind(this)),Ko(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(i){try{this.decoder.add(i)}catch(s){this.onclose("parse error",s)}}ondecoded(i){FN(()=>{this.emitReserved("packet",i)},this.setTimeoutFn)}onerror(i){this.emitReserved("error",i)}socket(i,s){let f=this.nsps[i];return f?this._autoConnect&&!f.active&&f.connect():(f=new Mre(this,i,s),this.nsps[i]=f),f}_destroy(i){const s=Object.keys(this.nsps);for(const f of s)if(this.nsps[f].active)return;this._close()}_packet(i){const s=this.encoder.encode(i);for(let f=0;fi()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(i,s){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",i,s),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const i=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const s=this.backoff.duration();this._reconnecting=!0;const f=this.setTimeoutFn(()=>{i.skipReconnect||(this.emitReserved("reconnect_attempt",i.backoff.attempts),!i.skipReconnect&&i.open(l=>{l?(i._reconnecting=!1,i.reconnect(),this.emitReserved("reconnect_error",l)):i.onreconnect()}))},s);this.opts.autoUnref&&f.unref(),this.subs.push(()=>{this.clearTimeoutFn(f)})}}onreconnect(){const i=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",i)}}const cc={};function Yc(o,i){typeof o=="object"&&(i=o,o=void 0),i=i||{};const s=cye(o,i.path||"/socket.io"),f=s.source,l=s.id,r=s.path,B=cc[l]&&r in cc[l].nsps,I=i.forceNew||i["force new connection"]||i.multiplex===!1||B;let p;return I?p=new pR(f,i):(cc[l]||(cc[l]=new pR(f,i)),p=cc[l]),s.query&&!i.query&&(i.query=s.queryKey),p.socket(s.path,i)}Object.assign(Yc,{Manager:pR,Socket:Mre,io:Yc,connect:Yc});const XC="x-web3-session-id",bre={Delimiter1:"",Delimiter2:"",Delimiter3:"",Delimiter4:""};function bg(){return new Io.ec("secp256k1")}function eE(o,i){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;const f=bg(),l=o.map(Q=>new Bt(Q)),r=new Bt(i),B=new Bt(s);let I=new Bt(1),p=new Bt(1);for(let Q=0;Q{const l=bg();if(o)return eE([1,s],s);const r=eE(i,f),B=eE([1,s],1);return r.mul(B).umod(l.curve.n)},qY=(o,i)=>{if(i.indexOf(o)===-1)throw new Error(`party ${o} not found in parties ${i}`);const s=bg();return eE(i,o).invm(s.curve.n).umod(s.curve.n)},HY=(o,i,s,f)=>{const l=i.sort((v,w)=>v-w);for(let v=0;vo.map(s=>s==null?null:Yc(s,{path:"/tss/socket.io",query:{sessionId:i},transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:5})),Dye=async(o,i)=>{const s=await bye(o,i);return await new Promise(f=>{const l=setInterval(()=>{for(let r=0;rB.sender===s&&B.recipient===i&&B.msg_type===f);return r?r.msg_data:new Promise((B,I)=>{let p=0;const Q=setInterval(()=>{const d=l.msgQueue.find(y=>y.sender===s&&y.recipient===i&&y.msg_type===f);d!==void 0&&(clearInterval(Q),B(d.msg_data)),p>=1e3&&(clearInterval(Q),I("Message not received in a reasonable time")),p++},10)})});globalThis.js_send_msg===void 0&&(globalThis.js_send_msg=async function(o,i,s,f,l){const r=globalThis.tss_clients.get(o);if(r.log(`sending msg, ${f}`),f.indexOf("ga1_data_unprocessed")>-1)throw new Error("ga1_data_unprocessed should not be sent directly");if(r.websocketOnly)r.sockets[s].emit("send_msg",{session:o,sender:i,recipient:s,msg_type:f,msg_data:l});else{const B=o.split(bre.Delimiter4)[1],I=r.lookupEndpoint(o,s);fetch(`${I}/send`,{method:"POST",headers:{[XC]:B,"Content-Type":"application/json"},body:JSON.stringify({session:o,sender:i,recipient:s,msg_type:f,msg_data:l})})}return!0});class Sye{constructor(i,s,f,l,r,B,I,p,Q){if($e(this,"session",void 0),$e(this,"index",void 0),$e(this,"parties",void 0),$e(this,"msgQueue",[]),$e(this,"sockets",void 0),$e(this,"endpoints",void 0),$e(this,"share",void 0),$e(this,"pubKey",void 0),$e(this,"websocketOnly",void 0),$e(this,"tssLib",void 0),$e(this,"_startPrecomputeTime",void 0),$e(this,"_endPrecomputeTime",void 0),$e(this,"_startSignTime",void 0),$e(this,"_endSignTime",void 0),$e(this,"log",void 0),$e(this,"_consumed",void 0),$e(this,"_sLessThanHalf",void 0),$e(this,"_precomputeComplete",[]),$e(this,"_precomputeFailed",[]),$e(this,"precomputed_value",null),$e(this,"_ready",!1),$e(this,"_signer",void 0),$e(this,"_rng",void 0),$e(this,"_readyResolve",null),f.length!==r.length)throw new Error("parties and sockets length must be equal, add null for client if necessary");if(f.length!==l.length)throw new Error("parties and endpoints length must be equal, add null for client if necessary");this.session=i,this.index=s,this.parties=f,this.endpoints=l,this.sockets=r,this.share=B,this.pubKey=I,this.websocketOnly=p,this.log=console.log,this._consumed=!1,this._sLessThanHalf=!0,this.tssLib=Q,r.forEach(d=>{d&&(d.hasListeners("send")&&d.off("send"),d.on("send",async(y,v)=>{const{session:w,sender:M,recipient:m,msg_type:x,msg_data:D}=y;if(w!==this.session){this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${w}`);return}this.msgQueue.push({session:w,sender:M,recipient:m,msg_type:x,msg_data:D}),v&&v()}),d.on("precompute_complete",async(y,v)=>{const{session:w,party:M}=y;if(w!==this.session){this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${w}`);return}this._precomputeComplete.push(M),v&&v()}),d.on("precompute_failed",async(y,v)=>{const{session:w,party:M}=y;if(w!==this.session){this.log(`ignoring message for a different session... client session: ${this.session}, message session: ${w}`);return}this._precomputeFailed.push(M),v&&v()}))}),globalThis.tss_clients.set(this.session,this)}get sid(){return this.session.split(bre.Delimiter4)[1]}async ready(){if(this._readyResolve!=null)await this._readyResolve;else throw new Error("Precompute needs to be called before ready");await new Promise((i,s)=>{let f=0;const l=setInterval(()=>{this._precomputeFailed.length===0&&this._precomputeComplete.filter((r,B,I)=>I.indexOf(r)===B).length===this.parties.length&&this.precomputed_value!=null?(clearInterval(l),this._ready=!0,i()):this._precomputeFailed.length>0&&s(new Error("Peer failure detected, please try again")),f>=500&&(clearInterval(l),s(new Error("Client is not ready"))),f++},10)})}precompute(i){this.sockets.forEach((l,r)=>{if(l!==null&&l.id===void 0)throw new Error(`socket not connected yet, session: ${this.session}, party: ${r}`)});const s=[];for(let l=0;l{fetch(`${this.lookupEndpoint(this.session,r)}/precompute`,{method:"POST",headers:{"Content-Type":"application/json",[XC]:this.sid},body:JSON.stringify(Tt({endpoints:this.endpoints.map((p,Q)=>Q!==this.index?p:`websocket:${this.sockets[r].id}`),session:this.session,parties:this.parties,player_index:r,threshold:this.parties.length,pubkey:this.pubKey,notifyWebsocketId:this.sockets[r].id,sendWebsocket:this.sockets[r].id},i))}).then(async p=>{const Q=await p.json();if(p.status!==200)throw new Error(`precompute route failed on ${this.lookupEndpoint(this.session,r)} with status ${p.status} - ${JSON.stringify(Q)} `);return B(p)}).catch(p=>{I(p)})}))}const f=async()=>{this._startPrecomputeTime=Date.now(),await Promise.all(s),this._signer=await this.tssLib.threshold_signer(this.session,this.index,this.parties.length,this.parties.length,this.share,this.pubKey),this._rng=await this.tssLib.random_generator(Buffer.from(FQe()).toString("base64")),await this.tssLib.setup(this._signer,this._rng);const l=await this.tssLib.precompute(new Uint8Array(this.parties),this._signer,this._rng);this.precomputed_value=l,this._precomputeComplete.push(this.index),this._consumed=!1,this._endPrecomputeTime=Date.now()};this._readyResolve=f().catch(l=>{this._precomputeFailed.push(this.index),console.error(l)})}async sign(i,s,f,l,r){if(this._consumed===!0)throw new Error("This instance has already signed a message and cannot be reused");if(this._ready===!1)throw new Error("client is not ready");if(!s)if(l==="keccak256"){if(Buffer.from(bh(Buffer.from(f))).toString("base64")!==i)throw new Error("hash of original message does not match msg")}else throw new Error(`hash algo ${l} not supported`);this._startSignTime=Date.now();const B=[],I=[];for(let m=0;m{const K=this.lookupEndpoint(this.session,x);fetch(`${K}/sign`,{method:"POST",headers:{"Content-Type":"application/json",[XC]:this.sid},body:JSON.stringify(Tt({session:this.session,sender:this.index,recipient:x,msg:i,hash_only:s,original_message:f,hash_algo:l},r))}).then(N=>N.json()).then(N=>D(N.sig)).catch(N=>{S(N)})}))}(await Promise.all(I)).forEach(m=>{B.push(m)});const Q=await this.tssLib.get_r_from_precompute(this.precomputed_value),d=await this.tssLib.local_verify(i,s,Q,B,this.pubKey);this._endSignTime=Date.now();const y=Buffer.from(d,"base64").toString("hex"),v=new Bt(y.slice(0,64),16);let w=new Bt(y.slice(64),16),M=Buffer.from(Q,"base64")[63]%2;if(this._sLessThanHalf){const m=bg(),x=m.n.div(new Bt(2));w.gt(x)&&(w=m.n.sub(w),M=(M+1)%2)}return this._consumed=!0,this._ready=!1,this._readyResolve=null,{r:v,s:w,recoveryParam:M}}lookupEndpoint(i,s){if(i!==this.session)throw new Error("incorrect session when looking up endpoint");return this.endpoints[s]}async cleanup(i){this.tssLib.random_generator_free(this._rng),this.tssLib.threshold_signer_free(this._signer),this._precomputeComplete=[],this._precomputeFailed=[],this.precomputed_value=null,this._endPrecomputeTime=null,this._startPrecomputeTime=null,this._endSignTime=null,this._startSignTime=null,this._consumed=!1,this._ready=!1,this._readyResolve=null,globalThis.tss_clients.delete(this.session),this.sockets.forEach(s=>{s&&s.connected&&s.close()}),await Promise.all(this.parties.map(async s=>(s!==this.index&&await fetch(`${this.lookupEndpoint(this.session,s)}/cleanup`,{method:"POST",headers:{"Content-Type":"application/json",[XC]:this.sid},body:JSON.stringify(Tt({session:this.session},i))}),Promise.resolve(!0))))}}class xye{constructor(){$e(this,"get",i=>new Promise(s=>{if(globalThis!=null&&globalThis.localStorage){const f=globalThis.localStorage.getItem(i);s(f)}else chrome.storage.local.get(i,f=>(s(f[i]),f))})),$e(this,"set",(i,s)=>new Promise(f=>{globalThis!=null&&globalThis.localStorage?(globalThis.localStorage.setItem(i,s),f()):chrome.storage.local.set({[i]:s},()=>{f()})})),$e(this,"delete",i=>new Promise(s=>{globalThis!=null&&globalThis.localStorage?(globalThis.localStorage.removeItem(i),s()):(chrome.storage.local.remove(i),s())}))}}new xye;function Rye(o){const i=atob(o);return Uint8Array.from(i,s=>s.codePointAt(0))}function Dre(o){const i=String.fromCodePoint(...o);return btoa(i)}class kye{constructor(){$e(this,"items",void 0),this.items=[]}add(i){return this.items.push(i),i}free(){this.items.forEach(i=>{try{i.free()}catch(s){console.log(`Warning: freeing value: ${s}`)}}),this.items=[]}}var rD={exports:{}},iD={exports:{}},nD={exports:{}},oD={exports:{}},TY;function Sre(){return TY||(TY=1,function(o){function i(s){"@babel/helpers - typeof";return o.exports=i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(f){return typeof f}:function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f},o.exports.__esModule=!0,o.exports.default=o.exports,i(s)}o.exports=i,o.exports.__esModule=!0,o.exports.default=o.exports}(oD)),oD.exports}var aD={exports:{}},YY;function Nye(){return YY||(YY=1,function(o){var i=Sre().default;function s(f,l){if(i(f)!="object"||!f)return f;var r=f[Symbol.toPrimitive];if(r!==void 0){var B=r.call(f,l||"default");if(i(B)!="object")return B;throw new TypeError("@@toPrimitive must return a primitive value.")}return(l==="string"?String:Number)(f)}o.exports=s,o.exports.__esModule=!0,o.exports.default=o.exports}(aD)),aD.exports}var JY;function _ye(){return JY||(JY=1,function(o){var i=Sre().default,s=Nye();function f(l){var r=s(l,"string");return i(r)=="symbol"?r:r+""}o.exports=f,o.exports.__esModule=!0,o.exports.default=o.exports}(nD)),nD.exports}var PY;function Kye(){return PY||(PY=1,function(o){var i=_ye();function s(f,l,r){return(l=i(l))in f?Object.defineProperty(f,l,{value:r,enumerable:!0,configurable:!0,writable:!0}):f[l]=r,f}o.exports=s,o.exports.__esModule=!0,o.exports.default=o.exports}(iD)),iD.exports}var OY;function Fye(){return OY||(OY=1,function(o){(()=>{var i={};i.n=w=>{var M=w&&w.__esModule?()=>w.default:()=>w;return i.d(M,{a:M}),M},i.d=(w,M)=>{for(var m in M)i.o(M,m)&&!i.o(w,m)&&Object.defineProperty(w,m,{enumerable:!0,get:M[m]})},i.o=(w,M)=>Object.prototype.hasOwnProperty.call(w,M),i.r=w=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(w,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(w,"__esModule",{value:!0})};var s={};i.r(s),i.d(s,{AwaitableMap:()=>r,MapQueue:()=>B,deriveShareCoefficients:()=>v,fraction:()=>Q,lagrangeCoefficient:()=>d,lagrangeCoefficients:()=>y});const f=Kye();var l=i.n(f);class r{constructor(){l()(this,"map",new Map),l()(this,"queue",new Map)}get size(){return this.map.size}getSync(M){return this.map.get(M)}async get(M,m=0){const x=this.map.get(M);return x||new Promise(D=>{const S={resolve:D,timeout:setTimeout(()=>{const N=this.queue.get(M);if(N){const L=N.indexOf(S);L>=0&&N.splice(L,1)}D(void 0)},m)};let K=this.queue.get(M);K||(K=[],this.queue.set(M,K)),K.push(S)})}set(M,m){this.map.set(M,m);const x=this.queue.get(M);if(x){for(const D of x)clearTimeout(D.timeout),D.resolve(m);this.queue.delete(M)}}delete(M){this.map.delete(M),this.queue.delete(M)}forEach(M){this.map.forEach(M)}clear(){this.map.clear(),this.queue.clear()}}class B{constructor(){l()(this,"buffer",new Map),l()(this,"queue",new Map)}async pop(M,m=0){const x=this.buffer.get(M);return x&&x.length>0?x.splice(0,1)[0]:new Promise(D=>{const S={resolve:D,timeout:setTimeout(()=>{const N=this.queue.get(M);if(N){const L=N.indexOf(S);L>=0&&N.splice(L,1)}D(void 0)},m)};let K=this.queue.get(M);K||(K=[],this.queue.set(M,K)),K.push(S)})}push(M,m){const x=this.queue.get(M);if(x&&x.length>0){const S=x.splice(0,1)[0];clearTimeout(S.timeout),S.resolve(m);return}let D=this.buffer.get(M);D||(D=[],this.buffer.set(M,D)),D.push(m)}delete(M){this.buffer.delete(M),this.queue.delete(M)}forEach(M){this.buffer.forEach((m,x)=>{m.forEach(D=>{M(D,x)})})}clear(){this.buffer.clear(),this.queue.clear()}}const I=Pl();var p=i.n(I);function Q(w,M,m){return w.mul(M.invm(m)).umod(m)}function d(w,M,m,x){return w.filter((D,S)=>S!==M).reduce((D,S)=>{const K=Q(m.sub(S),w[M].sub(S),x);return D.mul(K).umod(x)},new(p())(1))}function y(w,M,m){const x=w.map(S=>new(p())(S)),D=new(p())(M);return x.map((S,K)=>d(x,K,D,m))}function v(w,M,m,x=1,D=2){const S=y([x,D],0,m),K=y(w,0,m);if(w.includes(M))throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${w} ${M}`);const N=y([M,...w],0,m),L=K.map((re,Z)=>Q(S[0].mul(re),N[Z+1],m)),j=Q(S[1],N[0],m);return{serverCoefficients:L,clientCoefficient:j}}o.exports=s})()}(rD)),rD.exports}var Gye=Fye();const Lye=1e4,Uye=1e4;function jY(o,i,s){return JSON.stringify([o,i,s])}class qye{constructor(i,s){$e(this,"session_id",void 0),$e(this,"sender_id",void 0),$e(this,"messages",new Gye.MapQueue),$e(this,"sockets",new Map),this.session_id=i,this.sender_id=s}getSocket(i){return this.sockets.get(i)}async connect(i,s){if(i.length!==s.length)throw new Error("ids must have same length as endpoints");this.close();const f=s.map(r=>{const B=new URL("socket.io",r);return Yc(B.origin,{path:B.pathname,transports:["websocket","polling"],withCredentials:!0,reconnectionDelayMax:1e4,reconnectionAttempts:3})}),l=f.map(r=>new Promise((B,I)=>{r.on("connect",B),setTimeout(()=>{I(new Error("Connection timeout"))},Uye)}));await Promise.all(l),f.forEach((r,B)=>{const I=i[B];r.on("send",async(p,Q)=>{if(p.sender!==I){console.log(`ignoring message: wrong sender: expected ${I}, got ${p.sender}`);return}if(p.session!==this.session_id){console.log(`ignoring message: wrong session: expected ${this.session_id}, got ${p.session}`);return}const d={sender:p.sender,data:Rye(p.msg_data),receiver:p.recipient,type:p.msg_type},y=jY(d.sender,d.receiver,d.type);this.messages.push(y,d),Q&&Q()}),this.sockets.set(I,r)})}close(){this.sockets.forEach(i=>i.disconnect()),this.sockets.clear()}async send(i,s,f){const l=this.sockets.get(i);if(!l)throw new Error("Socket not found");const r={msg_data:Dre(f),msg_type:s,recipient:i,sender:this.sender_id,session:this.session_id};l.emit("send_msg",r)}async receive(i,s){const f=jY(i,this.sender_id,s),l=await this.messages.pop(f,Lye);if(!l)throw new Error("Timeout");return l.data}}async function Hye(o,i,s,f,l,r,B,I,p,Q,d){const y=l.slice(),v=r.slice().map(x=>x.endsWith("/")?x.slice(0,-1):x);y.push(B),v.push(`websocket:${I.id}`);const w={session:i,msg:Dre(p),player_index:s,pubkey:f,parties:y,endpoints:v,signatures:Q,share_coefficient:d},M=new URL("sign",o),m=await fetch(M,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(w)});if(!m.ok){const x=(await m.json()).message;throw new Error(x)}}function Tye(){const o=new Uint8Array(32);return crypto.getRandomValues(o),o}async function Yye(o,i,s,f,l,r,B,I,p,Q=void 0){const d=new qye(i,r);await d.connect(f,l),f.forEach((w,M)=>{const m=d.getSocket(w);if(m===void 0)throw new Error(`socket not found: party ${w}`);Hye(new URL(l[M]),i,w,I,f,l,r,m,p,s,Q?Q[M]:void 0).catch(x=>{console.error(`Server ${M}: ${x}`)})});const y=Tye(),v=new kye;try{const w=v.add(new o.RngSeed(y)),M=v.add(o.KeyShare.from_raw(r,B,I));return v.add(await o.sign(w,d,new Uint32Array(f),M,p)).to_hex()}finally{v.free(),d.close()}}const sr={MAINNET:"mainnet",TESTNET:"testnet",CYAN:"cyan",AQUA:"aqua",CELESTE:"celeste"},ff={SAPPHIRE_DEVNET:"sapphire_devnet",SAPPHIRE_MAINNET:"sapphire_mainnet"};sr.MAINNET+"",sr.TESTNET+"",sr.CYAN+"",sr.AQUA+"",sr.CELESTE+"";sr.AQUA+"",ff.SAPPHIRE_MAINNET,sr.CELESTE+"",ff.SAPPHIRE_MAINNET,sr.CYAN+"",ff.SAPPHIRE_MAINNET,sr.MAINNET+"",ff.SAPPHIRE_MAINNET,sr.TESTNET+"",ff.SAPPHIRE_DEVNET;sr.MAINNET+"",sr.TESTNET+"",sr.CYAN+"",sr.AQUA+"",sr.CELESTE+"";ff.SAPPHIRE_MAINNET+"",ff.SAPPHIRE_DEVNET+"",sr.MAINNET+"",sr.TESTNET+"",sr.CYAN+"",sr.AQUA+"",sr.CELESTE+"";sr.MAINNET+"",sr.TESTNET+"",sr.CYAN+"",sr.AQUA+"",sr.CELESTE+"";const Jye=gs;function Pye(o){return Jye.decode(o)}function WY(o){let i=!1,s=0,f;try{f=window[o],i=!0,s=f.length;const l="__storage_test__";return f.setItem(l,l),f.removeItem(l),!0}catch(l){const r=l;return r&&(r.code===22||r.code===1014||r.name==="QuotaExceededError"||r.name==="NS_ERROR_DOM_QUOTA_REACHED")&&i&&s!==0}}class Oye{constructor(){$e(this,"store",new Map)}getItem(i){return this.store.get(i)||null}setItem(i,s){this.store.set(i,s)}removeItem(i){this.store.delete(i)}}class jye{constructor(i,s){$e(this,"storage",void 0),$e(this,"_storeKey",void 0),this.storage=s,this._storeKey=i;try{s.getItem(i)||this.resetStore()}catch{}}static getInstance(i){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"local";if(!this.instanceMap.has(i)){let f;s==="local"&&WY("localStorage")?f=window.localStorage:s==="session"&&WY("sessionStorage")?f=window.sessionStorage:f=new Oye,this.instanceMap.set(i,new this(i,f))}return this.instanceMap.get(i)}toJSON(){return this.storage.getItem(this._storeKey)}resetStore(){const i=this.getStore();return this.storage.removeItem(this._storeKey),i}getStore(){return JSON.parse(this.storage.getItem(this._storeKey)||"{}")}get(i){return JSON.parse(this.storage.getItem(this._storeKey)||"{}")[i]}set(i,s){const f=JSON.parse(this.storage.getItem(this._storeKey)||"{}");f[i]=s,this.storage.setItem(this._storeKey,JSON.stringify(f))}}$e(jye,"instanceMap",new Map);Tt(Tt({},ff),sr);const Wye=()=>new Io.eddsa("ed25519");function Vye(o=32){const i=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;if(i&&typeof i.getRandomValues=="function")return i.getRandomValues(new Uint8Array(o));throw new Error("crypto.getRandomValues must be defined")}function Zye(){return Buffer.from(Vye(32))}const QR=()=>{const o=or.genKeyPair(),i=TA.fromElliptic(o.getPublic());return{private:o.getPrivate(),pub:i}},zye=(o,i,s,f)=>{const l=[],r=[],B=[],I=[];for(let p=0;p{const s=`${o}_${i}`;let f=Kr(Buffer.from(s,"utf8"));return f=f.replace("0x",""),new Bt(f,"hex")};function _0(o){return o.toArrayLike(Buffer,"be",Age)}function $ye(o,i){if(i>o.length)throw new Error("Invalid number of endpoints");return o.slice().sort(()=>Math.random()-.5).slice(0,i).sort((f,l)=>f.index-l.index)}function yR(o,i,s){return i.mul(s.invm(o.n)).umod(o.n)}function Xye(o,i,s,f){return i.filter((l,r)=>r!==s).reduce((l,r)=>{const B=yR(o,f.sub(r),i[s].sub(r));return l.mul(B).umod(o.n)},new Bt(1))}function sD(o,i,s){const f=i.map(r=>new Bt(r)),l=new Bt(s);return f.map((r,B)=>Xye(o,f,B,l))}const eve=1,tve=2;function Ave(o,i,s,f=tve){const l=sD(o,[eve,f],0),r=sD(o,i,0);if(i.includes(s))throw new Error(`Invalid server x-coordinates: overlapping with client x-coordinate: ${i} ${s}`);const B=sD(o,[s,...i],0),I=r.map((Q,d)=>yR(o,l[0].mul(Q),B[d+1])),p=yR(o,l[1],B[0]);return{serverCoefficients:I,clientCoefficient:p}}function VY(){return Kr(Buffer.from(RN().toString("hex")+Date.now(),"utf8"))}function ZY(o,i,s,f,l){return`${o}${GI.Delimiter1}${i}${GI.Delimiter2}${s}${GI.Delimiter3}${f}${GI.Delimiter4}${l}`}function rve(o){if(o.length!==65)throw new Error(`Invalid signature length: expected 65, got ${o.length}`);return{r:o.subarray(0,32),s:o.subarray(32,64),v:o[64]}}function ive(o){if(o.keyType!==Xn.secp256k1)throw new Error(`Invalid key type: expected secp256k1, got ${o.keyType}`);return{sign:async i=>{const s=await o.sign(i,!0);return rve(s)},getPublic:async()=>TA.fromSEC1(DA,o.getPubKey().toString("hex")).toSEC1(DA).subarray(1)}}const qr=hs.getLogger("mpc-core-kit");qr.disableAll();class Rre{constructor(i){var s;if($e(this,"state",{accountIndex:0}),$e(this,"torusSp",null),$e(this,"fetchSessionSignatures",void 0),$e(this,"options",void 0),$e(this,"storageLayer",null),$e(this,"tkey",null),$e(this,"sessionManager",void 0),$e(this,"currentStorage",void 0),$e(this,"_storageBaseKey","corekit_store"),$e(this,"enableLogging",!1),$e(this,"ready",!1),$e(this,"_tssLib",void 0),$e(this,"wasmLib",void 0),$e(this,"_keyType",void 0),$e(this,"atomicCallStackCounter",0),$e(this,"getTssFactorPub",()=>{if(this.checkReady(),!this.state.factorKey)throw bt.factorKeyNotPresent("factorKey not present in state when getting tss factor public key.");return this.tKey.metadata.factorPubs[this.tKey.tssTag].map(r=>r.toSEC1(or,!0).toString("hex"))}),!i.web3AuthClientId)throw bt.clientIdInvalid();this._tssLib=i.tssLib,this._keyType=i.tssLib.keyType;const f=this.isNodejsOrRN(i.uxMode);i.enableLogging?(qr.enableAll(),this.enableLogging=!0):qr.setLevel("error"),typeof i.manualSync!="boolean"&&(i.manualSync=!1),i.web3AuthNetwork||(i.web3AuthNetwork=$X.MAINNET),i.sessionTime||(i.sessionTime=86400),i.serverTimeOffset||(i.serverTimeOffset=0),i.uxMode||(i.uxMode=ao.REDIRECT),i.redirectPathName||(i.redirectPathName="redirect"),i.baseUrl||(i.baseUrl=f?"https://localhost":`${(s=window)===null||s===void 0?void 0:s.location.origin}/serviceworker`),i.disableHashedFactorKey||(i.disableHashedFactorKey=!1),i.hashedFactorNonce||(i.hashedFactorNonce=i.web3AuthClientId),i.disableSessionManager===void 0&&(i.disableSessionManager=!1),this.fetchSessionSignatures=()=>Promise.resolve(this.signatures),this.options=i,this.currentStorage=new XX(this._storageBaseKey,i.storage),i.disableSessionManager||(this.sessionManager=new bY({sessionTime:i.sessionTime})),fo.setSessionTime(this.options.sessionTime)}get tKey(){if(this.tkey===null)throw bt.tkeyInstanceUninitialized();return this.tkey}get keyType(){return this._keyType}get signatures(){var i;return(i=this.state)!==null&&i!==void 0&&i.signatures?this.state.signatures:[]}get config(){return this.options}get _storageKey(){return this._storageBaseKey}get status(){try{const{tkey:i}=this;return i?i.metadata?!i.secp256k1Key||!this.state.factorKey?Zr.REQUIRED_SHARE:Zr.LOGGED_IN:Zr.INITIALIZED:Zr.NOT_INITIALIZED}catch{}return Zr.NOT_INITIALIZED}get sessionId(){var i;return(i=this.sessionManager)===null||i===void 0?void 0:i.sessionId}get supportsAccountIndex(){return this._keyType!==Xn.ed25519}get verifier(){var i,s;return(i=this.state.userInfo)!==null&&i!==void 0&&i.aggregateVerifier?this.state.userInfo.aggregateVerifier:(s=this.state)!==null&&s!==void 0&&(s=s.userInfo)!==null&&s!==void 0&&s.verifier?this.state.userInfo.verifier:""}get verifierId(){var i;return(i=this.state)!==null&&i!==void 0&&(i=i.userInfo)!==null&&i!==void 0&&i.verifierId?this.state.userInfo.verifierId:""}get isRedirectMode(){return this.options.uxMode===ao.REDIRECT}get useClientGeneratedTSSKey(){return this.keyType===Xn.ed25519&&this.options.useClientGeneratedTSSKey===void 0?!0:!!this.options.useClientGeneratedTSSKey}setSessionSigGenerator(i){this.fetchSessionSignatures=i}async _UNSAFE_recoverTssKey(i){this.checkReady();const s=new Bt(i[0],"hex"),f=await this.getFactorKeyMetadata(s);await this.tKey.initialize({withShare:f});const l=[],r=[],B=[];for(let p=0;p{qr.error("rehydrate session error",p)});if(I){await this.rehydrateSession(I);return}}}await this.featureRequest()}async loginWithOAuth(i){if(this.checkReady(),this.isNodejsOrRN(this.options.uxMode))throw bt.oauthLoginUnsupported(`Oauth login is NOT supported in ${this.options.uxMode} mode.`);const{importTssKey:s}=i,f=this.torusSp;try{const l=i,r=i;if(l.subVerifierDetails){const B=await f.triggerLogin(i.subVerifierDetails);if(this.isRedirectMode)return;await this._finalizeOauthLogin(B,B.userInfo,!0,s)}else if(r.subVerifierDetailsArray){const B=await f.triggerAggregateLogin({aggregateVerifierType:r.aggregateVerifierType||eee.SINGLE_VERIFIER_ID,verifierIdentifier:r.aggregateVerifierIdentifier,subVerifierDetailsArray:r.subVerifierDetailsArray});if(this.isRedirectMode)return;await this._finalizeOauthLogin(B,B.userInfo[0],!0,s)}}catch(l){throw qr.error("login error",l),l instanceof Ct&&l.code===1302?bt.default(Aw.TKEY_SHARES_REQUIRED):bt.default(l.message)}}async loginWithJWT(i){this.checkReady();const{prefetchTssPublicKeys:s=1}=i;if(s>3)throw bt.prefetchValueExceeded(`The prefetch value '${s}' exceeds the maximum allowed limit of 3.`);const{verifier:f,verifierId:l,idToken:r,importTssKey:B}=i;this.torusSp.verifierName=f,this.torusSp.verifierId=l;try{const I=[];for(let y=0;y{let r;if(this.isNodejsOrRN(this.options.uxMode))r={browserName:"Node Env",browserVersion:"",deviceName:"nodejs"};else{const Q=mh.parse(navigator.userAgent);r={browserName:`${Q.browser.name}`,browserVersion:Q.browser.version,deviceName:Q.os.name}}const B=new Bt(await this.createFactor({shareType:qo.DEVICE,additionalMetadata:r}),"hex");await this.setDeviceFactor(B),await this.inputFactorKey(new Bt(B,"hex"));const I=ua(l,or);await this.deleteFactor(I,l),await this.deleteMetadataShareBackup(l);let p;return s&&(p=await this.createFactor(Tt({shareType:qo.RECOVERY},i))),p}).catch(r=>{qr.error("error enabling MFA:",r.message);const B=bt.default(r.message);throw B.stack=r.stack,B})}async createFactor(i){this.checkReady();const{shareType:s}=i;let{factorKey:f,shareDescription:l,additionalMetadata:r}=i;if(!$0.includes(s))throw bt.newShareIndexInvalid(`Invalid share type provided (${s}). Valid share types are ${$0}.`);f||(f=QR().private),l||(l=Fc.Other),r||(r={});const B=ua(f,or);if(this.getTssFactorPub().includes(B.toSEC1(or,!0).toString("hex")))throw bt.factorKeyAlreadyExists();return this.atomicSync(async()=>(await this.copyOrCreateShare(s,B),await this.backupMetadataShare(f),await this.addFactorDescription({factorKey:f,shareDescription:l,additionalMetadata:r,updateMetadata:!1}),_0(f).toString("hex"))).catch(I=>{qr.error("error creating factor:",I.message);const p=bt.default(`error creating factor: ${I.message}`);throw p.stack=I.stack,p})}getPubKey(){const{tssPubKey:i}=this.state;return Buffer.from(i)}getPubKeyPoint(){const{tssPubKey:i}=this.state;return TA.fromSEC1(this.tkey.tssCurve,i.toString("hex"))}getPubKeyEd25519(){const i=this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic();return Wye().keyFromPublic(i).getPublic()}async precompute_secp256k1(){this.wasmLib=await this.loadTssWasm();const{tssShareIndex:i}=this.state,s=this.getPubKeyPoint(),{torusNodeTSSEndpoints:f}=UC(this.options.web3AuthNetwork,this.keyType);if(!this.state.factorKey)throw bt.factorKeyNotPresent("factorKey not present in state when signing.");const{tssShare:l}=await this.tKey.getTSSShare(this.state.factorKey,{accountIndex:0}),r=this.getTssNonce();if(!s||!f)throw bt.tssPublicKeyOrEndpointsMissing();const B=VY(),I=ZY(this.verifier,this.verifierId,this.tKey.tssTag,r,B),p=4,Q=p-1,{nodeIndexes:d}=await this.torusSp.getTSSPubKey(this.tKey.tssTag,this.tKey.metadata.tssNonces[this.tKey.tssTag]),{endpoints:y,tssWSEndpoints:v,partyIndexes:w,nodeIndexesReturned:M}=zye(f,p,Q,d),m=await Dye(v,B),D=HY(!0,M,i).mul(l).umod(DA.curve.n),S=this.tkey.computeAccountNonce(this.state.accountIndex),K=D.add(S).umod(DA.curve.n),N=_0(K).toString("base64");if(!I)throw bt.activeSessionNotFound();const L=await this.fetchSessionSignatures();if(!L)throw bt.signaturesNotPresent();const j=Buffer.from(s.toSEC1(DA).subarray(1)).toString("base64"),re=new Sye(I,Q,w,y,m,N,j,!0,this.wasmLib),Z={};for(let J=0;J{throw re.cleanup({signatures:L,server_coeffs:Z}),J}),{client:re,serverCoeffs:Z,signatures:L}}async sign(i,s=!1,f){if(this.wasmLib=await this.loadTssWasm(),this.keyType===Xn.secp256k1){const l=await this.sign_ECDSA_secp256k1(i,s,f);return Buffer.concat([l.r,l.s,Buffer.from([l.v])])}else if(this.keyType===Xn.ed25519)return this.sign_ed25519(i,s);throw bt.default(`sign not supported for key type ${this.keyType}`)}async deleteFactor(i,s){if(!this.state.factorKey)throw bt.factorKeyNotPresent("factorKey not present in state when deleting a factor.");if(!this.tKey.metadata.factorPubs)throw bt.factorPubsMissing();await this.atomicSync(async()=>{if((this.tKey.metadata.factorPubs[this.tKey.tssTag].length||0)<=1)throw bt.cannotDeleteLastFactor("Cannot delete last factor");const l=i,r=ua(this.state.factorKey,or);if(l.equals(r))throw bt.factorInUseCannotBeDeleted("Cannot delete current active factor");const B=await this.fetchSessionSignatures();await this.tKey.deleteFactorPub({factorKey:this.state.factorKey,deleteFactorPub:i,authSignatures:B});const I=l.toSEC1(or,!0).toString("hex"),Q=this.tKey.metadata.getShareDescription()[I];if(Q&&await Promise.all(Q.map(async d=>{var y;return(y=this.tKey)===null||y===void 0?void 0:y.metadata.deleteShareDescription(I,d)})),s){const d=new Bt(s,"hex");ua(d,or).equals(l)&&await this.deleteMetadataShareBackup(d)}})}async logout(){var i;(i=this.sessionManager)!==null&&i!==void 0&&i.sessionId&&await this.sessionManager.invalidateSession(),await this.currentStorage.set("sessionId",""),this.resetState(),await this.init({handleRedirectResult:!1,rehydrate:!1})}getUserInfo(){if(!this.state.userInfo)throw bt.userNotLoggedIn();return this.state.userInfo}getKeyDetails(){this.checkReady();const i=this.tKey.getKeyDetails(),s=this.state.tssPubKey?TA.fromSEC1(this.tkey.tssCurve,this.state.tssPubKey.toString("hex")):void 0,f=this.tKey.metadata.factorPubs?this.tKey.metadata.factorPubs[this.tKey.tssTag]:[];return{requiredFactors:i.requiredShares,threshold:i.threshold,totalFactors:f.length+1,shareDescriptions:this.tKey.getMetadata().getShareDescription(),metadataPubKey:i.pubKey,tssPubKey:s,keyType:this.keyType}}async commitChanges(){if(this.checkReady(),!this.state.factorKey)throw bt.factorKeyNotPresent("factorKey not present in state when committing changes.");try{await this.tKey._syncShareMetadata(),await this.tKey.syncLocalMetadataTransitions()}catch(i){throw qr.error("sync metadata error",i),i}}async setManualSync(i){this.checkReady(),await this.tKey.syncLocalMetadataTransitions(),this.options.manualSync=i,this.tKey.manualSync=i}async setDeviceFactor(i,s=!1){if(!s&&await this.getDeviceFactor())throw bt.default("Device factor already exists");const l=this.tKey.getMetadata().pubKey.x.toString(16,rw);await this.currentStorage.set(l,JSON.stringify({factorKey:i.toString("hex").padStart(64,"0")}))}async getDeviceFactor(){const s=this.tKey.getMetadata().pubKey.x.toString(16,rw),f=await this.currentStorage.get(s);return JSON.parse(f||"{}").factorKey}async _UNSAFE_exportTssKey(){if(this.keyType!==Xn.secp256k1)throw bt.default("Wrong KeyType. Method can only be used when KeyType is secp256k1");if(!this.state.factorKey)throw bt.factorKeyNotPresent("factorKey not present in state when exporting tss key.");if(!this.state.signatures)throw bt.signaturesNotPresent("Signatures not present in state when exporting tss key.");const i=await this.tKey._UNSAFE_exportTssKey({factorKey:this.state.factorKey,authSignatures:this.state.signatures}),s=this.getAccountNonce();return i.add(s).umod(this.tKey.tssCurve.n).toString("hex",rw)}async _UNSAFE_exportTssEd25519Seed(){if(this.keyType!==Xn.ed25519)throw bt.default("Wrong KeyType. Method can only be used when KeyType is ed25519");if(!this.state.factorKey)throw bt.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed.");if(!this.state.signatures)throw bt.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed.");try{return await this.tKey._UNSAFE_exportTssEd25519Seed({factorKey:this.state.factorKey,authSignatures:this.state.signatures})}catch(i){throw bt.default(`Error exporting ed25519 seed: ${i}`)}}updateState(i){this.state=Tt(Tt({},this.state),i)}async atomicSync(i){this.atomicCallStackCounter+=1,this.tkey.manualSync=!0;try{const s=await i();return this.atomicCallStackCounter===1&&(this.options.manualSync||await this.commitChanges()),s}catch(s){throw s}finally{this.atomicCallStackCounter-=1,this.atomicCallStackCounter===0&&(this.tkey.manualSync=this.options.manualSync)}}async importTssKey(i,s,f=qo.DEVICE){if(!this.state.signatures)throw bt.signaturesNotPresent("Signatures not present in state when importing tss key.");await this.tKey.importTssKey({tag:this.tKey.tssTag,importKey:Buffer.from(i,"hex"),factorPub:s,newTSSIndex:f},{authSignatures:this.state.signatures})}getTssNonce(){if(!this.tKey.metadata.tssNonces||this.tKey.metadata.tssNonces[this.tKey.tssTag]===void 0)throw bt.tssNoncesMissing(`tssNonce not present for tag ${this.tKey.tssTag}`);return this.tKey.metadata.tssNonces[this.tKey.tssTag]}async setupTkey(i){if(!this.state.postBoxKey)throw bt.userNotLoggedIn();const s=await this.isMetadataPresent(this.state.postBoxKey);let f=i;if(s){if(f)throw bt.tssKeyImportNotAllowed();await this.handleExistingUser()}else{if(!f&&this.useClientGeneratedTSSKey)if(this.keyType===Xn.ed25519)f=Zye().toString("hex");else if(this.keyType===Xn.secp256k1){const l=DA.genKeyPair().getPrivate();f=_0(l).toString("hex")}else throw bt.default("Unsupported key type");await this.handleNewUser(f)}}async handleNewUser(i){await this.atomicSync(async()=>{let s;if(this.options.disableHashedFactorKey){s=QR().private;const r=RB(this.state.postBoxKey,this.options.hashedFactorNonce);await this.deleteMetadataShareBackup(r)}else s=RB(this.state.postBoxKey,this.options.hashedFactorNonce);const f=qo.DEVICE,l=ua(s,or);if(i)await this.tKey.initialize({skipTssInit:!0}),await this.tKey.reconstructKey(),await this.importTssKey(i,l,f);else{const B=new Io.ec(this.keyType).genKeyPair().getPrivate();await this.tKey.initialize({factorPub:l,deviceTSSShare:B,deviceTSSIndex:f})}await this.tKey.reconstructKey(),await this.finalizeTkey(s),await this.backupMetadataShare(s),this.options.disableHashedFactorKey?await this.addFactorDescription({factorKey:s,shareDescription:Fc.Other,updateMetadata:!1}):await this.addFactorDescription({factorKey:s,shareDescription:Fc.HashedShare,updateMetadata:!1})})}async handleExistingUser(){if(await this.tKey.initialize({neverInitializeNewKey:!0}),this.options.disableHashedFactorKey)return;const i=RB(this.state.postBoxKey,this.options.hashedFactorNonce);if(this.state.factorKey=i,await this.checkIfFactorKeyValid(i)){const f=await this.getFactorKeyMetadata(i);try{await this.tKey.inputShareStoreSafe(f,!0),await this.tKey.reconstructKey(),await this.finalizeTkey(i)}catch(l){qr.error("error initializing tkey with hashed share",l)}}else{var s;(await((s=this.tKey)===null||s===void 0?void 0:s.readMetadata(i))).message==="SHARE_DELETED"&&qr.warn("hashed factor deleted")}}async finalizeTkey(i){this.state.accountIndex!==0&&(qr.warn("AccountIndex should be 0"),this.state.accountIndex=0);const{tssIndex:s}=await this.tKey.getTSSShare(i),f=this.tKey.getTSSPub().toSEC1(this.tkey.tssCurve,!1);this.updateState({tssShareIndex:s,tssPubKey:f,factorKey:i}),await this.createSession()}checkReady(){if(!this.ready)throw bt.mpcCoreKitNotInitialized()}async rehydrateSession(i){try{this.checkReady();const s=new Bt(i.factorKey,"hex");if(!s)throw bt.providedFactorKeyInvalid();const f=i.postBoxKey||i.oAuthKey;if(!f)throw bt.default("postBoxKey or oAuthKey not present in session data");this.torusSp.postboxKey=new Bt(f,"hex"),this.torusSp.verifierName=i.userInfo.aggregateVerifier||i.userInfo.verifier,this.torusSp.verifierId=i.userInfo.verifierId;const l=await this.getFactorKeyMetadata(s);await this.tKey.initialize({neverInitializeNewKey:!0}),await this.tKey.inputShareStoreSafe(l,!0),await this.tKey.reconstructKey(),this.updateState({factorKey:new Bt(i.factorKey,"hex"),postBoxKey:f,postboxKeyNodeIndexes:i.postboxKeyNodeIndexes||[],tssShareIndex:i.tssShareIndex,tssPubKey:this.tkey.getTSSPub().toSEC1(this.tKey.tssCurve,!1),signatures:i.signatures,userInfo:i.userInfo})}catch(s){qr.warn("failed to authorize session",s)}}async createSession(){if(!this.options.disableSessionManager&&!this.sessionManager)throw new Error("sessionManager is not available");try{const i=bY.generateRandomSessionKey();this.sessionManager.sessionId=i;const{postBoxKey:s,factorKey:f,userInfo:l,tssShareIndex:r,tssPubKey:B,postboxKeyNodeIndexes:I}=this.state;if(!this.state.factorKey)throw bt.factorKeyNotPresent("factorKey not present in state when creating session.");const{tssShare:p}=await this.tKey.getTSSShare(this.state.factorKey,{accountIndex:this.state.accountIndex});if(!s||!f||!p||!B||!l)throw bt.userNotLoggedIn();const Q={postBoxKey:s,postboxKeyNodeIndexes:I||[],factorKey:f==null?void 0:f.toString("hex"),tssShareIndex:r,tssPubKey:Buffer.from(B).toString("hex"),signatures:this.signatures,userInfo:l};await this.sessionManager.createSession(Q),await this.currentStorage.set("sessionId",i)}catch(i){qr.error("error creating session",i)}}async isMetadataPresent(i){var s;const f=new Bt(i,"hex"),l=await((s=this.tKey)===null||s===void 0?void 0:s.readMetadata(f));return!!(l&&l.message!=="KEY_NOT_FOUND")}async checkIfFactorKeyValid(i){var s;this.checkReady();const f=await((s=this.tKey)===null||s===void 0?void 0:s.readMetadata(i));return!(!f||f.message==="KEY_NOT_FOUND"||f.message==="SHARE_DELETED")}async getFactorKeyMetadata(i){var s;this.checkReady();const f=await((s=this.tKey)===null||s===void 0?void 0:s.readMetadata(i));if(!f||f.message==="KEY_NOT_FOUND")throw bt.noMetadataFound();return Dr.fromJSON(f)}async copyOrCreateShare(i,s){if(this.checkReady(),!this.tKey.metadata.factorPubs||!Array.isArray(this.tKey.metadata.factorPubs[this.tKey.tssTag]))throw bt.factorPubsMissing("'factorPubs' is missing in the metadata. Failed to copy factor public key.");if(!this.tKey.metadata.factorEncs||typeof this.tKey.metadata.factorEncs[this.tKey.tssTag]!="object")throw bt.factorEncsMissing("'factorEncs' is missing in the metadata. Failed to copy factor public key.");if(!this.state.factorKey)throw bt.factorKeyNotPresent("factorKey not present in state when copying or creating a share.");if($0.indexOf(i)===-1)throw bt.newShareIndexInvalid(`Invalid share type provided (${i}). Valid share types are ${$0}.`);if(this.tKey.metadata.factorPubs[this.tKey.tssTag].length>=y9)throw bt.maximumFactorsReached(`The maximum number of allowable factors (${y9}) has been reached.`);const f=await this.fetchSessionSignatures();await this.tkey.addFactorPub({existingFactorKey:this.state.factorKey,authSignatures:f,newFactorPub:s,newTSSIndex:i,refreshShares:this.state.tssShareIndex!==i})}async getMetadataShare(){try{var i,s;const f=(i=this.tKey)===null||i===void 0?void 0:i.metadata.getLatestPublicPolynomial().getPolynomialID(),l=(s=this.tKey)===null||s===void 0?void 0:s.shares[f];let r=null;for(const B in l)B!==rge.toString()&&(r=l[B]);if(!r)throw bt.noMetadataShareFound();return r}catch(f){throw qr.error("create device share error",f),bt.default(f.message)}}async deleteMetadataShareBackup(i){var s,f;await this.tKey.addLocalMetadataTransitions({input:[{message:WC,dateAdded:Date.now()}],privKey:[i]}),(s=this.tkey)!==null&&s!==void 0&&s.manualSync||await((f=this.tkey)===null||f===void 0?void 0:f.syncLocalMetadataTransitions())}async backupMetadataShare(i){var s,f,l;const r=await this.getMetadataShare();await((s=this.tKey)===null||s===void 0?void 0:s.addLocalMetadataTransitions({input:[r],privKey:[i]})),(f=this.tkey)!==null&&f!==void 0&&f.manualSync||await((l=this.tkey)===null||l===void 0?void 0:l.syncLocalMetadataTransitions())}async addFactorDescription(i){var s;const{factorKey:f,shareDescription:l,updateMetadata:r}=i;let{additionalMetadata:B}=i;B||(B={});const{tssIndex:I}=await this.tKey.getTSSShare(f),Q=ua(f,or).toSEC1(or,!0).toString("hex"),d=Tt(Tt({module:l,dateAdded:Date.now()},B),{},{tssShareIndex:I});await((s=this.tKey)===null||s===void 0?void 0:s.addShareDescription(Q,JSON.stringify(d),r))}resetState(){this.ready=!1,this.tkey=null,this.torusSp=null,this.storageLayer=null,this.state={accountIndex:0}}_getPostBoxKey(i){return fo.getPostboxKey(i)}_getSignatures(i){return i.filter(s=>!!s).map(s=>JSON.stringify({data:s.token,sig:s.signature}))}isNodejsOrRN(i){const s=i;return s==="nodejs"||s==="react-native"}async featureRequest(){const i=X0e[this.options.web3AuthNetwork],s={network:this.options.web3AuthNetwork,client_id:this.options.web3AuthClientId,is_mpc_core_kit:"true",enable_gating:"true",session_time:this.options.sessionTime.toString()},f=new URL(`${i}/api/feature-access`);f.search=new URLSearchParams(s).toString();const l=await fetch(f);if(l.status!==200){this.resetState();const r=await l.json();throw bt.default(r.error)}return l.json()}getAccountNonce(){return this.tkey.computeAccountNonce(this.state.accountIndex)}async sign_ECDSA_secp256k1(i,s=!1,f){const l=async(Q,d,y,v)=>{const{r:w,s:M,recoveryParam:m}=await Q.sign(y.toString("base64"),!0,"","keccak256",{signatures:v});return Q.cleanup({signatures:v,server_coeffs:d}),{v:m,r:_0(w),s:_0(M)}};s||(i=pa(i));const r=(f==null?void 0:f.client)&&(f==null?void 0:f.serverCoeffs),{client:B,serverCoeffs:I,signatures:p}=r?f:await this.precompute_secp256k1();if(!p)throw bt.signaturesNotPresent();try{return await l(B,I,i,p)}catch(Q){if(!r)throw Q;const{client:d,serverCoeffs:y}=await this.precompute_secp256k1();return await l(d,y,i,p)}}async sign_ed25519(i,s=!1){if(s)throw bt.default("hashed data not supported for ed25519");const f=UC(this.options.web3AuthNetwork,"ed25519");if(!f.torusNodeTSSEndpoints)throw bt.default("could not fetch tss node endpoints");const l=f.torusNodeTSSEndpoints.map((J,Ae)=>({index:f.torusIndexes[Ae],url:`${J}/`})),r=Math.floor(l.length/2)+1,B=$ye(l,r),I=B.map(J=>J.index),p=Math.max(...B.map(J=>J.index))+1,Q=new bQe,{serverCoefficients:d,clientCoefficient:y}=Ave(Q,I,p,this.state.tssShareIndex),v=await this.getPubKey(),w=Q.keyFromPublic(v).getPublic();if(this.state.accountIndex!==0)throw bt.default("Account index not supported for ed25519");const{tssShare:M}=await this.tKey.getTSSShare(this.state.factorKey),m=M.mul(y).umod(Q.n),x=Q.scalarToBuffer(m,Buffer).toString("hex"),D=this.getTssNonce(),S=VY(),K=ZY(this.verifier,this.verifierId,this.tKey.tssTag,D,S),N=B.map(J=>J.url),L=Q.pointToBuffer(w,Buffer).toString("hex"),j=d.map(J=>Q.scalarToBuffer(J,Buffer).toString("hex")),re=await this.fetchSessionSignatures(),Z=await Yye(this.wasmLib,K,re,I,N,p,x,L,i,j);return qr.info(`signature: ${Z}`),Buffer.from(Z,"hex")}async loadTssWasm(){if(this.wasmLib)return this.wasmLib;if(typeof this._tssLib.load=="function")return this._tssLib.load();if(this._tssLib.lib)return this._tssLib.lib}}function nl(o){"@babel/helpers - typeof";return nl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},nl(o)}function nve(o,i){if(nl(o)!="object"||!o)return o;var s=o[Symbol.toPrimitive];if(s!==void 0){var f=s.call(o,i||"default");if(nl(f)!="object")return f;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(o)}function ove(o){var i=nve(o,"string");return nl(i)=="symbol"?i:i+""}function JA(o,i,s){return(i=ove(i))in o?Object.defineProperty(o,i,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[i]=s,o}var fD={};const ave="elliptic",sve="6.6.1",fve="EC cryptography",hve="lib/elliptic.js",gve=["lib"],uve={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},cve={type:"git",url:"git@github.com:indutny/elliptic"},lve=["EC","Elliptic","curve","Cryptography"],dve="Fedor Indutny ",Ive="MIT",Bve={url:"https://github.com/indutny/elliptic/issues"},Cve="https://github.com/indutny/elliptic",Eve={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},pve={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},Qve={name:ave,version:sve,description:fve,main:hve,files:gve,scripts:uve,repository:cve,keywords:lve,author:dve,license:Ive,bugs:Bve,homepage:Cve,devDependencies:Eve,dependencies:pve};var hD={},tE={exports:{}},yve=tE.exports,zY;function ps(){return zY||(zY=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,yve)}(tE)),tE.exports}var gD,$Y;function Eo(){if($Y)return gD;$Y=1,gD=o;function o(i,s){if(!i)throw new Error(s||"Assertion failed")}return o.equal=function(s,f,l){if(s!=f)throw new Error(l||"Assertion failed: "+s+" != "+f)},gD}var uD={},XY;function kre(){return XY||(XY=1,function(o){var i=o;function s(r,B){if(Array.isArray(r))return r.slice();if(!r)return[];var I=[];if(typeof r!="string"){for(var p=0;p>8,y=Q&255;d?I.push(d,y):I.push(y)}return I}i.toArray=s;function f(r){return r.length===1?"0"+r:r}i.zero2=f;function l(r){for(var B="",I=0;I(m>>1)-1?D=(m>>1)-S:D=S,x.isubn(D)):D=0,w[M]=D,x.iushrn(1)}return w}i.getNAF=r;function B(d,y){var v=[[],[]];d=d.clone(),y=y.clone();for(var w=0,M=0,m;d.cmpn(-w)>0||y.cmpn(-M)>0;){var x=d.andln(3)+w&3,D=y.andln(3)+M&3;x===3&&(x=-1),D===3&&(D=-1);var S;x&1?(m=d.andln(7)+w&7,(m===3||m===5)&&D===2?S=-x:S=x):S=0,v[0].push(S);var K;D&1?(m=y.andln(7)+M&7,(m===3||m===5)&&x===2?K=-D:K=D):K=0,v[1].push(K),2*w===S+1&&(w=1-w),2*M===K+1&&(M=1-M),d.iushrn(1),y.iushrn(1)}return v}i.getJSF=B;function I(d,y,v){var w="_"+y;d.prototype[y]=function(){return this[w]!==void 0?this[w]:this[w]=v.call(this)}}i.cachedProperty=I;function p(d){return typeof d=="string"?i.toArray(d,"hex"):d}i.parseBytes=p;function Q(d){return new s(d,"hex","le")}i.intFromLE=Q}(hD)),hD}var kB={exports:{}},BA={},NB={exports:{}},_B={exports:{}},cD={},lc={},tJ;function vve(){if(tJ)return lc;tJ=1,lc.byteLength=I,lc.toByteArray=Q,lc.fromByteArray=v;for(var o=[],i=[],s=typeof Uint8Array<"u"?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,r=f.length;l0)throw new Error("Invalid string. Length must be a multiple of 4");var m=w.indexOf("=");m===-1&&(m=M);var x=m===M?0:4-m%4;return[m,x]}function I(w){var M=B(w),m=M[0],x=M[1];return(m+x)*3/4-x}function p(w,M,m){return(M+m)*3/4-m}function Q(w){var M,m=B(w),x=m[0],D=m[1],S=new s(p(w,x,D)),K=0,N=D>0?x-4:x,L;for(L=0;L>16&255,S[K++]=M>>8&255,S[K++]=M&255;return D===2&&(M=i[w.charCodeAt(L)]<<2|i[w.charCodeAt(L+1)]>>4,S[K++]=M&255),D===1&&(M=i[w.charCodeAt(L)]<<10|i[w.charCodeAt(L+1)]<<4|i[w.charCodeAt(L+2)]>>2,S[K++]=M>>8&255,S[K++]=M&255),S}function d(w){return o[w>>18&63]+o[w>>12&63]+o[w>>6&63]+o[w&63]}function y(w,M,m){for(var x,D=[],S=M;SN?N:K+S));return x===1?(M=w[m-1],D.push(o[M>>2]+o[M<<4&63]+"==")):x===2&&(M=(w[m-2]<<8)+w[m-1],D.push(o[M>>10]+o[M>>4&63]+o[M<<2&63]+"=")),D.join("")}return lc}var KB={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */var AJ;function wve(){return AJ||(AJ=1,KB.read=function(o,i,s,f,l){var r,B,I=l*8-f-1,p=(1<>1,d=-7,y=s?l-1:0,v=s?-1:1,w=o[i+y];for(y+=v,r=w&(1<<-d)-1,w>>=-d,d+=I;d>0;r=r*256+o[i+y],y+=v,d-=8);for(B=r&(1<<-d)-1,r>>=-d,d+=f;d>0;B=B*256+o[i+y],y+=v,d-=8);if(r===0)r=1-Q;else{if(r===p)return B?NaN:(w?-1:1)*(1/0);B=B+Math.pow(2,f),r=r-Q}return(w?-1:1)*B*Math.pow(2,r-f)},KB.write=function(o,i,s,f,l,r){var B,I,p,Q=r*8-l-1,d=(1<>1,v=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=f?0:r-1,M=f?1:-1,m=i<0||i===0&&1/i<0?1:0;for(i=Math.abs(i),isNaN(i)||i===1/0?(I=isNaN(i)?1:0,B=d):(B=Math.floor(Math.log(i)/Math.LN2),i*(p=Math.pow(2,-B))<1&&(B--,p*=2),B+y>=1?i+=v/p:i+=v*Math.pow(2,1-y),i*p>=2&&(B++,p/=2),B+y>=d?(I=0,B=d):B+y>=1?(I=(i*p-1)*Math.pow(2,l),B=B+y):(I=i*Math.pow(2,y-1)*Math.pow(2,l),B=0));l>=8;o[s+w]=I&255,w+=M,I/=256,l-=8);for(B=B<0;o[s+w]=B&255,w+=M,B/=256,Q-=8);o[s+w-M]|=m*128}),KB}/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */var rJ;function Vo(){return rJ||(rJ=1,function(o){const i=vve(),s=wve(),f=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;o.Buffer=I,o.SlowBuffer=S,o.INSPECT_MAX_BYTES=50;const l=2147483647;o.kMaxLength=l,I.TYPED_ARRAY_SUPPORT=r(),!I.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function r(){try{const H=new Uint8Array(1),k={foo:function(){return 42}};return Object.setPrototypeOf(k,Uint8Array.prototype),Object.setPrototypeOf(H,k),H.foo()===42}catch{return!1}}Object.defineProperty(I.prototype,"parent",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.buffer}}),Object.defineProperty(I.prototype,"offset",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.byteOffset}});function B(H){if(H>l)throw new RangeError('The value "'+H+'" is invalid for option "size"');const k=new Uint8Array(H);return Object.setPrototypeOf(k,I.prototype),k}function I(H,k,G){if(typeof H=="number"){if(typeof k=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(H)}return p(H,k,G)}I.poolSize=8192;function p(H,k,G){if(typeof H=="string")return v(H,k);if(ArrayBuffer.isView(H))return M(H);if(H==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof H);if(ce(H,ArrayBuffer)||H&&ce(H.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ce(H,SharedArrayBuffer)||H&&ce(H.buffer,SharedArrayBuffer)))return m(H,k,G);if(typeof H=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const O=H.valueOf&&H.valueOf();if(O!=null&&O!==H)return I.from(O,k,G);const ee=x(H);if(ee)return ee;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof H[Symbol.toPrimitive]=="function")return I.from(H[Symbol.toPrimitive]("string"),k,G);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof H)}I.from=function(H,k,G){return p(H,k,G)},Object.setPrototypeOf(I.prototype,Uint8Array.prototype),Object.setPrototypeOf(I,Uint8Array);function Q(H){if(typeof H!="number")throw new TypeError('"size" argument must be of type number');if(H<0)throw new RangeError('The value "'+H+'" is invalid for option "size"')}function d(H,k,G){return Q(H),H<=0?B(H):k!==void 0?typeof G=="string"?B(H).fill(k,G):B(H).fill(k):B(H)}I.alloc=function(H,k,G){return d(H,k,G)};function y(H){return Q(H),B(H<0?0:D(H)|0)}I.allocUnsafe=function(H){return y(H)},I.allocUnsafeSlow=function(H){return y(H)};function v(H,k){if((typeof k!="string"||k==="")&&(k="utf8"),!I.isEncoding(k))throw new TypeError("Unknown encoding: "+k);const G=K(H,k)|0;let O=B(G);const ee=O.write(H,k);return ee!==G&&(O=O.slice(0,ee)),O}function w(H){const k=H.length<0?0:D(H.length)|0,G=B(k);for(let O=0;O=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return H|0}function S(H){return+H!=H&&(H=0),I.alloc(+H)}I.isBuffer=function(k){return k!=null&&k._isBuffer===!0&&k!==I.prototype},I.compare=function(k,G){if(ce(k,Uint8Array)&&(k=I.from(k,k.offset,k.byteLength)),ce(G,Uint8Array)&&(G=I.from(G,G.offset,G.byteLength)),!I.isBuffer(k)||!I.isBuffer(G))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(k===G)return 0;let O=k.length,ee=G.length;for(let de=0,ie=Math.min(O,ee);deee.length?(I.isBuffer(ie)||(ie=I.from(ie)),ie.copy(ee,de)):Uint8Array.prototype.set.call(ee,ie,de);else if(I.isBuffer(ie))ie.copy(ee,de);else throw new TypeError('"list" argument must be an Array of Buffers');de+=ie.length}return ee};function K(H,k){if(I.isBuffer(H))return H.length;if(ArrayBuffer.isView(H)||ce(H,ArrayBuffer))return H.byteLength;if(typeof H!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof H);const G=H.length,O=arguments.length>2&&arguments[2]===!0;if(!O&&G===0)return 0;let ee=!1;for(;;)switch(k){case"ascii":case"latin1":case"binary":return G;case"utf8":case"utf-8":return xe(H).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G*2;case"hex":return G>>>1;case"base64":return Ue(H).length;default:if(ee)return O?-1:xe(H).length;k=(""+k).toLowerCase(),ee=!0}}I.byteLength=K;function N(H,k,G){let O=!1;if((k===void 0||k<0)&&(k=0),k>this.length||((G===void 0||G>this.length)&&(G=this.length),G<=0)||(G>>>=0,k>>>=0,G<=k))return"";for(H||(H="utf8");;)switch(H){case"hex":return g(this,k,G);case"utf8":case"utf-8":return n(this,k,G);case"ascii":return c(this,k,G);case"latin1":case"binary":return C(this,k,G);case"base64":return A(this,k,G);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return t(this,k,G);default:if(O)throw new TypeError("Unknown encoding: "+H);H=(H+"").toLowerCase(),O=!0}}I.prototype._isBuffer=!0;function L(H,k,G){const O=H[k];H[k]=H[G],H[G]=O}I.prototype.swap16=function(){const k=this.length;if(k%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let G=0;GG&&(k+=" ... "),""},f&&(I.prototype[f]=I.prototype.inspect),I.prototype.compare=function(k,G,O,ee,de){if(ce(k,Uint8Array)&&(k=I.from(k,k.offset,k.byteLength)),!I.isBuffer(k))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof k);if(G===void 0&&(G=0),O===void 0&&(O=k?k.length:0),ee===void 0&&(ee=0),de===void 0&&(de=this.length),G<0||O>k.length||ee<0||de>this.length)throw new RangeError("out of range index");if(ee>=de&&G>=O)return 0;if(ee>=de)return-1;if(G>=O)return 1;if(G>>>=0,O>>>=0,ee>>>=0,de>>>=0,this===k)return 0;let ie=de-ee,Ee=O-G;const Oe=Math.min(ie,Ee),Ce=this.slice(ee,de),Qe=k.slice(G,O);for(let Je=0;Je2147483647?G=2147483647:G<-2147483648&&(G=-2147483648),G=+G,Te(G)&&(G=ee?0:H.length-1),G<0&&(G=H.length+G),G>=H.length){if(ee)return-1;G=H.length-1}else if(G<0)if(ee)G=0;else return-1;if(typeof k=="string"&&(k=I.from(k,O)),I.isBuffer(k))return k.length===0?-1:re(H,k,G,O,ee);if(typeof k=="number")return k=k&255,typeof Uint8Array.prototype.indexOf=="function"?ee?Uint8Array.prototype.indexOf.call(H,k,G):Uint8Array.prototype.lastIndexOf.call(H,k,G):re(H,[k],G,O,ee);throw new TypeError("val must be string, number or Buffer")}function re(H,k,G,O,ee){let de=1,ie=H.length,Ee=k.length;if(O!==void 0&&(O=String(O).toLowerCase(),O==="ucs2"||O==="ucs-2"||O==="utf16le"||O==="utf-16le")){if(H.length<2||k.length<2)return-1;de=2,ie/=2,Ee/=2,G/=2}function Oe(Qe,Je){return de===1?Qe[Je]:Qe.readUInt16BE(Je*de)}let Ce;if(ee){let Qe=-1;for(Ce=G;Ceie&&(G=ie-Ee),Ce=G;Ce>=0;Ce--){let Qe=!0;for(let Je=0;Jeee&&(O=ee)):O=ee;const de=k.length;O>de/2&&(O=de/2);let ie;for(ie=0;ie>>0,isFinite(O)?(O=O>>>0,ee===void 0&&(ee="utf8")):(ee=O,O=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const de=this.length-G;if((O===void 0||O>de)&&(O=de),k.length>0&&(O<0||G<0)||G>this.length)throw new RangeError("Attempt to write outside buffer bounds");ee||(ee="utf8");let ie=!1;for(;;)switch(ee){case"hex":return Z(this,k,G,O);case"utf8":case"utf-8":return J(this,k,G,O);case"ascii":case"latin1":case"binary":return Ae(this,k,G,O);case"base64":return E(this,k,G,O);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return e(this,k,G,O);default:if(ie)throw new TypeError("Unknown encoding: "+ee);ee=(""+ee).toLowerCase(),ie=!0}},I.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function A(H,k,G){return k===0&&G===H.length?i.fromByteArray(H):i.fromByteArray(H.slice(k,G))}function n(H,k,G){G=Math.min(H.length,G);const O=[];let ee=k;for(;ee239?4:de>223?3:de>191?2:1;if(ee+Ee<=G){let Oe,Ce,Qe,Je;switch(Ee){case 1:de<128&&(ie=de);break;case 2:Oe=H[ee+1],(Oe&192)===128&&(Je=(de&31)<<6|Oe&63,Je>127&&(ie=Je));break;case 3:Oe=H[ee+1],Ce=H[ee+2],(Oe&192)===128&&(Ce&192)===128&&(Je=(de&15)<<12|(Oe&63)<<6|Ce&63,Je>2047&&(Je<55296||Je>57343)&&(ie=Je));break;case 4:Oe=H[ee+1],Ce=H[ee+2],Qe=H[ee+3],(Oe&192)===128&&(Ce&192)===128&&(Qe&192)===128&&(Je=(de&15)<<18|(Oe&63)<<12|(Ce&63)<<6|Qe&63,Je>65535&&Je<1114112&&(ie=Je))}}ie===null?(ie=65533,Ee=1):ie>65535&&(ie-=65536,O.push(ie>>>10&1023|55296),ie=56320|ie&1023),O.push(ie),ee+=Ee}return h(O)}const a=4096;function h(H){const k=H.length;if(k<=a)return String.fromCharCode.apply(String,H);let G="",O=0;for(;OO)&&(G=O);let ee="";for(let de=k;deO&&(k=O),G<0?(G+=O,G<0&&(G=0)):G>O&&(G=O),GG)throw new RangeError("Trying to access beyond buffer length")}I.prototype.readUintLE=I.prototype.readUIntLE=function(k,G,O){k=k>>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k],de=1,ie=0;for(;++ie>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k+--G],de=1;for(;G>0&&(de*=256);)ee+=this[k+--G]*de;return ee},I.prototype.readUint8=I.prototype.readUInt8=function(k,G){return k=k>>>0,G||u(k,1,this.length),this[k]},I.prototype.readUint16LE=I.prototype.readUInt16LE=function(k,G){return k=k>>>0,G||u(k,2,this.length),this[k]|this[k+1]<<8},I.prototype.readUint16BE=I.prototype.readUInt16BE=function(k,G){return k=k>>>0,G||u(k,2,this.length),this[k]<<8|this[k+1]},I.prototype.readUint32LE=I.prototype.readUInt32LE=function(k,G){return k=k>>>0,G||u(k,4,this.length),(this[k]|this[k+1]<<8|this[k+2]<<16)+this[k+3]*16777216},I.prototype.readUint32BE=I.prototype.readUInt32BE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]*16777216+(this[k+1]<<16|this[k+2]<<8|this[k+3])},I.prototype.readBigUInt64LE=Be(function(k){k=k>>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=G+this[++k]*2**8+this[++k]*2**16+this[++k]*2**24,de=this[++k]+this[++k]*2**8+this[++k]*2**16+O*2**24;return BigInt(ee)+(BigInt(de)<>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=G*2**24+this[++k]*2**16+this[++k]*2**8+this[++k],de=this[++k]*2**24+this[++k]*2**16+this[++k]*2**8+O;return(BigInt(ee)<>>0,G=G>>>0,O||u(k,G,this.length);let ee=this[k],de=1,ie=0;for(;++ie=de&&(ee-=Math.pow(2,8*G)),ee},I.prototype.readIntBE=function(k,G,O){k=k>>>0,G=G>>>0,O||u(k,G,this.length);let ee=G,de=1,ie=this[k+--ee];for(;ee>0&&(de*=256);)ie+=this[k+--ee]*de;return de*=128,ie>=de&&(ie-=Math.pow(2,8*G)),ie},I.prototype.readInt8=function(k,G){return k=k>>>0,G||u(k,1,this.length),this[k]&128?(255-this[k]+1)*-1:this[k]},I.prototype.readInt16LE=function(k,G){k=k>>>0,G||u(k,2,this.length);const O=this[k]|this[k+1]<<8;return O&32768?O|4294901760:O},I.prototype.readInt16BE=function(k,G){k=k>>>0,G||u(k,2,this.length);const O=this[k+1]|this[k]<<8;return O&32768?O|4294901760:O},I.prototype.readInt32LE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]|this[k+1]<<8|this[k+2]<<16|this[k+3]<<24},I.prototype.readInt32BE=function(k,G){return k=k>>>0,G||u(k,4,this.length),this[k]<<24|this[k+1]<<16|this[k+2]<<8|this[k+3]},I.prototype.readBigInt64LE=Be(function(k){k=k>>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=this[k+4]+this[k+5]*2**8+this[k+6]*2**16+(O<<24);return(BigInt(ee)<>>0,$(k,"offset");const G=this[k],O=this[k+7];(G===void 0||O===void 0)&&le(k,this.length-8);const ee=(G<<24)+this[++k]*2**16+this[++k]*2**8+this[++k];return(BigInt(ee)<>>0,G||u(k,4,this.length),s.read(this,k,!0,23,4)},I.prototype.readFloatBE=function(k,G){return k=k>>>0,G||u(k,4,this.length),s.read(this,k,!1,23,4)},I.prototype.readDoubleLE=function(k,G){return k=k>>>0,G||u(k,8,this.length),s.read(this,k,!0,52,8)},I.prototype.readDoubleBE=function(k,G){return k=k>>>0,G||u(k,8,this.length),s.read(this,k,!1,52,8)};function b(H,k,G,O,ee,de){if(!I.isBuffer(H))throw new TypeError('"buffer" argument must be a Buffer instance');if(k>ee||kH.length)throw new RangeError("Index out of range")}I.prototype.writeUintLE=I.prototype.writeUIntLE=function(k,G,O,ee){if(k=+k,G=G>>>0,O=O>>>0,!ee){const Ee=Math.pow(2,8*O)-1;b(this,k,G,O,Ee,0)}let de=1,ie=0;for(this[G]=k&255;++ie>>0,O=O>>>0,!ee){const Ee=Math.pow(2,8*O)-1;b(this,k,G,O,Ee,0)}let de=O-1,ie=1;for(this[G+de]=k&255;--de>=0&&(ie*=256);)this[G+de]=k/ie&255;return G+O},I.prototype.writeUint8=I.prototype.writeUInt8=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,1,255,0),this[G]=k&255,G+1},I.prototype.writeUint16LE=I.prototype.writeUInt16LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,65535,0),this[G]=k&255,this[G+1]=k>>>8,G+2},I.prototype.writeUint16BE=I.prototype.writeUInt16BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,65535,0),this[G]=k>>>8,this[G+1]=k&255,G+2},I.prototype.writeUint32LE=I.prototype.writeUInt32LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,4294967295,0),this[G+3]=k>>>24,this[G+2]=k>>>16,this[G+1]=k>>>8,this[G]=k&255,G+4},I.prototype.writeUint32BE=I.prototype.writeUInt32BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,4294967295,0),this[G]=k>>>24,this[G+1]=k>>>16,this[G+2]=k>>>8,this[G+3]=k&255,G+4};function R(H,k,G,O,ee){q(k,O,ee,H,G,7);let de=Number(k&BigInt(4294967295));H[G++]=de,de=de>>8,H[G++]=de,de=de>>8,H[G++]=de,de=de>>8,H[G++]=de;let ie=Number(k>>BigInt(32)&BigInt(4294967295));return H[G++]=ie,ie=ie>>8,H[G++]=ie,ie=ie>>8,H[G++]=ie,ie=ie>>8,H[G++]=ie,G}function T(H,k,G,O,ee){q(k,O,ee,H,G,7);let de=Number(k&BigInt(4294967295));H[G+7]=de,de=de>>8,H[G+6]=de,de=de>>8,H[G+5]=de,de=de>>8,H[G+4]=de;let ie=Number(k>>BigInt(32)&BigInt(4294967295));return H[G+3]=ie,ie=ie>>8,H[G+2]=ie,ie=ie>>8,H[G+1]=ie,ie=ie>>8,H[G]=ie,G+8}I.prototype.writeBigUInt64LE=Be(function(k,G=0){return R(this,k,G,BigInt(0),BigInt("0xffffffffffffffff"))}),I.prototype.writeBigUInt64BE=Be(function(k,G=0){return T(this,k,G,BigInt(0),BigInt("0xffffffffffffffff"))}),I.prototype.writeIntLE=function(k,G,O,ee){if(k=+k,G=G>>>0,!ee){const Oe=Math.pow(2,8*O-1);b(this,k,G,O,Oe-1,-Oe)}let de=0,ie=1,Ee=0;for(this[G]=k&255;++de>0)-Ee&255;return G+O},I.prototype.writeIntBE=function(k,G,O,ee){if(k=+k,G=G>>>0,!ee){const Oe=Math.pow(2,8*O-1);b(this,k,G,O,Oe-1,-Oe)}let de=O-1,ie=1,Ee=0;for(this[G+de]=k&255;--de>=0&&(ie*=256);)k<0&&Ee===0&&this[G+de+1]!==0&&(Ee=1),this[G+de]=(k/ie>>0)-Ee&255;return G+O},I.prototype.writeInt8=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,1,127,-128),k<0&&(k=255+k+1),this[G]=k&255,G+1},I.prototype.writeInt16LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,32767,-32768),this[G]=k&255,this[G+1]=k>>>8,G+2},I.prototype.writeInt16BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,2,32767,-32768),this[G]=k>>>8,this[G+1]=k&255,G+2},I.prototype.writeInt32LE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,2147483647,-2147483648),this[G]=k&255,this[G+1]=k>>>8,this[G+2]=k>>>16,this[G+3]=k>>>24,G+4},I.prototype.writeInt32BE=function(k,G,O){return k=+k,G=G>>>0,O||b(this,k,G,4,2147483647,-2147483648),k<0&&(k=4294967295+k+1),this[G]=k>>>24,this[G+1]=k>>>16,this[G+2]=k>>>8,this[G+3]=k&255,G+4},I.prototype.writeBigInt64LE=Be(function(k,G=0){return R(this,k,G,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),I.prototype.writeBigInt64BE=Be(function(k,G=0){return T(this,k,G,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function V(H,k,G,O,ee,de){if(G+O>H.length)throw new RangeError("Index out of range");if(G<0)throw new RangeError("Index out of range")}function P(H,k,G,O,ee){return k=+k,G=G>>>0,ee||V(H,k,G,4),s.write(H,k,G,O,23,4),G+4}I.prototype.writeFloatLE=function(k,G,O){return P(this,k,G,!0,O)},I.prototype.writeFloatBE=function(k,G,O){return P(this,k,G,!1,O)};function F(H,k,G,O,ee){return k=+k,G=G>>>0,ee||V(H,k,G,8),s.write(H,k,G,O,52,8),G+8}I.prototype.writeDoubleLE=function(k,G,O){return F(this,k,G,!0,O)},I.prototype.writeDoubleBE=function(k,G,O){return F(this,k,G,!1,O)},I.prototype.copy=function(k,G,O,ee){if(!I.isBuffer(k))throw new TypeError("argument should be a Buffer");if(O||(O=0),!ee&&ee!==0&&(ee=this.length),G>=k.length&&(G=k.length),G||(G=0),ee>0&&ee=this.length)throw new RangeError("Index out of range");if(ee<0)throw new RangeError("sourceEnd out of bounds");ee>this.length&&(ee=this.length),k.length-G>>0,O=O===void 0?this.length:O>>>0,k||(k=0);let de;if(typeof k=="number")for(de=G;de2**32?ee=te(String(G)):typeof G=="bigint"&&(ee=String(G),(G>BigInt(2)**BigInt(32)||G<-(BigInt(2)**BigInt(32)))&&(ee=te(ee)),ee+="n"),O+=` It must be ${k}. Received ${ee}`,O},RangeError);function te(H){let k="",G=H.length;const O=H[0]==="-"?1:0;for(;G>=O+4;G-=3)k=`_${H.slice(G-3,G)}${k}`;return`${H.slice(0,G)}${k}`}function z(H,k,G){$(k,"offset"),(H[k]===void 0||H[k+G]===void 0)&&le(k,H.length-(G+1))}function q(H,k,G,O,ee,de){if(H>G||H= 0${ie} and < 2${ie} ** ${(de+1)*8}${ie}`:Ee=`>= -(2${ie} ** ${(de+1)*8-1}${ie}) and < 2 ** ${(de+1)*8-1}${ie}`,new Y.ERR_OUT_OF_RANGE("value",Ee,H)}z(O,ee,de)}function $(H,k){if(typeof H!="number")throw new Y.ERR_INVALID_ARG_TYPE(k,"number",H)}function le(H,k,G){throw Math.floor(H)!==H?($(H,G),new Y.ERR_OUT_OF_RANGE("offset","an integer",H)):k<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${k}`,H)}const ae=/[^+/0-9A-Za-z-_]/g;function he(H){if(H=H.split("=")[0],H=H.trim().replace(ae,""),H.length<2)return"";for(;H.length%4!==0;)H=H+"=";return H}function xe(H,k){k=k||1/0;let G;const O=H.length;let ee=null;const de=[];for(let ie=0;ie55295&&G<57344){if(!ee){if(G>56319){(k-=3)>-1&&de.push(239,191,189);continue}else if(ie+1===O){(k-=3)>-1&&de.push(239,191,189);continue}ee=G;continue}if(G<56320){(k-=3)>-1&&de.push(239,191,189),ee=G;continue}G=(ee-55296<<10|G-56320)+65536}else ee&&(k-=3)>-1&&de.push(239,191,189);if(ee=null,G<128){if((k-=1)<0)break;de.push(G)}else if(G<2048){if((k-=2)<0)break;de.push(G>>6|192,G&63|128)}else if(G<65536){if((k-=3)<0)break;de.push(G>>12|224,G>>6&63|128,G&63|128)}else if(G<1114112){if((k-=4)<0)break;de.push(G>>18|240,G>>12&63|128,G>>6&63|128,G&63|128)}else throw new Error("Invalid code point")}return de}function se(H){const k=[];for(let G=0;G>8,ee=G%256,de.push(ee),de.push(O);return de}function Ue(H){return i.toByteArray(he(H))}function fe(H,k,G,O){let ee;for(ee=0;ee=k.length||ee>=H.length);++ee)k[ee+G]=H[ee];return ee}function ce(H,k){return H instanceof k||H!=null&&H.constructor!=null&&H.constructor.name!=null&&H.constructor.name===k.name}function Te(H){return H!==H}const ue=function(){const H="0123456789abcdef",k=new Array(256);for(let G=0;G<16;++G){const O=G*16;for(let ee=0;ee<16;++ee)k[O+ee]=H[G]+H[ee]}return k}();function Be(H){return typeof BigInt>"u"?Ve:H}function Ve(){throw new Error("BigInt not supported")}}(cD)),cD}/*! safe-buffer. MIT License. Feross Aboukhadijeh */var iJ;function mA(){return iJ||(iJ=1,function(o,i){var s=Vo(),f=s.Buffer;function l(B,I){for(var p in B)I[p]=B[p]}f.from&&f.alloc&&f.allocUnsafe&&f.allocUnsafeSlow?o.exports=s:(l(s,i),i.Buffer=r);function r(B,I,p){return f(B,I,p)}r.prototype=Object.create(f.prototype),l(f,r),r.from=function(B,I,p){if(typeof B=="number")throw new TypeError("Argument must not be a number");return f(B,I,p)},r.alloc=function(B,I,p){if(typeof B!="number")throw new TypeError("Argument must be a number");var Q=f(B);return I!==void 0?typeof p=="string"?Q.fill(I,p):Q.fill(I):Q.fill(0),Q},r.allocUnsafe=function(B){if(typeof B!="number")throw new TypeError("Argument must be a number");return f(B)},r.allocUnsafeSlow=function(B){if(typeof B!="number")throw new TypeError("Argument must be a number");return s.SlowBuffer(B)}}(_B,_B.exports)),_B.exports}var nJ;function su(){if(nJ)return NB.exports;nJ=1;var o=65536,i=4294967295;function s(){throw new Error(`Secure random number generation is not supported by this browser. -Use Chrome, Firefox or Internet Explorer 11`)}var f=mA().Buffer,l=globalThis.crypto||globalThis.msCrypto;l&&l.getRandomValues?NB.exports=r:NB.exports=s;function r(B,I){if(B>i)throw new RangeError("requested too many random bytes");var p=f.allocUnsafe(B);if(B>0)if(B>o)for(var Q=0;Q0&&(Ae=j[0]),Ae instanceof Error)throw Ae;var E=new Error("Unhandled error."+(Ae?" ("+Ae.message+")":""));throw E.context=Ae,E}var e=J[L];if(e===void 0)return!1;if(typeof e=="function")i(e,this,j);else for(var A=e.length,n=M(e,A),re=0;re0&&Ae.length>Z&&!Ae.warned){Ae.warned=!0;var E=new Error("Possible EventEmitter memory leak detected. "+Ae.length+" "+String(L)+" listeners added. Use emitter.setMaxListeners() to increase limit");E.name="MaxListenersExceededWarning",E.emitter=N,E.type=L,E.count=Ae.length,f(E)}return N}r.prototype.addListener=function(L,j){return Q(this,L,j,!1)},r.prototype.on=r.prototype.addListener,r.prototype.prependListener=function(L,j){return Q(this,L,j,!0)};function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function y(N,L,j){var re={fired:!1,wrapFn:void 0,target:N,type:L,listener:j},Z=d.bind(re);return Z.listener=j,re.wrapFn=Z,Z}r.prototype.once=function(L,j){return I(j),this.on(L,y(this,L,j)),this},r.prototype.prependOnceListener=function(L,j){return I(j),this.prependListener(L,y(this,L,j)),this},r.prototype.removeListener=function(L,j){var re,Z,J,Ae,E;if(I(j),Z=this._events,Z===void 0)return this;if(re=Z[L],re===void 0)return this;if(re===j||re.listener===j)--this._eventsCount===0?this._events=Object.create(null):(delete Z[L],Z.removeListener&&this.emit("removeListener",L,re.listener||j));else if(typeof re!="function"){for(J=-1,Ae=re.length-1;Ae>=0;Ae--)if(re[Ae]===j||re[Ae].listener===j){E=re[Ae].listener,J=Ae;break}if(J<0)return this;J===0?re.shift():m(re,J),re.length===1&&(Z[L]=re[0]),Z.removeListener!==void 0&&this.emit("removeListener",L,E||j)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(L){var j,re,Z;if(re=this._events,re===void 0)return this;if(re.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):re[L]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete re[L]),this;if(arguments.length===0){var J=Object.keys(re),Ae;for(Z=0;Z=0;Z--)this.removeListener(L,j[Z]);return this};function v(N,L,j){var re=N._events;if(re===void 0)return[];var Z=re[L];return Z===void 0?[]:typeof Z=="function"?j?[Z.listener||Z]:[Z]:j?x(Z):M(Z,Z.length)}r.prototype.listeners=function(L){return v(this,L,!0)},r.prototype.rawListeners=function(L){return v(this,L,!1)},r.listenerCount=function(N,L){return typeof N.listenerCount=="function"?N.listenerCount(L):w.call(N,L)},r.prototype.listenerCount=w;function w(N){var L=this._events;if(L!==void 0){var j=L[N];if(typeof j=="function")return 1;if(j!==void 0)return j.length}return 0}r.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]};function M(N,L){for(var j=new Array(L),re=0;re0?this.tail.next=D:this.head=D,this.tail=D,++this.length}},{key:"unshift",value:function(x){var D={data:x,next:this.head};this.length===0&&(this.tail=D),this.head=D,++this.length}},{key:"shift",value:function(){if(this.length!==0){var x=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,x}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(x){if(this.length===0)return"";for(var D=this.head,S=""+D.data;D=D.next;)S+=x+D.data;return S}},{key:"concat",value:function(x){if(this.length===0)return Q.alloc(0);for(var D=Q.allocUnsafe(x>>>0),S=this.head,K=0;S;)w(S.data,D,K),K+=S.data.length,S=S.next;return D}},{key:"consume",value:function(x,D){var S;return xN.length?N.length:x;if(L===N.length?K+=N:K+=N.slice(0,x),x-=L,x===0){L===N.length?(++S,D.next?this.head=D.next:this.head=this.tail=null):(this.head=D,D.data=N.slice(L));break}++S}return this.length-=S,K}},{key:"_getBuffer",value:function(x){var D=Q.allocUnsafe(x),S=this.head,K=1;for(S.data.copy(D),x-=S.data.length;S=S.next;){var N=S.data,L=x>N.length?N.length:x;if(N.copy(D,D.length-x,0,L),x-=L,x===0){L===N.length?(++K,S.next?this.head=S.next:this.head=this.tail=null):(this.head=S,S.data=N.slice(L));break}++K}return this.length-=K,D}},{key:v,value:function(x,D){return y(this,i(i({},D),{},{depth:0,customInspect:!1}))}}]),M}(),dD}var ID,hJ;function _re(){if(hJ)return ID;hJ=1;function o(B,I){var p=this,Q=this._readableState&&this._readableState.destroyed,d=this._writableState&&this._writableState.destroyed;return Q||d?(I?I(B):B&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(l,this,B)):process.nextTick(l,this,B)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(B||null,function(y){!I&&y?p._writableState?p._writableState.errorEmitted?process.nextTick(s,p):(p._writableState.errorEmitted=!0,process.nextTick(i,p,y)):process.nextTick(i,p,y):I?(process.nextTick(s,p),I(y)):process.nextTick(s,p)}),this)}function i(B,I){l(B,I),s(B)}function s(B){B._writableState&&!B._writableState.emitClose||B._readableState&&!B._readableState.emitClose||B.emit("close")}function f(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function l(B,I){B.emit("error",I)}function r(B,I){var p=B._readableState,Q=B._writableState;p&&p.autoDestroy||Q&&Q.autoDestroy?B.destroy(I):B.emit("error",I)}return ID={destroy:o,undestroy:f,errorOrDestroy:r},ID}var BD={},gJ;function fu(){if(gJ)return BD;gJ=1;function o(I,p){I.prototype=Object.create(p.prototype),I.prototype.constructor=I,I.__proto__=p}var i={};function s(I,p,Q){Q||(Q=Error);function d(v,w,M){return typeof p=="string"?p:p(v,w,M)}var y=function(v){o(w,v);function w(M,m,x){return v.call(this,d(M,m,x))||this}return w}(Q);y.prototype.name=Q.name,y.prototype.code=I,i[I]=y}function f(I,p){if(Array.isArray(I)){var Q=I.length;return I=I.map(function(d){return String(d)}),Q>2?"one of ".concat(p," ").concat(I.slice(0,Q-1).join(", "),", or ")+I[Q-1]:Q===2?"one of ".concat(p," ").concat(I[0]," or ").concat(I[1]):"of ".concat(p," ").concat(I[0])}else return"of ".concat(p," ").concat(String(I))}function l(I,p,Q){return I.substr(0,p.length)===p}function r(I,p,Q){return(Q===void 0||Q>I.length)&&(Q=I.length),I.substring(Q-p.length,Q)===p}function B(I,p,Q){return typeof Q!="number"&&(Q=0),Q+p.length>I.length?!1:I.indexOf(p,Q)!==-1}return s("ERR_INVALID_OPT_VALUE",function(I,p){return'The value "'+p+'" is invalid for option "'+I+'"'},TypeError),s("ERR_INVALID_ARG_TYPE",function(I,p,Q){var d;typeof p=="string"&&l(p,"not ")?(d="must not be",p=p.replace(/^not /,"")):d="must be";var y;if(r(I," argument"))y="The ".concat(I," ").concat(d," ").concat(f(p,"type"));else{var v=B(I,".")?"property":"argument";y='The "'.concat(I,'" ').concat(v," ").concat(d," ").concat(f(p,"type"))}return y+=". Received type ".concat(typeof Q),y},TypeError),s("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),s("ERR_METHOD_NOT_IMPLEMENTED",function(I){return"The "+I+" method is not implemented"}),s("ERR_STREAM_PREMATURE_CLOSE","Premature close"),s("ERR_STREAM_DESTROYED",function(I){return"Cannot call "+I+" after a stream was destroyed"}),s("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),s("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),s("ERR_STREAM_WRITE_AFTER_END","write after end"),s("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),s("ERR_UNKNOWN_ENCODING",function(I){return"Unknown encoding: "+I},TypeError),s("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),BD.codes=i,BD}var CD,uJ;function Kre(){if(uJ)return CD;uJ=1;var o=fu().codes.ERR_INVALID_OPT_VALUE;function i(f,l,r){return f.highWaterMark!=null?f.highWaterMark:l?f[r]:null}function s(f,l,r,B){var I=i(l,B,r);if(I!=null){if(!(isFinite(I)&&Math.floor(I)===I)||I<0){var p=B?r:"highWaterMark";throw new o(p,I)}return Math.floor(I)}return f.objectMode?16:16*1024}return CD={getHighWaterMark:s},CD}var ED,cJ;function Fre(){if(cJ)return ED;cJ=1,ED=o;function o(s,f){if(i("noDeprecation"))return s;var l=!1;function r(){if(!l){if(i("throwDeprecation"))throw new Error(f);i("traceDeprecation")?console.trace(f):console.warn(f),l=!0}return s.apply(this,arguments)}return r}function i(s){try{if(!globalThis.localStorage)return!1}catch{return!1}var f=globalThis.localStorage[s];return f==null?!1:String(f).toLowerCase()==="true"}return ED}var pD,lJ;function Gre(){if(lJ)return pD;lJ=1,pD=Z;function o(P){var F=this;this.next=null,this.entry=null,this.finish=function(){V(F,P)}}var i;Z.WritableState=j;var s={deprecate:Fre()},f=Nre(),l=Vo().Buffer,r=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function B(P){return l.from(P)}function I(P){return l.isBuffer(P)||P instanceof r}var p=_re(),Q=Kre(),d=Q.getHighWaterMark,y=fu().codes,v=y.ERR_INVALID_ARG_TYPE,w=y.ERR_METHOD_NOT_IMPLEMENTED,M=y.ERR_MULTIPLE_CALLBACK,m=y.ERR_STREAM_CANNOT_PIPE,x=y.ERR_STREAM_DESTROYED,D=y.ERR_STREAM_NULL_VALUES,S=y.ERR_STREAM_WRITE_AFTER_END,K=y.ERR_UNKNOWN_ENCODING,N=p.errorOrDestroy;gA()(Z,f);function L(){}function j(P,F,Y){i=i||Dg(),P=P||{},typeof Y!="boolean"&&(Y=F instanceof i),this.objectMode=!!P.objectMode,Y&&(this.objectMode=this.objectMode||!!P.writableObjectMode),this.highWaterMark=d(this,P,"writableHighWaterMark",Y),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var W=P.decodeStrings===!1;this.decodeStrings=!W,this.defaultEncoding=P.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(te){h(F,te)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=P.emitClose!==!1,this.autoDestroy=!!P.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}j.prototype.getBuffer=function(){for(var F=this.bufferedRequest,Y=[];F;)Y.push(F),F=F.next;return Y},function(){try{Object.defineProperty(j.prototype,"buffer",{get:s.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var re;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(re=Function.prototype[Symbol.hasInstance],Object.defineProperty(Z,Symbol.hasInstance,{value:function(F){return re.call(this,F)?!0:this!==Z?!1:F&&F._writableState instanceof j}})):re=function(F){return F instanceof this};function Z(P){i=i||Dg();var F=this instanceof i;if(!F&&!re.call(Z,this))return new Z(P);this._writableState=new j(P,this,F),this.writable=!0,P&&(typeof P.write=="function"&&(this._write=P.write),typeof P.writev=="function"&&(this._writev=P.writev),typeof P.destroy=="function"&&(this._destroy=P.destroy),typeof P.final=="function"&&(this._final=P.final)),f.call(this)}Z.prototype.pipe=function(){N(this,new m)};function J(P,F){var Y=new S;N(P,Y),process.nextTick(F,Y)}function Ae(P,F,Y,W){var te;return Y===null?te=new D:typeof Y!="string"&&!F.objectMode&&(te=new v("chunk",["string","Buffer"],Y)),te?(N(P,te),process.nextTick(W,te),!1):!0}Z.prototype.write=function(P,F,Y){var W=this._writableState,te=!1,z=!W.objectMode&&I(P);return z&&!l.isBuffer(P)&&(P=B(P)),typeof F=="function"&&(Y=F,F=null),z?F="buffer":F||(F=W.defaultEncoding),typeof Y!="function"&&(Y=L),W.ending?J(this,Y):(z||Ae(this,W,P,Y))&&(W.pendingcb++,te=e(this,W,z,P,F,Y)),te},Z.prototype.cork=function(){this._writableState.corked++},Z.prototype.uncork=function(){var P=this._writableState;P.corked&&(P.corked--,!P.writing&&!P.corked&&!P.bufferProcessing&&P.bufferedRequest&&g(this,P))},Z.prototype.setDefaultEncoding=function(F){if(typeof F=="string"&&(F=F.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((F+"").toLowerCase())>-1))throw new K(F);return this._writableState.defaultEncoding=F,this},Object.defineProperty(Z.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function E(P,F,Y){return!P.objectMode&&P.decodeStrings!==!1&&typeof F=="string"&&(F=l.from(F,Y)),F}Object.defineProperty(Z.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function e(P,F,Y,W,te,z){if(!Y){var q=E(F,W,te);W!==q&&(Y=!0,te="buffer",W=q)}var $=F.objectMode?1:W.length;F.length+=$;var le=F.length>5===6?2:D>>4===14?3:D>>3===30?4:D>>6===2?-1:-2}function B(D,S,K){var N=S.length-1;if(N=0?(L>0&&(D.lastNeed=L-1),L):--N=0?(L>0&&(D.lastNeed=L-2),L):--N=0?(L>0&&(L===2?L=0:D.lastNeed=L-3),L):0))}function I(D,S,K){if((S[0]&192)!==128)return D.lastNeed=0,"�";if(D.lastNeed>1&&S.length>1){if((S[1]&192)!==128)return D.lastNeed=1,"�";if(D.lastNeed>2&&S.length>2&&(S[2]&192)!==128)return D.lastNeed=2,"�"}}function p(D){var S=this.lastTotal-this.lastNeed,K=I(this,D);if(K!==void 0)return K;if(this.lastNeed<=D.length)return D.copy(this.lastChar,S,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);D.copy(this.lastChar,S,0,D.length),this.lastNeed-=D.length}function Q(D,S){var K=B(this,D,S);if(!this.lastNeed)return D.toString("utf8",S);this.lastTotal=K;var N=D.length-(K-this.lastNeed);return D.copy(this.lastChar,0,N),D.toString("utf8",S,N)}function d(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+"�":S}function y(D,S){if((D.length-S)%2===0){var K=D.toString("utf16le",S);if(K){var N=K.charCodeAt(K.length-1);if(N>=55296&&N<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1],K.slice(0,-1)}return K}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=D[D.length-1],D.toString("utf16le",S,D.length-1)}function v(D){var S=D&&D.length?this.write(D):"";if(this.lastNeed){var K=this.lastTotal-this.lastNeed;return S+this.lastChar.toString("utf16le",0,K)}return S}function w(D,S){var K=(D.length-S)%3;return K===0?D.toString("base64",S):(this.lastNeed=3-K,this.lastTotal=3,K===1?this.lastChar[0]=D[D.length-1]:(this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1]),D.toString("base64",S,D.length-K))}function M(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+this.lastChar.toString("base64",0,3-this.lastNeed):S}function m(D){return D.toString(this.encoding)}function x(D){return D&&D.length?this.write(D):""}return yD}var vD,CJ;function LN(){if(CJ)return vD;CJ=1;var o=fu().codes.ERR_STREAM_PREMATURE_CLOSE;function i(r){var B=!1;return function(){if(!B){B=!0;for(var I=arguments.length,p=new Array(I),Q=0;Q0)if(typeof q!="string"&&!he.objectMode&&Object.getPrototypeOf(q)!==f.prototype&&(q=r(q)),le)he.endEmitted?L(z,new D):E(z,he,q,!0);else if(he.ended)L(z,new m);else{if(he.destroyed)return!1;he.reading=!1,he.decoder&&!$?(q=he.decoder.write(q),he.objectMode||q.length!==0?E(z,he,q,!1):g(z,he)):E(z,he,q,!1)}else le||(he.reading=!1,g(z,he))}return!he.ended&&(he.length=A?z=A:(z--,z|=z>>>1,z|=z>>>2,z|=z>>>4,z|=z>>>8,z|=z>>>16,z++),z}function a(z,q){return z<=0||q.length===0&&q.ended?0:q.objectMode?1:z!==z?q.flowing&&q.length?q.buffer.head.data.length:q.length:(z>q.highWaterMark&&(q.highWaterMark=n(z)),z<=q.length?z:q.ended?q.length:(q.needReadable=!0,0))}J.prototype.read=function(z){p("read",z),z=parseInt(z,10);var q=this._readableState,$=z;if(z!==0&&(q.emittedReadable=!1),z===0&&q.needReadable&&((q.highWaterMark!==0?q.length>=q.highWaterMark:q.length>0)||q.ended))return p("read: emitReadable",q.length,q.ended),q.length===0&&q.ended?Y(this):c(this),null;if(z=a(z,q),z===0&&q.ended)return q.length===0&&Y(this),null;var le=q.needReadable;p("need readable",le),(q.length===0||q.length-z0?ae=F(z,q):ae=null,ae===null?(q.needReadable=q.length<=q.highWaterMark,z=0):(q.length-=z,q.awaitDrain=0),q.length===0&&(q.ended||(q.needReadable=!0),$!==z&&q.ended&&Y(this)),ae!==null&&this.emit("data",ae),ae};function h(z,q){if(p("onEofChunk"),!q.ended){if(q.decoder){var $=q.decoder.end();$&&$.length&&(q.buffer.push($),q.length+=q.objectMode?1:$.length)}q.ended=!0,q.sync?c(z):(q.needReadable=!1,q.emittedReadable||(q.emittedReadable=!0,C(z)))}}function c(z){var q=z._readableState;p("emitReadable",q.needReadable,q.emittedReadable),q.needReadable=!1,q.emittedReadable||(p("emitReadable",q.flowing),q.emittedReadable=!0,process.nextTick(C,z))}function C(z){var q=z._readableState;p("emitReadable_",q.destroyed,q.length,q.ended),!q.destroyed&&(q.length||q.ended)&&(z.emit("readable"),q.emittedReadable=!1),q.needReadable=!q.flowing&&!q.ended&&q.length<=q.highWaterMark,P(z)}function g(z,q){q.readingMore||(q.readingMore=!0,process.nextTick(t,z,q))}function t(z,q){for(;!q.reading&&!q.ended&&(q.length1&&te(le.pipes,z)!==-1)&&!Ue&&(p("false write response, pause",le.awaitDrain),le.awaitDrain++),$.pause())}function Te(H){p("onerror",H),Ve(),z.removeListener("error",Te),i(z,"error")===0&&L(z,H)}re(z,"error",Te);function ue(){z.removeListener("finish",Be),Ve()}z.once("close",ue);function Be(){p("onfinish"),z.removeListener("close",ue),Ve()}z.once("finish",Be);function Ve(){p("unpipe"),$.unpipe(z)}return z.emit("pipe",$),le.flowing||(p("pipe resume"),$.resume()),z};function u(z){return function(){var $=z._readableState;p("pipeOnDrain",$.awaitDrain),$.awaitDrain&&$.awaitDrain--,$.awaitDrain===0&&i(z,"data")&&($.flowing=!0,P(z))}}J.prototype.unpipe=function(z){var q=this._readableState,$={hasUnpiped:!1};if(q.pipesCount===0)return this;if(q.pipesCount===1)return z&&z!==q.pipes?this:(z||(z=q.pipes),q.pipes=null,q.pipesCount=0,q.flowing=!1,z&&z.emit("unpipe",this,$),this);if(!z){var le=q.pipes,ae=q.pipesCount;q.pipes=null,q.pipesCount=0,q.flowing=!1;for(var he=0;he0,le.flowing!==!1&&this.resume()):z==="readable"&&!le.endEmitted&&!le.readableListening&&(le.readableListening=le.needReadable=!0,le.flowing=!1,le.emittedReadable=!1,p("on readable",le.length,le.reading),le.length?c(this):le.reading||process.nextTick(R,this)),$},J.prototype.addListener=J.prototype.on,J.prototype.removeListener=function(z,q){var $=s.prototype.removeListener.call(this,z,q);return z==="readable"&&process.nextTick(b,this),$},J.prototype.removeAllListeners=function(z){var q=s.prototype.removeAllListeners.apply(this,arguments);return(z==="readable"||z===void 0)&&process.nextTick(b,this),q};function b(z){var q=z._readableState;q.readableListening=z.listenerCount("readable")>0,q.resumeScheduled&&!q.paused?q.flowing=!0:z.listenerCount("data")>0&&z.resume()}function R(z){p("readable nexttick read 0"),z.read(0)}J.prototype.resume=function(){var z=this._readableState;return z.flowing||(p("resume"),z.flowing=!z.readableListening,T(this,z)),z.paused=!1,this};function T(z,q){q.resumeScheduled||(q.resumeScheduled=!0,process.nextTick(V,z,q))}function V(z,q){p("resume",q.reading),q.reading||z.read(0),q.resumeScheduled=!1,z.emit("resume"),P(z),q.flowing&&!q.reading&&z.read(0)}J.prototype.pause=function(){return p("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(p("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function P(z){var q=z._readableState;for(p("flow",q.flowing);q.flowing&&z.read()!==null;);}J.prototype.wrap=function(z){var q=this,$=this._readableState,le=!1;z.on("end",function(){if(p("wrapped end"),$.decoder&&!$.ended){var xe=$.decoder.end();xe&&xe.length&&q.push(xe)}q.push(null)}),z.on("data",function(xe){if(p("wrapped data"),$.decoder&&(xe=$.decoder.write(xe)),!($.objectMode&&xe==null)&&!(!$.objectMode&&(!xe||!xe.length))){var se=q.push(xe);se||(le=!0,z.pause())}});for(var ae in z)this[ae]===void 0&&typeof z[ae]=="function"&&(this[ae]=function(se){return function(){return z[se].apply(z,arguments)}}(ae));for(var he=0;he=q.length?(q.decoder?$=q.buffer.join(""):q.buffer.length===1?$=q.buffer.first():$=q.buffer.concat(q.length),q.buffer.clear()):$=q.buffer.consume(z,q.decoder),$}function Y(z){var q=z._readableState;p("endReadable",q.endEmitted),q.endEmitted||(q.ended=!0,process.nextTick(W,q,z))}function W(z,q){if(p("endReadableNT",z.endEmitted,z.length),!z.endEmitted&&z.length===0&&(z.endEmitted=!0,q.readable=!1,q.emit("end"),z.autoDestroy)){var $=q._writableState;(!$||$.autoDestroy&&$.finished)&&q.destroy()}}typeof Symbol=="function"&&(J.from=function(z,q){return N===void 0&&(N=Dve()),N(J,z,q)});function te(z,q){for(var $=0,le=z.length;$0;return I(S,N,L,function(j){x||(x=j),j&&D.forEach(p),!N&&(D.forEach(p),m(x))})});return w.reduce(Q)}return SD=y,SD}var xD,mJ;function qre(){if(mJ)return xD;mJ=1,xD=s;var o=ad().EventEmitter,i=gA();i(s,o),s.Readable=Lre(),s.Writable=Gre(),s.Duplex=Dg(),s.Transform=Ure(),s.PassThrough=Sve(),s.finished=LN(),s.pipeline=xve(),s.Stream=s;function s(){o.call(this)}return s.prototype.pipe=function(f,l){var r=this;function B(w){f.writable&&f.write(w)===!1&&r.pause&&r.pause()}r.on("data",B);function I(){r.readable&&r.resume&&r.resume()}f.on("drain",I),!f._isStdio&&(!l||l.end!==!1)&&(r.on("end",Q),r.on("close",d));var p=!1;function Q(){p||(p=!0,f.end())}function d(){p||(p=!0,typeof f.destroy=="function"&&f.destroy())}function y(w){if(v(),o.listenerCount(this,"error")===0)throw w}r.on("error",y),f.on("error",y);function v(){r.removeListener("data",B),f.removeListener("drain",I),r.removeListener("end",Q),r.removeListener("close",d),r.removeListener("error",y),f.removeListener("error",y),r.removeListener("end",v),r.removeListener("close",v),f.removeListener("close",v)}return r.on("end",v),r.on("close",v),f.on("close",v),f.emit("pipe",r),f},xD}var RD,MJ;function Hre(){if(MJ)return RD;MJ=1;var o=mA().Buffer,i=qre().Transform,s=gA();function f(I){i.call(this),this._block=o.allocUnsafe(I),this._blockSize=I,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}s(f,i),f.prototype._transform=function(I,p,Q){var d=null;try{this.update(I,p)}catch(y){d=y}Q(d)},f.prototype._flush=function(I){var p=null;try{this.push(this.digest())}catch(Q){p=Q}I(p)};var l=typeof Uint8Array<"u",r=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&ArrayBuffer.isView&&(o.prototype instanceof Uint8Array||o.TYPED_ARRAY_SUPPORT);function B(I,p){if(I instanceof o)return I;if(typeof I=="string")return o.from(I,p);if(r&&ArrayBuffer.isView(I)){if(I.byteLength===0)return o.alloc(0);var Q=o.from(I.buffer,I.byteOffset,I.byteLength);if(Q.byteLength===I.byteLength)return Q}if(l&&I instanceof Uint8Array||o.isBuffer(I)&&I.constructor&&typeof I.constructor.isBuffer=="function"&&I.constructor.isBuffer(I))return o.from(I);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}return f.prototype.update=function(I,p){if(this._finalized)throw new Error("Digest already called");I=B(I,p);for(var Q=this._block,d=0;this._blockOffset+I.length-d>=this._blockSize;){for(var y=this._blockOffset;y0;++v)this._length[v]+=w,w=this._length[v]/4294967296|0,w>0&&(this._length[v]-=4294967296*w);return this},f.prototype._update=function(){throw new Error("_update is not implemented")},f.prototype.digest=function(I){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var p=this._digest();I!==void 0&&(p=p.toString(I)),this._block.fill(0),this._blockOffset=0;for(var Q=0;Q<4;++Q)this._length[Q]=0;return p},f.prototype._digest=function(){throw new Error("_digest is not implemented")},RD=f,RD}var kD,bJ;function UN(){if(bJ)return kD;bJ=1;var o=gA(),i=Hre(),s=mA().Buffer,f=new Array(16);function l(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}o(l,i),l.prototype._update=function(){for(var d=f,y=0;y<16;++y)d[y]=this._block.readInt32LE(y*4);var v=this._a,w=this._b,M=this._c,m=this._d;v=B(v,w,M,m,d[0],3614090360,7),m=B(m,v,w,M,d[1],3905402710,12),M=B(M,m,v,w,d[2],606105819,17),w=B(w,M,m,v,d[3],3250441966,22),v=B(v,w,M,m,d[4],4118548399,7),m=B(m,v,w,M,d[5],1200080426,12),M=B(M,m,v,w,d[6],2821735955,17),w=B(w,M,m,v,d[7],4249261313,22),v=B(v,w,M,m,d[8],1770035416,7),m=B(m,v,w,M,d[9],2336552879,12),M=B(M,m,v,w,d[10],4294925233,17),w=B(w,M,m,v,d[11],2304563134,22),v=B(v,w,M,m,d[12],1804603682,7),m=B(m,v,w,M,d[13],4254626195,12),M=B(M,m,v,w,d[14],2792965006,17),w=B(w,M,m,v,d[15],1236535329,22),v=I(v,w,M,m,d[1],4129170786,5),m=I(m,v,w,M,d[6],3225465664,9),M=I(M,m,v,w,d[11],643717713,14),w=I(w,M,m,v,d[0],3921069994,20),v=I(v,w,M,m,d[5],3593408605,5),m=I(m,v,w,M,d[10],38016083,9),M=I(M,m,v,w,d[15],3634488961,14),w=I(w,M,m,v,d[4],3889429448,20),v=I(v,w,M,m,d[9],568446438,5),m=I(m,v,w,M,d[14],3275163606,9),M=I(M,m,v,w,d[3],4107603335,14),w=I(w,M,m,v,d[8],1163531501,20),v=I(v,w,M,m,d[13],2850285829,5),m=I(m,v,w,M,d[2],4243563512,9),M=I(M,m,v,w,d[7],1735328473,14),w=I(w,M,m,v,d[12],2368359562,20),v=p(v,w,M,m,d[5],4294588738,4),m=p(m,v,w,M,d[8],2272392833,11),M=p(M,m,v,w,d[11],1839030562,16),w=p(w,M,m,v,d[14],4259657740,23),v=p(v,w,M,m,d[1],2763975236,4),m=p(m,v,w,M,d[4],1272893353,11),M=p(M,m,v,w,d[7],4139469664,16),w=p(w,M,m,v,d[10],3200236656,23),v=p(v,w,M,m,d[13],681279174,4),m=p(m,v,w,M,d[0],3936430074,11),M=p(M,m,v,w,d[3],3572445317,16),w=p(w,M,m,v,d[6],76029189,23),v=p(v,w,M,m,d[9],3654602809,4),m=p(m,v,w,M,d[12],3873151461,11),M=p(M,m,v,w,d[15],530742520,16),w=p(w,M,m,v,d[2],3299628645,23),v=Q(v,w,M,m,d[0],4096336452,6),m=Q(m,v,w,M,d[7],1126891415,10),M=Q(M,m,v,w,d[14],2878612391,15),w=Q(w,M,m,v,d[5],4237533241,21),v=Q(v,w,M,m,d[12],1700485571,6),m=Q(m,v,w,M,d[3],2399980690,10),M=Q(M,m,v,w,d[10],4293915773,15),w=Q(w,M,m,v,d[1],2240044497,21),v=Q(v,w,M,m,d[8],1873313359,6),m=Q(m,v,w,M,d[15],4264355552,10),M=Q(M,m,v,w,d[6],2734768916,15),w=Q(w,M,m,v,d[13],1309151649,21),v=Q(v,w,M,m,d[4],4149444226,6),m=Q(m,v,w,M,d[11],3174756917,10),M=Q(M,m,v,w,d[2],718787259,15),w=Q(w,M,m,v,d[9],3951481745,21),this._a=this._a+v|0,this._b=this._b+w|0,this._c=this._c+M|0,this._d=this._d+m|0},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var d=s.allocUnsafe(16);return d.writeInt32LE(this._a,0),d.writeInt32LE(this._b,4),d.writeInt32LE(this._c,8),d.writeInt32LE(this._d,12),d};function r(d,y){return d<>>32-y}function B(d,y,v,w,M,m,x){return r(d+(y&v|~y&w)+M+m|0,x)+y|0}function I(d,y,v,w,M,m,x){return r(d+(y&w|v&~w)+M+m|0,x)+y|0}function p(d,y,v,w,M,m,x){return r(d+(y^v^w)+M+m|0,x)+y|0}function Q(d,y,v,w,M,m,x){return r(d+(v^(y|~w))+M+m|0,x)+y|0}return kD=l,kD}var ND,DJ;function qN(){if(DJ)return ND;DJ=1;var o=Vo().Buffer,i=gA(),s=Hre(),f=new Array(16),l=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],r=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],B=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],I=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],p=[0,1518500249,1859775393,2400959708,2840853838],Q=[1352829926,1548603684,1836072691,2053994217,0];function d(){s.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}i(d,s),d.prototype._update=function(){for(var D=f,S=0;S<16;++S)D[S]=this._block.readInt32LE(S*4);for(var K=this._a|0,N=this._b|0,L=this._c|0,j=this._d|0,re=this._e|0,Z=this._a|0,J=this._b|0,Ae=this._c|0,E=this._d|0,e=this._e|0,A=0;A<80;A+=1){var n,a;A<16?(n=v(K,N,L,j,re,D[l[A]],p[0],B[A]),a=x(Z,J,Ae,E,e,D[r[A]],Q[0],I[A])):A<32?(n=w(K,N,L,j,re,D[l[A]],p[1],B[A]),a=m(Z,J,Ae,E,e,D[r[A]],Q[1],I[A])):A<48?(n=M(K,N,L,j,re,D[l[A]],p[2],B[A]),a=M(Z,J,Ae,E,e,D[r[A]],Q[2],I[A])):A<64?(n=m(K,N,L,j,re,D[l[A]],p[3],B[A]),a=w(Z,J,Ae,E,e,D[r[A]],Q[3],I[A])):(n=x(K,N,L,j,re,D[l[A]],p[4],B[A]),a=v(Z,J,Ae,E,e,D[r[A]],Q[4],I[A])),K=re,re=j,j=y(L,10),L=N,N=n,Z=e,e=E,E=y(Ae,10),Ae=J,J=a}var h=this._b+L+E|0;this._b=this._c+j+e|0,this._c=this._d+re+Z|0,this._d=this._e+K+J|0,this._e=this._a+N+Ae|0,this._a=h},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var D=o.alloc?o.alloc(20):new o(20);return D.writeInt32LE(this._a,0),D.writeInt32LE(this._b,4),D.writeInt32LE(this._c,8),D.writeInt32LE(this._d,12),D.writeInt32LE(this._e,16),D};function y(D,S){return D<>>32-S}function v(D,S,K,N,L,j,re,Z){return y(D+(S^K^N)+j+re|0,Z)+L|0}function w(D,S,K,N,L,j,re,Z){return y(D+(S&K|~S&N)+j+re|0,Z)+L|0}function M(D,S,K,N,L,j,re,Z){return y(D+((S|~K)^N)+j+re|0,Z)+L|0}function m(D,S,K,N,L,j,re,Z){return y(D+(S&N|K&~N)+j+re|0,Z)+L|0}function x(D,S,K,N,L,j,re,Z){return y(D+(S^(K|~N))+j+re|0,Z)+L|0}return ND=d,ND}var _D={exports:{}},KD,SJ;function hu(){if(SJ)return KD;SJ=1;var o=mA().Buffer;function i(s,f){this._block=o.alloc(s),this._finalSize=f,this._blockSize=s,this._len=0}return i.prototype.update=function(s,f){typeof s=="string"&&(f=f||"utf8",s=o.from(s,f));for(var l=this._block,r=this._blockSize,B=s.length,I=this._len,p=0;p=this._finalSize&&(this._update(this._block),this._block.fill(0));var l=this._len*8;if(l<=4294967295)this._block.writeUInt32BE(l,this._blockSize-4);else{var r=(l&4294967295)>>>0,B=(l-r)/4294967296;this._block.writeUInt32BE(B,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var I=this._hash();return s?I.toString(s):I},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},KD=i,KD}var FD,xJ;function Rve(){if(xJ)return FD;xJ=1;var o=gA(),i=hu(),s=mA().Buffer,f=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function B(Q){return Q<<5|Q>>>27}function I(Q){return Q<<30|Q>>>2}function p(Q,d,y,v){return Q===0?d&y|~d&v:Q===2?d&y|d&v|y&v:d^y^v}return r.prototype._update=function(Q){for(var d=this._w,y=this._a|0,v=this._b|0,w=this._c|0,M=this._d|0,m=this._e|0,x=0;x<16;++x)d[x]=Q.readInt32BE(x*4);for(;x<80;++x)d[x]=d[x-3]^d[x-8]^d[x-14]^d[x-16];for(var D=0;D<80;++D){var S=~~(D/20),K=B(y)+p(S,v,w,M)+m+d[D]+f[S]|0;m=M,M=w,w=I(v),v=y,y=K}this._a=y+this._a|0,this._b=v+this._b|0,this._c=w+this._c|0,this._d=M+this._d|0,this._e=m+this._e|0},r.prototype._hash=function(){var Q=s.allocUnsafe(20);return Q.writeInt32BE(this._a|0,0),Q.writeInt32BE(this._b|0,4),Q.writeInt32BE(this._c|0,8),Q.writeInt32BE(this._d|0,12),Q.writeInt32BE(this._e|0,16),Q},FD=r,FD}var GD,RJ;function kve(){if(RJ)return GD;RJ=1;var o=gA(),i=hu(),s=mA().Buffer,f=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function B(d){return d<<1|d>>>31}function I(d){return d<<5|d>>>27}function p(d){return d<<30|d>>>2}function Q(d,y,v,w){return d===0?y&v|~y&w:d===2?y&v|y&w|v&w:y^v^w}return r.prototype._update=function(d){for(var y=this._w,v=this._a|0,w=this._b|0,M=this._c|0,m=this._d|0,x=this._e|0,D=0;D<16;++D)y[D]=d.readInt32BE(D*4);for(;D<80;++D)y[D]=B(y[D-3]^y[D-8]^y[D-14]^y[D-16]);for(var S=0;S<80;++S){var K=~~(S/20),N=I(v)+Q(K,w,M,m)+x+y[S]+f[K]|0;x=m,m=M,M=p(w),w=v,v=N}this._a=v+this._a|0,this._b=w+this._b|0,this._c=M+this._c|0,this._d=m+this._d|0,this._e=x+this._e|0},r.prototype._hash=function(){var d=s.allocUnsafe(20);return d.writeInt32BE(this._a|0,0),d.writeInt32BE(this._b|0,4),d.writeInt32BE(this._c|0,8),d.writeInt32BE(this._d|0,12),d.writeInt32BE(this._e|0,16),d},GD=r,GD}var LD,kJ;function Tre(){if(kJ)return LD;kJ=1;var o=gA(),i=hu(),s=mA().Buffer,f=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],l=new Array(64);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function B(v,w,M){return M^v&(w^M)}function I(v,w,M){return v&w|M&(v|w)}function p(v){return(v>>>2|v<<30)^(v>>>13|v<<19)^(v>>>22|v<<10)}function Q(v){return(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7)}function d(v){return(v>>>7|v<<25)^(v>>>18|v<<14)^v>>>3}function y(v){return(v>>>17|v<<15)^(v>>>19|v<<13)^v>>>10}return r.prototype._update=function(v){for(var w=this._w,M=this._a|0,m=this._b|0,x=this._c|0,D=this._d|0,S=this._e|0,K=this._f|0,N=this._g|0,L=this._h|0,j=0;j<16;++j)w[j]=v.readInt32BE(j*4);for(;j<64;++j)w[j]=y(w[j-2])+w[j-7]+d(w[j-15])+w[j-16]|0;for(var re=0;re<64;++re){var Z=L+Q(S)+B(S,K,N)+f[re]+w[re]|0,J=p(M)+I(M,m,x)|0;L=N,N=K,K=S,S=D+Z|0,D=x,x=m,m=M,M=Z+J|0}this._a=M+this._a|0,this._b=m+this._b|0,this._c=x+this._c|0,this._d=D+this._d|0,this._e=S+this._e|0,this._f=K+this._f|0,this._g=N+this._g|0,this._h=L+this._h|0},r.prototype._hash=function(){var v=s.allocUnsafe(32);return v.writeInt32BE(this._a,0),v.writeInt32BE(this._b,4),v.writeInt32BE(this._c,8),v.writeInt32BE(this._d,12),v.writeInt32BE(this._e,16),v.writeInt32BE(this._f,20),v.writeInt32BE(this._g,24),v.writeInt32BE(this._h,28),v},LD=r,LD}var UD,NJ;function Nve(){if(NJ)return UD;NJ=1;var o=gA(),i=Tre(),s=hu(),f=mA().Buffer,l=new Array(64);function r(){this.init(),this._w=l,s.call(this,64,56)}return o(r,i),r.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},r.prototype._hash=function(){var B=f.allocUnsafe(28);return B.writeInt32BE(this._a,0),B.writeInt32BE(this._b,4),B.writeInt32BE(this._c,8),B.writeInt32BE(this._d,12),B.writeInt32BE(this._e,16),B.writeInt32BE(this._f,20),B.writeInt32BE(this._g,24),B},UD=r,UD}var qD,_J;function Yre(){if(_J)return qD;_J=1;var o=gA(),i=hu(),s=mA().Buffer,f=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],l=new Array(160);function r(){this.init(),this._w=l,i.call(this,128,112)}o(r,i),r.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function B(m,x,D){return D^m&(x^D)}function I(m,x,D){return m&x|D&(m|x)}function p(m,x){return(m>>>28|x<<4)^(x>>>2|m<<30)^(x>>>7|m<<25)}function Q(m,x){return(m>>>14|x<<18)^(m>>>18|x<<14)^(x>>>9|m<<23)}function d(m,x){return(m>>>1|x<<31)^(m>>>8|x<<24)^m>>>7}function y(m,x){return(m>>>1|x<<31)^(m>>>8|x<<24)^(m>>>7|x<<25)}function v(m,x){return(m>>>19|x<<13)^(x>>>29|m<<3)^m>>>6}function w(m,x){return(m>>>19|x<<13)^(x>>>29|m<<3)^(m>>>6|x<<26)}function M(m,x){return m>>>0>>0?1:0}return r.prototype._update=function(m){for(var x=this._w,D=this._ah|0,S=this._bh|0,K=this._ch|0,N=this._dh|0,L=this._eh|0,j=this._fh|0,re=this._gh|0,Z=this._hh|0,J=this._al|0,Ae=this._bl|0,E=this._cl|0,e=this._dl|0,A=this._el|0,n=this._fl|0,a=this._gl|0,h=this._hl|0,c=0;c<32;c+=2)x[c]=m.readInt32BE(c*4),x[c+1]=m.readInt32BE(c*4+4);for(;c<160;c+=2){var C=x[c-30],g=x[c-15*2+1],t=d(C,g),u=y(g,C);C=x[c-2*2],g=x[c-2*2+1];var b=v(C,g),R=w(g,C),T=x[c-7*2],V=x[c-7*2+1],P=x[c-16*2],F=x[c-16*2+1],Y=u+V|0,W=t+T+M(Y,u)|0;Y=Y+R|0,W=W+b+M(Y,R)|0,Y=Y+F|0,W=W+P+M(Y,F)|0,x[c]=W,x[c+1]=Y}for(var te=0;te<160;te+=2){W=x[te],Y=x[te+1];var z=I(D,S,K),q=I(J,Ae,E),$=p(D,J),le=p(J,D),ae=Q(L,A),he=Q(A,L),xe=f[te],se=f[te+1],oe=B(L,j,re),Ue=B(A,n,a),fe=h+he|0,ce=Z+ae+M(fe,h)|0;fe=fe+Ue|0,ce=ce+oe+M(fe,Ue)|0,fe=fe+se|0,ce=ce+xe+M(fe,se)|0,fe=fe+Y|0,ce=ce+W+M(fe,Y)|0;var Te=le+q|0,ue=$+z+M(Te,le)|0;Z=re,h=a,re=j,a=n,j=L,n=A,A=e+fe|0,L=N+ce+M(A,e)|0,N=K,e=E,K=S,E=Ae,S=D,Ae=J,J=fe+Te|0,D=ce+ue+M(J,fe)|0}this._al=this._al+J|0,this._bl=this._bl+Ae|0,this._cl=this._cl+E|0,this._dl=this._dl+e|0,this._el=this._el+A|0,this._fl=this._fl+n|0,this._gl=this._gl+a|0,this._hl=this._hl+h|0,this._ah=this._ah+D+M(this._al,J)|0,this._bh=this._bh+S+M(this._bl,Ae)|0,this._ch=this._ch+K+M(this._cl,E)|0,this._dh=this._dh+N+M(this._dl,e)|0,this._eh=this._eh+L+M(this._el,A)|0,this._fh=this._fh+j+M(this._fl,n)|0,this._gh=this._gh+re+M(this._gl,a)|0,this._hh=this._hh+Z+M(this._hl,h)|0},r.prototype._hash=function(){var m=s.allocUnsafe(64);function x(D,S,K){m.writeInt32BE(D,K),m.writeInt32BE(S,K+4)}return x(this._ah,this._al,0),x(this._bh,this._bl,8),x(this._ch,this._cl,16),x(this._dh,this._dl,24),x(this._eh,this._el,32),x(this._fh,this._fl,40),x(this._gh,this._gl,48),x(this._hh,this._hl,56),m},qD=r,qD}var HD,KJ;function _ve(){if(KJ)return HD;KJ=1;var o=gA(),i=Yre(),s=hu(),f=mA().Buffer,l=new Array(160);function r(){this.init(),this._w=l,s.call(this,128,112)}return o(r,i),r.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},r.prototype._hash=function(){var B=f.allocUnsafe(48);function I(p,Q,d){B.writeInt32BE(p,d),B.writeInt32BE(Q,d+4)}return I(this._ah,this._al,0),I(this._bh,this._bl,8),I(this._ch,this._cl,16),I(this._dh,this._dl,24),I(this._eh,this._el,32),I(this._fh,this._fl,40),B},HD=r,HD}var FJ;function HN(){if(FJ)return _D.exports;FJ=1;var o=_D.exports=function(s){s=s.toLowerCase();var f=o[s];if(!f)throw new Error(s+" is not supported (we accept pull requests)");return new f};return o.sha=Rve(),o.sha1=kve(),o.sha224=Nve(),o.sha256=Tre(),o.sha384=_ve(),o.sha512=Yre(),_D.exports}var TD,GJ;function Sf(){if(GJ)return TD;GJ=1;var o=mA().Buffer,i=qre().Transform,s=ol().StringDecoder,f=gA();function l(I){i.call(this),this.hashMode=typeof I=="string",this.hashMode?this[I]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}f(l,i);var r=typeof Uint8Array<"u",B=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&ArrayBuffer.isView&&(o.prototype instanceof Uint8Array||o.TYPED_ARRAY_SUPPORT);return l.prototype.update=function(I,p,Q){var d;if(I instanceof o)d=I;else if(typeof I=="string")d=o.from(I,p);else if(B&&ArrayBuffer.isView(I))d=o.from(I.buffer,I.byteOffset,I.byteLength);else if(r&&I instanceof Uint8Array)d=o.from(I);else if(o.isBuffer(I)&&I.constructor&&I.constructor.isBuffer&&I.constructor.isBuffer(I))d=o.from(I);else throw new Error('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');var y=this._update(d);return this.hashMode?this:(Q&&(y=this._toString(y,Q)),y)},l.prototype.setAutoPadding=function(){},l.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},l.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},l.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},l.prototype._transform=function(I,p,Q){var d;try{this.hashMode?this._update(I):this.push(this._update(I))}catch(y){d=y}finally{Q(d)}},l.prototype._flush=function(I){var p;try{this.push(this.__final())}catch(Q){p=Q}I(p)},l.prototype._finalOrDigest=function(I){var p=this.__final()||o.alloc(0);return I&&(p=this._toString(p,I,!0)),p},l.prototype._toString=function(I,p,Q){if(this._decoder||(this._decoder=new s(p),this._encoding=p),this._encoding!==p)throw new Error("can’t switch encodings");var d=this._decoder.write(I);return Q&&(d+=this._decoder.end()),d},TD=l,TD}var YD,LJ;function sd(){if(LJ)return YD;LJ=1;var o=gA(),i=UN(),s=qN(),f=HN(),l=Sf();function r(B){l.call(this,"digest"),this._hash=B}return o(r,l),r.prototype._update=function(B){this._hash.update(B)},r.prototype._final=function(){return this._hash.digest()},YD=function(I){return I=I.toLowerCase(),I==="md5"?new i:I==="rmd160"||I==="ripemd160"?new s:new r(f(I))},YD}var JD,UJ;function Kve(){if(UJ)return JD;UJ=1;var o=gA(),i=mA().Buffer,s=Sf(),f=i.alloc(128),l=64;function r(B,I){s.call(this,"digest"),typeof I=="string"&&(I=i.from(I)),this._alg=B,this._key=I,I.length>l?I=B(I):I.lengthy){var v=Q==="rmd160"?new r:B(Q);d=v.update(d).digest()}else d.lengtho||s!==s)throw new TypeError("Bad key length")},WD}var VD,JJ;function Wre(){if(JJ)return VD;JJ=1;var o;if(globalThis.process&&globalThis.process.browser)o="utf-8";else if(globalThis.process&&globalThis.process.version){var i=parseInt(process.version.split(".")[0].slice(1),10);o=i>=6?"utf-8":"binary"}else o="utf-8";return VD=o,VD}var ZD,PJ;function Vre(){if(PJ)return ZD;PJ=1;var o=mA().Buffer;return ZD=function(i,s,f){if(o.isBuffer(i))return i;if(typeof i=="string")return o.from(i,s);if(ArrayBuffer.isView(i))return o.from(i.buffer);throw new TypeError(f+" must be a string, a Buffer, a typed array or a DataView")},ZD}var zD,OJ;function Zre(){if(OJ)return zD;OJ=1;var o=Jre(),i=qN(),s=HN(),f=mA().Buffer,l=jre(),r=Wre(),B=Vre(),I=f.alloc(128),p={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function Q(v,w,M){var m=d(v),x=v==="sha512"||v==="sha384"?128:64;w.length>x?w=m(w):w.length>>0},un.writeUInt32BE=function(l,r,B){l[0+B]=r>>>24,l[1+B]=r>>>16&255,l[2+B]=r>>>8&255,l[3+B]=r&255},un.ip=function(l,r,B,I){for(var p=0,Q=0,d=6;d>=0;d-=2){for(var y=0;y<=24;y+=8)p<<=1,p|=r>>>y+d&1;for(var y=0;y<=24;y+=8)p<<=1,p|=l>>>y+d&1}for(var d=6;d>=0;d-=2){for(var y=1;y<=25;y+=8)Q<<=1,Q|=r>>>y+d&1;for(var y=1;y<=25;y+=8)Q<<=1,Q|=l>>>y+d&1}B[I+0]=p>>>0,B[I+1]=Q>>>0},un.rip=function(l,r,B,I){for(var p=0,Q=0,d=0;d<4;d++)for(var y=24;y>=0;y-=8)p<<=1,p|=r>>>y+d&1,p<<=1,p|=l>>>y+d&1;for(var d=4;d<8;d++)for(var y=24;y>=0;y-=8)Q<<=1,Q|=r>>>y+d&1,Q<<=1,Q|=l>>>y+d&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},un.pc1=function(l,r,B,I){for(var p=0,Q=0,d=7;d>=5;d--){for(var y=0;y<=24;y+=8)p<<=1,p|=r>>y+d&1;for(var y=0;y<=24;y+=8)p<<=1,p|=l>>y+d&1}for(var y=0;y<=24;y+=8)p<<=1,p|=r>>y+d&1;for(var d=1;d<=3;d++){for(var y=0;y<=24;y+=8)Q<<=1,Q|=r>>y+d&1;for(var y=0;y<=24;y+=8)Q<<=1,Q|=l>>y+d&1}for(var y=0;y<=24;y+=8)Q<<=1,Q|=l>>y+d&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},un.r28shl=function(l,r){return l<>>28-r};var o=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];un.pc2=function(l,r,B,I){for(var p=0,Q=0,d=o.length>>>1,y=0;y>>o[y]&1;for(var y=d;y>>o[y]&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},un.expand=function(l,r,B){var I=0,p=0;I=(l&1)<<5|l>>>27;for(var Q=23;Q>=15;Q-=4)I<<=6,I|=l>>>Q&63;for(var Q=11;Q>=3;Q-=4)p|=l>>>Q&63,p<<=6;p|=(l&31)<<1|l>>>31,r[B+0]=I>>>0,r[B+1]=p>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];un.substitute=function(l,r){for(var B=0,I=0;I<4;I++){var p=l>>>18-I*6&63,Q=i[I*64+p];B<<=4,B|=Q}for(var I=0;I<4;I++){var p=r>>>18-I*6&63,Q=i[4*64+I*64+p];B<<=4,B|=Q}return B>>>0};var s=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];return un.permute=function(l){for(var r=0,B=0;B>>s[B]&1;return r>>>0},un.padSplit=function(l,r,B){for(var I=l.toString(2);I.length0;B--)l+=this._buffer(f,l),r+=this._flushBuffer(I,r);return l+=this._buffer(f,l),I},i.prototype.final=function(f){var l;f&&(l=this.update(f));var r;return this.type==="encrypt"?r=this._finalEncrypt():r=this._finalDecrypt(),l?l.concat(r):r},i.prototype._pad=function(f,l){if(l===0)return!1;for(;l>>1];d=s.r28shl(d,w),y=s.r28shl(y,w),s.pc2(d,y,p.keys,v)}},r.prototype._update=function(p,Q,d,y){var v=this._desState,w=s.readUInt32BE(p,Q),M=s.readUInt32BE(p,Q+4);s.ip(w,M,v.tmp,0),w=v.tmp[0],M=v.tmp[1],this.type==="encrypt"?this._encrypt(v,w,M,v.tmp,0):this._decrypt(v,w,M,v.tmp,0),w=v.tmp[0],M=v.tmp[1],s.writeUInt32BE(d,w,y),s.writeUInt32BE(d,M,y+4)},r.prototype._pad=function(p,Q){if(this.padding===!1)return!1;for(var d=p.length-Q,y=Q;y>>0,w=N}s.rip(M,w,y,v)},r.prototype._decrypt=function(p,Q,d,y,v){for(var w=d,M=Q,m=p.keys.length-2;m>=0;m-=2){var x=p.keys[m],D=p.keys[m+1];s.expand(w,p.tmp,0),x^=p.tmp[0],D^=p.tmp[1];var S=s.substitute(x,D),K=s.permute(S),N=w;w=(M^K)>>>0,M=N}s.rip(w,M,y,v)},e3}var t3={},$J;function Vve(){if($J)return t3;$J=1;var o=Eo(),i=gA(),s={};function f(r){o.equal(r.length,8,"Invalid IV length"),this.iv=new Array(8);for(var B=0;B>I%8,f._prev=s(f._prev,r?d:y);return Q}function s(f,l){var r=f.length,B=-1,I=o.allocUnsafe(f.length);for(f=o.concat([f,o.from([l])]);++B>7;return I}return a3.encrypt=function(f,l,r){for(var B=l.length,I=o.allocUnsafe(B),p=-1;++p>>24]^w[D>>>16&255]^M[S>>>8&255]^m[K&255]^p[Z++],L=v[D>>>24]^w[S>>>16&255]^M[K>>>8&255]^m[x&255]^p[Z++],j=v[S>>>24]^w[K>>>16&255]^M[x>>>8&255]^m[D&255]^p[Z++],re=v[K>>>24]^w[x>>>16&255]^M[D>>>8&255]^m[S&255]^p[Z++],x=N,D=L,S=j,K=re;return N=(d[x>>>24]<<24|d[D>>>16&255]<<16|d[S>>>8&255]<<8|d[K&255])^p[Z++],L=(d[D>>>24]<<24|d[S>>>16&255]<<16|d[K>>>8&255]<<8|d[x&255])^p[Z++],j=(d[S>>>24]<<24|d[K>>>16&255]<<16|d[x>>>8&255]<<8|d[D&255])^p[Z++],re=(d[K>>>24]<<24|d[x>>>16&255]<<16|d[D>>>8&255]<<8|d[S&255])^p[Z++],N=N>>>0,L=L>>>0,j=j>>>0,re=re>>>0,[N,L,j,re]}var l=[0,1,2,4,8,16,32,64,128,27,54],r=function(){for(var I=new Array(256),p=0;p<256;p++)p<128?I[p]=p<<1:I[p]=p<<1^283;for(var Q=[],d=[],y=[[],[],[],[]],v=[[],[],[],[]],w=0,M=0,m=0;m<256;++m){var x=M^M<<1^M<<2^M<<3^M<<4;x=x>>>8^x&255^99,Q[w]=x,d[x]=w;var D=I[w],S=I[D],K=I[S],N=I[x]*257^x*16843008;y[0][w]=N<<24|N>>>8,y[1][w]=N<<16|N>>>16,y[2][w]=N<<8|N>>>24,y[3][w]=N,N=K*16843009^S*65537^D*257^w*16843008,v[0][x]=N<<24|N>>>8,v[1][x]=N<<16|N>>>16,v[2][x]=N<<8|N>>>24,v[3][x]=N,w===0?w=M=1:(w=D^I[I[I[K^D]]],M^=I[I[M]])}return{SBOX:Q,INV_SBOX:d,SUB_MIX:y,INV_SUB_MIX:v}}();function B(I){this._key=i(I),this._reset()}return B.blockSize=4*4,B.keySize=256/8,B.prototype.blockSize=B.blockSize,B.prototype.keySize=B.keySize,B.prototype._reset=function(){for(var I=this._key,p=I.length,Q=p+6,d=(Q+1)*4,y=[],v=0;v>>24,w=r.SBOX[w>>>24]<<24|r.SBOX[w>>>16&255]<<16|r.SBOX[w>>>8&255]<<8|r.SBOX[w&255],w^=l[v/p|0]<<24):p>6&&v%p===4&&(w=r.SBOX[w>>>24]<<24|r.SBOX[w>>>16&255]<<16|r.SBOX[w>>>8&255]<<8|r.SBOX[w&255]),y[v]=y[v-p]^w}for(var M=[],m=0;m>>24]]^r.INV_SUB_MIX[1][r.SBOX[D>>>16&255]]^r.INV_SUB_MIX[2][r.SBOX[D>>>8&255]]^r.INV_SUB_MIX[3][r.SBOX[D&255]]}this._nRounds=Q,this._keySchedule=y,this._invKeySchedule=M},B.prototype.encryptBlockRaw=function(I){return I=i(I),f(I,this._keySchedule,r.SUB_MIX,r.SBOX,this._nRounds)},B.prototype.encryptBlock=function(I){var p=this.encryptBlockRaw(I),Q=o.allocUnsafe(16);return Q.writeUInt32BE(p[0],0),Q.writeUInt32BE(p[1],4),Q.writeUInt32BE(p[2],8),Q.writeUInt32BE(p[3],12),Q},B.prototype.decryptBlock=function(I){I=i(I);var p=I[1];I[1]=I[3],I[3]=p;var Q=f(I,this._invKeySchedule,r.INV_SUB_MIX,r.INV_SBOX,this._nRounds),d=o.allocUnsafe(16);return d.writeUInt32BE(Q[0],0),d.writeUInt32BE(Q[3],4),d.writeUInt32BE(Q[2],8),d.writeUInt32BE(Q[1],12),d},B.prototype.scrub=function(){s(this._keySchedule),s(this._invKeySchedule),s(this._key)},u3.AES=B,u3}var c3,lP;function swe(){if(lP)return c3;lP=1;var o=mA().Buffer,i=o.alloc(16,0);function s(r){return[r.readUInt32BE(0),r.readUInt32BE(4),r.readUInt32BE(8),r.readUInt32BE(12)]}function f(r){var B=o.allocUnsafe(16);return B.writeUInt32BE(r[0]>>>0,0),B.writeUInt32BE(r[1]>>>0,4),B.writeUInt32BE(r[2]>>>0,8),B.writeUInt32BE(r[3]>>>0,12),B}function l(r){this.h=r,this.state=o.alloc(16,0),this.cache=o.allocUnsafe(0)}return l.prototype.ghash=function(r){for(var B=-1;++B0;I--)r[I]=r[I]>>>1|(r[I-1]&1)<<31;r[0]=r[0]>>>1,Q&&(r[0]=r[0]^225<<24)}this.state=f(B)},l.prototype.update=function(r){this.cache=o.concat([this.cache,r]);for(var B;this.cache.length>=16;)B=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(B)},l.prototype.final=function(r,B){return this.cache.length&&this.ghash(o.concat([this.cache,i],16)),this.ghash(f([0,r,0,B])),this.state},c3=l,c3}var l3,dP;function Aie(){if(dP)return l3;dP=1;var o=BQ(),i=mA().Buffer,s=Sf(),f=gA(),l=swe(),r=fd(),B=eie();function I(d,y){var v=0;d.length!==y.length&&v++;for(var w=Math.min(d.length,y.length),M=0;M0||B>0;){var y=new i;y.update(d),y.update(f),l&&y.update(l),d=y.digest();var v=0;if(I>0){var w=p.length-I;v=Math.min(I,d.length),d.copy(p,w,0,v),I-=v}if(v0){var M=Q.length-B,m=Math.min(B,d.length-v);d.copy(Q,M,v,v+m),B-=m}}return d.fill(0),{key:p,iv:Q}}return I3=s,I3}var CP;function fwe(){if(CP)return qB;CP=1;var o=YN(),i=Aie(),s=mA().Buffer,f=rie(),l=Sf(),r=BQ(),B=CQ(),I=gA();function p(w,M,m){l.call(this),this._cache=new d,this._cipher=new r.AES(M),this._prev=s.from(m),this._mode=w,this._autopadding=!0}I(p,l),p.prototype._update=function(w){this._cache.add(w);for(var M,m,x=[];M=this._cache.get();)m=this._mode.encrypt(this,M),x.push(m);return s.concat(x)};var Q=s.alloc(16,16);p.prototype._final=function(){var w=this._cache.flush();if(this._autopadding)return w=this._mode.encrypt(this,w),this._cipher.scrub(),w;if(!w.equals(Q))throw this._cipher.scrub(),new Error("data not multiple of block length")},p.prototype.setAutoPadding=function(w){return this._autopadding=!!w,this};function d(){this.cache=s.allocUnsafe(0)}d.prototype.add=function(w){this.cache=s.concat([this.cache,w])},d.prototype.get=function(){if(this.cache.length>15){var w=this.cache.slice(0,16);return this.cache=this.cache.slice(16),w}return null},d.prototype.flush=function(){for(var w=16-this.cache.length,M=s.allocUnsafe(w),m=-1;++m16)return M=this.cache.slice(0,16),this.cache=this.cache.slice(16),M}else if(this.cache.length>=16)return M=this.cache.slice(0,16),this.cache=this.cache.slice(16),M;return null},Q.prototype.flush=function(){if(this.cache.length)return this.cache};function d(w){var M=w[15];if(M<1||M>16)throw new Error("unable to decrypt data");for(var m=-1;++m0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,cwe)}(AE)),AE.exports}var rE={exports:{}},lwe=rE.exports,wP;function dwe(){return wP||(wP=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,lwe)}(rE)),rE.exports}var C3,mP;function nie(){if(mP)return C3;mP=1;var o=dwe(),i=VN();function s(f){this.rand=f||new i.Rand}return C3=s,s.create=function(l){return new s(l)},s.prototype._randbelow=function(l){var r=l.bitLength(),B=Math.ceil(r/8);do var I=new o(this.rand.generate(B));while(I.cmp(l)>=0);return I},s.prototype._randrange=function(l,r){var B=r.sub(l);return l.add(this._randbelow(B))},s.prototype.test=function(l,r,B){var I=l.bitLength(),p=o.mont(l),Q=new o(1).toRed(p);r||(r=Math.max(1,I/48|0));for(var d=l.subn(1),y=0;!d.testn(y);y++);for(var v=l.shrn(y),w=d.toRed(p),M=!0;r>0;r--){var m=this._randrange(new o(2),d);B&&B(m);var x=m.toRed(p).redPow(v);if(!(x.cmp(Q)===0||x.cmp(w)===0)){for(var D=1;D0;r--){var w=this._randrange(new o(2),Q),M=l.gcd(w);if(M.cmpn(1)!==0)return M;var m=w.toRed(I).redPow(y);if(!(m.cmp(p)===0||m.cmp(v)===0)){for(var x=1;xD;)K.ishrn(1);if(K.isEven()&&K.iadd(r),K.testn(1)||K.iadd(B),S.cmp(B)){if(!S.cmp(I))for(;K.mod(p).cmp(Q);)K.iadd(y)}else for(;K.mod(s).cmp(d);)K.iadd(y);if(N=K.shrn(1),M(N)&&M(K)&&m(N)&&m(K)&&l.test(N)&&l.test(K))return K}}return E3}const Iwe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},Bwe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},Cwe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},Ewe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},pwe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},Qwe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},ywe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},vwe={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},wwe={modp1:Iwe,modp2:Bwe,modp5:Cwe,modp14:Ewe,modp15:pwe,modp16:Qwe,modp17:ywe,modp18:vwe};var p3,bP;function mwe(){if(bP)return p3;bP=1;var o=iie(),i=nie(),s=new i,f=new o(24),l=new o(11),r=new o(10),B=new o(3),I=new o(7),p=oie(),Q=su();p3=M;function d(x,D){return D=D||"utf8",Buffer.isBuffer(x)||(x=new Buffer(x,D)),this._pub=new o(x),this}function y(x,D){return D=D||"utf8",Buffer.isBuffer(x)||(x=new Buffer(x,D)),this._priv=new o(x),this}var v={};function w(x,D){var S=D.toString("hex"),K=[S,x.toString(16)].join("_");if(K in v)return v[K];var N=0;if(x.isEven()||!p.simpleSieve||!p.fermatTest(x)||!s.test(x))return N+=1,S==="02"||S==="05"?N+=8:N+=4,v[K]=N,N;s.test(x.shrn(1))||(N+=2);var L;switch(S){case"02":x.mod(f).cmp(l)&&(N+=8);break;case"05":L=x.mod(r),L.cmp(B)&&L.cmp(I)&&(N+=8);break;default:N+=4}return v[K]=N,N}function M(x,D,S){this.setGenerator(D),this.__prime=new o(x),this._prime=o.mont(this.__prime),this._primeLen=x.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,S?(this.setPublicKey=d,this.setPrivateKey=y):this._primeCode=8}Object.defineProperty(M.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=w(this.__prime,this.__gen)),this._primeCode}}),M.prototype.generateKeys=function(){return this._priv||(this._priv=new o(Q(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},M.prototype.computeSecret=function(x){x=new o(x),x=x.toRed(this._prime);var D=x.redPow(this._priv).fromRed(),S=new Buffer(D.toArray()),K=this.getPrime();if(S.length"u"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?PB.exports={nextTick:o}:PB.exports=process;function o(i,s,f,l){if(typeof i!="function")throw new TypeError('"callback" argument must be a function');var r=arguments.length,B,I;switch(r){case 0:case 1:return process.nextTick(i);case 2:return process.nextTick(function(){i.call(null,s)});case 3:return process.nextTick(function(){i.call(null,s,f)});case 4:return process.nextTick(function(){i.call(null,s,f,l)});default:for(B=new Array(r-1),I=0;I"u"}ni.isPrimitive=w,ni.isBuffer=Vo().Buffer.isBuffer;function M(m){return Object.prototype.toString.call(m)}return ni}var v3={exports:{}},_P;function Dwe(){return _P||(_P=1,function(o){function i(r,B){if(!(r instanceof B))throw new TypeError("Cannot call a class as a function")}var s=PN().Buffer,f=tA;function l(r,B,I){r.copy(B,I)}o.exports=function(){function r(){i(this,r),this.head=null,this.tail=null,this.length=0}return r.prototype.push=function(I){var p={data:I,next:null};this.length>0?this.tail.next=p:this.head=p,this.tail=p,++this.length},r.prototype.unshift=function(I){var p={data:I,next:this.head};this.length===0&&(this.tail=p),this.head=p,++this.length},r.prototype.shift=function(){if(this.length!==0){var I=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,I}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(I){if(this.length===0)return"";for(var p=this.head,Q=""+p.data;p=p.next;)Q+=I+p.data;return Q},r.prototype.concat=function(I){if(this.length===0)return s.alloc(0);for(var p=s.allocUnsafe(I>>>0),Q=this.head,d=0;Q;)l(Q.data,p,d),d+=Q.data.length,Q=Q.next;return p},r}(),f&&f.inspect&&f.inspect.custom&&(o.exports.prototype[f.inspect.custom]=function(){var r=f.inspect({length:this.length});return this.constructor.name+" "+r})}(v3)),v3.exports}var w3,KP;function sie(){if(KP)return w3;KP=1;var o=EQ();function i(l,r){var B=this,I=this._readableState&&this._readableState.destroyed,p=this._writableState&&this._writableState.destroyed;return I||p?(r?r(l):l&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,o.nextTick(f,this,l)):o.nextTick(f,this,l)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(l||null,function(Q){!r&&Q?B._writableState?B._writableState.errorEmitted||(B._writableState.errorEmitted=!0,o.nextTick(f,B,Q)):o.nextTick(f,B,Q):r&&r(Q)}),this)}function s(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function f(l,r){l.emit("error",r)}return w3={destroy:i,undestroy:s},w3}var m3,FP;function fie(){if(FP)return m3;FP=1;var o=EQ();m3=m;function i(c){var C=this;this.next=null,this.entry=null,this.finish=function(){h(C,c)}}var s=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:o.nextTick,f;m.WritableState=w;var l=Object.create(hd());l.inherits=gA();var r={deprecate:Fre()},B=aie(),I=PN().Buffer,p=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Q(c){return I.from(c)}function d(c){return I.isBuffer(c)||c instanceof p}var y=sie();l.inherits(m,B);function v(){}function w(c,C){f=f||Sg(),c=c||{};var g=C instanceof f;this.objectMode=!!c.objectMode,g&&(this.objectMode=this.objectMode||!!c.writableObjectMode);var t=c.highWaterMark,u=c.writableHighWaterMark,b=this.objectMode?16:16*1024;t||t===0?this.highWaterMark=t:g&&(u||u===0)?this.highWaterMark=u:this.highWaterMark=b,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var R=c.decodeStrings===!1;this.decodeStrings=!R,this.defaultEncoding=c.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(T){re(C,T)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}w.prototype.getBuffer=function(){for(var C=this.bufferedRequest,g=[];C;)g.push(C),C=C.next;return g},function(){try{Object.defineProperty(w.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var M;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(M=Function.prototype[Symbol.hasInstance],Object.defineProperty(m,Symbol.hasInstance,{value:function(c){return M.call(this,c)?!0:this!==m?!1:c&&c._writableState instanceof w}})):M=function(c){return c instanceof this};function m(c){if(f=f||Sg(),!M.call(m,this)&&!(this instanceof f))return new m(c);this._writableState=new w(c,this),this.writable=!0,c&&(typeof c.write=="function"&&(this._write=c.write),typeof c.writev=="function"&&(this._writev=c.writev),typeof c.destroy=="function"&&(this._destroy=c.destroy),typeof c.final=="function"&&(this._final=c.final)),B.call(this)}m.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function x(c,C){var g=new Error("write after end");c.emit("error",g),o.nextTick(C,g)}function D(c,C,g,t){var u=!0,b=!1;return g===null?b=new TypeError("May not write null values to stream"):typeof g!="string"&&g!==void 0&&!C.objectMode&&(b=new TypeError("Invalid non-string/buffer chunk")),b&&(c.emit("error",b),o.nextTick(t,b),u=!1),u}m.prototype.write=function(c,C,g){var t=this._writableState,u=!1,b=!t.objectMode&&d(c);return b&&!I.isBuffer(c)&&(c=Q(c)),typeof C=="function"&&(g=C,C=null),b?C="buffer":C||(C=t.defaultEncoding),typeof g!="function"&&(g=v),t.ended?x(this,g):(b||D(this,t,c,g))&&(t.pendingcb++,u=K(this,t,b,c,C,g)),u},m.prototype.cork=function(){var c=this._writableState;c.corked++},m.prototype.uncork=function(){var c=this._writableState;c.corked&&(c.corked--,!c.writing&&!c.corked&&!c.bufferProcessing&&c.bufferedRequest&&Ae(this,c))},m.prototype.setDefaultEncoding=function(C){if(typeof C=="string"&&(C=C.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((C+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+C);return this._writableState.defaultEncoding=C,this};function S(c,C,g){return!c.objectMode&&c.decodeStrings!==!1&&typeof C=="string"&&(C=I.from(C,g)),C}Object.defineProperty(m.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function K(c,C,g,t,u,b){if(!g){var R=S(C,t,u);t!==R&&(g=!0,u="buffer",t=R)}var T=C.objectMode?1:t.length;C.length+=T;var V=C.length0?(typeof Y!="string"&&!q.objectMode&&Object.getPrototypeOf(Y)!==r.prototype&&(Y=I(Y)),te?q.endEmitted?F.emit("error",new Error("stream.unshift() after end event")):N(F,q,Y,!0):q.ended?F.emit("error",new Error("stream.push() after EOF")):(q.reading=!1,q.decoder&&!W?(Y=q.decoder.write(Y),q.objectMode||Y.length!==0?N(F,q,Y,!1):A(F,q)):N(F,q,Y,!1))):te||(q.reading=!1)}return j(q)}function N(F,Y,W,te){Y.flowing&&Y.length===0&&!Y.sync?(F.emit("data",W),F.read(0)):(Y.length+=Y.objectMode?1:W.length,te?Y.buffer.unshift(W):Y.buffer.push(W),Y.needReadable&&E(F)),A(F,Y)}function L(F,Y){var W;return!p(Y)&&typeof Y!="string"&&Y!==void 0&&!F.objectMode&&(W=new TypeError("Invalid non-string/buffer chunk")),W}function j(F){return!F.ended&&(F.needReadable||F.length=re?F=re:(F--,F|=F>>>1,F|=F>>>2,F|=F>>>4,F|=F>>>8,F|=F>>>16,F++),F}function J(F,Y){return F<=0||Y.length===0&&Y.ended?0:Y.objectMode?1:F!==F?Y.flowing&&Y.length?Y.buffer.head.data.length:Y.length:(F>Y.highWaterMark&&(Y.highWaterMark=Z(F)),F<=Y.length?F:Y.ended?Y.length:(Y.needReadable=!0,0))}S.prototype.read=function(F){y("read",F),F=parseInt(F,10);var Y=this._readableState,W=F;if(F!==0&&(Y.emittedReadable=!1),F===0&&Y.needReadable&&(Y.length>=Y.highWaterMark||Y.ended))return y("read: emitReadable",Y.length,Y.ended),Y.length===0&&Y.ended?T(this):E(this),null;if(F=J(F,Y),F===0&&Y.ended)return Y.length===0&&T(this),null;var te=Y.needReadable;y("need readable",te),(Y.length===0||Y.length-F0?z=t(F,Y):z=null,z===null?(Y.needReadable=!0,F=0):Y.length-=F,Y.length===0&&(Y.ended||(Y.needReadable=!0),W!==F&&Y.ended&&T(this)),z!==null&&this.emit("data",z),z};function Ae(F,Y){if(!Y.ended){if(Y.decoder){var W=Y.decoder.end();W&&W.length&&(Y.buffer.push(W),Y.length+=Y.objectMode?1:W.length)}Y.ended=!0,E(F)}}function E(F){var Y=F._readableState;Y.needReadable=!1,Y.emittedReadable||(y("emitReadable",Y.flowing),Y.emittedReadable=!0,Y.sync?o.nextTick(e,F):e(F))}function e(F){y("emit readable"),F.emit("readable"),g(F)}function A(F,Y){Y.readingMore||(Y.readingMore=!0,o.nextTick(n,F,Y))}function n(F,Y){for(var W=Y.length;!Y.reading&&!Y.flowing&&!Y.ended&&Y.length1&&P(te.pipes,F)!==-1)&&!he&&(y("false write response, pause",te.awaitDrain),te.awaitDrain++,se=!0),W.pause())}function Ue(ue){y("onerror",ue),Te(),F.removeListener("error",Ue),f(F,"error")===0&&F.emit("error",ue)}x(F,"error",Ue);function fe(){F.removeListener("finish",ce),Te()}F.once("close",fe);function ce(){y("onfinish"),F.removeListener("close",fe),Te()}F.once("finish",ce);function Te(){y("unpipe"),W.unpipe(F)}return F.emit("pipe",W),te.flowing||(y("pipe resume"),W.resume()),F};function a(F){return function(){var Y=F._readableState;y("pipeOnDrain",Y.awaitDrain),Y.awaitDrain&&Y.awaitDrain--,Y.awaitDrain===0&&f(F,"data")&&(Y.flowing=!0,g(F))}}S.prototype.unpipe=function(F){var Y=this._readableState,W={hasUnpiped:!1};if(Y.pipesCount===0)return this;if(Y.pipesCount===1)return F&&F!==Y.pipes?this:(F||(F=Y.pipes),Y.pipes=null,Y.pipesCount=0,Y.flowing=!1,F&&F.emit("unpipe",this,W),this);if(!F){var te=Y.pipes,z=Y.pipesCount;Y.pipes=null,Y.pipesCount=0,Y.flowing=!1;for(var q=0;q=Y.length?(Y.decoder?W=Y.buffer.join(""):Y.buffer.length===1?W=Y.buffer.head.data:W=Y.buffer.concat(Y.length),Y.buffer.clear()):W=u(F,Y.buffer,Y.decoder),W}function u(F,Y,W){var te;return Fq.length?q.length:F;if($===q.length?z+=q:z+=q.slice(0,F),F-=$,F===0){$===q.length?(++te,W.next?Y.head=W.next:Y.head=Y.tail=null):(Y.head=W,W.data=q.slice($));break}++te}return Y.length-=te,z}function R(F,Y){var W=r.allocUnsafe(F),te=Y.head,z=1;for(te.data.copy(W),F-=te.data.length;te=te.next;){var q=te.data,$=F>q.length?q.length:F;if(q.copy(W,W.length-F,0,$),F-=$,F===0){$===q.length?(++z,te.next?Y.head=te.next:Y.head=Y.tail=null):(Y.head=te,te.data=q.slice($));break}++z}return Y.length-=z,W}function T(F){var Y=F._readableState;if(Y.length>0)throw new Error('"endReadable()" called on non-empty stream');Y.endEmitted||(Y.ended=!0,o.nextTick(V,Y,F))}function V(F,Y){!F.endEmitted&&F.length===0&&(F.endEmitted=!0,Y.readable=!1,Y.emit("end"))}function P(F,Y){for(var W=0,te=F.length;W0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,h){if(typeof n=="number")return this._initNumber(n,a,h);if(typeof n=="object")return this._initArray(n,a,h);a==="hex"&&(a=16),f(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var c=0;n[0]==="-"&&(c++,this.negative=1),c=0;c-=3)g=n[c]|n[c-1]<<8|n[c-2]<<16,this.words[C]|=g<>>26-t&67108863,t+=24,t>=26&&(t-=26,C++);else if(h==="le")for(c=0,C=0;c>>26-t&67108863,t+=24,t>=26&&(t-=26,C++);return this._strip()};function I(A,n){var a=A.charCodeAt(n);if(a>=48&&a<=57)return a-48;if(a>=65&&a<=70)return a-55;if(a>=97&&a<=102)return a-87;f(!1,"Invalid character in "+A)}function p(A,n,a){var h=I(A,a);return a-1>=n&&(h|=I(A,a-1)<<4),h}r.prototype._parseHex=function(n,a,h){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var c=0;c=a;c-=2)t=p(n,a,c)<=18?(C-=18,g+=1,this.words[g]|=t>>>26):C+=8;else{var u=n.length-a;for(c=u%2===0?a+1:a;c=18?(C-=18,g+=1,this.words[g]|=t>>>26):C+=8}this._strip()};function Q(A,n,a,h){for(var c=0,C=0,g=Math.min(A.length,a),t=n;t=49?C=u-49+10:u>=17?C=u-17+10:C=u,f(u>=0&&C1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{r.prototype[Symbol.for("nodejs.util.inspect.custom")]=y}catch{r.prototype.inspect=y}else r.prototype.inspect=y;function y(){return(this.red?""}var v=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],w=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],M=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var h;if(n===16||n==="hex"){h="";for(var c=0,C=0,g=0;g>>24-c&16777215,c+=2,c>=26&&(c-=26,g--),C!==0||g!==this.length-1?h=v[6-u.length]+u+h:h=u+h}for(C!==0&&(h=C.toString(16)+h);h.length%a!==0;)h="0"+h;return this.negative!==0&&(h="-"+h),h}if(n===(n|0)&&n>=2&&n<=36){var b=w[n],R=M[n];h="";var T=this.clone();for(T.negative=0;!T.isZero();){var V=T.modrn(R).toString(n);T=T.idivn(R),T.isZero()?h=V+h:h=v[b-V.length]+V+h}for(this.isZero()&&(h="0"+h);h.length%a!==0;)h="0"+h;return this.negative!==0&&(h="-"+h),h}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16,2)},B&&(r.prototype.toBuffer=function(n,a){return this.toArrayLike(B,n,a)}),r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)};var m=function(n,a){return n.allocUnsafe?n.allocUnsafe(a):new n(a)};r.prototype.toArrayLike=function(n,a,h){this._strip();var c=this.byteLength(),C=h||Math.max(1,c);f(c<=C,"byte array longer than desired length"),f(C>0,"Requested array length <= 0");var g=m(n,C),t=a==="le"?"LE":"BE";return this["_toArrayLike"+t](g,c),g},r.prototype._toArrayLikeLE=function(n,a){for(var h=0,c=0,C=0,g=0;C>8&255),h>16&255),g===6?(h>24&255),c=0,g=0):(c=t>>>24,g+=2)}if(h=0&&(n[h--]=t>>8&255),h>=0&&(n[h--]=t>>16&255),g===6?(h>=0&&(n[h--]=t>>24&255),c=0,g=0):(c=t>>>24,g+=2)}if(h>=0)for(n[h--]=c;h>=0;)n[h--]=0},Math.clz32?r.prototype._countBits=function(n){return 32-Math.clz32(n)}:r.prototype._countBits=function(n){var a=n,h=0;return a>=4096&&(h+=13,a>>>=13),a>=64&&(h+=7,a>>>=7),a>=8&&(h+=4,a>>>=4),a>=2&&(h+=2,a>>>=2),h+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,h=0;return a&8191||(h+=13,a>>>=13),a&127||(h+=7,a>>>=7),a&15||(h+=4,a>>>=4),a&3||(h+=2,a>>>=2),a&1||h++,h},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function x(A){for(var n=new Array(A.bitLength()),a=0;a>>c&1}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var h=0;hn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,h;this.length>n.length?(a=this,h=n):(a=n,h=this);for(var c=0;cn.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){f(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,h=n%26;this._expand(a),h>0&&a--;for(var c=0;c0&&(this.words[c]=~this.words[c]&67108863>>26-h),this._strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){f(typeof n=="number"&&n>=0);var h=n/26|0,c=n%26;return this._expand(h+1),a?this.words[h]=this.words[h]|1<n.length?(h=this,c=n):(h=n,c=this);for(var C=0,g=0;g>>26;for(;C!==0&&g>>26;if(this.length=h.length,C!==0)this.words[this.length]=C,this.length++;else if(h!==this)for(;gn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var h=this.cmp(n);if(h===0)return this.negative=0,this.length=1,this.words[0]=0,this;var c,C;h>0?(c=this,C=n):(c=n,C=this);for(var g=0,t=0;t>26,this.words[t]=a&67108863;for(;g!==0&&t>26,this.words[t]=a&67108863;if(g===0&&t>>26,T=u&67108863,V=Math.min(b,n.length-1),P=Math.max(0,b-A.length+1);P<=V;P++){var F=b-P|0;c=A.words[F]|0,C=n.words[P]|0,g=c*C+T,R+=g/67108864|0,T=g&67108863}a.words[b]=T|0,u=R|0}return u!==0?a.words[b]=u|0:a.length--,a._strip()}var S=function(n,a,h){var c=n.words,C=a.words,g=h.words,t=0,u,b,R,T=c[0]|0,V=T&8191,P=T>>>13,F=c[1]|0,Y=F&8191,W=F>>>13,te=c[2]|0,z=te&8191,q=te>>>13,$=c[3]|0,le=$&8191,ae=$>>>13,he=c[4]|0,xe=he&8191,se=he>>>13,oe=c[5]|0,Ue=oe&8191,fe=oe>>>13,ce=c[6]|0,Te=ce&8191,ue=ce>>>13,Be=c[7]|0,Ve=Be&8191,H=Be>>>13,k=c[8]|0,G=k&8191,O=k>>>13,ee=c[9]|0,de=ee&8191,ie=ee>>>13,Ee=C[0]|0,Oe=Ee&8191,Ce=Ee>>>13,Qe=C[1]|0,Je=Qe&8191,me=Qe>>>13,Fe=C[2]|0,at=Fe&8191,ve=Fe>>>13,Ke=C[3]|0,nt=Ke&8191,we=Ke>>>13,Re=C[4]|0,Le=Re&8191,ge=Re>>>13,ye=C[5]|0,We=ye&8191,pe=ye>>>13,ke=C[6]|0,ot=ke&8191,Me=ke>>>13,Ne=C[7]|0,st=Ne&8191,be=Ne>>>13,Ge=C[8]|0,ft=Ge&8191,De=Ge>>>13,_e=C[9]|0,At=_e&8191,tt=_e>>>13;h.negative=n.negative^a.negative,h.length=19,u=Math.imul(V,Oe),b=Math.imul(V,Ce),b=b+Math.imul(P,Oe)|0,R=Math.imul(P,Ce);var Qt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,u=Math.imul(Y,Oe),b=Math.imul(Y,Ce),b=b+Math.imul(W,Oe)|0,R=Math.imul(W,Ce),u=u+Math.imul(V,Je)|0,b=b+Math.imul(V,me)|0,b=b+Math.imul(P,Je)|0,R=R+Math.imul(P,me)|0;var Et=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Et>>>26)|0,Et&=67108863,u=Math.imul(z,Oe),b=Math.imul(z,Ce),b=b+Math.imul(q,Oe)|0,R=Math.imul(q,Ce),u=u+Math.imul(Y,Je)|0,b=b+Math.imul(Y,me)|0,b=b+Math.imul(W,Je)|0,R=R+Math.imul(W,me)|0,u=u+Math.imul(V,at)|0,b=b+Math.imul(V,ve)|0,b=b+Math.imul(P,at)|0,R=R+Math.imul(P,ve)|0;var vt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(vt>>>26)|0,vt&=67108863,u=Math.imul(le,Oe),b=Math.imul(le,Ce),b=b+Math.imul(ae,Oe)|0,R=Math.imul(ae,Ce),u=u+Math.imul(z,Je)|0,b=b+Math.imul(z,me)|0,b=b+Math.imul(q,Je)|0,R=R+Math.imul(q,me)|0,u=u+Math.imul(Y,at)|0,b=b+Math.imul(Y,ve)|0,b=b+Math.imul(W,at)|0,R=R+Math.imul(W,ve)|0,u=u+Math.imul(V,nt)|0,b=b+Math.imul(V,we)|0,b=b+Math.imul(P,nt)|0,R=R+Math.imul(P,we)|0;var wt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(wt>>>26)|0,wt&=67108863,u=Math.imul(xe,Oe),b=Math.imul(xe,Ce),b=b+Math.imul(se,Oe)|0,R=Math.imul(se,Ce),u=u+Math.imul(le,Je)|0,b=b+Math.imul(le,me)|0,b=b+Math.imul(ae,Je)|0,R=R+Math.imul(ae,me)|0,u=u+Math.imul(z,at)|0,b=b+Math.imul(z,ve)|0,b=b+Math.imul(q,at)|0,R=R+Math.imul(q,ve)|0,u=u+Math.imul(Y,nt)|0,b=b+Math.imul(Y,we)|0,b=b+Math.imul(W,nt)|0,R=R+Math.imul(W,we)|0,u=u+Math.imul(V,Le)|0,b=b+Math.imul(V,ge)|0,b=b+Math.imul(P,Le)|0,R=R+Math.imul(P,ge)|0;var mt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(mt>>>26)|0,mt&=67108863,u=Math.imul(Ue,Oe),b=Math.imul(Ue,Ce),b=b+Math.imul(fe,Oe)|0,R=Math.imul(fe,Ce),u=u+Math.imul(xe,Je)|0,b=b+Math.imul(xe,me)|0,b=b+Math.imul(se,Je)|0,R=R+Math.imul(se,me)|0,u=u+Math.imul(le,at)|0,b=b+Math.imul(le,ve)|0,b=b+Math.imul(ae,at)|0,R=R+Math.imul(ae,ve)|0,u=u+Math.imul(z,nt)|0,b=b+Math.imul(z,we)|0,b=b+Math.imul(q,nt)|0,R=R+Math.imul(q,we)|0,u=u+Math.imul(Y,Le)|0,b=b+Math.imul(Y,ge)|0,b=b+Math.imul(W,Le)|0,R=R+Math.imul(W,ge)|0,u=u+Math.imul(V,We)|0,b=b+Math.imul(V,pe)|0,b=b+Math.imul(P,We)|0,R=R+Math.imul(P,pe)|0;var Mt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,u=Math.imul(Te,Oe),b=Math.imul(Te,Ce),b=b+Math.imul(ue,Oe)|0,R=Math.imul(ue,Ce),u=u+Math.imul(Ue,Je)|0,b=b+Math.imul(Ue,me)|0,b=b+Math.imul(fe,Je)|0,R=R+Math.imul(fe,me)|0,u=u+Math.imul(xe,at)|0,b=b+Math.imul(xe,ve)|0,b=b+Math.imul(se,at)|0,R=R+Math.imul(se,ve)|0,u=u+Math.imul(le,nt)|0,b=b+Math.imul(le,we)|0,b=b+Math.imul(ae,nt)|0,R=R+Math.imul(ae,we)|0,u=u+Math.imul(z,Le)|0,b=b+Math.imul(z,ge)|0,b=b+Math.imul(q,Le)|0,R=R+Math.imul(q,ge)|0,u=u+Math.imul(Y,We)|0,b=b+Math.imul(Y,pe)|0,b=b+Math.imul(W,We)|0,R=R+Math.imul(W,pe)|0,u=u+Math.imul(V,ot)|0,b=b+Math.imul(V,Me)|0,b=b+Math.imul(P,ot)|0,R=R+Math.imul(P,Me)|0;var qe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(qe>>>26)|0,qe&=67108863,u=Math.imul(Ve,Oe),b=Math.imul(Ve,Ce),b=b+Math.imul(H,Oe)|0,R=Math.imul(H,Ce),u=u+Math.imul(Te,Je)|0,b=b+Math.imul(Te,me)|0,b=b+Math.imul(ue,Je)|0,R=R+Math.imul(ue,me)|0,u=u+Math.imul(Ue,at)|0,b=b+Math.imul(Ue,ve)|0,b=b+Math.imul(fe,at)|0,R=R+Math.imul(fe,ve)|0,u=u+Math.imul(xe,nt)|0,b=b+Math.imul(xe,we)|0,b=b+Math.imul(se,nt)|0,R=R+Math.imul(se,we)|0,u=u+Math.imul(le,Le)|0,b=b+Math.imul(le,ge)|0,b=b+Math.imul(ae,Le)|0,R=R+Math.imul(ae,ge)|0,u=u+Math.imul(z,We)|0,b=b+Math.imul(z,pe)|0,b=b+Math.imul(q,We)|0,R=R+Math.imul(q,pe)|0,u=u+Math.imul(Y,ot)|0,b=b+Math.imul(Y,Me)|0,b=b+Math.imul(W,ot)|0,R=R+Math.imul(W,Me)|0,u=u+Math.imul(V,st)|0,b=b+Math.imul(V,be)|0,b=b+Math.imul(P,st)|0,R=R+Math.imul(P,be)|0;var Ye=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,u=Math.imul(G,Oe),b=Math.imul(G,Ce),b=b+Math.imul(O,Oe)|0,R=Math.imul(O,Ce),u=u+Math.imul(Ve,Je)|0,b=b+Math.imul(Ve,me)|0,b=b+Math.imul(H,Je)|0,R=R+Math.imul(H,me)|0,u=u+Math.imul(Te,at)|0,b=b+Math.imul(Te,ve)|0,b=b+Math.imul(ue,at)|0,R=R+Math.imul(ue,ve)|0,u=u+Math.imul(Ue,nt)|0,b=b+Math.imul(Ue,we)|0,b=b+Math.imul(fe,nt)|0,R=R+Math.imul(fe,we)|0,u=u+Math.imul(xe,Le)|0,b=b+Math.imul(xe,ge)|0,b=b+Math.imul(se,Le)|0,R=R+Math.imul(se,ge)|0,u=u+Math.imul(le,We)|0,b=b+Math.imul(le,pe)|0,b=b+Math.imul(ae,We)|0,R=R+Math.imul(ae,pe)|0,u=u+Math.imul(z,ot)|0,b=b+Math.imul(z,Me)|0,b=b+Math.imul(q,ot)|0,R=R+Math.imul(q,Me)|0,u=u+Math.imul(Y,st)|0,b=b+Math.imul(Y,be)|0,b=b+Math.imul(W,st)|0,R=R+Math.imul(W,be)|0,u=u+Math.imul(V,ft)|0,b=b+Math.imul(V,De)|0,b=b+Math.imul(P,ft)|0,R=R+Math.imul(P,De)|0;var Pe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,u=Math.imul(de,Oe),b=Math.imul(de,Ce),b=b+Math.imul(ie,Oe)|0,R=Math.imul(ie,Ce),u=u+Math.imul(G,Je)|0,b=b+Math.imul(G,me)|0,b=b+Math.imul(O,Je)|0,R=R+Math.imul(O,me)|0,u=u+Math.imul(Ve,at)|0,b=b+Math.imul(Ve,ve)|0,b=b+Math.imul(H,at)|0,R=R+Math.imul(H,ve)|0,u=u+Math.imul(Te,nt)|0,b=b+Math.imul(Te,we)|0,b=b+Math.imul(ue,nt)|0,R=R+Math.imul(ue,we)|0,u=u+Math.imul(Ue,Le)|0,b=b+Math.imul(Ue,ge)|0,b=b+Math.imul(fe,Le)|0,R=R+Math.imul(fe,ge)|0,u=u+Math.imul(xe,We)|0,b=b+Math.imul(xe,pe)|0,b=b+Math.imul(se,We)|0,R=R+Math.imul(se,pe)|0,u=u+Math.imul(le,ot)|0,b=b+Math.imul(le,Me)|0,b=b+Math.imul(ae,ot)|0,R=R+Math.imul(ae,Me)|0,u=u+Math.imul(z,st)|0,b=b+Math.imul(z,be)|0,b=b+Math.imul(q,st)|0,R=R+Math.imul(q,be)|0,u=u+Math.imul(Y,ft)|0,b=b+Math.imul(Y,De)|0,b=b+Math.imul(W,ft)|0,R=R+Math.imul(W,De)|0,u=u+Math.imul(V,At)|0,b=b+Math.imul(V,tt)|0,b=b+Math.imul(P,At)|0,R=R+Math.imul(P,tt)|0;var ze=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ze>>>26)|0,ze&=67108863,u=Math.imul(de,Je),b=Math.imul(de,me),b=b+Math.imul(ie,Je)|0,R=Math.imul(ie,me),u=u+Math.imul(G,at)|0,b=b+Math.imul(G,ve)|0,b=b+Math.imul(O,at)|0,R=R+Math.imul(O,ve)|0,u=u+Math.imul(Ve,nt)|0,b=b+Math.imul(Ve,we)|0,b=b+Math.imul(H,nt)|0,R=R+Math.imul(H,we)|0,u=u+Math.imul(Te,Le)|0,b=b+Math.imul(Te,ge)|0,b=b+Math.imul(ue,Le)|0,R=R+Math.imul(ue,ge)|0,u=u+Math.imul(Ue,We)|0,b=b+Math.imul(Ue,pe)|0,b=b+Math.imul(fe,We)|0,R=R+Math.imul(fe,pe)|0,u=u+Math.imul(xe,ot)|0,b=b+Math.imul(xe,Me)|0,b=b+Math.imul(se,ot)|0,R=R+Math.imul(se,Me)|0,u=u+Math.imul(le,st)|0,b=b+Math.imul(le,be)|0,b=b+Math.imul(ae,st)|0,R=R+Math.imul(ae,be)|0,u=u+Math.imul(z,ft)|0,b=b+Math.imul(z,De)|0,b=b+Math.imul(q,ft)|0,R=R+Math.imul(q,De)|0,u=u+Math.imul(Y,At)|0,b=b+Math.imul(Y,tt)|0,b=b+Math.imul(W,At)|0,R=R+Math.imul(W,tt)|0;var Xe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,u=Math.imul(de,at),b=Math.imul(de,ve),b=b+Math.imul(ie,at)|0,R=Math.imul(ie,ve),u=u+Math.imul(G,nt)|0,b=b+Math.imul(G,we)|0,b=b+Math.imul(O,nt)|0,R=R+Math.imul(O,we)|0,u=u+Math.imul(Ve,Le)|0,b=b+Math.imul(Ve,ge)|0,b=b+Math.imul(H,Le)|0,R=R+Math.imul(H,ge)|0,u=u+Math.imul(Te,We)|0,b=b+Math.imul(Te,pe)|0,b=b+Math.imul(ue,We)|0,R=R+Math.imul(ue,pe)|0,u=u+Math.imul(Ue,ot)|0,b=b+Math.imul(Ue,Me)|0,b=b+Math.imul(fe,ot)|0,R=R+Math.imul(fe,Me)|0,u=u+Math.imul(xe,st)|0,b=b+Math.imul(xe,be)|0,b=b+Math.imul(se,st)|0,R=R+Math.imul(se,be)|0,u=u+Math.imul(le,ft)|0,b=b+Math.imul(le,De)|0,b=b+Math.imul(ae,ft)|0,R=R+Math.imul(ae,De)|0,u=u+Math.imul(z,At)|0,b=b+Math.imul(z,tt)|0,b=b+Math.imul(q,At)|0,R=R+Math.imul(q,tt)|0;var rt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(rt>>>26)|0,rt&=67108863,u=Math.imul(de,nt),b=Math.imul(de,we),b=b+Math.imul(ie,nt)|0,R=Math.imul(ie,we),u=u+Math.imul(G,Le)|0,b=b+Math.imul(G,ge)|0,b=b+Math.imul(O,Le)|0,R=R+Math.imul(O,ge)|0,u=u+Math.imul(Ve,We)|0,b=b+Math.imul(Ve,pe)|0,b=b+Math.imul(H,We)|0,R=R+Math.imul(H,pe)|0,u=u+Math.imul(Te,ot)|0,b=b+Math.imul(Te,Me)|0,b=b+Math.imul(ue,ot)|0,R=R+Math.imul(ue,Me)|0,u=u+Math.imul(Ue,st)|0,b=b+Math.imul(Ue,be)|0,b=b+Math.imul(fe,st)|0,R=R+Math.imul(fe,be)|0,u=u+Math.imul(xe,ft)|0,b=b+Math.imul(xe,De)|0,b=b+Math.imul(se,ft)|0,R=R+Math.imul(se,De)|0,u=u+Math.imul(le,At)|0,b=b+Math.imul(le,tt)|0,b=b+Math.imul(ae,At)|0,R=R+Math.imul(ae,tt)|0;var it=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(it>>>26)|0,it&=67108863,u=Math.imul(de,Le),b=Math.imul(de,ge),b=b+Math.imul(ie,Le)|0,R=Math.imul(ie,ge),u=u+Math.imul(G,We)|0,b=b+Math.imul(G,pe)|0,b=b+Math.imul(O,We)|0,R=R+Math.imul(O,pe)|0,u=u+Math.imul(Ve,ot)|0,b=b+Math.imul(Ve,Me)|0,b=b+Math.imul(H,ot)|0,R=R+Math.imul(H,Me)|0,u=u+Math.imul(Te,st)|0,b=b+Math.imul(Te,be)|0,b=b+Math.imul(ue,st)|0,R=R+Math.imul(ue,be)|0,u=u+Math.imul(Ue,ft)|0,b=b+Math.imul(Ue,De)|0,b=b+Math.imul(fe,ft)|0,R=R+Math.imul(fe,De)|0,u=u+Math.imul(xe,At)|0,b=b+Math.imul(xe,tt)|0,b=b+Math.imul(se,At)|0,R=R+Math.imul(se,tt)|0;var ct=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ct>>>26)|0,ct&=67108863,u=Math.imul(de,We),b=Math.imul(de,pe),b=b+Math.imul(ie,We)|0,R=Math.imul(ie,pe),u=u+Math.imul(G,ot)|0,b=b+Math.imul(G,Me)|0,b=b+Math.imul(O,ot)|0,R=R+Math.imul(O,Me)|0,u=u+Math.imul(Ve,st)|0,b=b+Math.imul(Ve,be)|0,b=b+Math.imul(H,st)|0,R=R+Math.imul(H,be)|0,u=u+Math.imul(Te,ft)|0,b=b+Math.imul(Te,De)|0,b=b+Math.imul(ue,ft)|0,R=R+Math.imul(ue,De)|0,u=u+Math.imul(Ue,At)|0,b=b+Math.imul(Ue,tt)|0,b=b+Math.imul(fe,At)|0,R=R+Math.imul(fe,tt)|0;var ut=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ut>>>26)|0,ut&=67108863,u=Math.imul(de,ot),b=Math.imul(de,Me),b=b+Math.imul(ie,ot)|0,R=Math.imul(ie,Me),u=u+Math.imul(G,st)|0,b=b+Math.imul(G,be)|0,b=b+Math.imul(O,st)|0,R=R+Math.imul(O,be)|0,u=u+Math.imul(Ve,ft)|0,b=b+Math.imul(Ve,De)|0,b=b+Math.imul(H,ft)|0,R=R+Math.imul(H,De)|0,u=u+Math.imul(Te,At)|0,b=b+Math.imul(Te,tt)|0,b=b+Math.imul(ue,At)|0,R=R+Math.imul(ue,tt)|0;var It=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(It>>>26)|0,It&=67108863,u=Math.imul(de,st),b=Math.imul(de,be),b=b+Math.imul(ie,st)|0,R=Math.imul(ie,be),u=u+Math.imul(G,ft)|0,b=b+Math.imul(G,De)|0,b=b+Math.imul(O,ft)|0,R=R+Math.imul(O,De)|0,u=u+Math.imul(Ve,At)|0,b=b+Math.imul(Ve,tt)|0,b=b+Math.imul(H,At)|0,R=R+Math.imul(H,tt)|0;var pt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(pt>>>26)|0,pt&=67108863,u=Math.imul(de,ft),b=Math.imul(de,De),b=b+Math.imul(ie,ft)|0,R=Math.imul(ie,De),u=u+Math.imul(G,At)|0,b=b+Math.imul(G,tt)|0,b=b+Math.imul(O,At)|0,R=R+Math.imul(O,tt)|0;var EA=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(de,At),b=Math.imul(de,tt),b=b+Math.imul(ie,At)|0,R=Math.imul(ie,tt);var YA=(t+u|0)+((b&8191)<<13)|0;return t=(R+(b>>>13)|0)+(YA>>>26)|0,YA&=67108863,g[0]=Qt,g[1]=Et,g[2]=vt,g[3]=wt,g[4]=mt,g[5]=Mt,g[6]=qe,g[7]=Ye,g[8]=Pe,g[9]=ze,g[10]=Xe,g[11]=rt,g[12]=it,g[13]=ct,g[14]=ut,g[15]=It,g[16]=pt,g[17]=EA,g[18]=YA,t!==0&&(g[19]=t,h.length++),h};Math.imul||(S=D);function K(A,n,a){a.negative=n.negative^A.negative,a.length=A.length+n.length;for(var h=0,c=0,C=0;C>>26)|0,c+=g>>>26,g&=67108863}a.words[C]=t,h=g,g=c}return h!==0?a.words[C]=h:a.length--,a._strip()}function N(A,n,a){return K(A,n,a)}r.prototype.mulTo=function(n,a){var h,c=this.length+n.length;return this.length===10&&n.length===10?h=S(this,n,a):c<63?h=D(this,n,a):c<1024?h=K(this,n,a):h=N(this,n,a),h},r.prototype.mul=function(n){var a=new r(null);return a.words=new Array(this.length+n.length),this.mulTo(n,a)},r.prototype.mulf=function(n){var a=new r(null);return a.words=new Array(this.length+n.length),N(this,n,a)},r.prototype.imul=function(n){return this.clone().mulTo(n,this)},r.prototype.imuln=function(n){var a=n<0;a&&(n=-n),f(typeof n=="number"),f(n<67108864);for(var h=0,c=0;c>=26,h+=C/67108864|0,h+=g>>>26,this.words[c]=g&67108863}return h!==0&&(this.words[c]=h,this.length++),a?this.ineg():this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=x(n);if(a.length===0)return new r(1);for(var h=this,c=0;c=0);var a=n%26,h=(n-a)/26,c=67108863>>>26-a<<26-a,C;if(a!==0){var g=0;for(C=0;C>>26-a}g&&(this.words[C]=g,this.length++)}if(h!==0){for(C=this.length-1;C>=0;C--)this.words[C+h]=this.words[C];for(C=0;C=0);var c;a?c=(a-a%26)/26:c=0;var C=n%26,g=Math.min((n-C)/26,this.length),t=67108863^67108863>>>C<g)for(this.length-=g,b=0;b=0&&(R!==0||b>=c);b--){var T=this.words[b]|0;this.words[b]=R<<26-C|T>>>C,R=T&t}return u&&R!==0&&(u.words[u.length++]=R),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},r.prototype.ishrn=function(n,a,h){return f(this.negative===0),this.iushrn(n,a,h)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){f(typeof n=="number"&&n>=0);var a=n%26,h=(n-a)/26,c=1<=0);var a=n%26,h=(n-a)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=h)return this;if(a!==0&&h++,this.length=Math.min(h,this.length),a!==0){var c=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(f(typeof n=="number"),f(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[C+h]=g&67108863}for(;C>26,this.words[C+h]=g&67108863;if(t===0)return this._strip();for(f(t===-1),t=0,C=0;C>26,this.words[C]=g&67108863;return this.negative=1,this._strip()},r.prototype._wordDiv=function(n,a){var h=this.length-n.length,c=this.clone(),C=n,g=C.words[C.length-1]|0,t=this._countBits(g);h=26-t,h!==0&&(C=C.ushln(h),c.iushln(h),g=C.words[C.length-1]|0);var u=c.length-C.length,b;if(a!=="mod"){b=new r(null),b.length=u+1,b.words=new Array(b.length);for(var R=0;R=0;V--){var P=(c.words[C.length+V]|0)*67108864+(c.words[C.length+V-1]|0);for(P=Math.min(P/g|0,67108863),c._ishlnsubmul(C,P,V);c.negative!==0;)P--,c.negative=0,c._ishlnsubmul(C,1,V),c.isZero()||(c.negative^=1);b&&(b.words[V]=P)}return b&&b._strip(),c._strip(),a!=="div"&&h!==0&&c.iushrn(h),{div:b||null,mod:c}},r.prototype.divmod=function(n,a,h){if(f(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var c,C,g;return this.negative!==0&&n.negative===0?(g=this.neg().divmod(n,a),a!=="mod"&&(c=g.div.neg()),a!=="div"&&(C=g.mod.neg(),h&&C.negative!==0&&C.iadd(n)),{div:c,mod:C}):this.negative===0&&n.negative!==0?(g=this.divmod(n.neg(),a),a!=="mod"&&(c=g.div.neg()),{div:c,mod:g.mod}):this.negative&n.negative?(g=this.neg().divmod(n.neg(),a),a!=="div"&&(C=g.mod.neg(),h&&C.negative!==0&&C.isub(n)),{div:g.div,mod:C}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modrn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modrn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var h=a.div.negative!==0?a.mod.isub(n):a.mod,c=n.ushrn(1),C=n.andln(1),g=h.cmp(c);return g<0||C===1&&g===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modrn=function(n){var a=n<0;a&&(n=-n),f(n<=67108863);for(var h=(1<<26)%n,c=0,C=this.length-1;C>=0;C--)c=(h*c+(this.words[C]|0))%n;return a?-c:c},r.prototype.modn=function(n){return this.modrn(n)},r.prototype.idivn=function(n){var a=n<0;a&&(n=-n),f(n<=67108863);for(var h=0,c=this.length-1;c>=0;c--){var C=(this.words[c]|0)+h*67108864;this.words[c]=C/n|0,h=C%n}return this._strip(),a?this.ineg():this},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){f(n.negative===0),f(!n.isZero());var a=this,h=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var c=new r(1),C=new r(0),g=new r(0),t=new r(1),u=0;a.isEven()&&h.isEven();)a.iushrn(1),h.iushrn(1),++u;for(var b=h.clone(),R=a.clone();!a.isZero();){for(var T=0,V=1;!(a.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(a.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(b),C.isub(R)),c.iushrn(1),C.iushrn(1);for(var P=0,F=1;!(h.words[0]&F)&&P<26;++P,F<<=1);if(P>0)for(h.iushrn(P);P-- >0;)(g.isOdd()||t.isOdd())&&(g.iadd(b),t.isub(R)),g.iushrn(1),t.iushrn(1);a.cmp(h)>=0?(a.isub(h),c.isub(g),C.isub(t)):(h.isub(a),g.isub(c),t.isub(C))}return{a:g,b:t,gcd:h.iushln(u)}},r.prototype._invmp=function(n){f(n.negative===0),f(!n.isZero());var a=this,h=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var c=new r(1),C=new r(0),g=h.clone();a.cmpn(1)>0&&h.cmpn(1)>0;){for(var t=0,u=1;!(a.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(a.iushrn(t);t-- >0;)c.isOdd()&&c.iadd(g),c.iushrn(1);for(var b=0,R=1;!(h.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(h.iushrn(b);b-- >0;)C.isOdd()&&C.iadd(g),C.iushrn(1);a.cmp(h)>=0?(a.isub(h),c.isub(C)):(h.isub(a),C.isub(c))}var T;return a.cmpn(1)===0?T=c:T=C,T.cmpn(0)<0&&T.iadd(n),T},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),h=n.clone();a.negative=0,h.negative=0;for(var c=0;a.isEven()&&h.isEven();c++)a.iushrn(1),h.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;h.isEven();)h.iushrn(1);var C=a.cmp(h);if(C<0){var g=a;a=h,h=g}else if(C===0||h.cmpn(1)===0)break;a.isub(h)}while(!0);return h.iushln(c)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){f(typeof n=="number");var a=n%26,h=(n-a)/26,c=1<>>26,t&=67108863,this.words[g]=t}return C!==0&&(this.words[g]=C,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this._strip();var h;if(this.length>1)h=1;else{a&&(n=-n),f(n<=67108863,"Number is too big");var c=this.words[0]|0;h=c===n?0:cn.length)return 1;if(this.length=0;h--){var c=this.words[h]|0,C=n.words[h]|0;if(c!==C){cC&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new E(n)},r.prototype.toRed=function(n){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return f(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return f(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var L={k256:null,p224:null,p192:null,p25519:null};function j(A,n){this.name=A,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}j.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},j.prototype.ireduce=function(n){var a=n,h;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),h=a.bitLength();while(h>this.n);var c=h0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},j.prototype.split=function(n,a){n.iushrn(this.n,0,a)},j.prototype.imulK=function(n){return n.imul(this.k)};function re(){j.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(re,j),re.prototype.split=function(n,a){for(var h=4194303,c=Math.min(n.length,9),C=0;C>>22,g=t}g>>>=22,n.words[C-10]=g,g===0&&n.length>10?n.length-=10:n.length-=9},re.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,h=0;h>>=26,n.words[h]=C,a=c}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(L[n])return L[n];var a;if(n==="k256")a=new re;else if(n==="p224")a=new Z;else if(n==="p192")a=new J;else if(n==="p25519")a=new Ae;else throw new Error("Unknown prime "+n);return L[n]=a,a};function E(A){if(typeof A=="string"){var n=r._prime(A);this.m=n.p,this.prime=n}else f(A.gtn(1),"modulus must be greater than 1"),this.m=A,this.prime=null}E.prototype._verify1=function(n){f(n.negative===0,"red works only with positives"),f(n.red,"red works only with red numbers")},E.prototype._verify2=function(n,a){f((n.negative|a.negative)===0,"red works only with positives"),f(n.red&&n.red===a.red,"red works only with red numbers")},E.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):(d(n,n.umod(this.m)._forceRed(this)),n)},E.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},E.prototype.add=function(n,a){this._verify2(n,a);var h=n.add(a);return h.cmp(this.m)>=0&&h.isub(this.m),h._forceRed(this)},E.prototype.iadd=function(n,a){this._verify2(n,a);var h=n.iadd(a);return h.cmp(this.m)>=0&&h.isub(this.m),h},E.prototype.sub=function(n,a){this._verify2(n,a);var h=n.sub(a);return h.cmpn(0)<0&&h.iadd(this.m),h._forceRed(this)},E.prototype.isub=function(n,a){this._verify2(n,a);var h=n.isub(a);return h.cmpn(0)<0&&h.iadd(this.m),h},E.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},E.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},E.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},E.prototype.isqr=function(n){return this.imul(n,n.clone())},E.prototype.sqr=function(n){return this.mul(n,n)},E.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(f(a%2===1),a===3){var h=this.m.add(new r(1)).iushrn(2);return this.pow(n,h)}for(var c=this.m.subn(1),C=0;!c.isZero()&&c.andln(1)===0;)C++,c.iushrn(1);f(!c.isZero());var g=new r(1).toRed(this),t=g.redNeg(),u=this.m.subn(1).iushrn(1),b=this.m.bitLength();for(b=new r(2*b*b).toRed(this);this.pow(b,u).cmp(t)!==0;)b.redIAdd(t);for(var R=this.pow(b,c),T=this.pow(n,c.addn(1).iushrn(1)),V=this.pow(n,c),P=C;V.cmp(g)!==0;){for(var F=V,Y=0;F.cmp(g)!==0;Y++)F=F.redSqr();f(Y=0;C--){for(var R=a.words[C],T=b-1;T>=0;T--){var V=R>>T&1;if(g!==c[0]&&(g=this.sqr(g)),V===0&&t===0){u=0;continue}t<<=1,t|=V,u++,!(u!==h&&(C!==0||T!==0))&&(g=this.mul(g,c[t]),u=0,t=0)}b=26}return g},E.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},E.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new e(n)};function e(A){E.call(this,A),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(e,E),e.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},e.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},e.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var h=n.imul(a),c=h.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),C=h.isub(c).iushrn(this.shift),g=C;return C.cmp(this.m)>=0?g=C.isub(this.m):C.cmpn(0)<0&&(g=C.iadd(this.m)),g._forceRed(this)},e.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var h=n.mul(a),c=h.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),C=h.isub(c).iushrn(this.shift),g=C;return C.cmp(this.m)>=0?g=C.isub(this.m):C.cmpn(0)<0&&(g=C.iadd(this.m)),g._forceRed(this)},e.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(o,Rwe)}(iE)),iE.exports}var x3,YP;function jN(){if(YP)return x3;YP=1;var o=ON(),i=su(),s=mA().Buffer;function f(B){var I=B.modulus.byteLength(),p;do p=new o(i(I));while(p.cmp(B.modulus)>=0||!p.umod(B.prime1)||!p.umod(B.prime2));return p}function l(B){var I=f(B),p=I.toRed(o.mont(B.modulus)).redPow(new o(B.publicExponent)).fromRed();return{blinder:p,unblinder:I.invm(B.modulus)}}function r(B,I){var p=l(I),Q=I.modulus.byteLength(),d=new o(B).mul(p.blinder).umod(I.modulus),y=d.toRed(o.mont(I.prime1)),v=d.toRed(o.mont(I.prime2)),w=I.coefficient,M=I.prime1,m=I.prime2,x=y.redPow(I.exponent1).fromRed(),D=v.redPow(I.exponent2).fromRed(),S=x.isub(D).imul(w).umod(M).imul(m);return D.iadd(S).imul(p.unblinder).umod(I.modulus).toArrayLike(s,"be",Q)}return r.getr=f,x3=r,x3}var Tn={},R3={},nE={exports:{}},kwe=nE.exports,JP;function Nwe(){return JP||(JP=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,kwe)}(nE)),nE.exports}var k3={},PP;function _we(){return PP||(PP=1,function(o){var i=gd(),s=gA(),f=o;f.define=function(B,I){return new l(B,I)};function l(r,B){this.name=r,this.body=B,this.decoders={},this.encoders={}}l.prototype._createNamed=function(B){var I;try{I=tA.runInThisContext("(function "+this.name+`(entity) { - this._initNamed(entity); -})`)}catch{I=function(Q){this._initNamed(Q)}}return s(I,B),I.prototype._initNamed=function(Q){B.call(this,Q)},new I(this)},l.prototype._getDecoder=function(B){return B=B||"der",this.decoders.hasOwnProperty(B)||(this.decoders[B]=this._createNamed(i.decoders[B])),this.decoders[B]},l.prototype.decode=function(B,I,p){return this._getDecoder(I).decode(B,p)},l.prototype._getEncoder=function(B){return B=B||"der",this.encoders.hasOwnProperty(B)||(this.encoders[B]=this._createNamed(i.encoders[B])),this.encoders[B]},l.prototype.encode=function(B,I,p){return this._getEncoder(I).encode(B,p)}}(k3)),k3}var N3={},_3={},OP;function Kwe(){if(OP)return _3;OP=1;var o=gA();function i(f){this._reporterState={obj:null,path:[],options:f||{},errors:[]}}_3.Reporter=i,i.prototype.isError=function(l){return l instanceof s},i.prototype.save=function(){var l=this._reporterState;return{obj:l.obj,pathLen:l.path.length}},i.prototype.restore=function(l){var r=this._reporterState;r.obj=l.obj,r.path=r.path.slice(0,l.pathLen)},i.prototype.enterKey=function(l){return this._reporterState.path.push(l)},i.prototype.exitKey=function(l){var r=this._reporterState;r.path=r.path.slice(0,l-1)},i.prototype.leaveKey=function(l,r,B){var I=this._reporterState;this.exitKey(l),I.obj!==null&&(I.obj[r]=B)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){var l=this._reporterState,r=l.obj;return l.obj={},r},i.prototype.leaveObject=function(l){var r=this._reporterState,B=r.obj;return r.obj=l,B},i.prototype.error=function(l){var r,B=this._reporterState,I=l instanceof s;if(I?r=l:r=new s(B.path.map(function(p){return"["+JSON.stringify(p)+"]"}).join(""),l.message||l,l.stack),!B.options.partial)throw r;return I||B.errors.push(r),r},i.prototype.wrapResult=function(l){var r=this._reporterState;return r.options.partial?{result:this.isError(l)?null:l,errors:r.errors}:l};function s(f,l){this.path=f,this.rethrow(l)}return o(s,Error),s.prototype.rethrow=function(l){if(this.message=l+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,s),!this.stack)try{throw new Error(this.message)}catch(r){this.stack=r.stack}return this},_3}var jB={},jP;function WP(){if(jP)return jB;jP=1;var o=gA(),i=Jc().Reporter,s=Vo().Buffer;function f(r,B){if(i.call(this,B),!s.isBuffer(r)){this.error("Input not Buffer");return}this.base=r,this.offset=0,this.length=r.length}o(f,i),jB.DecoderBuffer=f,f.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},f.prototype.restore=function(B){var I=new f(this.base);return I.offset=B.offset,I.length=this.offset,this.offset=B.offset,i.prototype.restore.call(this,B.reporter),I},f.prototype.isEmpty=function(){return this.offset===this.length},f.prototype.readUInt8=function(B){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(B||"DecoderBuffer overrun")},f.prototype.skip=function(B,I){if(!(this.offset+B<=this.length))return this.error(I||"DecoderBuffer overrun");var p=new f(this.base);return p._reporterState=this._reporterState,p.offset=this.offset,p.length=this.offset+B,this.offset+=B,p},f.prototype.raw=function(B){return this.base.slice(B?B.offset:this.offset,this.length)};function l(r,B){if(Array.isArray(r))this.length=0,this.value=r.map(function(I){return I instanceof l||(I=new l(I,B)),this.length+=I.length,I},this);else if(typeof r=="number"){if(!(0<=r&&r<=255))return B.error("non-byte EncoderBuffer value");this.value=r,this.length=1}else if(typeof r=="string")this.value=r,this.length=s.byteLength(r);else if(s.isBuffer(r))this.value=r,this.length=r.length;else return B.error("Unsupported type: "+typeof r)}return jB.EncoderBuffer=l,l.prototype.join=function(B,I){return B||(B=new s(this.length)),I||(I=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(p){p.join(B,I),I+=p.length}):(typeof this.value=="number"?B[I]=this.value:typeof this.value=="string"?B.write(this.value,I):s.isBuffer(this.value)&&this.value.copy(B,I),I+=this.length)),B},jB}var K3,VP;function Fwe(){if(VP)return K3;VP=1;var o=Jc().Reporter,i=Jc().EncoderBuffer,s=Jc().DecoderBuffer,f=Eo(),l=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],r=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(l),B=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function I(Q,d){var y={};this._baseState=y,y.enc=Q,y.parent=d||null,y.children=null,y.tag=null,y.args=null,y.reverseArgs=null,y.choice=null,y.optional=!1,y.any=!1,y.obj=!1,y.use=null,y.useDecoder=null,y.key=null,y.default=null,y.explicit=null,y.implicit=null,y.contains=null,y.parent||(y.children=[],this._wrap())}K3=I;var p=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];return I.prototype.clone=function(){var d=this._baseState,y={};p.forEach(function(w){y[w]=d[w]});var v=new this.constructor(y.parent);return v._baseState=y,v},I.prototype._wrap=function(){var d=this._baseState;r.forEach(function(y){this[y]=function(){var w=new this.constructor(this);return d.children.push(w),w[y].apply(w,arguments)}},this)},I.prototype._init=function(d){var y=this._baseState;f(y.parent===null),d.call(this),y.children=y.children.filter(function(v){return v._baseState.parent===this},this),f.equal(y.children.length,1,"Root node can have only one child")},I.prototype._useArgs=function(d){var y=this._baseState,v=d.filter(function(w){return w instanceof this.constructor},this);d=d.filter(function(w){return!(w instanceof this.constructor)},this),v.length!==0&&(f(y.children===null),y.children=v,v.forEach(function(w){w._baseState.parent=this},this)),d.length!==0&&(f(y.args===null),y.args=d,y.reverseArgs=d.map(function(w){if(typeof w!="object"||w.constructor!==Object)return w;var M={};return Object.keys(w).forEach(function(m){m==(m|0)&&(m|=0);var x=w[m];M[x]=m}),M}))},B.forEach(function(Q){I.prototype[Q]=function(){var y=this._baseState;throw new Error(Q+" not implemented for encoding: "+y.enc)}}),l.forEach(function(Q){I.prototype[Q]=function(){var y=this._baseState,v=Array.prototype.slice.call(arguments);return f(y.tag===null),y.tag=Q,this._useArgs(v),this}}),I.prototype.use=function(d){f(d);var y=this._baseState;return f(y.use===null),y.use=d,this},I.prototype.optional=function(){var d=this._baseState;return d.optional=!0,this},I.prototype.def=function(d){var y=this._baseState;return f(y.default===null),y.default=d,y.optional=!0,this},I.prototype.explicit=function(d){var y=this._baseState;return f(y.explicit===null&&y.implicit===null),y.explicit=d,this},I.prototype.implicit=function(d){var y=this._baseState;return f(y.explicit===null&&y.implicit===null),y.implicit=d,this},I.prototype.obj=function(){var d=this._baseState,y=Array.prototype.slice.call(arguments);return d.obj=!0,y.length!==0&&this._useArgs(y),this},I.prototype.key=function(d){var y=this._baseState;return f(y.key===null),y.key=d,this},I.prototype.any=function(){var d=this._baseState;return d.any=!0,this},I.prototype.choice=function(d){var y=this._baseState;return f(y.choice===null),y.choice=d,this._useArgs(Object.keys(d).map(function(v){return d[v]})),this},I.prototype.contains=function(d){var y=this._baseState;return f(y.use===null),y.contains=d,this},I.prototype._decode=function(d,y){var v=this._baseState;if(v.parent===null)return d.wrapResult(v.children[0]._decode(d,y));var w=v.default,M=!0,m=null;if(v.key!==null&&(m=d.enterKey(v.key)),v.optional){var x=null;if(v.explicit!==null?x=v.explicit:v.implicit!==null?x=v.implicit:v.tag!==null&&(x=v.tag),x===null&&!v.any){var D=d.save();try{v.choice===null?this._decodeGeneric(v.tag,d,y):this._decodeChoice(d,y),M=!0}catch{M=!1}d.restore(D)}else if(M=this._peekTag(d,x,v.any),d.isError(M))return M}var S;if(v.obj&&M&&(S=d.enterObject()),M){if(v.explicit!==null){var K=this._decodeTag(d,v.explicit);if(d.isError(K))return K;d=K}var N=d.offset;if(v.use===null&&v.choice===null){if(v.any)var D=d.save();var L=this._decodeTag(d,v.implicit!==null?v.implicit:v.tag,v.any);if(d.isError(L))return L;v.any?w=d.raw(D):d=L}if(y&&y.track&&v.tag!==null&&y.track(d.path(),N,d.length,"tagged"),y&&y.track&&v.tag!==null&&y.track(d.path(),d.offset,d.length,"content"),v.any?w=w:v.choice===null?w=this._decodeGeneric(v.tag,d,y):w=this._decodeChoice(d,y),d.isError(w))return w;if(!v.any&&v.choice===null&&v.children!==null&&v.children.forEach(function(Z){Z._decode(d,y)}),v.contains&&(v.tag==="octstr"||v.tag==="bitstr")){var j=new s(w);w=this._getUse(v.contains,d._reporterState.obj)._decode(j,y)}}return v.obj&&M&&(w=d.leaveObject(S)),v.key!==null&&(w!==null||M===!0)?d.leaveKey(m,v.key,w):m!==null&&d.exitKey(m),w},I.prototype._decodeGeneric=function(d,y,v){var w=this._baseState;return d==="seq"||d==="set"?null:d==="seqof"||d==="setof"?this._decodeList(y,d,w.args[0],v):/str$/.test(d)?this._decodeStr(y,d,v):d==="objid"&&w.args?this._decodeObjid(y,w.args[0],w.args[1],v):d==="objid"?this._decodeObjid(y,null,null,v):d==="gentime"||d==="utctime"?this._decodeTime(y,d,v):d==="null_"?this._decodeNull(y,v):d==="bool"?this._decodeBool(y,v):d==="objDesc"?this._decodeStr(y,d,v):d==="int"||d==="enum"?this._decodeInt(y,w.args&&w.args[0],v):w.use!==null?this._getUse(w.use,y._reporterState.obj)._decode(y,v):y.error("unknown tag: "+d)},I.prototype._getUse=function(d,y){var v=this._baseState;return v.useDecoder=this._use(d,y),f(v.useDecoder._baseState.parent===null),v.useDecoder=v.useDecoder._baseState.children[0],v.implicit!==v.useDecoder._baseState.implicit&&(v.useDecoder=v.useDecoder.clone(),v.useDecoder._baseState.implicit=v.implicit),v.useDecoder},I.prototype._decodeChoice=function(d,y){var v=this._baseState,w=null,M=!1;return Object.keys(v.choice).some(function(m){var x=d.save(),D=v.choice[m];try{var S=D._decode(d,y);if(d.isError(S))return!1;w={type:m,value:S},M=!0}catch{return d.restore(x),!1}return!0},this),M?w:d.error("Choice not matched")},I.prototype._createEncoderBuffer=function(d){return new i(d,this.reporter)},I.prototype._encode=function(d,y,v){var w=this._baseState;if(!(w.default!==null&&w.default===d)){var M=this._encodeValue(d,y,v);if(M!==void 0&&!this._skipDefault(M,y,v))return M}},I.prototype._encodeValue=function(d,y,v){var w=this._baseState;if(w.parent===null)return w.children[0]._encode(d,y||new o);var D=null;if(this.reporter=y,w.optional&&d===void 0)if(w.default!==null)d=w.default;else return;var M=null,m=!1;if(w.any)D=this._createEncoderBuffer(d);else if(w.choice)D=this._encodeChoice(d,y);else if(w.contains)M=this._getUse(w.contains,v)._encode(d,y),m=!0;else if(w.children)M=w.children.map(function(N){if(N._baseState.tag==="null_")return N._encode(null,y,d);if(N._baseState.key===null)return y.error("Child should have a key");var L=y.enterKey(N._baseState.key);if(typeof d!="object")return y.error("Child expected, but input is not object");var j=N._encode(d[N._baseState.key],y,d);return y.leaveKey(L),j},this).filter(function(N){return N}),M=this._createEncoderBuffer(M);else if(w.tag==="seqof"||w.tag==="setof"){if(!(w.args&&w.args.length===1))return y.error("Too many args for : "+w.tag);if(!Array.isArray(d))return y.error("seqof/setof, but data is not Array");var x=this.clone();x._baseState.implicit=null,M=this._createEncoderBuffer(d.map(function(N){var L=this._baseState;return this._getUse(L.args[0],d)._encode(N,y)},x))}else w.use!==null?D=this._getUse(w.use,v)._encode(d,y):(M=this._encodePrimitive(w.tag,d),m=!0);var D;if(!w.any&&w.choice===null){var S=w.implicit!==null?w.implicit:w.tag,K=w.implicit===null?"universal":"context";S===null?w.use===null&&y.error("Tag could be omitted only for .use()"):w.use===null&&(D=this._encodeComposite(S,m,K,M))}return w.explicit!==null&&(D=this._encodeComposite(w.explicit,!1,"context",D)),D},I.prototype._encodeChoice=function(d,y){var v=this._baseState,w=v.choice[d.type];return w||f(!1,d.type+" not found in "+JSON.stringify(Object.keys(v.choice))),w._encode(d.value,y)},I.prototype._encodePrimitive=function(d,y){var v=this._baseState;if(/str$/.test(d))return this._encodeStr(y,d);if(d==="objid"&&v.args)return this._encodeObjid(y,v.reverseArgs[0],v.args[1]);if(d==="objid")return this._encodeObjid(y,null,null);if(d==="gentime"||d==="utctime")return this._encodeTime(y,d);if(d==="null_")return this._encodeNull();if(d==="int"||d==="enum")return this._encodeInt(y,v.args&&v.reverseArgs[0]);if(d==="bool")return this._encodeBool(y);if(d==="objDesc")return this._encodeStr(y,d);throw new Error("Unsupported tag: "+d)},I.prototype._isNumstr=function(d){return/^[0-9 ]*$/.test(d)},I.prototype._isPrintstr=function(d){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(d)},K3}var ZP;function Jc(){return ZP||(ZP=1,function(o){var i=o;i.Reporter=Kwe().Reporter,i.DecoderBuffer=WP().DecoderBuffer,i.EncoderBuffer=WP().EncoderBuffer,i.Node=Fwe()}(N3)),N3}var F3={},G3={},zP;function Gwe(){return zP||(zP=1,function(o){var i=uie();o.tagClass={0:"universal",1:"application",2:"context",3:"private"},o.tagClassByName=i._reverse(o.tagClass),o.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},o.tagByName=i._reverse(o.tag)}(G3)),G3}var $P;function uie(){return $P||($P=1,function(o){var i=o;i._reverse=function(f){var l={};return Object.keys(f).forEach(function(r){(r|0)==r&&(r=r|0);var B=f[r];l[B]=r}),l},i.der=Gwe()}(F3)),F3}var L3={},U3,XP;function cie(){if(XP)return U3;XP=1;var o=gA(),i=gd(),s=i.base,f=i.bignum,l=i.constants.der;function r(Q){this.enc="der",this.name=Q.name,this.entity=Q,this.tree=new B,this.tree._init(Q.body)}U3=r,r.prototype.decode=function(d,y){return d instanceof s.DecoderBuffer||(d=new s.DecoderBuffer(d,y)),this.tree._decode(d,y)};function B(Q){s.Node.call(this,"der",Q)}o(B,s.Node),B.prototype._peekTag=function(d,y,v){if(d.isEmpty())return!1;var w=d.save(),M=I(d,'Failed to peek tag: "'+y+'"');return d.isError(M)?M:(d.restore(w),M.tag===y||M.tagStr===y||M.tagStr+"of"===y||v)},B.prototype._decodeTag=function(d,y,v){var w=I(d,'Failed to decode tag of "'+y+'"');if(d.isError(w))return w;var M=p(d,w.primitive,'Failed to get length of "'+y+'"');if(d.isError(M))return M;if(!v&&w.tag!==y&&w.tagStr!==y&&w.tagStr+"of"!==y)return d.error('Failed to match tag: "'+y+'"');if(w.primitive||M!==null)return d.skip(M,'Failed to match body of: "'+y+'"');var m=d.save(),x=this._skipUntilEnd(d,'Failed to skip indefinite length body: "'+this.tag+'"');return d.isError(x)?x:(M=d.offset-m.offset,d.restore(m),d.skip(M,'Failed to match body of: "'+y+'"'))},B.prototype._skipUntilEnd=function(d,y){for(;;){var v=I(d,y);if(d.isError(v))return v;var w=p(d,v.primitive,y);if(d.isError(w))return w;var M;if(v.primitive||w!==null?M=d.skip(w):M=this._skipUntilEnd(d,y),d.isError(M))return M;if(v.tagStr==="end")break}},B.prototype._decodeList=function(d,y,v,w){for(var M=[];!d.isEmpty();){var m=this._peekTag(d,"end");if(d.isError(m))return m;var x=v.decode(d,"der",w);if(d.isError(x)&&m)break;M.push(x)}return M},B.prototype._decodeStr=function(d,y){if(y==="bitstr"){var v=d.readUInt8();return d.isError(v)?v:{unused:v,data:d.raw()}}else if(y==="bmpstr"){var w=d.raw();if(w.length%2===1)return d.error("Decoding of string type: bmpstr length mismatch");for(var M="",m=0;m>6],w=(y&32)===0;if((y&31)===31){var M=y;for(y=0;(M&128)===128;){if(M=Q.readUInt8(d),Q.isError(M))return M;y<<=7,y|=M&127}}else y&=31;var m=l.tag[y];return{cls:v,primitive:w,tag:y,tagStr:m}}function p(Q,d,y){var v=Q.readUInt8(y);if(Q.isError(v))return v;if(!d&&v===128)return null;if(!(v&128))return v;var w=v&127;if(w>4)return Q.error("length octect is too long");v=0;for(var M=0;M=256;x>>=8)m++;var D=new i(2+m);D[0]=M,D[1]=128|m;for(var x=1+m,S=w.length;S>0;x--,S>>=8)D[x]=S&255;return this._createEncoderBuffer([D,w])},B.prototype._encodeStr=function(d,y){if(y==="bitstr")return this._createEncoderBuffer([d.unused|0,d.data]);if(y==="bmpstr"){for(var v=new i(d.length*2),w=0;w=40)return this.reporter.error("Second objid identifier OOB");d.splice(0,2,d[0]*40+d[1])}for(var M=0,w=0;w=128;m>>=7)M++}for(var x=new i(M),D=x.length-1,w=d.length-1;w>=0;w--){var m=d[w];for(x[D--]=m&127;(m>>=7)>0;)x[D--]=128|m&127}return this._createEncoderBuffer(x)};function I(Q){return Q<10?"0"+Q:Q}B.prototype._encodeTime=function(d,y){var v,w=new Date(d);return y==="gentime"?v=[I(w.getFullYear()),I(w.getUTCMonth()+1),I(w.getUTCDate()),I(w.getUTCHours()),I(w.getUTCMinutes()),I(w.getUTCSeconds()),"Z"].join(""):y==="utctime"?v=[I(w.getFullYear()%100),I(w.getUTCMonth()+1),I(w.getUTCDate()),I(w.getUTCHours()),I(w.getUTCMinutes()),I(w.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+y+" time is not supported yet"),this._encodeStr(v,"octstr")},B.prototype._encodeNull=function(){return this._createEncoderBuffer("")},B.prototype._encodeInt=function(d,y){if(typeof d=="string"){if(!y)return this.reporter.error("String int or enum given, but no values map");if(!y.hasOwnProperty(d))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(d));d=y[d]}if(typeof d!="number"&&!i.isBuffer(d)){var v=d.toArray();!d.sign&&v[0]&128&&v.unshift(0),d=new i(v)}if(i.isBuffer(d)){var w=d.length;d.length===0&&w++;var m=new i(w);return d.copy(m),d.length===0&&(m[0]=0),this._createEncoderBuffer(m)}if(d<128)return this._createEncoderBuffer(d);if(d<256)return this._createEncoderBuffer([0,d]);for(var w=1,M=d;M>=256;M>>=8)w++;for(var m=new Array(w),M=m.length-1;M>=0;M--)m[M]=d&255,d>>=8;return m[0]&128&&m.unshift(0),this._createEncoderBuffer(new i(m))},B.prototype._encodeBool=function(d){return this._createEncoderBuffer(d?255:0)},B.prototype._use=function(d,y){return typeof d=="function"&&(d=d(y)),d._getEncoder("der").tree},B.prototype._skipDefault=function(d,y,v){var w=this._baseState,M;if(w.default===null)return!1;var m=d.join();if(w.defaultBuffer===void 0&&(w.defaultBuffer=this._encodeValue(w.default,y,v).join()),m.length!==w.defaultBuffer.length)return!1;for(M=0;M=31?v.error("Multi-octet tag encoding unsupported"):(d||(w|=32),w|=l.tagClassByName[y||"universal"]<<6,w)}return T3}var Y3,rO;function qwe(){if(rO)return Y3;rO=1;var o=gA(),i=lie();function s(f){i.call(this,f),this.enc="pem"}return o(s,i),Y3=s,s.prototype.encode=function(l,r){for(var B=i.prototype.encode.call(this,l),I=B.toString("base64"),p=["-----BEGIN "+r.label+"-----"],Q=0;Q0&&K.ishrn(N),K}function M(D,S){D=w(D,S),D=D.mod(S);var K=o.from(D.toArray());if(K.length=0)throw new Error("invalid sig")}return j3=r,j3}var W3,uO;function Wwe(){if(uO)return W3;uO=1;var o=mA().Buffer,i=sd(),s=xwe(),f=gA(),l=Owe(),r=jwe(),B=Ore;Object.keys(B).forEach(function(y){B[y].id=o.from(B[y].id,"hex"),B[y.toLowerCase()]=B[y]});function I(y){s.Writable.call(this);var v=B[y];if(!v)throw new Error("Unknown message digest");this._hashType=v.hash,this._hash=i(v.hash),this._tag=v.id,this._signType=v.sign}f(I,s.Writable),I.prototype._write=function(v,w,M){this._hash.update(v),M()},I.prototype.update=function(v,w){return this._hash.update(typeof v=="string"?o.from(v,w):v),this},I.prototype.sign=function(v,w){this.end();var M=this._hash.digest(),m=l(M,v,this._hashType,this._signType,this._tag);return w?m.toString(w):m};function p(y){s.Writable.call(this);var v=B[y];if(!v)throw new Error("Unknown message digest");this._hash=i(v.hash),this._tag=v.id,this._signType=v.sign}f(p,s.Writable),p.prototype._write=function(v,w,M){this._hash.update(v),M()},p.prototype.update=function(v,w){return this._hash.update(typeof v=="string"?o.from(v,w):v),this},p.prototype.verify=function(v,w,M){var m=typeof w=="string"?o.from(w,M):w;this.end();var x=this._hash.digest();return r(m,x,v,this._signType,this._tag)};function Q(y){return new I(y)}function d(y){return new p(y)}return W3={Sign:Q,Verify:d,createSign:Q,createVerify:d},W3}var oE={exports:{}},Vwe=oE.exports,cO;function Zwe(){return cO||(cO=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,Vwe)}(oE)),oE.exports}var V3,lO;function zwe(){if(lO)return V3;lO=1;var o=yQ(),i=Zwe();V3=function(B){return new f(B)};var s={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};s.p224=s.secp224r1,s.p256=s.secp256r1=s.prime256v1,s.p192=s.secp192r1=s.prime192v1,s.p384=s.secp384r1,s.p521=s.secp521r1;function f(r){this.curveType=s[r],this.curveType||(this.curveType={name:r}),this.curve=new o.ec(this.curveType.name),this.keys=void 0}f.prototype.generateKeys=function(r,B){return this.keys=this.curve.genKeyPair(),this.getPublicKey(r,B)},f.prototype.computeSecret=function(r,B,I){B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B));var p=this.curve.keyFromPublic(r).getPublic(),Q=p.mul(this.keys.getPrivate()).getX();return l(Q,I,this.curveType.byteLength)},f.prototype.getPublicKey=function(r,B){var I=this.keys.getPublic(B==="compressed",!0);return B==="hybrid"&&(I[I.length-1]%2?I[0]=7:I[0]=6),l(I,r)},f.prototype.getPrivateKey=function(r){return l(this.keys.getPrivate(),r)},f.prototype.setPublicKey=function(r,B){return B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B)),this.keys._importPublic(r),this},f.prototype.setPrivateKey=function(r,B){B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B));var I=new i(r);return I=I.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(I),this};function l(r,B,I){Array.isArray(r)||(r=r.toArray());var p=new Buffer(r);if(I&&p.length0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,$we)}(aE)),aE.exports}var X3,CO;function Cie(){if(CO)return X3;CO=1;var o=WN(),i=mA().Buffer;function s(f,l){return i.from(f.toRed(o.mont(l.modulus)).redPow(new o(l.publicExponent)).fromRed().toArray())}return X3=s,X3}var eS,EO;function Xwe(){if(EO)return eS;EO=1;var o=pQ(),i=su(),s=sd(),f=Iie(),l=Bie(),r=WN(),B=Cie(),I=jN(),p=mA().Buffer;eS=function(w,M,m){var x;w.padding?x=w.padding:m?x=1:x=4;var D=o(w),S;if(x===4)S=Q(D,M);else if(x===1)S=d(D,M,m);else if(x===3){if(S=new r(M),S.cmp(D.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return m?I(S,D):B(S,D)};function Q(v,w){var M=v.modulus.byteLength(),m=w.length,x=s("sha1").update(p.alloc(0)).digest(),D=x.length,S=2*D;if(m>M-S-2)throw new Error("message too long");var K=p.alloc(M-m-S-2),N=M-D-1,L=i(D),j=l(p.concat([x,K,p.alloc(1,1),w],N),f(L,N)),re=l(L,f(j,D));return new r(p.concat([p.alloc(1),re,j],M))}function d(v,w,M){var m=w.length,x=v.modulus.byteLength();if(m>x-11)throw new Error("message too long");var D;return M?D=p.alloc(x-m-3,255):D=y(x-m-3),new r(p.concat([p.from([0,M?1:2]),D,p.alloc(1),w],x))}function y(v){for(var w=p.allocUnsafe(v),M=0,m=i(v*2),x=0,D;MD||new f(w).cmp(x.modulus)>=0)throw new Error("decryption error");var S;M?S=B(new f(w),x):S=l(w,x);var K=I.alloc(D-S.length);if(S=I.concat([K,S],D),m===4)return p(x,S);if(m===1)return Q(x,S,M);if(m===3)return S;throw new Error("unknown padding")};function p(y,v){var w=y.modulus.byteLength(),M=r("sha1").update(I.alloc(0)).digest(),m=M.length;if(v[0]!==0)throw new Error("decryption error");var x=v.slice(1,m+1),D=v.slice(m+1),S=s(x,i(D,m)),K=s(D,i(S,w-m-1));if(d(M,K.slice(0,m)))throw new Error("decryption error");for(var N=m;K[N]===0;)N++;if(K[N++]!==1)throw new Error("decryption error");return K.slice(N)}function Q(y,v,w){for(var M=v.slice(0,2),m=2,x=0;v[m++]!==0;)if(m>=v.length){x++;break}var D=v.slice(2,m-1);if((M.toString("hex")!=="0002"&&!w||M.toString("hex")!=="0001"&&w)&&x++,D.length<8&&x++,x)throw new Error("decryption error");return v.slice(m)}function d(y,v){y=I.from(y),v=I.from(v);var w=0,M=y.length;y.length!==v.length&&(w++,M=Math.min(y.length,v.length));for(var m=-1;++mB||v<0)throw new TypeError("offset must be a uint32");if(v>l||v>w)throw new RangeError("offset out of range")}function p(v,w,M){if(typeof v!="number"||v!==v)throw new TypeError("size must be a number");if(v>B||v<0)throw new TypeError("size must be a uint32");if(v+w>M||v>l)throw new RangeError("buffer too small")}r&&r.getRandomValues||!process.browser?(K0.randomFill=Q,K0.randomFillSync=y):(K0.randomFill=o,K0.randomFillSync=o);function Q(v,w,M,m){if(!f.isBuffer(v)&&!(v instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof w=="function")m=w,w=0,M=v.length;else if(typeof M=="function")m=M,M=v.length-w;else if(typeof m!="function")throw new TypeError('"cb" argument must be a function');return I(w,v.length),p(M,w,v.length),d(v,w,M,m)}function d(v,w,M,m){if(process.browser){var x=v.buffer,D=new Uint8Array(x,w,M);if(r.getRandomValues(D),m){process.nextTick(function(){m(null,v)});return}return v}if(m){s(M,function(K,N){if(K)return m(K);N.copy(v,w),m(null,v)});return}var S=s(M);return S.copy(v,w),v}function y(v,w,M){if(typeof w>"u"&&(w=0),!f.isBuffer(v)&&!(v instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return I(w,v.length),M===void 0&&(M=v.length-w),p(M,w,v.length),d(v,w,M)}return K0}var vO;function r1e(){if(vO)return BA;vO=1,BA.randomBytes=BA.rng=BA.pseudoRandomBytes=BA.prng=su(),BA.createHash=BA.Hash=sd(),BA.createHmac=BA.Hmac=Pre();var o=jve(),i=Object.keys(o),s=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);BA.getHashes=function(){return s};var f=zre();BA.pbkdf2=f.pbkdf2,BA.pbkdf2Sync=f.pbkdf2Sync;var l=uwe();BA.Cipher=l.Cipher,BA.createCipher=l.createCipher,BA.Cipheriv=l.Cipheriv,BA.createCipheriv=l.createCipheriv,BA.Decipher=l.Decipher,BA.createDecipher=l.createDecipher,BA.Decipheriv=l.Decipheriv,BA.createDecipheriv=l.createDecipheriv,BA.getCiphers=l.getCiphers,BA.listCiphers=l.listCiphers;var r=Mwe();BA.DiffieHellmanGroup=r.DiffieHellmanGroup,BA.createDiffieHellmanGroup=r.createDiffieHellmanGroup,BA.getDiffieHellman=r.getDiffieHellman,BA.createDiffieHellman=r.createDiffieHellman,BA.DiffieHellman=r.DiffieHellman;var B=Wwe();BA.createSign=B.createSign,BA.Sign=B.Sign,BA.createVerify=B.createVerify,BA.Verify=B.Verify,BA.createECDH=zwe();var I=t1e();BA.publicEncrypt=I.publicEncrypt,BA.privateEncrypt=I.privateEncrypt,BA.publicDecrypt=I.publicDecrypt,BA.privateDecrypt=I.privateDecrypt;var p=A1e();return BA.randomFill=p.randomFill,BA.randomFillSync=p.randomFillSync,BA.createCredentials=function(){throw new Error(`sorry, createCredentials is not implemented yet -we accept pull requests -https://github.com/browserify/crypto-browserify`)},BA.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},BA}var wO;function VN(){if(wO)return kB.exports;wO=1;var o;kB.exports=function(l){return o||(o=new i(null)),o.generate(l)};function i(f){this.rand=f}if(kB.exports.Rand=i,i.prototype.generate=function(l){return this._rand(l)},i.prototype._rand=function(l){if(this.rand.getBytes)return this.rand.getBytes(l);for(var r=new Uint8Array(l),B=0;B0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}rS=r,r.prototype.point=function(){throw new Error("Not implemented")},r.prototype.validate=function(){throw new Error("Not implemented")},r.prototype._fixedNafMul=function(p,Q){l(p.precomputed);var d=p._getDoubles(),y=s(Q,1,this._bitLength),v=(1<=M;x--)m=(m<<1)+y[x];w.push(m)}for(var D=this.jpoint(null,null,null),S=this.jpoint(null,null,null),K=v;K>0;K--){for(M=0;M=0;m--){for(var x=0;m>=0&&w[m]===0;m--)x++;if(m>=0&&x++,M=M.dblp(x),m<0)break;var D=w[m];l(D!==0),p.type==="affine"?D>0?M=M.mixedAdd(v[D-1>>1]):M=M.mixedAdd(v[-D-1>>1].neg()):D>0?M=M.add(v[D-1>>1]):M=M.add(v[-D-1>>1].neg())}return p.type==="affine"?M.toP():M},r.prototype._wnafMulAdd=function(p,Q,d,y,v){var w=this._wnafT1,M=this._wnafT2,m=this._wnafT3,x=0,D,S,K;for(D=0;D=1;D-=2){var L=D-1,j=D;if(w[L]!==1||w[j]!==1){m[L]=s(d[L],w[L],this._bitLength),m[j]=s(d[j],w[j],this._bitLength),x=Math.max(m[L].length,x),x=Math.max(m[j].length,x);continue}var re=[Q[L],null,null,Q[j]];Q[L].y.cmp(Q[j].y)===0?(re[1]=Q[L].add(Q[j]),re[2]=Q[L].toJ().mixedAdd(Q[j].neg())):Q[L].y.cmp(Q[j].y.redNeg())===0?(re[1]=Q[L].toJ().mixedAdd(Q[j]),re[2]=Q[L].add(Q[j].neg())):(re[1]=Q[L].toJ().mixedAdd(Q[j]),re[2]=Q[L].toJ().mixedAdd(Q[j].neg()));var Z=[-3,-1,-5,-7,0,7,5,1,3],J=f(d[L],d[j]);for(x=Math.max(J[0].length,x),m[L]=new Array(x),m[j]=new Array(x),S=0;S=0;D--){for(var n=0;D>=0;){var a=!0;for(S=0;S=0&&n++,e=e.dblp(n),D<0)break;for(S=0;S0?K=M[S][h-1>>1]:h<0&&(K=M[S][-h-1>>1].neg()),K.type==="affine"?e=e.mixedAdd(K):e=e.add(K))}}for(D=0;D=Math.ceil((p.bitLength()+1)/Q.step):!1},B.prototype._getDoubles=function(p,Q){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var d=[this],y=this,v=0;v=0&&(L=D,j=S),K.negative&&(K=K.neg(),N=N.neg()),L.negative&&(L=L.neg(),j=j.neg()),[{a:K,b:N},{a:L,b:j}]},r.prototype._endoSplit=function(Q){var d=this.endo.basis,y=d[0],v=d[1],w=v.b.mul(Q).divRound(this.n),M=y.b.neg().mul(Q).divRound(this.n),m=w.mul(y.a),x=M.mul(v.a),D=w.mul(y.b),S=M.mul(v.b),K=Q.sub(m).sub(x),N=D.add(S).neg();return{k1:K,k2:N}},r.prototype.pointFromX=function(Q,d){Q=new i(Q,16),Q.red||(Q=Q.toRed(this.red));var y=Q.redSqr().redMul(Q).redIAdd(Q.redMul(this.a)).redIAdd(this.b),v=y.redSqrt();if(v.redSqr().redSub(y).cmp(this.zero)!==0)throw new Error("invalid point");var w=v.fromRed().isOdd();return(d&&!w||!d&&w)&&(v=v.redNeg()),this.point(Q,v)},r.prototype.validate=function(Q){if(Q.inf)return!0;var d=Q.x,y=Q.y,v=this.a.redMul(d),w=d.redSqr().redMul(d).redIAdd(v).redIAdd(this.b);return y.redSqr().redISub(w).cmpn(0)===0},r.prototype._endoWnafMulAdd=function(Q,d,y){for(var v=this._endoWnafT1,w=this._endoWnafT2,M=0;M":""},B.prototype.isInfinity=function(){return this.inf},B.prototype.add=function(Q){if(this.inf)return Q;if(Q.inf)return this;if(this.eq(Q))return this.dbl();if(this.neg().eq(Q))return this.curve.point(null,null);if(this.x.cmp(Q.x)===0)return this.curve.point(null,null);var d=this.y.redSub(Q.y);d.cmpn(0)!==0&&(d=d.redMul(this.x.redSub(Q.x).redInvm()));var y=d.redSqr().redISub(this.x).redISub(Q.x),v=d.redMul(this.x.redSub(y)).redISub(this.y);return this.curve.point(y,v)},B.prototype.dbl=function(){if(this.inf)return this;var Q=this.y.redAdd(this.y);if(Q.cmpn(0)===0)return this.curve.point(null,null);var d=this.curve.a,y=this.x.redSqr(),v=Q.redInvm(),w=y.redAdd(y).redIAdd(y).redIAdd(d).redMul(v),M=w.redSqr().redISub(this.x.redAdd(this.x)),m=w.redMul(this.x.redSub(M)).redISub(this.y);return this.curve.point(M,m)},B.prototype.getX=function(){return this.x.fromRed()},B.prototype.getY=function(){return this.y.fromRed()},B.prototype.mul=function(Q){return Q=new i(Q,16),this.isInfinity()?this:this._hasDoubles(Q)?this.curve._fixedNafMul(this,Q):this.curve.endo?this.curve._endoWnafMulAdd([this],[Q]):this.curve._wnafMul(this,Q)},B.prototype.mulAdd=function(Q,d,y){var v=[this,d],w=[Q,y];return this.curve.endo?this.curve._endoWnafMulAdd(v,w):this.curve._wnafMulAdd(1,v,w,2)},B.prototype.jmulAdd=function(Q,d,y){var v=[this,d],w=[Q,y];return this.curve.endo?this.curve._endoWnafMulAdd(v,w,!0):this.curve._wnafMulAdd(1,v,w,2,!0)},B.prototype.eq=function(Q){return this===Q||this.inf===Q.inf&&(this.inf||this.x.cmp(Q.x)===0&&this.y.cmp(Q.y)===0)},B.prototype.neg=function(Q){if(this.inf)return this;var d=this.curve.point(this.x,this.y.redNeg());if(Q&&this.precomputed){var y=this.precomputed,v=function(w){return w.neg()};d.precomputed={naf:y.naf&&{wnd:y.naf.wnd,points:y.naf.points.map(v)},doubles:y.doubles&&{step:y.doubles.step,points:y.doubles.points.map(v)}}}return d},B.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var Q=this.curve.jpoint(this.x,this.y,this.curve.one);return Q};function I(p,Q,d,y){f.BasePoint.call(this,p,"jacobian"),Q===null&&d===null&&y===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(Q,16),this.y=new i(d,16),this.z=new i(y,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}return s(I,f.BasePoint),r.prototype.jpoint=function(Q,d,y){return new I(this,Q,d,y)},I.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var Q=this.z.redInvm(),d=Q.redSqr(),y=this.x.redMul(d),v=this.y.redMul(d).redMul(Q);return this.curve.point(y,v)},I.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},I.prototype.add=function(Q){if(this.isInfinity())return Q;if(Q.isInfinity())return this;var d=Q.z.redSqr(),y=this.z.redSqr(),v=this.x.redMul(d),w=Q.x.redMul(y),M=this.y.redMul(d.redMul(Q.z)),m=Q.y.redMul(y.redMul(this.z)),x=v.redSub(w),D=M.redSub(m);if(x.cmpn(0)===0)return D.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var S=x.redSqr(),K=S.redMul(x),N=v.redMul(S),L=D.redSqr().redIAdd(K).redISub(N).redISub(N),j=D.redMul(N.redISub(L)).redISub(M.redMul(K)),re=this.z.redMul(Q.z).redMul(x);return this.curve.jpoint(L,j,re)},I.prototype.mixedAdd=function(Q){if(this.isInfinity())return Q.toJ();if(Q.isInfinity())return this;var d=this.z.redSqr(),y=this.x,v=Q.x.redMul(d),w=this.y,M=Q.y.redMul(d).redMul(this.z),m=y.redSub(v),x=w.redSub(M);if(m.cmpn(0)===0)return x.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=m.redSqr(),S=D.redMul(m),K=y.redMul(D),N=x.redSqr().redIAdd(S).redISub(K).redISub(K),L=x.redMul(K.redISub(N)).redISub(w.redMul(S)),j=this.z.redMul(m);return this.curve.jpoint(N,L,j)},I.prototype.dblp=function(Q){if(Q===0)return this;if(this.isInfinity())return this;if(!Q)return this.dbl();var d;if(this.curve.zeroA||this.curve.threeA){var y=this;for(d=0;d=0)return!1;if(y.redIAdd(w),this.x.cmp(y)===0)return!0}},I.prototype.inspect=function(){return this.isInfinity()?"":""},I.prototype.isInfinity=function(){return this.z.cmpn(0)===0},iS}var nS,bO;function n1e(){if(bO)return nS;bO=1;var o=ps(),i=gA(),s=QQ(),f=po();function l(B){s.call(this,"mont",B),this.a=new o(B.a,16).toRed(this.red),this.b=new o(B.b,16).toRed(this.red),this.i4=new o(4).toRed(this.red).redInvm(),this.two=new o(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}i(l,s),nS=l,l.prototype.validate=function(I){var p=I.normalize().x,Q=p.redSqr(),d=Q.redMul(p).redAdd(Q.redMul(this.a)).redAdd(p),y=d.redSqrt();return y.redSqr().cmp(d)===0};function r(B,I,p){s.BasePoint.call(this,B,"projective"),I===null&&p===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new o(I,16),this.z=new o(p,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}return i(r,s.BasePoint),l.prototype.decodePoint=function(I,p){return this.point(f.toArray(I,p),1)},l.prototype.point=function(I,p){return new r(this,I,p)},l.prototype.pointFromJSON=function(I){return r.fromJSON(this,I)},r.prototype.precompute=function(){},r.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},r.fromJSON=function(I,p){return new r(I,p[0],p[1]||I.one)},r.prototype.inspect=function(){return this.isInfinity()?"":""},r.prototype.isInfinity=function(){return this.z.cmpn(0)===0},r.prototype.dbl=function(){var I=this.x.redAdd(this.z),p=I.redSqr(),Q=this.x.redSub(this.z),d=Q.redSqr(),y=p.redSub(d),v=p.redMul(d),w=y.redMul(d.redAdd(this.curve.a24.redMul(y)));return this.curve.point(v,w)},r.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.diffAdd=function(I,p){var Q=this.x.redAdd(this.z),d=this.x.redSub(this.z),y=I.x.redAdd(I.z),v=I.x.redSub(I.z),w=v.redMul(Q),M=y.redMul(d),m=p.z.redMul(w.redAdd(M).redSqr()),x=p.x.redMul(w.redISub(M).redSqr());return this.curve.point(m,x)},r.prototype.mul=function(I){for(var p=I.clone(),Q=this,d=this.curve.point(null,null),y=this,v=[];p.cmpn(0)!==0;p.iushrn(1))v.push(p.andln(1));for(var w=v.length-1;w>=0;w--)v[w]===0?(Q=Q.diffAdd(d,y),d=d.dbl()):(d=Q.diffAdd(d,y),Q=Q.dbl());return d},r.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.eq=function(I){return this.getX().cmp(I.getX())===0},r.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},r.prototype.getX=function(){return this.normalize(),this.x.fromRed()},nS}var oS,DO;function o1e(){if(DO)return oS;DO=1;var o=po(),i=ps(),s=gA(),f=QQ(),l=o.assert;function r(I){this.twisted=(I.a|0)!==1,this.mOneA=this.twisted&&(I.a|0)===-1,this.extended=this.mOneA,f.call(this,"edwards",I),this.a=new i(I.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(I.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(I.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),l(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(I.c|0)===1}s(r,f),oS=r,r.prototype._mulA=function(p){return this.mOneA?p.redNeg():this.a.redMul(p)},r.prototype._mulC=function(p){return this.oneC?p:this.c.redMul(p)},r.prototype.jpoint=function(p,Q,d,y){return this.point(p,Q,d,y)},r.prototype.pointFromX=function(p,Q){p=new i(p,16),p.red||(p=p.toRed(this.red));var d=p.redSqr(),y=this.c2.redSub(this.a.redMul(d)),v=this.one.redSub(this.c2.redMul(this.d).redMul(d)),w=y.redMul(v.redInvm()),M=w.redSqrt();if(M.redSqr().redSub(w).cmp(this.zero)!==0)throw new Error("invalid point");var m=M.fromRed().isOdd();return(Q&&!m||!Q&&m)&&(M=M.redNeg()),this.point(p,M)},r.prototype.pointFromY=function(p,Q){p=new i(p,16),p.red||(p=p.toRed(this.red));var d=p.redSqr(),y=d.redSub(this.c2),v=d.redMul(this.d).redMul(this.c2).redSub(this.a),w=y.redMul(v.redInvm());if(w.cmp(this.zero)===0){if(Q)throw new Error("invalid point");return this.point(this.zero,p)}var M=w.redSqrt();if(M.redSqr().redSub(w).cmp(this.zero)!==0)throw new Error("invalid point");return M.fromRed().isOdd()!==Q&&(M=M.redNeg()),this.point(M,p)},r.prototype.validate=function(p){if(p.isInfinity())return!0;p.normalize();var Q=p.x.redSqr(),d=p.y.redSqr(),y=Q.redMul(this.a).redAdd(d),v=this.c2.redMul(this.one.redAdd(this.d.redMul(Q).redMul(d)));return y.cmp(v)===0};function B(I,p,Q,d,y){f.BasePoint.call(this,I,"projective"),p===null&&Q===null&&d===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(p,16),this.y=new i(Q,16),this.z=d?new i(d,16):this.curve.one,this.t=y&&new i(y,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}return s(B,f.BasePoint),r.prototype.pointFromJSON=function(p){return B.fromJSON(this,p)},r.prototype.point=function(p,Q,d,y){return new B(this,p,Q,d,y)},B.fromJSON=function(p,Q){return new B(p,Q[0],Q[1],Q[2])},B.prototype.inspect=function(){return this.isInfinity()?"":""},B.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},B.prototype._extDbl=function(){var p=this.x.redSqr(),Q=this.y.redSqr(),d=this.z.redSqr();d=d.redIAdd(d);var y=this.curve._mulA(p),v=this.x.redAdd(this.y).redSqr().redISub(p).redISub(Q),w=y.redAdd(Q),M=w.redSub(d),m=y.redSub(Q),x=v.redMul(M),D=w.redMul(m),S=v.redMul(m),K=M.redMul(w);return this.curve.point(x,D,K,S)},B.prototype._projDbl=function(){var p=this.x.redAdd(this.y).redSqr(),Q=this.x.redSqr(),d=this.y.redSqr(),y,v,w,M,m,x;if(this.curve.twisted){M=this.curve._mulA(Q);var D=M.redAdd(d);this.zOne?(y=p.redSub(Q).redSub(d).redMul(D.redSub(this.curve.two)),v=D.redMul(M.redSub(d)),w=D.redSqr().redSub(D).redSub(D)):(m=this.z.redSqr(),x=D.redSub(m).redISub(m),y=p.redSub(Q).redISub(d).redMul(x),v=D.redMul(M.redSub(d)),w=D.redMul(x))}else M=Q.redAdd(d),m=this.curve._mulC(this.z).redSqr(),x=M.redSub(m).redSub(m),y=this.curve._mulC(p.redISub(M)).redMul(x),v=this.curve._mulC(M).redMul(Q.redISub(d)),w=M.redMul(x);return this.curve.point(y,v,w)},B.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},B.prototype._extAdd=function(p){var Q=this.y.redSub(this.x).redMul(p.y.redSub(p.x)),d=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),y=this.t.redMul(this.curve.dd).redMul(p.t),v=this.z.redMul(p.z.redAdd(p.z)),w=d.redSub(Q),M=v.redSub(y),m=v.redAdd(y),x=d.redAdd(Q),D=w.redMul(M),S=m.redMul(x),K=w.redMul(x),N=M.redMul(m);return this.curve.point(D,S,N,K)},B.prototype._projAdd=function(p){var Q=this.z.redMul(p.z),d=Q.redSqr(),y=this.x.redMul(p.x),v=this.y.redMul(p.y),w=this.curve.d.redMul(y).redMul(v),M=d.redSub(w),m=d.redAdd(w),x=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(y).redISub(v),D=Q.redMul(M).redMul(x),S,K;return this.curve.twisted?(S=Q.redMul(m).redMul(v.redSub(this.curve._mulA(y))),K=M.redMul(m)):(S=Q.redMul(m).redMul(v.redSub(y)),K=this.curve._mulC(M).redMul(m)),this.curve.point(D,S,K)},B.prototype.add=function(p){return this.isInfinity()?p:p.isInfinity()?this:this.curve.extended?this._extAdd(p):this._projAdd(p)},B.prototype.mul=function(p){return this._hasDoubles(p)?this.curve._fixedNafMul(this,p):this.curve._wnafMul(this,p)},B.prototype.mulAdd=function(p,Q,d){return this.curve._wnafMulAdd(1,[this,Q],[p,d],2,!1)},B.prototype.jmulAdd=function(p,Q,d){return this.curve._wnafMulAdd(1,[this,Q],[p,d],2,!0)},B.prototype.normalize=function(){if(this.zOne)return this;var p=this.z.redInvm();return this.x=this.x.redMul(p),this.y=this.y.redMul(p),this.t&&(this.t=this.t.redMul(p)),this.z=this.curve.one,this.zOne=!0,this},B.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},B.prototype.getX=function(){return this.normalize(),this.x.fromRed()},B.prototype.getY=function(){return this.normalize(),this.y.fromRed()},B.prototype.eq=function(p){return this===p||this.getX().cmp(p.getX())===0&&this.getY().cmp(p.getY())===0},B.prototype.eqXToP=function(p){var Q=p.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(Q)===0)return!0;for(var d=p.clone(),y=this.curve.redN.redMul(this.z);;){if(d.iadd(this.curve.n),d.cmp(this.curve.p)>=0)return!1;if(Q.redIAdd(y),this.x.cmp(Q)===0)return!0}},B.prototype.toP=B.prototype.normalize,B.prototype.mixedAdd=B.prototype.add,oS}var SO;function Eie(){return SO||(SO=1,function(o){var i=o;i.base=QQ(),i.short=i1e(),i.mont=n1e(),i.edwards=o1e()}(AS)),AS}var aS={},sS={},$A={},xO;function xa(){if(xO)return $A;xO=1;var o=Eo(),i=gA();$A.inherits=i;function s(e,A){return(e.charCodeAt(A)&64512)!==55296||A<0||A+1>=e.length?!1:(e.charCodeAt(A+1)&64512)===56320}function f(e,A){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if(typeof e=="string")if(A){if(A==="hex")for(e=e.replace(/[^a-z0-9]+/ig,""),e.length%2!==0&&(e="0"+e),h=0;h>6|192,n[a++]=c&63|128):s(e,h)?(c=65536+((c&1023)<<10)+(e.charCodeAt(++h)&1023),n[a++]=c>>18|240,n[a++]=c>>12&63|128,n[a++]=c>>6&63|128,n[a++]=c&63|128):(n[a++]=c>>12|224,n[a++]=c>>6&63|128,n[a++]=c&63|128)}else for(h=0;h>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24;return A>>>0}$A.htonl=r;function B(e,A){for(var n="",a=0;a>>0}return c}$A.join32=Q;function d(e,A){for(var n=new Array(e.length*4),a=0,h=0;a>>24,n[h+1]=c>>>16&255,n[h+2]=c>>>8&255,n[h+3]=c&255):(n[h+3]=c>>>24,n[h+2]=c>>>16&255,n[h+1]=c>>>8&255,n[h]=c&255)}return n}$A.split32=d;function y(e,A){return e>>>A|e<<32-A}$A.rotr32=y;function v(e,A){return e<>>32-A}$A.rotl32=v;function w(e,A){return e+A>>>0}$A.sum32=w;function M(e,A,n){return e+A+n>>>0}$A.sum32_3=M;function m(e,A,n,a){return e+A+n+a>>>0}$A.sum32_4=m;function x(e,A,n,a,h){return e+A+n+a+h>>>0}$A.sum32_5=x;function D(e,A,n,a){var h=e[A],c=e[A+1],C=a+c>>>0,g=(C>>0,e[A+1]=C}$A.sum64=D;function S(e,A,n,a){var h=A+a>>>0,c=(h>>0}$A.sum64_hi=S;function K(e,A,n,a){var h=A+a;return h>>>0}$A.sum64_lo=K;function N(e,A,n,a,h,c,C,g){var t=0,u=A;u=u+a>>>0,t+=u>>0,t+=u>>0,t+=u>>0}$A.sum64_4_hi=N;function L(e,A,n,a,h,c,C,g){var t=A+a+c+g;return t>>>0}$A.sum64_4_lo=L;function j(e,A,n,a,h,c,C,g,t,u){var b=0,R=A;R=R+a>>>0,b+=R>>0,b+=R>>0,b+=R>>0,b+=R>>0}$A.sum64_5_hi=j;function re(e,A,n,a,h,c,C,g,t,u){var b=A+a+c+g+u;return b>>>0}$A.sum64_5_lo=re;function Z(e,A,n){var a=A<<32-n|e>>>n;return a>>>0}$A.rotr64_hi=Z;function J(e,A,n){var a=e<<32-n|A>>>n;return a>>>0}$A.rotr64_lo=J;function Ae(e,A,n){return e>>>n}$A.shr64_hi=Ae;function E(e,A,n){var a=e<<32-n|A>>>n;return a>>>0}return $A.shr64_lo=E,$A}var fS={},RO;function ud(){if(RO)return fS;RO=1;var o=xa(),i=Eo();function s(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}return fS.BlockHash=s,s.prototype.update=function(l,r){if(l=o.toArray(l,r),this.pending?this.pending=this.pending.concat(l):this.pending=l,this.pendingTotal+=l.length,this.pending.length>=this._delta8){l=this.pending;var B=l.length%this._delta8;this.pending=l.slice(l.length-B,l.length),this.pending.length===0&&(this.pending=null),l=o.join32(l,0,l.length-B,this.endian);for(var I=0;I>>24&255,I[p++]=l>>>16&255,I[p++]=l>>>8&255,I[p++]=l&255}else for(I[p++]=l&255,I[p++]=l>>>8&255,I[p++]=l>>>16&255,I[p++]=l>>>24&255,I[p++]=0,I[p++]=0,I[p++]=0,I[p++]=0,Q=8;Q>>3}na.g0_256=p;function Q(d){return i(d,17)^i(d,19)^d>>>10}return na.g1_256=Q,na}var hS,NO;function a1e(){if(NO)return hS;NO=1;var o=xa(),i=ud(),s=pie(),f=o.rotl32,l=o.sum32,r=o.sum32_5,B=s.ft_1,I=i.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function Q(){if(!(this instanceof Q))return new Q;I.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}return o.inherits(Q,I),hS=Q,Q.blockSize=512,Q.outSize=160,Q.hmacStrength=80,Q.padLength=64,Q.prototype._update=function(y,v){for(var w=this.W,M=0;M<16;M++)w[M]=y[v+M];for(;Mthis.blockSize&&(l=new this.Hash().update(l).digest()),i(l.length<=this.blockSize);for(var r=l.length;r=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(r,B,I)}return CS=f,f.prototype._init=function(r,B,I){var p=r.concat(B).concat(I);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var Q=0;Q=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(r.concat(I||[])),this._reseed=1},f.prototype.generate=function(r,B,I,p){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof B!="string"&&(p=I,I=B,B=null),I&&(I=i.toArray(I,p||"hex"),this._update(I));for(var Q=[];Q.length"},ES}var pS,OO;function I1e(){if(OO)return pS;OO=1;var o=ps(),i=po(),s=i.assert;function f(p,Q){if(p instanceof f)return p;this._importDER(p,Q)||(s(p.r&&p.s,"Signature without r or s"),this.r=new o(p.r,16),this.s=new o(p.s,16),p.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=p.recoveryParam)}pS=f;function l(){this.place=0}function r(p,Q){var d=p[Q.place++];if(!(d&128))return d;var y=d&15;if(y===0||y>4||p[Q.place]===0)return!1;for(var v=0,w=0,M=Q.place;w>>=0;return v<=127?!1:(Q.place=M,v)}function B(p){for(var Q=0,d=p.length-1;!p[Q]&&!(p[Q+1]&128)&&Q>>3);for(p.push(d|128);--d;)p.push(Q>>>(d<<3)&255);p.push(Q)}return f.prototype.toDER=function(Q){var d=this.r.toArray(),y=this.s.toArray();for(d[0]&128&&(d=[0].concat(d)),y[0]&128&&(y=[0].concat(y)),d=B(d),y=B(y);!y[0]&&!(y[1]&128);)y=y.slice(1);var v=[2];I(v,d.length),v=v.concat(d),v.push(2),I(v,y.length);var w=v.concat(y),M=[48];return I(M,w.length),M=M.concat(w),i.encode(M,Q)},pS}var QS,jO;function B1e(){if(jO)return QS;jO=1;var o=ps(),i=l1e(),s=po(),f=zN(),l=VN(),r=s.assert,B=d1e(),I=I1e();function p(Q){if(!(this instanceof p))return new p(Q);typeof Q=="string"&&(r(Object.prototype.hasOwnProperty.call(f,Q),"Unknown curve "+Q),Q=f[Q]),Q instanceof f.PresetCurve&&(Q={curve:Q}),this.curve=Q.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=Q.curve.g,this.g.precompute(Q.curve.n.bitLength()+1),this.hash=Q.hash||Q.curve.hash}return QS=p,p.prototype.keyPair=function(d){return new B(this,d)},p.prototype.keyFromPrivate=function(d,y){return B.fromPrivate(this,d,y)},p.prototype.keyFromPublic=function(d,y){return B.fromPublic(this,d,y)},p.prototype.genKeyPair=function(d){d||(d={});for(var y=new i({hash:this.hash,pers:d.pers,persEnc:d.persEnc||"utf8",entropy:d.entropy||l(this.hash.hmacStrength),entropyEnc:d.entropy&&d.entropyEnc||"utf8",nonce:this.n.toArray()}),v=this.n.byteLength(),w=this.n.sub(new o(2));;){var M=new o(y.generate(v));if(!(M.cmp(w)>0))return M.iaddn(1),this.keyFromPrivate(M)}},p.prototype._truncateToN=function(d,y,v){var w;if(o.isBN(d)||typeof d=="number")d=new o(d,16),w=d.byteLength();else if(typeof d=="object")w=d.length,d=new o(d,16);else{var M=d.toString();w=M.length+1>>>1,d=new o(M,16)}typeof v!="number"&&(v=w*8);var m=v-this.n.bitLength();return m>0&&(d=d.ushrn(m)),!y&&d.cmp(this.n)>=0?d.sub(this.n):d},p.prototype.sign=function(d,y,v,w){if(typeof v=="object"&&(w=v,v=null),w||(w={}),typeof d!="string"&&typeof d!="number"&&!o.isBN(d)){r(typeof d=="object"&&d&&typeof d.length=="number","Expected message to be an array-like, a hex string, or a BN instance"),r(d.length>>>0===d.length);for(var M=0;M=0)){var j=this.g.mul(L);if(!j.isInfinity()){var re=j.getX(),Z=re.umod(this.n);if(Z.cmpn(0)!==0){var J=L.invm(this.n).mul(Z.mul(y.getPrivate()).iadd(d));if(J=J.umod(this.n),J.cmpn(0)!==0){var Ae=(j.getY().isOdd()?1:0)|(re.cmp(Z)!==0?2:0);return w.canonical&&J.cmp(this.nh)>0&&(J=this.n.sub(J),Ae^=1),new I({r:Z,s:J,recoveryParam:Ae})}}}}}},p.prototype.verify=function(d,y,v,w,M){M||(M={}),d=this._truncateToN(d,!1,M.msgBitLength),v=this.keyFromPublic(v,w),y=new I(y,"hex");var m=y.r,x=y.s;if(m.cmpn(1)<0||m.cmp(this.n)>=0||x.cmpn(1)<0||x.cmp(this.n)>=0)return!1;var D=x.invm(this.n),S=D.mul(d).umod(this.n),K=D.mul(m).umod(this.n),N;return this.curve._maxwellTrick?(N=this.g.jmulAdd(S,v.getPublic(),K),N.isInfinity()?!1:N.eqXToP(m)):(N=this.g.mulAdd(S,v.getPublic(),K),N.isInfinity()?!1:N.getX().umod(this.n).cmp(m)===0)},p.prototype.recoverPubKey=function(Q,d,y,v){r((3&y)===y,"The recovery param is more than two bits"),d=new I(d,v);var w=this.n,M=new o(Q),m=d.r,x=d.s,D=y&1,S=y>>1;if(m.cmp(this.curve.p.umod(this.curve.n))>=0&&S)throw new Error("Unable to find sencond key candinate");S?m=this.curve.pointFromX(m.add(this.curve.n),D):m=this.curve.pointFromX(m,D);var K=d.r.invm(w),N=w.sub(M).mul(K).umod(w),L=x.mul(K).umod(w);return this.g.mulAdd(N,m,L)},p.prototype.getKeyRecoveryParam=function(Q,d,y,v){if(d=new I(d,v),d.recoveryParam!==null)return d.recoveryParam;for(var w=0;w<4;w++){var M;try{M=this.recoverPubKey(Q,d,w)}catch{continue}if(M.eq(y))return w}throw new Error("Unable to find valid recovery factor")},QS}var yS,WO;function C1e(){if(WO)return yS;WO=1;var o=po(),i=o.assert,s=o.parseBytes,f=o.cachedProperty;function l(r,B){this.eddsa=r,this._secret=s(B.secret),r.isPoint(B.pub)?this._pub=B.pub:this._pubBytes=s(B.pub)}return l.fromPublic=function(B,I){return I instanceof l?I:new l(B,{pub:I})},l.fromSecret=function(B,I){return I instanceof l?I:new l(B,{secret:I})},l.prototype.secret=function(){return this._secret},f(l,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),f(l,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),f(l,"privBytes",function(){var B=this.eddsa,I=this.hash(),p=B.encodingLength-1,Q=I.slice(0,B.encodingLength);return Q[0]&=248,Q[p]&=127,Q[p]|=64,Q}),f(l,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),f(l,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),f(l,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),l.prototype.sign=function(B){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(B,this)},l.prototype.verify=function(B,I){return this.eddsa.verify(B,I,this)},l.prototype.getSecret=function(B){return i(this._secret,"KeyPair is public only"),o.encode(this.secret(),B)},l.prototype.getPublic=function(B){return o.encode(this.pubBytes(),B)},yS=l,yS}var vS,VO;function E1e(){if(VO)return vS;VO=1;var o=ps(),i=po(),s=i.assert,f=i.cachedProperty,l=i.parseBytes;function r(B,I){this.eddsa=B,typeof I!="object"&&(I=l(I)),Array.isArray(I)&&(s(I.length===B.encodingLength*2,"Signature has invalid size"),I={R:I.slice(0,B.encodingLength),S:I.slice(B.encodingLength)}),s(I.R&&I.S,"Signature without R or S"),B.isPoint(I.R)&&(this._R=I.R),I.S instanceof o&&(this._S=I.S),this._Rencoded=Array.isArray(I.R)?I.R:I.Rencoded,this._Sencoded=Array.isArray(I.S)?I.S:I.Sencoded}return f(r,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),f(r,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),f(r,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),f(r,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),r.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},r.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},vS=r,vS}var wS,ZO;function p1e(){if(ZO)return wS;ZO=1;var o=ZN(),i=zN(),s=po(),f=s.assert,l=s.parseBytes,r=C1e(),B=E1e();function I(p){if(f(p==="ed25519","only tested with ed25519 so far"),!(this instanceof I))return new I(p);p=i[p].curve,this.curve=p,this.g=p.g,this.g.precompute(p.n.bitLength()+1),this.pointClass=p.point().constructor,this.encodingLength=Math.ceil(p.n.bitLength()/8),this.hash=o.sha512}return wS=I,I.prototype.sign=function(Q,d){Q=l(Q);var y=this.keyFromSecret(d),v=this.hashInt(y.messagePrefix(),Q),w=this.g.mul(v),M=this.encodePoint(w),m=this.hashInt(M,y.pubBytes(),Q).mul(y.priv()),x=v.add(m).umod(this.curve.n);return this.makeSignature({R:w,S:x,Rencoded:M})},I.prototype.verify=function(Q,d,y){if(Q=l(Q),d=this.makeSignature(d),d.S().gte(d.eddsa.curve.n)||d.S().isNeg())return!1;var v=this.keyFromPublic(y),w=this.hashInt(d.Rencoded(),v.pubBytes(),Q),M=this.g.mul(d.S()),m=d.R().add(v.pub().mul(w));return m.eq(M)},I.prototype.hashInt=function(){for(var Q=this.hash(),d=0;d0&&o.compare(Q1e)<0:!1}function w1e(o,i){if(o.length!==i.length)return!1;let s=0;for(let f=0;f"u")return Buffer.from(Qn.randomBytes(o));const i=new Uint8Array(o);return Qn.getRandomValues(i),Buffer.from(i)}async function wie(o){if(!Qn.createHash){const f=await hf.digest("SHA-512",o);return new Uint8Array(f)}const s=Qn.createHash("sha512").update(o).digest();return new Uint8Array(s)}function mie(o){return async function(i,s,f){if(hf&&hf[o]&&hf.importKey){const l={name:"AES-CBC"},r=await hf.importKey("raw",s,l,!1,[o]),B={name:"AES-CBC",iv:i},I=await hf[o](B,r,f);return Buffer.from(new Uint8Array(I))}else if(o==="encrypt"&&Qn.createCipheriv){const l=Qn.createCipheriv("aes-256-cbc",s,i),r=l.update(f),B=l.final();return Buffer.concat([r,B])}else if(o==="decrypt"&&Qn.createDecipheriv){const l=Qn.createDecipheriv("aes-256-cbc",s,i),r=l.update(f),B=l.final();return Buffer.concat([r,B])}throw new Error(`Unsupported operation: ${o}`)}}const m1e=mie("encrypt"),M1e=mie("decrypt");async function Mie(o,i){if(!Qn.createHmac){const l={name:"HMAC",hash:{name:"SHA-256"}},r=await hf.importKey("raw",new Uint8Array(o),l,!1,["sign","verify"]),B=await hf.sign("HMAC",r,i);return Buffer.from(new Uint8Array(B))}const s=Qn.createHmac("sha256",Buffer.from(o));return s.update(i),s.digest()}async function b1e(o,i,s){const f=await Mie(o,i);return w1e(f,s)}const bie=function(o){return pi(o.length===32,"Bad private key"),pi(vQ(o),"Bad private key"),Buffer.from(al.keyFromPrivate(o).getPublic("array"))},D1e=async function(o,i){pi(Buffer.isBuffer(o),"Bad private key"),pi(Buffer.isBuffer(i),"Bad public key"),pi(o.length===32,"Bad private key"),pi(vQ(o),"Bad private key"),pi(i.length===65||i.length===33,"Bad public key"),i.length===65&&pi(i[0]===4,"Bad public key"),i.length===33&&pi(i[0]===2||i[0]===3,"Bad public key");const s=al.keyFromPrivate(o),f=al.keyFromPublic(i),l=s.derive(f.getPublic());return Buffer.from(l.toArray())},Die=D1e,S1e=async function(o,i){pi(Buffer.isBuffer(o),"Bad private key"),pi(Buffer.isBuffer(i),"Bad public key"),pi(o.length===32,"Bad private key"),pi(vQ(o),"Bad private key"),pi(i.length===65||i.length===33,"Bad public key"),i.length===65&&pi(i[0]===4,"Bad public key"),i.length===33&&pi(i[0]===2||i[0]===3,"Bad public key");const s=al.keyFromPrivate(o),f=al.keyFromPublic(i),l=s.derive(f.getPublic());return Buffer.from(l.toString(16,64),"hex")},x1e=async function(o,i,s){s=s||{};let f=s.ephemPrivateKey||mS(32);for(;!vQ(f);)f=s.ephemPrivateKey||mS(32);const l=bie(f),r=await Die(f,o),B=await wie(r),I=s.iv||mS(16),p=B.slice(0,32),Q=B.slice(32),y=await m1e(I,Buffer.from(p),i),v=Buffer.concat([I,l,y]),w=await Mie(Buffer.from(Q),v);return{iv:I,ephemPublicKey:l,ciphertext:y,mac:w}},Sie=async function(o,i,s){const f=s??!1,r=await(f?S1e:Die)(o,i.ephemPublicKey),B=await wie(r),I=B.slice(0,32),p=B.slice(32),Q=Buffer.concat([i.iv,i.ephemPublicKey,i.ciphertext]),d=await b1e(Buffer.from(p),Q,i.mac);if(!d&&f===!1)return Sie(o,i,!0);if(!d&&f===!0)throw new Error("bad MAC after trying padded");const y=await M1e(i.iv,Buffer.from(I),i.ciphertext);return Buffer.from(new Uint8Array(y))};function $O(o,i){var s=Object.keys(o);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(o);i&&(f=f.filter(function(l){return Object.getOwnPropertyDescriptor(o,l).enumerable})),s.push.apply(s,f)}return s}function Cf(o){for(var i=1;i{const s=$N[o];if(!s||s.length===0)throw new Error(`Unsupported network: ${o}`);const f=wQ[i];return s.map(l=>f&&f.networkIdentifier?`${l}/sss/${f.networkIdentifier}/jrpc`:`${l}/sss/jrpc`)},_1e=(o,i)=>{const s=$N[o];if(!s||s.length===0)throw new Error(`Unsupported network: ${o}`);const f=wQ[i];return s.map(l=>f&&f.networkIdentifier?`${l}/rss/${f.networkIdentifier}`:`${l}/rss`)},K1e=(o,i,s=gh.SECP256K1,f)=>{const l=$N[o];if(!l||l.length===0)throw new Error(`Unsupported network: ${o}`);const r=(()=>{const I="tss",p="tss-frost";if(f){if(f===sE.ECDSA_SECP256K1){if(s!==gh.SECP256K1)throw new Error("Invalid key type for ecdsa-secp256k1");return I}else if(f===sE.ED25519){if(s!==gh.ED25519)throw new Error("Invalid key type for ed25519");return p}else if(f===sE.BIP340){if(s!==gh.SECP256K1)throw new Error("Invalid key type for bip340");return p}throw new Error("Invalid sig type")}else{if(s===gh.SECP256K1)return I;if(s===gh.ED25519)return p}throw new Error("Invalid key type")})(),B=wQ[i];return l.map(I=>B&&B.networkIdentifier?`${I}/${r}/${B.networkIdentifier}`:`${I}/${r}`)},F1e={[Ri.SAPPHIRE_MAINNET]:[{X:"e0925898fee0e9e941fdca7ee88deec99939ae9407e923535c4d4a3a3ff8b052",Y:"54b9fea924e3f3e40791f9987f4234ae4222412d65b74068032fa5d8b63375c1"},{X:"9124cf1e280aab32ba50dffd2de81cecabc13d82d2c1fe9de82f3b3523f9b637",Y:"fca939a1ceb42ce745c55b21ef094f543b457630cb63a94ef4f1afeee2b1f107"},{X:"555f681a63d469cc6c3a58a97e29ebd277425f0e6159708e7c7bf05f18f89476",Y:"606f2bcc0884fa5b64366fc3e8362e4939841b56acd60d5f4553cf36b891ac4e"},{X:"2b5f58d8e340f1ab922e89b3a69a68930edfe51364644a456335e179bc130128",Y:"4b4daa05939426e3cbe7d08f0e773d2bf36f64c00d04620ee6df2a7af4d2247"},{X:"3ecbb6a68afe72cf34ec6c0a12b5cb78a0d2e83ba402983b6adbc5f36219861a",Y:"dc1031c5cc8f0472bd521a62a64ebca9e163902c247bf05937daf4ae835091e4"}],[Ri.SAPPHIRE_DEVNET]:[{X:"f74389b0a4c8d10d2a687ae575f69b20f412d41ab7f1fe6b358aa14871327247",Y:"54e3a73098ed9bced3ef8821736e9794f9264a1420c0c7ad15d2fa617ba35ef7"},{X:"bc38813a6873e526087918507c78fc3a61624670ee851ecfb4f3bef55d027b5a",Y:"ac4b21229f662a0aefdfdac21cf17c3261a392c74a8790db218b34e3e4c1d56a"},{X:"b56541684ea5fa40c8337b7688d502f0e9e092098962ad344c34e94f06d293fb",Y:"759a998cef79d389082f9a75061a29190eec0cac99b8c25ddcf6b58569dad55c"},{X:"7bcb058d4c6ffc6ba4bfdfd93d141af35a66338a62c7c27cdad2ae3f8289b767",Y:"336ab1935e41ed4719e162587f0ab55518db4207a1eb36cc72303f1b86689d2b"},{X:"bf12a136ef94399ea098f926f04e26a4ec4ac70f69cce274e8893704c4951773",Y:"bdd44828020f52ce510e026338216ada184a6867eb4e19fb4c2d495d4a7e15e4"}]},ej=(o,i,s,f)=>({currentEpoch:"1",torusNodeEndpoints:XO(o,i),torusNodeSSSEndpoints:XO(o,i),torusNodeRSSEndpoints:_1e(o,i),torusNodeTSSEndpoints:K1e(o,i,s,f),torusIndexes:[1,2,3,4,5],torusNodePub:F1e[o]});function G1e(o,i,s){if(Object.values(Ri).includes(o))return ej(o,void 0,i,s);if(Object.values(VA).includes(o)){const f=wQ[o];if(f.migrationCompleted)return ej(f.networkMigratedTo,o,i)}}var MS,tj;function L1e(){if(tj)return MS;tj=1;var o=function(S){return i(S)&&!s(S)};function i(D){return!!D&&typeof D=="object"}function s(D){var S=Object.prototype.toString.call(D);return S==="[object RegExp]"||S==="[object Date]"||r(D)}var f=typeof Symbol=="function"&&Symbol.for,l=f?Symbol.for("react.element"):60103;function r(D){return D.$$typeof===l}function B(D){return Array.isArray(D)?[]:{}}function I(D,S){return S.clone!==!1&&S.isMergeableObject(D)?m(B(D),D,S):D}function p(D,S,K){return D.concat(S).map(function(N){return I(N,K)})}function Q(D,S){if(!S.customMerge)return m;var K=S.customMerge(D);return typeof K=="function"?K:m}function d(D){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(D).filter(function(S){return Object.propertyIsEnumerable.call(D,S)}):[]}function y(D){return Object.keys(D).concat(d(D))}function v(D,S){try{return S in D}catch{return!1}}function w(D,S){return v(D,S)&&!(Object.hasOwnProperty.call(D,S)&&Object.propertyIsEnumerable.call(D,S))}function M(D,S,K){var N={};return K.isMergeableObject(D)&&y(D).forEach(function(L){N[L]=I(D[L],K)}),y(S).forEach(function(L){w(D,L)||(v(D,L)&&K.isMergeableObject(S[L])?N[L]=Q(L,K)(D[L],S[L],K):N[L]=I(S[L],K))}),N}function m(D,S,K){K=K||{},K.arrayMerge=K.arrayMerge||p,K.isMergeableObject=K.isMergeableObject||o,K.cloneUnlessOtherwiseSpecified=I;var N=Array.isArray(S),L=Array.isArray(D),j=N===L;return j?N?K.arrayMerge(D,S,K):M(D,S,K):I(S,K)}m.all=function(S,K){if(!Array.isArray(S))throw new Error("first argument should be an array");return S.reduce(function(N,L){return m(N,L,K)},{})};var x=m;return MS=x,MS}var U1e=L1e();const xie=gr(U1e);var fE={exports:{}},q1e=fE.exports,Aj;function H1e(){return Aj||(Aj=1,function(o){(function(i,s){o.exports?o.exports=s():i.log=s()})(q1e,function(){var i=function(){},s="undefined",f=typeof window!==s&&typeof window.navigator!==s&&/Trident\/|MSIE /.test(window.navigator.userAgent),l=["trace","debug","info","warn","error"],r={},B=null;function I(m,x){var D=m[x];if(typeof D.bind=="function")return D.bind(m);try{return Function.prototype.bind.call(D,m)}catch{return function(){return Function.prototype.apply.apply(D,[m,arguments])}}}function p(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function Q(m){return m==="debug"&&(m="log"),typeof console===s?!1:m==="trace"&&f?p:console[m]!==void 0?I(console,m):console.log!==void 0?I(console,"log"):i}function d(){for(var m=this.getLevel(),x=0;x=0&&e<=D.levels.SILENT)return e;throw new TypeError("log.setLevel() called with invalid level: "+E)}D.name=m,D.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},D.methodFactory=x||v,D.getLevel=function(){return N??K??S},D.setLevel=function(E,e){return N=J(E),e!==!1&&j(N),d.call(D)},D.setDefaultLevel=function(E){K=J(E),re()||D.setLevel(E,!1)},D.resetLevel=function(){N=null,Z(),d.call(D)},D.enableAll=function(E){D.setLevel(D.levels.TRACE,E)},D.disableAll=function(E){D.setLevel(D.levels.SILENT,E)},D.rebuild=function(){if(B!==D&&(S=J(B.getLevel())),d.call(D),B===D)for(var E in r)r[E].rebuild()},S=J(B?B.getLevel():"WARN");var Ae=re();Ae!=null&&(N=J(Ae)),d.call(D)}B=new w,B.getLogger=function(x){if(typeof x!="symbol"&&typeof x!="string"||x==="")throw new TypeError("You must supply a name when creating a logger.");var D=r[x];return D||(D=r[x]=new w(x,B.methodFactory)),D};var M=typeof window!==s?window.log:void 0;return B.noConflict=function(){return typeof window!==s&&window.log===B&&(window.log=M),B},B.getLoggers=function(){return r},B.default=B,B})}(fE)),fE.exports}var Rie=H1e();const In=gr(Rie),UE=In.getLogger("http-helpers");UE.setLevel(Rie.levels.INFO);let T1e="torus-default";const Y1e="x-api-key";async function kie(o,i){let s=null;try{s=new URL(o)}catch{}return fetch(o,i)}function Nie(){const o={};return o[Y1e]=T1e,o}function _ie(o){UE.info(`Response: ${o.status} ${o.statusText}`),UE.info(`Url: ${o.url}`)}function J1e(o){const i=o.headers.get("x-web3-correlation-id");i&&UE.info(`Request tracing with traceID = ${i}`)}const P1e=async(o,i)=>{let s=null;try{const f=new Promise((r,B)=>{s=setTimeout(()=>{B(new Error(`Timed out in ${o}ms`))},o)}),l=await Promise.race([i,f]);return s!=null&&clearTimeout(s),l}catch(f){throw s!=null&&clearTimeout(s),f}},O1e=async(o,i={},s={})=>{const f={mode:"cors",headers:{}};s.useAPIKey&&(f.headers=Cf(Cf({},f.headers),Nie())),i.method="GET";const l=xie(f,i),r=await kie(o,l);if(r.ok){const B=r.headers.get("content-type");return B!=null&&B.includes("application/json")?r.json():r.text()}throw _ie(r),r},Ic=(o,i={},s={},f={})=>{const l={mode:"cors",headers:{"Content-Type":"application/json; charset=utf-8"}};f.useAPIKey&&(l.headers=Cf(Cf({},l.headers),Nie())),s.method="POST";const r=xie(l,s);return f.isUrlEncodedData?(r.body=i,r.headers["Content-Type"]==="application/json; charset=utf-8"&&delete r.headers["Content-Type"]):r.body=JSON.stringify(i),P1e(f.timeout||6e4,kie(o,r).then(B=>{if(f.logTracingHeader&&J1e(B),B.ok){const I=B.headers.get("content-type");return I!=null&&I.includes("application/json")?B.json():B.text()}throw _ie(B),B}))},WB=In.getLogger("fnd");class j1e{constructor({network:i=Ri.SAPPHIRE_MAINNET,keyType:s=gh.SECP256K1,sigType:f=sE.ECDSA_SECP256K1,fndServerEndpoint:l,enableLogging:r=!1}={}){if(JA(this,"fndServerEndpoint",`${N1e}/node-details`),JA(this,"_currentEpoch","1"),JA(this,"_keyType",void 0),JA(this,"_sigType",void 0),JA(this,"_torusNodeEndpoints",[]),JA(this,"_torusNodeRSSEndpoints",[]),JA(this,"_torusNodeSSSEndpoints",[]),JA(this,"_torusNodeTSSEndpoints",[]),JA(this,"_torusNodePub",[]),JA(this,"_torusIndexes",[]),JA(this,"updated",void 0),JA(this,"network",void 0),i&&!Object.values(Cf(Cf({},VA),Ri)).includes(i))throw new Error("Invalid network");this.network=i,this._keyType=s,this._sigType=f,this.updated=!1,l&&(this.fndServerEndpoint=l),r?WB.enableAll():WB.disableAll()}get _nodeDetails(){return{currentEpoch:this._currentEpoch,torusNodeEndpoints:this._torusNodeEndpoints,torusNodeSSSEndpoints:this._torusNodeSSSEndpoints,torusNodeRSSEndpoints:this._torusNodeRSSEndpoints,torusNodeTSSEndpoints:this._torusNodeTSSEndpoints,torusNodePub:this._torusNodePub,torusIndexes:this._torusIndexes,updated:this.updated}}async getNodeDetails({verifier:i,verifierId:s}){try{if(this.updated&&!R1e.includes(this.network))return this._nodeDetails;try{const{nodeDetails:l}=await O1e(`${this.fndServerEndpoint}?network=${this.network}&verifier=${i}&verifierId=${s}&keyType=${this._keyType}&sigType=${this._sigType}`);return this.setNodeDetails(l),this._nodeDetails}catch(l){WB.error("Failed to fetch node details from server, using local.",l)}const f=G1e(this.network,this._keyType,this._sigType);if(!f)throw new Error("Failed to fetch node details");return this.setNodeDetails(f),this._nodeDetails}catch(f){throw WB.error("Failed to fetch node details",f),f}}async getMetadataUrl(){return Object.values(VA).includes(this.network)?k1e[this.network]:(await this.getNodeDetails({verifier:"test-verifier",verifierId:"test-verifier-id"})).torusNodeEndpoints[0].replace("/sss/jrpc","/metadata")}setNodeDetails(i){const{currentEpoch:s,torusNodeEndpoints:f,torusNodeSSSEndpoints:l,torusNodeRSSEndpoints:r,torusNodeTSSEndpoints:B,torusNodePub:I,torusIndexes:p}=i;this._torusNodeEndpoints=f,this._torusNodeSSSEndpoints=l||[],this._torusNodeRSSEndpoints=r||[],this._torusNodeTSSEndpoints=B||[],this._torusNodePub=I,this._torusIndexes=p,this._currentEpoch=s,this.updated=!0}}function da(o){const i=new Uint8Array(o);let s="";for(const l of i)s+=String.fromCharCode(l);return btoa(s).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function sl(o){const i=o.replace(/-/g,"+").replace(/_/g,"/"),s=(4-i.length%4)%4,f=i.padEnd(i.length+s,"="),l=atob(f),r=new ArrayBuffer(l.length),B=new Uint8Array(r);for(let I=0;II.type==="public-key").length===0?new si({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:o}):new si({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:o});if(o.name==="SecurityError"){const B=window.location.hostname;if(Fie(B)){if(s.rp.id!==B)return new si({message:`The RP ID "${s.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:o})}else return new si({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:o})}else if(o.name==="TypeError"){if(s.user.id.byteLength<1||s.user.id.byteLength>64)return new si({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:o})}else if(o.name==="UnknownError")return new si({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:o})}return o}class V1e{createNewAbortSignal(){if(this.controller){const s=new Error("Cancelling existing WebAuthn API call for new one");s.name="AbortError",this.controller.abort(s)}const i=new AbortController;return this.controller=i,i.signal}cancelCeremony(){if(this.controller){const i=new Error("Manually cancelling existing WebAuthn API call");i.name="AbortError",this.controller.abort(i),this.controller=void 0}}}const Gie=new V1e,Z1e=["cross-platform","platform"];function Lie(o){if(o&&!(Z1e.indexOf(o)<0))return o}async function z1e(o){var M;const{optionsJSON:i,useAutoRegister:s=!1}=o;if(!XN())throw new Error("WebAuthn is not supported in this browser");const f={...i,challenge:sl(i.challenge),user:{...i.user,id:sl(i.user.id)},excludeCredentials:(M=i.excludeCredentials)==null?void 0:M.map(Kie)},l={};s&&(l.mediation="conditional"),l.publicKey=f,l.signal=Gie.createNewAbortSignal();let r;try{r=await navigator.credentials.create(l)}catch(m){throw W1e({error:m,options:l})}if(!r)throw new Error("Registration was not completed");const{id:B,rawId:I,response:p,type:Q}=r;let d;typeof p.getTransports=="function"&&(d=p.getTransports());let y;if(typeof p.getPublicKeyAlgorithm=="function")try{y=p.getPublicKeyAlgorithm()}catch(m){bS("getPublicKeyAlgorithm()",m)}let v;if(typeof p.getPublicKey=="function")try{const m=p.getPublicKey();m!==null&&(v=da(m))}catch(m){bS("getPublicKey()",m)}let w;if(typeof p.getAuthenticatorData=="function")try{w=da(p.getAuthenticatorData())}catch(m){bS("getAuthenticatorData()",m)}return{id:B,rawId:da(I),response:{attestationObject:da(p.attestationObject),clientDataJSON:da(p.clientDataJSON),transports:d,publicKeyAlgorithm:y,publicKey:v,authenticatorData:w},type:Q,clientExtensionResults:r.getClientExtensionResults(),authenticatorAttachment:Lie(r.authenticatorAttachment)}}function bS(o,i){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${o}. You should report this error to them. -`,i)}function $1e(){if(!XN())return new Promise(i=>i(!1));const o=window.PublicKeyCredential;return o.isConditionalMediationAvailable===void 0?new Promise(i=>i(!1)):o.isConditionalMediationAvailable()}function X1e({error:o,options:i}){const{publicKey:s}=i;if(!s)throw Error("options was missing required publicKey property");if(o.name==="AbortError"){if(i.signal instanceof AbortSignal)return new si({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:o})}else{if(o.name==="NotAllowedError")return new si({message:o.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:o});if(o.name==="SecurityError"){const f=window.location.hostname;if(Fie(f)){if(s.rpId!==f)return new si({message:`The RP ID "${s.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:o})}else return new si({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:o})}else if(o.name==="UnknownError")return new si({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:o})}return o}async function eme(o){var w,M;const{optionsJSON:i,useBrowserAutofill:s=!1,verifyBrowserAutofillInput:f=!0}=o;if(!XN())throw new Error("WebAuthn is not supported in this browser");let l;((w=i.allowCredentials)==null?void 0:w.length)!==0&&(l=(M=i.allowCredentials)==null?void 0:M.map(Kie));const r={...i,challenge:sl(i.challenge),allowCredentials:l},B={};if(s){if(!await $1e())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&f)throw Error('No with "webauthn" as the only or last value in its `autocomplete` attribute was detected');B.mediation="conditional",r.allowCredentials=[]}B.publicKey=r,B.signal=Gie.createNewAbortSignal();let I;try{I=await navigator.credentials.get(B)}catch(m){throw X1e({error:m,options:B})}if(!I)throw new Error("Authentication was not completed");const{id:p,rawId:Q,response:d,type:y}=I;let v;return d.userHandle&&(v=da(d.userHandle)),{id:p,rawId:da(Q),response:{authenticatorData:da(d.authenticatorData),clientDataJSON:da(d.clientDataJSON),signature:da(d.signature),userHandle:v},type:y,clientExtensionResults:I.getClientExtensionResults(),authenticatorAttachment:Lie(I.authenticatorAttachment)}}function fl(o){if(!Number.isSafeInteger(o)||o<0)throw new Error(`positive integer expected, not ${o}`)}function tme(o){if(typeof o!="boolean")throw new Error(`boolean expected, not ${o}`)}function Ame(o){return o instanceof Uint8Array||o!=null&&typeof o=="object"&&o.constructor.name==="Uint8Array"}function mQ(o,...i){if(!Ame(o))throw new Error("Uint8Array expected");if(i.length>0&&!i.includes(o.length))throw new Error(`Uint8Array expected of length ${i}, not of length=${o.length}`)}function rme(o){if(typeof o!="function"||typeof o.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");fl(o.outputLen),fl(o.blockLen)}function vR(o,i=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(i&&o.finished)throw new Error("Hash#digest() has already been called")}function Uie(o,i){mQ(o);const s=i.outputLen;if(o.length>rj&VB)}:{h:Number(o>>rj&VB)|0,l:Number(o&VB)|0}}function ome(o,i=!1){let s=new Uint32Array(o.length),f=new Uint32Array(o.length);for(let l=0;lo<>>32-s,sme=(o,i,s)=>i<>>32-s,fme=(o,i,s)=>i<>>64-s,hme=(o,i,s)=>o<>>64-s;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const gme=o=>new Uint32Array(o.buffer,o.byteOffset,Math.floor(o.byteLength/4)),ij=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,ume=o=>o<<24&4278190080|o<<8&16711680|o>>>8&65280|o>>>24&255;function nj(o){for(let i=0;io().update(qie(f)).digest(),s=o();return i.outputLen=s.outputLen,i.blockLen=s.blockLen,i.create=()=>o(),i}const Hie=[],Tie=[],Yie=[],Ime=BigInt(0),Bc=BigInt(1),Bme=BigInt(2),Cme=BigInt(7),Eme=BigInt(256),pme=BigInt(113);for(let o=0,i=Bc,s=1,f=0;o<24;o++){[s,f]=[f,(2*s+3*f)%5],Hie.push(2*(5*f+s)),Tie.push((o+1)*(o+2)/2%64);let l=Ime;for(let r=0;r<7;r++)i=(i<>Cme)*pme)%Eme,i&Bme&&(l^=Bc<<(Bc<s>32?fme(o,i,s):ame(o,i,s),aj=(o,i,s)=>s>32?hme(o,i,s):sme(o,i,s);function vme(o,i=24){const s=new Uint32Array(10);for(let f=24-i;f<24;f++){for(let B=0;B<10;B++)s[B]=o[B]^o[B+10]^o[B+20]^o[B+30]^o[B+40];for(let B=0;B<10;B+=2){const I=(B+8)%10,p=(B+2)%10,Q=s[p],d=s[p+1],y=oj(Q,d,1)^s[I],v=aj(Q,d,1)^s[I+1];for(let w=0;w<50;w+=10)o[B+w]^=y,o[B+w+1]^=v}let l=o[2],r=o[3];for(let B=0;B<24;B++){const I=Tie[B],p=oj(l,r,I),Q=aj(l,r,I),d=Hie[B];l=o[d],r=o[d+1],o[d]=p,o[d+1]=Q}for(let B=0;B<50;B+=10){for(let I=0;I<10;I++)s[I]=o[B+I];for(let I=0;I<10;I++)o[B+I]^=~s[(I+2)%10]&s[(I+4)%10]}o[0]^=Qme[f],o[1]^=yme[f]}s.fill(0)}let wme=class Jie extends lme{constructor(i,s,f,l=!1,r=24){if(super(),this.blockLen=i,this.suffix=s,this.outputLen=f,this.enableXOF=l,this.rounds=r,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,fl(f),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=gme(this.state)}keccak(){ij||nj(this.state32),vme(this.state32,this.rounds),ij||nj(this.state32),this.posOut=0,this.pos=0}update(i){vR(this);const{blockLen:s,state:f}=this;i=qie(i);const l=i.length;for(let r=0;r=f&&this.keccak();const B=Math.min(f-this.posOut,r-l);i.set(s.subarray(this.posOut,this.posOut+B),l),this.posOut+=B,l+=B}return i}xofInto(i){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(i)}xof(i){return fl(i),this.xofInto(new Uint8Array(i))}digestInto(i){if(Uie(i,this),this.finished)throw new Error("digest() was already called");return this.writeInto(i),this.destroy(),i}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(i){const{blockLen:s,suffix:f,outputLen:l,rounds:r,enableXOF:B}=this;return i||(i=new Jie(s,f,l,B,r)),i.state32.set(this.state32),i.pos=this.pos,i.posOut=this.posOut,i.finished=this.finished,i.rounds=r,i.suffix=f,i.outputLen=l,i.enableXOF=B,i.destroyed=this.destroyed,i}};const mme=(o,i,s)=>dme(()=>new wme(i,o,s)),sj=mme(1,136,256/8);function Mme(o){return i=>(ime.bytes(i),o(i))}(()=>{const o=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0,i=typeof module<"u"&&typeof module.require=="function"&&module.require.bind(module);return{node:i&&!o?i("crypto"):void 0,web:o}})();const bme=(()=>{const o=Mme(sj);return o.create=sj.create,o})();function Dme(o){return Buffer.from(bme(o))}const Sme=new vie.ec("secp256k1");function xme(o){return{iv:Buffer.from(o.iv,"hex"),ephemPublicKey:Buffer.from(o.ephemPublicKey,"hex"),ciphertext:Buffer.from(o.ciphertext,"hex"),mac:Buffer.from(o.mac,"hex")}}function Rme(o){return{iv:Buffer.from(o.iv).toString("hex"),ephemPublicKey:Buffer.from(o.ephemPublicKey).toString("hex"),ciphertext:Buffer.from(o.ciphertext).toString("hex"),mac:Buffer.from(o.mac).toString("hex")}}async function kme(o,i){const s=JSON.parse(i),f=xme(s),l=Sme.keyFromPrivate(o),B=(await Sie(Buffer.from(l.getPrivate().toString("hex",64),"hex"),f)).toString("utf-8");return JSON.parse(B)}var DS={exports:{}},ZB={},zB={},fj;function Nme(){if(fj)return zB;fj=1,Object.defineProperty(zB,"__esModule",{value:!0});function o(i){var s=4,f=i.length,l=f%s;if(!l)return i;var r=f,B=s-l,I=f+B,p=Buffer.alloc(I);for(p.write(i);B--;)p.write("=",r++);return p.toString()}return zB.default=o,zB}var hj;function _me(){if(hj)return ZB;hj=1,Object.defineProperty(ZB,"__esModule",{value:!0});var o=Nme();function i(I,p){return p===void 0&&(p="utf8"),Buffer.isBuffer(I)?l(I.toString("base64")):l(Buffer.from(I,p).toString("base64"))}function s(I,p){return p===void 0&&(p="utf8"),Buffer.from(f(I),"base64").toString(p)}function f(I){return I=I.toString(),o.default(I).replace(/\-/g,"+").replace(/_/g,"/")}function l(I){return I.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function r(I){return Buffer.from(f(I),"base64")}var B=i;return B.encode=i,B.decode=s,B.toBase64=f,B.fromBase64=l,B.toBuffer=r,ZB.default=B,ZB}var gj;function Kme(){return gj||(gj=1,function(o){o.exports=_me().default,o.exports.default=o.exports}(DS)),DS.exports}var Fme=Kme();const Gme=gr(Fme),Pie=Gme,Lme=VA,Ume=Ri;Cf(Cf({},Ume),Lme);const qme={PRODUCTION:"production",DEVELOPMENT:"development",STAGING:"staging",TESTING:"testing"};let wR;try{wR=new TextDecoder}catch{}let Jt,Nh,yt=0;const Hme=105,Tme=57342,Yme=57343,uj=57337,cj=6,F0={};let Cc=11281e4,Ja=1681e4,kA={},Qr,qE,HE=0,hl=0,Tr,ro,Gr=[],mR=[],Zi,bi,Rc,lj={useRecords:!1,mapsAsObjects:!0},gl=!1,Oie=2;try{new Function("")}catch{Oie=1/0}class TE{constructor(i){if(i&&((i.keyMap||i._keyMap)&&!i.useRecords&&(i.useRecords=!1,i.mapsAsObjects=!0),i.useRecords===!1&&i.mapsAsObjects===void 0&&(i.mapsAsObjects=!0),i.getStructures&&(i.getShared=i.getStructures),i.getShared&&!i.structures&&((i.structures=[]).uninitialized=!0),i.keyMap)){this.mapKey=new Map;for(let[s,f]of Object.entries(i.keyMap))this.mapKey.set(f,s)}Object.assign(this,i)}decodeKey(i){return this.keyMap&&this.mapKey.get(i)||i}encodeKey(i){return this.keyMap&&this.keyMap.hasOwnProperty(i)?this.keyMap[i]:i}encodeKeys(i){if(!this._keyMap)return i;let s=new Map;for(let[f,l]of Object.entries(i))s.set(this._keyMap.hasOwnProperty(f)?this._keyMap[f]:f,l);return s}decodeKeys(i){if(!this._keyMap||i.constructor.name!="Map")return i;if(!this._mapKey){this._mapKey=new Map;for(let[f,l]of Object.entries(this._keyMap))this._mapKey.set(l,f)}let s={};return i.forEach((f,l)=>s[io(this._mapKey.has(l)?this._mapKey.get(l):l)]=f),s}mapDecode(i,s){let f=this.decode(i);if(this._keyMap)switch(f.constructor.name){case"Array":return f.map(l=>this.decodeKeys(l))}return f}decode(i,s){if(Jt)return Zie(()=>(SR(),this?this.decode(i,s):TE.prototype.decode.call(lj,i,s)));Nh=s>-1?s:i.length,yt=0,hl=0,qE=null,Tr=null,Jt=i;try{bi=i.dataView||(i.dataView=new DataView(i.buffer,i.byteOffset,i.byteLength))}catch(f){throw Jt=null,i instanceof Uint8Array?f:new Error("Source must be a Uint8Array or Buffer but was a "+(i&&typeof i=="object"?i.constructor.name:typeof i))}if(this instanceof TE){if(kA=this,Zi=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return Qr=this.structures,$B();(!Qr||Qr.length>0)&&(Qr=[])}else kA=lj,(!Qr||Qr.length>0)&&(Qr=[]),Zi=null;return $B()}decodeMultiple(i,s){let f,l=0;try{let r=i.length;gl=!0;let B=this?this.decode(i,r):t5.decode(i,r);if(s){if(s(B)===!1)return;for(;yt=Tr.postBundlePosition){let i=new Error("Unexpected bundle position");throw i.incomplete=!0,i}yt=Tr.postBundlePosition,Tr=null}if(yt==Nh)Qr=null,Jt=null,ro&&(ro=null);else if(yt>Nh){let i=new Error("Unexpected end of CBOR data");throw i.incomplete=!0,i}else if(!gl)throw new Error("Data read, but end of buffer not reached");return o}catch(o){throw SR(),(o instanceof RangeError||o.message.startsWith("Unexpected end of buffer"))&&(o.incomplete=!0),o}}function _A(){let o=Jt[yt++],i=o>>5;if(o=o&31,o>23)switch(o){case 24:o=Jt[yt++];break;case 25:if(i==7)return jme();o=bi.getUint16(yt),yt+=2;break;case 26:if(i==7){let s=bi.getFloat32(yt);if(kA.useFloat32>2){let f=zie[(Jt[yt]&127)<<1|Jt[yt+1]>>7];return yt+=4,(f*s+(s>0?.5:-.5)>>0)/f}return yt+=4,s}o=bi.getUint32(yt),yt+=4;break;case 27:if(i==7){let s=bi.getFloat64(yt);return yt+=8,s}if(i>1){if(bi.getUint32(yt)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");o=bi.getUint32(yt+4)}else kA.int64AsNumber?(o=bi.getUint32(yt)*4294967296,o+=bi.getUint32(yt+4)):o=bi.getBigUint64(yt);yt+=8;break;case 31:switch(i){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let s=[],f,l=0;for(;(f=_A())!=F0;){if(l>=Cc)throw new Error(`Array length exceeds ${Cc}`);s[l++]=f}return i==4?s:i==3?s.join(""):Buffer.concat(s);case 5:let r;if(kA.mapsAsObjects){let B={},I=0;if(kA.keyMap)for(;(r=_A())!=F0;){if(I++>=Ja)throw new Error(`Property count exceeds ${Ja}`);B[io(kA.decodeKey(r))]=_A()}else for(;(r=_A())!=F0;){if(I++>=Ja)throw new Error(`Property count exceeds ${Ja}`);B[io(r)]=_A()}return B}else{Rc&&(kA.mapsAsObjects=!0,Rc=!1);let B=new Map;if(kA.keyMap){let I=0;for(;(r=_A())!=F0;){if(I++>=Ja)throw new Error(`Map size exceeds ${Ja}`);B.set(kA.decodeKey(r),_A())}}else{let I=0;for(;(r=_A())!=F0;){if(I++>=Ja)throw new Error(`Map size exceeds ${Ja}`);B.set(r,_A())}}return B}case 7:return F0;default:throw new Error("Invalid major type for indefinite length "+i)}default:throw new Error("Unknown token "+o)}switch(i){case 0:return o;case 1:return~o;case 2:return Ome(o);case 3:if(hl>=yt)return qE.slice(yt-HE,(yt+=o)-HE);if(hl==0&&Nh<140&&o<32){let l=o<16?jie(o):Pme(o);if(l!=null)return l}return Jme(o);case 4:if(o>=Cc)throw new Error(`Array length exceeds ${Cc}`);let s=new Array(o);for(let l=0;l=Ja)throw new Error(`Map size exceeds ${Cc}`);if(kA.mapsAsObjects){let l={};if(kA.keyMap)for(let r=0;r=uj){let l=Qr[o&8191];if(l)return l.read||(l.read=MR(l)),l.read();if(o<65536){if(o==Yme){let r=tg(),B=_A(),I=_A();DR(B,I);let p={};if(kA.keyMap)for(let Q=2;Q23)switch(s){case 24:s=Jt[yt++];break;case 25:s=bi.getUint16(yt),yt+=2;break;case 26:s=bi.getUint32(yt),yt+=4;break;default:throw new Error("Expected array header, but got "+Jt[yt-1])}let f=this.compiledReader;for(;f;){if(f.propertyCount===s)return f(_A);f=f.next}if(this.slowReads++>=Oie){let r=this.length==s?this:this.slice(0,s);return f=kA.keyMap?new Function("r","return {"+r.map(B=>kA.decodeKey(B)).map(B=>dj.test(B)?io(B)+":r()":"["+JSON.stringify(B)+"]:r()").join(",")+"}"):new Function("r","return {"+r.map(B=>dj.test(B)?io(B)+":r()":"["+JSON.stringify(B)+"]:r()").join(",")+"}"),this.compiledReader&&(f.next=this.compiledReader),f.propertyCount=s,this.compiledReader=f,f(_A)}let l={};if(kA.keyMap)for(let r=0;r64&&wR)return wR.decode(Jt.subarray(yt,yt+=o));const s=yt+o,f=[];for(i="";yt65535&&(p-=65536,f.push(p>>>10&1023|55296),p=56320|p&1023),f.push(p)}else f.push(l);f.length>=4096&&(i+=Vr.apply(String,f),f.length=0)}return f.length>0&&(i+=Vr.apply(String,f)),i}let Vr=String.fromCharCode;function Pme(o){let i=yt,s=new Array(o);for(let f=0;f0){yt=i;return}s[f]=l}return Vr.apply(String,s)}function jie(o){if(o<4)if(o<2){if(o===0)return"";{let i=Jt[yt++];if((i&128)>1){yt-=1;return}return Vr(i)}}else{let i=Jt[yt++],s=Jt[yt++];if((i&128)>0||(s&128)>0){yt-=2;return}if(o<3)return Vr(i,s);let f=Jt[yt++];if((f&128)>0){yt-=3;return}return Vr(i,s,f)}else{let i=Jt[yt++],s=Jt[yt++],f=Jt[yt++],l=Jt[yt++];if((i&128)>0||(s&128)>0||(f&128)>0||(l&128)>0){yt-=4;return}if(o<6){if(o===4)return Vr(i,s,f,l);{let r=Jt[yt++];if((r&128)>0){yt-=5;return}return Vr(i,s,f,l,r)}}else if(o<8){let r=Jt[yt++],B=Jt[yt++];if((r&128)>0||(B&128)>0){yt-=6;return}if(o<7)return Vr(i,s,f,l,r,B);let I=Jt[yt++];if((I&128)>0){yt-=7;return}return Vr(i,s,f,l,r,B,I)}else{let r=Jt[yt++],B=Jt[yt++],I=Jt[yt++],p=Jt[yt++];if((r&128)>0||(B&128)>0||(I&128)>0||(p&128)>0){yt-=8;return}if(o<10){if(o===8)return Vr(i,s,f,l,r,B,I,p);{let Q=Jt[yt++];if((Q&128)>0){yt-=9;return}return Vr(i,s,f,l,r,B,I,p,Q)}}else if(o<12){let Q=Jt[yt++],d=Jt[yt++];if((Q&128)>0||(d&128)>0){yt-=10;return}if(o<11)return Vr(i,s,f,l,r,B,I,p,Q,d);let y=Jt[yt++];if((y&128)>0){yt-=11;return}return Vr(i,s,f,l,r,B,I,p,Q,d,y)}else{let Q=Jt[yt++],d=Jt[yt++],y=Jt[yt++],v=Jt[yt++];if((Q&128)>0||(d&128)>0||(y&128)>0||(v&128)>0){yt-=12;return}if(o<14){if(o===12)return Vr(i,s,f,l,r,B,I,p,Q,d,y,v);{let w=Jt[yt++];if((w&128)>0){yt-=13;return}return Vr(i,s,f,l,r,B,I,p,Q,d,y,v,w)}}else{let w=Jt[yt++],M=Jt[yt++];if((w&128)>0||(M&128)>0){yt-=14;return}if(o<15)return Vr(i,s,f,l,r,B,I,p,Q,d,y,v,w,M);let m=Jt[yt++];if((m&128)>0){yt-=15;return}return Vr(i,s,f,l,r,B,I,p,Q,d,y,v,w,M,m)}}}}}function Ome(o){return kA.copyBuffers?Uint8Array.prototype.slice.call(Jt,yt,yt+=o):Jt.subarray(yt,yt+=o)}let Wie=new Float32Array(1),XB=new Uint8Array(Wie.buffer,0,4);function jme(){let o=Jt[yt++],i=Jt[yt++],s=(o&127)>>2;if(s===31)return i||o&3?NaN:o&128?-1/0:1/0;if(s===0){let f=((o&3)<<8|i)/16777216;return o&128?-f:f}return XB[3]=o&128|(s>>1)+56,XB[2]=(o&7)<<5|i>>3,XB[1]=i<<5,XB[0]=0,Wie[0]}new Array(4096);class MQ{constructor(i,s){this.value=i,this.tag=s}}Gr[0]=o=>new Date(o);Gr[1]=o=>new Date(Math.round(o*1e3));Gr[2]=o=>{let i=BigInt(0);for(let s=0,f=o.byteLength;sBigInt(-1)-Gr[2](o);Gr[4]=o=>+(o[1]+"e"+o[0]);Gr[5]=o=>o[1]*Math.exp(o[0]*Math.log(2));const DR=(o,i)=>{o=o-57344;let s=Qr[o];s&&s.isShared&&((Qr.restoreStructures||(Qr.restoreStructures=[]))[o]=s),Qr[o]=i,i.read=MR(i)};Gr[Hme]=o=>{let i=o.length,s=o[1];DR(o[0],s);let f={};for(let l=2;lTr?Tr[0].slice(Tr.position0,Tr.position0+=o):new MQ(o,14);Gr[15]=o=>Tr?Tr[1].slice(Tr.position1,Tr.position1+=o):new MQ(o,15);let Wme={Error,RegExp};Gr[27]=o=>(Wme[o[0]]||Error)(o[1],o[2]);const Vie=o=>{if(Jt[yt++]!=132){let s=new Error("Packed values structure must be followed by a 4 element array");throw Jt.length{if(!Zi)if(kA.getShared)e5();else return new MQ(o,cj);if(typeof o=="number")return Zi[16+(o>=0?2*o:-2*o-1)];let i=new Error("No support for non-integer packed references yet");throw o===void 0&&(i.incomplete=!0),i};Gr[28]=o=>{ro||(ro=new Map,ro.id=0);let i=ro.id++,s=yt,f=Jt[yt],l;f>>5==4?l=[]:l={};let r={target:l};ro.set(i,r);let B=o();return r.used?(Object.getPrototypeOf(l)!==Object.getPrototypeOf(B)&&(yt=s,l=B,ro.set(i,{target:l}),B=o()),Object.assign(l,B)):(r.target=B,B)};Gr[28].handlesRead=!0;Gr[29]=o=>{let i=ro.get(o);return i.used=!0,i.target};Gr[258]=o=>new Set(o);(Gr[259]=o=>(kA.mapsAsObjects&&(kA.mapsAsObjects=!1,Rc=!0),o())).handlesRead=!0;function G0(o,i){return typeof o=="string"?o+i:o instanceof Array?o.concat(i):Object.assign({},o,i)}function uh(){if(!Zi)if(kA.getShared)e5();else throw new Error("No packed values available");return Zi}const Vme=1399353956;mR.push((o,i)=>{if(o>=225&&o<=255)return G0(uh().prefixes[o-224],i);if(o>=28704&&o<=32767)return G0(uh().prefixes[o-28672],i);if(o>=1879052288&&o<=2147483647)return G0(uh().prefixes[o-1879048192],i);if(o>=216&&o<=223)return G0(i,uh().suffixes[o-216]);if(o>=27647&&o<=28671)return G0(i,uh().suffixes[o-27639]);if(o>=1811940352&&o<=1879048191)return G0(i,uh().suffixes[o-1811939328]);if(o==Vme)return{packedValues:Zi,structures:Qr.slice(0),version:i};if(o==55799)return i});const Zme=new Uint8Array(new Uint16Array([1]).buffer)[0]==1,Ij=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array],zme=[64,68,69,70,71,72,77,78,79,85,86];for(let o=0;o{if(!o)throw new Error("Could not find typed array for code "+i);return!kA.copyBuffers&&(f===1||f===2&&!(B.byteOffset&1)||f===4&&!(B.byteOffset&3)||f===8&&!(B.byteOffset&7))?new o(B.buffer,B.byteOffset,B.byteLength>>r):new o(Uint8Array.prototype.slice.call(B,0).buffer)}:B=>{if(!o)throw new Error("Could not find typed array for code "+i);let I=new DataView(B.buffer,B.byteOffset,B.byteLength),p=B.length>>r,Q=new o(p),d=I[s];for(let y=0;y23)switch(o){case 24:o=Jt[yt++];break;case 25:o=bi.getUint16(yt),yt+=2;break;case 26:o=bi.getUint32(yt),yt+=4;break}return o}function e5(){if(kA.getShared){let o=Zie(()=>(Jt=null,kA.getShared()))||{},i=o.structures||[];kA.sharedVersion=o.version,Zi=kA.sharedValues=o.packedValues,Qr===!0?kA.structures=Qr=i:Qr.splice.apply(Qr,[0,i.length].concat(i))}}function Zie(o){let i=Nh,s=yt,f=HE,l=hl,r=qE,B=ro,I=Tr,p=new Uint8Array(Jt.slice(0,Nh)),Q=Qr,d=kA,y=gl,v=o();return Nh=i,yt=s,HE=f,hl=l,qE=r,ro=B,Tr=I,Jt=p,gl=y,Qr=Q,kA=d,bi=new DataView(Jt.buffer,Jt.byteOffset,Jt.byteLength),v}function SR(){Jt=null,ro=null,Qr=null}const zie=new Array(147);for(let o=0;o<256;o++)zie[o]=+("1e"+Math.floor(45.15-o*.30103));let t5=new TE({useRecords:!1});const e2e=t5.decode;t5.decodeMultiple;const t2e=o=>({register:{options:`${o}/passkey/register/options`,verify:`${o}/passkey/register/verify`},authenticate:{options:`${o}/passkey/authenticate/options`,getCredential:`${o}/passkey/authenticate/getCredential`,verify:`${o}/passkey/authenticate/verify`}}),A2e=o=>{const{document:i}=o,s=i.querySelector('head > meta[property="og:site_name"]');if(s)return s.content;const f=i.querySelector('head > meta[name="title"]');return f?f.content:i.title&&i.title.length>0?i.title:o.location.hostname},r2e=o=>{const f=new URL(o).hostname.split("."),l=f.length-1,r=f[l-1],B=f[l],I=l>=3&&(r+B).length<=5;return r?`${(I?`${f[l-2]}.`:"")+r}.${B}`:B};async function i2e(o,i){const s=JSON.stringify(i),f=Buffer.from(s,"utf-8"),l=await x1e(Buffer.from(o,"hex"),f),r=Rme(l);return JSON.stringify(r)}const n2e=async o=>{const i=p=>{let Q=p;const d=Q.slice(0,32);Q=Q.slice(32);const y=Q.slice(0,1);Q=Q.slice(1);const v=y[0],w={up:!!(v&1),uv:!!(v&4),at:!!(v&64),ed:!!(v&128),flagsInt:v},M=Q.slice(0,4);Q=Q.slice(4);const m=M.readUInt32BE(0);if(!w.at)throw new Error("Unable to parse auth data");const x=Q.slice(0,16);Q=Q.slice(16);const D=Q.slice(0,2);Q=Q.slice(2);const S=D.readUInt16BE(0),K=Q.slice(0,S);return Q=Q.slice(S),{rpIdHash:d,flagsBuf:y,flags:w,counter:m,counterBuf:M,aaguid:x,credID:K,COSEPublicKey:Q}},s=p=>{if(typeof p=="string")throw new Error("only accepts buffer-like input");return Pie.fromBase64(Buffer.from(p).toString("base64"))},{response:f}=o,l=e2e(Buffer.from(sl(f.attestationObject))),r=i(l.authData),B=s(r.COSEPublicKey);return s(Dme(Buffer.from(B,"base64")))},o2e=o=>{const{email:i,name:s,typeOfLogin:f,verifierId:l}=o;return f&&f!=="jwt"?`${f}|${i||s||l}`:i||s||l};class a2e{constructor(i){JA(this,"trackingId",""),JA(this,"web3AuthClientId",void 0),JA(this,"web3authNetwork",void 0),JA(this,"buildEnv",qme.PRODUCTION),JA(this,"endpoints",void 0),JA(this,"rpID",void 0),JA(this,"rpName",void 0),JA(this,"web3authLoginSvc",void 0),this.web3AuthClientId=i.web3AuthClientId,this.endpoints=t2e(i.baseURL),this.web3authNetwork=i.web3authNetwork,this.rpID=i.rpID,this.rpName=i.rpName,this.web3authLoginSvc=i.web3authLoginService}async initiateRegistration(i){const s=await this.getRegistrationOptions(i),{options:f,trackingId:l}=s;return this.trackingId=l,await z1e({optionsJSON:f})}async registerPasskey(i){const{username:s,verifier:f,verifierID:l,verificationResponse:r,sessionSignatures:B,userEncryptedMetadata:I,postboxKey:p}=i,Q=await n2e(r);await this.web3authLoginSvc.registerPasskey({verifierId:l,verifier:f,credentialPubKey:Q,postboxKey:p,username:s,sessionSignatures:B});const d=await this.verifyRegistration(r,B,I);return{response:r,data:d}}async unRegisterPasskey(i){return this.web3authLoginSvc.unRegisterPasskey(i)}async listPasskeys(i){return this.web3authLoginSvc.listPasskeys(i)}async loginUser(i){const s=await this.getAuthenticationOptions(i),{options:f,trackingId:l}=s;this.trackingId=l;const r=await eme({optionsJSON:f}),B=await this.getCredentialByID(r.id);try{const{response:{signature:I,clientDataJSON:p,authenticatorData:Q},id:d}=r,{encoded_cred_pub_key:y,metadata:v}=B.data,{challenge:w}=f,M=String.fromCharCode(...new Uint8Array(Buffer.from(w))),m={credentialPublicKey:y,signature:I,extraVerifierParams:{signature:I,clientDataJSON:p,authenticatorData:Q,publicKey:y,challenge:M,rpOrigin:window.location.origin,rpId:this.rpID,credId:d}},x=await this.web3authLoginSvc.getPasskeyPostboxKey(m),D=await kme(x.finalKeyData.privKey.padStart(64,"0"),v);if(!D)throw new Error("Unable to decrypt metadata.");const S=await this.verifyAuthentication(r);if(S&&S.verified&&S.data)return In.info("authentication response",r),{torusKey:x,decryptedMetadata:D,authenticationResponse:r,data:{transports:S.data.transports,publicKey:S.data.credential_public_key,metadata:S.data.metadata,strict_passkey_enabled:S.data.strict_passkey_enabled}}}catch(I){throw In.error("error login with passkey",I),I}}async getRegistrationOptions({authenticatorAttachment:i,oAuthVerifier:s,oAuthVerifierId:f,signatures:l,username:r,passkeyToken:B}){try{const I=await Ic(this.endpoints.register.options,{web3auth_client_id:this.web3AuthClientId,verifier_id:f,verifier:s,authenticator_attachment:i,rp:{name:this.rpName,id:this.rpID},username:r,network:this.web3authNetwork,signatures:l},{headers:{Authorization:`Bearer ${B||""}`}});if(I.success)return I.data;throw new Error("Error getting registration options")}catch(I){if(I instanceof Response){const p=await I.json();throw new Error(`Error getting registration options, reason: ${p.error||"unknown"}`)}throw In.error("error getting registration options",I),I}}async verifyRegistration(i,s,f){if(!this.trackingId)throw new Error("trackingId is required, please restart the process again.");try{const l=await Ic(this.endpoints.register.verify,{web3auth_client_id:this.web3AuthClientId,tracking_id:this.trackingId,verification_data:i,network:this.web3authNetwork,signatures:s,metadata:f});if(l.verified)return l.data;throw new Error(`Error verifying registration, error: ${l.error}`)}catch(l){if(l instanceof Response){const r=await l.json();throw new Error(`Error verifying registration, reason: ${r.error||"unknown"}`)}throw In.error("error verifying registration",l),l}}async getAuthenticationOptions(i){try{const s=await Ic(this.endpoints.authenticate.options,{web3auth_client_id:this.web3AuthClientId,rp_id:this.rpID,authenticator_id:i,network:this.web3authNetwork});if(s.success)return s.data;throw new Error("Error getting authentication options")}catch(s){if(s instanceof Response){const f=await s.json();throw new Error(`Error getting authentication options, reason: ${f.error||"unknown"}`)}throw In.error("error getting authentication options",s),s}}async verifyAuthentication(i){if(!i)throw new Error("verificationResponse is required.");try{const s=await Ic(this.endpoints.authenticate.verify,{web3auth_client_id:this.web3AuthClientId,tracking_id:this.trackingId,verification_data:i,network:this.web3authNetwork});if(s.verified)return{data:s.data,verified:s.verified};throw new Error(`Error verifying authentication, error: ${s.error}`)}catch(s){if(s instanceof Response){const f=await s.json();throw new Error(`Error verifying authentication, reason: ${f.error||"unknown"}`)}throw In.error("error verifying authentication",s),s}}async getCredentialByID(i){if(!i)throw new Error("credentialID is required.");try{const s=await Ic(this.endpoints.authenticate.getCredential,{web3auth_client_id:this.web3AuthClientId,tracking_id:this.trackingId,credential_id:i,network:this.web3authNetwork});if(!s.error)return{data:s.data};throw new Error(`Error getting credential by ID, error: ${s.error}`)}catch(s){if(s instanceof Response){const f=await s.json();throw new Error(`Error getting credential by ID, reason: ${f.error||"unknown"}`)}throw In.error("error getting credential by ID",s),s}}}class s2e{constructor(i,s,f){JA(this,"authInstance",null),JA(this,"nodeDetailManagerInstance",void 0),JA(this,"KeyType",void 0),JA(this,"web3auth",void 0),this.authInstance=i,this.nodeDetailManagerInstance=s,this.KeyType="secp256k1",this.web3auth=f}async getPasskeyPostboxKey(i){const{credentialPublicKey:s,signature:f,extraVerifierParams:l={}}=i,r=this.getVerifierIdFromCredentialPubKey(s),{torusNodeEndpoints:B,torusNodePub:I,torusIndexes:p}=await this.nodeDetailManagerInstance.getNodeDetails({verifier:"randomVerifier",verifierId:r}),Q=await this.authInstance.retrieveSharesWithLinkedPasskey({endpoints:B,nodePubkeys:I,indexes:p,idToken:f,passkeyPublicKey:s,extraParams:l});if(!Q.finalKeyData.privKey)throw new Error("Unable to get passkey privkey.");return Q}async registerPasskey(i){try{const{username:s,credentialPubKey:f,postboxKey:l,verifier:r,verifierId:B,sessionSignatures:I}=i,p={verifier:r,verifierId:B},{torusNodeEndpoints:Q}=await this.nodeDetailManagerInstance.getNodeDetails(p),d=await this.getAuthMessages({verifier:r,verifierId:B,endpoints:Q}),y=d.map(({nodeIndex:M})=>Q[M-1]),v=go("secp256k1").keyFromPrivate(l.padStart(64,"0"),"hex"),w=d.map(M=>{const m=v.sign(Kr(Buffer.from(M.message,"utf8")).slice(2));return Buffer.from(`${m.r.toString(16,64)+m.s.toString(16,64)}00`,"hex").toString("hex")});await xpe({endpoints:y,passkeyPubKey:f,messages:d.map(({message:M})=>M),label:s,oAuthKeySignatures:w,keyType:this.KeyType,sessionData:I})}catch(s){throw In.error("Error registering passkey in nodes",s),s}}async unRegisterPasskey(i){try{const{credentialPubKey:s,postboxKey:f,verifier:l,sessionSignatures:r}=i,B={verifier:l,verifierId:"randomVID"},{torusNodeEndpoints:I}=await this.nodeDetailManagerInstance.getNodeDetails(B),p=await this.getAuthMessages({verifier:l,credentialPubKey:s,endpoints:I}),Q=p.map(({nodeIndex:v})=>I[v-1]),d=go("secp256k1").keyFromPrivate(f.padStart(64,"0"),"hex"),y=p.map(v=>{const w=d.sign(Kr(Buffer.from(v.message,"utf8")).slice(2));return Buffer.from(`${w.r.toString(16,64)+w.s.toString(16,64)}00`,"hex").toString("hex")});await Rpe({endpoints:Q,passkeyPubKey:s,messages:p.map(({message:v})=>v),oAuthKeySignatures:y,keyType:this.KeyType,sessionData:r})}catch(s){throw In.error("Error registering passkey in nodes",s),s}}async listPasskeys(i){try{const{credentialPubKey:s,postboxKey:f,verifier:l,verifierId:r}=i;if(!r&&!s)throw new Error("Either verifierId or credentialPubKey is required.");const B={verifier:l,verifierId:r||"randomVID"},{torusNodeEndpoints:I}=await this.nodeDetailManagerInstance.getNodeDetails(B),p=await this.getAuthMessages({verifier:l,verifierId:r,credentialPubKey:s,endpoints:I}),Q=p.map(({nodeIndex:w})=>I[w-1]),d=go("secp256k1").keyFromPrivate(f.padStart(64,"0"),"hex"),y=p.map(w=>{const M=d.sign(Kr(Buffer.from(w.message,"utf8")).slice(2));return Buffer.from(`${M.r.toString(16,64)+M.s.toString(16,64)}00`,"hex").toString("hex")});return await kpe({endpoints:Q,messages:p.map(({message:w})=>w),oAuthKeySignatures:y,keyType:this.KeyType})}catch(s){throw In.error("Error registering passkey in nodes",s),s}}async getAuthMessages(i){const{verifier:s,verifierId:f,endpoints:l,credentialPubKey:r}=i;if(!f&&!r)throw new Error("Either verifierId or credentialPubKey is required.");return await Spe({verifier:s,verifierId:f,endpoints:l,passkeyPubKey:r,requiredNodeIndexes:this.web3auth.state.postboxKeyNodeIndexes||[]})}getVerifierIdFromCredentialPubKey(i){return Pie.fromBase64(Buffer.from(Kr(Buffer.from(i,"base64"))).toString("base64"))}}class f2e{constructor(i={}){JA(this,"options",void 0),JA(this,"web3auth",null),JA(this,"initialized",!1),JA(this,"passkeysSvc",null),JA(this,"currentStorage",void 0),JA(this,"_storageBaseKey","passkey_plugin_corekit_store"),i.baseURL||(i.baseURL="http://localhost:3041/api/v1"),i.rpID||typeof window<"u"&&(i.rpID=r2e(window.location.href)),i.rpName||typeof window<"u"&&(i.rpName=A2e(window)||""),this.options=i}async initWithMpcCoreKit(i){var s;if(this.initialized)return;if(!i)throw new Error("Web3AuthMPCCoreKit instance is required");i.status===Zr.NOT_INITIALIZED&&await i.init(),this.web3auth=i;const f=(s=i.torusSp)===null||s===void 0||(s=s.customAuthInstance)===null||s===void 0?void 0:s.torus,{web3AuthNetwork:l,web3AuthClientId:r,storage:B}=i.config,I=new j1e({network:l}),p=new s2e(f,I,this.web3auth);this.passkeysSvc=new a2e({web3AuthClientId:r,web3authNetwork:l,baseURL:this.options.baseURL,rpID:this.options.rpID,rpName:this.options.rpName,web3authLoginService:p}),this.currentStorage=new XX(this._storageBaseKey,B),this.initialized=!0,this.web3auth.setSessionSigGenerator(this.fetchAuthSignatures.bind(this))}async registerPasskey({authenticatorAttachment:i,username:s}={}){if(!this.initialized)throw new Error("Sdk not initialized, please call init first.");if(!this.passkeysSvc)throw new Error("Passkey service not initialized");if(this.web3auth.status!==Zr.LOGGED_IN)throw new Error("Web3Auth not connected");if(!this.web3auth.state.postBoxKey)throw new Error("Unable to get social login key, please login first.");if(!this.web3auth.state.signatures)throw new Error("Unable to get session signatures, please login first.");try{const{verifier:f,verifierId:l,aggregateVerifier:r}=this.web3auth.getUserInfo();if(!l||!f)throw new Error("Unable to get verifier or verifierId, please login first.");const B=r||f,I=await this.fetchAuthSignatures();s||(s=o2e(this.web3auth.getUserInfo()));const p=await this.passkeysSvc.initiateRegistration({oAuthVerifier:B,oAuthVerifierId:l,authenticatorAttachment:i,signatures:I,username:s});if(!p)throw new Error("passkey registration failed.");const d=bie(Buffer.from(this.web3auth.state.postBoxKey.padStart(64,"0"),"hex")).toString("hex"),y=await this.getUserEncryptedMetadata(d);if(!await this.passkeysSvc.registerPasskey({verificationResponse:p,postboxKey:this.web3auth.state.postBoxKey,sessionSignatures:this.web3auth.state.signatures,userEncryptedMetadata:y,verifier:B,verifierID:l,username:s}))throw new Error("passkey registration failed.");return!0}catch(f){throw In.error("error registering user",f),f}}async authenticateWithPasskey(i=!1,s){if(!this.initialized)throw new Error("Sdk not initialized, please call init first.");if(!this.passkeysSvc)throw new Error("Passkey service not initialized");const f=await this.passkeysSvc.loginUser(s),{userInfo:l}=f.decryptedMetadata;return await this.web3auth._finalizeOauthLogin(f.torusKey,l,!i),await this.setAuthenticatorData(f.authenticationResponse.id,f.data.publicKey,!!f.data.strict_passkey_enabled),f}async listPasskeys(){if(!this.initialized)throw new Error("Sdk not initialized, please call init first.");if(!this.passkeysSvc)throw new Error("Passkey service not initialized");const{verifier:i,aggregateVerifier:s,verifierId:f}=this.web3auth.getUserInfo();if(!i||!f)throw new Error("Unable to get verifier or verifierId, please login first.");const l=s||i;return this.passkeysSvc.listPasskeys({verifierId:f,postboxKey:this.web3auth.state.postBoxKey,verifier:l})}async unRegisterPasskey({credentialPubKey:i}){if(!this.initialized)throw new Error("Sdk not initialized, please call init first.");if(!this.passkeysSvc)throw new Error("Passkey service not initialized");if(!i)throw new Error("credentialPubKey is required.");const{verifier:s,aggregateVerifier:f,verifierId:l}=this.web3auth.getUserInfo();if(!s||!l)throw new Error("Unable to get verifier or verifierId, please login first.");const r=f||s,B=await this.fetchAuthSignatures();await this.passkeysSvc.unRegisterPasskey({sessionSignatures:B,credentialPubKey:i,postboxKey:this.web3auth.state.postBoxKey,verifier:r});const{credentialPubKey:I}=await this.getAuthenticatorData();I.toLowerCase()===i.toLowerCase()&&await this.logout()}async enableStrictPasskeyAuth(){const{authenticatorId:i}=await this.getAuthenticatorData();await this.authenticateWithPasskey(!0,i)}async disableStrictPasskeyAuth(){const{authenticatorId:i}=await this.getAuthenticatorData();await this.authenticateWithPasskey(!1,i)}async isStrictPasskeyEnabled(){const{strictPasskeyEnabled:i}=await this.getAuthenticatorData();return i}async logout(){this.web3auth.logout(),await this.currentStorage.resetStore()}async fetchAuthSignatures(){if(this.web3auth.signatures.length>0)return this.web3auth.signatures;const{authenticatorId:i}=await this.getAuthenticatorData(),s=await this.authenticateWithPasskey(!0,i);return this._getSignatures(s.torusKey.sessionData.sessionTokenData)}async getUserEncryptedMetadata(i){const s={userInfo:this.web3auth.getUserInfo()};return i2e(i,s)}async getAuthenticatorData(){return this.currentStorage.get("authenticator_data")||{authenticatorId:"",credentialPubKey:"",strictPasskeyEnabled:!1}}async setAuthenticatorData(i,s,f){await this.currentStorage.set("authenticator_data",{authenticatorId:i,credentialPubKey:s,strictPasskeyEnabled:f})}_getSignatures(i){return i.filter(s=>!!s).map(s=>JSON.stringify({data:s.token,sig:s.signature}))}}var ho;(function(o){o.NUMBER="NUMBER_NUMBER",o.HEX="NUMBER_HEX",o.STR="NUMBER_STR",o.BIGINT="NUMBER_BIGINT"})(ho||(ho={}));var us;(function(o){o.HEX="BYTES_HEX",o.UINT8ARRAY="BYTES_UINT8ARRAY"})(us||(us={}));const Ni={number:ho.BIGINT,bytes:us.HEX},nA={number:ho.HEX,bytes:us.HEX};var os;(function(o){o.EARLIEST="earliest",o.LATEST="latest",o.PENDING="pending",o.SAFE="safe",o.FINALIZED="finalized",o.COMMITTED="committed"})(os||(os={}));var Pc;(function(o){o.chainstart="chainstart",o.frontier="frontier",o.homestead="homestead",o.dao="dao",o.tangerineWhistle="tangerineWhistle",o.spuriousDragon="spuriousDragon",o.byzantium="byzantium",o.constantinople="constantinople",o.petersburg="petersburg",o.istanbul="istanbul",o.muirGlacier="muirGlacier",o.berlin="berlin",o.london="london",o.altair="altair",o.arrowGlacier="arrowGlacier",o.grayGlacier="grayGlacier",o.bellatrix="bellatrix",o.merge="merge",o.capella="capella",o.shanghai="shanghai"})(Pc||(Pc={}));const A5=Object.getPrototypeOf(Uint8Array);var Bj=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const Cj=Symbol.for("web3/base-provider");class cd{static isWeb3Provider(i){return i instanceof cd||!!(i&&i[Cj])}get[Cj](){return!0}send(i,s){this.request(i).then(f=>{s(null,f)}).catch(f=>{s(f)})}sendAsync(i){return Bj(this,void 0,void 0,function*(){return this.request(i)})}asEIP1193Provider(){const i=Object.create(this),s=i.request;return i.request=function(l){return Bj(this,void 0,void 0,function*(){return(yield s(l)).result})},i.asEIP1193Provider=void 0,i}}class h2e extends Array{constructor(i){super(),this._accountProvider=i}}const g2e=100,u2e=101,c2e=201,l2e=202,d2e=203,I2e=204,B2e=205,C2e=206,E2e=207,p2e=208,Q2e=300,y2e=301,v2e=310,w2e=311,m2e=400,M2e=402,b2e=405,D2e=407,S2e=408,x2e=410,R2e=411,k2e=412,N2e=413,_2e=414,K2e=415,F2e=416,G2e=417,L2e=418,U2e=419,q2e=420,H2e=421,T2e=422,Y2e=423,J2e=424,P2e=425,O2e=426,j2e=427,W2e=428,V2e=429,Z2e=430,z2e=431,$2e=432,X2e=433,eMe=434,tMe=435,AMe=436,rMe=437,iMe=438,nMe=439,oMe=440,aMe=441,sMe=500,fMe=503,hMe=505,gMe=506,uMe=507,cMe=600,lMe=602,dMe=603,IMe=604,BMe=701,CMe=702,EMe=703,pMe=704,QMe=705,yMe=706,vMe=707,wMe=709,mMe=801,MMe=802,bMe=4001,DMe=4100,SMe=4200,xMe=4900,RMe=4901,kMe=902,NMe=903,_Me=1001,KMe=1002,FMe=1003,GMe=1004,LMe=1005,UMe=1006,qMe=1008,HMe=1009,TMe=1010,YMe=1011,JMe=1012,PMe=1014,OMe=1015,jMe=1100,$ie=1101,WMe=1200,YE=-32700,JE=-32600,PE=-32601,OE=-32602,jE=-32603,WE=-32e3,VE=-32001,ZE=-32002,zE=-32003,$E=-32004,XE=-32005,ep=-32006;class eA extends Error{constructor(i,s){super(i),Array.isArray(s)?this.cause=new Oc(s):this.cause=s,this.name=this.constructor.name,typeof Error.captureStackTrace=="function"?Error.captureStackTrace(new.target.constructor):this.stack=new Error().stack}get innerError(){return this.cause instanceof Oc?this.cause.errors:this.cause}set innerError(i){Array.isArray(i)?this.cause=new Oc(i):this.cause=i}static convertToString(i,s=!1){if(i==null)return"undefined";const f=JSON.stringify(i,(l,r)=>typeof r=="bigint"?r.toString():r);return s&&["bigint","string"].includes(typeof i)?f.replace(/['\\"]+/g,""):f}toJSON(){return{name:this.name,code:this.code,message:this.message,cause:this.cause,innerError:this.cause}}}class Oc extends eA{constructor(i){super(`Multiple errors occurred: [${i.map(s=>s.message).join("], [")}]`),this.code=p2e,this.errors=i}}class MA extends eA{constructor(i,s){super(`Invalid value given "${eA.convertToString(i,!0)}". Error: ${s}.`),this.name=this.constructor.name}}class Ej extends eA{constructor(){super("Private key must be 32 bytes."),this.code=BMe}}class VMe extends eA{constructor(){super("Invalid Private Key, Not a valid string or uint8Array"),this.code=CMe}}class ZMe extends eA{constructor(i){super(`"${i}"`),this.code=MMe}}class Xie extends eA{constructor(){super("Invalid key derivation function"),this.code=EMe}}class zMe extends eA{constructor(){super("Key derivation failed - possibly wrong password"),this.code=pMe}}class $Me extends eA{constructor(){super("Unsupported key store version"),this.code=QMe}}class XMe extends eA{constructor(){super("Password cannot be empty"),this.code=yMe}}class ebe extends eA{constructor(){super("Initialization vector must be 16 bytes"),this.code=vMe}}class tbe extends eA{constructor(){super("c > 1000, pbkdf2 is less secure with less iterations"),this.code=wMe}}class ld extends eA{constructor(i,s){super(i),this.code=sMe,s&&(this.errorCode=s.code,this.errorReason=s.reason)}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{errorCode:this.errorCode,errorReason:this.errorReason})}}class xR extends ld{constructor(i){super("Connection not open",i),this.code=fMe}}class Abe extends ld{constructor(i){super(`Maximum number of reconnect attempts reached! (${i})`),this.code=hMe}}class rbe extends ld{constructor(){super("CONNECTION ERROR: Provider started to reconnect before the response got received!"),this.code=gMe}}class ibe extends ld{constructor(i){super(`Request already sent with following id: ${i}`),this.code=uMe}}class _i extends eA{constructor(i,s){super(i),this.code=Q2e,this.receipt=s}}class pj extends eA{constructor(i,s){super(`The resolver at ${i} does not implement requested method: "${s}".`),this.address=i,this.name=s,this.code=y2e}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{address:this.address,name:this.name})}}class bQ extends _i{constructor(i){if(super(i.message||"Error"),this.name="name"in i&&i.name||this.constructor.name,this.stack="stack"in i&&i.stack||void 0,this.code=i.code,typeof i.data=="object"){let s;i.data&&"originalError"in i.data?s=i.data.originalError:s=i.data,this.data=s.data,this.cause=new bQ(s)}else this.data=i.data}setDecodedProperties(i,s,f){this.errorName=i,this.errorSignature=s,this.errorArgs=f}toJSON(){let i=Object.assign(Object.assign({},super.toJSON()),{data:this.data});return this.errorName&&(i=Object.assign(Object.assign({},i),{errorName:this.errorName,errorSignature:this.errorSignature,errorArgs:this.errorArgs})),i}}class _h extends _i{constructor(i){super("Error happened while trying to execute a function inside a smart contract"),this.code=v2e,this.cause=new bQ(i)}}class nbe extends MA{constructor(i){var s,f;super(`data: ${(s=i.data)!==null&&s!==void 0?s:"undefined"}, input: ${(f=i.input)!==null&&f!==void 0?f:"undefined"}`,`You can't have "data" and "input" as properties of a contract at the same time, please use either "data" or "input" instead.`),this.code=w2e}}class obe extends eA{constructor(i){super(`ENS is not supported on network ${i}`),this.code=kMe}}class abe extends eA{constructor(){super("Network not synced"),this.code=NMe}}class Qj extends eA{constructor(i){super(`Invalid parameters passed. "${typeof i<"u"?i:""}"`),this.hint=i,this.code=E2e}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{hint:this.hint})}}class RR extends eA{constructor(){super(...arguments),this.code=c2e}}class Pa extends eA{constructor(){super("The method you're trying to call is not implemented."),this.code=l2e}}class ene extends eA{constructor(){super(...arguments),this.code=d2e}}class sbe extends eA{constructor(){super(...arguments),this.code=I2e}}class NA extends eA{constructor(i,s){super(i),this.code=B2e,this.props=s??{}}}class fbe extends eA{constructor(i){super(`A plugin with the namespace: ${i} has already been registered.`),this.code=C2e}}class hE extends eA{constructor(){super(...arguments),this.code=cMe}}class kR extends eA{constructor(i){super(`Client URL "${i}" is invalid.`),this.code=lMe}}class es extends eA{constructor(){super(...arguments),this.code=dMe}}class hbe extends eA{constructor(){super(...arguments),this.code=IMe}}class gbe extends MA{constructor(){super(...arguments),this.code=mMe}}class r5 extends eA{constructor(i,s){super(i),this.receipt=s,this.code=m2e}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{receipt:this.receipt})}}class tp extends eA{constructor(i,s,f,l){super(`Transaction has been reverted by the EVM${f===void 0?"":`: - ${eA.convertToString(f)}`}`),this.reason=i,this.signature=s,this.receipt=f,this.data=l,this.code=M2e}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reason:this.reason,signature:this.signature,receipt:this.receipt,data:this.data})}}class tne extends tp{constructor(i,s,f,l,r,B,I){super(i),this.reason=i,this.customErrorName=s,this.customErrorDecodedSignature=f,this.customErrorArguments=l,this.signature=r,this.receipt=B,this.data=I,this.code=iMe}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reason:this.reason,customErrorName:this.customErrorName,customErrorDecodedSignature:this.customErrorDecodedSignature,customErrorArguments:this.customErrorArguments,signature:this.signature,receipt:this.receipt,data:this.data})}}class Ane extends r5{constructor(i){super(`Transaction has been reverted by the EVM${i===void 0?"":`: - ${eA.convertToString(i)}`}`,i),this.code=b2e}}class ube extends r5{constructor(){super("Raw transaction undefined"),this.code=D2e}}class yj extends r5{constructor(){super("Transaction not found"),this.code=Z2e}}class cbe extends MA{constructor(i){super(i,"invalid transaction with invalid sender"),this.code=S2e}}class lbe extends MA{constructor(i){super(i,"invalid transaction with invalid receiver"),this.code=rMe}}class dbe extends MA{constructor(){super("MissingCustomChainError","If tx.common is provided it must have tx.common.customChain"),this.code=x2e}}class Ibe extends MA{constructor(){super("MissingCustomChainIdError","If tx.common is provided it must have tx.common.customChain and tx.common.customChain.chainId"),this.code=R2e}}class Bbe extends MA{constructor(i){super(JSON.stringify(i),"Chain Id doesnt match in tx.chainId tx.common.customChain.chainId"),this.code=k2e}}class Cbe extends MA{constructor(i){super(JSON.stringify(i),"Chain doesnt match in tx.chain tx.common.basechain"),this.code=tMe}}class Ebe extends MA{constructor(i){super(JSON.stringify(i),"hardfork doesnt match in tx.hardfork tx.common.hardfork"),this.code=AMe}}class pbe extends MA{constructor(){super("CommonOrChainAndHardforkError","Please provide the common object or the chain and hardfork property but not all together."),this.code=N2e}}class Qbe extends MA{constructor(i){var s,f;super("MissingChainOrHardforkError",`When specifying chain and hardfork, both values must be defined. Received "chain": ${(s=i.chain)!==null&&s!==void 0?s:"undefined"}, "hardfork": ${(f=i.hardfork)!==null&&f!==void 0?f:"undefined"}`),this.code=_2e}}class ybe extends eA{constructor(){super('Missing properties in transaction, either define "gas" and "gasPrice" for type 0 transactions or "gas", "maxPriorityFeePerGas" and "maxFeePerGas" for type 2 transactions'),this.code=oMe}}class vbe extends MA{constructor(i){var s,f,l,r;super(`gas: ${(s=i.gas)!==null&&s!==void 0?s:"undefined"}, gasPrice: ${(f=i.gasPrice)!==null&&f!==void 0?f:"undefined"}, maxPriorityFeePerGas: ${(l=i.maxPriorityFeePerGas)!==null&&l!==void 0?l:"undefined"}, maxFeePerGas: ${(r=i.maxFeePerGas)!==null&&r!==void 0?r:"undefined"}`,'"gas" is missing'),this.code=K2e,this.cause=new ybe}}class wbe extends eA{constructor(){super('Missing properties in transaction, either define "gas" and "gasPrice" for type 0 transactions or "gas", "maxPriorityFeePerGas" and "maxFeePerGas" for type 2 transactions, not both'),this.code=aMe}}class mbe extends MA{constructor(i){var s,f,l,r;super(`gas: ${(s=i.gas)!==null&&s!==void 0?s:"undefined"}, gasPrice: ${(f=i.gasPrice)!==null&&f!==void 0?f:"undefined"}, maxPriorityFeePerGas: ${(l=i.maxPriorityFeePerGas)!==null&&l!==void 0?l:"undefined"}, maxFeePerGas: ${(r=i.maxFeePerGas)!==null&&r!==void 0?r:"undefined"}`,"transaction must specify legacy or fee market gas properties, not both"),this.code=eMe,this.cause=new wbe}}class Mbe extends MA{constructor(i){var s,f;super(`gas: ${(s=i.gas)!==null&&s!==void 0?s:"undefined"}, gasPrice: ${(f=i.gasPrice)!==null&&f!==void 0?f:"undefined"}`,"Gas or gasPrice is lower than 0"),this.code=F2e}}class bbe extends MA{constructor(i){var s,f;super(`maxPriorityFeePerGas: ${(s=i.maxPriorityFeePerGas)!==null&&s!==void 0?s:"undefined"}, maxFeePerGas: ${(f=i.maxFeePerGas)!==null&&f!==void 0?f:"undefined"}`,"maxPriorityFeePerGas or maxFeePerGas is lower than 0"),this.code=G2e}}class Dbe extends MA{constructor(i){super(i,"eip-1559 transactions don't support gasPrice"),this.code=L2e}}class rne extends MA{constructor(i){var s,f;super(`maxPriorityFeePerGas: ${(s=i.maxPriorityFeePerGas)!==null&&s!==void 0?s:"undefined"}, maxFeePerGas: ${(f=i.maxFeePerGas)!==null&&f!==void 0?f:"undefined"}`,"pre-eip-1559 transaction don't support maxFeePerGas/maxPriorityFeePerGas"),this.code=U2e}}class Sbe extends MA{constructor(i){super(i,"invalid transaction object"),this.code=q2e}}class xbe extends MA{constructor(i){var s,f;super(`nonce: ${(s=i.nonce)!==null&&s!==void 0?s:"undefined"}, chainId: ${(f=i.chainId)!==null&&f!==void 0?f:"undefined"}`,"Nonce or chainId is lower than 0"),this.code=H2e}}class Rbe extends MA{constructor(){super("UnableToPopulateNonceError","unable to populate nonce, no from address available"),this.code=T2e}}class kbe extends MA{constructor(){super("Eip1559NotSupportedError","Network doesn't support eip-1559"),this.code=Y2e}}class vj extends MA{constructor(i){super(i,"unsupported transaction type"),this.code=J2e}}class ine extends MA{constructor(i){var s,f;super(`data: ${(s=i.data)!==null&&s!==void 0?s:"undefined"}, input: ${(f=i.input)!==null&&f!==void 0?f:"undefined"}`,`You can't have "data" and "input" as properties of transactions at the same time, please use either "data" or "input" instead.`),this.code=P2e}}class Nbe extends eA{constructor(i){super(`The connected Ethereum Node did not respond within ${i.numberOfSeconds} seconds, please make sure your transaction was properly sent and you are connected to a healthy Node. Be aware that transaction might still be pending or mined! - Transaction Hash: ${i.transactionHash?i.transactionHash.toString():"not available"}`),this.code=z2e}}function nne(o){return`Please make sure your transaction was properly sent and there are no previous pending transaction for the same account. However, be aware that it might still be mined! - Transaction Hash: ${o?o.toString():"not available"}`}class one extends eA{constructor(i){super(`Transaction was not mined within ${i.numberOfSeconds} seconds. ${nne(i.transactionHash)}`),this.code=O2e}}class ane extends eA{constructor(i){super(`Transaction started at ${i.starterBlockNumber} but was not mined within ${i.numberOfBlocks} blocks. ${nne(i.transactionHash)}`),this.code=$2e}}class _be extends MA{constructor(i){var s,f;super(`receipt: ${JSON.stringify(i.receipt)}, blockHash: ${(s=i.blockHash)===null||s===void 0?void 0:s.toString()}, transactionHash: ${(f=i.transactionHash)===null||f===void 0?void 0:f.toString()}`,"Receipt missing or blockHash null"),this.code=j2e}}class Kbe extends MA{constructor(i){super(`receipt: ${JSON.stringify(i.receipt)}`,"Receipt missing block number"),this.code=W2e}}class NR extends eA{constructor(i){super(`Invalid signature. "${i}"`),this.code=X2e}}class wj extends MA{constructor(){super("LocalWalletNotAvailableError","Attempted to index account in local wallet, but no wallet is available"),this.code=V2e}}class Fbe extends eA{constructor(i,s){const f=[];i.forEach(l=>f.push(l.keyword)),super(`The following properties are invalid for the transaction type ${s}: ${f.join(", ")}`),this.code=nMe}}class fg extends MA{constructor(i){super(i,"can not parse as byte data"),this.code=KMe}}class i5 extends MA{constructor(i){super(i,"can not parse as number data"),this.code=FMe}}class n5 extends MA{constructor(i){super(i,"invalid ethereum address"),this.code=LMe}}class Gbe extends MA{constructor(i){super(i,"not a valid string"),this.code=_Me}}class sne extends MA{constructor(i){super(i,"invalid unit"),this.code=GMe}}class fne extends MA{constructor(i){super(i,"not a valid unit. Must be a positive integer"),this.code=OMe}}class Lbe extends MA{constructor(i){super(i,"can not be converted to hex"),this.code=UMe}}class hne extends MA{constructor(i){super(i,"value greater than the nibble width"),this.code=PMe}}class o5 extends MA{constructor(i){super(i,"not a valid boolean."),this.code=qMe}}class Ube extends MA{constructor(i){super(i,"not a valid unsigned integer."),this.code=HMe}}class mj extends MA{constructor(i){super(i,"invalid size given."),this.code=TMe}}class Mj extends MA{constructor(i){super(i,"value is larger than size."),this.code=YMe}}class qbe extends MA{constructor(i){super(i,"invalid string given"),this.code=JMe}}const Hbe=o=>!Array.isArray(o)&&o.jsonrpc==="2.0"&&!!o&&(o.result===void 0||o.result===null)&&"error"in o&&(typeof o.id=="number"||typeof o.id=="string"),bj=o=>Hbe(o)?o.error.message:"";class Ia extends eA{constructor(i,s,f,l){var r;super(s??`Returned error: ${Array.isArray(i)?i.map(I=>bj(I)).join(","):bj(i)}`),this.code=g2e,s||(this.data=Array.isArray(i)?i.map(I=>{var p;return(p=I.error)===null||p===void 0?void 0:p.data}):(r=i==null?void 0:i.error)===null||r===void 0?void 0:r.data),this.statusCode=l,this.request=f;let B;"error"in i?B=i.error:i instanceof Array&&(B=i.filter(I=>I.error).map(I=>I.error)),Array.isArray(B)&&B.length>0?this.cause=new Oc(B):this.cause=B}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{data:this.data,request:this.request,statusCode:this.statusCode})}}class DQ extends Ia{constructor(i,s){super(i,void 0,s),this.code=u2e;let f;"error"in i?f=i.error:i instanceof Array&&(f=i.map(l=>l.error)),Array.isArray(f)?this.cause=new Oc(f):this.cause=f}}class Dj extends eA{constructor(i,s){super(`Web3Config hardfork doesnt match in defaultHardfork ${i} and common.hardfork ${s}`),this.code=$ie}}class Sj extends eA{constructor(i,s){super(`Web3Config chain doesnt match in defaultHardfork ${i} and common.hardfork ${s}`),this.code=$ie}}const gne="An Rpc error has occured with a code of *code*",Qi={[YE]:{message:"Parse error",description:"Invalid JSON"},[JE]:{message:"Invalid request",description:"JSON is not a valid request object "},[PE]:{message:"Method not found",description:"Method does not exist "},[OE]:{message:"Invalid params",description:"Invalid method parameters"},[jE]:{message:"Internal error",description:"Internal JSON-RPC error"},[WE]:{message:"Invalid input",description:"Missing or invalid parameters"},[VE]:{message:"Resource not found",description:"Requested resource not found"},[ZE]:{message:"Resource unavailable",description:"Requested resource not available"},[zE]:{message:"Transaction rejected",description:"Transaction creation failed"},[$E]:{message:"Method not supported",description:"Method is not implemented"},[XE]:{message:"Limit exceeded",description:"Request exceeds defined limit"},[ep]:{message:"JSON-RPC version not supported",description:"Version of JSON-RPC protocol is not supported"},[bMe]:{name:"User Rejected Request",message:"The user rejected the request."},[DMe]:{name:"Unauthorized",message:"The requested method and/or account has not been authorized by the user."},[SMe]:{name:"Unsupported Method",message:"The Provider does not support the requested method."},[xMe]:{name:"Disconnected",message:"The Provider is disconnected from all chains."},[RMe]:{name:"Chain Disconnected",message:"The Provider is not connected to the requested chain."},"0-999":{name:"",message:"Not used."},1e3:{name:"Normal Closure",message:"The connection successfully completed the purpose for which it was created."},1001:{name:"Going Away",message:"The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection."},1002:{name:"Protocol error",message:"The endpoint is terminating the connection due to a protocol error."},1003:{name:"Unsupported Data",message:"The connection is being terminated because the endpoint received data of a type it cannot accept. (For example, a text-only endpoint received binary data.)"},1004:{name:"Reserved",message:"Reserved. A meaning might be defined in the future."},1005:{name:"No Status Rcvd",message:"Reserved. Indicates that no status code was provided even though one was expected."},1006:{name:"Abnormal Closure",message:"Reserved. Indicates that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected."},1007:{name:"Invalid frame payload data",message:"The endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., non-UTF-8 data within a text message)."},1008:{name:"Policy Violation",message:"The endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable."},1009:{name:"Message Too Big",message:"The endpoint is terminating the connection because a data frame was received that is too large."},1010:{name:"Mandatory Ext.",message:"The client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't."},1011:{name:"Internal Error",message:"The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request."},1012:{name:"Service Restart",message:"The server is terminating the connection because it is restarting."},1013:{name:"Try Again Later",message:"The server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients."},1014:{name:"Bad Gateway",message:"The server was acting as a gateway or proxy and received an invalid response from the upstream server. This is similar to 502 HTTP Status Code."},1015:{name:"TLS handshake",message:"Reserved. Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified)."},"1016-2999":{name:"",message:"For definition by future revisions of the WebSocket Protocol specification, and for definition by extension specifications."},"3000-3999":{name:"",message:"For use by libraries, frameworks, and applications. These status codes are registered directly with IANA. The interpretation of these codes is undefined by the WebSocket protocol."},"4000-4999":{name:"",message:"For private use, and thus can't be registered. Such codes can be used by prior agreements between WebSocket applications. The interpretation of these codes is undefined by the WebSocket protocol."}};class Mn extends eA{constructor(i,s){super(s??gne.replace("*code*",i.error.code.toString())),this.code=i.error.code,this.id=i.id,this.jsonrpc=i.jsonrpc,this.jsonRpcError=i.error}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{error:this.jsonRpcError,id:this.id,jsonRpc:this.jsonrpc})}}class Tbe extends eA{constructor(i,s){var f,l,r,B;if(!i)super();else if(!((f=Qi[i])===null||f===void 0)&&f.message)super(Qi[i].message);else{const I=Object.keys(Qi).find(p=>typeof p=="string"&&i>=parseInt(p.split("-")[0],10)&&i<=parseInt(p.split("-")[1],10));super((r=(l=Qi[I??""])===null||l===void 0?void 0:l.message)!==null&&r!==void 0?r:gne.replace("*code*",(B=i==null?void 0:i.toString())!==null&&B!==void 0?B:'""'))}this.code=i,this.data=s}}class Ybe extends Mn{constructor(i){super(i,Qi[YE].message),this.code=YE}}class Jbe extends Mn{constructor(i){super(i,Qi[JE].message),this.code=JE}}class Pbe extends Mn{constructor(i){super(i,Qi[PE].message),this.code=PE}}class Obe extends Mn{constructor(i){super(i,Qi[OE].message),this.code=OE}}class jbe extends Mn{constructor(i){super(i,Qi[jE].message),this.code=jE}}class Wbe extends Mn{constructor(i){super(i,Qi[WE].message),this.code=WE}}class Vbe extends Mn{constructor(i){super(i,Qi[$E].message),this.code=$E}}class Zbe extends Mn{constructor(i){super(i,Qi[ZE].message),this.code=ZE}}class zbe extends Mn{constructor(i){super(i,Qi[VE].message),this.code=VE}}class $be extends Mn{constructor(i){super(i,Qi[ep].message),this.code=ep}}class Xbe extends Mn{constructor(i){super(i,Qi[zE].message),this.code=zE}}class eDe extends Mn{constructor(i){super(i,Qi[XE].message),this.code=XE}}const Fi=new Map;Fi.set(YE,{error:Ybe});Fi.set(JE,{error:Jbe});Fi.set(PE,{error:Pbe});Fi.set(OE,{error:Obe});Fi.set(jE,{error:jbe});Fi.set(WE,{error:Wbe});Fi.set($E,{error:Vbe});Fi.set(ZE,{error:Zbe});Fi.set(zE,{error:Xbe});Fi.set(VE,{error:zbe});Fi.set(ep,{error:$be});Fi.set(XE,{error:eDe});class tDe extends eA{constructor(i){super(`Format for the type ${i} is unsupported`),this.type=i,this.code=WMe}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{type:this.type})}}function Vi(o){if(!Number.isSafeInteger(o)||o<0)throw new Error(`positive integer expected, not ${o}`)}function ADe(o){if(typeof o!="boolean")throw new Error(`boolean expected, not ${o}`)}function rDe(o){return o instanceof Uint8Array||o!=null&&typeof o=="object"&&o.constructor.name==="Uint8Array"}function gu(o,...i){if(!rDe(o))throw new Error("Uint8Array expected");if(i.length>0&&!i.includes(o.length))throw new Error(`Uint8Array expected of length ${i}, not of length=${o.length}`)}function a5(o){if(typeof o!="function"||typeof o.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Vi(o.outputLen),Vi(o.blockLen)}function Oh(o,i=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(i&&o.finished)throw new Error("Hash#digest() has already been called")}function s5(o,i){gu(o);const s=i.outputLen;if(o.length>xj&eC)}:{h:Number(o>>xj&eC)|0,l:Number(o&eC)|0}}function nDe(o,i=!1){let s=new Uint32Array(o.length),f=new Uint32Array(o.length);for(let l=0;lo<>>32-s,aDe=(o,i,s)=>i<>>32-s,sDe=(o,i,s)=>i<>>64-s,fDe=(o,i,s)=>o<>>64-s,gE=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const uE=o=>new Uint32Array(o.buffer,o.byteOffset,Math.floor(o.byteLength/4)),cE=o=>new DataView(o.buffer,o.byteOffset,o.byteLength),oa=(o,i)=>o<<32-i|o>>>i,HA=(o,i)=>o<>>32-i>>>0,Ap=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,hDe=o=>o<<24&4278190080|o<<8&16711680|o>>>8&65280|o>>>24&255;function rp(o){for(let i=0;io().update(Rg(f)).digest(),s=o();return i.outputLen=s.outputLen,i.blockLen=s.blockLen,i.create=()=>o(),i}function uDe(o=32){if(gE&&typeof gE.getRandomValues=="function")return gE.getRandomValues(new Uint8Array(o));throw new Error("crypto.getRandomValues must be defined")}const dne=[],Ine=[],Bne=[],cDe=BigInt(0),Ec=BigInt(1),lDe=BigInt(2),dDe=BigInt(7),IDe=BigInt(256),BDe=BigInt(113);for(let o=0,i=Ec,s=1,f=0;o<24;o++){[s,f]=[f,(2*s+3*f)%5],dne.push(2*(5*f+s)),Ine.push((o+1)*(o+2)/2%64);let l=cDe;for(let r=0;r<7;r++)i=(i<>dDe)*BDe)%IDe,i&lDe&&(l^=Ec<<(Ec<s>32?sDe(o,i,s):oDe(o,i,s),kj=(o,i,s)=>s>32?fDe(o,i,s):aDe(o,i,s);function pDe(o,i=24){const s=new Uint32Array(10);for(let f=24-i;f<24;f++){for(let B=0;B<10;B++)s[B]=o[B]^o[B+10]^o[B+20]^o[B+30]^o[B+40];for(let B=0;B<10;B+=2){const I=(B+8)%10,p=(B+2)%10,Q=s[p],d=s[p+1],y=Rj(Q,d,1)^s[I],v=kj(Q,d,1)^s[I+1];for(let w=0;w<50;w+=10)o[B+w]^=y,o[B+w+1]^=v}let l=o[2],r=o[3];for(let B=0;B<24;B++){const I=Ine[B],p=Rj(l,r,I),Q=kj(l,r,I),d=dne[B];l=o[d],r=o[d+1],o[d]=p,o[d+1]=Q}for(let B=0;B<50;B+=10){for(let I=0;I<10;I++)s[I]=o[B+I];for(let I=0;I<10;I++)o[B+I]^=~s[(I+2)%10]&s[(I+4)%10]}o[0]^=CDe[f],o[1]^=EDe[f]}s.fill(0)}let QDe=class Cne extends f5{constructor(i,s,f,l=!1,r=24){if(super(),this.blockLen=i,this.suffix=s,this.outputLen=f,this.enableXOF=l,this.rounds=r,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Vi(f),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=uE(this.state)}keccak(){Ap||rp(this.state32),pDe(this.state32,this.rounds),Ap||rp(this.state32),this.posOut=0,this.pos=0}update(i){Oh(this);const{blockLen:s,state:f}=this;i=Rg(i);const l=i.length;for(let r=0;r=f&&this.keccak();const B=Math.min(f-this.posOut,r-l);i.set(s.subarray(this.posOut,this.posOut+B),l),this.posOut+=B,l+=B}return i}xofInto(i){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(i)}xof(i){return Vi(i),this.xofInto(new Uint8Array(i))}digestInto(i){if(s5(i,this),this.finished)throw new Error("digest() was already called");return this.writeInto(i),this.destroy(),i}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(i){const{blockLen:s,suffix:f,outputLen:l,rounds:r,enableXOF:B}=this;return i||(i=new Cne(s,f,l,B,r)),i.state32.set(this.state32),i.pos=this.pos,i.posOut=this.posOut,i.finished=this.finished,i.rounds=r,i.suffix=f,i.outputLen=l,i.enableXOF=B,i.destroyed=this.destroyed,i}};const yDe=(o,i,s)=>lne(()=>new QDe(i,o,s)),Nj=yDe(1,136,256/8),ip=une.bytes;function Ene(o){if(!(o instanceof Uint8Array))throw new TypeError(`bytesToUtf8 expected Uint8Array, got ${typeof o}`);return new TextDecoder().decode(o)}function vDe(o,i){if(o.length!==i.length)return!1;for(let s=0;s(une.bytes(i),o(i))}(()=>{const o=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0,i=typeof module<"u"&&typeof module.require=="function"&&module.require.bind(module);return{node:i&&!o?i("crypto"):void 0,web:o}})();const yi=(()=>{const o=wDe(Nj);return o.create=Nj.create,o})();var LA;(function(o){o.assertEqual=l=>l;function i(l){}o.assertIs=i;function s(l){throw new Error}o.assertNever=s,o.arrayToEnum=l=>{const r={};for(const B of l)r[B]=B;return r},o.getValidEnumValues=l=>{const r=o.objectKeys(l).filter(I=>typeof l[l[I]]!="number"),B={};for(const I of r)B[I]=l[I];return o.objectValues(B)},o.objectValues=l=>o.objectKeys(l).map(function(r){return l[r]}),o.objectKeys=typeof Object.keys=="function"?l=>Object.keys(l):l=>{const r=[];for(const B in l)Object.prototype.hasOwnProperty.call(l,B)&&r.push(B);return r},o.find=(l,r)=>{for(const B of l)if(r(B))return B},o.isInteger=typeof Number.isInteger=="function"?l=>Number.isInteger(l):l=>typeof l=="number"&&isFinite(l)&&Math.floor(l)===l;function f(l,r=" | "){return l.map(B=>typeof B=="string"?`'${B}'`:B).join(r)}o.joinValues=f,o.jsonStringifyReplacer=(l,r)=>typeof r=="bigint"?r.toString():r})(LA||(LA={}));var KR;(function(o){o.mergeShapes=(i,s)=>({...i,...s})})(KR||(KR={}));const qt=LA.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),gf=o=>{switch(typeof o){case"undefined":return qt.undefined;case"string":return qt.string;case"number":return isNaN(o)?qt.nan:qt.number;case"boolean":return qt.boolean;case"function":return qt.function;case"bigint":return qt.bigint;case"symbol":return qt.symbol;case"object":return Array.isArray(o)?qt.array:o===null?qt.null:o.then&&typeof o.then=="function"&&o.catch&&typeof o.catch=="function"?qt.promise:typeof Map<"u"&&o instanceof Map?qt.map:typeof Set<"u"&&o instanceof Set?qt.set:typeof Date<"u"&&o instanceof Date?qt.date:qt.object;default:return qt.unknown}},_t=LA.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),mDe=o=>JSON.stringify(o,null,2).replace(/"([^"]+)":/g,"$1:");class yn extends Error{constructor(i){super(),this.issues=[],this.addIssue=f=>{this.issues=[...this.issues,f]},this.addIssues=(f=[])=>{this.issues=[...this.issues,...f]};const s=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,s):this.__proto__=s,this.name="ZodError",this.issues=i}get errors(){return this.issues}format(i){const s=i||function(r){return r.message},f={_errors:[]},l=r=>{for(const B of r.issues)if(B.code==="invalid_union")B.unionErrors.map(l);else if(B.code==="invalid_return_type")l(B.returnTypeError);else if(B.code==="invalid_arguments")l(B.argumentsError);else if(B.path.length===0)f._errors.push(s(B));else{let I=f,p=0;for(;ps.message){const s={},f=[];for(const l of this.issues)l.path.length>0?(s[l.path[0]]=s[l.path[0]]||[],s[l.path[0]].push(i(l))):f.push(i(l));return{formErrors:f,fieldErrors:s}}get formErrors(){return this.flatten()}}yn.create=o=>new yn(o);const kg=(o,i)=>{let s;switch(o.code){case _t.invalid_type:o.received===qt.undefined?s="Required":s=`Expected ${o.expected}, received ${o.received}`;break;case _t.invalid_literal:s=`Invalid literal value, expected ${JSON.stringify(o.expected,LA.jsonStringifyReplacer)}`;break;case _t.unrecognized_keys:s=`Unrecognized key(s) in object: ${LA.joinValues(o.keys,", ")}`;break;case _t.invalid_union:s="Invalid input";break;case _t.invalid_union_discriminator:s=`Invalid discriminator value. Expected ${LA.joinValues(o.options)}`;break;case _t.invalid_enum_value:s=`Invalid enum value. Expected ${LA.joinValues(o.options)}, received '${o.received}'`;break;case _t.invalid_arguments:s="Invalid function arguments";break;case _t.invalid_return_type:s="Invalid function return type";break;case _t.invalid_date:s="Invalid date";break;case _t.invalid_string:typeof o.validation=="object"?"includes"in o.validation?(s=`Invalid input: must include "${o.validation.includes}"`,typeof o.validation.position=="number"&&(s=`${s} at one or more positions greater than or equal to ${o.validation.position}`)):"startsWith"in o.validation?s=`Invalid input: must start with "${o.validation.startsWith}"`:"endsWith"in o.validation?s=`Invalid input: must end with "${o.validation.endsWith}"`:LA.assertNever(o.validation):o.validation!=="regex"?s=`Invalid ${o.validation}`:s="Invalid";break;case _t.too_small:o.type==="array"?s=`Array must contain ${o.exact?"exactly":o.inclusive?"at least":"more than"} ${o.minimum} element(s)`:o.type==="string"?s=`String must contain ${o.exact?"exactly":o.inclusive?"at least":"over"} ${o.minimum} character(s)`:o.type==="number"?s=`Number must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${o.minimum}`:o.type==="date"?s=`Date must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(o.minimum))}`:s="Invalid input";break;case _t.too_big:o.type==="array"?s=`Array must contain ${o.exact?"exactly":o.inclusive?"at most":"less than"} ${o.maximum} element(s)`:o.type==="string"?s=`String must contain ${o.exact?"exactly":o.inclusive?"at most":"under"} ${o.maximum} character(s)`:o.type==="number"?s=`Number must be ${o.exact?"exactly":o.inclusive?"less than or equal to":"less than"} ${o.maximum}`:o.type==="bigint"?s=`BigInt must be ${o.exact?"exactly":o.inclusive?"less than or equal to":"less than"} ${o.maximum}`:o.type==="date"?s=`Date must be ${o.exact?"exactly":o.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(o.maximum))}`:s="Invalid input";break;case _t.custom:s="Invalid input";break;case _t.invalid_intersection_types:s="Intersection results could not be merged";break;case _t.not_multiple_of:s=`Number must be a multiple of ${o.multipleOf}`;break;case _t.not_finite:s="Number must be finite";break;default:s=i.defaultError,LA.assertNever(o)}return{message:s}};let pne=kg;function MDe(o){pne=o}function np(){return pne}const op=o=>{const{data:i,path:s,errorMaps:f,issueData:l}=o,r=[...s,...l.path||[]],B={...l,path:r};if(l.message!==void 0)return{...l,path:r,message:l.message};let I="";const p=f.filter(Q=>!!Q).slice().reverse();for(const Q of p)I=Q(B,{data:i,defaultError:I}).message;return{...l,path:r,message:I}},bDe=[];function Gt(o,i){const s=np(),f=op({issueData:i,data:o.data,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,s,s===kg?void 0:kg].filter(l=>!!l)});o.common.issues.push(f)}class vi{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(i,s){const f=[];for(const l of s){if(l.status==="aborted")return Xt;l.status==="dirty"&&i.dirty(),f.push(l.value)}return{status:i.value,value:f}}static async mergeObjectAsync(i,s){const f=[];for(const l of s){const r=await l.key,B=await l.value;f.push({key:r,value:B})}return vi.mergeObjectSync(i,f)}static mergeObjectSync(i,s){const f={};for(const l of s){const{key:r,value:B}=l;if(r.status==="aborted"||B.status==="aborted")return Xt;r.status==="dirty"&&i.dirty(),B.status==="dirty"&&i.dirty(),r.value!=="__proto__"&&(typeof B.value<"u"||l.alwaysSet)&&(f[r.value]=B.value)}return{status:i.value,value:f}}}const Xt=Object.freeze({status:"aborted"}),Ag=o=>({status:"dirty",value:o}),Gi=o=>({status:"valid",value:o}),FR=o=>o.status==="aborted",GR=o=>o.status==="dirty",ul=o=>o.status==="valid",cl=o=>typeof Promise<"u"&&o instanceof Promise;function ap(o,i,s,f){if(typeof i=="function"?o!==i||!f:!i.has(o))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i.get(o)}function Qne(o,i,s,f,l){if(typeof i=="function"?o!==i||!l:!i.has(o))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i.set(o,s),s}var jt;(function(o){o.errToObj=i=>typeof i=="string"?{message:i}:i||{},o.toString=i=>typeof i=="string"?i:i==null?void 0:i.message})(jt||(jt={}));var kc,Nc;class ma{constructor(i,s,f,l){this._cachedPath=[],this.parent=i,this.data=s,this._path=f,this._key=l}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const _j=(o,i)=>{if(ul(i))return{success:!0,data:i.value};if(!o.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const s=new yn(o.common.issues);return this._error=s,this._error}}};function lA(o){if(!o)return{};const{errorMap:i,invalid_type_error:s,required_error:f,description:l}=o;if(i&&(s||f))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return i?{errorMap:i,description:l}:{errorMap:(B,I)=>{var p,Q;const{message:d}=o;return B.code==="invalid_enum_value"?{message:d??I.defaultError}:typeof I.data>"u"?{message:(p=d??f)!==null&&p!==void 0?p:I.defaultError}:B.code!=="invalid_type"?{message:I.defaultError}:{message:(Q=d??s)!==null&&Q!==void 0?Q:I.defaultError}},description:l}}class vA{constructor(i){this.spa=this.safeParseAsync,this._def=i,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(i){return gf(i.data)}_getOrReturnCtx(i,s){return s||{common:i.parent.common,data:i.data,parsedType:gf(i.data),schemaErrorMap:this._def.errorMap,path:i.path,parent:i.parent}}_processInputParams(i){return{status:new vi,ctx:{common:i.parent.common,data:i.data,parsedType:gf(i.data),schemaErrorMap:this._def.errorMap,path:i.path,parent:i.parent}}}_parseSync(i){const s=this._parse(i);if(cl(s))throw new Error("Synchronous parse encountered promise.");return s}_parseAsync(i){const s=this._parse(i);return Promise.resolve(s)}parse(i,s){const f=this.safeParse(i,s);if(f.success)return f.data;throw f.error}safeParse(i,s){var f;const l={common:{issues:[],async:(f=s==null?void 0:s.async)!==null&&f!==void 0?f:!1,contextualErrorMap:s==null?void 0:s.errorMap},path:(s==null?void 0:s.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:i,parsedType:gf(i)},r=this._parseSync({data:i,path:l.path,parent:l});return _j(l,r)}async parseAsync(i,s){const f=await this.safeParseAsync(i,s);if(f.success)return f.data;throw f.error}async safeParseAsync(i,s){const f={common:{issues:[],contextualErrorMap:s==null?void 0:s.errorMap,async:!0},path:(s==null?void 0:s.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:i,parsedType:gf(i)},l=this._parse({data:i,path:f.path,parent:f}),r=await(cl(l)?l:Promise.resolve(l));return _j(f,r)}refine(i,s){const f=l=>typeof s=="string"||typeof s>"u"?{message:s}:typeof s=="function"?s(l):s;return this._refinement((l,r)=>{const B=i(l),I=()=>r.addIssue({code:_t.custom,...f(l)});return typeof Promise<"u"&&B instanceof Promise?B.then(p=>p?!0:(I(),!1)):B?!0:(I(),!1)})}refinement(i,s){return this._refinement((f,l)=>i(f)?!0:(l.addIssue(typeof s=="function"?s(f,l):s),!1))}_refinement(i){return new Jo({schema:this,typeName:$t.ZodEffects,effect:{type:"refinement",refinement:i}})}superRefine(i){return this._refinement(i)}optional(){return ya.create(this,this._def)}nullable(){return yf.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return To.create(this,this._def)}promise(){return _g.create(this,this._def)}or(i){return Bl.create([this,i],this._def)}and(i){return Cl.create(this,i,this._def)}transform(i){return new Jo({...lA(this._def),schema:this,typeName:$t.ZodEffects,effect:{type:"transform",transform:i}})}default(i){const s=typeof i=="function"?i:()=>i;return new vl({...lA(this._def),innerType:this,defaultValue:s,typeName:$t.ZodDefault})}brand(){return new h5({typeName:$t.ZodBranded,type:this,...lA(this._def)})}catch(i){const s=typeof i=="function"?i:()=>i;return new wl({...lA(this._def),innerType:this,catchValue:s,typeName:$t.ZodCatch})}describe(i){const s=this.constructor;return new s({...this._def,description:i})}pipe(i){return dd.create(this,i)}readonly(){return ml.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const DDe=/^c[^\s-]{8,}$/i,SDe=/^[0-9a-z]+$/,xDe=/^[0-9A-HJKMNP-TV-Z]{26}$/,RDe=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,kDe=/^[a-z0-9_-]{21}$/i,NDe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,_De=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,KDe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let SS;const FDe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,GDe=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,LDe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,yne="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",UDe=new RegExp(`^${yne}$`);function vne(o){let i="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return o.precision?i=`${i}\\.\\d{${o.precision}}`:o.precision==null&&(i=`${i}(\\.\\d+)?`),i}function qDe(o){return new RegExp(`^${vne(o)}$`)}function wne(o){let i=`${yne}T${vne(o)}`;const s=[];return s.push(o.local?"Z?":"Z"),o.offset&&s.push("([+-]\\d{2}:?\\d{2})"),i=`${i}(${s.join("|")})`,new RegExp(`^${i}$`)}function HDe(o,i){return!!((i==="v4"||!i)&&FDe.test(o)||(i==="v6"||!i)&&GDe.test(o))}class Ho extends vA{_parse(i){if(this._def.coerce&&(i.data=String(i.data)),this._getType(i)!==qt.string){const r=this._getOrReturnCtx(i);return Gt(r,{code:_t.invalid_type,expected:qt.string,received:r.parsedType}),Xt}const f=new vi;let l;for(const r of this._def.checks)if(r.kind==="min")i.data.lengthr.value&&(l=this._getOrReturnCtx(i,l),Gt(l,{code:_t.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),f.dirty());else if(r.kind==="length"){const B=i.data.length>r.value,I=i.data.lengthi.test(l),{validation:s,code:_t.invalid_string,...jt.errToObj(f)})}_addCheck(i){return new Ho({...this._def,checks:[...this._def.checks,i]})}email(i){return this._addCheck({kind:"email",...jt.errToObj(i)})}url(i){return this._addCheck({kind:"url",...jt.errToObj(i)})}emoji(i){return this._addCheck({kind:"emoji",...jt.errToObj(i)})}uuid(i){return this._addCheck({kind:"uuid",...jt.errToObj(i)})}nanoid(i){return this._addCheck({kind:"nanoid",...jt.errToObj(i)})}cuid(i){return this._addCheck({kind:"cuid",...jt.errToObj(i)})}cuid2(i){return this._addCheck({kind:"cuid2",...jt.errToObj(i)})}ulid(i){return this._addCheck({kind:"ulid",...jt.errToObj(i)})}base64(i){return this._addCheck({kind:"base64",...jt.errToObj(i)})}ip(i){return this._addCheck({kind:"ip",...jt.errToObj(i)})}datetime(i){var s,f;return typeof i=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:i}):this._addCheck({kind:"datetime",precision:typeof(i==null?void 0:i.precision)>"u"?null:i==null?void 0:i.precision,offset:(s=i==null?void 0:i.offset)!==null&&s!==void 0?s:!1,local:(f=i==null?void 0:i.local)!==null&&f!==void 0?f:!1,...jt.errToObj(i==null?void 0:i.message)})}date(i){return this._addCheck({kind:"date",message:i})}time(i){return typeof i=="string"?this._addCheck({kind:"time",precision:null,message:i}):this._addCheck({kind:"time",precision:typeof(i==null?void 0:i.precision)>"u"?null:i==null?void 0:i.precision,...jt.errToObj(i==null?void 0:i.message)})}duration(i){return this._addCheck({kind:"duration",...jt.errToObj(i)})}regex(i,s){return this._addCheck({kind:"regex",regex:i,...jt.errToObj(s)})}includes(i,s){return this._addCheck({kind:"includes",value:i,position:s==null?void 0:s.position,...jt.errToObj(s==null?void 0:s.message)})}startsWith(i,s){return this._addCheck({kind:"startsWith",value:i,...jt.errToObj(s)})}endsWith(i,s){return this._addCheck({kind:"endsWith",value:i,...jt.errToObj(s)})}min(i,s){return this._addCheck({kind:"min",value:i,...jt.errToObj(s)})}max(i,s){return this._addCheck({kind:"max",value:i,...jt.errToObj(s)})}length(i,s){return this._addCheck({kind:"length",value:i,...jt.errToObj(s)})}nonempty(i){return this.min(1,jt.errToObj(i))}trim(){return new Ho({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Ho({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Ho({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(i=>i.kind==="datetime")}get isDate(){return!!this._def.checks.find(i=>i.kind==="date")}get isTime(){return!!this._def.checks.find(i=>i.kind==="time")}get isDuration(){return!!this._def.checks.find(i=>i.kind==="duration")}get isEmail(){return!!this._def.checks.find(i=>i.kind==="email")}get isURL(){return!!this._def.checks.find(i=>i.kind==="url")}get isEmoji(){return!!this._def.checks.find(i=>i.kind==="emoji")}get isUUID(){return!!this._def.checks.find(i=>i.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(i=>i.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(i=>i.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(i=>i.kind==="cuid2")}get isULID(){return!!this._def.checks.find(i=>i.kind==="ulid")}get isIP(){return!!this._def.checks.find(i=>i.kind==="ip")}get isBase64(){return!!this._def.checks.find(i=>i.kind==="base64")}get minLength(){let i=null;for(const s of this._def.checks)s.kind==="min"&&(i===null||s.value>i)&&(i=s.value);return i}get maxLength(){let i=null;for(const s of this._def.checks)s.kind==="max"&&(i===null||s.value{var i;return new Ho({checks:[],typeName:$t.ZodString,coerce:(i=o==null?void 0:o.coerce)!==null&&i!==void 0?i:!1,...lA(o)})};function TDe(o,i){const s=(o.toString().split(".")[1]||"").length,f=(i.toString().split(".")[1]||"").length,l=s>f?s:f,r=parseInt(o.toFixed(l).replace(".","")),B=parseInt(i.toFixed(l).replace(".",""));return r%B/Math.pow(10,l)}class Ef extends vA{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(i){if(this._def.coerce&&(i.data=Number(i.data)),this._getType(i)!==qt.number){const r=this._getOrReturnCtx(i);return Gt(r,{code:_t.invalid_type,expected:qt.number,received:r.parsedType}),Xt}let f;const l=new vi;for(const r of this._def.checks)r.kind==="int"?LA.isInteger(i.data)||(f=this._getOrReturnCtx(i,f),Gt(f,{code:_t.invalid_type,expected:"integer",received:"float",message:r.message}),l.dirty()):r.kind==="min"?(r.inclusive?i.datar.value:i.data>=r.value)&&(f=this._getOrReturnCtx(i,f),Gt(f,{code:_t.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),l.dirty()):r.kind==="multipleOf"?TDe(i.data,r.value)!==0&&(f=this._getOrReturnCtx(i,f),Gt(f,{code:_t.not_multiple_of,multipleOf:r.value,message:r.message}),l.dirty()):r.kind==="finite"?Number.isFinite(i.data)||(f=this._getOrReturnCtx(i,f),Gt(f,{code:_t.not_finite,message:r.message}),l.dirty()):LA.assertNever(r);return{status:l.value,value:i.data}}gte(i,s){return this.setLimit("min",i,!0,jt.toString(s))}gt(i,s){return this.setLimit("min",i,!1,jt.toString(s))}lte(i,s){return this.setLimit("max",i,!0,jt.toString(s))}lt(i,s){return this.setLimit("max",i,!1,jt.toString(s))}setLimit(i,s,f,l){return new Ef({...this._def,checks:[...this._def.checks,{kind:i,value:s,inclusive:f,message:jt.toString(l)}]})}_addCheck(i){return new Ef({...this._def,checks:[...this._def.checks,i]})}int(i){return this._addCheck({kind:"int",message:jt.toString(i)})}positive(i){return this._addCheck({kind:"min",value:0,inclusive:!1,message:jt.toString(i)})}negative(i){return this._addCheck({kind:"max",value:0,inclusive:!1,message:jt.toString(i)})}nonpositive(i){return this._addCheck({kind:"max",value:0,inclusive:!0,message:jt.toString(i)})}nonnegative(i){return this._addCheck({kind:"min",value:0,inclusive:!0,message:jt.toString(i)})}multipleOf(i,s){return this._addCheck({kind:"multipleOf",value:i,message:jt.toString(s)})}finite(i){return this._addCheck({kind:"finite",message:jt.toString(i)})}safe(i){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:jt.toString(i)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:jt.toString(i)})}get minValue(){let i=null;for(const s of this._def.checks)s.kind==="min"&&(i===null||s.value>i)&&(i=s.value);return i}get maxValue(){let i=null;for(const s of this._def.checks)s.kind==="max"&&(i===null||s.valuei.kind==="int"||i.kind==="multipleOf"&&LA.isInteger(i.value))}get isFinite(){let i=null,s=null;for(const f of this._def.checks){if(f.kind==="finite"||f.kind==="int"||f.kind==="multipleOf")return!0;f.kind==="min"?(s===null||f.value>s)&&(s=f.value):f.kind==="max"&&(i===null||f.valuenew Ef({checks:[],typeName:$t.ZodNumber,coerce:(o==null?void 0:o.coerce)||!1,...lA(o)});class pf extends vA{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(i){if(this._def.coerce&&(i.data=BigInt(i.data)),this._getType(i)!==qt.bigint){const r=this._getOrReturnCtx(i);return Gt(r,{code:_t.invalid_type,expected:qt.bigint,received:r.parsedType}),Xt}let f;const l=new vi;for(const r of this._def.checks)r.kind==="min"?(r.inclusive?i.datar.value:i.data>=r.value)&&(f=this._getOrReturnCtx(i,f),Gt(f,{code:_t.too_big,type:"bigint",maximum:r.value,inclusive:r.inclusive,message:r.message}),l.dirty()):r.kind==="multipleOf"?i.data%r.value!==BigInt(0)&&(f=this._getOrReturnCtx(i,f),Gt(f,{code:_t.not_multiple_of,multipleOf:r.value,message:r.message}),l.dirty()):LA.assertNever(r);return{status:l.value,value:i.data}}gte(i,s){return this.setLimit("min",i,!0,jt.toString(s))}gt(i,s){return this.setLimit("min",i,!1,jt.toString(s))}lte(i,s){return this.setLimit("max",i,!0,jt.toString(s))}lt(i,s){return this.setLimit("max",i,!1,jt.toString(s))}setLimit(i,s,f,l){return new pf({...this._def,checks:[...this._def.checks,{kind:i,value:s,inclusive:f,message:jt.toString(l)}]})}_addCheck(i){return new pf({...this._def,checks:[...this._def.checks,i]})}positive(i){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:jt.toString(i)})}negative(i){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:jt.toString(i)})}nonpositive(i){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:jt.toString(i)})}nonnegative(i){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:jt.toString(i)})}multipleOf(i,s){return this._addCheck({kind:"multipleOf",value:i,message:jt.toString(s)})}get minValue(){let i=null;for(const s of this._def.checks)s.kind==="min"&&(i===null||s.value>i)&&(i=s.value);return i}get maxValue(){let i=null;for(const s of this._def.checks)s.kind==="max"&&(i===null||s.value{var i;return new pf({checks:[],typeName:$t.ZodBigInt,coerce:(i=o==null?void 0:o.coerce)!==null&&i!==void 0?i:!1,...lA(o)})};class ll extends vA{_parse(i){if(this._def.coerce&&(i.data=!!i.data),this._getType(i)!==qt.boolean){const f=this._getOrReturnCtx(i);return Gt(f,{code:_t.invalid_type,expected:qt.boolean,received:f.parsedType}),Xt}return Gi(i.data)}}ll.create=o=>new ll({typeName:$t.ZodBoolean,coerce:(o==null?void 0:o.coerce)||!1,...lA(o)});class jh extends vA{_parse(i){if(this._def.coerce&&(i.data=new Date(i.data)),this._getType(i)!==qt.date){const r=this._getOrReturnCtx(i);return Gt(r,{code:_t.invalid_type,expected:qt.date,received:r.parsedType}),Xt}if(isNaN(i.data.getTime())){const r=this._getOrReturnCtx(i);return Gt(r,{code:_t.invalid_date}),Xt}const f=new vi;let l;for(const r of this._def.checks)r.kind==="min"?i.data.getTime()r.value&&(l=this._getOrReturnCtx(i,l),Gt(l,{code:_t.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),f.dirty()):LA.assertNever(r);return{status:f.value,value:new Date(i.data.getTime())}}_addCheck(i){return new jh({...this._def,checks:[...this._def.checks,i]})}min(i,s){return this._addCheck({kind:"min",value:i.getTime(),message:jt.toString(s)})}max(i,s){return this._addCheck({kind:"max",value:i.getTime(),message:jt.toString(s)})}get minDate(){let i=null;for(const s of this._def.checks)s.kind==="min"&&(i===null||s.value>i)&&(i=s.value);return i!=null?new Date(i):null}get maxDate(){let i=null;for(const s of this._def.checks)s.kind==="max"&&(i===null||s.valuenew jh({checks:[],coerce:(o==null?void 0:o.coerce)||!1,typeName:$t.ZodDate,...lA(o)});class sp extends vA{_parse(i){if(this._getType(i)!==qt.symbol){const f=this._getOrReturnCtx(i);return Gt(f,{code:_t.invalid_type,expected:qt.symbol,received:f.parsedType}),Xt}return Gi(i.data)}}sp.create=o=>new sp({typeName:$t.ZodSymbol,...lA(o)});class dl extends vA{_parse(i){if(this._getType(i)!==qt.undefined){const f=this._getOrReturnCtx(i);return Gt(f,{code:_t.invalid_type,expected:qt.undefined,received:f.parsedType}),Xt}return Gi(i.data)}}dl.create=o=>new dl({typeName:$t.ZodUndefined,...lA(o)});class Il extends vA{_parse(i){if(this._getType(i)!==qt.null){const f=this._getOrReturnCtx(i);return Gt(f,{code:_t.invalid_type,expected:qt.null,received:f.parsedType}),Xt}return Gi(i.data)}}Il.create=o=>new Il({typeName:$t.ZodNull,...lA(o)});class Ng extends vA{constructor(){super(...arguments),this._any=!0}_parse(i){return Gi(i.data)}}Ng.create=o=>new Ng({typeName:$t.ZodAny,...lA(o)});class Kh extends vA{constructor(){super(...arguments),this._unknown=!0}_parse(i){return Gi(i.data)}}Kh.create=o=>new Kh({typeName:$t.ZodUnknown,...lA(o)});class cs extends vA{_parse(i){const s=this._getOrReturnCtx(i);return Gt(s,{code:_t.invalid_type,expected:qt.never,received:s.parsedType}),Xt}}cs.create=o=>new cs({typeName:$t.ZodNever,...lA(o)});class fp extends vA{_parse(i){if(this._getType(i)!==qt.undefined){const f=this._getOrReturnCtx(i);return Gt(f,{code:_t.invalid_type,expected:qt.void,received:f.parsedType}),Xt}return Gi(i.data)}}fp.create=o=>new fp({typeName:$t.ZodVoid,...lA(o)});class To extends vA{_parse(i){const{ctx:s,status:f}=this._processInputParams(i),l=this._def;if(s.parsedType!==qt.array)return Gt(s,{code:_t.invalid_type,expected:qt.array,received:s.parsedType}),Xt;if(l.exactLength!==null){const B=s.data.length>l.exactLength.value,I=s.data.lengthl.maxLength.value&&(Gt(s,{code:_t.too_big,maximum:l.maxLength.value,type:"array",inclusive:!0,exact:!1,message:l.maxLength.message}),f.dirty()),s.common.async)return Promise.all([...s.data].map((B,I)=>l.type._parseAsync(new ma(s,B,s.path,I)))).then(B=>vi.mergeArray(f,B));const r=[...s.data].map((B,I)=>l.type._parseSync(new ma(s,B,s.path,I)));return vi.mergeArray(f,r)}get element(){return this._def.type}min(i,s){return new To({...this._def,minLength:{value:i,message:jt.toString(s)}})}max(i,s){return new To({...this._def,maxLength:{value:i,message:jt.toString(s)}})}length(i,s){return new To({...this._def,exactLength:{value:i,message:jt.toString(s)}})}nonempty(i){return this.min(1,i)}}To.create=(o,i)=>new To({type:o,minLength:null,maxLength:null,exactLength:null,typeName:$t.ZodArray,...lA(i)});function j0(o){if(o instanceof Er){const i={};for(const s in o.shape){const f=o.shape[s];i[s]=ya.create(j0(f))}return new Er({...o._def,shape:()=>i})}else return o instanceof To?new To({...o._def,type:j0(o.element)}):o instanceof ya?ya.create(j0(o.unwrap())):o instanceof yf?yf.create(j0(o.unwrap())):o instanceof Ma?Ma.create(o.items.map(i=>j0(i))):o}class Er extends vA{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const i=this._def.shape(),s=LA.objectKeys(i);return this._cached={shape:i,keys:s}}_parse(i){if(this._getType(i)!==qt.object){const Q=this._getOrReturnCtx(i);return Gt(Q,{code:_t.invalid_type,expected:qt.object,received:Q.parsedType}),Xt}const{status:f,ctx:l}=this._processInputParams(i),{shape:r,keys:B}=this._getCached(),I=[];if(!(this._def.catchall instanceof cs&&this._def.unknownKeys==="strip"))for(const Q in l.data)B.includes(Q)||I.push(Q);const p=[];for(const Q of B){const d=r[Q],y=l.data[Q];p.push({key:{status:"valid",value:Q},value:d._parse(new ma(l,y,l.path,Q)),alwaysSet:Q in l.data})}if(this._def.catchall instanceof cs){const Q=this._def.unknownKeys;if(Q==="passthrough")for(const d of I)p.push({key:{status:"valid",value:d},value:{status:"valid",value:l.data[d]}});else if(Q==="strict")I.length>0&&(Gt(l,{code:_t.unrecognized_keys,keys:I}),f.dirty());else if(Q!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const Q=this._def.catchall;for(const d of I){const y=l.data[d];p.push({key:{status:"valid",value:d},value:Q._parse(new ma(l,y,l.path,d)),alwaysSet:d in l.data})}}return l.common.async?Promise.resolve().then(async()=>{const Q=[];for(const d of p){const y=await d.key,v=await d.value;Q.push({key:y,value:v,alwaysSet:d.alwaysSet})}return Q}).then(Q=>vi.mergeObjectSync(f,Q)):vi.mergeObjectSync(f,p)}get shape(){return this._def.shape()}strict(i){return jt.errToObj,new Er({...this._def,unknownKeys:"strict",...i!==void 0?{errorMap:(s,f)=>{var l,r,B,I;const p=(B=(r=(l=this._def).errorMap)===null||r===void 0?void 0:r.call(l,s,f).message)!==null&&B!==void 0?B:f.defaultError;return s.code==="unrecognized_keys"?{message:(I=jt.errToObj(i).message)!==null&&I!==void 0?I:p}:{message:p}}}:{}})}strip(){return new Er({...this._def,unknownKeys:"strip"})}passthrough(){return new Er({...this._def,unknownKeys:"passthrough"})}extend(i){return new Er({...this._def,shape:()=>({...this._def.shape(),...i})})}merge(i){return new Er({unknownKeys:i._def.unknownKeys,catchall:i._def.catchall,shape:()=>({...this._def.shape(),...i._def.shape()}),typeName:$t.ZodObject})}setKey(i,s){return this.augment({[i]:s})}catchall(i){return new Er({...this._def,catchall:i})}pick(i){const s={};return LA.objectKeys(i).forEach(f=>{i[f]&&this.shape[f]&&(s[f]=this.shape[f])}),new Er({...this._def,shape:()=>s})}omit(i){const s={};return LA.objectKeys(this.shape).forEach(f=>{i[f]||(s[f]=this.shape[f])}),new Er({...this._def,shape:()=>s})}deepPartial(){return j0(this)}partial(i){const s={};return LA.objectKeys(this.shape).forEach(f=>{const l=this.shape[f];i&&!i[f]?s[f]=l:s[f]=l.optional()}),new Er({...this._def,shape:()=>s})}required(i){const s={};return LA.objectKeys(this.shape).forEach(f=>{if(i&&!i[f])s[f]=this.shape[f];else{let r=this.shape[f];for(;r instanceof ya;)r=r._def.innerType;s[f]=r}}),new Er({...this._def,shape:()=>s})}keyof(){return mne(LA.objectKeys(this.shape))}}Er.create=(o,i)=>new Er({shape:()=>o,unknownKeys:"strip",catchall:cs.create(),typeName:$t.ZodObject,...lA(i)});Er.strictCreate=(o,i)=>new Er({shape:()=>o,unknownKeys:"strict",catchall:cs.create(),typeName:$t.ZodObject,...lA(i)});Er.lazycreate=(o,i)=>new Er({shape:o,unknownKeys:"strip",catchall:cs.create(),typeName:$t.ZodObject,...lA(i)});class Bl extends vA{_parse(i){const{ctx:s}=this._processInputParams(i),f=this._def.options;function l(r){for(const I of r)if(I.result.status==="valid")return I.result;for(const I of r)if(I.result.status==="dirty")return s.common.issues.push(...I.ctx.common.issues),I.result;const B=r.map(I=>new yn(I.ctx.common.issues));return Gt(s,{code:_t.invalid_union,unionErrors:B}),Xt}if(s.common.async)return Promise.all(f.map(async r=>{const B={...s,common:{...s.common,issues:[]},parent:null};return{result:await r._parseAsync({data:s.data,path:s.path,parent:B}),ctx:B}})).then(l);{let r;const B=[];for(const p of f){const Q={...s,common:{...s.common,issues:[]},parent:null},d=p._parseSync({data:s.data,path:s.path,parent:Q});if(d.status==="valid")return d;d.status==="dirty"&&!r&&(r={result:d,ctx:Q}),Q.common.issues.length&&B.push(Q.common.issues)}if(r)return s.common.issues.push(...r.ctx.common.issues),r.result;const I=B.map(p=>new yn(p));return Gt(s,{code:_t.invalid_union,unionErrors:I}),Xt}}get options(){return this._def.options}}Bl.create=(o,i)=>new Bl({options:o,typeName:$t.ZodUnion,...lA(i)});const $a=o=>o instanceof pl?$a(o.schema):o instanceof Jo?$a(o.innerType()):o instanceof Ql?[o.value]:o instanceof Qf?o.options:o instanceof yl?LA.objectValues(o.enum):o instanceof vl?$a(o._def.innerType):o instanceof dl?[void 0]:o instanceof Il?[null]:o instanceof ya?[void 0,...$a(o.unwrap())]:o instanceof yf?[null,...$a(o.unwrap())]:o instanceof h5||o instanceof ml?$a(o.unwrap()):o instanceof wl?$a(o._def.innerType):[];class SQ extends vA{_parse(i){const{ctx:s}=this._processInputParams(i);if(s.parsedType!==qt.object)return Gt(s,{code:_t.invalid_type,expected:qt.object,received:s.parsedType}),Xt;const f=this.discriminator,l=s.data[f],r=this.optionsMap.get(l);return r?s.common.async?r._parseAsync({data:s.data,path:s.path,parent:s}):r._parseSync({data:s.data,path:s.path,parent:s}):(Gt(s,{code:_t.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[f]}),Xt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(i,s,f){const l=new Map;for(const r of s){const B=$a(r.shape[i]);if(!B.length)throw new Error(`A discriminator value for key \`${i}\` could not be extracted from all schema options`);for(const I of B){if(l.has(I))throw new Error(`Discriminator property ${String(i)} has duplicate value ${String(I)}`);l.set(I,r)}}return new SQ({typeName:$t.ZodDiscriminatedUnion,discriminator:i,options:s,optionsMap:l,...lA(f)})}}function LR(o,i){const s=gf(o),f=gf(i);if(o===i)return{valid:!0,data:o};if(s===qt.object&&f===qt.object){const l=LA.objectKeys(i),r=LA.objectKeys(o).filter(I=>l.indexOf(I)!==-1),B={...o,...i};for(const I of r){const p=LR(o[I],i[I]);if(!p.valid)return{valid:!1};B[I]=p.data}return{valid:!0,data:B}}else if(s===qt.array&&f===qt.array){if(o.length!==i.length)return{valid:!1};const l=[];for(let r=0;r{if(FR(r)||FR(B))return Xt;const I=LR(r.value,B.value);return I.valid?((GR(r)||GR(B))&&s.dirty(),{status:s.value,value:I.data}):(Gt(f,{code:_t.invalid_intersection_types}),Xt)};return f.common.async?Promise.all([this._def.left._parseAsync({data:f.data,path:f.path,parent:f}),this._def.right._parseAsync({data:f.data,path:f.path,parent:f})]).then(([r,B])=>l(r,B)):l(this._def.left._parseSync({data:f.data,path:f.path,parent:f}),this._def.right._parseSync({data:f.data,path:f.path,parent:f}))}}Cl.create=(o,i,s)=>new Cl({left:o,right:i,typeName:$t.ZodIntersection,...lA(s)});class Ma extends vA{_parse(i){const{status:s,ctx:f}=this._processInputParams(i);if(f.parsedType!==qt.array)return Gt(f,{code:_t.invalid_type,expected:qt.array,received:f.parsedType}),Xt;if(f.data.lengththis._def.items.length&&(Gt(f,{code:_t.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),s.dirty());const r=[...f.data].map((B,I)=>{const p=this._def.items[I]||this._def.rest;return p?p._parse(new ma(f,B,f.path,I)):null}).filter(B=>!!B);return f.common.async?Promise.all(r).then(B=>vi.mergeArray(s,B)):vi.mergeArray(s,r)}get items(){return this._def.items}rest(i){return new Ma({...this._def,rest:i})}}Ma.create=(o,i)=>{if(!Array.isArray(o))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ma({items:o,typeName:$t.ZodTuple,rest:null,...lA(i)})};class El extends vA{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(i){const{status:s,ctx:f}=this._processInputParams(i);if(f.parsedType!==qt.object)return Gt(f,{code:_t.invalid_type,expected:qt.object,received:f.parsedType}),Xt;const l=[],r=this._def.keyType,B=this._def.valueType;for(const I in f.data)l.push({key:r._parse(new ma(f,I,f.path,I)),value:B._parse(new ma(f,f.data[I],f.path,I)),alwaysSet:I in f.data});return f.common.async?vi.mergeObjectAsync(s,l):vi.mergeObjectSync(s,l)}get element(){return this._def.valueType}static create(i,s,f){return s instanceof vA?new El({keyType:i,valueType:s,typeName:$t.ZodRecord,...lA(f)}):new El({keyType:Ho.create(),valueType:i,typeName:$t.ZodRecord,...lA(s)})}}class hp extends vA{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(i){const{status:s,ctx:f}=this._processInputParams(i);if(f.parsedType!==qt.map)return Gt(f,{code:_t.invalid_type,expected:qt.map,received:f.parsedType}),Xt;const l=this._def.keyType,r=this._def.valueType,B=[...f.data.entries()].map(([I,p],Q)=>({key:l._parse(new ma(f,I,f.path,[Q,"key"])),value:r._parse(new ma(f,p,f.path,[Q,"value"]))}));if(f.common.async){const I=new Map;return Promise.resolve().then(async()=>{for(const p of B){const Q=await p.key,d=await p.value;if(Q.status==="aborted"||d.status==="aborted")return Xt;(Q.status==="dirty"||d.status==="dirty")&&s.dirty(),I.set(Q.value,d.value)}return{status:s.value,value:I}})}else{const I=new Map;for(const p of B){const Q=p.key,d=p.value;if(Q.status==="aborted"||d.status==="aborted")return Xt;(Q.status==="dirty"||d.status==="dirty")&&s.dirty(),I.set(Q.value,d.value)}return{status:s.value,value:I}}}}hp.create=(o,i,s)=>new hp({valueType:i,keyType:o,typeName:$t.ZodMap,...lA(s)});class Wh extends vA{_parse(i){const{status:s,ctx:f}=this._processInputParams(i);if(f.parsedType!==qt.set)return Gt(f,{code:_t.invalid_type,expected:qt.set,received:f.parsedType}),Xt;const l=this._def;l.minSize!==null&&f.data.sizel.maxSize.value&&(Gt(f,{code:_t.too_big,maximum:l.maxSize.value,type:"set",inclusive:!0,exact:!1,message:l.maxSize.message}),s.dirty());const r=this._def.valueType;function B(p){const Q=new Set;for(const d of p){if(d.status==="aborted")return Xt;d.status==="dirty"&&s.dirty(),Q.add(d.value)}return{status:s.value,value:Q}}const I=[...f.data.values()].map((p,Q)=>r._parse(new ma(f,p,f.path,Q)));return f.common.async?Promise.all(I).then(p=>B(p)):B(I)}min(i,s){return new Wh({...this._def,minSize:{value:i,message:jt.toString(s)}})}max(i,s){return new Wh({...this._def,maxSize:{value:i,message:jt.toString(s)}})}size(i,s){return this.min(i,s).max(i,s)}nonempty(i){return this.min(1,i)}}Wh.create=(o,i)=>new Wh({valueType:o,minSize:null,maxSize:null,typeName:$t.ZodSet,...lA(i)});class hg extends vA{constructor(){super(...arguments),this.validate=this.implement}_parse(i){const{ctx:s}=this._processInputParams(i);if(s.parsedType!==qt.function)return Gt(s,{code:_t.invalid_type,expected:qt.function,received:s.parsedType}),Xt;function f(I,p){return op({data:I,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,np(),kg].filter(Q=>!!Q),issueData:{code:_t.invalid_arguments,argumentsError:p}})}function l(I,p){return op({data:I,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,np(),kg].filter(Q=>!!Q),issueData:{code:_t.invalid_return_type,returnTypeError:p}})}const r={errorMap:s.common.contextualErrorMap},B=s.data;if(this._def.returns instanceof _g){const I=this;return Gi(async function(...p){const Q=new yn([]),d=await I._def.args.parseAsync(p,r).catch(w=>{throw Q.addIssue(f(p,w)),Q}),y=await Reflect.apply(B,this,d);return await I._def.returns._def.type.parseAsync(y,r).catch(w=>{throw Q.addIssue(l(y,w)),Q})})}else{const I=this;return Gi(function(...p){const Q=I._def.args.safeParse(p,r);if(!Q.success)throw new yn([f(p,Q.error)]);const d=Reflect.apply(B,this,Q.data),y=I._def.returns.safeParse(d,r);if(!y.success)throw new yn([l(d,y.error)]);return y.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...i){return new hg({...this._def,args:Ma.create(i).rest(Kh.create())})}returns(i){return new hg({...this._def,returns:i})}implement(i){return this.parse(i)}strictImplement(i){return this.parse(i)}static create(i,s,f){return new hg({args:i||Ma.create([]).rest(Kh.create()),returns:s||Kh.create(),typeName:$t.ZodFunction,...lA(f)})}}class pl extends vA{get schema(){return this._def.getter()}_parse(i){const{ctx:s}=this._processInputParams(i);return this._def.getter()._parse({data:s.data,path:s.path,parent:s})}}pl.create=(o,i)=>new pl({getter:o,typeName:$t.ZodLazy,...lA(i)});class Ql extends vA{_parse(i){if(i.data!==this._def.value){const s=this._getOrReturnCtx(i);return Gt(s,{received:s.data,code:_t.invalid_literal,expected:this._def.value}),Xt}return{status:"valid",value:i.data}}get value(){return this._def.value}}Ql.create=(o,i)=>new Ql({value:o,typeName:$t.ZodLiteral,...lA(i)});function mne(o,i){return new Qf({values:o,typeName:$t.ZodEnum,...lA(i)})}class Qf extends vA{constructor(){super(...arguments),kc.set(this,void 0)}_parse(i){if(typeof i.data!="string"){const s=this._getOrReturnCtx(i),f=this._def.values;return Gt(s,{expected:LA.joinValues(f),received:s.parsedType,code:_t.invalid_type}),Xt}if(ap(this,kc)||Qne(this,kc,new Set(this._def.values)),!ap(this,kc).has(i.data)){const s=this._getOrReturnCtx(i),f=this._def.values;return Gt(s,{received:s.data,code:_t.invalid_enum_value,options:f}),Xt}return Gi(i.data)}get options(){return this._def.values}get enum(){const i={};for(const s of this._def.values)i[s]=s;return i}get Values(){const i={};for(const s of this._def.values)i[s]=s;return i}get Enum(){const i={};for(const s of this._def.values)i[s]=s;return i}extract(i,s=this._def){return Qf.create(i,{...this._def,...s})}exclude(i,s=this._def){return Qf.create(this.options.filter(f=>!i.includes(f)),{...this._def,...s})}}kc=new WeakMap;Qf.create=mne;class yl extends vA{constructor(){super(...arguments),Nc.set(this,void 0)}_parse(i){const s=LA.getValidEnumValues(this._def.values),f=this._getOrReturnCtx(i);if(f.parsedType!==qt.string&&f.parsedType!==qt.number){const l=LA.objectValues(s);return Gt(f,{expected:LA.joinValues(l),received:f.parsedType,code:_t.invalid_type}),Xt}if(ap(this,Nc)||Qne(this,Nc,new Set(LA.getValidEnumValues(this._def.values))),!ap(this,Nc).has(i.data)){const l=LA.objectValues(s);return Gt(f,{received:f.data,code:_t.invalid_enum_value,options:l}),Xt}return Gi(i.data)}get enum(){return this._def.values}}Nc=new WeakMap;yl.create=(o,i)=>new yl({values:o,typeName:$t.ZodNativeEnum,...lA(i)});class _g extends vA{unwrap(){return this._def.type}_parse(i){const{ctx:s}=this._processInputParams(i);if(s.parsedType!==qt.promise&&s.common.async===!1)return Gt(s,{code:_t.invalid_type,expected:qt.promise,received:s.parsedType}),Xt;const f=s.parsedType===qt.promise?s.data:Promise.resolve(s.data);return Gi(f.then(l=>this._def.type.parseAsync(l,{path:s.path,errorMap:s.common.contextualErrorMap})))}}_g.create=(o,i)=>new _g({type:o,typeName:$t.ZodPromise,...lA(i)});class Jo extends vA{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$t.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(i){const{status:s,ctx:f}=this._processInputParams(i),l=this._def.effect||null,r={addIssue:B=>{Gt(f,B),B.fatal?s.abort():s.dirty()},get path(){return f.path}};if(r.addIssue=r.addIssue.bind(r),l.type==="preprocess"){const B=l.transform(f.data,r);if(f.common.async)return Promise.resolve(B).then(async I=>{if(s.value==="aborted")return Xt;const p=await this._def.schema._parseAsync({data:I,path:f.path,parent:f});return p.status==="aborted"?Xt:p.status==="dirty"||s.value==="dirty"?Ag(p.value):p});{if(s.value==="aborted")return Xt;const I=this._def.schema._parseSync({data:B,path:f.path,parent:f});return I.status==="aborted"?Xt:I.status==="dirty"||s.value==="dirty"?Ag(I.value):I}}if(l.type==="refinement"){const B=I=>{const p=l.refinement(I,r);if(f.common.async)return Promise.resolve(p);if(p instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return I};if(f.common.async===!1){const I=this._def.schema._parseSync({data:f.data,path:f.path,parent:f});return I.status==="aborted"?Xt:(I.status==="dirty"&&s.dirty(),B(I.value),{status:s.value,value:I.value})}else return this._def.schema._parseAsync({data:f.data,path:f.path,parent:f}).then(I=>I.status==="aborted"?Xt:(I.status==="dirty"&&s.dirty(),B(I.value).then(()=>({status:s.value,value:I.value}))))}if(l.type==="transform")if(f.common.async===!1){const B=this._def.schema._parseSync({data:f.data,path:f.path,parent:f});if(!ul(B))return B;const I=l.transform(B.value,r);if(I instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:s.value,value:I}}else return this._def.schema._parseAsync({data:f.data,path:f.path,parent:f}).then(B=>ul(B)?Promise.resolve(l.transform(B.value,r)).then(I=>({status:s.value,value:I})):B);LA.assertNever(l)}}Jo.create=(o,i,s)=>new Jo({schema:o,typeName:$t.ZodEffects,effect:i,...lA(s)});Jo.createWithPreprocess=(o,i,s)=>new Jo({schema:i,effect:{type:"preprocess",transform:o},typeName:$t.ZodEffects,...lA(s)});class ya extends vA{_parse(i){return this._getType(i)===qt.undefined?Gi(void 0):this._def.innerType._parse(i)}unwrap(){return this._def.innerType}}ya.create=(o,i)=>new ya({innerType:o,typeName:$t.ZodOptional,...lA(i)});class yf extends vA{_parse(i){return this._getType(i)===qt.null?Gi(null):this._def.innerType._parse(i)}unwrap(){return this._def.innerType}}yf.create=(o,i)=>new yf({innerType:o,typeName:$t.ZodNullable,...lA(i)});class vl extends vA{_parse(i){const{ctx:s}=this._processInputParams(i);let f=s.data;return s.parsedType===qt.undefined&&(f=this._def.defaultValue()),this._def.innerType._parse({data:f,path:s.path,parent:s})}removeDefault(){return this._def.innerType}}vl.create=(o,i)=>new vl({innerType:o,typeName:$t.ZodDefault,defaultValue:typeof i.default=="function"?i.default:()=>i.default,...lA(i)});class wl extends vA{_parse(i){const{ctx:s}=this._processInputParams(i),f={...s,common:{...s.common,issues:[]}},l=this._def.innerType._parse({data:f.data,path:f.path,parent:{...f}});return cl(l)?l.then(r=>({status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new yn(f.common.issues)},input:f.data})})):{status:"valid",value:l.status==="valid"?l.value:this._def.catchValue({get error(){return new yn(f.common.issues)},input:f.data})}}removeCatch(){return this._def.innerType}}wl.create=(o,i)=>new wl({innerType:o,typeName:$t.ZodCatch,catchValue:typeof i.catch=="function"?i.catch:()=>i.catch,...lA(i)});class gp extends vA{_parse(i){if(this._getType(i)!==qt.nan){const f=this._getOrReturnCtx(i);return Gt(f,{code:_t.invalid_type,expected:qt.nan,received:f.parsedType}),Xt}return{status:"valid",value:i.data}}}gp.create=o=>new gp({typeName:$t.ZodNaN,...lA(o)});const YDe=Symbol("zod_brand");class h5 extends vA{_parse(i){const{ctx:s}=this._processInputParams(i),f=s.data;return this._def.type._parse({data:f,path:s.path,parent:s})}unwrap(){return this._def.type}}class dd extends vA{_parse(i){const{status:s,ctx:f}=this._processInputParams(i);if(f.common.async)return(async()=>{const r=await this._def.in._parseAsync({data:f.data,path:f.path,parent:f});return r.status==="aborted"?Xt:r.status==="dirty"?(s.dirty(),Ag(r.value)):this._def.out._parseAsync({data:r.value,path:f.path,parent:f})})();{const l=this._def.in._parseSync({data:f.data,path:f.path,parent:f});return l.status==="aborted"?Xt:l.status==="dirty"?(s.dirty(),{status:"dirty",value:l.value}):this._def.out._parseSync({data:l.value,path:f.path,parent:f})}}static create(i,s){return new dd({in:i,out:s,typeName:$t.ZodPipeline})}}class ml extends vA{_parse(i){const s=this._def.innerType._parse(i),f=l=>(ul(l)&&(l.value=Object.freeze(l.value)),l);return cl(s)?s.then(l=>f(l)):f(s)}unwrap(){return this._def.innerType}}ml.create=(o,i)=>new ml({innerType:o,typeName:$t.ZodReadonly,...lA(i)});function Mne(o,i={},s){return o?Ng.create().superRefine((f,l)=>{var r,B;if(!o(f)){const I=typeof i=="function"?i(f):typeof i=="string"?{message:i}:i,p=(B=(r=I.fatal)!==null&&r!==void 0?r:s)!==null&&B!==void 0?B:!0,Q=typeof I=="string"?{message:I}:I;l.addIssue({code:"custom",...Q,fatal:p})}}):Ng.create()}const JDe={object:Er.lazycreate};var $t;(function(o){o.ZodString="ZodString",o.ZodNumber="ZodNumber",o.ZodNaN="ZodNaN",o.ZodBigInt="ZodBigInt",o.ZodBoolean="ZodBoolean",o.ZodDate="ZodDate",o.ZodSymbol="ZodSymbol",o.ZodUndefined="ZodUndefined",o.ZodNull="ZodNull",o.ZodAny="ZodAny",o.ZodUnknown="ZodUnknown",o.ZodNever="ZodNever",o.ZodVoid="ZodVoid",o.ZodArray="ZodArray",o.ZodObject="ZodObject",o.ZodUnion="ZodUnion",o.ZodDiscriminatedUnion="ZodDiscriminatedUnion",o.ZodIntersection="ZodIntersection",o.ZodTuple="ZodTuple",o.ZodRecord="ZodRecord",o.ZodMap="ZodMap",o.ZodSet="ZodSet",o.ZodFunction="ZodFunction",o.ZodLazy="ZodLazy",o.ZodLiteral="ZodLiteral",o.ZodEnum="ZodEnum",o.ZodEffects="ZodEffects",o.ZodNativeEnum="ZodNativeEnum",o.ZodOptional="ZodOptional",o.ZodNullable="ZodNullable",o.ZodDefault="ZodDefault",o.ZodCatch="ZodCatch",o.ZodPromise="ZodPromise",o.ZodBranded="ZodBranded",o.ZodPipeline="ZodPipeline",o.ZodReadonly="ZodReadonly"})($t||($t={}));const PDe=(o,i={message:`Input not instance of ${o.name}`})=>Mne(s=>s instanceof o,i),bne=Ho.create,Dne=Ef.create,ODe=gp.create,jDe=pf.create,Sne=ll.create,WDe=jh.create,VDe=sp.create,ZDe=dl.create,zDe=Il.create,$De=Ng.create,XDe=Kh.create,e3e=cs.create,t3e=fp.create,A3e=To.create,r3e=Er.create,i3e=Er.strictCreate,n3e=Bl.create,o3e=SQ.create,a3e=Cl.create,s3e=Ma.create,f3e=El.create,h3e=hp.create,g3e=Wh.create,u3e=hg.create,c3e=pl.create,l3e=Ql.create,d3e=Qf.create,I3e=yl.create,B3e=_g.create,Kj=Jo.create,C3e=ya.create,E3e=yf.create,p3e=Jo.createWithPreprocess,Q3e=dd.create,y3e=()=>bne().optional(),v3e=()=>Dne().optional(),w3e=()=>Sne().optional(),m3e={string:o=>Ho.create({...o,coerce:!0}),number:o=>Ef.create({...o,coerce:!0}),boolean:o=>ll.create({...o,coerce:!0}),bigint:o=>pf.create({...o,coerce:!0}),date:o=>jh.create({...o,coerce:!0})},M3e=Xt;var aa=Object.freeze({__proto__:null,defaultErrorMap:kg,setErrorMap:MDe,getErrorMap:np,makeIssue:op,EMPTY_PATH:bDe,addIssueToContext:Gt,ParseStatus:vi,INVALID:Xt,DIRTY:Ag,OK:Gi,isAborted:FR,isDirty:GR,isValid:ul,isAsync:cl,get util(){return LA},get objectUtil(){return KR},ZodParsedType:qt,getParsedType:gf,ZodType:vA,datetimeRegex:wne,ZodString:Ho,ZodNumber:Ef,ZodBigInt:pf,ZodBoolean:ll,ZodDate:jh,ZodSymbol:sp,ZodUndefined:dl,ZodNull:Il,ZodAny:Ng,ZodUnknown:Kh,ZodNever:cs,ZodVoid:fp,ZodArray:To,ZodObject:Er,ZodUnion:Bl,ZodDiscriminatedUnion:SQ,ZodIntersection:Cl,ZodTuple:Ma,ZodRecord:El,ZodMap:hp,ZodSet:Wh,ZodFunction:hg,ZodLazy:pl,ZodLiteral:Ql,ZodEnum:Qf,ZodNativeEnum:yl,ZodPromise:_g,ZodEffects:Jo,ZodTransformer:Jo,ZodOptional:ya,ZodNullable:yf,ZodDefault:vl,ZodCatch:wl,ZodNaN:gp,BRAND:YDe,ZodBranded:h5,ZodPipeline:dd,ZodReadonly:ml,custom:Mne,Schema:vA,ZodSchema:vA,late:JDe,get ZodFirstPartyTypeKind(){return $t},coerce:m3e,any:$De,array:A3e,bigint:jDe,boolean:Sne,date:WDe,discriminatedUnion:o3e,effect:Kj,enum:d3e,function:u3e,instanceof:PDe,intersection:a3e,lazy:c3e,literal:l3e,map:h3e,nan:ODe,nativeEnum:I3e,never:e3e,null:zDe,nullable:E3e,number:Dne,object:r3e,oboolean:w3e,onumber:v3e,optional:C3e,ostring:y3e,pipeline:Q3e,preprocess:p3e,promise:B3e,record:f3e,set:g3e,strictObject:i3e,string:bne,symbol:VDe,transformer:Kj,tuple:s3e,undefined:ZDe,union:n3e,unknown:XDe,void:t3e,NEVER:M3e,ZodIssueCode:_t,quotelessJson:mDe,ZodError:yn});const b3e=o=>o.message?o.message:"unspecified error";class Kg extends eA{constructor(i){super(),this.code=jMe,this.errors=i,super.message=`Web3 validator found ${i.length} error[s]: -${this._compileErrors().join(` -`)}`}_compileErrors(){return this.errors.map(b3e)}}const D3e=["bool","int","uint","bytes","string","address","tuple"],xne=o=>typeof o=="object"&&"type"in o&&"name"in o,g5=o=>typeof o=="string",PA=o=>typeof o=="string"&&/^((-)?0x[0-9a-f]+|(0x))$/i.test(o);function Rne(o,i){return!(typeof o!="string"||!o.match(/^0x[0-9A-Fa-f]*$/))}const up=o=>typeof o=="number"||typeof o=="bigint"||typeof o=="string"&&/^((-0x|0x|-)?[0-9a-f]+|(0x))$/i.test(o);function u5(o){if(typeof o!="string")throw new Error(`[isHexPrefixed] input must be type 'string', received type ${typeof o}`);return o.startsWith("0x")}const c5=function(o){for(const[i,s]of Object.entries(o))if(s!==void 0&&s.length>0&&s[0]===0)throw new Error(`${i} cannot have leading zeroes, received: ${s.toString()}`)},S3e=["hex","number","blockNumber","blockNumberOrTag","filter","bloom"],r0=o=>{let i=o.replace(/ /,""),s,f=!1,l=[];if(o.includes("[")&&(i=i.slice(0,i.indexOf("[")),l=[...o.matchAll(/(?:\[(\d*)\])/g)].map(r=>parseInt(r[1],10)).map(r=>Number.isNaN(r)?-1:r),f=l.length>0),D3e.includes(i))return{baseType:i,isArray:f,baseTypeSize:s,arraySizes:l};if(i.startsWith("int"))s=parseInt(i.substring(3),10),i="int";else if(i.startsWith("uint"))s=parseInt(o.substring(4),10),i="uint";else if(i.startsWith("bytes"))s=parseInt(i.substring(5),10),i="bytes";else return{baseType:void 0,isArray:!1,baseTypeSize:void 0,arraySizes:l};return{baseType:i,isArray:f,baseTypeSize:s,arraySizes:l}},xS=(o,i={})=>{if(Object.keys(i).includes("type"))throw new Kg([{keyword:"eth",message:'Either "eth" or "type" can be presented in schema',params:{eth:o},instancePath:"",schemaPath:""}]);const{baseType:f,baseTypeSize:l}=r0(o);if(!f&&!S3e.includes(o))throw new Kg([{keyword:"eth",message:`Eth data type "${o}" is not valid`,params:{eth:o},instancePath:"",schemaPath:""}]);if(f){if(f==="tuple")throw new Error('"tuple" type is not implemented directly.');return{format:`${f}${l??""}`,required:!0}}return o?{format:o,required:!0}:{}},cp=(o,i="/0")=>{const s={type:"array",items:[],maxItems:o.length,minItems:o.length};for(const[f,l]of o.entries()){let r,B,I=[];xne(l)?(r=l.type,B=l.name||`${i}/${f}`,I=l.components):typeof l=="string"?(r=l,B=`${i}/${f}`):Array.isArray(l)&&(l[0]&&typeof l[0]=="string"&&l[0].startsWith("tuple")&&!Array.isArray(l[0])&&l[1]&&Array.isArray(l[1])?(r=l[0],B=`${i}/${f}`,I=l[1]):(r="tuple",B=`${i}/${f}`,I=l));const{baseType:p,isArray:Q,arraySizes:d}=r0(r);let y,v=s;for(let w=d.length-1;w>0;w-=1)y={type:"array",$id:B,items:[],maxItems:d[w],minItems:d[w]},d[w]<0&&(delete y.maxItems,delete y.minItems),Array.isArray(v.items)?v.items.length===0?v.items=[y]:v.items.push(y):v.items=[v.items,y],v=y;if(p==="tuple"&&!Q){const w=cp(I,B);w.$id=B,v.items.push(w)}else if(p==="tuple"&&Q){const w=d[0],M=Object.assign({type:"array",$id:B,items:cp(I,B)},w>=0&&{minItems:w,maxItems:w});v.items.push(M)}else if(Q){const w=d[0],M=Object.assign({type:"array",$id:B,items:xS(r)},w>=0&&{minItems:w,maxItems:w});v.items.push(M)}else Array.isArray(v.items)?v.items.push(Object.assign({$id:B},xS(r))):v.items.push(Object.assign({$id:B},xS(r)));v=s}return s},l5=o=>cp(o),d5=(o,i)=>i===1?o:d5(o[0],i-1),jc=(o,i,s)=>{const f=[];for(const[l,r]of o.entries()){let B,I,p=[];xne(r)?(B=r.type,I=r.name,p=r.components):typeof r=="string"?B=r:Array.isArray(r)&&(r[1]&&Array.isArray(r[1])?(B=r[0],p=r[1]):(B="tuple",p=r));const{baseType:Q,isArray:d,arraySizes:y}=r0(B),v=Array.isArray(i)?i[l]:i[I];if(Q==="tuple"&&!d)f.push(jc(p,v,s));else if(Q==="tuple"&&d){const w=[];for(const M of v)if(y.length>1){const m=d5(M,y.length-1),x=[];for(const D of m)x.push(jc(p,D,s));w.push(x)}else w.push(jc(p,M,s));f.push(w)}else f.push(v)}return s=s??[],s.push(...f),s},kne=o=>{if(o>=48&&o<=57)return o-48;if(o>=65&&o<=70)return o-55;if(o>=97&&o<=102)return o-87;throw new Error(`Invalid code point: ${o}`)},xQ=o=>{if(!PA(o))throw new Error("Invalid hex string");const[i,s]=o.startsWith("-")?[!0,o.slice(1)]:[!1,o],f=BigInt(s);return f>Number.MAX_SAFE_INTEGER?i?-f:f:f{if((typeof o=="number"||typeof o=="bigint")&&o<0)return`-0x${o.toString(16).slice(1)}`;if((typeof o=="number"||typeof o=="bigint")&&o>=0)return`0x${o.toString(16)}`;if(typeof o=="string"&&PA(o)){const[i,s]=o.startsWith("-")?[!0,o.slice(1)]:[!1,o],f=s.split(/^(-)?0(x|X)/).slice(-1)[0];return`${i?"-":""}0x${f.replace(/^0+/,"").toLowerCase()}`}if(typeof o=="string"&&!PA(o))return RQ(BigInt(o));throw new i5(o)},lp=(o,i,s="0")=>{if(typeof o=="string"&&!PA(o))return o.padStart(i,s);const f=typeof o=="string"&&PA(o)?o:RQ(o),[l,r]=f.startsWith("-")?["-0x",f.slice(3)]:["0x",f.slice(2)];return`${l}${r.padStart(i,s)}`};function Qs(o){let i="0x";for(const s of o){const f=s.toString(16);i+=f.length===1?`0${f}`:f}return i}const Oa={zero:48,nine:57,A:65,F:70,a:97,f:102};function Fj(o){if(o>=Oa.zero&&o<=Oa.nine)return o-Oa.zero;if(o>=Oa.A&&o<=Oa.F)return o-(Oa.A-10);if(o>=Oa.a&&o<=Oa.f)return o-(Oa.a-10)}function i0(o){let i=0;if(o.startsWith("0")&&(o[1]==="x"||o[1]==="X")&&(i=2),o.length%2!==0)throw new fg(`hex string has odd length: ${o}`);const s=(o.length-i)/2,f=new Uint8Array(s);for(let l=0,r=i;l{var i,s;return o instanceof Uint8Array||((i=o==null?void 0:o.constructor)===null||i===void 0?void 0:i.name)==="Uint8Array"||((s=o==null?void 0:o.constructor)===null||s===void 0?void 0:s.name)==="Buffer"},xf=(o,i={abiType:"bytes"})=>{if(typeof o!="string"&&!Array.isArray(o)&&!UR(o)||typeof o=="string"&&PA(o)&&o.startsWith("-")||typeof o=="string"&&!PA(o))return!1;let s;if(typeof o=="string"){if(o.length%2!==0)return!1;s=i0(o)}else if(Array.isArray(o)){if(o.some(f=>f<0||f>255||!Number.isInteger(f)))return!1;s=new Uint8Array(o)}else s=o;if(i!=null&&i.abiType){const{baseTypeSize:f}=r0(i.abiType);return f?s.length===f:!0}return i!=null&&i.size?s.length===(i==null?void 0:i.size):!0},_ne=o=>{if(!/^(0x)?[0-9a-f]{40}$/i.test(o))return!1;const i=o.slice(2),s=xg(i.toLowerCase()),f=Qs(yi(kQ(s))).slice(2);for(let l=0;l<40;l+=1)if(parseInt(f[l],16)>7&&i[l].toUpperCase()!==i[l]||parseInt(f[l],16)<=7&&i[l].toLowerCase()!==i[l])return!1;return!0},vn=(o,i=!0)=>{if(typeof o!="string"&&!UR(o))return!1;let s;return UR(o)?s=Qs(o):typeof o=="string"&&!PA(o)?s=o.toLowerCase().startsWith("0x")?o:`0x${o}`:s=o,/^(0x)?[0-9a-f]{40}$/i.test(s)?/^(0x|0X)?[0-9a-f]{40}$/.test(s)||/^(0x|0X)?[0-9A-F]{40}$/.test(s)?!0:i?_ne(s):!0:!1},Vh=(o,i)=>{if(i===BigInt(0))return BigInt(1);let s=o;for(let f=1;f{if(!["number","string","bigint"].includes(typeof o)||typeof o=="string"&&o.length===0)return!1;let s;if(i!=null&&i.abiType){const{baseTypeSize:l}=r0(i.abiType);l&&(s=l)}else i.bitSize&&(s=i.bitSize);const f=Vh(BigInt(2),BigInt(s??256))-BigInt(1);try{const l=typeof o=="string"&&PA(o)?BigInt(xQ(o)):BigInt(o);return l>=0&&l<=f}catch{return!1}},Ml=(o,i={abiType:"int"})=>{if(!["number","string","bigint"].includes(typeof o)||typeof o=="number"&&o>Number.MAX_SAFE_INTEGER)return!1;let s;if(i!=null&&i.abiType){const{baseTypeSize:r,baseType:B}=r0(i.abiType);if(B!=="int")return!1;r&&(s=r)}else i.bitSize&&(s=i.bitSize);const f=Vh(BigInt(2),BigInt((s??256)-1)),l=BigInt(-1)*Vh(BigInt(2),BigInt((s??256)-1));try{const r=typeof o=="string"&&PA(o)?BigInt(xQ(o)):BigInt(o);return r>=l&&r<=f}catch{return!1}},Kne=o=>!!(Ml(o)||typeof o=="string"&&/[0-9.]/.test(o)&&o.indexOf(".")===o.lastIndexOf(".")||typeof o=="number"),Fne=o=>ls(o),ei=o=>Object.values(os).includes(o),qR=o=>ei(o)||Fne(o),uu=o=>typeof o!="string"||!/^(0x)?[0-9a-f]{512}$/i.test(o)?!1:!!(/^(0x)?[0-9a-f]{512}$/.test(o)||/^(0x)?[0-9A-F]{512}$/.test(o)),NQ=(o,i)=>{if(typeof i=="string"&&!PA(i)||!uu(o))return!1;const s=typeof i=="string"?i0(i):i,f=Qs(yi(s)).slice(2);for(let l=0;l<12;l+=4){const r=(parseInt(f.slice(l,l+2),16)<<8)+parseInt(f.slice(l+2,l+4),16)&2047,B=kne(o.charCodeAt(o.length-1-Math.floor(r/4))),I=1<{if(!uu(o)||!vn(i))return!1;const s=lp(i,64);return NQ(o,s)},R3e=(o,i)=>!uu(o)||!vn(i)?!1:NQ(o,i),k3e=o=>["number","string","boolean"].includes(typeof o)?typeof o=="boolean"?!0:typeof o=="string"&&!PA(o)?o==="1"||o==="0":typeof o=="string"&&PA(o)?o==="0x1"||o==="0x0":o===1||o===0:!1,dt=o=>o==null,Fg=o=>typeof o=="object"&&!dt(o)&&!Array.isArray(o)&&!(o instanceof A5),dp=o=>typeof o!="string"||!/^(0x)?[0-9a-f]{64}$/i.test(o)?!1:!!(/^(0x)?[0-9a-f]{64}$/.test(o)||/^(0x)?[0-9A-F]{64}$/.test(o)),N3e=(o,i)=>!uu(o)||!dp(i)?!1:NQ(o,i),_3e=o=>{const i=["fromBlock","toBlock","address","topics","blockHash"];if(dt(o)||typeof o!="object"||!Object.keys(o).every(s=>i.includes(s))||!dt(o.fromBlock)&&!qR(o.fromBlock)||!dt(o.toBlock)&&!qR(o.toBlock))return!1;if(!dt(o.address)){if(Array.isArray(o.address)){if(!o.address.every(s=>vn(s)))return!1}else if(!vn(o.address))return!1}return!(!dt(o.topics)&&!o.topics.every(s=>dt(s)?!0:Array.isArray(s)?s.every(f=>dp(f)):!!dp(s)))},Zh={address:o=>vn(o),bloom:o=>uu(o),blockNumber:o=>Fne(o),blockTag:o=>ei(o),blockNumberOrTag:o=>qR(o),bool:o=>k3e(o),bytes:o=>xf(o),filter:o=>_3e(o),hex:o=>PA(o),uint:o=>ls(o),int:o=>Ml(o),number:o=>Kne(o),string:o=>g5(o)};for(let o=8;o<=256;o+=8)Zh[`int${o}`]=i=>Ml(i,{bitSize:o}),Zh[`uint${o}`]=i=>ls(i,{bitSize:o});for(let o=1;o<=32;o+=1)Zh[`bytes${o}`]=i=>xf(i,{size:o});Zh.bytes256=Zh.bytes;const _c=o=>{if((!(o!=null&&o.type)||(o==null?void 0:o.type)==="object")&&(o!=null&&o.properties)){const i={};for(const s of Object.keys(o.properties)){const f=_c(o.properties[s]);f&&(i[s]=f)}return Array.isArray(o.required)?aa.object(i).partial().required(o.required.reduce((s,f)=>Object.assign(Object.assign({},s),{[f]:!0}),{})):aa.object(i).partial()}if((o==null?void 0:o.type)==="array"&&(o!=null&&o.items)){if(Array.isArray(o.items)&&o.items.length>1&&o.maxItems!==void 0&&new Set(o.items.map(f=>f.$id)).size===o.items.length){const f=[];for(const l of o.items){const r=_c(l);r&&f.push(r)}return aa.tuple(f)}const i=Array.isArray(o.items)?o.items[0]:o.items;let s=aa.array(_c(i));return s=o.minItems!==void 0?s.min(o.minItems):s,s=o.maxItems!==void 0?s.max(o.maxItems):s,s}if(o.oneOf&&Array.isArray(o.oneOf))return aa.union(o.oneOf.map(i=>_c(i)));if(o!=null&&o.format){if(!Zh[o.format])throw new tDe(o.format);return aa.any().refine(Zh[o.format],i=>({params:{value:i,format:o.format}}))}return o!=null&&o.type&&(o==null?void 0:o.type)!=="object"&&typeof aa[String(o.type)]=="function"?aa[String(o.type)]():aa.object({data:aa.any()}).partial()};class rg{static factory(){return rg.validatorInstance||(rg.validatorInstance=new rg),rg.validatorInstance}validate(i,s,f){var l,r;const I=_c(i).safeParse(s);if(!I.success){const p=this.convertErrors((r=(l=I.error)===null||l===void 0?void 0:l.issues)!==null&&r!==void 0?r:[]);if(p){if(f!=null&&f.silent)return p;throw new Kg(p)}}}convertErrors(i){if(i&&Array.isArray(i)&&i.length>0)return i.map(s=>{var f;let l,r,B,I;I=s.path.join("/");const p=String(s.path[s.path.length-1]),Q=s.path.join("/");if(s.code===_t.too_big)r="maxItems",I=`${Q}/maxItems`,B={limit:s.maximum},l=`must NOT have more than ${s.maximum} items`;else if(s.code===_t.too_small)r="minItems",I=`${Q}/minItems`,B={limit:s.minimum},l=`must NOT have fewer than ${s.minimum} items`;else if(s.code===_t.custom){const{value:d,format:y}=(f=s.params)!==null&&f!==void 0?f:{};typeof d>"u"?l=`value at "/${I}" is required`:l=`value "${typeof d=="object"?JSON.stringify(d):d}" at "/${I}" must pass "${y}" validation`,B={value:d}}return{keyword:r??p,instancePath:Q?`/${Q}`:"",schemaPath:I?`#${I}`:"#",params:B??{value:s.message},message:l??s.message}})}}class K3e{constructor(){this._validator=rg.factory()}validateJSONSchema(i,s,f){return this._validator.validate(i,s,f)}validate(i,s,f={silent:!1}){var l,r;const B=l5(i);if(!(Array.isArray(B.items)&&((l=B.items)===null||l===void 0?void 0:l.length)===0&&s.length===0)){if(Array.isArray(B.items)&&((r=B.items)===null||r===void 0?void 0:r.length)===0&&s.length!==0)throw new Kg([{instancePath:"/0",schemaPath:"/",keyword:"required",message:"empty schema against data can not be validated",params:s}]);return this._validator.validate(B,s,f)}}}const Wt=new K3e;function Rf(o){var i,s;return o instanceof Uint8Array||((i=o==null?void 0:o.constructor)===null||i===void 0?void 0:i.name)==="Uint8Array"||((s=o==null?void 0:o.constructor)===null||s===void 0?void 0:s.name)==="Buffer"}function Li(...o){const i=o.reduce((l,r)=>l+r.length,0),s=new Uint8Array(i);let f=0;for(const l of o)s.set(l,f),f+=l.length;return s}function _Q(o,i){if(o===i)return!0;if(o.byteLength!==i.byteLength)return!1;for(let s=0;s{if(Wt.validate(["bytes"],[o]),Rf(o))return o;if(Array.isArray(o))return new Uint8Array(o);if(typeof o=="string")return i0(o);throw new fg(o)},{uint8ArrayToHexString:F3e}=Nne,SA=o=>F3e(ba(o)),ar=o=>typeof o=="string"&&o.slice(0,2).toLowerCase()!=="0x"?ba(`0x${o}`):ba(o),Id=o=>(Wt.validate(["hex"],[o]),xQ(o)),G3e=Id,Yr=(o,i)=>{typeof o!="bigint"&&Wt.validate(["int"],[o]);let s=RQ(o);return i&&(!s.startsWith("-")&&s.length%2===1?s="0x0".concat(s.slice(2)):s.length%2===0&&s.startsWith("-")&&(s="-0x0".concat(s.slice(3)))),s},L3e=Yr,U3e=o=>Id(o).toString(),Po=o=>{Wt.validate(["string"],[o]);let i=o.replace(/^(?:\u0000)/,"");return i=i.replace(/(?:\u0000)$/,""),SA(new TextEncoder().encode(i))},Gne=Po,q3e=Po,FQ=o=>Ene(ar(o)),H3e=o=>typeof o=="string"?FQ(o):(Wt.validate(["bytes"],[o]),Ene(o)),I5=xg,T3e=FQ,Lne=o=>{Wt.validate(["string"],[o]);let i="";for(let s=0;snew TextDecoder("ascii").decode(ar(o)),J3e=Une,ds=(o,i)=>{if(typeof o=="string"&&vn(o))return i?"address":`0x${o.toLowerCase().replace(/^0x/i,"")}`;if(typeof o=="boolean")return i?"bool":o?"0x01":"0x00";if(typeof o=="number")return i?o<0?"int256":"uint256":Yr(o);if(typeof o=="bigint")return i?"bigint":Yr(o);if(Rf(o))return i?"bytes":SA(o);if(typeof o=="object"&&o)return i?"string":Po(JSON.stringify(o));if(typeof o=="string"){if(o.startsWith("-0x")||o.startsWith("-0X"))return i?"int256":Yr(o);if(PA(o))return i?"bytes":o;if(up(o)&&!Ml(o)&&!ls(o))return i?"bytes":`0x${o}`;if(up(o)&&!Ml(o)&&ls(o))return i?"uint":Yr(o);if(!Number.isFinite(o))return i?"string":Po(o)}throw new Lbe(o)},Xi=o=>{if(typeof o=="number")return o>1e20?(console.warn(HR),BigInt(o)):o;if(typeof o=="bigint")return o>=Number.MIN_SAFE_INTEGER&&o<=Number.MAX_SAFE_INTEGER?Number(o):o;if(typeof o=="string"&&PA(o))return Id(o);try{return Xi(BigInt(o))}catch{throw new i5(o)}},Eh=o=>{if(typeof o=="number")return BigInt(o);if(typeof o=="bigint")return o;if(typeof o=="string"&&up(o))return o.startsWith("-")?-BigInt(o.substring(1)):BigInt(o);throw new i5(o)},P3e=(o,i)=>{let s;if(typeof i=="string"){if(s=KQ[i],!s)throw new sne(i)}else{if(i<0||!Number.isInteger(i))throw new fne(i);s=Vh(BigInt(10),BigInt(i))}const f=String(Xi(o)),l=s.toString().length-1;if(l<=0)return f.toString();const r=f.padStart(l,"0"),B=r.slice(0,-l),I=r.slice(-l).replace(/\.?0+$/,"");return B===""?`0.${I}`:I===""?B:`${B}.${I}`.slice(0,B.length+l+1)},O3e=(o,i)=>{Wt.validate(["number"],[o]);let s;if(typeof i=="string"){if(s=KQ[i],!s)throw new sne(i)}else{if(i<0||!Number.isInteger(i))throw new fne(i);s=Vh(BigInt(10),BigInt(i))}let f=o;typeof f=="number"&&(f<1e-15&&console.warn(HR),f>1e20?(console.warn(HR),f=BigInt(f)):f=f.toLocaleString("fullwide",{useGrouping:!1,maximumFractionDigits:20}));const[l,r]=String(typeof f=="string"&&!PA(f)?f:Xi(f)).split(".").concat(""),I=BigInt(`${l}${r}`)*s,p=r.length;return p===0?I.toString():I.toString().slice(0,-p)},Ra=o=>{if(!vn(o,!1))throw new n5(o);const i=o.toLowerCase().replace(/^0x/i,""),s=Qs(yi(kQ(I5(i))));if(dt(s)||s==="0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470")return"";let f="0x";const l=s.replace(/^0x/i,"");for(let r=0;r7?f+=i[r].toUpperCase():f+=i[r];return f},qne=o=>{if(typeof o=="boolean")return o;if(typeof o=="number"&&(o===0||o===1)||typeof o=="bigint"&&(o===BigInt(0)||o===BigInt(1)))return!!o;if(typeof o=="string"&&!PA(o)&&(o==="1"||o==="0"||o==="false"||o==="true"))return o==="true"?!0:o==="false"?!1:!!Number(o);if(typeof o=="string"&&PA(o)&&(o==="0x1"||o==="0x0"))return!!Xi(o);throw new o5(o)};var RS={exports:{}},Gj;function j3e(){return Gj||(Gj=1,function(o){var i=Object.prototype.hasOwnProperty,s="~";function f(){}Object.create&&(f.prototype=Object.create(null),new f().__proto__||(s=!1));function l(p,Q,d){this.fn=p,this.context=Q,this.once=d||!1}function r(p,Q,d,y,v){if(typeof d!="function")throw new TypeError("The listener must be a function");var w=new l(d,y||p,v),M=s?s+Q:Q;return p._events[M]?p._events[M].fn?p._events[M]=[p._events[M],w]:p._events[M].push(w):(p._events[M]=w,p._eventsCount++),p}function B(p,Q){--p._eventsCount===0?p._events=new f:delete p._events[Q]}function I(){this._events=new f,this._eventsCount=0}I.prototype.eventNames=function(){var Q=[],d,y;if(this._eventsCount===0)return Q;for(y in d=this._events)i.call(d,y)&&Q.push(s?y.slice(1):y);return Object.getOwnPropertySymbols?Q.concat(Object.getOwnPropertySymbols(d)):Q},I.prototype.listeners=function(Q){var d=s?s+Q:Q,y=this._events[d];if(!y)return[];if(y.fn)return[y.fn];for(var v=0,w=y.length,M=new Array(w);v{const s=typeof o=="string"&&ei(o),f=typeof i=="string"&&ei(i);if(o===i||(o==="earliest"||o===0)&&(i==="earliest"||i===0))return 0;if(o==="earliest"&&i>0)return-1;if(i==="earliest"&&o>0)return 1;if(s&&f){const B={[os.EARLIEST]:1,[os.FINALIZED]:2,[os.SAFE]:3,[os.LATEST]:4,[os.PENDING]:5};return B[o]typeof o=="object"&&!dt(o)&&Object.keys(o).length!==0&&["input","data","from","gas","gasPrice","gasLimit","address","jsonInterface","syncWithContext","dataInputFill"].some(i=>i in o),zt=dt,Lj=o=>typeof o=="object"&&!dt(o)&&!Array.isArray(o)&&!(o instanceof A5),kf=(o,...i)=>{if(!Lj(o))return o;const s=Object.assign({},o);for(const f of i)for(const l in f)Lj(f[l])?(s[l]||(s[l]={}),s[l]=kf(s[l],f[l])):!dt(f[l])&&Object.hasOwnProperty.call(f,l)&&(Array.isArray(f[l])||f[l]instanceof A5?s[l]=f[l].slice(0):s[l]=f[l]);return s},Gg=(o,i,s="0")=>typeof o=="string"?PA(o)?lp(o,i,s):o.padStart(i,s):(Wt.validate(["int"],[o]),lp(o,i,s)),Tne=(o,i,s="0")=>{if(typeof o=="string"&&!PA(o))return o.padEnd(i,s);const f=typeof o=="string"&&PA(o)?o:Yr(o),l=f.startsWith("-")?3:2;return Wt.validate([f.startsWith("-")?"int":"uint"],[o]),f.padEnd(i+l,s)},Yne=Tne,bl=Gg,Jne=(o,i=64)=>{Wt.validate(["int"],[o]);const s=Xi(o);if(s>=0)return Gg(ds(s),i);const f=Vh(BigInt(2),BigInt(i*4));if(-s>=f)throw new hne(`value: ${o}, nibbleWidth: ${i}`);const r=BigInt(s)+f;return Gg(Yr(r),i)},oSe=(o,i=64)=>{Wt.validate(["int"],[o]);const s=Xi(o);if(s<0)return s;const f=Math.ceil(Math.log(Number(s))/Math.log(2));if(f>i*4)throw new hne(`value: "${o}", nibbleWidth: "${i}"`);if(i*4!==f)return s;const l=Vh(BigInt(2),BigInt(i)*BigInt(4));return Xi(BigInt(s)-l)},{parseBaseType:aSe}=Nne,As=o=>typeof o=="object"&&!dt(o)&&"number"in o&&"bytes"in o,sSe=(o,i,s=[])=>{let f=Object.assign({},o),l;for(const r of i){if(f.oneOf&&l){const B=l,I=s.find(([p])=>p===B);I&&I[0]===l&&(f=f.oneOf[I[1]])}if(!f.properties&&!f.items)return;f.properties?f=f.properties[r]:f.items&&f.items.properties?f=f.items.properties[r]:f.items&&Fg(f.items)?f=f.items:f.items&&Array.isArray(f.items)&&(f=f.items[parseInt(r,10)]),f&&r&&(l=r)}return f},Dl=(o,i,s)=>{try{const{baseType:f,baseTypeSize:l}=aSe(i);if(f==="int"||f==="uint")switch(s.number){case ho.NUMBER:return Number(Eh(o));case ho.HEX:return Yr(Eh(o));case ho.STR:return Eh(o).toString();case ho.BIGINT:return Eh(o);default:throw new RR(`Invalid format: ${String(s.number)}`)}if(f==="bytes"){let r;switch(l?typeof o=="string"?r=Gg(o,l*2):Rf(o)&&(r=Li(new Uint8Array(l-o.length),o)):r=o,s.bytes){case us.HEX:return SA(ba(r));case us.UINT8ARRAY:return ba(r);default:throw new RR(`Invalid format: ${String(s.bytes)}`)}}if(f==="string")return String(o)}catch{return o}return o},Uj=({value:o,schemaProp:i,schema:s,object:f,key:l,dataPath:r,format:B,oneOfPath:I=[]})=>{var p,Q;if(Array.isArray(o)){let d=i;if((i==null?void 0:i.oneOf)!==void 0&&i.oneOf.forEach((y,v)=>{var w,M;!Array.isArray(i==null?void 0:i.items)&&(typeof o[0]=="object"&&((w=y==null?void 0:y.items)===null||w===void 0?void 0:w.type)==="object"||typeof o[0]=="string"&&((M=y==null?void 0:y.items)===null||M===void 0?void 0:M.type)!=="object")&&(d=y,I.push([l,v]))}),dt(d==null?void 0:d.items))return delete f[l],r.pop(),!0;if(Fg(d.items)&&!dt(d.items.format)){for(let y=0;y{var r;if(!Fg(o)&&!Array.isArray(o))return Dl(o,i==null?void 0:i.format,f);const B=o;if(Array.isArray(B)&&(i==null?void 0:i.type)==="array"&&((r=i==null?void 0:i.items)===null||r===void 0?void 0:r.type)==="object")Uj({value:B,schemaProp:i,schema:i,object:B,key:"",dataPath:s,format:f,oneOfPath:l});else for(const[I,p]of Object.entries(B)){s.push(I);let Q=sSe(i,s,l);if(dt(Q)){delete B[I],s.pop();continue}if(Fg(p)){GQ(p,i,s,f,l),s.pop();continue}if(!Uj({value:p,schemaProp:Q,schema:i,object:B,key:I,dataPath:s,format:f,oneOfPath:l})){if((Q==null?void 0:Q.format)===void 0&&(Q==null?void 0:Q.oneOf)!==void 0){for(const[d,y]of Q.oneOf.entries())if((y==null?void 0:y.format)!==void 0){Q=y;break}}B[I]=Dl(p,Q.format,f),s.pop()}}return B},Rt=(o,i,s=Ni)=>{let f;Fg(i)?f=kf({},i):Array.isArray(i)?f=[...i]:f=i;const l=Fg(o)?o:l5(o);if(!l.properties&&!l.items&&!l.format)throw new RR("Invalid json schema for formatting");return GQ(f,l,[],s)},Pne="0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",Lg=o=>{let i;return typeof o=="bigint"||typeof o=="number"?i=xg(o.toString()):Array.isArray(o)?i=new Uint8Array(o):typeof o=="string"&&!PA(o)?i=xg(o):i=ba(o),SA(yi(kQ(i)))},Bd=o=>{let i;typeof o=="string"?o.startsWith("0x")&&PA(o)?i=ar(o):i=xg(o):i=o;const s=Lg(i);return s===Pne?void 0:s},wn=o=>{const i=Bd(o);return dt(i)?Pne:i},fSe=o=>{if(Array.isArray(o))throw new Error("Autodetection of array types is not supported.");let i,s;if(typeof o=="object"&&("t"in o||"type"in o)&&("v"in o||"value"in o))i="t"in o?o.t:o.type,s="v"in o?o.v:o.value,i=i.toLowerCase()==="bigint"?"int":i;else{if(typeof o=="bigint")return["int",o];i=ds(o,!0),s=ds(o),!i.startsWith("int")&&!i.startsWith("uint")&&(i="bytes")}return(i.startsWith("int")||i.startsWith("uint"))&&typeof s=="string"&&!/^(-)?0x/i.test(s)&&(s=Eh(s)),[i,s]},hSe=o=>o.startsWith("int[")?`int256${o.slice(3)}`:o==="int"?"int256":o.startsWith("uint[")?`uint256'${o.slice(4)}`:o==="uint"?"uint256":o,kS=(o,i)=>{const s=/^(\d+).*$/.exec(o.slice(i));return s?parseInt(s[1],10):0},qj=o=>o.toString(2).length,Hj=(o,i)=>{const s=i.toString();if(o==="string"){if(typeof i=="string")return Po(i);throw new Gbe(i)}if(o==="bool"||o==="boolean"){if(typeof i=="boolean")return i?"01":"00";throw new o5(i)}if(o==="address"){if(!vn(s))throw new n5(s);return s}const f=hSe(o);if(o.startsWith("uint")){const l=kS(f,4);if(l%8||l<8||l>256)throw new mj(s);const r=Xi(s);if(qj(r)>l)throw new Mj(s);if(r256)throw new mj(o);const r=Xi(s);if(qj(r)>l)throw new Mj(s);return r64||l{const[i,s]=fSe(o);return Array.isArray(s)?s.map(r=>Hj(i,r).replace("0x","")).join(""):Hj(i,s).replace("0x","")},C5=(...o)=>`0x${o.map(One).join("").toLowerCase()}`,gSe=(...o)=>Bd(C5(...o)),uSe=(...o)=>wn(C5(...o)),cSe=o=>Bd(`0x${(typeof o=="number"?o.toString():o).padStart(64,"0")}`);function lSe(o){return uDe(o)}const Sl=o=>lSe(o),dSe=o=>SA(Sl(o));var LQ=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};function jne(o){return(typeof o=="object"||typeof o=="function")&&typeof o.then=="function"}function Wne(o,i,s){return LQ(this,void 0,void 0,function*(){let f;const l=yield Promise.race([o instanceof Promise?o:o(),new Promise((r,B)=>{f=setTimeout(()=>s?B(s):r(void 0),i)})]);if(f&&clearTimeout(f),l instanceof Error)throw l;return l})}function E5(o,i){let s;return[new Promise((l,r)=>{s=setInterval(function B(){return LQ(this,void 0,void 0,function*(){try{const I=yield Wne(o,i);dt(I)||(clearInterval(s),l(I))}catch(I){clearInterval(s),r(I)}}),B}(),i)}),s]}function ISe(o,i){return LQ(this,void 0,void 0,function*(){return E5(o,i)[0]})}function p5(o,i){let s;const f=new Promise((l,r)=>{s=setTimeout(()=>{r(i)},o)});return[s,f]}function Vne(o,i){let s;const f=new Promise((l,r)=>{s=setInterval(()=>{LQ(this,void 0,void 0,function*(){const B=yield o();B&&(clearInterval(s),r(B))})},i)});return[s,f]}const Q5=()=>{const o=Sl(16);o[6]=o[6]&15|64,o[8]=o[8]&63|128;const i=SA(o);return[i.substring(2,10),i.substring(10,14),i.substring(14,18),i.substring(18,22),i.substring(22,34)].join("-")},y5=o=>{const i=o.error.code;return Fi.has(i)||i>=-32099&&i<=-32e3},If=o=>!Array.isArray(o)&&!!o&&o.jsonrpc==="2.0"&&"result"in o&&dt(o.error)&&(typeof o.id=="number"||typeof o.id=="string"),Bf=o=>!Array.isArray(o)&&o.jsonrpc==="2.0"&&!!o&&dt(o.result)&&"error"in o&&(typeof o.id=="number"||typeof o.id=="string"),UQ=o=>!Array.isArray(o)&&!!o&&o.jsonrpc==="2.0"&&!dt(o.params)&&!dt(o.method),Zne=o=>!Array.isArray(o)&&!!o&&o.jsonrpc==="2.0"&&"id"in o&&"result"in o,Ip=o=>If(o)||Bf(o),v5=o=>Array.isArray(o)?o.every(Ip):Ip(o),xl=o=>Array.isArray(o)&&o.length>0&&v5(o);let lE;const zne=o=>{lE=o},zh=o=>{var i,s,f,l;return typeof lE<"u"&&(lE+=1),{jsonrpc:(i=o.jsonrpc)!==null&&i!==void 0?i:"2.0",id:(f=(s=o.id)!==null&&s!==void 0?s:lE)!==null&&f!==void 0?f:Q5(),method:o.method,params:(l=o.params)!==null&&l!==void 0?l:void 0}},w5=o=>o.map(i=>zh(i)),ha=o=>Array.isArray(o)&&o.length>0,BSe=Object.freeze(Object.defineProperty({__proto__:null,isBatchRequest:ha,isBatchResponse:xl,isResponseRpcError:y5,isResponseWithError:Bf,isResponseWithNotification:UQ,isResponseWithResult:If,isSubscriptionResult:Zne,isValidResponse:v5,setRequestIdStart:zne,toBatchPayload:w5,toPayload:zh,validateResponse:Ip},Symbol.toStringTag,{value:"Module"}));var NS=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})},$ne;class Bp{constructor({timeout:i,eagerStart:s,timeoutMessage:f}={timeout:0,eagerStart:!1,timeoutMessage:"DeferredPromise timed out"}){this[$ne]="Promise",this._state="pending",this._promise=new Promise((l,r)=>{this._resolve=l,this._reject=r}),this._timeoutMessage=f,this._timeoutInterval=i,s&&this.startTimer()}get state(){return this._state}then(i,s){return NS(this,void 0,void 0,function*(){return this._promise.then(i,s)})}catch(i){return NS(this,void 0,void 0,function*(){return this._promise.catch(i)})}finally(i){return NS(this,void 0,void 0,function*(){return this._promise.finally(i)})}resolve(i){this._resolve(i),this._state="fulfilled",this._clearTimeout()}reject(i){this._reject(i),this._state="rejected",this._clearTimeout()}startTimer(){this._timeoutInterval&&this._timeoutInterval>0&&(this._timeoutId=setTimeout(this._checkTimeout.bind(this),this._timeoutInterval))}_checkTimeout(){this._state==="pending"&&this._timeoutId&&this.reject(new ene(this._timeoutMessage))}_clearTimeout(){this._timeoutId&&clearTimeout(this._timeoutId)}}$ne=Symbol.toStringTag;class Xne{constructor(i,s){this.eventEmitter=i,this.autoReconnect=s,this.chunkTimeout=1e3*15}clearQueues(){typeof this._clearQueues=="function"&&this._clearQueues()}onError(i){this._clearQueues=i}parseResponse(i){const s=[];return i.replace(/\}[\n\r]?\{/g,"}|--|{").replace(/\}\][\n\r]?\[\{/g,"}]|--|[{").replace(/\}[\n\r]?\[\{/g,"}|--|[{").replace(/\}\][\n\r]?\{/g,"}]|--|{").split("|--|").forEach(l=>{let r=l;this.lastChunk&&(r=this.lastChunk+r);let B;try{B=JSON.parse(r)}catch{this.lastChunk=r,this.lastChunkTimeout&&clearTimeout(this.lastChunkTimeout),this.lastChunkTimeout=setTimeout(()=>{this.autoReconnect||(this.clearQueues(),this.eventEmitter.emit("error",new DQ({id:1,jsonrpc:"2.0",error:{code:2,message:"Chunk timeout"}})))},this.chunkTimeout);return}clearTimeout(this.lastChunkTimeout),this.lastChunk=void 0,B&&s.push(B)}),s}}var Tj=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class m5 extends cd{constructor(){super(...arguments),this._eventEmitter=new Hne,this._chainId="",this._accounts=[]}_getChainId(){var i;return Tj(this,void 0,void 0,function*(){const s=yield this.request(zh({method:"eth_chainId",params:[]}));return(i=s==null?void 0:s.result)!==null&&i!==void 0?i:""})}_getAccounts(){var i;return Tj(this,void 0,void 0,function*(){const s=yield this.request(zh({method:"eth_accounts",params:[]}));return(i=s==null?void 0:s.result)!==null&&i!==void 0?i:[]})}_onConnect(){Promise.all([this._getChainId().then(i=>{i!==this._chainId&&(this._chainId=i,this._eventEmitter.emit("chainChanged",this._chainId))}).catch(i=>{console.error(i)}),this._getAccounts().then(i=>{this._accounts.length===i.length&&i.every(s=>i.includes(s))||(this._accounts=i,this._onAccountsChanged())}).catch(i=>{console.error(i)})]).then(()=>this._eventEmitter.emit("connect",{chainId:this._chainId})).catch(i=>{console.error(i)})}_onDisconnect(i,s){this._eventEmitter.emit("disconnect",new Tbe(i,s))}_onAccountsChanged(){this._eventEmitter.emit("accountsChanged",this._accounts)}}var _S=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const CSe={autoReconnect:!0,delay:5e3,maxAttempts:5},ESe=1e3;class eoe extends m5{constructor(i,s,f){if(super(),this._connectionStatus="connecting",this._onMessageHandler=this._onMessage.bind(this),this._onOpenHandler=this._onConnect.bind(this),this._onCloseHandler=this._onCloseEvent.bind(this),this._onErrorHandler=this._onError.bind(this),!this._validateProviderPath(i))throw new kR(i);this._socketPath=i,this._socketOptions=s,this._reconnectOptions=Object.assign(Object.assign({},CSe),f??{}),this._pendingRequestsQueue=new Map,this._sentRequestsQueue=new Map,this._init(),this.connect(),this.chunkResponseParser=new Xne(this._eventEmitter,this._reconnectOptions.autoReconnect),this.chunkResponseParser.onError(()=>{this._clearQueues()}),this.isReconnecting=!1}get SocketConnection(){return this._socketConnection}_init(){this._reconnectAttempts=0}connect(){try{this._openSocketConnection(),this._connectionStatus="connecting",this._addSocketListeners()}catch(i){if(this.isReconnecting)setImmediate(()=>{this._reconnect()});else throw this._connectionStatus="disconnected",i&&i.message?new ld(`Error while connecting to ${this._socketPath}. Reason: ${i.message}`):new kR(this._socketPath)}}_validateProviderPath(i){return!!i}getPendingRequestQueueSize(){return this._pendingRequestsQueue.size}getSentRequestsQueueSize(){return this._sentRequestsQueue.size}supportsSubscriptions(){return!0}on(i,s){this._eventEmitter.on(i,s)}once(i,s){this._eventEmitter.once(i,s)}removeListener(i,s){this._eventEmitter.removeListener(i,s)}_onDisconnect(i,s){this._connectionStatus="disconnected",super._onDisconnect(i,s)}disconnect(i,s){const f=i??ESe;this._removeSocketListeners(),this.getStatus()!=="disconnected"&&this._closeSocketConnection(f,s),this._onDisconnect(f,s)}safeDisconnect(i,s,f=!1,l=1e3){return _S(this,void 0,void 0,function*(){let r=0;yield _S(this,void 0,void 0,function*(){return new Promise(I=>{const p=setInterval(()=>{f&&r>=5&&this.clearQueues(),this.getPendingRequestQueueSize()===0&&this.getSentRequestsQueueSize()===0&&(clearInterval(p),I(!0)),r+=1},l)})}),this.disconnect(i,s)})}removeAllListeners(i){this._eventEmitter.removeAllListeners(i)}_onError(i){this.isReconnecting?this._reconnect():this._eventEmitter.emit("error",i)}reset(){this._sentRequestsQueue.clear(),this._pendingRequestsQueue.clear(),this._init(),this._removeSocketListeners(),this._addSocketListeners()}_reconnect(){this.isReconnecting||(this.isReconnecting=!0,this._sentRequestsQueue.size>0&&this._sentRequestsQueue.forEach((i,s)=>{i.deferredPromise.reject(new rbe),this._sentRequestsQueue.delete(s)}),this._reconnectAttempts{this._removeSocketListeners(),this.connect(),this.isReconnecting=!1},this._reconnectOptions.delay)):(this.isReconnecting=!1,this._clearQueues(),this._removeSocketListeners(),this._eventEmitter.emit("error",new Abe(this._reconnectOptions.maxAttempts))))}request(i){return _S(this,void 0,void 0,function*(){if(zt(this._socketConnection))throw new Error("Connection is undefined");this.getStatus()==="disconnected"&&this.connect();const s=ha(i)?i[0].id:i.id;if(!s)throw new hbe("Request Id not defined");if(this._sentRequestsQueue.has(s))throw new ibe(s);const f=new Bp;f.catch(r=>{this._eventEmitter.emit("error",r)});const l={payload:i,deferredPromise:f};if(this.getStatus()==="connecting")return this._pendingRequestsQueue.set(s,l),l.deferredPromise;this._sentRequestsQueue.set(s,l);try{this._sendToSocket(l.payload)}catch(r){this._sentRequestsQueue.delete(s),this._eventEmitter.emit("error",r)}return f})}_onConnect(){this._connectionStatus="connected",this._reconnectAttempts=0,super._onConnect(),this._sendPendingRequests()}_sendPendingRequests(){for(const[i,s]of this._pendingRequestsQueue.entries())try{this._sendToSocket(s.payload),this._pendingRequestsQueue.delete(i),this._sentRequestsQueue.set(i,s)}catch(f){this._pendingRequestsQueue.delete(i),this._eventEmitter.emit("error",f)}}_onMessage(i){const s=this._parseResponses(i);if(!(zt(s)||s.length===0))for(const f of s){if(UQ(f)&&f.method.endsWith("_subscription")){this._eventEmitter.emit("message",f);return}const l=xl(f)?f[0].id:f.id,r=this._sentRequestsQueue.get(l);if(!r)return;(xl(f)||If(f)||Bf(f))&&(this._eventEmitter.emit("message",f),r.deferredPromise.resolve(f)),this._sentRequestsQueue.delete(l)}}clearQueues(i){this._clearQueues(i)}_clearQueues(i){this._pendingRequestsQueue.size>0&&this._pendingRequestsQueue.forEach((s,f)=>{s.deferredPromise.reject(new xR(i)),this._pendingRequestsQueue.delete(f)}),this._sentRequestsQueue.size>0&&this._sentRequestsQueue.forEach((s,f)=>{s.deferredPromise.reject(new xR(i)),this._sentRequestsQueue.delete(f)}),this._removeSocketListeners()}}const toe=Object.freeze(Object.defineProperty({__proto__:null,ChunkResponseParser:Xne,Eip1193Provider:m5,EventEmitter:B5,SocketProvider:eoe,Web3DeferredPromise:Bp,asciiToHex:Lne,bytesToHex:SA,bytesToUint8Array:ba,checkAddressCheckSum:z3e,compareBlockNumbers:nSe,convert:GQ,convertScalarValue:Dl,encodePacked:C5,ethUnitMap:KQ,format:Rt,fromAscii:Y3e,fromDecimal:L3e,fromTwosComplement:oSe,fromUtf8:Gne,fromWei:P3e,getStorageSlotNumForLongString:cSe,hexToAscii:Une,hexToBytes:ar,hexToNumber:Id,hexToNumberString:U3e,hexToString:T3e,hexToUtf8:FQ,isAddress:$3e,isBatchRequest:ha,isBatchResponse:xl,isBloom:X3e,isContractAddressInBloom:ASe,isContractInitOptions:cf,isDataFormat:As,isHex:Z3e,isHexStrict:V3e,isInBloom:eSe,isNullish:zt,isPromise:jne,isResponseRpcError:y5,isResponseWithError:Bf,isResponseWithNotification:UQ,isResponseWithResult:If,isSubscriptionResult:Zne,isTopic:rSe,isTopicInBloom:iSe,isUint8Array:Rf,isUserEthereumAddressInBloom:tSe,isValidResponse:v5,jsonRpc:BSe,keccak256:Lg,keccak256Wrapper:Lg,leftPad:bl,mergeDeep:kf,numberToHex:Yr,padLeft:Gg,padRight:Tne,pollTillDefined:ISe,pollTillDefinedAndReturnIntervalId:E5,processSolidityEncodePackedArgs:One,randomBytes:Sl,randomHex:dSe,rejectIfConditionAtInterval:Vne,rejectIfTimeout:p5,rightPad:Yne,setRequestIdStart:zne,sha3:Bd,sha3Raw:wn,soliditySha3:gSe,soliditySha3Raw:uSe,stringToHex:q3e,toAscii:J3e,toBatchPayload:w5,toBigInt:Eh,toBool:qne,toChecksumAddress:Ra,toDecimal:G3e,toHex:ds,toNumber:Xi,toPayload:zh,toTwosComplement:Jne,toUtf8:H3e,toWei:O3e,uint8ArrayConcat:Li,uint8ArrayEquals:_Q,utf8ToBytes:I5,utf8ToHex:Po,uuidV4:Q5,validateResponse:Ip,waitWithTimeout:Wne},Symbol.toStringTag,{value:"Module"}));class qQ{constructor(){this._emitter=new B5}on(i,s){this._emitter.on(i,s)}once(i,s){this._emitter.once(i,s)}off(i,s){this._emitter.off(i,s)}emit(i,s){this._emitter.emit(i,s)}listenerCount(i){return this._emitter.listenerCount(i)}listeners(i){return this._emitter.listeners(i)}eventNames(){return this._emitter.eventNames()}removeAllListeners(){return this._emitter.removeAllListeners()}setMaxListenerWarningThreshold(i){this._emitter.setMaxListeners(i)}getMaxListeners(){return this._emitter.getMaxListeners()}}var $h;(function(o){o.CONFIG_CHANGE="CONFIG_CHANGE"})($h||($h={}));class pSe extends qQ{constructor(i){super(),this.config={handleRevert:!1,defaultAccount:void 0,defaultBlock:"latest",transactionBlockTimeout:50,transactionConfirmationBlocks:24,transactionPollingInterval:1e3,transactionPollingTimeout:750*1e3,transactionReceiptPollingInterval:void 0,transactionSendTimeout:750*1e3,transactionConfirmationPollingInterval:void 0,blockHeaderTimeout:10,maxListenersWarningThreshold:100,contractDataInputFill:"data",defaultNetworkId:void 0,defaultChain:"mainnet",defaultHardfork:"london",defaultCommon:void 0,defaultTransactionType:"0x2",defaultMaxPriorityFeePerGas:ds(25e8),enableExperimentalFeatures:{useSubscriptionWhenCheckingBlockTimeout:!1,useRpcCallSpecification:!1},transactionBuilder:void 0,transactionTypeParser:void 0,customTransactionSchema:void 0,defaultReturnFormat:Ni,ignoreGasPricing:!1},this.setConfig(i??{})}setConfig(i){const s=Object.keys(i);for(const f of s)this._triggerConfigChange(f,i[f]),!zt(i[f])&&typeof i[f]=="number"&&f==="maxListenersWarningThreshold"&&this.setMaxListenerWarningThreshold(Number(i[f]));Object.assign(this.config,i)}get handleRevert(){return this.config.handleRevert}set handleRevert(i){this._triggerConfigChange("handleRevert",i),this.config.handleRevert=i}get contractDataInputFill(){return this.config.contractDataInputFill}set contractDataInputFill(i){this._triggerConfigChange("contractDataInputFill",i),this.config.contractDataInputFill=i}get defaultAccount(){return this.config.defaultAccount}set defaultAccount(i){this._triggerConfigChange("defaultAccount",i),this.config.defaultAccount=i}get defaultBlock(){return this.config.defaultBlock}set defaultBlock(i){this._triggerConfigChange("defaultBlock",i),this.config.defaultBlock=i}get transactionSendTimeout(){return this.config.transactionSendTimeout}set transactionSendTimeout(i){this._triggerConfigChange("transactionSendTimeout",i),this.config.transactionSendTimeout=i}get transactionBlockTimeout(){return this.config.transactionBlockTimeout}set transactionBlockTimeout(i){this._triggerConfigChange("transactionBlockTimeout",i),this.config.transactionBlockTimeout=i}get transactionConfirmationBlocks(){return this.config.transactionConfirmationBlocks}set transactionConfirmationBlocks(i){this._triggerConfigChange("transactionConfirmationBlocks",i),this.config.transactionConfirmationBlocks=i}get transactionPollingInterval(){return this.config.transactionPollingInterval}set transactionPollingInterval(i){this._triggerConfigChange("transactionPollingInterval",i),this.config.transactionPollingInterval=i,this.transactionReceiptPollingInterval=i,this.transactionConfirmationPollingInterval=i}get transactionPollingTimeout(){return this.config.transactionPollingTimeout}set transactionPollingTimeout(i){this._triggerConfigChange("transactionPollingTimeout",i),this.config.transactionPollingTimeout=i}get transactionReceiptPollingInterval(){return this.config.transactionReceiptPollingInterval}set transactionReceiptPollingInterval(i){this._triggerConfigChange("transactionReceiptPollingInterval",i),this.config.transactionReceiptPollingInterval=i}get transactionConfirmationPollingInterval(){return this.config.transactionConfirmationPollingInterval}set transactionConfirmationPollingInterval(i){this._triggerConfigChange("transactionConfirmationPollingInterval",i),this.config.transactionConfirmationPollingInterval=i}get blockHeaderTimeout(){return this.config.blockHeaderTimeout}set blockHeaderTimeout(i){this._triggerConfigChange("blockHeaderTimeout",i),this.config.blockHeaderTimeout=i}get enableExperimentalFeatures(){return this.config.enableExperimentalFeatures}set enableExperimentalFeatures(i){this._triggerConfigChange("enableExperimentalFeatures",i),this.config.enableExperimentalFeatures=i}get maxListenersWarningThreshold(){return this.config.maxListenersWarningThreshold}set maxListenersWarningThreshold(i){this._triggerConfigChange("maxListenersWarningThreshold",i),this.setMaxListenerWarningThreshold(i),this.config.maxListenersWarningThreshold=i}get defaultReturnFormat(){return this.config.defaultReturnFormat}set defaultReturnFormat(i){this._triggerConfigChange("defaultReturnFormat",i),this.config.defaultReturnFormat=i}get defaultNetworkId(){return this.config.defaultNetworkId}set defaultNetworkId(i){this._triggerConfigChange("defaultNetworkId",i),this.config.defaultNetworkId=i}get defaultChain(){return this.config.defaultChain}set defaultChain(i){if(!zt(this.config.defaultCommon)&&!zt(this.config.defaultCommon.baseChain)&&i!==this.config.defaultCommon.baseChain)throw new Sj(this.config.defaultChain,i);this._triggerConfigChange("defaultChain",i),this.config.defaultChain=i}get defaultHardfork(){return this.config.defaultHardfork}set defaultHardfork(i){if(!zt(this.config.defaultCommon)&&!zt(this.config.defaultCommon.hardfork)&&i!==this.config.defaultCommon.hardfork)throw new Dj(this.config.defaultCommon.hardfork,i);this._triggerConfigChange("defaultHardfork",i),this.config.defaultHardfork=i}get defaultCommon(){return this.config.defaultCommon}set defaultCommon(i){if(!zt(this.config.defaultHardfork)&&!zt(i)&&!zt(i.hardfork)&&this.config.defaultHardfork!==i.hardfork)throw new Dj(this.config.defaultHardfork,i.hardfork);if(!zt(this.config.defaultChain)&&!zt(i)&&!zt(i.baseChain)&&this.config.defaultChain!==i.baseChain)throw new Sj(this.config.defaultChain,i.baseChain);this._triggerConfigChange("defaultCommon",i),this.config.defaultCommon=i}get ignoreGasPricing(){return this.config.ignoreGasPricing}set ignoreGasPricing(i){this._triggerConfigChange("ignoreGasPricing",i),this.config.ignoreGasPricing=i}get defaultTransactionType(){return this.config.defaultTransactionType}set defaultTransactionType(i){this._triggerConfigChange("defaultTransactionType",i),this.config.defaultTransactionType=i}get defaultMaxPriorityFeePerGas(){return this.config.defaultMaxPriorityFeePerGas}set defaultMaxPriorityFeePerGas(i){this._triggerConfigChange("defaultMaxPriorityFeePerGas",i),this.config.defaultMaxPriorityFeePerGas=i}get transactionBuilder(){return this.config.transactionBuilder}set transactionBuilder(i){this._triggerConfigChange("transactionBuilder",i),this.config.transactionBuilder=i}get transactionTypeParser(){return this.config.transactionTypeParser}set transactionTypeParser(i){this._triggerConfigChange("transactionTypeParser",i),this.config.transactionTypeParser=i}get customTransactionSchema(){return this.config.customTransactionSchema}set customTransactionSchema(i){this._triggerConfigChange("customTransactionSchema",i),this.config.customTransactionSchema=i}_triggerConfigChange(i,s){this.emit($h.CONFIG_CHANGE,{name:i,oldValue:this.config[i],newValue:s})}}var tC={exports:{}},Yj;function QSe(){return Yj||(Yj=1,function(o,i){var s=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof globalThis<"u"&&globalThis,f=function(){function r(){this.fetch=!1,this.DOMException=s.DOMException}return r.prototype=s,new r}();(function(r){(function(B){var I=typeof r<"u"&&r||typeof self<"u"&&self||typeof I<"u"&&I,p={searchParams:"URLSearchParams"in I,iterable:"Symbol"in I&&"iterator"in Symbol,blob:"FileReader"in I&&"Blob"in I&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in I,arrayBuffer:"ArrayBuffer"in I};function Q(a){return a&&DataView.prototype.isPrototypeOf(a)}if(p.arrayBuffer)var d=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],y=ArrayBuffer.isView||function(a){return a&&d.indexOf(Object.prototype.toString.call(a))>-1};function v(a){if(typeof a!="string"&&(a=String(a)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(a)||a==="")throw new TypeError('Invalid character in header field name: "'+a+'"');return a.toLowerCase()}function w(a){return typeof a!="string"&&(a=String(a)),a}function M(a){var h={next:function(){var c=a.shift();return{done:c===void 0,value:c}}};return p.iterable&&(h[Symbol.iterator]=function(){return h}),h}function m(a){this.map={},a instanceof m?a.forEach(function(h,c){this.append(c,h)},this):Array.isArray(a)?a.forEach(function(h){this.append(h[0],h[1])},this):a&&Object.getOwnPropertyNames(a).forEach(function(h){this.append(h,a[h])},this)}m.prototype.append=function(a,h){a=v(a),h=w(h);var c=this.map[a];this.map[a]=c?c+", "+h:h},m.prototype.delete=function(a){delete this.map[v(a)]},m.prototype.get=function(a){return a=v(a),this.has(a)?this.map[a]:null},m.prototype.has=function(a){return this.map.hasOwnProperty(v(a))},m.prototype.set=function(a,h){this.map[v(a)]=w(h)},m.prototype.forEach=function(a,h){for(var c in this.map)this.map.hasOwnProperty(c)&&a.call(h,this.map[c],c,this)},m.prototype.keys=function(){var a=[];return this.forEach(function(h,c){a.push(c)}),M(a)},m.prototype.values=function(){var a=[];return this.forEach(function(h){a.push(h)}),M(a)},m.prototype.entries=function(){var a=[];return this.forEach(function(h,c){a.push([c,h])}),M(a)},p.iterable&&(m.prototype[Symbol.iterator]=m.prototype.entries);function x(a){if(a.bodyUsed)return Promise.reject(new TypeError("Already read"));a.bodyUsed=!0}function D(a){return new Promise(function(h,c){a.onload=function(){h(a.result)},a.onerror=function(){c(a.error)}})}function S(a){var h=new FileReader,c=D(h);return h.readAsArrayBuffer(a),c}function K(a){var h=new FileReader,c=D(h);return h.readAsText(a),c}function N(a){for(var h=new Uint8Array(a),c=new Array(h.length),C=0;C-1?h:a}function J(a,h){if(!(this instanceof J))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');h=h||{};var c=h.body;if(a instanceof J){if(a.bodyUsed)throw new TypeError("Already read");this.url=a.url,this.credentials=a.credentials,h.headers||(this.headers=new m(a.headers)),this.method=a.method,this.mode=a.mode,this.signal=a.signal,!c&&a._bodyInit!=null&&(c=a._bodyInit,a.bodyUsed=!0)}else this.url=String(a);if(this.credentials=h.credentials||this.credentials||"same-origin",(h.headers||!this.headers)&&(this.headers=new m(h.headers)),this.method=Z(h.method||this.method||"GET"),this.mode=h.mode||this.mode||null,this.signal=h.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&c)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(c),(this.method==="GET"||this.method==="HEAD")&&(h.cache==="no-store"||h.cache==="no-cache")){var C=/([?&])_=[^&]*/;if(C.test(this.url))this.url=this.url.replace(C,"$1_="+new Date().getTime());else{var g=/\?/;this.url+=(g.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}J.prototype.clone=function(){return new J(this,{body:this._bodyInit})};function Ae(a){var h=new FormData;return a.trim().split("&").forEach(function(c){if(c){var C=c.split("="),g=C.shift().replace(/\+/g," "),t=C.join("=").replace(/\+/g," ");h.append(decodeURIComponent(g),decodeURIComponent(t))}}),h}function E(a){var h=new m,c=a.replace(/\r?\n[\t ]+/g," ");return c.split("\r").map(function(C){return C.indexOf(` -`)===0?C.substr(1,C.length):C}).forEach(function(C){var g=C.split(":"),t=g.shift().trim();if(t){var u=g.join(":").trim();h.append(t,u)}}),h}j.call(J.prototype);function e(a,h){if(!(this instanceof e))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');h||(h={}),this.type="default",this.status=h.status===void 0?200:h.status,this.ok=this.status>=200&&this.status<300,this.statusText=h.statusText===void 0?"":""+h.statusText,this.headers=new m(h.headers),this.url=h.url||"",this._initBody(a)}j.call(e.prototype),e.prototype.clone=function(){return new e(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new m(this.headers),url:this.url})},e.error=function(){var a=new e(null,{status:0,statusText:""});return a.type="error",a};var A=[301,302,303,307,308];e.redirect=function(a,h){if(A.indexOf(h)===-1)throw new RangeError("Invalid status code");return new e(null,{status:h,headers:{location:a}})},B.DOMException=I.DOMException;try{new B.DOMException}catch{B.DOMException=function(h,c){this.message=h,this.name=c;var C=Error(h);this.stack=C.stack},B.DOMException.prototype=Object.create(Error.prototype),B.DOMException.prototype.constructor=B.DOMException}function n(a,h){return new Promise(function(c,C){var g=new J(a,h);if(g.signal&&g.signal.aborted)return C(new B.DOMException("Aborted","AbortError"));var t=new XMLHttpRequest;function u(){t.abort()}t.onload=function(){var R={status:t.status,statusText:t.statusText,headers:E(t.getAllResponseHeaders()||"")};R.url="responseURL"in t?t.responseURL:R.headers.get("X-Request-URL");var T="response"in t?t.response:t.responseText;setTimeout(function(){c(new e(T,R))},0)},t.onerror=function(){setTimeout(function(){C(new TypeError("Network request failed"))},0)},t.ontimeout=function(){setTimeout(function(){C(new TypeError("Network request failed"))},0)},t.onabort=function(){setTimeout(function(){C(new B.DOMException("Aborted","AbortError"))},0)};function b(R){try{return R===""&&I.location.href?I.location.href:R}catch{return R}}t.open(g.method,b(g.url),!0),g.credentials==="include"?t.withCredentials=!0:g.credentials==="omit"&&(t.withCredentials=!1),"responseType"in t&&(p.blob?t.responseType="blob":p.arrayBuffer&&g.headers.get("Content-Type")&&g.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(t.responseType="arraybuffer")),h&&typeof h.headers=="object"&&!(h.headers instanceof m)?Object.getOwnPropertyNames(h.headers).forEach(function(R){t.setRequestHeader(R,w(h.headers[R]))}):g.headers.forEach(function(R,T){t.setRequestHeader(T,R)}),g.signal&&(g.signal.addEventListener("abort",u),t.onreadystatechange=function(){t.readyState===4&&g.signal.removeEventListener("abort",u)}),t.send(typeof g._bodyInit>"u"?null:g._bodyInit)})}return n.polyfill=!0,I.fetch||(I.fetch=n,I.Headers=m,I.Request=J,I.Response=e),B.Headers=m,B.Request=J,B.Response=e,B.fetch=n,B})({})})(f),f.fetch.ponyfill=!0,delete f.fetch.polyfill;var l=s.fetch?s:f;i=l.fetch,i.default=l.fetch,i.fetch=l.fetch,i.Headers=l.Headers,i.Request=l.Request,i.Response=l.Response,o.exports=i}(tC,tC.exports)),tC.exports}var ySe=QSe();const vSe=gr(ySe);var wSe=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class HQ extends cd{constructor(i,s){if(super(),!HQ.validateClientUrl(i))throw new kR(i);this.clientUrl=i,this.httpProviderOptions=s}static validateClientUrl(i){return typeof i=="string"?/^http(s)?:\/\//i.test(i):!1}getStatus(){throw new Pa}supportsSubscriptions(){return!1}request(i,s){var f;return wSe(this,void 0,void 0,function*(){const l=Object.assign(Object.assign({},(f=this.httpProviderOptions)===null||f===void 0?void 0:f.providerOptions),s),r=yield vSe(this.clientUrl,Object.assign(Object.assign({},l),{method:"POST",headers:Object.assign(Object.assign({},l.headers),{"Content-Type":"application/json"}),body:JSON.stringify(i)}));if(!r.ok)throw new Ia(yield r.json(),void 0,void 0,r.status);return yield r.json()})}on(){throw new Pa}removeListener(){throw new Pa}once(){throw new Pa}removeAllListeners(){throw new Pa}connect(){throw new Pa}disconnect(){throw new Pa}reset(){throw new Pa}reconnect(){throw new Pa}}var W0=null;typeof WebSocket<"u"?W0=WebSocket:typeof MozWebSocket<"u"?W0=MozWebSocket:typeof globalThis<"u"?W0=globalThis.WebSocket||globalThis.MozWebSocket:typeof window<"u"?W0=window.WebSocket||window.MozWebSocket:typeof self<"u"&&(W0=self.WebSocket||self.MozWebSocket);const mSe=W0;class Aoe extends eoe{constructor(i,s,f){super(i,s,f)}_validateProviderPath(i){return typeof i=="string"?/^ws(s)?:\/\//i.test(i):!1}getStatus(){if(this._socketConnection&&!zt(this._socketConnection))switch(this._socketConnection.readyState){case this._socketConnection.CONNECTING:return"connecting";case this._socketConnection.OPEN:return"connected";default:return"disconnected"}return"disconnected"}_openSocketConnection(){this._socketConnection=new mSe(this._socketPath,void 0,this._socketOptions&&Object.keys(this._socketOptions).length===0?void 0:this._socketOptions)}_closeSocketConnection(i,s){var f;(f=this._socketConnection)===null||f===void 0||f.close(i,s)}_sendToSocket(i){var s;if(this.getStatus()==="disconnected")throw new xR;(s=this._socketConnection)===null||s===void 0||s.send(JSON.stringify(i))}_parseResponses(i){return this.chunkResponseParser.parseResponse(i.data)}_addSocketListeners(){var i,s,f,l;(i=this._socketConnection)===null||i===void 0||i.addEventListener("open",this._onOpenHandler),(s=this._socketConnection)===null||s===void 0||s.addEventListener("message",this._onMessageHandler),(f=this._socketConnection)===null||f===void 0||f.addEventListener("close",r=>this._onCloseHandler(r)),(l=this._socketConnection)===null||l===void 0||l.addEventListener("error",this._onErrorHandler)}_removeSocketListeners(){var i,s,f;(i=this._socketConnection)===null||i===void 0||i.removeEventListener("message",this._onMessageHandler),(s=this._socketConnection)===null||s===void 0||s.removeEventListener("open",this._onOpenHandler),(f=this._socketConnection)===null||f===void 0||f.removeEventListener("close",this._onCloseHandler)}_onCloseEvent(i){var s;if(this._reconnectOptions.autoReconnect&&(![1e3,1001].includes(i.code)||!i.wasClean)){this._reconnect();return}this._clearQueues(i),this._removeSocketListeners(),this._onDisconnect(i.code,i.reason),(s=this._socketConnection)===null||s===void 0||s.removeEventListener("error",this._onErrorHandler)}}const roe=o=>cd.isWeb3Provider(o),ioe=o=>typeof o!="string"&&"request"in o&&o.request.constructor.name==="Function",noe=o=>typeof o!="string"&&"request"in o&&o.request.constructor.name==="AsyncFunction",ooe=o=>typeof o!="string"&&"send"in o,aoe=o=>typeof o!="string"&&"sendAsync"in o,Cp=o=>o&&(roe(o)||noe(o)||ioe(o)||aoe(o)||ooe(o)),MSe=o=>o&&"supportsSubscriptions"in o?o.supportsSubscriptions():!!(o&&typeof o!="string"&&"on"in o);var KS=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})},Ug;(function(o){o.PROVIDER_CHANGED="PROVIDER_CHANGED",o.BEFORE_PROVIDER_CHANGE="BEFORE_PROVIDER_CHANGE"})(Ug||(Ug={}));const Jj={HttpProvider:HQ,WebsocketProvider:Aoe};class Fh extends qQ{constructor(i,s,f){super(),zt(i)||this.setProvider(i),this.useRpcCallSpecification=s,zt(f)||(this.middleware=f)}static get providers(){return Jj}get provider(){return this._provider}get providers(){return Jj}setProvider(i){let s;if(i&&typeof i=="string"&&this.providers)if(/^http(s)?:\/\//i.test(i))s=new this.providers.HttpProvider(i);else if(/^ws(s)?:\/\//i.test(i))s=new this.providers.WebsocketProvider(i);else throw new hE(`Can't autodetect provider for "${i}"`);else zt(i)?s=void 0:s=i;return this.emit(Ug.BEFORE_PROVIDER_CHANGE,this._provider),this._provider=s,this.emit(Ug.PROVIDER_CHANGED,this._provider),!0}setMiddleware(i){this.middleware=i}send(i){return KS(this,void 0,void 0,function*(){const s=Object.assign({},i);let f=yield this._sendRequest(s);if(zt(this.middleware)||(f=yield this.middleware.processResponse(f)),If(f))return f.result;throw new Ia(f)})}sendBatch(i){return KS(this,void 0,void 0,function*(){return yield this._sendRequest(i)})}_sendRequest(i){return KS(this,void 0,void 0,function*(){const{provider:s}=this;if(zt(s))throw new hE("Provider not available. Use `.setProvider` or `.provider=` to initialize the provider.");let f=ha(i)?w5(i):zh(i);if(zt(this.middleware)||(f=yield this.middleware.processRequest(f)),roe(s)){let l;try{l=yield s.request(f)}catch(r){l=r}return this._processJsonRpcResponse(f,l,{legacy:!1,error:!1})}if(noe(s))return s.request(f).then(l=>this._processJsonRpcResponse(f,l,{legacy:!0,error:!1})).catch(l=>this._processJsonRpcResponse(f,l,{legacy:!0,error:!0}));if(ioe(s))return new Promise((l,r)=>{const B=Q=>{r(this._processJsonRpcResponse(f,Q,{legacy:!0,error:!0}))},I=Q=>l(this._processJsonRpcResponse(f,Q,{legacy:!0,error:!1})),p=s.request(f,(Q,d)=>Q?B(Q):I(d));jne(p)&&p.then(I).catch(d=>{try{const y=this._processJsonRpcResponse(f,d,{legacy:!0,error:!0});r(y)}catch(y){r(y)}})});if(ooe(s))return new Promise((l,r)=>{s.send(f,(B,I)=>{if(B)return r(this._processJsonRpcResponse(f,B,{legacy:!0,error:!0}));if(zt(I))throw new Ia({},'Got a "nullish" response from provider.');return l(this._processJsonRpcResponse(f,I,{legacy:!0,error:!1}))})});if(aoe(s))return s.sendAsync(f).then(l=>this._processJsonRpcResponse(f,l,{legacy:!0,error:!1})).catch(l=>this._processJsonRpcResponse(f,l,{legacy:!0,error:!0}));throw new hE("Provider does not have a request or send method to use.")})}_processJsonRpcResponse(i,s,{legacy:f,error:l}){if(zt(s))return this._buildResponse(i,null,l);if(Bf(s)){if(this.useRpcCallSpecification&&y5(s)){const r=s;if(Fi.get(r.error.code)){const B=Fi.get(r.error.code).error;throw new B(r)}else throw new Mn(r)}else if(!Fh._isReverted(s))throw new DQ(s,i)}if(If(s))return s;if(s instanceof Error)throw Fh._isReverted(s),s;if(!f&&ha(i)&&xl(s)||f&&!l&&ha(i))return s;if(f&&l&&ha(i))throw s;if(f&&!Bf(s)&&!If(s))return this._buildResponse(i,s,l);throw ha(i)&&!Array.isArray(s)?new Ia(s,"Got normal response for a batch request."):!ha(i)&&Array.isArray(s)?new Ia(s,"Got batch response for a normal request."):new Ia(s,"Invalid response")}static _isReverted(i){let s;if(Bf(i)?s=i.error:i instanceof Error&&(s=i),s!=null&&s.message.includes("revert"))throw new _h(s);return!1}_buildResponse(i,s,f){const l={jsonrpc:"2.0",id:ha(i)?i[0].id:"id"in i?i.id:null};return f?Object.assign(Object.assign({},l),{error:s}):Object.assign(Object.assign({},l),{result:s})}}var pc=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class Ep{constructor(i,s,f=!1){this.requestManager=i,this.registeredSubscriptions=s,this.tolerateUnlinkedSubscription=f,this._subscriptions=new Map,this.requestManager.on(Ug.BEFORE_PROVIDER_CHANGE,()=>pc(this,void 0,void 0,function*(){yield this.unsubscribe()})),this.requestManager.on(Ug.PROVIDER_CHANGED,()=>{this.clear(),this.listenToProviderEvents()}),this.listenToProviderEvents()}listenToProviderEvents(){const i=this.requestManager.provider;!this.requestManager.provider||typeof(i==null?void 0:i.supportsSubscriptions)=="function"&&!(i!=null&&i.supportsSubscriptions())||typeof this.requestManager.provider.on=="function"&&(typeof this.requestManager.provider.request=="function"?this.requestManager.provider.on("message",s=>this.messageListener(s)):i.on("data",s=>this.messageListener(s)))}messageListener(i){var s,f,l;if(!i)throw new es("Should not call messageListener with no data. Type was");const r=((s=i.params)===null||s===void 0?void 0:s.subscription)||((f=i.data)===null||f===void 0?void 0:f.subscription)||((l=i.id)===null||l===void 0?void 0:l.toString(16));if(r){const B=this._subscriptions.get(r);B==null||B.processSubscriptionData(i)}}subscribe(i,s,f=Ni){return pc(this,void 0,void 0,function*(){const l=this.registeredSubscriptions[i];if(!l)throw new es("Invalid subscription type");const r=new l(s??void 0,{subscriptionManager:this,returnFormat:f});return yield this.addSubscription(r),r})}get subscriptions(){return this._subscriptions}addSubscription(i){return pc(this,void 0,void 0,function*(){if(!this.requestManager.provider)throw new hE("Provider not available");if(!this.supportsSubscriptions())throw new es("The current provider does not support subscriptions");if(i.id&&this._subscriptions.has(i.id))throw new es(`Subscription with id "${i.id}" already exists`);if(yield i.sendSubscriptionRequest(),zt(i.id))throw new es("Subscription is not subscribed yet.");return this._subscriptions.set(i.id,i),i.id})}removeSubscription(i){return pc(this,void 0,void 0,function*(){const{id:s}=i;if(zt(s))throw new es("Subscription is not subscribed yet. Or, had already been unsubscribed but not through the Subscription Manager.");if(!this._subscriptions.has(s)&&!this.tolerateUnlinkedSubscription)throw new es(`Subscription with id "${s.toString()}" does not exists`);return yield i.sendUnsubscribeRequest(),this._subscriptions.delete(s),s})}unsubscribe(i){return pc(this,void 0,void 0,function*(){const s=[];for(const[f,l]of this.subscriptions.entries())(!i||typeof i=="function"&&i({id:f,sub:l}))&&s.push(this.removeSubscription(l));return Promise.all(s)})}clear(){this._subscriptions.clear()}supportsSubscriptions(){return zt(this.requestManager.provider)?!1:MSe(this.requestManager.provider)}}var Qc=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class Cd extends qQ{constructor(i,s){var f;super(),this.args=i;const{requestManager:l}=s,{subscriptionManager:r}=s;l?this._subscriptionManager=new Ep(l,{},!0):this._subscriptionManager=r,this._returnFormat=(f=s==null?void 0:s.returnFormat)!==null&&f!==void 0?f:Ni}get id(){return this._id}get lastBlock(){return this._lastBlock}subscribe(){return Qc(this,void 0,void 0,function*(){return this._subscriptionManager.addSubscription(this)})}processSubscriptionData(i){var s,f;i!=null&&i.data?this._processSubscriptionResult((f=(s=i==null?void 0:i.data)===null||s===void 0?void 0:s.result)!==null&&f!==void 0?f:i==null?void 0:i.data):i&&UQ(i)&&this._processSubscriptionResult(i==null?void 0:i.params.result)}sendSubscriptionRequest(){return Qc(this,void 0,void 0,function*(){return this._id=yield this._subscriptionManager.requestManager.send({method:"eth_subscribe",params:this._buildSubscriptionParams()}),this.emit("connected",this._id),this._id})}get returnFormat(){return this._returnFormat}get subscriptionManager(){return this._subscriptionManager}resubscribe(){return Qc(this,void 0,void 0,function*(){yield this.unsubscribe(),yield this.subscribe()})}unsubscribe(){return Qc(this,void 0,void 0,function*(){this.id&&(yield this._subscriptionManager.removeSubscription(this))})}sendUnsubscribeRequest(){return Qc(this,void 0,void 0,function*(){yield this._subscriptionManager.requestManager.send({method:"eth_unsubscribe",params:[this.id]}),this._id=void 0})}formatSubscriptionResult(i){return i}_processSubscriptionResult(i){this.emit("data",this.formatSubscriptionResult(i))}_processSubscriptionError(i){this.emit("error",i)}_buildSubscriptionParams(){throw new Error("Implement in the child class")}}var L0=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class pp extends h2e{constructor(){super(...arguments),this._addressMap=new Map,this._defaultKeyName="web3js_wallet"}static getStorage(){let i;try{i=window.localStorage;const s="__storage_test__";return i.setItem(s,s),i.removeItem(s),i}catch(s){return s&&(s.code===22||s.code===1014||s.name==="QuotaExceededError"||s.name==="NS_ERROR_DOM_QUOTA_REACHED")&&!dt(i)&&i.length!==0?i:void 0}}create(i){for(let s=0;sL0(this,void 0,void 0,function*(){return f.encrypt(i,s)})))})}decrypt(i,s,f){return L0(this,void 0,void 0,function*(){const l=yield Promise.all(i.map(r=>L0(this,void 0,void 0,function*(){return this._accountProvider.decrypt(r,s,f)})));for(const r of l)this.add(r);return this})}save(i,s){return L0(this,void 0,void 0,function*(){const f=pp.getStorage();if(!f)throw new Error("Local storage not available.");return f.setItem(s??this._defaultKeyName,JSON.stringify(yield this.encrypt(i))),!0})}load(i,s){return L0(this,void 0,void 0,function*(){const f=pp.getStorage();if(!f)throw new Error("Local storage not available.");const l=f.getItem(s??this._defaultKeyName);return l&&(yield this.decrypt(JSON.parse(l)||[],i)),this})}}const Ea={web:gE};function soe(o,i,s){if(!s.startsWith("aes-"))throw new Error(`AES submodule doesn't support mode ${s}`);if(i.length!==16)throw new Error("AES: wrong IV length");if(s.startsWith("aes-128")&&o.length!==16||s.startsWith("aes-256")&&o.length!==32)throw new Error("AES: wrong key length")}async function foe(o,i,s){if(!Ea.web)throw new Error("Browser crypto not available.");let f;if(["aes-128-cbc","aes-256-cbc"].includes(o)&&(f="cbc"),["aes-128-ctr","aes-256-ctr"].includes(o)&&(f="ctr"),!f)throw new Error("AES: unsupported mode");return[await Ea.web.subtle.importKey("raw",i,{name:`AES-${f.toUpperCase()}`,length:i.length*8},!0,["encrypt","decrypt"]),{name:`aes-${f}`,iv:s,counter:s,length:128}]}async function M5(o,i,s,f="aes-128-ctr",l=!0){if(soe(i,s,f),Ea.web){const[r,B]=await foe(f,i,s),I=await Ea.web.subtle.encrypt(B,r,o);let p=new Uint8Array(I);return!l&&B.name==="aes-cbc"&&!(o.length%16)&&(p=p.slice(0,-16)),p}else if(Ea.node){const r=Ea.node.createCipheriv(f,i,s);return r.setAutoPadding(l),_R(r.update(o),r.final())}else throw new Error("The environment doesn't have AES module")}async function bSe(o,i,s,f){const l=o.slice(-16);for(let B=0;B<16;B++)l[B]^=s[B]^16;return(await M5(l,i,s,f)).slice(0,16)}async function DSe(o,i,s,f="aes-128-ctr",l=!0){if(soe(i,s,f),Ea.web){const[r,B]=await foe(f,i,s);if(!l&&B.name==="aes-cbc"){const Q=await bSe(o,i,s,f);o=_R(o,Q)}const I=await Ea.web.subtle.decrypt(B,r,o),p=new Uint8Array(I);if(B.name==="aes-cbc"){const Q=await M5(p,i,s,f);if(!vDe(Q,o))throw new Error("AES: wrong padding")}return p}else if(Ea.node){const r=Ea.node.createDecipheriv(f,i,s);return r.setAutoPadding(l),_R(r.update(o),r.final())}else throw new Error("The environment doesn't have AES module")}let hoe=class extends f5{constructor(i,s){super(),this.finished=!1,this.destroyed=!1,a5(i);const f=Rg(s);if(this.iHash=i.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const l=this.blockLen,r=new Uint8Array(l);r.set(f.length>l?i.create().update(f).digest():f);for(let B=0;Bnew hoe(o,i).update(s).digest();goe.create=(o,i)=>new hoe(o,i);function SSe(o,i,s,f){a5(o);const l=cne({dkLen:32,asyncTick:10},f),{c:r,dkLen:B,asyncTick:I}=l;if(Vi(r),Vi(B),Vi(I),r<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const p=Rg(i),Q=Rg(s),d=new Uint8Array(B),y=goe.create(o,p),v=y._cloneInto().update(Q);return{c:r,dkLen:B,asyncTick:I,DK:d,PRF:y,PRFSalt:v}}function xSe(o,i,s,f,l){return o.destroy(),i.destroy(),f&&f.destroy(),l.fill(0),s}function b5(o,i,s,f){const{c:l,dkLen:r,DK:B,PRF:I,PRFSalt:p}=SSe(o,i,s,f);let Q;const d=new Uint8Array(4),y=cE(d),v=new Uint8Array(I.outputLen);for(let w=1,M=0;M>l&r),I=Number(s&r),p=f?4:0,Q=f?0:4;o.setUint32(i+p,B,f),o.setUint32(i+Q,I,f)}const kSe=(o,i,s)=>o&i^~o&s,NSe=(o,i,s)=>o&i^o&s^i&s;let _Se=class extends f5{constructor(i,s,f,l){super(),this.blockLen=i,this.outputLen=s,this.padOffset=f,this.isLE=l,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(i),this.view=cE(this.buffer)}update(i){Oh(this);const{view:s,buffer:f,blockLen:l}=this;i=Rg(i);const r=i.length;for(let B=0;Bl-B&&(this.process(f,0),B=0);for(let y=B;yd.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;y>>3,m=oa(w,17)^oa(w,19)^w>>>10;Xs[y]=m+Xs[y-7]+M+Xs[y-16]|0}let{A:f,B:l,C:r,D:B,E:I,F:p,G:Q,H:d}=this;for(let y=0;y<64;y++){const v=oa(I,6)^oa(I,11)^oa(I,25),w=d+v+kSe(I,p,Q)+KSe[y]+Xs[y]|0,m=(oa(f,2)^oa(f,13)^oa(f,22))+NSe(f,l,r)|0;d=Q,Q=p,p=I,I=B+w|0,B=r,r=l,l=f,f=w+m|0}f=f+this.A|0,l=l+this.B|0,r=r+this.C|0,B=B+this.D|0,I=I+this.E|0,p=p+this.F|0,Q=Q+this.G|0,d=d+this.H|0,this.set(f,l,r,B,I,p,Q,d)}roundClean(){Xs.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};const D5=lne(()=>new FSe);function uoe(o,i,s,f,l){if(!["sha256","sha512"].includes(l))throw new Error("Only sha256 and sha512 are supported");return ip(o),ip(i),b5(D5,o,i,{c:s,dkLen:f})}function Pj(o,i,s,f,l,r){let B=o[i++]^s[f++],I=o[i++]^s[f++],p=o[i++]^s[f++],Q=o[i++]^s[f++],d=o[i++]^s[f++],y=o[i++]^s[f++],v=o[i++]^s[f++],w=o[i++]^s[f++],M=o[i++]^s[f++],m=o[i++]^s[f++],x=o[i++]^s[f++],D=o[i++]^s[f++],S=o[i++]^s[f++],K=o[i++]^s[f++],N=o[i++]^s[f++],L=o[i++]^s[f++],j=B,re=I,Z=p,J=Q,Ae=d,E=y,e=v,A=w,n=M,a=m,h=x,c=D,C=S,g=K,t=N,u=L;for(let b=0;b<8;b+=2)Ae^=HA(j+C|0,7),n^=HA(Ae+j|0,9),C^=HA(n+Ae|0,13),j^=HA(C+n|0,18),a^=HA(E+re|0,7),g^=HA(a+E|0,9),re^=HA(g+a|0,13),E^=HA(re+g|0,18),t^=HA(h+e|0,7),Z^=HA(t+h|0,9),e^=HA(Z+t|0,13),h^=HA(e+Z|0,18),J^=HA(u+c|0,7),A^=HA(J+u|0,9),c^=HA(A+J|0,13),u^=HA(c+A|0,18),re^=HA(j+J|0,7),Z^=HA(re+j|0,9),J^=HA(Z+re|0,13),j^=HA(J+Z|0,18),e^=HA(E+Ae|0,7),A^=HA(e+E|0,9),Ae^=HA(A+e|0,13),E^=HA(Ae+A|0,18),c^=HA(h+a|0,7),n^=HA(c+h|0,9),a^=HA(n+c|0,13),h^=HA(a+n|0,18),C^=HA(u+t|0,7),g^=HA(C+u|0,9),t^=HA(g+C|0,13),u^=HA(t+g|0,18);l[r++]=B+j|0,l[r++]=I+re|0,l[r++]=p+Z|0,l[r++]=Q+J|0,l[r++]=d+Ae|0,l[r++]=y+E|0,l[r++]=v+e|0,l[r++]=w+A|0,l[r++]=M+n|0,l[r++]=m+a|0,l[r++]=x+h|0,l[r++]=D+c|0,l[r++]=S+C|0,l[r++]=K+g|0,l[r++]=N+t|0,l[r++]=L+u|0}function FS(o,i,s,f,l){let r=f+0,B=f+16*l;for(let I=0;I<16;I++)s[B+I]=o[i+(2*l-1)*16+I];for(let I=0;I0&&(B+=16),Pj(s,r,o,i+=16,s,B)}function GSe(o,i,s){const f=cne({dkLen:32,asyncTick:10,maxmem:1073742848},s),{N:l,r,p:B,dkLen:I,asyncTick:p,maxmem:Q,onProgress:d}=f;if(Vi(l),Vi(r),Vi(B),Vi(I),Vi(p),Vi(Q),d!==void 0&&typeof d!="function")throw new Error("progressCb should be function");const y=128*r,v=y/4;if(l<=1||l&l-1||l>=2**(y/8)||l>2**32)throw new Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(B<0||B>(2**32-1)*32/y)throw new Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(I<0||I>(2**32-1)*32)throw new Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");const w=y*(l+B);if(w>Q)throw new Error(`Scrypt: parameters too large, ${w} (128 * r * (N + p)) > ${Q} (maxmem)`);const M=b5(D5,o,i,{c:1,dkLen:y*B}),m=uE(M),x=uE(new Uint8Array(y*l)),D=uE(new Uint8Array(y));let S=()=>{};if(d){const K=2*l*B,N=Math.max(Math.floor(K/1e4),1);let L=0;S=()=>{L++,d&&(!(L%N)||L===K)&&d(L/K)}}return{N:l,r,p:B,dkLen:I,blockSize32:v,V:x,B32:m,B:M,tmp:D,blockMixCb:S,asyncTick:p}}function LSe(o,i,s,f,l){const r=b5(D5,o,s,{c:1,dkLen:i});return s.fill(0),f.fill(0),l.fill(0),r}function USe(o,i,s){const{N:f,r:l,p:r,dkLen:B,blockSize32:I,V:p,B32:Q,B:d,tmp:y,blockMixCb:v}=GSe(o,i,s);Ap||rp(Q);for(let w=0;w0&&!i.includes(o.length))throw new Error(`Uint8Array expected of length ${i}, not of length=${o.length}`)}function HSe(o){if(typeof o!="function"||typeof o.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Oj(o.outputLen),Oj(o.blockLen)}function Qp(o,i=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(i&&o.finished)throw new Error("Hash#digest() has already been called")}function TSe(o,i){TQ(o);const s=i.outputLen;if(o.lengthnew DataView(o.buffer,o.byteOffset,o.byteLength),sa=(o,i)=>o<<32-i|o>>>i;new Uint8Array(new Uint32Array([287454020]).buffer)[0];function YSe(o){if(typeof o!="string")throw new Error(`utf8ToBytes expected string, got ${typeof o}`);return new Uint8Array(new TextEncoder().encode(o))}function S5(o){return typeof o=="string"&&(o=YSe(o)),TQ(o),o}function JSe(...o){let i=0;for(let f=0;fo().update(S5(f)).digest(),s=o();return i.outputLen=s.outputLen,i.blockLen=s.blockLen,i.create=()=>o(),i}function OSe(o=32){if(GS&&typeof GS.getRandomValues=="function")return GS.getRandomValues(new Uint8Array(o));throw new Error("crypto.getRandomValues must be defined")}function jSe(o,i,s,f){if(typeof o.setBigUint64=="function")return o.setBigUint64(i,s,f);const l=BigInt(32),r=BigInt(4294967295),B=Number(s>>l&r),I=Number(s&r),p=f?4:0,Q=f?0:4;o.setUint32(i+p,B,f),o.setUint32(i+Q,I,f)}const WSe=(o,i,s)=>o&i^~o&s,VSe=(o,i,s)=>o&i^o&s^i&s;class ZSe extends loe{constructor(i,s,f,l){super(),this.blockLen=i,this.outputLen=s,this.padOffset=f,this.isLE=l,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(i),this.view=LS(this.buffer)}update(i){Qp(this);const{view:s,buffer:f,blockLen:l}=this;i=S5(i);const r=i.length;for(let B=0;Bl-B&&(this.process(f,0),B=0);for(let y=B;yd.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;y>>3,m=sa(w,17)^sa(w,19)^w>>>10;tf[y]=m+tf[y-7]+M+tf[y-16]|0}let{A:f,B:l,C:r,D:B,E:I,F:p,G:Q,H:d}=this;for(let y=0;y<64;y++){const v=sa(I,6)^sa(I,11)^sa(I,25),w=d+v+WSe(I,p,Q)+zSe[y]+tf[y]|0,m=(sa(f,2)^sa(f,13)^sa(f,22))+VSe(f,l,r)|0;d=Q,Q=p,p=I,I=B+w|0,B=r,r=l,l=f,f=w+m|0}f=f+this.A|0,l=l+this.B|0,r=r+this.C|0,B=B+this.D|0,I=I+this.E|0,p=p+this.F|0,Q=Q+this.G|0,d=d+this.H|0,this.set(f,l,r,B,I,p,Q,d)}roundClean(){tf.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const XSe=PSe(()=>new $Se);class doe extends loe{constructor(i,s){super(),this.finished=!1,this.destroyed=!1,HSe(i);const f=S5(s);if(this.iHash=i.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const l=this.blockLen,r=new Uint8Array(l);r.set(f.length>l?i.create().update(f).digest():f);for(let B=0;Bnew doe(o,i).update(s).digest();Ioe.create=(o,i)=>new doe(o,i);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Boe=BigInt(0),YQ=BigInt(1),e6e=BigInt(2);function Xh(o){return o instanceof Uint8Array||o!=null&&typeof o=="object"&&o.constructor.name==="Uint8Array"}function Ed(o){if(!Xh(o))throw new Error("Uint8Array expected")}const t6e=Array.from({length:256},(o,i)=>i.toString(16).padStart(2,"0"));function qg(o){Ed(o);let i="";for(let s=0;s=ja._0&&o<=ja._9)return o-ja._0;if(o>=ja._A&&o<=ja._F)return o-(ja._A-10);if(o>=ja._a&&o<=ja._f)return o-(ja._a-10)}function Hg(o){if(typeof o!="string")throw new Error("hex string expected, got "+typeof o);const i=o.length,s=i/2;if(i%2)throw new Error("padded hex string expected, got unpadded hex of length "+i);const f=new Uint8Array(s);for(let l=0,r=0;lBoe;o>>=YQ,i+=1);return i}function o6e(o,i){return o>>BigInt(i)&YQ}function a6e(o,i,s){return o|(s?YQ:Boe)<(e6e<new Uint8Array(o),Wj=o=>Uint8Array.from(o);function Eoe(o,i,s){if(typeof o!="number"||o<2)throw new Error("hashLen must be a number");if(typeof i!="number"||i<2)throw new Error("qByteLen must be a number");if(typeof s!="function")throw new Error("hmacFn must be a function");let f=US(o),l=US(o),r=0;const B=()=>{f.fill(1),l.fill(0),r=0},I=(...y)=>s(l,f,...y),p=(y=US())=>{l=I(Wj([0]),y),f=I(),y.length!==0&&(l=I(Wj([1]),y),f=I())},Q=()=>{if(r++>=1e3)throw new Error("drbg: tried 1000 values");let y=0;const v=[];for(;y{B(),p(y);let w;for(;!(w=v(Q()));)p();return B(),w}}const s6e={bigint:o=>typeof o=="bigint",function:o=>typeof o=="function",boolean:o=>typeof o=="boolean",string:o=>typeof o=="string",stringOrUint8Array:o=>typeof o=="string"||Xh(o),isSafeInteger:o=>Number.isSafeInteger(o),array:o=>Array.isArray(o),field:(o,i)=>i.Fp.isValid(o),hash:o=>typeof o=="function"&&Number.isSafeInteger(o.outputLen)};function pd(o,i,s={}){const f=(l,r,B)=>{const I=s6e[r];if(typeof I!="function")throw new Error(`Invalid validator "${r}", expected function`);const p=o[l];if(!(B&&p===void 0)&&!I(p,o))throw new Error(`Invalid param ${String(l)}=${p} (${typeof p}), expected ${r}`)};for(const[l,r]of Object.entries(i))f(l,r,!1);for(const[l,r]of Object.entries(s))f(l,r,!0);return o}const f6e=Object.freeze(Object.defineProperty({__proto__:null,abytes:Ed,bitGet:o6e,bitLen:n6e,bitMask:N5,bitSet:a6e,bytesToHex:qg,bytesToNumberBE:Gh,bytesToNumberLE:R5,concatBytes:Rl,createHmacDrbg:Eoe,ensureBytes:_o,equalBytes:r6e,hexToBytes:Hg,hexToNumber:x5,isBytes:Xh,numberToBytesBE:Tg,numberToBytesLE:k5,numberToHexUnpadded:Coe,numberToVarBytesBE:A6e,utf8ToBytes:i6e,validateObject:pd},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Xr=BigInt(0),xr=BigInt(1),Ih=BigInt(2),h6e=BigInt(3),TR=BigInt(4),Vj=BigInt(5),Zj=BigInt(8);BigInt(9);BigInt(16);function Wi(o,i){const s=o%i;return s>=Xr?s:i+s}function g6e(o,i,s){if(s<=Xr||i 0");if(s===xr)return Xr;let f=xr;for(;i>Xr;)i&xr&&(f=f*o%s),o=o*o%s,i>>=xr;return f}function Yn(o,i,s){let f=o;for(;i-- >Xr;)f*=f,f%=s;return f}function YR(o,i){if(o===Xr||i<=Xr)throw new Error(`invert: expected positive integers, got n=${o} mod=${i}`);let s=Wi(o,i),f=i,l=Xr,r=xr;for(;s!==Xr;){const I=f/s,p=f%s,Q=l-r*I;f=s,s=p,l=r,r=Q}if(f!==xr)throw new Error("invert: does not exist");return Wi(l,i)}function u6e(o){const i=(o-xr)/Ih;let s,f,l;for(s=o-xr,f=0;s%Ih===Xr;s/=Ih,f++);for(l=Ih;l(f[l]="function",f),i);return pd(o,s)}function I6e(o,i,s){if(s 0");if(s===Xr)return o.ONE;if(s===xr)return i;let f=o.ONE,l=i;for(;s>Xr;)s&xr&&(f=o.mul(f,l)),l=o.sqr(l),s>>=xr;return f}function B6e(o,i){const s=new Array(i.length),f=i.reduce((r,B,I)=>o.is0(B)?r:(s[I]=r,o.mul(r,B)),o.ONE),l=o.inv(f);return i.reduceRight((r,B,I)=>o.is0(B)?r:(s[I]=o.mul(r,s[I]),o.mul(r,B)),l),s}function poe(o,i){const s=i!==void 0?i:o.toString(2).length,f=Math.ceil(s/8);return{nBitLength:s,nByteLength:f}}function C6e(o,i,s=!1,f={}){if(o<=Xr)throw new Error(`Expected Field ORDER > 0, got ${o}`);const{nBitLength:l,nByteLength:r}=poe(o,i);if(r>2048)throw new Error("Field lengths over 2048 bytes are not supported");const B=c6e(o),I=Object.freeze({ORDER:o,BITS:l,BYTES:r,MASK:N5(l),ZERO:Xr,ONE:xr,create:p=>Wi(p,o),isValid:p=>{if(typeof p!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof p}`);return Xr<=p&&pp===Xr,isOdd:p=>(p&xr)===xr,neg:p=>Wi(-p,o),eql:(p,Q)=>p===Q,sqr:p=>Wi(p*p,o),add:(p,Q)=>Wi(p+Q,o),sub:(p,Q)=>Wi(p-Q,o),mul:(p,Q)=>Wi(p*Q,o),pow:(p,Q)=>I6e(I,p,Q),div:(p,Q)=>Wi(p*YR(Q,o),o),sqrN:p=>p*p,addN:(p,Q)=>p+Q,subN:(p,Q)=>p-Q,mulN:(p,Q)=>p*Q,inv:p=>YR(p,o),sqrt:f.sqrt||(p=>B(I,p)),invertBatch:p=>B6e(I,p),cmov:(p,Q,d)=>d?Q:p,toBytes:p=>s?k5(p,r):Tg(p,r),fromBytes:p=>{if(p.length!==r)throw new Error(`Fp.fromBytes: expected ${r}, got ${p.length}`);return s?R5(p):Gh(p)}});return Object.freeze(I)}function Qoe(o){if(typeof o!="bigint")throw new Error("field order must be bigint");const i=o.toString(2).length;return Math.ceil(i/8)}function yoe(o){const i=Qoe(o);return i+Math.ceil(i/2)}function E6e(o,i,s=!1){const f=o.length,l=Qoe(i),r=yoe(i);if(f<16||f1024)throw new Error(`expected ${r}-1024 bytes of input, got ${f}`);const B=s?Gh(o):R5(o),I=Wi(B,i-xr)+xr;return s?k5(I,l):Tg(I,l)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const p6e=BigInt(0),qS=BigInt(1);function Q6e(o,i){const s=(l,r)=>{const B=r.negate();return l?B:r},f=l=>{const r=Math.ceil(i/l)+1,B=2**(l-1);return{windows:r,windowSize:B}};return{constTimeNegate:s,unsafeLadder(l,r){let B=o.ZERO,I=l;for(;r>p6e;)r&qS&&(B=B.add(I)),I=I.double(),r>>=qS;return B},precomputeWindow(l,r){const{windows:B,windowSize:I}=f(r),p=[];let Q=l,d=Q;for(let y=0;y>=w,x>p&&(x-=v,B+=qS);const D=m,S=m+Math.abs(x)-1,K=M%2!==0,N=x<0;x===0?d=d.add(s(K,r[D])):Q=Q.add(s(N,r[S]))}return{p:Q,f:d}},wNAFCached(l,r,B,I){const p=l._WINDOW_SIZE||1;let Q=r.get(l);return Q||(Q=this.precomputeWindow(l,p),p!==1&&r.set(l,I(Q))),this.wNAF(p,Q,B)}}}function voe(o){return d6e(o.Fp),pd(o,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...poe(o.n,o.nBitLength),...o,p:o.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function y6e(o){const i=voe(o);pd(i,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:s,Fp:f,a:l}=i;if(s){if(!f.eql(l,f.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof s!="object"||typeof s.beta!="bigint"||typeof s.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...i})}const{bytesToNumberBE:v6e,hexToBytes:w6e}=f6e,ph={Err:class extends Error{constructor(i=""){super(i)}},_parseInt(o){const{Err:i}=ph;if(o.length<2||o[0]!==2)throw new i("Invalid signature integer tag");const s=o[1],f=o.subarray(2,s+2);if(!s||f.length!==s)throw new i("Invalid signature integer: wrong length");if(f[0]&128)throw new i("Invalid signature integer: negative");if(f[0]===0&&!(f[1]&128))throw new i("Invalid signature integer: unnecessary leading zero");return{d:v6e(f),l:o.subarray(s+2)}},toSig(o){const{Err:i}=ph,s=typeof o=="string"?w6e(o):o;Ed(s);let f=s.length;if(f<2||s[0]!=48)throw new i("Invalid signature tag");if(s[1]!==f-2)throw new i("Invalid signature: incorrect length");const{d:l,l:r}=ph._parseInt(s.subarray(2)),{d:B,l:I}=ph._parseInt(r);if(I.length)throw new i("Invalid signature: left bytes after parsing");return{r:l,s:B}},hexFromSig(o){const i=Q=>Number.parseInt(Q[0],16)&8?"00"+Q:Q,s=Q=>{const d=Q.toString(16);return d.length&1?`0${d}`:d},f=i(s(o.s)),l=i(s(o.r)),r=f.length/2,B=l.length/2,I=s(r),p=s(B);return`30${s(B+r+4)}02${p}${l}02${I}${f}`}},as=BigInt(0),to=BigInt(1);BigInt(2);const zj=BigInt(3);BigInt(4);function m6e(o){const i=y6e(o),{Fp:s}=i,f=i.toBytes||((M,m,x)=>{const D=m.toAffine();return Rl(Uint8Array.from([4]),s.toBytes(D.x),s.toBytes(D.y))}),l=i.fromBytes||(M=>{const m=M.subarray(1),x=s.fromBytes(m.subarray(0,s.BYTES)),D=s.fromBytes(m.subarray(s.BYTES,2*s.BYTES));return{x,y:D}});function r(M){const{a:m,b:x}=i,D=s.sqr(M),S=s.mul(D,M);return s.add(s.add(S,s.mul(M,m)),x)}if(!s.eql(s.sqr(i.Gy),r(i.Gx)))throw new Error("bad generator point: equation left != right");function B(M){return typeof M=="bigint"&&ass.eql(K,s.ZERO);return S(x)&&S(D)?y.ZERO:new y(x,D,s.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(m){const x=s.invertBatch(m.map(D=>D.pz));return m.map((D,S)=>D.toAffine(x[S])).map(y.fromAffine)}static fromHex(m){const x=y.fromAffine(l(_o("pointHex",m)));return x.assertValidity(),x}static fromPrivateKey(m){return y.BASE.multiply(p(m))}_setWindowSize(m){this._WINDOW_SIZE=m,Q.delete(this)}assertValidity(){if(this.is0()){if(i.allowInfinityPoint&&!s.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:m,y:x}=this.toAffine();if(!s.isValid(m)||!s.isValid(x))throw new Error("bad point: x or y not FE");const D=s.sqr(x),S=r(m);if(!s.eql(D,S))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:m}=this.toAffine();if(s.isOdd)return!s.isOdd(m);throw new Error("Field doesn't support isOdd")}equals(m){d(m);const{px:x,py:D,pz:S}=this,{px:K,py:N,pz:L}=m,j=s.eql(s.mul(x,L),s.mul(K,S)),re=s.eql(s.mul(D,L),s.mul(N,S));return j&&re}negate(){return new y(this.px,s.neg(this.py),this.pz)}double(){const{a:m,b:x}=i,D=s.mul(x,zj),{px:S,py:K,pz:N}=this;let L=s.ZERO,j=s.ZERO,re=s.ZERO,Z=s.mul(S,S),J=s.mul(K,K),Ae=s.mul(N,N),E=s.mul(S,K);return E=s.add(E,E),re=s.mul(S,N),re=s.add(re,re),L=s.mul(m,re),j=s.mul(D,Ae),j=s.add(L,j),L=s.sub(J,j),j=s.add(J,j),j=s.mul(L,j),L=s.mul(E,L),re=s.mul(D,re),Ae=s.mul(m,Ae),E=s.sub(Z,Ae),E=s.mul(m,E),E=s.add(E,re),re=s.add(Z,Z),Z=s.add(re,Z),Z=s.add(Z,Ae),Z=s.mul(Z,E),j=s.add(j,Z),Ae=s.mul(K,N),Ae=s.add(Ae,Ae),Z=s.mul(Ae,E),L=s.sub(L,Z),re=s.mul(Ae,J),re=s.add(re,re),re=s.add(re,re),new y(L,j,re)}add(m){d(m);const{px:x,py:D,pz:S}=this,{px:K,py:N,pz:L}=m;let j=s.ZERO,re=s.ZERO,Z=s.ZERO;const J=i.a,Ae=s.mul(i.b,zj);let E=s.mul(x,K),e=s.mul(D,N),A=s.mul(S,L),n=s.add(x,D),a=s.add(K,N);n=s.mul(n,a),a=s.add(E,e),n=s.sub(n,a),a=s.add(x,S);let h=s.add(K,L);return a=s.mul(a,h),h=s.add(E,A),a=s.sub(a,h),h=s.add(D,S),j=s.add(N,L),h=s.mul(h,j),j=s.add(e,A),h=s.sub(h,j),Z=s.mul(J,a),j=s.mul(Ae,A),Z=s.add(j,Z),j=s.sub(e,Z),Z=s.add(e,Z),re=s.mul(j,Z),e=s.add(E,E),e=s.add(e,E),A=s.mul(J,A),a=s.mul(Ae,a),e=s.add(e,A),A=s.sub(E,A),A=s.mul(J,A),a=s.add(a,A),E=s.mul(e,a),re=s.add(re,E),E=s.mul(h,a),j=s.mul(n,j),j=s.sub(j,E),E=s.mul(n,e),Z=s.mul(h,Z),Z=s.add(Z,E),new y(j,re,Z)}subtract(m){return this.add(m.negate())}is0(){return this.equals(y.ZERO)}wNAF(m){return w.wNAFCached(this,Q,m,x=>{const D=s.invertBatch(x.map(S=>S.pz));return x.map((S,K)=>S.toAffine(D[K])).map(y.fromAffine)})}multiplyUnsafe(m){const x=y.ZERO;if(m===as)return x;if(I(m),m===to)return this;const{endo:D}=i;if(!D)return w.unsafeLadder(this,m);let{k1neg:S,k1:K,k2neg:N,k2:L}=D.splitScalar(m),j=x,re=x,Z=this;for(;K>as||L>as;)K&to&&(j=j.add(Z)),L&to&&(re=re.add(Z)),Z=Z.double(),K>>=to,L>>=to;return S&&(j=j.negate()),N&&(re=re.negate()),re=new y(s.mul(re.px,D.beta),re.py,re.pz),j.add(re)}multiply(m){I(m);let x=m,D,S;const{endo:K}=i;if(K){const{k1neg:N,k1:L,k2neg:j,k2:re}=K.splitScalar(x);let{p:Z,f:J}=this.wNAF(L),{p:Ae,f:E}=this.wNAF(re);Z=w.constTimeNegate(N,Z),Ae=w.constTimeNegate(j,Ae),Ae=new y(s.mul(Ae.px,K.beta),Ae.py,Ae.pz),D=Z.add(Ae),S=J.add(E)}else{const{p:N,f:L}=this.wNAF(x);D=N,S=L}return y.normalizeZ([D,S])[0]}multiplyAndAddUnsafe(m,x,D){const S=y.BASE,K=(L,j)=>j===as||j===to||!L.equals(S)?L.multiplyUnsafe(j):L.multiply(j),N=K(this,x).add(K(m,D));return N.is0()?void 0:N}toAffine(m){const{px:x,py:D,pz:S}=this,K=this.is0();m==null&&(m=K?s.ONE:s.inv(S));const N=s.mul(x,m),L=s.mul(D,m),j=s.mul(S,m);if(K)return{x:s.ZERO,y:s.ZERO};if(!s.eql(j,s.ONE))throw new Error("invZ was invalid");return{x:N,y:L}}isTorsionFree(){const{h:m,isTorsionFree:x}=i;if(m===to)return!0;if(x)return x(y,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:m,clearCofactor:x}=i;return m===to?this:x?x(y,this):this.multiplyUnsafe(i.h)}toRawBytes(m=!0){return this.assertValidity(),f(y,this,m)}toHex(m=!0){return qg(this.toRawBytes(m))}}y.BASE=new y(i.Gx,i.Gy,s.ONE),y.ZERO=new y(s.ZERO,s.ONE,s.ZERO);const v=i.nBitLength,w=Q6e(y,i.endo?Math.ceil(v/2):v);return{CURVE:i,ProjectivePoint:y,normPrivateKeyToScalar:p,weierstrassEquation:r,isWithinCurveOrder:B}}function M6e(o){const i=voe(o);return pd(i,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...i})}function b6e(o){const i=M6e(o),{Fp:s,n:f}=i,l=s.BYTES+1,r=2*s.BYTES+1;function B(a){return asqg(Tg(a,i.nByteLength));function M(a){const h=f>>to;return a>h}function m(a){return M(a)?I(-a):a}const x=(a,h,c)=>Gh(a.slice(h,c));class D{constructor(h,c,C){this.r=h,this.s=c,this.recovery=C,this.assertValidity()}static fromCompact(h){const c=i.nByteLength;return h=_o("compactSignature",h,c*2),new D(x(h,0,c),x(h,c,2*c))}static fromDER(h){const{r:c,s:C}=ph.toSig(_o("DER",h));return new D(c,C)}assertValidity(){if(!v(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!v(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(h){return new D(this.r,this.s,h)}recoverPublicKey(h){const{r:c,s:C,recovery:g}=this,t=re(_o("msgHash",h));if(g==null||![0,1,2,3].includes(g))throw new Error("recovery id invalid");const u=g===2||g===3?c+i.n:c;if(u>=s.ORDER)throw new Error("recovery id 2 or 3 invalid");const b=g&1?"03":"02",R=Q.fromHex(b+w(u)),T=p(u),V=I(-t*T),P=I(C*T),F=Q.BASE.multiplyAndAddUnsafe(R,V,P);if(!F)throw new Error("point at infinify");return F.assertValidity(),F}hasHighS(){return M(this.s)}normalizeS(){return this.hasHighS()?new D(this.r,I(-this.s),this.recovery):this}toDERRawBytes(){return Hg(this.toDERHex())}toDERHex(){return ph.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Hg(this.toCompactHex())}toCompactHex(){return w(this.r)+w(this.s)}}const S={isValidPrivateKey(a){try{return d(a),!0}catch{return!1}},normPrivateKeyToScalar:d,randomPrivateKey:()=>{const a=yoe(i.n);return E6e(i.randomBytes(a),i.n)},precompute(a=8,h=Q.BASE){return h._setWindowSize(a),h.multiply(BigInt(3)),h}};function K(a,h=!0){return Q.fromPrivateKey(a).toRawBytes(h)}function N(a){const h=Xh(a),c=typeof a=="string",C=(h||c)&&a.length;return h?C===l||C===r:c?C===2*l||C===2*r:a instanceof Q}function L(a,h,c=!0){if(N(a))throw new Error("first arg must be private key");if(!N(h))throw new Error("second arg must be public key");return Q.fromHex(h).multiply(d(a)).toRawBytes(c)}const j=i.bits2int||function(a){const h=Gh(a),c=a.length*8-i.nBitLength;return c>0?h>>BigInt(c):h},re=i.bits2int_modN||function(a){return I(j(a))},Z=N5(i.nBitLength);function J(a){if(typeof a!="bigint")throw new Error("bigint expected");if(!(as<=a&&aW in c))throw new Error("sign() legacy options not supported");const{hash:C,randomBytes:g}=i;let{lowS:t,prehash:u,extraEntropy:b}=c;t==null&&(t=!0),a=_o("msgHash",a),u&&(a=_o("prehashed msgHash",C(a)));const R=re(a),T=d(h),V=[J(T),J(R)];if(b!=null&&b!==!1){const W=b===!0?g(s.BYTES):b;V.push(_o("extraEntropy",W))}const P=Rl(...V),F=R;function Y(W){const te=j(W);if(!v(te))return;const z=p(te),q=Q.BASE.multiply(te).toAffine(),$=I(q.x);if($===as)return;const le=I(z*I(F+$*T));if(le===as)return;let ae=(q.x===$?0:2)|Number(q.y&to),he=le;return t&&M(le)&&(he=m(le),ae^=1),new D($,he,ae)}return{seed:P,k2sig:Y}}const E={lowS:i.lowS,prehash:!1},e={lowS:i.lowS,prehash:!1};function A(a,h,c=E){const{seed:C,k2sig:g}=Ae(a,h,c),t=i;return Eoe(t.hash.outputLen,t.nByteLength,t.hmac)(C,g)}Q.BASE._setWindowSize(8);function n(a,h,c,C=e){var q;const g=a;if(h=_o("msgHash",h),c=_o("publicKey",c),"strict"in C)throw new Error("options.strict was renamed to lowS");const{lowS:t,prehash:u}=C;let b,R;try{if(typeof g=="string"||Xh(g))try{b=D.fromDER(g)}catch($){if(!($ instanceof ph.Err))throw $;b=D.fromCompact(g)}else if(typeof g=="object"&&typeof g.r=="bigint"&&typeof g.s=="bigint"){const{r:$,s:le}=g;b=new D($,le)}else throw new Error("PARSE");R=Q.fromHex(c)}catch($){if($.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(t&&b.hasHighS())return!1;u&&(h=i.hash(h));const{r:T,s:V}=b,P=re(h),F=p(V),Y=I(P*F),W=I(T*F),te=(q=Q.BASE.multiplyAndAddUnsafe(R,Y,W))==null?void 0:q.toAffine();return te?I(te.x)===T:!1}return{CURVE:i,getPublicKey:K,getSharedSecret:L,sign:A,verify:n,ProjectivePoint:Q,Signature:D,utils:S}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function D6e(o){return{hash:o,hmac:(i,...s)=>Ioe(o,i,JSe(...s)),randomBytes:OSe}}function S6e(o,i){const s=f=>b6e({...o,...D6e(f)});return Object.freeze({...s(i),create:s})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const woe=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),$j=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),x6e=BigInt(1),JR=BigInt(2),Xj=(o,i)=>(o+i/JR)/i;function R6e(o){const i=woe,s=BigInt(3),f=BigInt(6),l=BigInt(11),r=BigInt(22),B=BigInt(23),I=BigInt(44),p=BigInt(88),Q=o*o*o%i,d=Q*Q*o%i,y=Yn(d,s,i)*d%i,v=Yn(y,s,i)*d%i,w=Yn(v,JR,i)*Q%i,M=Yn(w,l,i)*w%i,m=Yn(M,r,i)*M%i,x=Yn(m,I,i)*m%i,D=Yn(x,p,i)*x%i,S=Yn(D,I,i)*m%i,K=Yn(S,s,i)*d%i,N=Yn(K,B,i)*M%i,L=Yn(N,f,i)*Q%i,j=Yn(L,JR,i);if(!PR.eql(PR.sqr(j),o))throw new Error("Cannot find square root");return j}const PR=C6e(woe,void 0,void 0,{sqrt:R6e}),cu=S6e({a:BigInt(0),b:BigInt(7),Fp:PR,n:$j,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:o=>{const i=$j,s=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),f=-x6e*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),l=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),r=s,B=BigInt("0x100000000000000000000000000000000"),I=Xj(r*o,i),p=Xj(-f*o,i);let Q=Wi(o-I*s-p*l,i),d=Wi(-I*f-p*r,i);const y=Q>B,v=d>B;if(y&&(Q=i-Q),v&&(d=i-d),Q>B||d>B)throw new Error("splitScalar: Endomorphism failed, k="+o);return{k1neg:y,k1:Q,k2neg:v,k2:d}}}},XSe);BigInt(0);cu.ProjectivePoint;const k6e=Object.freeze(Object.defineProperty({__proto__:null,secp256k1:cu},Symbol.toStringTag,{value:"Module"}));var HS;const ys=(HS=cu)!==null&&HS!==void 0?HS:k6e,eW=BigInt("0xffffffffffffffff"),kl=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),N6e=ys.CURVE.n,_6e=N6e/BigInt(2),K6e={type:"object",required:["crypto","id","version","address"],properties:{crypto:{type:"object",required:["cipher","ciphertext","cipherparams","kdf","kdfparams","mac"],properties:{cipher:{type:"string"},ciphertext:{type:"string"},cipherparams:{type:"object"},kdf:{type:"string"},kdfparams:{type:"object"},salt:{type:"string"},mac:{type:"string"}}},id:{type:"string"},version:{type:"number"},address:{type:"string"}}};var yp;(function(o){o[o.Mainnet=1]="Mainnet",o[o.Goerli=5]="Goerli",o[o.Sepolia=11155111]="Sepolia"})(yp||(yp={}));var nr;(function(o){o.Chainstart="chainstart",o.Homestead="homestead",o.Dao="dao",o.TangerineWhistle="tangerineWhistle",o.SpuriousDragon="spuriousDragon",o.Byzantium="byzantium",o.Constantinople="constantinople",o.Petersburg="petersburg",o.Istanbul="istanbul",o.MuirGlacier="muirGlacier",o.Berlin="berlin",o.London="london",o.ArrowGlacier="arrowGlacier",o.GrayGlacier="grayGlacier",o.MergeForkIdTransition="mergeForkIdTransition",o.Merge="merge",o.Shanghai="shanghai",o.ShardingForkDev="shardingFork"})(nr||(nr={}));var tW;(function(o){o.ProofOfStake="pos",o.ProofOfWork="pow",o.ProofOfAuthority="poa"})(tW||(tW={}));var AW;(function(o){o.Ethash="ethash",o.Clique="clique",o.Casper="casper"})(AW||(AW={}));var Ci;(function(o){o.PolygonMainnet="polygon-mainnet",o.PolygonMumbai="polygon-mumbai",o.ArbitrumRinkebyTestnet="arbitrum-rinkeby-testnet",o.ArbitrumOne="arbitrum-one",o.xDaiChain="x-dai-chain",o.OptimisticKovan="optimistic-kovan",o.OptimisticEthereum="optimistic-ethereum"})(Ci||(Ci={}));var no;(function(o){o[o.Number=0]="Number",o[o.BigInt=1]="BigInt",o[o.Uint8Array=2]="Uint8Array",o[o.PrefixedHexString=3]="PrefixedHexString"})(no||(no={}));const moe=o=>{if(typeof o!="string")throw new Error(`[stripHexPrefix] input must be type 'string', received ${typeof o}`);return u5(o)?o.slice(2):o};function F6e(o){return!o||o==="0x0"?"0x0000000000000000":u5(o)?`0x${moe(o).padStart(16,"0")}`:`0x${o.padStart(16,"0")}`}const Moe=function(o){if(!Number.isSafeInteger(o)||o<0)throw new Error(`Received an invalid integer type: ${o}`);return`0x${o.toString(16)}`};function G6e(o,i=!0){var s,f;const{name:l,config:r,difficulty:B,mixHash:I,gasLimit:p,coinbase:Q,baseFeePerGas:d}=o;let{extraData:y,timestamp:v,nonce:w}=o;const M=Number(v),{chainId:m}=r;if(y===""&&(y="0x"),u5(v)||(v=Moe(parseInt(v))),w.length!==18&&(w=F6e(w)),r.eip155Block!==r.eip158Block)throw new Error("EIP155 block number must equal EIP 158 block number since both are part of SpuriousDragon hardfork and the client only supports activating the full hardfork");const x={name:l,chainId:m,networkId:m,genesis:{timestamp:v,gasLimit:parseInt(p),difficulty:parseInt(B),nonce:w,extraData:y,mixHash:I,coinbase:Q,baseFeePerGas:d},hardfork:void 0,hardforks:[],bootstrapNodes:[],consensus:r.clique!==void 0?{type:"poa",algorithm:"clique",clique:{period:(s=r.clique.period)!==null&&s!==void 0?s:r.clique.blockperiodseconds,epoch:(f=r.clique.epoch)!==null&&f!==void 0?f:r.clique.epochlength}}:{type:"pow",algorithm:"ethash",ethash:{}}},D={[nr.Homestead]:{name:"homesteadBlock"},[nr.Dao]:{name:"daoForkBlock"},[nr.TangerineWhistle]:{name:"eip150Block"},[nr.SpuriousDragon]:{name:"eip155Block"},[nr.Byzantium]:{name:"byzantiumBlock"},[nr.Constantinople]:{name:"constantinopleBlock"},[nr.Petersburg]:{name:"petersburgBlock"},[nr.Istanbul]:{name:"istanbulBlock"},[nr.MuirGlacier]:{name:"muirGlacierBlock"},[nr.Berlin]:{name:"berlinBlock"},[nr.London]:{name:"londonBlock"},[nr.MergeForkIdTransition]:{name:"mergeForkBlock",postMerge:i},[nr.Shanghai]:{name:"shanghaiTime",postMerge:!0,isTimestamp:!0},[nr.ShardingForkDev]:{name:"shardingForkTime",postMerge:!0,isTimestamp:!0}},S=Object.keys(D).reduce((L,j)=>(L[D[j].name]=j,L),{}),K=Object.keys(r).filter(L=>S[L]!==void 0&&r[L]!==void 0&&r[L]!==null);if(x.hardforks=K.map(L=>({name:S[L],block:D[S[L]].isTimestamp===!0||typeof r[L]!="number"?null:r[L],timestamp:D[S[L]].isTimestamp===!0&&typeof r[L]=="number"?r[L]:void 0})).filter(L=>L.block!==null||L.timestamp!==void 0),x.hardforks.sort((L,j)=>{var re,Z;return((re=L.block)!==null&&re!==void 0?re:1/0)-((Z=j.block)!==null&&Z!==void 0?Z:1/0)}),x.hardforks.sort((L,j)=>{var re,Z;return((re=L.timestamp)!==null&&re!==void 0?re:M)-((Z=j.timestamp)!==null&&Z!==void 0?Z:M)}),r.terminalTotalDifficulty!==void 0){const L={name:nr.Merge,ttd:r.terminalTotalDifficulty,block:null},j=x.hardforks.findIndex(re=>{var Z;return((Z=D[re.name])===null||Z===void 0?void 0:Z.postMerge)===!0});j!==-1?x.hardforks.splice(j,0,L):x.hardforks.push(L)}const N=x.hardforks.length>0?x.hardforks.slice(-1)[0]:void 0;return x.hardfork=N==null?void 0:N.name,x.hardforks.unshift({name:nr.Chainstart,block:0}),x}function L6e(o,i,s){try{if(["config","difficulty","gasLimit","alloc"].some(f=>!(f in o)))throw new Error("Invalid format, expected geth genesis fields missing");return i!==void 0&&(o.name=i),G6e(o,s)}catch(f){throw new Error(`Error parsing parameters file: ${f.message}`)}}function boe(o){let i=o;if(typeof i!="string")throw new Error(`[padToEven] value must be type 'string', received ${typeof i}`);return i.length%2&&(i=`0${i}`),i}const U6e=function(o){const i=Moe(o);return ar(`0x${boe(i.slice(2))}`)},lr=function(o){var i;if(o==null)return new Uint8Array;if(o instanceof Uint8Array)return o;if(((i=o==null?void 0:o.constructor)===null||i===void 0?void 0:i.name)==="Uint8Array"||Array.isArray(o))return Uint8Array.from(o);if(typeof o=="string"){if(!Rne(o))throw new Error(`Cannot convert string to Uint8Array. only supports 0x-prefixed hex strings and this string was given: ${o}`);return ar(boe(moe(o)))}if(typeof o=="number")return lr(Yr(o));if(typeof o=="bigint"){if(o0&&i.toString()==="0";)o=o.slice(1),i=o[0];return o}const vp=function(o){return _5(o),T6e(o)},dr=o=>`0x${o.toString(16)}`;function GA(o){return vp(q6e(o))}function Y6e(o,i){return o===BigInt(0)||o===BigInt(1)?o:i===void 0?o-BigInt(27):o-(i*BigInt(2)+BigInt(35))}function J6e(o){return o===BigInt(0)||o===BigInt(1)}const K5=function(o,i,s,f,l){const r=Y6e(i,l);if(!J6e(r))throw new Error("Invalid signature v value");return new ys.Signature(Ar(s),Ar(f)).addRecoveryBit(Number(r)).recoverPublicKey(o).toRawBytes(!1).slice(1)};function U0(o,i){if(o===null)return null;if(o===void 0)return;if(typeof o=="string"&&!Rne(o))throw new Error(`A string must be provided with a 0x-prefix, given: ${o}`);if(typeof o=="number"&&!Number.isSafeInteger(o))throw new Error("The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)");const s=lr(o);switch(i){case no.Uint8Array:return s;case no.BigInt:return Ar(s);case no.Number:{const f=Ar(s);if(f>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)");return Number(f)}case no.PrefixedHexString:return SA(s);default:throw new Error("unknown outputType")}}var So={},iW;function P6e(){if(iW)return So;iW=1,Object.defineProperty(So,"__esModule",{value:!0}),So.RLP=So.utils=So.decode=So.encode=void 0;function o(D){if(Array.isArray(D)){const K=[];let N=0;for(let L=0;LD.length)throw new Error("invalid RLP (safeSlice): end slice of Uint8Array out-of-bounds");return D.slice(S,K)}function s(D){if(D[0]===0)throw new Error("invalid RLP: extra zeros");return p(I(D))}function f(D,S){if(D<56)return Uint8Array.from([D+S]);const K=v(D),N=K.length/2,L=v(S+55+N);return Uint8Array.from(Q(L+K))}function l(D,S=!1){if(typeof D>"u"||D===null||D.length===0)return Uint8Array.from([]);const K=x(D),N=r(K);if(S)return N;if(N.remainder.length!==0)throw new Error("invalid RLP: remainder must be zero");return N.data}So.decode=l;function r(D){let S,K,N,L,j;const re=[],Z=D[0];if(Z<=127)return{data:D.slice(0,1),remainder:D.slice(1)};if(Z<=183){if(S=Z-127,Z===128?N=Uint8Array.from([]):N=i(D,1,S),S===2&&N[0]<128)throw new Error("invalid RLP encoding: invalid prefix, single byte < 0x80 are not prefixed");return{data:N,remainder:D.slice(S)}}else if(Z<=191){if(K=Z-182,D.length-1D.length)throw new Error("invalid RLP: total length is larger than the data");for(L=i(D,K,J);L.length;)j=r(L),re.push(j.data),L=j.remainder;return{data:re,remainder:D.slice(J)}}}const B=Array.from({length:256},(D,S)=>S.toString(16).padStart(2,"0"));function I(D){let S="";for(let K=0;KN+L.length,0),K=new Uint8Array(S);for(let N=0,L=0;N=2&&D[0]==="0"&&D[1]==="x"}function m(D){return typeof D!="string"?D:M(D)?D.slice(2):D}function x(D){if(D instanceof Uint8Array)return D;if(typeof D=="string")return M(D)?Q(w(m(D))):y(D);if(typeof D=="number"||typeof D=="bigint")return D?Q(v(D)):Uint8Array.from([]);if(D==null)return Uint8Array.from([]);throw new Error("toBytes: received unsupported type "+typeof D)}return So.utils={bytesToHex:I,concatBytes:d,hexToBytes:Q,utf8ToBytes:y},So.RLP={encode:o,decode:l},So}var oo=P6e(),TS={};/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */var nW;function O6e(){return nW||(nW=1,function(o){(function(i){i(typeof DO_NOT_EXPORT_CRC>"u"?o:{})})(function(i){i.version="1.2.2";function s(){for(var Z=0,J=new Array(256),Ae=0;Ae!=256;++Ae)Z=Ae,Z=Z&1?-306674912^Z>>>1:Z>>>1,Z=Z&1?-306674912^Z>>>1:Z>>>1,Z=Z&1?-306674912^Z>>>1:Z>>>1,Z=Z&1?-306674912^Z>>>1:Z>>>1,Z=Z&1?-306674912^Z>>>1:Z>>>1,Z=Z&1?-306674912^Z>>>1:Z>>>1,Z=Z&1?-306674912^Z>>>1:Z>>>1,Z=Z&1?-306674912^Z>>>1:Z>>>1,J[Ae]=Z;return typeof Int32Array<"u"?new Int32Array(J):J}var f=s();function l(Z){var J=0,Ae=0,E=0,e=typeof Int32Array<"u"?new Int32Array(4096):new Array(4096);for(E=0;E!=256;++E)e[E]=Z[E];for(E=0;E!=256;++E)for(Ae=Z[E],J=256+E;J<4096;J+=256)Ae=e[J]=Ae>>>8^Z[Ae&255];var A=[];for(E=1;E!=16;++E)A[E-1]=typeof Int32Array<"u"?e.subarray(E*256,E*256+256):e.slice(E*256,E*256+256);return A}var r=l(f),B=r[0],I=r[1],p=r[2],Q=r[3],d=r[4],y=r[5],v=r[6],w=r[7],M=r[8],m=r[9],x=r[10],D=r[11],S=r[12],K=r[13],N=r[14];function L(Z,J){for(var Ae=J^-1,E=0,e=Z.length;E>>8^f[(Ae^Z.charCodeAt(E++))&255];return~Ae}function j(Z,J){for(var Ae=J^-1,E=Z.length-15,e=0;e>8&255]^S[Z[e++]^Ae>>16&255]^D[Z[e++]^Ae>>>24]^x[Z[e++]]^m[Z[e++]]^M[Z[e++]]^w[Z[e++]]^v[Z[e++]]^y[Z[e++]]^d[Z[e++]]^Q[Z[e++]]^p[Z[e++]]^I[Z[e++]]^B[Z[e++]]^f[Z[e++]];for(E+=15;e>>8^f[(Ae^Z[e++])&255];return~Ae}function re(Z,J){for(var Ae=J^-1,E=0,e=Z.length,A=0,n=0;E>>8^f[(Ae^A)&255]:A<2048?(Ae=Ae>>>8^f[(Ae^(192|A>>6&31))&255],Ae=Ae>>>8^f[(Ae^(128|A&63))&255]):A>=55296&&A<57344?(A=(A&1023)+64,n=Z.charCodeAt(E++)&1023,Ae=Ae>>>8^f[(Ae^(240|A>>8&7))&255],Ae=Ae>>>8^f[(Ae^(128|A>>2&63))&255],Ae=Ae>>>8^f[(Ae^(128|n>>6&15|(A&3)<<4))&255],Ae=Ae>>>8^f[(Ae^(128|n&63))&255]):(Ae=Ae>>>8^f[(Ae^(224|A>>12&15))&255],Ae=Ae>>>8^f[(Ae^(128|A>>6&63))&255],Ae=Ae>>>8^f[(Ae^(128|A&63))&255]);return~Ae}i.table=f,i.bstr=L,i.buf=j,i.str=re})}(TS)),TS}var j6e=O6e();const W6e=gr(j6e),V6e={name:"goerli",chainId:5,networkId:5,defaultHardfork:"merge",consensus:{type:"poa",algorithm:"clique",clique:{period:15,epoch:3e4}},comment:"Cross-client PoA test network",url:"https://github.com/goerli/testnet",genesis:{timestamp:"0x5c51a607",gasLimit:10485760,difficulty:1,nonce:"0x0000000000000000",extraData:"0x22466c6578692069732061207468696e6722202d204166726900000000000000e0a2bd4258d2768837baa26a28fe71dc079f84c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},hardforks:[{name:"chainstart",block:0,forkHash:"0xa3f5ab08"},{name:"homestead",block:0,forkHash:"0xa3f5ab08"},{name:"tangerineWhistle",block:0,forkHash:"0xa3f5ab08"},{name:"spuriousDragon",block:0,forkHash:"0xa3f5ab08"},{name:"byzantium",block:0,forkHash:"0xa3f5ab08"},{name:"constantinople",block:0,forkHash:"0xa3f5ab08"},{name:"petersburg",block:0,forkHash:"0xa3f5ab08"},{name:"istanbul",block:1561651,forkHash:"0xc25efa5c"},{name:"berlin",block:4460644,forkHash:"0x757a1c47"},{name:"london",block:5062605,forkHash:"0xb8c6299d"},{"//_comment":"The forkHash will remain same as mergeForkIdTransition is post merge, terminal block: https://goerli.etherscan.io/block/7382818",name:"merge",ttd:"10790000",block:7382819,forkHash:"0xb8c6299d"},{name:"mergeForkIdTransition",block:null,forkHash:null},{name:"shanghai",block:null,forkHash:null}],bootstrapNodes:[],dnsNetworks:["enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.goerli.ethdisco.net"]},Z6e={name:"mainnet",chainId:1,networkId:1,defaultHardfork:"merge",consensus:{type:"pow",algorithm:"ethash",ethash:{}},comment:"The Ethereum main chain",url:"https://ethstats.net/",genesis:{gasLimit:5e3,difficulty:17179869184,nonce:"0x0000000000000042",extraData:"0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa"},hardforks:[{name:"chainstart",block:0,forkHash:"0xfc64ec04"},{name:"homestead",block:115e4,forkHash:"0x97c2c34c"},{name:"dao",block:192e4,forkHash:"0x91d1f948"},{name:"tangerineWhistle",block:2463e3,forkHash:"0x7a64da13"},{name:"spuriousDragon",block:2675e3,forkHash:"0x3edd5b10"},{name:"byzantium",block:437e4,forkHash:"0xa00bc324"},{name:"constantinople",block:728e4,forkHash:"0x668db0af"},{name:"petersburg",block:728e4,forkHash:"0x668db0af"},{name:"istanbul",block:9069e3,forkHash:"0x879d6e30"},{name:"muirGlacier",block:92e5,forkHash:"0xe029e991"},{name:"berlin",block:12244e3,forkHash:"0x0eb440f6"},{name:"london",block:12965e3,forkHash:"0xb715077d"},{name:"arrowGlacier",block:13773e3,forkHash:"0x20c327fc"},{name:"grayGlacier",block:1505e4,forkHash:"0xf0afd0e3"},{"//_comment":"The forkHash will remain same as mergeForkIdTransition is post merge, terminal block: https://etherscan.io/block/15537393",name:"merge",ttd:"58750000000000000000000",block:15537394,forkHash:"0xf0afd0e3"},{name:"mergeForkIdTransition",block:null,forkHash:null},{name:"shanghai",block:null,forkHash:null}],bootstrapNodes:[],dnsNetworks:["enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net"]},z6e={name:"sepolia",chainId:11155111,networkId:11155111,defaultHardfork:"merge",consensus:{type:"pow",algorithm:"ethash",ethash:{}},comment:"PoW test network to replace Ropsten",url:"https://github.com/ethereum/go-ethereum/pull/23730",genesis:{timestamp:"0x6159af19",gasLimit:3e7,difficulty:131072,nonce:"0x0000000000000000",extraData:"0x5365706f6c69612c20417468656e732c204174746963612c2047726565636521"},hardforks:[{name:"chainstart",block:0,forkHash:"0xfe3366e7"},{name:"homestead",block:0,forkHash:"0xfe3366e7"},{name:"tangerineWhistle",block:0,forkHash:"0xfe3366e7"},{name:"spuriousDragon",block:0,forkHash:"0xfe3366e7"},{name:"byzantium",block:0,forkHash:"0xfe3366e7"},{name:"constantinople",block:0,forkHash:"0xfe3366e7"},{name:"petersburg",block:0,forkHash:"0xfe3366e7"},{name:"istanbul",block:0,forkHash:"0xfe3366e7"},{name:"muirGlacier",block:0,forkHash:"0xfe3366e7"},{name:"berlin",block:0,forkHash:"0xfe3366e7"},{name:"london",block:0,forkHash:"0xfe3366e7"},{"//_comment":"The forkHash will remain same as mergeForkIdTransition is post merge, terminal block: https://sepolia.etherscan.io/block/1450408",name:"merge",ttd:"17000000000000000",block:1450409,forkHash:"0xfe3366e7"},{name:"mergeForkIdTransition",block:1735371,forkHash:"0xb96cbd13"},{name:"shanghai",block:null,timestamp:"1677557088",forkHash:"0xf7f9bc08"}],bootstrapNodes:[],dnsNetworks:["enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.sepolia.ethdisco.net"]},$6e={name:"EIP-1153",number:1153,comment:"Transient Storage",url:"https://eips.ethereum.org/EIPS/eip-1153",status:"Review",minimumHardfork:"chainstart",requiredEIPs:[],gasConfig:{},gasPrices:{tstore:{v:100,d:"Base fee of the TSTORE opcode"},tload:{v:100,d:"Base fee of the TLOAD opcode"}},vm:{},pow:{}},X6e={name:"EIP-1559",number:1559,comment:"Fee market change for ETH 1.0 chain",url:"https://eips.ethereum.org/EIPS/eip-1559",status:"Final",minimumHardfork:"berlin",requiredEIPs:[2930],gasConfig:{baseFeeMaxChangeDenominator:{v:8,d:"Maximum base fee change denominator"},elasticityMultiplier:{v:2,d:"Maximum block gas target elasticity"},initialBaseFee:{v:1e9,d:"Initial base fee on first EIP1559 block"}},gasPrices:{},vm:{},pow:{}},e4e={name:"EIP-2315",number:2315,comment:"Simple subroutines for the EVM",url:"https://eips.ethereum.org/EIPS/eip-2315",status:"Draft",minimumHardfork:"istanbul",gasConfig:{},gasPrices:{beginsub:{v:2,d:"Base fee of the BEGINSUB opcode"},returnsub:{v:5,d:"Base fee of the RETURNSUB opcode"},jumpsub:{v:10,d:"Base fee of the JUMPSUB opcode"}},vm:{},pow:{}},t4e={name:"EIP-2537",number:2537,comment:"BLS12-381 precompiles",url:"https://eips.ethereum.org/EIPS/eip-2537",status:"Draft",minimumHardfork:"chainstart",gasConfig:{},gasPrices:{Bls12381G1AddGas:{v:600,d:"Gas cost of a single BLS12-381 G1 addition precompile-call"},Bls12381G1MulGas:{v:12e3,d:"Gas cost of a single BLS12-381 G1 multiplication precompile-call"},Bls12381G2AddGas:{v:4500,d:"Gas cost of a single BLS12-381 G2 addition precompile-call"},Bls12381G2MulGas:{v:55e3,d:"Gas cost of a single BLS12-381 G2 multiplication precompile-call"},Bls12381PairingBaseGas:{v:115e3,d:"Base gas cost of BLS12-381 pairing check"},Bls12381PairingPerPairGas:{v:23e3,d:"Per-pair gas cost of BLS12-381 pairing check"},Bls12381MapG1Gas:{v:5500,d:"Gas cost of BLS12-381 map field element to G1"},Bls12381MapG2Gas:{v:11e4,d:"Gas cost of BLS12-381 map field element to G2"},Bls12381MultiExpGasDiscount:{v:[[1,1200],[2,888],[3,764],[4,641],[5,594],[6,547],[7,500],[8,453],[9,438],[10,423],[11,408],[12,394],[13,379],[14,364],[15,349],[16,334],[17,330],[18,326],[19,322],[20,318],[21,314],[22,310],[23,306],[24,302],[25,298],[26,294],[27,289],[28,285],[29,281],[30,277],[31,273],[32,269],[33,268],[34,266],[35,265],[36,263],[37,262],[38,260],[39,259],[40,257],[41,256],[42,254],[43,253],[44,251],[45,250],[46,248],[47,247],[48,245],[49,244],[50,242],[51,241],[52,239],[53,238],[54,236],[55,235],[56,233],[57,232],[58,231],[59,229],[60,228],[61,226],[62,225],[63,223],[64,222],[65,221],[66,220],[67,219],[68,219],[69,218],[70,217],[71,216],[72,216],[73,215],[74,214],[75,213],[76,213],[77,212],[78,211],[79,211],[80,210],[81,209],[82,208],[83,208],[84,207],[85,206],[86,205],[87,205],[88,204],[89,203],[90,202],[91,202],[92,201],[93,200],[94,199],[95,199],[96,198],[97,197],[98,196],[99,196],[100,195],[101,194],[102,193],[103,193],[104,192],[105,191],[106,191],[107,190],[108,189],[109,188],[110,188],[111,187],[112,186],[113,185],[114,185],[115,184],[116,183],[117,182],[118,182],[119,181],[120,180],[121,179],[122,179],[123,178],[124,177],[125,176],[126,176],[127,175],[128,174]],d:"Discount gas costs of calls to the MultiExp precompiles with `k` (point, scalar) pair"}},vm:{},pow:{}},A4e={name:"EIP-2565",number:2565,comment:"ModExp gas cost",url:"https://eips.ethereum.org/EIPS/eip-2565",status:"Final",minimumHardfork:"byzantium",gasConfig:{},gasPrices:{modexpGquaddivisor:{v:3,d:"Gquaddivisor from modexp precompile for gas calculation"}},vm:{},pow:{}},r4e={name:"EIP-2718",comment:"Typed Transaction Envelope",url:"https://eips.ethereum.org/EIPS/eip-2718",status:"Final",minimumHardfork:"chainstart",gasConfig:{},gasPrices:{},vm:{},pow:{}},i4e={name:"EIP-2929",comment:"Gas cost increases for state access opcodes",url:"https://eips.ethereum.org/EIPS/eip-2929",status:"Final",minimumHardfork:"chainstart",gasConfig:{},gasPrices:{coldsload:{v:2100,d:"Gas cost of the first read of storage from a given location (per transaction)"},coldaccountaccess:{v:2600,d:"Gas cost of the first read of a given address (per transaction)"},warmstorageread:{v:100,d:"Gas cost of reading storage locations which have already loaded 'cold'"},sstoreCleanGasEIP2200:{v:2900,d:"Once per SSTORE operation from clean non-zero to something else"},sstoreNoopGasEIP2200:{v:100,d:"Once per SSTORE operation if the value doesn't change"},sstoreDirtyGasEIP2200:{v:100,d:"Once per SSTORE operation if a dirty value is changed"},sstoreInitRefundEIP2200:{v:19900,d:"Once per SSTORE operation for resetting to the original zero value"},sstoreCleanRefundEIP2200:{v:4900,d:"Once per SSTORE operation for resetting to the original non-zero value"},call:{v:0,d:"Base fee of the CALL opcode"},callcode:{v:0,d:"Base fee of the CALLCODE opcode"},delegatecall:{v:0,d:"Base fee of the DELEGATECALL opcode"},staticcall:{v:0,d:"Base fee of the STATICCALL opcode"},balance:{v:0,d:"Base fee of the BALANCE opcode"},extcodesize:{v:0,d:"Base fee of the EXTCODESIZE opcode"},extcodecopy:{v:0,d:"Base fee of the EXTCODECOPY opcode"},extcodehash:{v:0,d:"Base fee of the EXTCODEHASH opcode"},sload:{v:0,d:"Base fee of the SLOAD opcode"},sstore:{v:0,d:"Base fee of the SSTORE opcode"}},vm:{},pow:{}},n4e={name:"EIP-2930",comment:"Optional access lists",url:"https://eips.ethereum.org/EIPS/eip-2930",status:"Final",minimumHardfork:"istanbul",requiredEIPs:[2718,2929],gasConfig:{},gasPrices:{accessListStorageKeyCost:{v:1900,d:"Gas cost per storage key in an Access List transaction"},accessListAddressCost:{v:2400,d:"Gas cost per storage key in an Access List transaction"}},vm:{},pow:{}},o4e={name:"EIP-3198",number:3198,comment:"BASEFEE opcode",url:"https://eips.ethereum.org/EIPS/eip-3198",status:"Final",minimumHardfork:"london",gasConfig:{},gasPrices:{basefee:{v:2,d:"Gas cost of the BASEFEE opcode"}},vm:{},pow:{}},a4e={name:"EIP-3529",comment:"Reduction in refunds",url:"https://eips.ethereum.org/EIPS/eip-3529",status:"Final",minimumHardfork:"berlin",requiredEIPs:[2929],gasConfig:{maxRefundQuotient:{v:5,d:"Maximum refund quotient; max tx refund is min(tx.gasUsed/maxRefundQuotient, tx.gasRefund)"}},gasPrices:{selfdestructRefund:{v:0,d:"Refunded following a selfdestruct operation"},sstoreClearRefundEIP2200:{v:4800,d:"Once per SSTORE operation for clearing an originally existing storage slot"}},vm:{},pow:{}},s4e={name:"EIP-3540",number:3540,comment:"EVM Object Format (EOF) v1",url:"https://eips.ethereum.org/EIPS/eip-3540",status:"Review",minimumHardfork:"london",requiredEIPs:[3541],gasConfig:{},gasPrices:{},vm:{},pow:{}},f4e={name:"EIP-3541",comment:"Reject new contracts starting with the 0xEF byte",url:"https://eips.ethereum.org/EIPS/eip-3541",status:"Final",minimumHardfork:"berlin",requiredEIPs:[],gasConfig:{},gasPrices:{},vm:{},pow:{}},h4e={name:"EIP-3554",comment:"Reduction in refunds",url:"Difficulty Bomb Delay to December 1st 2021",status:"Final",minimumHardfork:"muirGlacier",requiredEIPs:[],gasConfig:{},gasPrices:{},vm:{},pow:{difficultyBombDelay:{v:95e5,d:"the amount of blocks to delay the difficulty bomb with"}}},g4e={name:"EIP-3607",number:3607,comment:"Reject transactions from senders with deployed code",url:"https://eips.ethereum.org/EIPS/eip-3607",status:"Final",minimumHardfork:"chainstart",requiredEIPs:[],gasConfig:{},gasPrices:{},vm:{},pow:{}},u4e={name:"EIP-3651",number:3198,comment:"Warm COINBASE",url:"https://eips.ethereum.org/EIPS/eip-3651",status:"Review",minimumHardfork:"london",requiredEIPs:[2929],gasConfig:{},gasPrices:{},vm:{},pow:{}},c4e={name:"EIP-3670",number:3670,comment:"EOF - Code Validation",url:"https://eips.ethereum.org/EIPS/eip-3670",status:"Review",minimumHardfork:"london",requiredEIPs:[3540],gasConfig:{},gasPrices:{},vm:{},pow:{}},l4e={name:"EIP-3675",number:3675,comment:"Upgrade consensus to Proof-of-Stake",url:"https://eips.ethereum.org/EIPS/eip-3675",status:"Final",minimumHardfork:"london",requiredEIPs:[],gasConfig:{},gasPrices:{},vm:{},pow:{}},d4e={name:"EIP-3855",number:3855,comment:"PUSH0 instruction",url:"https://eips.ethereum.org/EIPS/eip-3855",status:"Review",minimumHardfork:"chainstart",requiredEIPs:[],gasConfig:{},gasPrices:{push0:{v:2,d:"Base fee of the PUSH0 opcode"}},vm:{},pow:{}},I4e={name:"EIP-3860",number:3860,comment:"Limit and meter initcode",url:"https://eips.ethereum.org/EIPS/eip-3860",status:"Review",minimumHardfork:"spuriousDragon",requiredEIPs:[],gasConfig:{},gasPrices:{initCodeWordCost:{v:2,d:"Gas to pay for each word (32 bytes) of initcode when creating a contract"}},vm:{maxInitCodeSize:{v:49152,d:"Maximum length of initialization code when creating a contract"}},pow:{}},B4e={name:"EIP-4345",number:4345,comment:"Difficulty Bomb Delay to June 2022",url:"https://eips.ethereum.org/EIPS/eip-4345",status:"Final",minimumHardfork:"london",gasConfig:{},gasPrices:{},vm:{},pow:{difficultyBombDelay:{v:107e5,d:"the amount of blocks to delay the difficulty bomb with"}}},C4e={name:"EIP-4399",number:4399,comment:"Supplant DIFFICULTY opcode with PREVRANDAO",url:"https://eips.ethereum.org/EIPS/eip-4399",status:"Review",minimumHardfork:"london",requiredEIPs:[],gasConfig:{},gasPrices:{},vm:{},pow:{}},E4e={name:"EIP-5133",number:5133,comment:"Delaying Difficulty Bomb to mid-September 2022",url:"https://eips.ethereum.org/EIPS/eip-5133",status:"Draft",minimumHardfork:"grayGlacier",gasConfig:{},gasPrices:{},vm:{},pow:{difficultyBombDelay:{v:114e5,d:"the amount of blocks to delay the difficulty bomb with"}}},q0={1153:$6e,1559:X6e,2315:e4e,2537:t4e,2565:A4e,2718:r4e,2929:i4e,2930:n4e,3198:o4e,3529:a4e,3540:s4e,3541:f4e,3554:h4e,3607:g4e,3651:u4e,3670:c4e,3675:l4e,3855:d4e,3860:I4e,4345:B4e,4399:C4e,5133:E4e},p4e={name:"chainstart",comment:"Start of the Ethereum main chain",url:"",status:"",gasConfig:{minGasLimit:{v:5e3,d:"Minimum the gas limit may ever be"},gasLimitBoundDivisor:{v:1024,d:"The bound divisor of the gas limit, used in update calculations"},maxRefundQuotient:{v:2,d:"Maximum refund quotient; max tx refund is min(tx.gasUsed/maxRefundQuotient, tx.gasRefund)"}},gasPrices:{base:{v:2,d:"Gas base cost, used e.g. for ChainID opcode (Istanbul)"},tierStep:{v:[0,2,3,5,8,10,20],d:"Once per operation, for a selection of them"},exp:{v:10,d:"Base fee of the EXP opcode"},expByte:{v:10,d:"Times ceil(log256(exponent)) for the EXP instruction"},sha3:{v:30,d:"Base fee of the SHA3 opcode"},sha3Word:{v:6,d:"Once per word of the SHA3 operation's data"},sload:{v:50,d:"Base fee of the SLOAD opcode"},sstoreSet:{v:2e4,d:"Once per SSTORE operation if the zeroness changes from zero"},sstoreReset:{v:5e3,d:"Once per SSTORE operation if the zeroness does not change from zero"},sstoreRefund:{v:15e3,d:"Once per SSTORE operation if the zeroness changes to zero"},jumpdest:{v:1,d:"Base fee of the JUMPDEST opcode"},log:{v:375,d:"Base fee of the LOG opcode"},logData:{v:8,d:"Per byte in a LOG* operation's data"},logTopic:{v:375,d:"Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas"},create:{v:32e3,d:"Base fee of the CREATE opcode"},call:{v:40,d:"Base fee of the CALL opcode"},callStipend:{v:2300,d:"Free gas given at beginning of call"},callValueTransfer:{v:9e3,d:"Paid for CALL when the value transfor is non-zero"},callNewAccount:{v:25e3,d:"Paid for CALL when the destination address didn't exist prior"},selfdestructRefund:{v:24e3,d:"Refunded following a selfdestruct operation"},memory:{v:3,d:"Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL"},quadCoeffDiv:{v:512,d:"Divisor for the quadratic particle of the memory cost equation"},createData:{v:200,d:""},tx:{v:21e3,d:"Per transaction. NOTE: Not payable on data of calls between transactions"},txCreation:{v:32e3,d:"The cost of creating a contract via tx"},txDataZero:{v:4,d:"Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions"},txDataNonZero:{v:68,d:"Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions"},copy:{v:3,d:"Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added"},ecRecover:{v:3e3,d:""},sha256:{v:60,d:""},sha256Word:{v:12,d:""},ripemd160:{v:600,d:""},ripemd160Word:{v:120,d:""},identity:{v:15,d:""},identityWord:{v:3,d:""},stop:{v:0,d:"Base fee of the STOP opcode"},add:{v:3,d:"Base fee of the ADD opcode"},mul:{v:5,d:"Base fee of the MUL opcode"},sub:{v:3,d:"Base fee of the SUB opcode"},div:{v:5,d:"Base fee of the DIV opcode"},sdiv:{v:5,d:"Base fee of the SDIV opcode"},mod:{v:5,d:"Base fee of the MOD opcode"},smod:{v:5,d:"Base fee of the SMOD opcode"},addmod:{v:8,d:"Base fee of the ADDMOD opcode"},mulmod:{v:8,d:"Base fee of the MULMOD opcode"},signextend:{v:5,d:"Base fee of the SIGNEXTEND opcode"},lt:{v:3,d:"Base fee of the LT opcode"},gt:{v:3,d:"Base fee of the GT opcode"},slt:{v:3,d:"Base fee of the SLT opcode"},sgt:{v:3,d:"Base fee of the SGT opcode"},eq:{v:3,d:"Base fee of the EQ opcode"},iszero:{v:3,d:"Base fee of the ISZERO opcode"},and:{v:3,d:"Base fee of the AND opcode"},or:{v:3,d:"Base fee of the OR opcode"},xor:{v:3,d:"Base fee of the XOR opcode"},not:{v:3,d:"Base fee of the NOT opcode"},byte:{v:3,d:"Base fee of the BYTE opcode"},address:{v:2,d:"Base fee of the ADDRESS opcode"},balance:{v:20,d:"Base fee of the BALANCE opcode"},origin:{v:2,d:"Base fee of the ORIGIN opcode"},caller:{v:2,d:"Base fee of the CALLER opcode"},callvalue:{v:2,d:"Base fee of the CALLVALUE opcode"},calldataload:{v:3,d:"Base fee of the CALLDATALOAD opcode"},calldatasize:{v:2,d:"Base fee of the CALLDATASIZE opcode"},calldatacopy:{v:3,d:"Base fee of the CALLDATACOPY opcode"},codesize:{v:2,d:"Base fee of the CODESIZE opcode"},codecopy:{v:3,d:"Base fee of the CODECOPY opcode"},gasprice:{v:2,d:"Base fee of the GASPRICE opcode"},extcodesize:{v:20,d:"Base fee of the EXTCODESIZE opcode"},extcodecopy:{v:20,d:"Base fee of the EXTCODECOPY opcode"},blockhash:{v:20,d:"Base fee of the BLOCKHASH opcode"},coinbase:{v:2,d:"Base fee of the COINBASE opcode"},timestamp:{v:2,d:"Base fee of the TIMESTAMP opcode"},number:{v:2,d:"Base fee of the NUMBER opcode"},difficulty:{v:2,d:"Base fee of the DIFFICULTY opcode"},gaslimit:{v:2,d:"Base fee of the GASLIMIT opcode"},pop:{v:2,d:"Base fee of the POP opcode"},mload:{v:3,d:"Base fee of the MLOAD opcode"},mstore:{v:3,d:"Base fee of the MSTORE opcode"},mstore8:{v:3,d:"Base fee of the MSTORE8 opcode"},sstore:{v:0,d:"Base fee of the SSTORE opcode"},jump:{v:8,d:"Base fee of the JUMP opcode"},jumpi:{v:10,d:"Base fee of the JUMPI opcode"},pc:{v:2,d:"Base fee of the PC opcode"},msize:{v:2,d:"Base fee of the MSIZE opcode"},gas:{v:2,d:"Base fee of the GAS opcode"},push:{v:3,d:"Base fee of the PUSH opcode"},dup:{v:3,d:"Base fee of the DUP opcode"},swap:{v:3,d:"Base fee of the SWAP opcode"},callcode:{v:40,d:"Base fee of the CALLCODE opcode"},return:{v:0,d:"Base fee of the RETURN opcode"},invalid:{v:0,d:"Base fee of the INVALID opcode"},selfdestruct:{v:0,d:"Base fee of the SELFDESTRUCT opcode"}},vm:{stackLimit:{v:1024,d:"Maximum size of VM stack allowed"},callCreateDepth:{v:1024,d:"Maximum depth of call/create stack"},maxExtraDataSize:{v:32,d:"Maximum size extra data may be after Genesis"}},pow:{minimumDifficulty:{v:131072,d:"The minimum that the difficulty may ever be"},difficultyBoundDivisor:{v:2048,d:"The bound divisor of the difficulty, used in the update calculations"},durationLimit:{v:13,d:"The decision boundary on the blocktime duration used to determine whether difficulty should go up or not"},epochDuration:{v:3e4,d:"Duration between proof-of-work epochs"},timebombPeriod:{v:1e5,d:"Exponential difficulty timebomb period"},minerReward:{v:"5000000000000000000",d:"the amount a miner get rewarded for mining a block"},difficultyBombDelay:{v:0,d:"the amount of blocks to delay the difficulty bomb with"}}},Q4e={name:"dao",comment:"DAO rescue hardfork",url:"https://eips.ethereum.org/EIPS/eip-779",status:"Final",gasConfig:{},gasPrices:{},vm:{},pow:{}},y4e={name:"homestead",comment:"Homestead hardfork with protocol and network changes",url:"https://eips.ethereum.org/EIPS/eip-606",status:"Final",gasConfig:{},gasPrices:{delegatecall:{v:40,d:"Base fee of the DELEGATECALL opcode"}},vm:{},pow:{}},v4e={name:"tangerineWhistle",comment:"Hardfork with gas cost changes for IO-heavy operations",url:"https://eips.ethereum.org/EIPS/eip-608",status:"Final",gasConfig:{},gasPrices:{sload:{v:200,d:"Once per SLOAD operation"},call:{v:700,d:"Once per CALL operation & message call transaction"},extcodesize:{v:700,d:"Base fee of the EXTCODESIZE opcode"},extcodecopy:{v:700,d:"Base fee of the EXTCODECOPY opcode"},balance:{v:400,d:"Base fee of the BALANCE opcode"},delegatecall:{v:700,d:"Base fee of the DELEGATECALL opcode"},callcode:{v:700,d:"Base fee of the CALLCODE opcode"},selfdestruct:{v:5e3,d:"Base fee of the SELFDESTRUCT opcode"}},vm:{},pow:{}},w4e={name:"spuriousDragon",comment:"HF with EIPs for simple replay attack protection, EXP cost increase, state trie clearing, contract code size limit",url:"https://eips.ethereum.org/EIPS/eip-607",status:"Final",gasConfig:{},gasPrices:{expByte:{v:50,d:"Times ceil(log256(exponent)) for the EXP instruction"}},vm:{maxCodeSize:{v:24576,d:"Maximum length of contract code"}},pow:{}},m4e={name:"byzantium",comment:"Hardfork with new precompiles, instructions and other protocol changes",url:"https://eips.ethereum.org/EIPS/eip-609",status:"Final",gasConfig:{},gasPrices:{modexpGquaddivisor:{v:20,d:"Gquaddivisor from modexp precompile for gas calculation"},ecAdd:{v:500,d:"Gas costs for curve addition precompile"},ecMul:{v:4e4,d:"Gas costs for curve multiplication precompile"},ecPairing:{v:1e5,d:"Base gas costs for curve pairing precompile"},ecPairingWord:{v:8e4,d:"Gas costs regarding curve pairing precompile input length"},revert:{v:0,d:"Base fee of the REVERT opcode"},staticcall:{v:700,d:"Base fee of the STATICCALL opcode"},returndatasize:{v:2,d:"Base fee of the RETURNDATASIZE opcode"},returndatacopy:{v:3,d:"Base fee of the RETURNDATACOPY opcode"}},vm:{},pow:{minerReward:{v:"3000000000000000000",d:"the amount a miner get rewarded for mining a block"},difficultyBombDelay:{v:3e6,d:"the amount of blocks to delay the difficulty bomb with"}}},M4e={name:"constantinople",comment:"Postponed hardfork including EIP-1283 (SSTORE gas metering changes)",url:"https://eips.ethereum.org/EIPS/eip-1013",status:"Final",gasConfig:{},gasPrices:{netSstoreNoopGas:{v:200,d:"Once per SSTORE operation if the value doesn't change"},netSstoreInitGas:{v:2e4,d:"Once per SSTORE operation from clean zero"},netSstoreCleanGas:{v:5e3,d:"Once per SSTORE operation from clean non-zero"},netSstoreDirtyGas:{v:200,d:"Once per SSTORE operation from dirty"},netSstoreClearRefund:{v:15e3,d:"Once per SSTORE operation for clearing an originally existing storage slot"},netSstoreResetRefund:{v:4800,d:"Once per SSTORE operation for resetting to the original non-zero value"},netSstoreResetClearRefund:{v:19800,d:"Once per SSTORE operation for resetting to the original zero value"},shl:{v:3,d:"Base fee of the SHL opcode"},shr:{v:3,d:"Base fee of the SHR opcode"},sar:{v:3,d:"Base fee of the SAR opcode"},extcodehash:{v:400,d:"Base fee of the EXTCODEHASH opcode"},create2:{v:32e3,d:"Base fee of the CREATE2 opcode"}},vm:{},pow:{minerReward:{v:"2000000000000000000",d:"The amount a miner gets rewarded for mining a block"},difficultyBombDelay:{v:5e6,d:"the amount of blocks to delay the difficulty bomb with"}}},b4e={name:"petersburg",comment:"Aka constantinopleFix, removes EIP-1283, activate together with or after constantinople",url:"https://eips.ethereum.org/EIPS/eip-1716",status:"Final",gasConfig:{},gasPrices:{netSstoreNoopGas:{v:null,d:"Removed along EIP-1283"},netSstoreInitGas:{v:null,d:"Removed along EIP-1283"},netSstoreCleanGas:{v:null,d:"Removed along EIP-1283"},netSstoreDirtyGas:{v:null,d:"Removed along EIP-1283"},netSstoreClearRefund:{v:null,d:"Removed along EIP-1283"},netSstoreResetRefund:{v:null,d:"Removed along EIP-1283"},netSstoreResetClearRefund:{v:null,d:"Removed along EIP-1283"}},vm:{},pow:{}},D4e={name:"istanbul",comment:"HF targeted for December 2019 following the Constantinople/Petersburg HF",url:"https://eips.ethereum.org/EIPS/eip-1679",status:"Final",gasConfig:{},gasPrices:{blake2Round:{v:1,d:"Gas cost per round for the Blake2 F precompile"},ecAdd:{v:150,d:"Gas costs for curve addition precompile"},ecMul:{v:6e3,d:"Gas costs for curve multiplication precompile"},ecPairing:{v:45e3,d:"Base gas costs for curve pairing precompile"},ecPairingWord:{v:34e3,d:"Gas costs regarding curve pairing precompile input length"},txDataNonZero:{v:16,d:"Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions"},sstoreSentryGasEIP2200:{v:2300,d:"Minimum gas required to be present for an SSTORE call, not consumed"},sstoreNoopGasEIP2200:{v:800,d:"Once per SSTORE operation if the value doesn't change"},sstoreDirtyGasEIP2200:{v:800,d:"Once per SSTORE operation if a dirty value is changed"},sstoreInitGasEIP2200:{v:2e4,d:"Once per SSTORE operation from clean zero to non-zero"},sstoreInitRefundEIP2200:{v:19200,d:"Once per SSTORE operation for resetting to the original zero value"},sstoreCleanGasEIP2200:{v:5e3,d:"Once per SSTORE operation from clean non-zero to something else"},sstoreCleanRefundEIP2200:{v:4200,d:"Once per SSTORE operation for resetting to the original non-zero value"},sstoreClearRefundEIP2200:{v:15e3,d:"Once per SSTORE operation for clearing an originally existing storage slot"},balance:{v:700,d:"Base fee of the BALANCE opcode"},extcodehash:{v:700,d:"Base fee of the EXTCODEHASH opcode"},chainid:{v:2,d:"Base fee of the CHAINID opcode"},selfbalance:{v:5,d:"Base fee of the SELFBALANCE opcode"},sload:{v:800,d:"Base fee of the SLOAD opcode"}},vm:{},pow:{}},S4e={name:"muirGlacier",comment:"HF to delay the difficulty bomb",url:"https://eips.ethereum.org/EIPS/eip-2384",status:"Final",gasConfig:{},gasPrices:{},vm:{},pow:{difficultyBombDelay:{v:9e6,d:"the amount of blocks to delay the difficulty bomb with"}}},x4e={name:"berlin",comment:"HF targeted for July 2020 following the Muir Glacier HF",url:"https://eips.ethereum.org/EIPS/eip-2070",status:"Final",eips:[2565,2929,2718,2930]},R4e={name:"london",comment:"HF targeted for July 2021 following the Berlin fork",url:"https://github.com/ethereum/eth1.0-specs/blob/master/network-upgrades/mainnet-upgrades/london.md",status:"Final",eips:[1559,3198,3529,3541]},k4e={name:"shanghai",comment:"Next feature hardfork after the merge hardfork having withdrawals, warm coinbase, push0, limit/meter initcode",url:"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md",status:"Final",eips:[3651,3855,3860,4895]},N4e={name:"arrowGlacier",comment:"HF to delay the difficulty bomb",url:"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/arrow-glacier.md",status:"Final",eips:[4345],gasConfig:{},gasPrices:{},vm:{},pow:{}},_4e={name:"grayGlacier",comment:"Delaying the difficulty bomb to Mid September 2022",url:"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/gray-glacier.md",status:"Draft",eips:[5133],gasConfig:{},gasPrices:{},vm:{},pow:{}},K4e={name:"mergeForkIdTransition",comment:"Pre-merge hardfork to fork off non-upgraded clients",url:"https://eips.ethereum.org/EIPS/eip-3675",status:"Draft",eips:[]},F4e={name:"merge",comment:"Hardfork to upgrade the consensus mechanism to Proof-of-Stake",url:"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/merge.md",status:"Final",consensus:{type:"pos",algorithm:"casper",casper:{}},eips:[3675,4399]},G4e={chainstart:p4e,homestead:y4e,dao:Q4e,tangerineWhistle:v4e,spuriousDragon:w4e,byzantium:m4e,constantinople:M4e,petersburg:b4e,istanbul:D4e,muirGlacier:S4e,berlin:x4e,london:R4e,shanghai:k4e,arrowGlacier:N4e,grayGlacier:_4e,mergeForkIdTransition:K4e,merge:F4e},{buf:L4e}=W6e;class Hr extends B5{constructor(i){var s,f;super(),this._eips=[],this._customChains=(s=i.customChains)!==null&&s!==void 0?s:[],this._chainParams=this.setChain(i.chain),this.DEFAULT_HARDFORK=(f=this._chainParams.defaultHardfork)!==null&&f!==void 0?f:nr.Merge,this.HARDFORK_CHANGES=this.hardforks().map(l=>[l.name,G4e[l.name]]),this._hardfork=this.DEFAULT_HARDFORK,i.hardfork!==void 0&&this.setHardfork(i.hardfork),i.eips&&this.setEIPs(i.eips)}static custom(i,s={}){var f;const l=(f=s.baseChain)!==null&&f!==void 0?f:"mainnet",r=Object.assign({},Hr._getChainParams(l));if(r.name="custom-chain",typeof i!="string")return new Hr(Object.assign({chain:Object.assign(Object.assign({},r),i)},s));if(i===Ci.PolygonMainnet)return Hr.custom({name:Ci.PolygonMainnet,chainId:137,networkId:137},s);if(i===Ci.PolygonMumbai)return Hr.custom({name:Ci.PolygonMumbai,chainId:80001,networkId:80001},s);if(i===Ci.ArbitrumRinkebyTestnet)return Hr.custom({name:Ci.ArbitrumRinkebyTestnet,chainId:421611,networkId:421611},s);if(i===Ci.ArbitrumOne)return Hr.custom({name:Ci.ArbitrumOne,chainId:42161,networkId:42161},s);if(i===Ci.xDaiChain)return Hr.custom({name:Ci.xDaiChain,chainId:100,networkId:100},s);if(i===Ci.OptimisticKovan)return Hr.custom({name:Ci.OptimisticKovan,chainId:69,networkId:69},Object.assign({hardfork:nr.Berlin},s));if(i===Ci.OptimisticEthereum)return Hr.custom({name:Ci.OptimisticEthereum,chainId:10,networkId:10},Object.assign({hardfork:nr.Berlin},s));throw new Error(`Custom chain ${i} not supported`)}static fromGethGenesis(i,{chain:s,eips:f,genesisHash:l,hardfork:r,mergeForkIdPostMerge:B}){var I;const p=L6e(i,s,B),Q=new Hr({chain:(I=p.name)!==null&&I!==void 0?I:"custom",customChains:[p],eips:f,hardfork:r??p.hardfork});return l!==void 0&&Q.setForkHashes(l),Q}static isSupportedChainId(i){return!!this._getInitializedChains().names[i.toString()]}static _getChainParams(i,s){let f=i;const l=this._getInitializedChains(s);if(typeof f=="number"||typeof f=="bigint"){if(f=f.toString(),l.names[f]){const r=l.names[f];return l[r]}throw new Error(`Chain with ID ${f} not supported`)}if(l[f]!==void 0)return l[f];throw new Error(`Chain with name ${f} not supported`)}setChain(i){if(typeof i=="number"||typeof i=="bigint"||typeof i=="string")this._chainParams=Hr._getChainParams(i,this._customChains);else if(typeof i=="object"){if(this._customChains.length>0)throw new Error("Chain must be a string, number, or bigint when initialized with customChains passed in");const s=["networkId","genesis","hardforks","bootstrapNodes"];for(const f of s)if(!(f in i))throw new Error(`Missing required chain parameter: ${f}`);this._chainParams=i}else throw new Error("Wrong input format");for(const s of this.hardforks())if(s.block===void 0)throw new Error("Hardfork cannot have undefined block number");return this._chainParams}setHardfork(i){let s=!1;for(const f of this.HARDFORK_CHANGES)f[0]===i&&(this._hardfork!==i&&(this._hardfork=i,this.emit("hardforkChanged",i)),s=!0);if(!s)throw new Error(`Hardfork with name ${i} not supported`)}getHardforkByBlockNumber(i,s,f){const l=U0(i,no.BigInt),r=U0(s,no.BigInt),B=U0(f,no.Number),I=this.hardforks().filter(w=>w.block!==null||w.ttd!==null&&w.ttd!==void 0||w.timestamp!==void 0),p=I.findIndex(w=>w.ttd!==null&&w.ttd!==void 0);if(I.slice(p+1).findIndex(w=>w.ttd!==null&&w.ttd!==void 0)>=0)throw Error("More than one merge hardforks found with ttd specified");let d=I.findIndex(w=>w.block!==null&&w.block>l||B!==void 0&&Number(w.timestamp)>B);if(d===-1)d=I.length;else if(d===0)throw Error("Must have at least one hardfork at block 0");if(B===void 0){const w=I.slice(0,d).reverse().findIndex(M=>M.block!==null||M.ttd!==void 0);d-=w}if(d-=1,I[d].block===null&&I[d].timestamp===void 0)(r==null||BigInt(I[d].ttd)>r)&&(d-=1);else if(p>=0&&r!==void 0&&r!==null){if(d>=p&&BigInt(I[p].ttd)>r)throw Error("Maximum HF determined by total difficulty is lower than the block number HF");if(d{var D;return Math.max(Number((D=x.timestamp)!==null&&D!==void 0?D:"0"),m)},0)>B)throw Error("Maximum HF determined by timestamp is lower than the block number/ttd HF");if(I.slice(d+1).reduce((m,x)=>{var D;return Math.min(Number((D=x.timestamp)!==null&&D!==void 0?D:B),m)},B)=r}activeOnBlock(i){return this.hardforkIsActiveOnBlock(null,i)}hardforkGteHardfork(i,s){const f=i??this._hardfork,l=this.hardforks();let r=-1,B=-1,I=0;for(const p of l)p.name===f&&(r=I),p.name===s&&(B=I),I+=1;return r>=B&&B!==-1}gteHardfork(i){return this.hardforkGteHardfork(null,i)}hardforkBlock(i){var s;const f=i??this._hardfork,l=(s=this._getHardfork(f))===null||s===void 0?void 0:s.block;return l==null?null:BigInt(l)}hardforkTimestamp(i){var s;const f=i??this._hardfork,l=(s=this._getHardfork(f))===null||s===void 0?void 0:s.timestamp;return l==null?null:BigInt(l)}eipBlock(i){for(const s of this.HARDFORK_CHANGES){const f=s[1];if("eips"in f&&f.eips.includes(i))return this.hardforkBlock(typeof s[0]=="number"?String(s[0]):s[0])}return null}hardforkTTD(i){var s;const f=i??this._hardfork,l=(s=this._getHardfork(f))===null||s===void 0?void 0:s.ttd;return l==null?null:BigInt(l)}isHardforkBlock(i,s){const f=U0(i,no.BigInt),l=s??this._hardfork,r=this.hardforkBlock(l);return typeof r=="bigint"&&r!==BigInt(0)?r===f:!1}nextHardforkBlockOrTimestamp(i){var s,f;const l=i??this._hardfork,r=this.hardforks();let B=r.findIndex(d=>d.name===l);if(l===nr.Merge&&(B-=1),B<0)return null;let I=(s=r[B].timestamp)!==null&&s!==void 0?s:r[B].block;I=I!=null?Number(I):null;const p=r.slice(B+1).find(d=>{var y;let v=(y=d.timestamp)!==null&&y!==void 0?y:d.block;return v=v!=null?Number(v):null,d.name!==nr.Merge&&v!==null&&v!==void 0&&v!==I});if(p===void 0)return null;const Q=(f=p.timestamp)!==null&&f!==void 0?f:p.block;return Q==null?null:BigInt(Q)}nextHardforkBlock(i){const s=i??this._hardfork;let f=this.hardforkBlock(s);if(f===null&&s===nr.Merge){const r=this.hardforks(),B=r.findIndex(I=>I.ttd!==null&&I.ttd!==void 0);if(B<0)throw Error("Merge hardfork should have been found");f=this.hardforkBlock(r[B-1].name)}return f===null?null:this.hardforks().reduce((r,B)=>{const I=BigInt(B.block===null||B.ttd!==void 0&&B.ttd!==null?0:B.block);return I>f&&r===null?I:r},null)}isNextHardforkBlock(i,s){const f=U0(i,no.BigInt),l=s??this._hardfork,r=this.nextHardforkBlock(l);return r===null?!1:r===f}_calcForkHash(i,s){let f=new Uint8Array,l=0;for(const I of this.hardforks()){const{block:p,timestamp:Q,name:d}=I;let y=Q??p;if(y=y!==null?Number(y):null,typeof y=="number"&&y!==0&&y!==l&&d!==nr.Merge){const v=ar(y.toString(16).padStart(16,"0"));f=Li(f,v),l=y}if(I.name===i)break}const r=Li(s,f);return SA(U6e(L4e(r)>>>0))}forkHash(i,s){const f=i??this._hardfork,l=this._getHardfork(f);if(l===null||(l==null?void 0:l.block)===null&&(l==null?void 0:l.timestamp)===void 0&&(l==null?void 0:l.ttd)===void 0){const r="No fork hash calculation possible for future hardfork";throw new Error(r)}if((l==null?void 0:l.forkHash)!==null&&(l==null?void 0:l.forkHash)!==void 0)return l.forkHash;if(!s)throw new Error("genesisHash required for forkHash calculation");return this._calcForkHash(f,s)}hardforkForForkHash(i){const s=this.hardforks().filter(f=>f.forkHash===i);return s.length>=1?s[s.length-1]:null}setForkHashes(i){var s;for(const f of this.hardforks()){const l=(s=f.timestamp)!==null&&s!==void 0?s:f.block;(f.forkHash===null||f.forkHash===void 0)&&(l!=null||typeof f.ttd<"u")&&(f.forkHash=this.forkHash(f.name,i))}}genesis(){return this._chainParams.genesis}hardforks(){return this._chainParams.hardforks}bootstrapNodes(){return this._chainParams.bootstrapNodes}dnsNetworks(){return this._chainParams.dnsNetworks}hardfork(){return this._hardfork}chainId(){return BigInt(this._chainParams.chainId)}chainName(){return this._chainParams.name}networkId(){return BigInt(this._chainParams.networkId)}eips(){return this._eips}consensusType(){const i=this.hardfork();let s;for(const f of this.HARDFORK_CHANGES)if("consensus"in f[1]&&(s=f[1].consensus.type),f[0]===i)break;return s??this._chainParams.consensus.type}consensusAlgorithm(){const i=this.hardfork();let s;for(const f of this.HARDFORK_CHANGES)if("consensus"in f[1]&&(s=f[1].consensus.algorithm),f[0]===i)break;return s??this._chainParams.consensus.algorithm}consensusConfig(){var i;const s=this.hardfork();let f;for(const l of this.HARDFORK_CHANGES)if("consensus"in l[1]&&(f=l[1].consensus[l[1].consensus.algorithm]),l[0]===s)break;return(i=f??this._chainParams.consensus[this.consensusAlgorithm()])!==null&&i!==void 0?i:{}}copy(){const i=Object.assign(Object.create(Object.getPrototypeOf(this)),this);return i.removeAllListeners(),i}static _getInitializedChains(i){const s={};for(const[l,r]of Object.entries(yp))s[r]=l.toLowerCase();const f={mainnet:Z6e,goerli:V6e,sepolia:z6e};if(i)for(const l of i){const{name:r}=l;s[l.chainId.toString()]=r,f[r]=l}return f.names=s,f}}var Ba;(function(o){o[o.EIP155ReplayProtection=155]="EIP155ReplayProtection",o[o.EIP1559FeeMarket=1559]="EIP1559FeeMarket",o[o.EIP2718TypedTransaction=2718]="EIP2718TypedTransaction",o[o.EIP2930AccessLists=2930]="EIP2930AccessLists"})(Ba||(Ba={}));function U4e(o){if(o.length===0)return!0;const i=o[0];return!!Array.isArray(i)}function q4e(o){return!U4e(o)}class gg{constructor(i){if(i.length!==20)throw new Error("Invalid address length");this.buf=i}static zero(){return new gg(Doe(20))}equals(i){return _Q(this.buf,i.buf)}isZero(){return this.equals(gg.zero())}toString(){return SA(this.buf)}toArray(){return this.buf}static publicToAddress(i,s=!1){let f=i;if(_5(f),s&&f.length!==64&&(f=ys.ProjectivePoint.fromHex(f).toRawBytes(!1).slice(1)),f.length!==64)throw new Error("Expected pubKey to be of length 64");return yi(f).slice(-20)}}const H4e=(o,i)=>{const s=o.param("vm","maxInitCodeSize");if(s&&BigInt(i)>s)throw new Error(`the initcode size of this transaction is too large: it is ${i} while the max is ${o.param("vm","maxInitCodeSize")}`)},Soe=o=>{let i,s;if(q4e(o)){i=o;const f=[];for(let l=0;l{for(let i=0;i{const i=[];for(let s=0;s{const s=i.param("gasPrices","accessListStorageKeyCost"),f=i.param("gasPrices","accessListAddressCost");let l=0;for(let B=0;B0?new gg(M):void 0,this.value=Ar(lr(p===""?"0x":p)),this.data=lr(Q===""?"0x":Q),this.v=m.length>0?Ar(m):void 0,this.r=x.length>0?Ar(x):void 0,this.s=D.length>0?Ar(D):void 0,this._validateCannotExceedMaxInteger({value:this.value,r:this.r,s:this.s}),this._validateCannotExceedMaxInteger({gasLimit:this.gasLimit},64),this._validateCannotExceedMaxInteger({nonce:this.nonce},64,!0);const S=this.to===void 0||this.to===null,K=(f=s.allowUnlimitedInitCodeSize)!==null&&f!==void 0?f:!1,N=(l=s.common)!==null&&l!==void 0?l:this._getCommon();S&&N.isActivatedEIP(3860)&&!K&&H4e(N,this.data.length)}get type(){return this._type}supports(i){return this.activeCapabilities.includes(i)}validate(i=!1){const s=[];return this.getBaseFee()>this.gasLimit&&s.push(`gasLimit is too low. given ${this.gasLimit}, need at least ${this.getBaseFee()}`),this.isSigned()&&!this.verifySignature()&&s.push("Invalid Signature"),i?s:s.length===0}_validateYParity(){const{v:i}=this;if(i!==void 0&&i!==BigInt(0)&&i!==BigInt(1)){const s=this._errorMsg("The y-parity of the transaction should either be 0 or 1");throw new Error(s)}}_validateHighS(){const{s:i}=this;if(this.common.gteHardfork("homestead")&&i!==void 0&&i>_6e){const s=this._errorMsg("Invalid Signature: s-values greater than secp256k1n/2 are considered invalid");throw new Error(s)}}getBaseFee(){const i=this.common.param("gasPrices","tx");let s=this.getDataFee();if(i&&(s+=i),this.common.gteHardfork("homestead")&&this.toCreationAddress()){const f=this.common.param("gasPrices","txCreation");f&&(s+=f)}return s}getDataFee(){const i=this.common.param("gasPrices","txDataZero"),s=this.common.param("gasPrices","txDataNonZero");let f=BigInt(0);for(let l=0;l-1&&this.activeCapabilities.splice(p,1)}return I}_getCommon(i,s){var f,l,r,B;if(s!==void 0){const I=Ar(lr(s));if(i){if(i.chainId()!==I){const p=this._errorMsg("The chain ID does not match the chain ID of Common");throw new Error(p)}return i.copy()}return Hr.isSupportedChainId(I)?new Hr({chain:I,hardfork:this.DEFAULT_HARDFORK}):Hr.custom({name:"custom-chain",networkId:I,chainId:I},{baseChain:this.DEFAULT_CHAIN,hardfork:this.DEFAULT_HARDFORK})}if(i!=null&&i.copy&&typeof(i==null?void 0:i.copy)=="function")return i.copy();if(i){const I=typeof i.hardfork=="function"?i.hardfork():i.hardfork;return Hr.custom({name:"custom-chain",networkId:i.networkId?i.networkId():(l=BigInt((f=i.customChain)===null||f===void 0?void 0:f.networkId))!==null&&l!==void 0?l:void 0,chainId:i.chainId?i.chainId():(B=BigInt((r=i.customChain)===null||r===void 0?void 0:r.chainId))!==null&&B!==void 0?B:void 0},{baseChain:this.DEFAULT_CHAIN,hardfork:I||this.DEFAULT_HARDFORK})}return new Hr({chain:this.DEFAULT_CHAIN,hardfork:this.DEFAULT_HARDFORK})}_validateCannotExceedMaxInteger(i,s=256,f=!1){for(const[l,r]of Object.entries(i))switch(s){case 64:if(f){if(r!==void 0&&r>=eW){const B=this._errorMsg(`${l} cannot equal or exceed MAX_UINT64 (2^64-1), given ${r}`);throw new Error(B)}}else if(r!==void 0&&r>eW){const B=this._errorMsg(`${l} cannot exceed MAX_UINT64 (2^64-1), given ${r}`);throw new Error(B)}break;case 256:if(f){if(r!==void 0&&r>=kl){const B=this._errorMsg(`${l} cannot equal or exceed MAX_INTEGER (2^256-1), given ${r}`);throw new Error(B)}}else if(r!==void 0&&r>kl){const B=this._errorMsg(`${l} cannot exceed MAX_INTEGER (2^256-1), given ${r}`);throw new Error(B)}break;default:{const B=this._errorMsg("unimplemented bits value");throw new Error(B)}}}static _validateNotArray(i){const s=["nonce","gasPrice","gasLimit","to","value","data","v","r","s","type","baseFee","maxFeePerGas","chainId"];for(const[f,l]of Object.entries(i))if(s.includes(f)&&Array.isArray(l))throw new Error(`${f} cannot be an array`)}_getSharedErrorPostfix(){let i="";try{i=this.isSigned()?SA(this.hash()):"not available (unsigned)"}catch{i="error"}let s="";try{s=this.isSigned().toString()}catch{i="error"}let f="";try{f=this.common.hardfork()}catch{f="error"}let l=`tx type=${this.type} hash=${i} nonce=${this.nonce} value=${this.value} `;return l+=`signed=${s} hf=${f}`,l}_ecsign(i,s,f){const l=ys.sign(i,s),r=l.toCompactRawBytes(),B=r.subarray(0,32),I=r.subarray(32,64),p=f===void 0?BigInt(l.recovery+27):BigInt(l.recovery+35)+BigInt(f)*BigInt(2);return{r:B,s:I,v:p}}static fromSerializedTx(i,s={}){}static fromTxData(i,s={}){}}const OR=2,YS=ar(OR.toString(16).padStart(2,"0"));class Qh extends Yg{constructor(i,s={}){var f;super(Object.assign(Object.assign({},i),{type:OR}),s),this.DEFAULT_HARDFORK="london";const{chainId:l,accessList:r,maxFeePerGas:B,maxPriorityFeePerGas:I}=i;if(this.common=this._getCommon(s.common,l),this.chainId=this.common.chainId(),!this.common.isActivatedEIP(1559))throw new Error("EIP-1559 not enabled on Common");this.activeCapabilities=this.activeCapabilities.concat([1559,2718,2930]);const p=Soe(r??[]);if(this.accessList=p.accessList,this.AccessListJSON=p.AccessListJSON,xoe(this.accessList),this.maxFeePerGas=Ar(lr(B===""?"0x":B)),this.maxPriorityFeePerGas=Ar(lr(I===""?"0x":I)),this._validateCannotExceedMaxInteger({maxFeePerGas:this.maxFeePerGas,maxPriorityFeePerGas:this.maxPriorityFeePerGas}),Yg._validateNotArray(i),this.gasLimit*this.maxFeePerGas>kl){const d=this._errorMsg("gasLimit * maxFeePerGas cannot exceed MAX_INTEGER (2^256-1)");throw new Error(d)}if(this.maxFeePerGaskl){const Q=this._errorMsg("gasLimit * gasPrice cannot exceed MAX_INTEGER");throw new Error(Q)}this._validateYParity(),this._validateHighS(),((f=s==null?void 0:s.freeze)!==null&&f!==void 0?f:!0)&&Object.freeze(this)}static fromTxData(i,s={}){return new yh(i,s)}static fromSerializedTx(i,s={}){if(!_Q(i.subarray(0,1),JS))throw new Error(`Invalid serialized tx input: not an EIP-2930 transaction (wrong tx type, expected: ${jR}, received: ${SA(i.subarray(0,1))}`);const f=oo.RLP.decode(Uint8Array.from(i.subarray(1)));if(!Array.isArray(f))throw new Error("Invalid serialized tx input: must be array");return yh.fromValuesArray(f,s)}static fromValuesArray(i,s={}){if(i.length!==8&&i.length!==11)throw new Error("Invalid EIP-2930 transaction. Only expecting 8 values (for unsigned tx) or 11 values (for signed tx).");const[f,l,r,B,I,p,Q,d,y,v,w]=i;this._validateNotArray({chainId:f,v:y}),c5({nonce:l,gasPrice:r,gasLimit:B,value:p,v:y,r:v,s:w});const M=[];return new yh({chainId:Ar(f),nonce:l,gasPrice:r,gasLimit:B,to:I,value:p,data:Q,accessList:d??M,v:y!==void 0?Ar(y):void 0,r:v,s:w},s)}getDataFee(){if(this.cache.dataFee&&this.cache.dataFee.hardfork===this.common.hardfork())return this.cache.dataFee.value;let i=super.getDataFee();return i+=BigInt(koe(this.accessList,this.common)),Object.isFrozen(this)&&(this.cache.dataFee={value:i,hardfork:this.common.hardfork()}),i}getUpfrontCost(){return this.gasLimit*this.gasPrice+this.value}raw(){return[GA(this.chainId),GA(this.nonce),GA(this.gasPrice),GA(this.gasLimit),this.to!==void 0?this.to.buf:Uint8Array.from([]),GA(this.value),this.data,this.accessList,this.v!==void 0?GA(this.v):Uint8Array.from([]),this.r!==void 0?GA(this.r):Uint8Array.from([]),this.s!==void 0?GA(this.s):Uint8Array.from([])]}serialize(){const i=this.raw();return Li(JS,oo.RLP.encode(i))}getMessageToSign(i=!0){const s=this.raw().slice(0,8),f=Li(JS,oo.RLP.encode(s));return i?yi(f):f}hash(){if(!this.isSigned()){const i=this._errorMsg("Cannot call hash method if transaction is not signed");throw new Error(i)}return Object.isFrozen(this)?(this.cache.hash||(this.cache.hash=yi(this.serialize())),this.cache.hash):yi(this.serialize())}getMessageToVerifySignature(){return this.getMessageToSign()}getSenderPublicKey(){if(!this.isSigned()){const r=this._errorMsg("Cannot call this method if transaction is not signed");throw new Error(r)}const i=this.getMessageToVerifySignature(),{v:s,r:f,s:l}=this;this._validateHighS();try{return K5(i,s+BigInt(27),GA(f),GA(l))}catch{const B=this._errorMsg("Invalid Signature");throw new Error(B)}}_processSignature(i,s,f){const l=Object.assign(Object.assign({},this.txOptions),{common:this.common});return yh.fromTxData({chainId:this.chainId,nonce:this.nonce,gasPrice:this.gasPrice,gasLimit:this.gasLimit,to:this.to,value:this.value,data:this.data,accessList:this.accessList,v:i-BigInt(27),r:Ar(s),s:Ar(f)},l)}toJSON(){const i=Roe(this.accessList);return{chainId:dr(this.chainId),nonce:dr(this.nonce),gasPrice:dr(this.gasPrice),gasLimit:dr(this.gasLimit),to:this.to!==void 0?this.to.toString():void 0,value:dr(this.value),data:SA(this.data),accessList:i,v:this.v!==void 0?dr(this.v):void 0,r:this.r!==void 0?dr(this.r):void 0,s:this.s!==void 0?dr(this.s):void 0}}errorStr(){var i,s;let f=this._getSharedErrorPostfix();return f+=` gasPrice=${this.gasPrice} accessListCount=${(s=(i=this.accessList)===null||i===void 0?void 0:i.length)!==null&&s!==void 0?s:0}`,f}_errorMsg(i){return`${i} (${this.errorStr()})`}}const T4e=0;function oW(o,i){const s=Number(o),f=Number(i)*2;return s===f+35||s===f+36}class lf extends Yg{constructor(i,s={}){var f;if(super(Object.assign(Object.assign({},i),{type:T4e}),s),this.common=this._validateTxV(this.v,s.common),this.gasPrice=Ar(lr(i.gasPrice===""?"0x":i.gasPrice)),this.gasPrice*this.gasLimit>kl){const r=this._errorMsg("gas limit * gasPrice cannot exceed MAX_INTEGER (2^256-1)");throw new Error(r)}this._validateCannotExceedMaxInteger({gasPrice:this.gasPrice}),Yg._validateNotArray(i),this.common.gteHardfork("spuriousDragon")&&(this.isSigned()?oW(this.v,this.common.chainId())&&this.activeCapabilities.push(Ba.EIP155ReplayProtection):this.activeCapabilities.push(Ba.EIP155ReplayProtection)),((f=s==null?void 0:s.freeze)!==null&&f!==void 0?f:!0)&&Object.freeze(this)}static fromTxData(i,s={}){return new lf(i,s)}static fromSerializedTx(i,s={}){const f=oo.RLP.decode(i);if(!Array.isArray(f))throw new Error("Invalid serialized tx input. Must be array");return this.fromValuesArray(f,s)}static fromValuesArray(i,s={}){if(i.length!==6&&i.length!==9)throw new Error("Invalid transaction. Only expecting 6 values (for unsigned tx) or 9 values (for signed tx).");const[f,l,r,B,I,p,Q,d,y]=i;return c5({nonce:f,gasPrice:l,gasLimit:r,value:I,v:Q,r:d,s:y}),new lf({nonce:f,gasPrice:l,gasLimit:r,to:B,value:I,data:p,v:Q,r:d,s:y},s)}raw(){return[GA(this.nonce),GA(this.gasPrice),GA(this.gasLimit),this.to!==void 0?this.to.buf:Uint8Array.from([]),GA(this.value),this.data,this.v!==void 0?GA(this.v):Uint8Array.from([]),this.r!==void 0?GA(this.r):Uint8Array.from([]),this.s!==void 0?GA(this.s):Uint8Array.from([])]}serialize(){return oo.RLP.encode(this.raw())}_getMessageToSign(){const i=[GA(this.nonce),GA(this.gasPrice),GA(this.gasLimit),this.to!==void 0?this.to.buf:Uint8Array.from([]),GA(this.value),this.data];return this.supports(Ba.EIP155ReplayProtection)&&(i.push(lr(this.common.chainId())),i.push(vp(lr(0))),i.push(vp(lr(0)))),i}getMessageToSign(i=!0){const s=this._getMessageToSign();return i?yi(oo.RLP.encode(s)):s}getDataFee(){return this.cache.dataFee&&this.cache.dataFee.hardfork===this.common.hardfork()?this.cache.dataFee.value:(Object.isFrozen(this)&&(this.cache.dataFee={value:super.getDataFee(),hardfork:this.common.hardfork()}),super.getDataFee())}getUpfrontCost(){return this.gasLimit*this.gasPrice+this.value}hash(){if(!this.isSigned()){const i=this._errorMsg("Cannot call hash method if transaction is not signed");throw new Error(i)}return Object.isFrozen(this)?(this.cache.hash||(this.cache.hash=yi(oo.RLP.encode(this.raw()))),this.cache.hash):yi(oo.RLP.encode(this.raw()))}getMessageToVerifySignature(){if(!this.isSigned()){const s=this._errorMsg("This transaction is not signed");throw new Error(s)}const i=this._getMessageToSign();return yi(oo.RLP.encode(i))}getSenderPublicKey(){const i=this.getMessageToVerifySignature(),{v:s,r:f,s:l}=this;this._validateHighS();try{return K5(i,s,GA(f),GA(l),this.supports(Ba.EIP155ReplayProtection)?this.common.chainId():void 0)}catch{const B=this._errorMsg("Invalid Signature");throw new Error(B)}}_processSignature(i,s,f){let l=i;this.supports(Ba.EIP155ReplayProtection)&&(l+=this.common.chainId()*BigInt(2)+BigInt(8));const r=Object.assign(Object.assign({},this.txOptions),{common:this.common});return lf.fromTxData({nonce:this.nonce,gasPrice:this.gasPrice,gasLimit:this.gasLimit,to:this.to,value:this.value,data:this.data,v:l,r:Ar(s),s:Ar(f)},r)}toJSON(){return{nonce:dr(this.nonce),gasPrice:dr(this.gasPrice),gasLimit:dr(this.gasLimit),to:this.to!==void 0?this.to.toString():void 0,value:dr(this.value),data:SA(this.data),v:this.v!==void 0?dr(this.v):void 0,r:this.r!==void 0?dr(this.r):void 0,s:this.s!==void 0?dr(this.s):void 0}}_validateTxV(i,s){let f;const l=i!==void 0?Number(i):void 0;if(l!==void 0&&l<37&&l!==27&&l!==28)throw new Error(`Legacy txs need either v = 27/28 or v >= 37 (EIP-155 replay protection), got v = ${l}`);if(l!==void 0&&l!==0&&(!s||s.gteHardfork("spuriousDragon"))&&l!==27&&l!==28)if(s){if(!oW(BigInt(l),s.chainId()))throw new Error(`Incompatible EIP155-based V ${l} and chain id ${s.chainId()}. See the Common parameter of the Transaction constructor to set the chain id.`)}else{let r;(l-35)%2===0?r=35:r=36,f=BigInt(l-r)/BigInt(2)}return this._getCommon(s,f)}errorStr(){let i=this._getSharedErrorPostfix();return i+=` gasPrice=${this.gasPrice}`,i}_errorMsg(i){return`${i} (${this.errorStr()})`}}const PS=new Map;class e0{constructor(){}static typeToInt(i){return Number(Ar(lr(i)))}static registerTransactionType(i,s){const f=e0.typeToInt(i);PS.set(f,s)}static fromTxData(i,s={}){if(!("type"in i)||i.type===void 0)return lf.fromTxData(i,s);const f=e0.typeToInt(i.type);if(f===0)return lf.fromTxData(i,s);if(f===1)return yh.fromTxData(i,s);if(f===2)return Qh.fromTxData(i,s);const l=PS.get(f);if(l!=null&&l.fromTxData)return l.fromTxData(i,s);throw new Error(`Tx instantiation with type ${f} not supported`)}static fromSerializedData(i,s={}){if(i[0]<=127)switch(i[0]){case 1:return yh.fromSerializedTx(i,s);case 2:return Qh.fromSerializedTx(i,s);default:{const f=PS.get(Number(i[0]));if(f!=null&&f.fromSerializedTx)return f.fromSerializedTx(i,s);throw new Error(`TypedTransaction with ID ${i[0]} unknown`)}}else return lf.fromSerializedTx(i,s)}static fromBlockBodyData(i,s={}){if(Rf(i))return this.fromSerializedData(i,s);if(Array.isArray(i))return lf.fromValuesArray(i,s);throw new Error("Cannot decode transaction: unknown type input")}}var JQ=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const lu=(o,i)=>{let s;if(!i&&typeof o=="string"&&PA(o)&&o.length!==66)throw new Ej;try{s=Rf(o)?o:ba(o)}catch{throw new VMe}if(!i&&s.byteLength!==32)throw new Ej;return s},F5=(o,i=!1)=>{const s=PA(o)?o:Po(o),f=ar(s),l=ar(Gne(`Ethereum Signed Message: -${f.byteLength}`)),r=i?f:Li(l,f);return wn(r)},Y4e=(o,i)=>{const s=lu(i),f=ys.sign(o.substring(2),s),l=f.toCompactRawBytes(),r=f.r.toString(16).padStart(64,"0"),B=f.s.toString(16).padStart(64,"0"),I=f.recovery+27;return{messageHash:o,v:Yr(I),r:`0x${r}`,s:`0x${B}`,signature:`${SA(l)}${I.toString(16)}`}},Noe=(o,i)=>{const s=F5(o),{messageHash:f,v:l,r,s:B,signature:I}=Y4e(s,i);return{message:o,messageHash:f,v:l,r,s:B,signature:I}},J4e=(o,i)=>JQ(void 0,void 0,void 0,function*(){const s=o.sign(ar(i));if(dt(s.v)||dt(s.r)||dt(s.s))throw new NR("Signer Error");const f=s.validate(!0);if(f.length>0){let B="Signer Error ";for(const I of f)B+=`${B} ${I}.`;throw new NR(B)}const l=SA(s.serialize()),r=wn(l);return{messageHash:SA(s.getMessageToSign(!0)),v:`0x${s.v.toString(16)}`,r:`0x${s.r.toString(16).padStart(64,"0")}`,s:`0x${s.s.toString(16).padStart(64,"0")}`,rawTransaction:l,transactionHash:SA(r)}}),P4e=o=>{if(dt(o))throw new ube;const i=e0.fromSerializedData(ar(o));return Ra(i.getSenderAddress().toString())},WR=(o,i,s,f,l)=>{if(typeof o=="object"){const y=`${o.r}${o.s.slice(2)}${o.v.slice(2)}`;return WR(o.messageHash,y,s)}if(typeof i=="string"&&typeof s=="string"&&!dt(f)){const y=`${s}${f.slice(2)}${i.slice(2)}`;return WR(o,y,l)}if(dt(i))throw new ZMe("signature string undefined");const r=130,B=s?o:F5(o);let I=parseInt(i.substring(r),16);I>26&&(I-=27);const p=ys.Signature.fromCompact(i.slice(2,r)).addRecoveryBit(I).recoverPublicKey(B.replace("0x","")).toRawBytes(!1),Q=wn(p.subarray(1));return Ra(`0x${Q.slice(-40)}`)},PQ=o=>{const i=lu(o),s=ys.getPublicKey(i,!1),l=wn(s.slice(1)).slice(-40);return Ra(`0x${l}`)},O4e=(o,i)=>{const s=lu(o);return`0x${SA(ys.getPublicKey(s,i)).slice(4)}`},_oe=(o,i,s)=>JQ(void 0,void 0,void 0,function*(){var f,l,r,B,I,p,Q;const d=lu(o);let y;if(s!=null&&s.salt?y=typeof s.salt=="string"?ar(s.salt):s.salt:y=Sl(32),!(g5(i)||Rf(i)))throw new XMe;const v=typeof i=="string"?ar(Po(i)):i;let w;if(s!=null&&s.iv){if(w=typeof s.iv=="string"?ar(s.iv):s.iv,w.length!==16)throw new ebe}else w=Sl(16);const M=(f=s==null?void 0:s.kdf)!==null&&f!==void 0?f:"scrypt";let m,x;if(M==="pbkdf2"){if(x={dklen:(l=s==null?void 0:s.dklen)!==null&&l!==void 0?l:32,salt:SA(y).replace("0x",""),c:(r=s==null?void 0:s.c)!==null&&r!==void 0?r:262144,prf:"hmac-sha256"},x.c<1e3)throw new tbe;m=uoe(v,y,x.c,x.dklen,"sha256")}else if(M==="scrypt")x={n:(B=s==null?void 0:s.n)!==null&&B!==void 0?B:8192,r:(I=s==null?void 0:s.r)!==null&&I!==void 0?I:8,p:(p=s==null?void 0:s.p)!==null&&p!==void 0?p:1,dklen:(Q=s==null?void 0:s.dklen)!==null&&Q!==void 0?Q:32,salt:SA(y).replace("0x","")},m=coe(v,y,x.n,x.p,x.r,x.dklen);else throw new Xie;const D=yield M5(d,m.slice(0,16),w,"aes-128-ctr"),S=SA(D).slice(2),K=wn(Li(m.slice(16,32),D)).replace("0x","");return{version:3,id:Q5(),address:PQ(d).toLowerCase().replace("0x",""),crypto:{ciphertext:S,cipherparams:{iv:SA(w).replace("0x","")},cipher:"aes-128-ctr",kdf:M,kdfparams:x,mac:K}}}),G5=(o,i)=>{const s=lu(o,i);return{address:PQ(s),privateKey:SA(s),signTransaction:f=>{throw new NR("Do not have network access to sign the transaction")},sign:f=>Noe(typeof f=="string"?f:JSON.stringify(f),s),encrypt:(f,l)=>JQ(void 0,void 0,void 0,function*(){return _oe(s,f,l)})}},j4e=()=>{const o=ys.utils.randomPrivateKey();return G5(`${SA(o)}`)},W4e=(o,i,s)=>JQ(void 0,void 0,void 0,function*(){const f=typeof o=="object"?o:JSON.parse(s?o.toLowerCase():o);if(Wt.validateJSONSchema(K6e,f),f.version!==3)throw new $Me;const l=typeof i=="string"?ar(Po(i)):i;Wt.validate(["bytes"],[l]);let r;if(f.crypto.kdf==="scrypt"){const Q=f.crypto.kdfparams,d=typeof Q.salt=="string"?ar(Q.salt):Q.salt;r=coe(l,d,Q.n,Q.p,Q.r,Q.dklen)}else if(f.crypto.kdf==="pbkdf2"){const Q=f.crypto.kdfparams,d=typeof Q.salt=="string"?ar(Q.salt):Q.salt;r=uoe(l,d,Q.c,Q.dklen,"sha256")}else throw new Xie;const B=ar(f.crypto.ciphertext);if(wn(Li(r.slice(16,32),B)).replace("0x","")!==f.crypto.mac)throw new zMe;const p=yield DSe(ar(f.crypto.ciphertext),r.slice(0,16),ar(f.crypto.cipherparams.iv));return G5(p)});var aW=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const V4e=1e3;class Z4e{constructor(i){this._requestManager=i,this._requests=new Map}get requests(){return[...this._requests.values()].map(i=>i.payload)}add(i){const s=zh(i),f=new Bp;return this._requests.set(s.id,{payload:s,promise:f}),f}execute(i){var s;return aW(this,void 0,void 0,function*(){if(this.requests.length===0)return Promise.resolve([]);const f=new Bp({timeout:(s=i==null?void 0:i.timeout)!==null&&s!==void 0?s:V4e,eagerStart:!0,timeoutMessage:"Batch request timeout"});return this._processBatchRequest(f).catch(l=>f.reject(l)),f.catch(l=>{l instanceof ene&&this._abortAllRequests("Batch request timeout"),f.reject(l)}),f})}_processBatchRequest(i){var s,f;return aW(this,void 0,void 0,function*(){const l=yield this._requestManager.sendBatch([...this._requests.values()].map(I=>I.payload));if(l.length!==this._requests.size)throw this._abortAllRequests("Invalid batch response"),new Ia(l,`Batch request size mismatch the results size. Requests: ${this._requests.size}, Responses: ${l.length}`);const r=this.requests.map(I=>I.id).map(Number).sort((I,p)=>I-p),B=l.map(I=>I.id).map(Number).sort((I,p)=>I-p);if(JSON.stringify(r)!==JSON.stringify(B))throw this._abortAllRequests("Invalid batch response"),new Ia(l,`Batch request mismatch the results. Requests: [${r.join()}], Responses: [${B.join()}]`);for(const I of l)If(I)?(s=this._requests.get(I.id))===null||s===void 0||s.promise.resolve(I.result):Bf(I)&&((f=this._requests.get(I.id))===null||f===void 0||f.promise.reject(I.error));i.resolve(l)})}_abortAllRequests(i){for(const{promise:s}of this._requests.values())s.reject(new sbe(i))}}var z4e=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,[])).next())})};class en extends pSe{constructor(i){var s;if(super(),this.providers=Fh.providers,zt(i)||typeof i=="string"&&i.trim()!==""||Cp(i)){this._requestManager=new Fh(i),this._subscriptionManager=new Ep(this._requestManager,{});return}const{config:f,provider:l,requestManager:r,subscriptionManager:B,registeredSubscriptions:I,accountProvider:p,wallet:Q,requestManagerMiddleware:d}=i;this.setConfig(f??{}),this._requestManager=r??new Fh(l,(s=f==null?void 0:f.enableExperimentalFeatures)===null||s===void 0?void 0:s.useSubscriptionWhenCheckingBlockTimeout,d),B?this._subscriptionManager=B:this._subscriptionManager=new Ep(this.requestManager,I??{}),p&&(this._accountProvider=p),Q&&(this._wallet=Q)}get requestManager(){return this._requestManager}get subscriptionManager(){return this._subscriptionManager}get wallet(){return this._wallet}get accountProvider(){return this._accountProvider}static fromContextObject(...i){return new this(...i.reverse())}getContextObject(){var i;return{config:this.config,provider:this.provider,requestManager:this.requestManager,subscriptionManager:this.subscriptionManager,registeredSubscriptions:(i=this.subscriptionManager)===null||i===void 0?void 0:i.registeredSubscriptions,providers:this.providers,wallet:this.wallet,accountProvider:this.accountProvider}}use(i,...s){const f=new i(...s,this.getContextObject());return this.on($h.CONFIG_CHANGE,l=>{f.setConfig({[l.name]:l.newValue})}),this[i.name]=f,f}link(i){this.setConfig(i.config),this._requestManager=i.requestManager,this.provider=i.provider,this._subscriptionManager=i.subscriptionManager,this._wallet=i.wallet,this._accountProvider=i._accountProvider,i.on($h.CONFIG_CHANGE,s=>{this.setConfig({[s.name]:s.newValue})})}registerPlugin(i){if(this[i.pluginNamespace]!==void 0)throw new fbe(i.pluginNamespace);const s={[i.pluginNamespace]:i};s[i.pluginNamespace].link(this),Object.assign(this,s)}get provider(){return this.currentProvider}set provider(i){this.requestManager.setProvider(i)}get currentProvider(){return this.requestManager.provider}set currentProvider(i){this.requestManager.setProvider(i)}get givenProvider(){return en.givenProvider}setProvider(i){return this.provider=i,!0}setRequestManagerMiddleware(i){this.requestManager.setMiddleware(i)}get BatchRequest(){return Z4e.bind(void 0,this._requestManager)}extend(i){var s;return i.property&&!this[i.property]&&(this[i.property]={}),(s=i.methods)===null||s===void 0||s.forEach(f=>{const l=(...r)=>z4e(this,void 0,void 0,function*(){return this.requestManager.send({method:f.call,params:r})});i.property?this[i.property][f.name]=l:this[f.name]=l}),this}}en.providers=Fh.providers;class Nr{constructor(i){if(this.toAddress=()=>{if(this.isDirect()){const s=this._iban.slice(4),f=Nr._parseInt(s,36),l=bl(f,40);return Ra(l)}throw new Error("Iban is indirect and cannot be converted. Must be length of 34 or 35")},Nr.isIndirect(i)||Nr.isDirect(i))this._iban=i;else throw new Error("Invalid IBAN was provided")}static isDirect(i){return i.length===34||i.length===35}isDirect(){return Nr.isDirect(this._iban)}static isIndirect(i){return i.length===20}isIndirect(){return Nr.isIndirect(this._iban)}static isValid(i){return/^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(i)&&Nr._mod9710(Nr._iso13616Prepare(i))===1}isValid(){return Nr.isValid(this._iban)}static fromBban(i){const s="XE",l=`0${(98-this._mod9710(this._iso13616Prepare(`${s}00${i}`))).toString()}`.slice(-2);return new Nr(`${s}${l}${i}`)}static createIndirect(i){return Nr.fromBban(`ETH${i.institution}${i.identifier}`)}static fromAddress(i){if(!vn(i))throw new n5(i);const f=BigInt(Id(i)).toString(36),l=bl(f,15);return Nr.fromBban(l.toUpperCase())}static toIban(i){return Nr.fromAddress(i).toString()}client(){return this.isIndirect()?this._iban.slice(11):""}checksum(){return this._iban.slice(2,4)}institution(){return this.isIndirect()?this._iban.slice(7,11):""}toString(){return this._iban}}Nr._iso13616Prepare=o=>{const f=o.toUpperCase();return`${f.slice(4)}${f.slice(0,4)}`.split("").map(r=>{const B=r.charCodeAt(0);return B>=65&&B<=90?B-65+10:r}).join("")};Nr._parseInt=(o,i)=>[...o].reduce((s,f)=>BigInt(parseInt(f,i))+BigInt(i)*s,BigInt(0));Nr._mod9710=o=>{let i=o,s;for(;i.length>2;)s=i.slice(0,9),i=`${(parseInt(s,10)%97).toString()}${i.slice(s.length)}`;return parseInt(i,10)%97};Nr.toAddress=o=>new Nr(o).toAddress();var OS=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})},Koe;class Foe extends qQ{constructor(i){super(),this[Koe]="Promise",this._promise=new Promise(i)}then(i,s){return OS(this,void 0,void 0,function*(){return this._promise.then(i,s)})}catch(i){return OS(this,void 0,void 0,function*(){return this._promise.catch(i)})}finally(i){return OS(this,void 0,void 0,function*(){return this._promise.finally(i)})}on(i,s){return super.on(i,s),this}once(i,s){return super.once(i,s),this}}Koe=Symbol.toStringTag;(function(o,i){if(o.setImmediate)return;var s=1,f={},l=!1,r=o.document,B;function I(S){typeof S!="function"&&(S=new Function(""+S));for(var K=new Array(arguments.length-1),N=0;N"u"?typeof globalThis>"u"?void 0:globalThis:self);var AA=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};function $4e(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_protocolVersion",params:[]})})}function Goe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_syncing",params:[]})})}function X4e(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_coinbase",params:[]})})}function exe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_mining",params:[]})})}function txe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_hashrate",params:[]})})}function Axe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_gasPrice",params:[]})})}function rxe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_maxPriorityFeePerGas",params:[]})})}function ixe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_accounts",params:[]})})}function nxe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_blockNumber",params:[]})})}function oxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["address","blockNumberOrTag"],[i,s]),o.send({method:"eth_getBalance",params:[i,s]})})}function axe(o,i,s,f){return AA(this,void 0,void 0,function*(){return Wt.validate(["address","hex","blockNumberOrTag"],[i,s,f]),o.send({method:"eth_getStorageAt",params:[i,s,f]})})}function sxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["address","blockNumberOrTag"],[i,s]),o.send({method:"eth_getTransactionCount",params:[i,s]})})}function fxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["bytes32"],[i]),o.send({method:"eth_getBlockTransactionCountByHash",params:[i]})})}function hxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["blockNumberOrTag"],[i]),o.send({method:"eth_getBlockTransactionCountByNumber",params:[i]})})}function gxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["bytes32"],[i]),o.send({method:"eth_getUncleCountByBlockHash",params:[i]})})}function uxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["blockNumberOrTag"],[i]),o.send({method:"eth_getUncleCountByBlockNumber",params:[i]})})}function cxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["address","blockNumberOrTag"],[i,s]),o.send({method:"eth_getCode",params:[i,s]})})}function lxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["address","hex"],[i,s]),o.send({method:"eth_sign",params:[i,s]})})}function dxe(o,i){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_signTransaction",params:[i]})})}function Ixe(o,i){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_sendTransaction",params:[i]})})}function Loe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["hex"],[i]),o.send({method:"eth_sendRawTransaction",params:[i]})})}function Bxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["blockNumberOrTag"],[s]),o.send({method:"eth_call",params:[i,s]})})}function Cxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["blockNumberOrTag"],[s]),o.send({method:"eth_estimateGas",params:[i,s]})})}function Exe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["bytes32","bool"],[i,s]),o.send({method:"eth_getBlockByHash",params:[i,s]})})}function Uoe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["blockNumberOrTag","bool"],[i,s]),o.send({method:"eth_getBlockByNumber",params:[i,s]})})}function pxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["bytes32"],[i]),o.send({method:"eth_getTransactionByHash",params:[i]})})}function Qxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["bytes32","hex"],[i,s]),o.send({method:"eth_getTransactionByBlockHashAndIndex",params:[i,s]})})}function yxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["blockNumberOrTag","hex"],[i,s]),o.send({method:"eth_getTransactionByBlockNumberAndIndex",params:[i,s]})})}function vxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["bytes32"],[i]),o.send({method:"eth_getTransactionReceipt",params:[i]})})}function wxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["bytes32","hex"],[i,s]),o.send({method:"eth_getUncleByBlockHashAndIndex",params:[i,s]})})}function mxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["blockNumberOrTag","hex"],[i,s]),o.send({method:"eth_getUncleByBlockNumberAndIndex",params:[i,s]})})}function Mxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["filter"],[i]),o.send({method:"eth_newFilter",params:[i]})})}function bxe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_newBlockFilter",params:[]})})}function Dxe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_newPendingTransactionFilter",params:[]})})}function Sxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["hex"],[i]),o.send({method:"eth_uninstallFilter",params:[i]})})}function xxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["hex"],[i]),o.send({method:"eth_getFilterChanges",params:[i]})})}function Rxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["hex"],[i]),o.send({method:"eth_getFilterLogs",params:[i]})})}function kxe(o,i){return AA(this,void 0,void 0,function*(){return Wt.validate(["filter"],[i]),o.send({method:"eth_getLogs",params:[i]})})}function Nxe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_getWork",params:[]})})}function _xe(o,i,s,f){return AA(this,void 0,void 0,function*(){return Wt.validate(["bytes8","bytes32","bytes32"],[i,s,f]),o.send({method:"eth_submitWork",params:[i,s,f]})})}function Kxe(o,i,s,f){return AA(this,void 0,void 0,function*(){Wt.validate(["hex","blockNumberOrTag"],[i,s]);for(const l of f)Wt.validate(["number"],[l]);return o.send({method:"eth_feeHistory",params:[i,s,f]})})}function Fxe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_pendingTransactions",params:[]})})}function Gxe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_requestAccounts",params:[]})})}function Lxe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"eth_chainId",params:[]})})}function Uxe(o,i,s,f){return AA(this,void 0,void 0,function*(){return Wt.validate(["address","bytes32[]","blockNumberOrTag"],[i,s,f]),o.send({method:"eth_getProof",params:[i,s,f]})})}function qxe(o){return AA(this,void 0,void 0,function*(){return o.send({method:"web3_clientVersion",params:[]})})}function Hxe(o,i,s){return AA(this,void 0,void 0,function*(){return Wt.validate(["blockNumberOrTag"],[s]),o.send({method:"eth_createAccessList",params:[i,s]})})}function Txe(o,i,s,f=!1){return AA(this,void 0,void 0,function*(){return Wt.validate(["address"],[i]),o.send({method:`eth_signTypedData${f?"":"_v4"}`,params:[i,s]})})}var L5=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};function Yxe(o){return L5(this,void 0,void 0,function*(){return o.send({method:"net_version",params:[]})})}function Jxe(o){return L5(this,void 0,void 0,function*(){return o.send({method:"net_peerCount",params:[]})})}function Pxe(o){return L5(this,void 0,void 0,function*(){return o.send({method:"net_listening",params:[]})})}var vs=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const Oxe=o=>vs(void 0,void 0,void 0,function*(){return o.send({method:"personal_listAccounts",params:[]})}),jxe=(o,i)=>vs(void 0,void 0,void 0,function*(){return o.send({method:"personal_newAccount",params:[i]})}),Wxe=(o,i,s,f)=>vs(void 0,void 0,void 0,function*(){return o.send({method:"personal_unlockAccount",params:[i,s,f]})}),Vxe=(o,i)=>vs(void 0,void 0,void 0,function*(){return o.send({method:"personal_lockAccount",params:[i]})}),Zxe=(o,i,s)=>vs(void 0,void 0,void 0,function*(){return o.send({method:"personal_importRawKey",params:[i,s]})}),zxe=(o,i,s)=>vs(void 0,void 0,void 0,function*(){return o.send({method:"personal_sendTransaction",params:[i,s]})}),$xe=(o,i,s)=>vs(void 0,void 0,void 0,function*(){return o.send({method:"personal_signTransaction",params:[i,s]})}),Xxe=(o,i,s,f)=>vs(void 0,void 0,void 0,function*(){return o.send({method:"personal_sign",params:[i,s,f]})}),e8e=(o,i,s)=>vs(void 0,void 0,void 0,function*(){return o.send({method:"personal_ecRecover",params:[i,s]})}),sW={type:"object",properties:{accessList:{type:"null"},maxFeePerGas:{type:"null"},maxPriorityFeePerGas:{type:"null"}}},fW={type:"object",properties:{maxFeePerGas:{type:"null"},maxPriorityFeePerGas:{type:"null"}}},hW={type:"object",properties:{gasPrice:{type:"null"}}},AC=(o,i,s)=>{try{Wt.validateJSONSchema(o,i)}catch(f){throw f instanceof Kg?new Fbe(f.errors,s):f}},t8e=o=>{var i,s;const f=o;if(!dt(f.type)){let r;switch(f.type){case"0x0":r=sW;break;case"0x1":r=fW;break;case"0x2":r=hW;break;default:return Rt({format:"uint"},f.type,nA)}return AC(r,f,f.type),Rt({format:"uint"},f.type,nA)}if(!dt(f.maxFeePerGas)||!dt(f.maxPriorityFeePerGas))return AC(hW,f,"0x2"),"0x2";if(!dt(f.accessList))return AC(fW,f,"0x1"),"0x1";const l=(i=f.hardfork)!==null&&i!==void 0?i:(s=f.common)===null||s===void 0?void 0:s.hardfork;if(!dt(l)){const r=Object.keys(Pc).indexOf(l);if(r>=Object.keys(Pc).indexOf("london"))return dt(f.gasPrice)?"0x2":"0x0";if(r===Object.keys(Pc).indexOf("berlin"))return"0x0"}if(!dt(f.gasPrice))return AC(sW,f,"0x0"),"0x0"},A8e=(o,i)=>{var s;return((s=i==null?void 0:i.transactionTypeParser)!==null&&s!==void 0?s:t8e)(o)},r8e=o=>o[0]>127?"0x0":ds(o[0]),i8e={type:"object",properties:{address:{format:"address"},storageKeys:{type:"array",items:{format:"bytes32"}}}},U5={type:"array",items:Object.assign({},i8e)},n8e={type:"object",properties:{accessList:Object.assign({},U5),gasUsed:{type:"string"}}},gW={type:"string",enum:["goerli","kovan","mainnet","rinkeby","ropsten","sepolia"]},uW={type:"string",enum:["arrowGlacier","berlin","byzantium","chainstart","constantinople","dao","homestead","istanbul","london","merge","muirGlacier","petersburg","shanghai","spuriousDragon","tangerineWhistle"]},o8e={type:"object",properties:{name:{format:"string"},networkId:{format:"uint"},chainId:{format:"uint"}}},qoe={type:"object",properties:{from:{format:"address"},to:{oneOf:[{format:"address"},{type:"null"}]},value:{format:"uint"},gas:{format:"uint"},gasPrice:{format:"uint"},effectiveGasPrice:{format:"uint"},type:{format:"uint"},maxFeePerGas:{format:"uint"},maxPriorityFeePerGas:{format:"uint"},accessList:Object.assign({},U5),data:{format:"bytes"},input:{format:"bytes"},nonce:{format:"uint"},chain:Object.assign({},gW),hardfork:Object.assign({},uW),chainId:{format:"uint"},networkId:{format:"uint"},common:{type:"object",properties:{customChain:Object.assign({},o8e),baseChain:Object.assign({},gW),hardfork:Object.assign({},uW)}},gasLimit:{format:"uint"},v:{format:"uint"},r:{format:"bytes32"},s:{format:"bytes32"}}},VR={type:"object",properties:Object.assign(Object.assign({},qoe.properties),{blockHash:{format:"bytes32"},blockNumber:{format:"uint"},hash:{format:"bytes32"},transactionIndex:{format:"uint"},from:{format:"address"},to:{oneOf:[{format:"address"},{type:"null"}]},value:{format:"uint"},gas:{format:"uint"},gasPrice:{format:"uint"},effectiveGasPrice:{format:"uint"},type:{format:"uint"},maxFeePerGas:{format:"uint"},maxPriorityFeePerGas:{format:"uint"},accessList:Object.assign({},U5),data:{format:"bytes"},input:{format:"bytes"},nonce:{format:"uint"},gasLimit:{format:"uint"},v:{format:"uint"},r:{format:"bytes32"},s:{format:"bytes32"}})},Hoe={type:"object",properties:{index:{format:"uint"},validatorIndex:{format:"uint"},address:{format:"address"},amount:{format:"uint"}}},wp={type:"object",properties:{baseFeePerGas:{format:"uint"},blobGasUsed:{format:"uint"},difficulty:{format:"uint"},excessBlobGas:{format:"uint"},extraData:{format:"bytes"},gasLimit:{format:"uint"},gasUsed:{format:"uint"},hash:{format:"bytes32"},logsBloom:{format:"bytes256"},miner:{format:"bytes"},mixHash:{format:"bytes32"},nonce:{format:"uint"},number:{format:"uint"},parentBeaconBlockRoot:{format:"bytes32"},parentHash:{format:"bytes32"},receiptsRoot:{format:"bytes32"},sha3Uncles:{format:"bytes32"},size:{format:"uint"},stateRoot:{format:"bytes32"},timestamp:{format:"uint"},totalDifficulty:{format:"uint"},transactions:{oneOf:[{type:"array",items:Object.assign({},VR)},{type:"array",items:{format:"bytes32"}}]},transactionsRoot:{format:"bytes32"},uncles:{type:"array",items:{format:"bytes32"}},withdrawals:{type:"array",items:Object.assign({},Hoe)},withdrawalsRoot:{format:"bytes32"}}},a8e={type:"object",properties:{author:{format:"bytes32"},excessDataGas:{format:"uint"},baseFeePerGas:{format:"uint"},blobGasUsed:{format:"uint"},difficulty:{format:"uint"},excessBlobGas:{format:"uint"},extraData:{format:"bytes"},gasLimit:{format:"uint"},gasUsed:{format:"uint"},hash:{format:"bytes32"},logsBloom:{format:"bytes256"},miner:{format:"bytes"},mixHash:{format:"bytes32"},nonce:{format:"uint"},number:{format:"uint"},parentBeaconBlockRoot:{format:"bytes32"},parentHash:{format:"bytes32"},receiptsRoot:{format:"bytes32"},sha3Uncles:{format:"bytes32"},size:{format:"uint"},stateRoot:{format:"bytes32"},timestamp:{format:"uint"},totalDifficulty:{format:"uint"},transactions:{type:"array",items:{format:"bytes32"}},transactionsRoot:{format:"bytes32"},uncles:{type:"array",items:{format:"bytes32"}},withdrawals:{type:"array",items:Object.assign({},Hoe)},withdrawalsRoot:{format:"bytes32"}}},du={type:"object",properties:{removed:{format:"bool"},logIndex:{format:"uint"},transactionIndex:{format:"uint"},transactionHash:{format:"bytes32"},blockHash:{format:"bytes32"},blockNumber:{format:"uint"},address:{format:"address"},data:{format:"bytes"},topics:{type:"array",items:{format:"bytes32"}}}},s8e={type:"object",properties:{startingBlock:{format:"string"},currentBlock:{format:"string"},highestBlock:{format:"string"},knownStates:{format:"string"},pulledStates:{format:"string"}}},Iu={type:"object",properties:{transactionHash:{format:"bytes32"},transactionIndex:{format:"uint"},blockHash:{format:"bytes32"},blockNumber:{format:"uint"},from:{format:"address"},to:{format:"address"},cumulativeGasUsed:{format:"uint"},gasUsed:{format:"uint"},effectiveGasPrice:{format:"uint"},contractAddress:{format:"address"},logs:{type:"array",items:Object.assign({},du)},logsBloom:{format:"bytes"},root:{format:"bytes"},status:{format:"uint"},type:{format:"uint"}}},f8e={type:"object",properties:{messageHash:{format:"bytes"},r:{format:"bytes32"},s:{format:"bytes32"},v:{format:"bytes"},message:{format:"bytes"},signature:{format:"bytes"}}},h8e={type:"object",properties:{oldestBlock:{format:"uint"},baseFeePerGas:{type:"array",items:{format:"uint"}},reward:{type:"array",items:{type:"array",items:{format:"uint"}}},gasUsedRatio:{type:"array",items:{type:"number"}}}},g8e={type:"object",properties:{key:{format:"bytes32"},value:{format:"uint"},proof:{type:"array",items:{format:"bytes32"}}}},u8e={type:"object",properties:{balance:{format:"uint"},codeHash:{format:"bytes32"},nonce:{format:"uint"},storageHash:{format:"bytes32"},accountProof:{type:"array",items:{format:"bytes32"}},storageProof:{type:"array",items:Object.assign({},g8e)}}};function tn(o,i=Ni,s={transactionSchema:VR,fillInputAndData:!1}){var f,l;let r=kf({},o);if(dt(o==null?void 0:o.common)||(r.common=Object.assign({},o.common),dt((f=o.common)===null||f===void 0?void 0:f.customChain)||(r.common.customChain=Object.assign({},o.common.customChain))),r=Rt((l=s.transactionSchema)!==null&&l!==void 0?l:VR,r,i),!dt(r.data)&&!dt(r.input)&&ds(r.data)!==ds(r.input))throw new ine({data:SA(r.data),input:SA(r.input)});return s.fillInputAndData&&(dt(r.data)?dt(r.input)||(r.data=r.input):r.input=r.data),dt(r.gasLimit)||(r.gas=r.gasLimit,delete r.gasLimit),r}function c8e(o,i,s={fillInputAndData:!1}){return{raw:Rt({format:"bytes"},o,i),tx:tn(Object.assign(Object.assign({},e0.fromSerializedData(ar(o)).toJSON()),{hash:SA(Lg(ar(o))),type:r8e(ar(o))}),i,{fillInputAndData:s.fillInputAndData,transactionSchema:s.transactionSchema})}}var q5=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};function H5(o,i){return q5(this,void 0,void 0,function*(){const s=yield Yxe(o.requestManager);return Rt({format:"uint"},s,i)})}function l8e(o,i){return q5(this,void 0,void 0,function*(){const s=yield Jxe(o.requestManager);return Rt({format:"uint"},s,i)})}const d8e=o=>q5(void 0,void 0,void 0,function*(){return Pxe(o.requestManager)});var jS=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class Toe extends en{getId(i=this.defaultReturnFormat){return jS(this,void 0,void 0,function*(){return H5(this,i)})}getPeerCount(i=this.defaultReturnFormat){return jS(this,void 0,void 0,function*(){return l8e(this,i)})}isListening(){return jS(this,void 0,void 0,function*(){return d8e(this)})}}const Jg="ALLEVENTS",ZR={name:Jg,signature:"",type:"event",inputs:[]},OQ={bytes:us.HEX,number:ho.NUMBER};var Yoe=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};function I8e(o,i,s){var f,l,r,B;return Yoe(this,void 0,void 0,function*(){const I=yield Cae(i,i.defaultBlock,!1,nA);if(dt(I.baseFeePerGas))throw new kbe;let p;if(dt(o.gasPrice)&&BigInt(I.baseFeePerGas)===BigInt(0)&&(p=yield Z5(i,s)),!dt(o.gasPrice)||!dt(p)){const Q=Rt({format:"uint"},(f=o.gasPrice)!==null&&f!==void 0?f:p,s);return{maxPriorityFeePerGas:Q,maxFeePerGas:Q}}return{maxPriorityFeePerGas:Rt({format:"uint"},(l=o.maxPriorityFeePerGas)!==null&&l!==void 0?l:i.defaultMaxPriorityFeePerGas,s),maxFeePerGas:Rt({format:"uint"},(r=o.maxFeePerGas)!==null&&r!==void 0?r:BigInt(I.baseFeePerGas)*BigInt(2)+BigInt((B=o.maxPriorityFeePerGas)!==null&&B!==void 0?B:i.defaultMaxPriorityFeePerGas),s)}})}function Joe(o,i,s){return Yoe(this,void 0,void 0,function*(){const f=Poe(o,i);if(!dt(f)){if(f.startsWith("-"))throw new vj(f);if(Number(f)<0||Number(f)>127)throw new vj(f);if(dt(o.gasPrice)&&(f==="0x0"||f==="0x1"))return{gasPrice:yield Z5(i,s),maxPriorityFeePerGas:void 0,maxFeePerGas:void 0};if(f==="0x2")return Object.assign({gasPrice:void 0},yield I8e(o,i,s))}})}var T5=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const zR=(o,i,s,f)=>{if(s!==void 0&&o in s&&s[o]!==void 0){if(typeof s[o]=="string"&&vn(s[o]))return s[o];if(!PA(s[o])&&Kne(s[o])){if(i.wallet){const l=i.wallet.get(Rt({format:"uint"},s[o],OQ));if(!dt(l))return l.address;throw new wj}throw new wj}else throw o==="from"?new cbe(s.from):new lbe(s.to)}if(o==="from"){if(!dt(f))return PQ(f);if(!dt(i.defaultAccount))return i.defaultAccount}},B8e=(o,i,s=o.defaultReturnFormat)=>T5(void 0,void 0,void 0,function*(){if(dt(i))throw new Rbe;return pae(o,i,o.defaultBlock,s)}),Poe=(o,i)=>{const s=A8e(o,i);if(!dt(s))return s;if(!dt(i.defaultTransactionType))return Rt({format:"uint"},i.defaultTransactionType,nA)};function C8e(o){var i,s;return T5(this,void 0,void 0,function*(){let f=Rt(qoe,o.transaction,o.web3Context.defaultReturnFormat);if(dt(f.from)&&(f.from=zR("from",o.web3Context,void 0,o.privateKey)),dt(f.nonce)&&(f.nonce=yield B8e(o.web3Context,f.from,nA)),dt(f.value)&&(f.value="0x0"),dt(f.data))dt(f.input)?f.input="0x":f.input.startsWith("0x")||(f.input=`0x${f.input}`);else{if(!dt(f.input)&&f.data!==f.input)throw new ine({data:SA(f.data),input:SA(f.input)});f.data.startsWith("0x")||(f.data=`0x${f.data}`)}if(dt(f.common)){if(o.web3Context.defaultCommon){const l=o.web3Context.defaultCommon,r=l.customChain.chainId,B=l.customChain.networkId,I=l.customChain.name;f.common=Object.assign(Object.assign({},l),{customChain:{chainId:r,networkId:B,name:I}})}dt(f.chain)&&(f.chain=o.web3Context.defaultChain),dt(f.hardfork)&&(f.hardfork=o.web3Context.defaultHardfork)}if(dt(f.chainId)&&dt((i=f.common)===null||i===void 0?void 0:i.customChain.chainId)&&(f.chainId=yield yae(o.web3Context,nA)),dt(f.networkId)&&(f.networkId=(s=o.web3Context.defaultNetworkId)!==null&&s!==void 0?s:yield H5(o.web3Context,nA)),dt(f.gasLimit)&&!dt(f.gas)&&(f.gasLimit=f.gas),f.type=Poe(f,o.web3Context),dt(f.accessList)&&(f.type==="0x1"||f.type==="0x2")&&(f.accessList=[]),o.fillGasPrice&&(f=Object.assign(Object.assign({},f),yield Joe(f,o.web3Context,nA))),dt(f.gas)&&dt(f.gasLimit)&&o.fillGasLimit){const l=yield X5(o.web3Context,f,"latest",nA);f=Object.assign(Object.assign({},f),{gas:Rt({format:"uint"},l,nA)})}return f})}const E8e=o=>T5(void 0,void 0,void 0,function*(){var i;return((i=o.web3Context.transactionBuilder)!==null&&i!==void 0?i:C8e)(Object.assign(Object.assign({},o),{transaction:o.transaction}))});var Y5=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};function $R(o,i,s){const f=o.transactionPollingInterval,[l,r]=Vne(()=>Y5(this,void 0,void 0,function*(){let I;try{I=yield z5(o,OQ)}catch(Q){console.warn("An error happen while trying to get the block number",Q);return}const p=I-i;if(p>=o.transactionBlockTimeout)return new ane({starterBlockNumber:i,numberOfBlocks:p,transactionHash:s})}),f);return[r,{clean:()=>{clearInterval(l)}}]}function p8e(o,i,s){var f;return Y5(this,void 0,void 0,function*(){let l=!0,r,B;function I(Q,d){d&&console.warn("error happened at subscription. So revert to polling...",d),B.clean(),l=!1;const[y,v]=$R(o,i,s);B.clean=v.clean,y.catch(w=>Q(w))}try{r=yield(f=o.subscriptionManager)===null||f===void 0?void 0:f.subscribe("newHeads"),B={clean:()=>{var Q;r.id&&((Q=o.subscriptionManager)===null||Q===void 0||Q.removeSubscription(r).then(()=>{}).catch(()=>{}))}}}catch{return $R(o,i,s)}return[new Promise((Q,d)=>{try{r.on("data",y=>{if(l=!1,!(y!=null&&y.number))return;const v=Number(BigInt(y.number)-BigInt(i));v>=o.transactionBlockTimeout&&d(new ane({starterBlockNumber:i,numberOfBlocks:v,transactionHash:s}))}),r.on("error",y=>{I(d,y)})}catch(y){I(d,y)}setTimeout(()=>{l&&I(d)},o.blockHeaderTimeout*1e3)}),B]})}function Ooe(o,i){var s,f;return Y5(this,void 0,void 0,function*(){const{provider:l}=o.requestManager;let r;const B=yield z5(o,OQ);return!((f=(s=l).supportsSubscriptions)===null||f===void 0)&&f.call(s)&&o.enableExperimentalFeatures.useSubscriptionWhenCheckingBlockTimeout?r=yield p8e(o,B,i):r=$R(o,B,i),r})}var Q8e=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};function XR(o,i,s){return Q8e(this,void 0,void 0,function*(){const[f,l]=p5(o.transactionSendTimeout,new Nbe({numberOfSeconds:o.transactionSendTimeout/1e3,transactionHash:s})),[r,B]=yield Ooe(o,s);try{return yield Promise.race([i(),l,r])}finally{clearTimeout(f),B.clean()}})}var cW=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};function joe(o,i,s,f){var l;return cW(this,void 0,void 0,function*(){const r=(l=o.transactionReceiptPollingInterval)!==null&&l!==void 0?l:o.transactionPollingInterval,[B,I]=E5(()=>cW(this,void 0,void 0,function*(){try{return(f??Eae)(o,i,s)}catch(v){console.warn("An error happen while trying to get the transaction receipt",v);return}}),r),[p,Q]=p5(o.transactionPollingTimeout,new one({numberOfSeconds:o.transactionPollingTimeout/1e3,transactionHash:i})),[d,y]=yield Ooe(o,i);try{return yield Promise.race([B,Q,d])}finally{p&&clearTimeout(p),I&&clearInterval(I),y.clean()}})}var y8e=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const dE=({web3Context:o,transactionReceipt:i,transactionPromiEvent:s,customTransactionReceiptSchema:f,returnFormat:l})=>{var r;let B=1;const I=setInterval(()=>{y8e(void 0,void 0,void 0,function*(){if(B>=o.transactionConfirmationBlocks){clearInterval(I);return}const p=yield Uoe(o.requestManager,Yr(BigInt(i.blockNumber)+BigInt(B)),!1);p!=null&&p.hash&&(B+=1,s.emit("confirmation",{confirmations:Rt({format:"uint"},B,l),receipt:Rt(f??Iu,i,l),latestBlockHash:Rt({format:"bytes32"},p.hash,l)}))})},(r=o.transactionReceiptPollingInterval)!==null&&r!==void 0?r:o.transactionPollingInterval)};var lW=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const v8e=({web3Context:o,transactionReceipt:i,transactionPromiEvent:s,customTransactionReceiptSchema:f,returnFormat:l})=>{let r=!0,B;setImmediate(()=>{var I;(I=o.subscriptionManager)===null||I===void 0||I.subscribe("newHeads").then(p=>{p.on("data",Q=>lW(void 0,void 0,void 0,function*(){var d;if(r=!1,!(Q!=null&&Q.number)||B===(Q==null?void 0:Q.parentHash))return;B=Q==null?void 0:Q.parentHash;const y=BigInt(Q.number)-BigInt(i.blockNumber)+BigInt(1);s.emit("confirmation",{confirmations:Rt({format:"uint"},y,l),receipt:Rt(f??Iu,i,l),latestBlockHash:Rt({format:"bytes32"},Q.parentHash,l)}),y>=o.transactionConfirmationBlocks&&(yield(d=o.subscriptionManager)===null||d===void 0?void 0:d.removeSubscription(p))})),p.on("error",()=>lW(void 0,void 0,void 0,function*(){var Q;yield(Q=o.subscriptionManager)===null||Q===void 0?void 0:Q.removeSubscription(p),r=!1,dE({web3Context:o,transactionReceipt:i,transactionPromiEvent:s,customTransactionReceiptSchema:f,returnFormat:l})}))}).catch(()=>{r=!1,dE({web3Context:o,transactionReceipt:i,customTransactionReceiptSchema:f,transactionPromiEvent:s,returnFormat:l})})}),setTimeout(()=>{r&&dE({web3Context:o,transactionReceipt:i,transactionPromiEvent:s,returnFormat:l})},o.blockHeaderTimeout*1e3)};function w8e(o,i,s,f,l,r){if(dt(s)||dt(s.blockHash))throw new _be({receipt:s,blockHash:Rt({format:"bytes32"},s==null?void 0:s.blockHash,l),transactionHash:Rt({format:"bytes32"},f,l)});if(!s.blockNumber)throw new Kbe({receipt:s});i.emit("confirmation",{confirmations:Rt({format:"uint"},1,l),receipt:Rt(r??Iu,s,l),latestBlockHash:Rt({format:"bytes32"},s.blockHash,l)});const B=o.requestManager.provider;B&&"supportsSubscriptions"in B&&B.supportsSubscriptions()?v8e({web3Context:o,transactionReceipt:s,transactionPromiEvent:i,customTransactionReceiptSchema:r,returnFormat:l}):dE({web3Context:o,transactionReceipt:s,transactionPromiEvent:i,customTransactionReceiptSchema:r,returnFormat:l})}const jQ=o=>!zt(o)&&typeof o=="object"&&!zt(o.type)&&o.type==="error",J5=o=>!zt(o)&&typeof o=="object"&&!zt(o.type)&&o.type==="event",WQ=o=>!zt(o)&&typeof o=="object"&&!zt(o.type)&&o.type==="function",m8e=o=>!zt(o)&&typeof o=="object"&&!zt(o.type)&&o.type==="constructor",M8e=o=>typeof o=="object"&&typeof o.components>"u"&&typeof o.name>"u",Woe=o=>o.includes("[]")?{type:"tuple[]",name:o.slice(0,-2)}:{type:"tuple",name:o},Voe=o=>{const i=[];for(const s of Object.keys(o)){const f=o[s];typeof f=="object"?i.push(Object.assign(Object.assign({},Woe(s)),{components:Voe(f)})):i.push({name:s,type:o[s]})}return i},ek=(o,i)=>{const s=[];return i.forEach(f=>{if(typeof f.components=="object"){if(!f.type.startsWith("tuple"))throw new NA(`Invalid value given "${f.type}". Error: components found but type is not tuple.`);const l=f.type.indexOf("["),r=l>=0?f.type.substring(l):"",B=ek(o,f.components);Array.isArray(B)&&o?s.push(`tuple(${B.join(",")})${r}`):s.push(`(${B.join(",")})${r}`)}else s.push(f.type)}),s},fs=o=>{var i,s,f,l;return jQ(o)||J5(o)||WQ(o)?!((i=o.name)===null||i===void 0)&&i.includes("(")?o.name:`${(s=o.name)!==null&&s!==void 0?s:""}(${ek(!1,(f=o.inputs)!==null&&f!==void 0?f:[]).join(",")})`:`(${ek(!1,(l=o.inputs)!==null&&l!==void 0?l:[]).join(",")})`},b8e=o=>{if(typeof o!="string"&&!jQ(o))throw new NA("Invalid parameter value in encodeErrorSignature");let i;return o&&(typeof o=="function"||typeof o=="object")?i=fs(o):i=o,wn(i)},P5=o=>{if(typeof o!="string"&&!J5(o))throw new NA("Invalid parameter value in encodeEventSignature");let i;return o&&(typeof o=="function"||typeof o=="object")?i=fs(o):i=o,wn(i)};function O5(o,i){const s=o.exec(i);return s==null?void 0:s.groups}var Zoe=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,zoe=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,$oe=/^\(.+?\).*?$/,D8e=Object.defineProperty,S8e=(o,i,s)=>i in o?D8e(o,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[i]=s,yc=(o,i,s)=>(S8e(o,typeof i!="symbol"?i+"":i,s),s),x8e="abitype",R8e="0.7.1",zi=class extends Error{constructor(o,i={}){var r;const s=i.cause instanceof zi?i.cause.details:(r=i.cause)!=null&&r.message?i.cause.message:i.details,f=i.cause instanceof zi&&i.cause.docsPath||i.docsPath,l=[o||"An error occurred.","",...i.metaMessages?[...i.metaMessages,""]:[],...f?[`Docs: https://abitype.dev${f}`]:[],...s?[`Details: ${s}`]:[],`Version: ${x8e}@${R8e}`].join(` -`);super(l),yc(this,"details"),yc(this,"docsPath"),yc(this,"metaMessages"),yc(this,"shortMessage"),yc(this,"name","AbiTypeError"),i.cause&&(this.cause=i.cause),this.details=s,this.docsPath=f,this.metaMessages=i.metaMessages,this.shortMessage=o}},Xoe=/^struct (?[a-zA-Z0-9_]+) \{(?.*?)\}$/;function eae(o){return Xoe.test(o)}function k8e(o){return O5(Xoe,o)}var dW=new Set(["memory","indexed","storage","calldata"]),N8e=new Set(["calldata","memory","storage"]);function _8e(o,i){return i?`${i}:${o}`:o}var WS=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]),K8e=/^(?[a-zA-Z0-9_]+?)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z0-9_]+))?$/,F8e=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z0-9_]+))?$/,G8e=/^u?int$/;function mp(o,i){var y,v;const s=_8e(o,i==null?void 0:i.type);if(WS.has(s))return WS.get(s);const f=$oe.test(o),l=O5(f?F8e:K8e,o);if(!l)throw new zi("Invalid ABI parameter.",{details:o});if(l.name&&U8e(l.name))throw new zi("Invalid ABI parameter.",{details:o,metaMessages:[`"${l.name}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]});const r=l.name?{name:l.name}:{},B=l.modifier==="indexed"?{indexed:!0}:{},I=(i==null?void 0:i.structs)??{};let p,Q={};if(f){p="tuple";const w=V0(l.type),M=[],m=w.length;for(let x=0;x0?"opening":"closing"} parentheses.`],details:`Depth "${f}"`});return[...i,s.trim()]}const l=o.length;for(let r=0;r[a-zA-Z0-9_]+?)(?(?:\[\d*?\])+?)?$/;function Aae(o,i,s=new Set){const f=[],l=o.length;for(let r=0;rrae(f))})}function J8e(o){return!zt(o)&&typeof o=="object"&&!zt(o.type)&&typeof o.type=="string"}function iae(o){return o.map(i=>{var s;if(J8e(i))return i;if(typeof i=="string")return rae(Y8e(i.replace(/tuple/,"")));if(M8e(i)){const f=Object.keys(i)[0],l=Woe(f);return l.name=(s=l.name)!==null&&s!==void 0?s:"",Object.assign(Object.assign({},l),{components:Voe(i[f])})}throw new NA("Invalid abi")})}function j5(o){const i=o.type.lastIndexOf("["),s=o.type.substring(0,i),f=o.type.substring(i);let l=-1;if(f!=="[]"&&(l=Number(f.slice(1,-1)),isNaN(l)))throw new NA("Invalid fixed array size",{size:f});return{param:{type:s,name:"",components:o.components},size:l}}function Mp(o){var i,s;return o.type==="string"||o.type==="bytes"||o.type.endsWith("[]")?!0:o.type==="tuple"?(s=(i=o.components)===null||i===void 0?void 0:i.some(Mp))!==null&&s!==void 0?s:!1:o.type.endsWith("]")?Mp(j5(o).param):!1}const nae=20,oae=yr-nae;function P8e(o,i){if(typeof i!="string")throw new NA("address type expects string as input type",{value:i,name:o.name,type:o.type});let s=i.toLowerCase();if(s.startsWith("0x")||(s=`0x${s}`),!vn(s))throw new NA("provided input is not valid address",{value:i,name:o.name,type:o.type});const f=i0(s),l=tk(yr);return l.set(f,oae),{dynamic:!1,encoded:l}}function O8e(o,i){const s=i.subarray(oae,yr);if(s.length!==nae)throw new NA("Invalid decoding input, not enough bytes to decode address",{bytes:i});const f=Qs(s);return{result:Ra(f),encoded:i.subarray(yr),consumed:yr}}const vf=new Map;let rC=BigInt(256);for(let o=8;o<=256;o+=8)vf.set(`uint${o}`,{min:BigInt(0),max:rC-BigInt(1)}),vf.set(`int${o}`,{min:-rC/BigInt(2),max:rC/BigInt(2)-BigInt(1)}),rC*=BigInt(256);vf.set("int",vf.get("int256"));vf.set("uint",vf.get("uint256"));const aae=BigInt(1)<f.max)throw new NA("provided input is greater then maximum for given type",{type:o.type,value:i,name:o.name,maximum:f.max.toString()});return{dynamic:!1,encoded:j8e(s)}}function Pg(o,i){if(i.lengthf.max)throw new NA("decoded value is greater then maximum for given type",{type:o.type,value:l,name:o.name,maximum:f.max.toString()});return{result:l,encoded:i.subarray(yr),consumed:yr}}function V8e(o,i){let s;try{s=qne(i)}catch(f){if(f instanceof o5)throw new NA("provided input is not valid boolean value",{type:o.type,value:i,name:o.name})}return Qd({type:"uint8",name:""},Number(s))}function Z8e(o,i){const s=Pg({type:"uint8",name:""},i);if(s.result>1||s.result<0)throw new NA("Invalid boolean value encoded",{boolBytes:i.subarray(0,yr),numberResult:s});return{result:s.result===BigInt(1),encoded:s.encoded,consumed:yr}}const z8e=32;function sae(o,i){if(typeof i=="string"&&i.length%2!==0&&(i+="0"),!xf(i))throw new NA("provided input is not valid bytes value",{type:o.type,value:i,name:o.name});const s=ba(i),[,f]=o.type.split("bytes");if(f){if(Number(f)>z8e||Number(f)<1)throw new NA("invalid bytes type. Static byte type can have between 1 and 32 bytes",{type:o.type});if(Number(f)i.length)throw new NA("there is not enough data to decode",{type:o.type,encoded:i,size:f});return{result:SA(l.subarray(0,f)),encoded:l.subarray(r*yr),consumed:B+r*yr}}function $8e(o,i){if(typeof i!="string")throw new NA("invalid input, should be string",{input:i});const s=I5(i);return sae({type:"bytes",name:""},s)}function X8e(o,i){const s=fae({type:"bytes",name:""},i);return{result:FQ(s.result),encoded:s.encoded,consumed:s.consumed}}function hae(o){let i=0,s=0;const f=[],l=[];for(const r of o)r.dynamic?i+=yr:i+=r.encoded.length;for(const r of o)r.dynamic?(f.push(Qd({type:"uint256",name:""},i+s)),l.push(r),s+=r.encoded.length):f.push(r);return Li(...f.map(r=>r.encoded),...l.map(r=>r.encoded))}function eRe(o,i){if(!Array.isArray(i))throw new NA("Expected value to be array",{abi:o,values:i});const{size:s,param:f}=j5(o),l=i.map(I=>Ak(f,I)),r=s===-1,B=l.length>0&&l[0].dynamic;if(!r&&i.length!==s)throw new NA("Given arguments count doesn't match array length",{arrayLength:s,argumentsLength:i.length});if(r||B){const I=hae(l);if(r){const p=Qd({type:"uint256",name:""},l.length).encoded;return{dynamic:!0,encoded:l.length>0?Li(p,I):p}}return{dynamic:!0,encoded:I}}return{dynamic:!1,encoded:Li(...l.map(I=>I.encoded))}}function tRe(o,i){let{size:s,param:f}=j5(o);const l=s===-1;let r=0;const B=[];let I=i;if(l){const Q=Pg({type:"uint32",name:""},i);s=Number(Q.result),r=Q.consumed,I=Q.encoded}if(Mp(f)){for(let Q=0;Q=B.length)throw new NA("input param length missmatch",{param:o,input:i});d=Ak(Q,B[p])}else{const y=B[(l=Q.name)!==null&&l!==void 0?l:""];if(y==null)throw new NA("missing input defined in abi",{param:o,input:i,paramName:Q.name});d=Ak(Q,y)}d.dynamic&&(r=!0),I.push(d)}return r?{dynamic:!0,encoded:hae(I)}:{dynamic:!1,encoded:Li(...I.map(p=>p.encoded))}}function gae(o,i){const s={__length__:0};let f=0;if(!o.components)return{result:s,encoded:i,consumed:f};let l=0;for(const[r,B]of o.components.entries()){let I;if(Mp(B)){const p=Pg({type:"uint32",name:""},i.subarray(f));I=bp(B,i.subarray(Number(p.result))),f+=p.consumed,l+=I.consumed}else I=bp(B,i.subarray(f)),f+=I.consumed;s.__length__+=1,s[r]=I.result,B.name&&B.name!==""&&(s[B.name]=I.result)}return{encoded:i.subarray(f+l),result:s,consumed:f+l}}function ARe(o,i,s){const f=iae(o),l=i0(i);return gae({type:"tuple",name:"",components:f},l).result}function uae(o){const i=[];return o.forEach(s=>{if(Array.isArray(s)){const f=uae(s);i.push({type:"tuple",components:f,name:""})}else i.push({type:ds(s,!0)})}),i}function VQ(o,i){if((o==null?void 0:o.length)!==i.length)throw new NA("Invalid number of values received for given ABI",{expected:o==null?void 0:o.length,received:i.length});const s=iae(o);return Qs(W5({type:"tuple",name:"",components:s},i).encoded)}function rRe(o){try{const i=uae(o);return Qs(W5({type:"tuple",name:"",components:i},o).encoded)}catch{throw new NA("Could not infer types from given params",{params:o})}}const rk=(o,i)=>VQ([o],[i]),cae=(o,i,s)=>{try{if(o.length>0&&(!i||i==="0x"||i==="0X"))throw new NA("Returned values aren't valid, did it run Out of Gas? You might also see this error if you are not using the correct ABI for the contract you are retrieving data from, requesting data from a block number that does not exist, or querying a node which is not fully synced.");return ARe(o,`0x${i.replace(/0x/i,"")}`,s)}catch(f){throw new NA(`Parameter decoding error: ${f.message}`,{internalErr:f})}},Lh=(o,i)=>cae(o,i,!1),lae=(o,i)=>Lh([o],i)[0],Nl=o=>{if(typeof o!="string"&&!WQ(o))throw new NA("Invalid parameter value in encodeFunctionSignature");let i;return o&&(typeof o=="function"||typeof o=="object")?i=fs(o):i=o,wn(i).slice(0,10)},iRe=(o,i)=>{var s;if(!WQ(o))throw new NA("Invalid parameter value in encodeFunctionCall");return`${Nl(o)}${VQ((s=o.inputs)!==null&&s!==void 0?s:[],i??[]).replace("0x","")}`},ik=(o,i,s=!0)=>{const f=s&&i&&i.length>=10&&i.startsWith("0x")?i.slice(10):i;if(!o.inputs)throw new _i("No inputs found in the ABI");const l=Lh([...o.inputs],f);return Object.assign(Object.assign({},l),{__method__:fs(o)})},nRe=(o,i)=>{if(o.type==="constructor")return i;if(!i)return null;const s=i.length>=2?i.slice(2):i;if(!o.outputs)return null;const f=Lh([...o.outputs],s);return f.__length__===1?f[0]:f},oRe=["bool","string","int","uint","address","fixed","ufixed"],aRe=(o,i)=>o==="string"?i:lae(o,i),dae=(o,i,s)=>{const f=Array.isArray(s)?s:[s],l={},r={};for(const[v,w]of o.entries())w.indexed?l[v]=w:r[v]=w;const B=i?cae(Object.values(r),i,!0):{__length__:0},I=f.length-Object.keys(l).length,p=Object.values(l).map((v,w)=>oRe.some(M=>v.type.startsWith(M))?aRe(v.type,f[w+I]):f[w+I]),Q={__length__:0};let d=0,y=0;for(const[v,w]of o.entries())Q[v]=w.type==="string"?"":void 0,l[v]&&(Q[v]=p[d],d+=1),r[v]&&(Q[v]=B[String(y)],y+=1),w.name&&(Q[w.name]=Q[v]),Q.__length__+=1;return Q},IE=(o,i)=>{if(i!=null&&i.data){let s,f,l;try{const r=i.data.slice(0,10),B=o.find(I=>b8e(I).startsWith(r));B!=null&&B.inputs?(s=B.name,f=fs(B),l=Lh([...B.inputs],i.data.substring(10))):i.data.startsWith("0x08c379a0")?(s="Error",f="Error(string)",l=Lh([{name:"message",type:"string"}],i.data.substring(10))):i.data.startsWith("0x4e487b71")?(s="Panic",f="Panic(uint256)",l=Lh([{name:"code",type:"uint256"}],i.data.substring(10))):console.error("No matching error abi found for error data",i.data)}catch(r){console.error(r)}s&&i.setDecodedProperties(s,f,l)}};var sRe=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const fRe=(o,i)=>{var s,f,l,r,B;if(o instanceof _h&&o.cause instanceof bQ){if(i!==void 0){const I=i.filter(p=>jQ(p));return IE(I,o.cause),{reason:o.cause.message,signature:(s=o.cause.data)===null||s===void 0?void 0:s.slice(0,10),data:(f=o.cause.data)===null||f===void 0?void 0:f.substring(10),customErrorName:o.cause.errorName,customErrorDecodedSignature:o.cause.errorSignature,customErrorArguments:o.cause.errorArgs}}return{reason:o.cause.message,signature:(l=o.cause.data)===null||l===void 0?void 0:l.slice(0,10),data:(r=o.cause.data)===null||r===void 0?void 0:r.substring(10)}}if(o instanceof DQ&&!Array.isArray((B=o.cause)===null||B===void 0?void 0:B.errors)&&o.cause!==void 0)return o.cause.message;throw o};function Iae(o,i,s,f=o.defaultReturnFormat){return sRe(this,void 0,void 0,function*(){try{yield $5(o,i,o.defaultBlock,f);return}catch(l){return fRe(l,s)}})}var hRe=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};function VS(o,i,s,f,l,r){return hRe(this,void 0,void 0,function*(){let B=r;B===void 0&&o.handleRevert&&i!==void 0&&(B=yield Iae(o,i,l));let I;if(B===void 0)I=new Ane(s);else if(typeof B=="string")I=new tp(B,void 0,s);else if(B.customErrorName!==void 0&&B.customErrorDecodedSignature!==void 0&&B.customErrorArguments!==void 0){const p=B;I=new tne(p.reason,p.customErrorName,p.customErrorDecodedSignature,p.customErrorArguments,p.signature,s,p.data)}else I=new tp(B.reason,B.signature,s,B.data);return I})}const V5=(o,i,s,f=Ni)=>{var l,r,B,I,p;let Q=Object.assign({},o);const d=Rt(du,i,f);if([Jg,"allEvents"].includes(Q.name)){const v=s.find(w=>w.signature===i.topics[0]);v?Q=v:Q={anonymous:!0}}if(Q.inputs=(r=(l=Q.inputs)!==null&&l!==void 0?l:o.inputs)!==null&&r!==void 0?r:[],!Q.anonymous){let v=0;((B=Q.inputs)!==null&&B!==void 0?B:[]).forEach(w=>{w.indexed&&(v+=1)}),v>0&&(i!=null&&i.topics)&&(i==null?void 0:i.topics.length)!==v+1&&(Q=Object.assign(Object.assign({},Q),{anonymous:!0,inputs:[]}))}const y=Q.anonymous?i.topics:((I=i.topics)!==null&&I!==void 0?I:[]).slice(1);return Object.assign(Object.assign({},d),{returnValues:dae([...(p=Q.inputs)!==null&&p!==void 0?p:[]],i.data,y),event:Q.name,signature:Q.anonymous||!i.topics||i.topics.length===0||!i.topics[0]?void 0:i.topics[0],raw:{data:i.data,topics:i.topics}})};var rh=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class Bae{constructor({options:i,web3Context:s,promiEvent:f,returnFormat:l}){this.options={checkRevertBeforeSending:!0},this.options=i,this.web3Context=s,this.promiEvent=f,this.returnFormat=l}getReceiptWithEvents(i){var s,f;const l=Object.assign({},i??{});if(!((s=this.options)===null||s===void 0)&&s.contractAbi&&l.logs&&l.logs.length>0){l.events={};for(const r of l.logs){const B=V5(ZR,r,(f=this.options)===null||f===void 0?void 0:f.contractAbi,this.returnFormat);B.event&&(l.events[B.event]=B)}}return l}checkRevertBeforeSending(i){return rh(this,void 0,void 0,function*(){if(this.options.checkRevertBeforeSending!==!1){let s=i;dt(i.data)&&dt(i.input)&&dt(i.gas)&&(s=Object.assign(Object.assign({},i),{gas:21e3}));const f=yield Iae(this.web3Context,s,this.options.contractAbi);if(f!==void 0)throw yield VS(this.web3Context,i,void 0,void 0,this.options.contractAbi,f)}})}emitSending(i){this.promiEvent.listenerCount("sending")>0&&this.promiEvent.emit("sending",i)}populateGasPrice({transactionFormatted:i,transaction:s}){var f;return rh(this,void 0,void 0,function*(){let l=i;return!this.web3Context.config.ignoreGasPricing&&!(!((f=this.options)===null||f===void 0)&&f.ignoreGasPricing)&&dt(i.gasPrice)&&(dt(s.maxPriorityFeePerGas)||dt(s.maxFeePerGas))&&(l=Object.assign(Object.assign({},i),yield Joe(i,this.web3Context,nA))),l})}signAndSend({wallet:i,tx:s}){return rh(this,void 0,void 0,function*(){if(i){const f=yield i.signTransaction(s);return XR(this.web3Context,()=>rh(this,void 0,void 0,function*(){return Loe(this.web3Context.requestManager,f.rawTransaction)}),f.transactionHash)}return XR(this.web3Context,()=>rh(this,void 0,void 0,function*(){return Ixe(this.web3Context.requestManager,s)}))})}emitSent(i){this.promiEvent.listenerCount("sent")>0&&this.promiEvent.emit("sent",i)}emitTransactionHash(i){this.promiEvent.listenerCount("transactionHash")>0&&this.promiEvent.emit("transactionHash",i)}emitReceipt(i){this.promiEvent.listenerCount("receipt")>0&&this.promiEvent.emit("receipt",i)}handleError({error:i,tx:s}){var f;return rh(this,void 0,void 0,function*(){let l=i;return l instanceof _h&&this.web3Context.handleRevert&&(l=yield VS(this.web3Context,s,void 0,void 0,(f=this.options)===null||f===void 0?void 0:f.contractAbi)),(l instanceof DQ||l instanceof _h||l instanceof tne||l instanceof Ane||l instanceof tp||l instanceof one)&&this.promiEvent.listenerCount("error")>0&&this.promiEvent.emit("error",l),l})}emitConfirmation({receipt:i,transactionHash:s,customTransactionReceiptSchema:f}){this.promiEvent.listenerCount("confirmation")>0&&w8e(this.web3Context,this.promiEvent,i,s,this.returnFormat,f)}handleResolve({receipt:i,tx:s}){var f,l,r;return rh(this,void 0,void 0,function*(){if(!((f=this.options)===null||f===void 0)&&f.transactionResolver)return(l=this.options)===null||l===void 0?void 0:l.transactionResolver(i);if(i.status===BigInt(0)){const B=yield VS(this.web3Context,s,i,void 0,(r=this.options)===null||r===void 0?void 0:r.contractAbi);throw this.promiEvent.listenerCount("error")>0&&this.promiEvent.emit("error",B),B}else return i})}}var jA=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})},gRe=function(o,i){var s={};for(var f in o)Object.prototype.hasOwnProperty.call(o,f)&&i.indexOf(f)<0&&(s[f]=o[f]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var l=0,f=Object.getOwnPropertySymbols(o);ljA(void 0,void 0,void 0,function*(){return Goe(o.requestManager)});function cRe(o,i){return jA(this,void 0,void 0,function*(){const s=yield txe(o.requestManager);return Rt({format:"uint"},s,i??o.defaultReturnFormat)})}function Z5(o,i){return jA(this,void 0,void 0,function*(){const s=yield Axe(o.requestManager);return Rt({format:"uint"},s,i??o.defaultReturnFormat)})}function lRe(o,i){return jA(this,void 0,void 0,function*(){const s=yield rxe(o.requestManager);return Rt({format:"uint"},s,i??o.defaultReturnFormat)})}function z5(o,i){return jA(this,void 0,void 0,function*(){const s=yield nxe(o.requestManager);return Rt({format:"uint"},s,i??o.defaultReturnFormat)})}function dRe(o,i,s=o.defaultBlock,f){return jA(this,void 0,void 0,function*(){const l=ei(s)?s:Rt({format:"uint"},s,nA),r=yield oxe(o.requestManager,i,l);return Rt({format:"uint"},r,f??o.defaultReturnFormat)})}function IRe(o,i,s,f=o.defaultBlock,l){return jA(this,void 0,void 0,function*(){const r=Rt({format:"uint"},s,nA),B=ei(f)?f:Rt({format:"uint"},f,nA),I=yield axe(o.requestManager,i,r,B);return Rt({format:"bytes"},I,l??o.defaultReturnFormat)})}function BRe(o,i,s=o.defaultBlock,f){return jA(this,void 0,void 0,function*(){const l=ei(s)?s:Rt({format:"uint"},s,nA),r=yield cxe(o.requestManager,i,l);return Rt({format:"bytes"},r,f??o.defaultReturnFormat)})}function Cae(o,i=o.defaultBlock,s=!1,f){var l;return jA(this,void 0,void 0,function*(){let r;if(xf(i)){const I=Rt({format:"bytes32"},i,nA);r=yield Exe(o.requestManager,I,s)}else{const I=ei(i)?i:Rt({format:"uint"},i,nA);r=yield Uoe(o.requestManager,I,s)}const B=Rt(wp,r,f??o.defaultReturnFormat);return dt(B)?B:Object.assign(Object.assign({},B),{transactions:(l=B.transactions)!==null&&l!==void 0?l:[]})})}function CRe(o,i=o.defaultBlock,s){return jA(this,void 0,void 0,function*(){let f;if(xf(i)){const l=Rt({format:"bytes32"},i,nA);f=yield fxe(o.requestManager,l)}else{const l=ei(i)?i:Rt({format:"uint"},i,nA);f=yield hxe(o.requestManager,l)}return Rt({format:"uint"},f,s??o.defaultReturnFormat)})}function ERe(o,i=o.defaultBlock,s){return jA(this,void 0,void 0,function*(){let f;if(xf(i)){const l=Rt({format:"bytes32"},i,nA);f=yield gxe(o.requestManager,l)}else{const l=ei(i)?i:Rt({format:"uint"},i,nA);f=yield uxe(o.requestManager,l)}return Rt({format:"uint"},f,s??o.defaultReturnFormat)})}function pRe(o,i=o.defaultBlock,s,f){return jA(this,void 0,void 0,function*(){const l=Rt({format:"uint"},s,nA);let r;if(xf(i)){const B=Rt({format:"bytes32"},i,nA);r=yield wxe(o.requestManager,B,l)}else{const B=ei(i)?i:Rt({format:"uint"},i,nA);r=yield mxe(o.requestManager,B,l)}return Rt(wp,r,f??o.defaultReturnFormat)})}function QRe(o,i,s=o.defaultReturnFormat){return jA(this,void 0,void 0,function*(){const f=Rt({format:"bytes32"},i,Ni),l=yield pxe(o.requestManager,f);return dt(l)?l:tn(l,s,{transactionSchema:o.config.customTransactionSchema,fillInputAndData:!0})})}function yRe(o,i){return jA(this,void 0,void 0,function*(){return(yield Fxe(o.requestManager)).map(f=>tn(f,i??o.defaultReturnFormat,{transactionSchema:o.config.customTransactionSchema,fillInputAndData:!0}))})}function vRe(o,i=o.defaultBlock,s,f){return jA(this,void 0,void 0,function*(){const l=Rt({format:"uint"},s,nA);let r;if(xf(i)){const B=Rt({format:"bytes32"},i,nA);r=yield Qxe(o.requestManager,B,l)}else{const B=ei(i)?i:Rt({format:"uint"},i,nA);r=yield yxe(o.requestManager,B,l)}return dt(r)?r:tn(r,f??o.defaultReturnFormat,{transactionSchema:o.config.customTransactionSchema,fillInputAndData:!0})})}function Eae(o,i,s){return jA(this,void 0,void 0,function*(){const f=Rt({format:"bytes32"},i,Ni);let l;try{l=yield vxe(o.requestManager,f)}catch(r){if(typeof r=="object"&&!dt(r)&&"message"in r&&r.message==="transaction indexing is in progress")console.warn("Transaction indexing is in progress.");else throw r}return dt(l)?l:Rt(Iu,l,s??o.defaultReturnFormat)})}function pae(o,i,s=o.defaultBlock,f){return jA(this,void 0,void 0,function*(){const l=ei(s)?s:Rt({format:"uint"},s,nA),r=yield sxe(o.requestManager,i,l);return Rt({format:"uint"},r,f??o.defaultReturnFormat)})}function _l(o,i,s,f={checkRevertBeforeSending:!0},l){const r=new Foe((B,I)=>{setImmediate(()=>{jA(this,void 0,void 0,function*(){const p=new Bae({web3Context:o,promiEvent:r,options:f,returnFormat:s});let Q=Object.assign({},i);dt(l)||(Q=yield l.processTransaction(Q));let d=tn(Object.assign(Object.assign({},Q),{from:zR("from",o,Q),to:zR("to",o,Q)}),nA,{transactionSchema:o.config.customTransactionSchema});try{d=yield p.populateGasPrice({transaction:Q,transactionFormatted:d}),yield p.checkRevertBeforeSending(d),p.emitSending(d);let y;o.wallet&&!dt(d.from)&&(y=o.wallet.get(d.from));const v=yield p.signAndSend({wallet:y,tx:d}),w=Rt({format:"bytes32"},v,s??o.defaultReturnFormat);p.emitSent(d),p.emitTransactionHash(w);const M=yield joe(o,v,s??o.defaultReturnFormat),m=p.getReceiptWithEvents(Rt(Iu,M,s??o.defaultReturnFormat));p.emitReceipt(m),B(yield p.handleResolve({receipt:m,tx:d})),p.emitConfirmation({receipt:m,transactionHash:v})}catch(y){I(yield p.handleError({error:y,tx:d}))}})})});return r}function wRe(o,i,s,f={checkRevertBeforeSending:!0}){const l=new Foe((r,B)=>{setImmediate(()=>{jA(this,void 0,void 0,function*(){const I=new Bae({web3Context:o,promiEvent:l,options:f,returnFormat:s}),p=Rt({format:"bytes"},i,nA),Q=e0.fromSerializedData(ba(ar(p))),d=Object.assign(Object.assign({},Q.toJSON()),{from:Q.getSenderAddress().toString()});try{const{v:y,r:v,s:w}=d,M=gRe(d,["v","r","s"]);yield I.checkRevertBeforeSending(M),I.emitSending(p);const m=yield XR(o,()=>jA(this,void 0,void 0,function*(){return Loe(o.requestManager,p)}));I.emitSent(p);const x=Rt({format:"bytes32"},m,s??o.defaultReturnFormat);I.emitTransactionHash(x);const D=yield joe(o,m,s??o.defaultReturnFormat),S=I.getReceiptWithEvents(Rt(Iu,D,s??o.defaultReturnFormat));I.emitReceipt(S),r(yield I.handleResolve({receipt:S,tx:d})),I.emitConfirmation({receipt:S,transactionHash:m})}catch(y){B(yield I.handleError({error:y,tx:d}))}})})});return l}function mRe(o,i,s,f=o.defaultReturnFormat){var l;return jA(this,void 0,void 0,function*(){const r=Rt({format:"bytes"},i,Ni);if(!((l=o.wallet)===null||l===void 0)&&l.get(s)){const p=o.wallet.get(s).sign(r);return Rt(f8e,p,f)}if(typeof s=="number")throw new gbe(i,'RPC method "eth_sign" does not support index signatures');const B=yield lxe(o.requestManager,s,r);return Rt({format:"bytes"},B,f)})}function MRe(o,i,s=o.defaultReturnFormat){return jA(this,void 0,void 0,function*(){const f=yield dxe(o.requestManager,tn(i,nA,{transactionSchema:o.config.customTransactionSchema}));return g5(f)?c8e(f,s,{fillInputAndData:!0}):{raw:Rt({format:"bytes"},f.raw,s),tx:tn(f.tx,s,{transactionSchema:o.config.customTransactionSchema,fillInputAndData:!0})}})}function $5(o,i,s=o.defaultBlock,f=o.defaultReturnFormat){return jA(this,void 0,void 0,function*(){const l=ei(s)?s:Rt({format:"uint"},s,nA),r=yield Bxe(o.requestManager,tn(i,nA,{transactionSchema:o.config.customTransactionSchema}),l);return Rt({format:"bytes"},r,f)})}function X5(o,i,s=o.defaultBlock,f){return jA(this,void 0,void 0,function*(){const l=tn(i,nA,{transactionSchema:o.config.customTransactionSchema}),r=ei(s)?s:Rt({format:"uint"},s,nA),B=yield Cxe(o.requestManager,l,r);return Rt({format:"uint"},B,f??o.defaultReturnFormat)})}function Qae(o,i,s){return jA(this,void 0,void 0,function*(){let{toBlock:f,fromBlock:l}=i;dt(f)||(typeof f=="number"||typeof f=="bigint")&&(f=Yr(f)),dt(l)||(typeof l=="number"||typeof l=="bigint")&&(l=Yr(l));const r=Object.assign(Object.assign({},i),{fromBlock:l,toBlock:f});return(yield kxe(o.requestManager,r)).map(p=>typeof p=="string"?p:Rt(du,p,s??o.defaultReturnFormat))})}function yae(o,i){return jA(this,void 0,void 0,function*(){const s=yield Lxe(o.requestManager);return Rt({format:"uint"},s,i??o.defaultReturnFormat)})}function bRe(o,i,s,f=o.defaultBlock,l){return jA(this,void 0,void 0,function*(){const r=s.map(p=>Rt({format:"bytes"},p,nA)),B=ei(f)?f:Rt({format:"uint"},f,nA),I=yield Uxe(o.requestManager,i,r,B);return Rt(u8e,I,l??o.defaultReturnFormat)})}function DRe(o,i,s=o.defaultBlock,f,l){return jA(this,void 0,void 0,function*(){const r=Rt({format:"uint"},i,nA),B=ei(s)?s:Rt({format:"uint"},s,nA),I=Rt({type:"array",items:{format:"uint"}},f,OQ),p=yield Kxe(o.requestManager,r,B,I);return Rt(h8e,p,l??o.defaultReturnFormat)})}function vae(o,i,s=o.defaultBlock,f){return jA(this,void 0,void 0,function*(){const l=ei(s)?s:Rt({format:"uint"},s,nA),r=yield Hxe(o.requestManager,tn(i,nA,{transactionSchema:o.config.customTransactionSchema}),l);return Rt(n8e,r,f??o.defaultReturnFormat)})}function SRe(o,i,s,f,l){return jA(this,void 0,void 0,function*(){const r=yield Txe(o.requestManager,i,s,f);return Rt({format:"bytes"},r,l??o.defaultReturnFormat)})}var Bu=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};function xRe(o,i){return Bu(this,void 0,void 0,function*(){const s=yield Dxe(o.requestManager);return Rt({format:"uint"},s,i??o.defaultReturnFormat)})}function RRe(o,i,s){return Bu(this,void 0,void 0,function*(){let{toBlock:f,fromBlock:l}=i;dt(f)||(typeof f=="number"||typeof f=="bigint")&&(f=Yr(f)),dt(l)||(typeof l=="number"||typeof l=="bigint")&&(l=Yr(l));const r=Object.assign(Object.assign({},i),{fromBlock:l,toBlock:f}),B=yield Mxe(o.requestManager,r);return Rt({format:"uint"},B,s??o.defaultReturnFormat)})}function kRe(o,i){return Bu(this,void 0,void 0,function*(){const s=yield bxe(o.requestManager);return Rt({format:"uint"},s,i??o.defaultReturnFormat)})}function NRe(o,i){return Bu(this,void 0,void 0,function*(){return yield Sxe(o.requestManager,Yr(i))})}function _Re(o,i,s){return Bu(this,void 0,void 0,function*(){return(yield xxe(o.requestManager,Yr(i))).map(r=>typeof r=="string"?r:Rt(du,r,s??o.defaultReturnFormat))})}function KRe(o,i,s){return Bu(this,void 0,void 0,function*(){return(yield Rxe(o.requestManager,Yr(i))).map(r=>typeof r=="string"?r:Rt(du,r,s??o.defaultReturnFormat))})}class wae extends Cd{_buildSubscriptionParams(){return["logs",this.args]}formatSubscriptionResult(i){return Rt(du,i,super.returnFormat)}}class IW extends Cd{_buildSubscriptionParams(){return["newPendingTransactions"]}formatSubscriptionResult(i){return Rt({format:"string"},i,super.returnFormat)}}class Dp extends Cd{_buildSubscriptionParams(){return["newHeads"]}formatSubscriptionResult(i){return Rt(a8e,i,super.returnFormat)}}class mae extends Cd{_buildSubscriptionParams(){return["syncing"]}_processSubscriptionResult(i){if(typeof i=="boolean")this.emit("changed",i);else{const s=Object.fromEntries(Object.entries((i==null?void 0:i.status)||i).map(([f,l])=>[f.charAt(0).toLowerCase()+f.substring(1),l]));this.emit("changed",i.syncing),this.emit("data",Rt(s8e,s,super.returnFormat))}}}var sA=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const nk={logs:wae,newPendingTransactions:IW,newHeads:Dp,syncing:mae,pendingTransactions:IW,newBlockHeaders:Dp};class ZQ extends en{constructor(i){if(typeof i=="string"||Cp(i)){super({provider:i,registeredSubscriptions:nk});return}if(i.registeredSubscriptions){super(i);return}super(Object.assign(Object.assign({},i),{registeredSubscriptions:nk})),this.getFeeData=this.calculateFeeData}setTransactionMiddleware(i){this.transactionMiddleware=i}getTransactionMiddleware(){return this.transactionMiddleware}getProtocolVersion(){return sA(this,void 0,void 0,function*(){return $4e(this.requestManager)})}isSyncing(){return sA(this,void 0,void 0,function*(){return Goe(this.requestManager)})}getCoinbase(){return sA(this,void 0,void 0,function*(){return X4e(this.requestManager)})}isMining(){return sA(this,void 0,void 0,function*(){return exe(this.requestManager)})}getHashrate(i){var s;return i===void 0&&(i=(s=this.defaultReturnFormat)!==null&&s!==void 0?s:Ni),sA(this,void 0,void 0,function*(){return this.getHashRate(i)})}getHashRate(i=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return cRe(this,i)})}getGasPrice(i=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return Z5(this,i)})}getMaxPriorityFeePerGas(i=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return lRe(this,i)})}calculateFeeData(i=BigInt(2),s=KQ.Gwei){var f;return sA(this,void 0,void 0,function*(){const l=yield this.getBlock(void 0,!1),r=(f=l==null?void 0:l.baseFeePerGas)!==null&&f!==void 0?f:void 0;let B;try{B=yield this.getGasPrice()}catch{}let I;try{I=yield this.getMaxPriorityFeePerGas()}catch{}let p;if(r){I=I??s;let Q;typeof i=="number"?Q=BigInt(Math.floor(i*1e3))/BigInt(1e3):Q=i,p=r*Q+I}return{gasPrice:B,maxFeePerGas:p,maxPriorityFeePerGas:I,baseFeePerGas:r}})}getAccounts(){var i;return sA(this,void 0,void 0,function*(){return((i=yield ixe(this.requestManager))!==null&&i!==void 0?i:[]).map(f=>Ra(f))})}getBlockNumber(i=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return z5(this,i)})}getBalance(i,s=this.defaultBlock,f=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return dRe(this,i,s,f)})}getStorageAt(i,s,f=this.defaultBlock,l=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return IRe(this,i,s,f,l)})}getCode(i,s=this.defaultBlock,f=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return BRe(this,i,s,f)})}getBlock(i=this.defaultBlock,s=!1,f=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return Cae(this,i,s,f)})}getBlockTransactionCount(i=this.defaultBlock,s=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return CRe(this,i,s)})}getBlockUncleCount(i=this.defaultBlock,s=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return ERe(this,i,s)})}getUncle(i=this.defaultBlock,s,f=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return pRe(this,i,s,f)})}getTransaction(i,s=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){const f=yield QRe(this,i,s);if(!f)throw new yj;return f})}getPendingTransactions(i=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return yRe(this,i)})}getTransactionFromBlock(i=this.defaultBlock,s,f=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return vRe(this,i,s,f)})}getTransactionReceipt(i,s=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){const f=yield Eae(this,i,s);if(!f)throw new yj;return f})}getTransactionCount(i,s=this.defaultBlock,f=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return pae(this,i,s,f)})}sendTransaction(i,s=this.defaultReturnFormat,f){return _l(this,i,s,f,this.transactionMiddleware)}sendSignedTransaction(i,s=this.defaultReturnFormat,f){return wRe(this,i,s,f)}sign(i,s,f=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return mRe(this,i,s,f)})}signTransaction(i,s=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return MRe(this,i,s)})}call(i,s=this.defaultBlock,f=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return $5(this,i,s,f)})}estimateGas(i,s=this.defaultBlock,f=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return X5(this,i,s,f)})}getPastLogs(i,s=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return Qae(this,i,s)})}getWork(){return sA(this,void 0,void 0,function*(){return Nxe(this.requestManager)})}submitWork(i,s,f){return sA(this,void 0,void 0,function*(){return _xe(this.requestManager,i,s,f)})}requestAccounts(){return sA(this,void 0,void 0,function*(){return Gxe(this.requestManager)})}getChainId(i=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return yae(this,i)})}getNodeInfo(){return sA(this,void 0,void 0,function*(){return qxe(this.requestManager)})}getProof(i,s,f=this.defaultBlock,l=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return bRe(this,i,s,f,l)})}getFeeHistory(i,s=this.defaultBlock,f,l=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return DRe(this,i,s,f,l)})}createAccessList(i,s=this.defaultBlock,f=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return vae(this,i,s,f)})}signTypedData(i,s,f,l){var r;return f===void 0&&(f=!1),l===void 0&&(l=(r=this.defaultReturnFormat)!==null&&r!==void 0?r:Ni),sA(this,void 0,void 0,function*(){return SRe(this,i,s,f,l)})}subscribe(i,s,f){var l,r;return f===void 0&&(f=(l=this.defaultReturnFormat)!==null&&l!==void 0?l:Ni),sA(this,void 0,void 0,function*(){const B=yield(r=this.subscriptionManager)===null||r===void 0?void 0:r.subscribe(i,s,f);return B instanceof wae&&i==="logs"&&typeof s=="object"&&!zt(s.fromBlock)&&Number.isFinite(Number(s.fromBlock))&&setImmediate(()=>{this.getPastLogs(s).then(I=>{for(const p of I)B._processSubscriptionResult(p)}).catch(I=>{B._processSubscriptionError(I)})}),B})}static shouldClearSubscription({sub:i}){return!(i instanceof mae)}clearSubscriptions(i=!1){var s;return(s=this.subscriptionManager)===null||s===void 0?void 0:s.unsubscribe(i?ZQ.shouldClearSubscription:void 0)}createNewPendingTransactionFilter(i=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return xRe(this,i)})}createNewFilter(i,s=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return RRe(this,i,s)})}createNewBlockFilter(i=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return kRe(this,i)})}uninstallFilter(i){return sA(this,void 0,void 0,function*(){return NRe(this,i)})}getFilterChanges(i,s=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return _Re(this,i,s)})}getFilterLogs(i,s=this.defaultReturnFormat){return sA(this,void 0,void 0,function*(){return KRe(this,i,s)})}}const FRe=o=>{if(!dt(o.common)){if(dt(o.common.customChain))throw new dbe;if(dt(o.common.customChain.chainId))throw new Ibe;if(!dt(o.chainId)&&o.chainId!==o.common.customChain.chainId)throw new Bbe({txChainId:o.chainId,customChainId:o.common.customChain.chainId})}},GRe=o=>{if(!dt(o.common)&&!dt(o.chain)&&!dt(o.hardfork))throw new pbe;if(!dt(o.chain)&&dt(o.hardfork)||!dt(o.hardfork)&&dt(o.chain))throw new Qbe({chain:o.chain,hardfork:o.hardfork})},LRe=o=>{if(!dt(o.common)&&!dt(o.common.baseChain)&&!dt(o.chain)&&o.chain!==o.common.baseChain)throw new Cbe({txChain:o.chain,baseChain:o.common.baseChain})},URe=o=>{if(!dt(o.common)&&!dt(o.common.hardfork)&&!dt(o.hardfork)&&o.hardfork!==o.common.hardfork)throw new Ebe({txHardfork:o.hardfork,commonHardfork:o.common.hardfork})},BW=o=>{if(dt(o.gas)||!ls(o.gas)||dt(o.gasPrice)||!ls(o.gasPrice))throw new Mbe({gas:o.gas,gasPrice:o.gasPrice});if(!dt(o.maxFeePerGas)||!dt(o.maxPriorityFeePerGas))throw new rne({maxFeePerGas:o.maxFeePerGas,maxPriorityFeePerGas:o.maxPriorityFeePerGas})},CW=o=>{if(!dt(o.gasPrice)&&o.type==="0x2")throw new Dbe(o.gasPrice);if(o.type==="0x0"||o.type==="0x1")throw new rne({maxFeePerGas:o.maxFeePerGas,maxPriorityFeePerGas:o.maxPriorityFeePerGas});if(dt(o.maxFeePerGas)||!ls(o.maxFeePerGas)||dt(o.maxPriorityFeePerGas)||!ls(o.maxPriorityFeePerGas))throw new bbe({maxPriorityFeePerGas:o.maxPriorityFeePerGas,maxFeePerGas:o.maxFeePerGas})},qRe=o=>{const i=!dt(o.gas)||!dt(o.gasLimit),s=i&&!dt(o.gasPrice),f=i&&!dt(o.maxPriorityFeePerGas)&&!dt(o.maxFeePerGas);if(!s&&!f)throw new vbe({gas:o.gas,gasPrice:o.gasPrice,maxPriorityFeePerGas:o.maxPriorityFeePerGas,maxFeePerGas:o.maxFeePerGas});if(s&&f)throw new mbe({gas:o.gas,gasPrice:o.gasPrice,maxPriorityFeePerGas:o.maxPriorityFeePerGas,maxFeePerGas:o.maxFeePerGas});(s?BW:CW)(o),(!dt(o.type)&&o.type>"0x1"?CW:BW)(o)},HRe=(o,i,s={transactionSchema:void 0})=>{if(!dt(i)){i(o);return}if(typeof o!="object"||dt(o))throw new Sbe(o);FRe(o),GRe(o),LRe(o),URe(o);const f=tn(o,nA,{transactionSchema:s.transactionSchema});if(qRe(f),dt(f.nonce)||dt(f.chainId)||f.nonce.startsWith("-")||f.chainId.startsWith("-"))throw new xbe({nonce:o.nonce,chainId:o.chainId})};var TRe=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const YRe=o=>{var i,s;return Object.assign(Object.assign({},o),{nonce:o.nonce,gasPrice:o.gasPrice,gasLimit:(i=o.gasLimit)!==null&&i!==void 0?i:o.gas,to:o.to,value:o.value,data:(s=o.data)!==null&&s!==void 0?s:o.input,type:o.type,chainId:o.chainId,accessList:o.accessList,maxPriorityFeePerGas:o.maxPriorityFeePerGas,maxFeePerGas:o.maxFeePerGas})},JRe=(o,i)=>{var s,f,l,r,B,I,p,Q,d,y,v,w,M,m,x,D,S,K;const N=!dt(o.chain)&&!dt(o.hardfork)||!dt(o.common);let L;if(!N)i.defaultCommon?(L=Object.assign({},i.defaultCommon),dt(L.hardfork)&&(L.hardfork=(s=o.hardfork)!==null&&s!==void 0?s:i.defaultHardfork),dt(L.baseChain)&&(L.baseChain=i.defaultChain)):L=Hr.custom({name:"custom-network",chainId:Xi(o.chainId),networkId:dt(o.networkId)?void 0:Xi(o.networkId),defaultHardfork:(f=o.hardfork)!==null&&f!==void 0?f:i.defaultHardfork},{baseChain:i.defaultChain});else{const j=(I=(B=(r=(l=o==null?void 0:o.common)===null||l===void 0?void 0:l.customChain)===null||r===void 0?void 0:r.name)!==null&&B!==void 0?B:o.chain)!==null&&I!==void 0?I:"custom-network",re=Xi((d=(Q=(p=o==null?void 0:o.common)===null||p===void 0?void 0:p.customChain)===null||Q===void 0?void 0:Q.chainId)!==null&&d!==void 0?d:o==null?void 0:o.chainId),Z=Xi((w=(v=(y=o==null?void 0:o.common)===null||y===void 0?void 0:y.customChain)===null||v===void 0?void 0:v.networkId)!==null&&w!==void 0?w:o==null?void 0:o.networkId),J=(x=(m=(M=o==null?void 0:o.common)===null||M===void 0?void 0:M.hardfork)!==null&&m!==void 0?m:o==null?void 0:o.hardfork)!==null&&x!==void 0?x:i.defaultHardfork,Ae=(K=(S=(D=o.common)===null||D===void 0?void 0:D.baseChain)!==null&&S!==void 0?S:o.chain)!==null&&K!==void 0?K:i.defaultChain;re&&Z&&j&&(L=Hr.custom({name:j,chainId:re,networkId:Z,defaultHardfork:J},{baseChain:Ae}))}return{common:L}},PRe=(o,i,s,f=!1,l=!0)=>TRe(void 0,void 0,void 0,function*(){const r=yield E8e({transaction:o,web3Context:i,privateKey:s,fillGasPrice:f,fillGasLimit:l}),B=tn(r,nA,{transactionSchema:i.config.customTransactionSchema});return HRe(B,void 0,{transactionSchema:i.config.customTransactionSchema}),e0.fromTxData(YRe(B),JRe(B,i))}),EW=({address:o},i,s)=>{var f,l;const r=s==null?void 0:s.topics,B=(f=s==null?void 0:s.filter)!==null&&f!==void 0?f:{},I={};if(zt(s==null?void 0:s.fromBlock)||(I.fromBlock=Rt(wp.properties.number,s==null?void 0:s.fromBlock,{number:ho.HEX,bytes:us.HEX})),zt(s==null?void 0:s.toBlock)||(I.toBlock=Rt(wp.properties.number,s==null?void 0:s.toBlock,{number:ho.HEX,bytes:us.HEX})),r&&Array.isArray(r))I.topics=[...r];else if(I.topics=[],i&&!i.anonymous&&![Jg,"allEvents"].includes(i.name)&&I.topics.push((l=i.signature)!==null&&l!==void 0?l:P5(fs(i))),![Jg,"allEvents"].includes(i.name)&&i.inputs)for(const p of i.inputs){if(!p.indexed)continue;const Q=B[p.name];if(!Q){I.topics.push(null);continue}Array.isArray(Q)?I.topics.push(Q.map(d=>rk(p.type,d))):p.type==="string"?I.topics.push(Lg(Q)):I.topics.push(rk(p.type,Q))}return I.topics.length||delete I.topics,o&&(I.address=o.toLowerCase()),I},Wc=(o,i,s)=>{const f=Array.isArray(o.inputs)?o.inputs.length:0;if(o.inputs&&f!==i.length)throw new _i(`The number of arguments is not matching the methods required number. You need to pass ${f} arguments.`);let l;if(o.inputs?l=VQ(Array.isArray(o.inputs)?o.inputs:[],i).replace("0x",""):l=rRe(i).replace("0x",""),m8e(o)){if(!s)throw new _i("The contract has no contract data option set. This is necessary to append the constructor parameters.");return s.startsWith("0x")?`${s}${l}`:`0x${s}${l}`}return`${Nl(o)}${l}`};class Mae extends Cd{constructor(i,s){super(i,s),this.address=i.address,this.topics=i.topics,this.abi=i.abi,this.jsonInterface=i.jsonInterface}_buildSubscriptionParams(){return["logs",{address:this.address,topics:this.topics}]}formatSubscriptionResult(i){return V5(this.abi,i,this.jsonInterface,super.returnFormat)}}Array.from({length:256},(o,i)=>i.toString(16).padStart(2,"0"));const zQ=(o,i,s,f)=>{var l,r;const B={};return(!zt(o.data)||f==="both")&&(B.data=Wc(i,s,(l=o.data)!==null&&l!==void 0?l:o.input)),(!zt(o.input)||f==="both")&&(B.input=Wc(i,s,(r=o.input)!==null&&r!==void 0?r:o.data)),zt(B.input)&&zt(B.data)&&(B[f]=Wc(i,s)),{data:B.data,input:B.input}},ok=({abi:o,params:i,options:s,contractOptions:f})=>{var l,r,B;if(!((B=(r=(l=s==null?void 0:s.input)!==null&&l!==void 0?l:s==null?void 0:s.data)!==null&&r!==void 0?r:f.input)!==null&&B!==void 0?B:f.data)&&!(s!=null&&s.to)&&!f.address)throw new _i("Contract address not specified");if(!(s!=null&&s.from)&&!f.from)throw new _i('Contract "from" address not specified');let p=kf({to:f.address,gas:f.gas,gasPrice:f.gasPrice,from:f.from,input:f.input,maxPriorityFeePerGas:f.maxPriorityFeePerGas,maxFeePerGas:f.maxFeePerGas,data:f.data},s);const Q=zQ(p,o,i,s==null?void 0:s.dataInputFill);return p=Object.assign(Object.assign({},p),{data:Q.data,input:Q.input}),p},ORe=({abi:o,params:i,options:s,contractOptions:f})=>{if(!(s!=null&&s.to)&&!f.address)throw new _i("Contract address not specified");let l=kf({to:f.address,gas:f.gas,gasPrice:f.gasPrice,from:f.from,input:f.input,maxPriorityFeePerGas:f.maxPriorityFeePerGas,maxFeePerGas:f.maxFeePerGas,data:f.data},s);const r=zQ(l,o,i,s==null?void 0:s.dataInputFill);return l=Object.assign(Object.assign({},l),{data:r.data,input:r.input}),l},jRe=({abi:o,params:i,options:s,contractOptions:f})=>{let l=kf({to:f.address,gas:f.gas,gasPrice:f.gasPrice,from:f.from,input:f.input,data:f.data},s);const r=zQ(l,o,i,s==null?void 0:s.dataInputFill);return l=Object.assign(Object.assign({},l),{data:r.data,input:r.input}),l},pW=o=>typeof o=="object"&&!zt(o)&&Object.keys(o).length!==0&&!cf(o),WRe=({abi:o,params:i,options:s,contractOptions:f})=>{if(!(s!=null&&s.to)&&!f.address)throw new _i("Contract address not specified");if(!(s!=null&&s.from)&&!f.from)throw new _i('Contract "from" address not specified');let l=kf({to:f.address,gas:f.gas,gasPrice:f.gasPrice,from:f.from,input:f.input,maxPriorityFeePerGas:f.maxPriorityFeePerGas,maxFeePerGas:f.maxFeePerGas,data:f.data},s);const r=zQ(l,o,i,s==null?void 0:s.dataInputFill);return l=Object.assign(Object.assign({},l),{data:r.data,input:r.input}),l};var VRe=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class ZRe{constructor(i,s){this.parent=i,this.deployOptions=s;const{args:f,abi:l,contractOptions:r,deployData:B}=this.calculateDeployParams();this.args=f,this.constructorAbi=l,this.contractOptions=r,this.deployData=B}_contractMethodDeploySend(i){const s={transactionResolver:f=>{if(f.status===BigInt(0))throw new _i("code couldn't be stored",f);const l=this.parent.clone();return l.options.address=f.contractAddress,l},contractAbi:this.parent.options.jsonInterface,checkRevertBeforeSending:!1};return dt(this.parent.getTransactionMiddleware())?_l(this.parent,i,this.parent.defaultReturnFormat,s):_l(this.parent,i,this.parent.defaultReturnFormat,s,this.parent.getTransactionMiddleware())}send(i){const s=Object.assign({},i),f=this.populateTransaction(s);return this._contractMethodDeploySend(f)}populateTransaction(i){var s,f;const l=Object.assign(Object.assign({},this.contractOptions),{from:(f=(s=this.contractOptions.from)!==null&&s!==void 0?s:this.parent.defaultAccount)!==null&&f!==void 0?f:void 0}),r=ok({abi:this.constructorAbi,params:this.args,options:Object.assign(Object.assign({},i),{dataInputFill:this.parent.contractDataInputFill}),contractOptions:l});return r.dataInputFill&&delete r.dataInputFill,r}calculateDeployParams(){var i,s,f,l,r,B;let I=this.parent.options.jsonInterface.find(w=>w.type==="constructor");I||(I={type:"constructor",stateMutability:""});const p=Rt({format:"bytes"},(s=(i=this.deployOptions)===null||i===void 0?void 0:i.input)!==null&&s!==void 0?s:this.parent.options.input,Ni),Q=Rt({format:"bytes"},(l=(f=this.deployOptions)===null||f===void 0?void 0:f.data)!==null&&l!==void 0?l:this.parent.options.data,Ni);if((!p||p.trim()==="0x")&&(!Q||Q.trim()==="0x"))throw new _i("contract creation without any data provided.");const d=(B=(r=this.deployOptions)===null||r===void 0?void 0:r.arguments)!==null&&B!==void 0?B:[],y=Object.assign(Object.assign({},this.parent.options),{input:p,data:Q});return{args:d,abi:I,contractOptions:y,deployData:p??Q}}estimateGas(i,s=this.parent.defaultReturnFormat){return VRe(this,void 0,void 0,function*(){const f=Object.assign({},i);return this.parent.contractMethodEstimateGas({abi:this.constructorAbi,params:this.args,returnFormat:s,options:f,contractOptions:this.contractOptions})})}encodeABI(){return Wc(this.constructorAbi,this.args,Rt({format:"bytes"},this.deployData,this.parent.defaultReturnFormat))}decodeData(i){return Object.assign(Object.assign({},ik(this.constructorAbi,i.replace(this.deployData,""),!1)),{__method__:this.constructorAbi.type})}}var zRe=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class $Re extends Ep{constructor(i,s){super(i.requestManager,i.registeredSubscriptions),this.parentContract=s}subscribe(i,s,f=Ni){const l=Object.create(null,{subscribe:{get:()=>super.subscribe}});return zRe(this,void 0,void 0,function*(){return l.subscribe.call(this,i,s??this.parentContract.options,f)})}}var ih=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,[])).next())})};const XRe={logs:Mae,newHeads:Dp,newBlockHeaders:Dp};class Uh extends en{constructor(i,s,f,l,r){var B,I,p;const Q=cf(s)?s:cf(f)?f:void 0;let d;pW(s)?d=s:pW(f)?d=f:d=l;let y;if(typeof s=="object"&&"provider"in s?y=s.provider:typeof f=="object"&&"provider"in f?y=f.provider:typeof l=="object"&&"provider"in l?y=l.provider:y=Uh.givenProvider,super(Object.assign(Object.assign({},d),{provider:y,registeredSubscriptions:XRe})),this.syncWithContext=!1,this._functions={},this._subscriptionManager=new $Re(super.subscriptionManager,this),d!=null&&d.wallet&&(this._wallet=d.wallet),d!=null&&d.accountProvider&&(this._accountProvider=d.accountProvider),!dt(Q)&&!dt(Q.data)&&!dt(Q.input)&&this.config.contractDataInputFill!=="both")throw new nbe({data:Q.data,input:Q.input});this._overloadedMethodAbis=new Map;const v=As(l)?l:As(f)?f:r??this.defaultReturnFormat,w=typeof s=="string"?s:void 0;this.config.contractDataInputFill=(B=Q==null?void 0:Q.dataInputFill)!==null&&B!==void 0?B:this.config.contractDataInputFill,this._parseAndSetJsonInterface(i,v),this.defaultReturnFormat!==v&&(this.defaultReturnFormat=v),dt(w)||this._parseAndSetAddress(w,v),this.options={address:w,jsonInterface:this._jsonInterface,gas:(I=Q==null?void 0:Q.gas)!==null&&I!==void 0?I:Q==null?void 0:Q.gasLimit,gasPrice:Q==null?void 0:Q.gasPrice,from:Q==null?void 0:Q.from,input:Q==null?void 0:Q.input,data:Q==null?void 0:Q.data},this.syncWithContext=(p=Q==null?void 0:Q.syncWithContext)!==null&&p!==void 0?p:!1,d instanceof en&&this.subscribeToContextEvents(d),Object.defineProperty(this.options,"address",{set:M=>this._parseAndSetAddress(M,v),get:()=>this._address}),Object.defineProperty(this.options,"jsonInterface",{set:M=>this._parseAndSetJsonInterface(M,v),get:()=>this._jsonInterface}),d instanceof en&&d.on($h.CONFIG_CHANGE,M=>{this.setConfig({[M.name]:M.newValue})})}get subscriptionManager(){return this._subscriptionManager}setTransactionMiddleware(i){this.transactionMiddleware=i}getTransactionMiddleware(){return this.transactionMiddleware}get events(){return this._events}get methods(){return this._methods}clone(){let i;return this.options.address?i=new Uh([...this._jsonInterface,...this._errorsInterface],this.options.address,{gas:this.options.gas,gasPrice:this.options.gasPrice,from:this.options.from,input:this.options.input,data:this.options.data,provider:this.currentProvider,syncWithContext:this.syncWithContext,dataInputFill:this.config.contractDataInputFill},this.getContextObject()):i=new Uh([...this._jsonInterface,...this._errorsInterface],{gas:this.options.gas,gasPrice:this.options.gasPrice,from:this.options.from,input:this.options.input,data:this.options.data,provider:this.currentProvider,syncWithContext:this.syncWithContext,dataInputFill:this.config.contractDataInputFill},this.getContextObject()),this.context&&i.subscribeToContextEvents(this.context),i}deploy(i){return new ZRe(this,i)}getPastEvents(i,s,f){var l;return ih(this,void 0,void 0,function*(){const r=typeof i=="string"?i:Jg,B=typeof i!="string"&&!As(i)?i:As(s)?{}:s,I=As(i)?i:As(s)?s:f??this.defaultReturnFormat,p=r==="allEvents"||r===Jg?ZR:this._jsonInterface.find(D=>"name"in D&&D.name===r);if(!p)throw new _i(`Event ${r} not found.`);const{fromBlock:Q,toBlock:d,topics:y,address:v}=EW(this.options,p,B??{}),w=yield Qae(this,{fromBlock:Q,toBlock:d,topics:y,address:v},I),M=w?w.map(D=>typeof D=="string"?D:V5(p,D,this._jsonInterface,I)):[],m=(l=B==null?void 0:B.filter)!==null&&l!==void 0?l:{},x=Object.keys(m);return x.length>0?M.filter(D=>typeof D=="string"?!0:x.every(S=>{var K;if(Array.isArray(m[S]))return m[S].some(L=>String(D.returnValues[S]).toUpperCase()===String(L).toUpperCase());const N=(K=p.inputs)===null||K===void 0?void 0:K.filter(L=>L.name===S)[0];return N!=null&&N.indexed&&N.type==="string"&&Lg(m[S])===String(D.returnValues[S])?!0:String(D.returnValues[S]).toUpperCase()===String(m[S]).toUpperCase()})):M})}_parseAndSetAddress(i,s=this.defaultReturnFormat){this._address=i&&Ra(Rt({format:"address"},i,s))}decodeMethodData(i){const s=i.slice(0,10),l=this._jsonInterface.filter(r=>r.type!=="error").find(r=>s===Nl(fs(r)));if(!l)throw new _i(`The ABI for the provided method signature ${s} was not found.`);return ik(l,i)}_parseAndSetJsonInterface(i,s=this.defaultReturnFormat){var f,l,r,B,I;this._functions={},this._methods={},this._events={};let p=[];const Q=i.filter(y=>y.type!=="error"),d=i.filter(y=>jQ(y));for(const y of Q){const v=Object.assign(Object.assign({},y),{signature:""});if(WQ(v)){const w=fs(v),M=Nl(w);v.methodNameWithInputs=w,v.signature=M,v.constant=(l=(f=v.stateMutability==="view")!==null&&f!==void 0?f:v.stateMutability==="pure")!==null&&l!==void 0?l:v.constant,v.payable=(r=v.stateMutability==="payable")!==null&&r!==void 0?r:v.payable,this._overloadedMethodAbis.set(v.name,[...(B=this._overloadedMethodAbis.get(v.name))!==null&&B!==void 0?B:[],v]);const m=(I=this._overloadedMethodAbis.get(v.name))!==null&&I!==void 0?I:[],x=this._createContractMethod(m,d),D=this._createContractMethod(m,d,!0);this._functions[w]={signature:M,method:D},this._methods[v.name]=x,this._methods[w]=D,this._methods[M]=D}else if(J5(v)){const w=fs(v),M=P5(w),m=this._createContractEvent(v,s);v.signature=M,(!(w in this._events)||v.name==="bound")&&(this._events[w]=m),this._events[v.name]=m,this._events[M]=m}p=[...p,v]}this._events.allEvents=this._createContractEvent(ZR,s),this._jsonInterface=[...p],this._errorsInterface=d}_getAbiParams(i,s){var f;try{return jc((f=i.inputs)!==null&&f!==void 0?f:[],s)}catch(l){throw new _i(`Invalid parameters for method ${i.name}: ${l.message}`)}}_createContractMethod(i,s,f=!1){const l=i[i.length-1];return(...r)=>{var B,I,p;let Q;const d=(I=f?(B=this._overloadedMethodAbis.get(l.name))===null||B===void 0?void 0:B.filter(m=>m.signature===l.signature):this._overloadedMethodAbis.get(l.name))!==null&&I!==void 0?I:[];let y=d[0];const v=s,w=d.filter(m=>{var x;return((x=m.inputs)!==null&&x!==void 0?x:[]).length===r.length});if(d.length===1||w.length===0)Q=this._getAbiParams(y,r),Wt.validate((p=l.inputs)!==null&&p!==void 0?p:[],Q);else{const m=[],x=[];for(const D of w)try{Q=this._getAbiParams(D,r),Wt.validate(D.inputs,Q),x.push(D)}catch(S){m.push(S)}if(x.length===1?[y]=x:x.length>1&&([y]=x,console.warn(`Multiple methods found that is compatible with the given inputs. - Found ${x.length} compatible methods: ${JSON.stringify(x.map(D=>`${D.methodNameWithInputs} (signature: ${D.signature})`))} - The first one will be used: ${y.methodNameWithInputs}`)),m.length===w.length)throw new Kg(m)}const M={arguments:Q,call:(m,x)=>ih(this,void 0,void 0,function*(){return this._contractMethodCall(y,Q,v,m,x)}),send:m=>this._contractMethodSend(y,Q,v,m),populateTransaction:(m,x)=>{var D,S;let K=x??this.options;K=Object.assign(Object.assign({},K),{input:void 0,from:(S=(D=K==null?void 0:K.from)!==null&&D!==void 0?D:this.defaultAccount)!==null&&S!==void 0?S:void 0});const N=ok({abi:l,params:r,options:Object.assign(Object.assign({},m),{dataInputFill:this.config.contractDataInputFill}),contractOptions:K});return N.dataInputFill&&delete N.dataInputFill,N},estimateGas:(m,x=this.defaultReturnFormat)=>ih(this,void 0,void 0,function*(){return this.contractMethodEstimateGas({abi:y,params:Q,returnFormat:x,options:m})}),encodeABI:()=>Wc(y,Q),decodeData:m=>ik(y,m),createAccessList:(m,x)=>ih(this,void 0,void 0,function*(){return this._contractMethodCreateAccessList(y,Q,v,m,x)})};return y.stateMutability==="payable",M}}_contractMethodCall(i,s,f,l,r){var B;return ih(this,void 0,void 0,function*(){const I=ORe({abi:i,params:s,options:Object.assign(Object.assign({},l),{dataInputFill:this.config.contractDataInputFill}),contractOptions:Object.assign(Object.assign({},this.options),{from:(B=this.options.from)!==null&&B!==void 0?B:this.config.defaultAccount})});try{const p=yield $5(this,I,r,this.defaultReturnFormat);return nRe(i,p)}catch(p){throw p instanceof _h&&IE(f,p.cause),p}})}_contractMethodCreateAccessList(i,s,f,l,r){var B;return ih(this,void 0,void 0,function*(){const I=WRe({abi:i,params:s,options:Object.assign(Object.assign({},l),{dataInputFill:this.config.contractDataInputFill}),contractOptions:Object.assign(Object.assign({},this.options),{from:(B=this.options.from)!==null&&B!==void 0?B:this.config.defaultAccount})});try{return vae(this,I,r,this.defaultReturnFormat)}catch(p){throw p instanceof _h&&IE(f,p.cause),p}})}_contractMethodSend(i,s,f,l,r){var B,I;let p=r??this.options;p=Object.assign(Object.assign({},p),{input:void 0,from:(I=(B=p.from)!==null&&B!==void 0?B:this.defaultAccount)!==null&&I!==void 0?I:void 0});const Q=ok({abi:i,params:s,options:Object.assign(Object.assign({},l),{dataInputFill:this.config.contractDataInputFill}),contractOptions:p}),d=dt(this.transactionMiddleware)?_l(this,Q,this.defaultReturnFormat,{checkRevertBeforeSending:!1,contractAbi:this._jsonInterface}):_l(this,Q,this.defaultReturnFormat,{checkRevertBeforeSending:!1,contractAbi:this._jsonInterface},this.transactionMiddleware);return d.on("error",y=>{y instanceof _h&&IE(f,y.cause)}),d}contractMethodEstimateGas({abi:i,params:s,returnFormat:f,options:l,contractOptions:r}){return ih(this,void 0,void 0,function*(){const B=jRe({abi:i,params:s,options:Object.assign(Object.assign({},l),{dataInputFill:this.config.contractDataInputFill}),contractOptions:r??this.options});return X5(this,B,os.LATEST,f??this.defaultReturnFormat)})}_createContractEvent(i,s=this.defaultReturnFormat){return(...f)=>{var l;const{topics:r,fromBlock:B}=EW(this.options,i,f[0]),I=new Mae({address:this.options.address,topics:r,abi:i,jsonInterface:this._jsonInterface},{subscriptionManager:this.subscriptionManager,returnFormat:s});return dt(B)||this.getPastEvents(i.name,{fromBlock:B,topics:r},s).then(p=>{p&&p.forEach(Q=>I.emit("data",Q))}).catch(p=>{I.emit("error",new es("Failed to get past events.",p))}),(l=this.subscriptionManager)===null||l===void 0||l.addSubscription(I).catch(p=>{I.emit("error",new es("Failed to subscribe.",p))}),I}}subscribeToContextEvents(i){const s=this;this.context=i,s.syncWithContext&&i.on($h.CONFIG_CHANGE,f=>{s.setConfig({[f.name]:f.newValue})})}}const QW={addr:"0x3b3b57de",name:"0x691f3431",abi:"0x2203ab56",pubkey:"0xc8690233",text:"0x59d1d43c",contenthash:"0xbc1c58d1"},H0={setAddr:"addr",addr:"addr",setPubkey:"pubkey",pubkey:"pubkey",setContenthash:"contenthash",contenthash:"contenthash",text:"text",name:"name"},Sp={main:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",goerli:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},eke={"0x1":"main","0x5":"goerli"},tke=[{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"label",type:"bytes32"},{indexed:!1,internalType:"address",name:"owner",type:"address"}],name:"NewOwner",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"address",name:"resolver",type:"address"}],name:"NewResolver",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"address",name:"owner",type:"address"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"recordExists",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"resolver",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"ttl",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"}],Ake=[{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"address",name:"a",type:"address"}],name:"AddrChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"coinType",type:"uint256"},{indexed:!1,internalType:"bytes",name:"newAddress",type:"bytes"}],name:"AddressChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"hash",type:"bytes"}],name:"ContenthashChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"name",type:"bytes"},{indexed:!1,internalType:"uint16",name:"resource",type:"uint16"},{indexed:!1,internalType:"bytes",name:"record",type:"bytes"}],name:"DNSRecordChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"name",type:"bytes"},{indexed:!1,internalType:"uint16",name:"resource",type:"uint16"}],name:"DNSRecordDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"}],name:"DNSZoneCleared",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"lastzonehash",type:"bytes"},{indexed:!1,internalType:"bytes",name:"zonehash",type:"bytes"}],name:"DNSZonehashChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!0,internalType:"bytes4",name:"interfaceID",type:"bytes4"},{indexed:!1,internalType:"address",name:"implementer",type:"address"}],name:"InterfaceChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"string",name:"name",type:"string"}],name:"NameChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"x",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"y",type:"bytes32"}],name:"PubkeyChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"node",type:"bytes32"},{indexed:!0,internalType:"string",name:"indexedKey",type:"string"},{indexed:!1,internalType:"string",name:"key",type:"string"}],name:"TextChanged",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"uint256",name:"contentTypes",type:"uint256"}],name:"ABI",outputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"uint256",name:"coinType",type:"uint256"}],name:"addr",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"contenthash",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"},{internalType:"uint16",name:"resource",type:"uint16"}],name:"dnsRecord",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"bytes32",name:"name",type:"bytes32"}],name:"hasDNSRecords",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"bytes4",name:"interfaceID",type:"bytes4"}],name:"interfaceImplementer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"pubkey",outputs:[{internalType:"bytes32",name:"x",type:"bytes32"},{internalType:"bytes32",name:"y",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceID",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"string",name:"key",type:"string"}],name:"text",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"zonehash",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"address",name:"a",type:"address"}],name:"setAddr",outputs:[],stateMutability:"nonpayable",type:"function"}];var rke="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";const yW=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),vW=4;function ike(o){let i=0;function s(){return o[i++]<<8|o[i++]}let f=s(),l=1,r=[0,1];for(let L=1;L>--p&1}const y=31,v=2**y,w=v>>>1,M=w>>1,m=v-1;let x=0;for(let L=0;L1;){let Ae=j+re>>>1;L>>1|d(),Z=Z<<1^w,J=(J^w)<<1|w|1;S=Z,K=1+J-Z}let N=f-4;return D.map(L=>{switch(L-N){case 3:return N+65792+(o[I++]<<16|o[I++]<<8|o[I++]);case 2:return N+256+(o[I++]<<8|o[I++]);case 1:return N+o[I++];default:return L-1}})}function nke(o){let i=0;return()=>o[i++]}function bae(o){return nke(ike(oke(o)))}function oke(o){let i=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((l,r)=>i[l.charCodeAt(0)]=r);let s=o.length,f=new Uint8Array(6*s>>3);for(let l=0,r=0,B=0,I=0;l=8&&(f[r++]=I>>(B-=8));return f}function ake(o){return o&1?~o>>1:o>>1}function ske(o,i){let s=Array(o);for(let f=0,l=0;f{let i=Kl(o);if(i.length)return i})}function Sae(o){let i=[];for(;;){let s=o();if(s==0)break;i.push(fke(s,o))}for(;;){let s=o()-1;if(s<0)break;i.push(hke(s,o))}return i.flat()}function Fl(o){let i=[];for(;;){let s=o(i.length);if(!s)break;i.push(s)}return i}function xae(o,i,s){let f=Array(o).fill().map(()=>[]);for(let l=0;lf[B].push(r));return f}function fke(o,i){let s=1+i(),f=i(),l=Fl(i);return xae(l.length,1+o,i).flatMap((B,I)=>{let[p,...Q]=B;return Array(l[I]).fill().map((d,y)=>{let v=y*f;return[p+y*s,Q.map(w=>w+v)]})})}function hke(o,i){let s=1+i();return xae(s,1+o,i).map(l=>[l[0],l.slice(1)])}function gke(o){let i=[],s=Kl(o);return l(f([]),[]),i;function f(r){let B=o(),I=Fl(()=>{let p=Kl(o).map(Q=>s[Q]);if(p.length)return f(p)});return{S:B,B:I,Q:r}}function l({S:r,B},I,p){if(!(r&4&&p===I[I.length-1])){r&2&&(p=I[I.length-1]),r&1&&i.push(I);for(let Q of B)for(let d of Q.Q)l(Q,[...I,d],p)}}}function uke(o){return o.toString(16).toUpperCase().padStart(2,"0")}function Rae(o){return`{${uke(o)}}`}function cke(o){let i=[];for(let s=0,f=o.length;s>24&255}function _ae(o){return o&16777215}let ak,wW,sk,BE;function Qke(){let o=bae(dke);ak=new Map(Dae(o).flatMap((i,s)=>i.map(f=>[f,s+1<<24]))),wW=new Set(Kl(o)),sk=new Map,BE=new Map;for(let[i,s]of Sae(o)){if(!wW.has(i)&&s.length==2){let[f,l]=s,r=BE.get(f);r||(r=new Map,BE.set(f,r)),r.set(l,i)}sk.set(i,s.reverse())}}function Kae(o){return o>=Gl&&o=xp&&o=Rp&&ikp&&i0&&l(kp+Q)}else{let B=sk.get(r);B?s.push(...B):l(r)}if(!s.length)break;r=s.pop()}if(f&&i.length>1){let r=Kc(i[0]);for(let B=1;B0&&l>=B)B==0?(i.push(f,...s),s.length=0,f=I):s.push(I),l=B;else{let p=yke(f,I);p>=0?f=p:l==0&&B==0?(i.push(f),f=I):(s.push(I),l=B)}}return f>=0&&i.push(f,...s),i}function Gae(o){return Fae(o).map(_ae)}function wke(o){return vke(Fae(o))}const mW=45,Lae=".",Uae=65039,qae=1,_p=o=>Array.from(o);function Ll(o,i){return o.P.has(i)||o.Q.has(i)}class mke extends Array{get is_emoji(){return!0}}let fk,Hae,vh,hk,Tae,ug,ZS,Z0,ch,MW,gk;function e_(){if(fk)return;let o=bae(rke);const i=()=>Kl(o),s=()=>new Set(i()),f=(d,y)=>y.forEach(v=>d.add(v));fk=new Map(Sae(o)),Hae=s(),vh=i(),hk=new Set(i().map(d=>vh[d])),vh=new Set(vh),Tae=s(),s();let l=Dae(o),r=o();const B=()=>{let d=new Set;return i().forEach(y=>f(d,l[y])),f(d,i()),d};ug=Fl(d=>{let y=Fl(o).map(v=>v+96);if(y.length){let v=d>=r;y[0]-=32,y=Og(y),v&&(y=`Restricted[${y}]`);let w=B(),M=B(),m=!o();return{N:y,P:w,Q:M,M:m,R:v}}}),ZS=s(),Z0=new Map;let I=i().concat(_p(ZS)).sort((d,y)=>d-y);I.forEach((d,y)=>{let v=o(),w=I[y]=v?I[y-v]:{V:[],M:new Map};w.V.push(d),ZS.has(d)||Z0.set(d,w)});for(let{V:d,M:y}of new Set(Z0.values())){let v=[];for(let M of d){let m=ug.filter(D=>Ll(D,M)),x=v.find(({G:D})=>m.some(S=>D.has(S)));x||(x={G:new Set,V:[]},v.push(x)),x.V.push(M),f(x.G,m)}let w=v.flatMap(M=>_p(M.G));for(let{G:M,V:m}of v){let x=new Set(w.filter(D=>!M.has(D)));for(let D of m)y.set(D,x)}}ch=new Set;let p=new Set;const Q=d=>ch.has(d)?p.add(d):ch.add(d);for(let d of ug){for(let y of d.P)Q(y);for(let y of d.Q)Q(y)}for(let d of ch)!Z0.has(d)&&!p.has(d)&&Z0.set(d,qae);f(ch,Gae(ch)),MW=gke(o).map(d=>mke.from(d)).sort(lke),gk=new Map;for(let d of MW){let y=[gk];for(let v of d){let w=y.map(M=>{let m=M.get(v);return m||(m=new Map,M.set(v,m)),m});v===Uae?y.push(...w):y=w}for(let v of y)v.V=d}}function t_(o){return(Yae(o)?"":`${A_($Q([o]))} `)+Rae(o)}function A_(o){return`"${o}"‎`}function Mke(o){if(o.length>=4&&o[2]==mW&&o[3]==mW)throw new Error(`invalid label extension: "${Og(o.slice(0,4))}"`)}function bke(o){for(let s=o.lastIndexOf(95);s>0;)if(o[--s]!==95)throw new Error("underscore allowed only at start")}function Dke(o){let i=o[0],s=yW.get(i);if(s)throw Vc(`leading ${s}`);let f=o.length,l=-1;for(let r=1;ri&&(i>>=1,o=[...o.slice(0,i),8230,...o.slice(-i)]);let l=0,r=o.length;for(let B=0;B{let r=cke(l),B={input:r,offset:f};f+=r.length+1;try{let I=B.tokens=Fke(r,i,s),p=I.length,Q;if(!p)throw new Error("empty label");let d=B.output=I.flat();if(bke(d),!(B.emoji=p>1||I[0].is_emoji)&&d.every(v=>v<128))Mke(d),Q="ASCII";else{let v=I.flatMap(w=>w.is_emoji?[]:w);if(!v.length)Q="Emoji";else{if(vh.has(d[0]))throw Vc("leading combining mark");for(let m=1;mB.has(I)):_p(B),!s.length)return}else f.push(l)}if(s){for(let l of s)if(f.every(r=>Ll(l,r)))throw new Error(`whole-script confusable: ${o.N}/${l.N}`)}}function Nke(o){let i=ug;for(let s of o){let f=i.filter(l=>Ll(l,s));if(!f.length)throw ug.some(l=>Ll(l,s))?Pae(i[0],s):Jae(s);if(i=f,f.length==1)break}return i}function _ke(o){return o.map(({input:i,error:s,output:f})=>{if(s){let l=s.message;throw new Error(o.length==1?l:`Invalid label ${A_($Q(i,63))}: ${l}`)}return Og(f)}).join(Lae)}function Jae(o){return new Error(`disallowed character: ${t_(o)}`)}function Pae(o,i){let s=t_(i),f=ug.find(l=>l.P.has(i));return f&&(s=`${f.N} ${s}`),new Error(`illegal mixture: ${o.N} + ${s}`)}function Vc(o){return new Error(`illegal placement: ${o}`)}function Kke(o,i){for(let s of i)if(!Ll(o,s))throw Pae(o,s);if(o.M){let s=Gae(i);for(let f=1,l=s.length;fvW)throw new Error(`excessive non-spacing marks: ${A_($Q(s.slice(f-1,r)))} (${r-f}/${vW})`);f=r}}}function Fke(o,i,s){let f=[],l=[];for(o=o.slice().reverse();o.length;){let r=Lke(o);if(r)l.length&&(f.push(i(l)),l=[]),f.push(s(r));else{let B=o.pop();if(ch.has(B))l.push(B);else{let I=fk.get(B);if(I)l.push(...I);else if(!Hae.has(B))throw Jae(B)}}}return l.length&&f.push(i(l)),f}function Gke(o){return o.filter(i=>i!=Uae)}function Lke(o,i){let s=gk,f,l=o.length;for(;l&&(s=s.get(o[--l]),!!s);){let{V:r}=s;r&&(f=r,o.length=l)}return f}const Uke=o=>xke(o),ca=o=>{let i="";for(let s=0;s<32;s+=1)i+="00";if(o){const f=Uke(o).split(".");for(let l=f.length-1;l>=0;l-=1){const r=wn(f[l]).slice(2);i=wn(`0x${i}${r}`).slice(2)}}return`0x${i}`};var iC=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class qke{constructor(i,s){this.contract=new Uh(tke,s??Sp.main,i),this.context=i}getOwner(i){return iC(this,void 0,void 0,function*(){try{return this.contract.methods.owner(ca(i)).call()}catch{throw new Error}})}getTTL(i){return iC(this,void 0,void 0,function*(){try{return this.contract.methods.ttl(ca(i)).call()}catch{throw new Error}})}recordExists(i){return iC(this,void 0,void 0,function*(){try{return this.contract.methods.recordExists(ca(i)).call()}catch{throw new Error}})}getResolver(i){return iC(this,void 0,void 0,function*(){try{return this.contract.methods.resolver(ca(i)).call().then(s=>{if(typeof s=="string")return new Uh(Ake,s,this.context);throw new Error})}catch{throw new Error}})}get events(){return this.contract.events}}var Wa=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class Hke{constructor(i){this.registry=i}getResolverContractAdapter(i){return Wa(this,void 0,void 0,function*(){return this.registry.getResolver(i)})}checkInterfaceSupport(i,s){var f,l;return Wa(this,void 0,void 0,function*(){if(zt(QW[s]))throw new pj((f=i.options.address)!==null&&f!==void 0?f:"",s);if(!(yield i.methods.supportsInterface(QW[s]).call()))throw new pj((l=i.options.address)!==null&&l!==void 0?l:"",s)})}supportsInterface(i,s){var f;return Wa(this,void 0,void 0,function*(){const l=yield this.getResolverContractAdapter(i);let r=s;if(!PA(r)){if(r=(f=Bd(s))!==null&&f!==void 0?f:"",s==="")throw new Error("Invalid interface Id");r=r.slice(0,10)}return l.methods.supportsInterface(r).call()})}getAddress(i,s=60){return Wa(this,void 0,void 0,function*(){const f=yield this.getResolverContractAdapter(i);return yield this.checkInterfaceSupport(f,H0.addr),f.methods.addr(ca(i),s).call()})}getPubkey(i){return Wa(this,void 0,void 0,function*(){const s=yield this.getResolverContractAdapter(i);return yield this.checkInterfaceSupport(s,H0.pubkey),s.methods.pubkey(ca(i)).call()})}getContenthash(i){return Wa(this,void 0,void 0,function*(){const s=yield this.getResolverContractAdapter(i);return yield this.checkInterfaceSupport(s,H0.contenthash),s.methods.contenthash(ca(i)).call()})}setAddress(i,s,f){return Wa(this,void 0,void 0,function*(){const l=yield this.getResolverContractAdapter(i);return yield this.checkInterfaceSupport(l,H0.setAddr),l.methods.setAddr(ca(i),s).send(f)})}getText(i,s){return Wa(this,void 0,void 0,function*(){const f=yield this.getResolverContractAdapter(i);return yield this.checkInterfaceSupport(f,H0.text),f.methods.text(ca(i),s).call()})}getName(i,s=!0){return Wa(this,void 0,void 0,function*(){const f=`${i.toLowerCase().substring(2)}.addr.reverse`,l=yield this.getResolverContractAdapter(f);return s&&(yield this.checkInterfaceSupport(l,H0.name)),l.methods.name(ca(f)).call()})}}var Jn=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,[])).next())})};class Oae extends en{constructor(i,s){super(s??""),this.registryAddress=i??Sp.main,this._registry=new qke(this.getContextObject(),i),this._resolver=new Hke(this._registry)}getResolver(i){return Jn(this,void 0,void 0,function*(){return this._registry.getResolver(i)})}recordExists(i){return Jn(this,void 0,void 0,function*(){return this._registry.recordExists(i)})}getTTL(i){return Jn(this,void 0,void 0,function*(){return this._registry.getTTL(i)})}getOwner(i){return Jn(this,void 0,void 0,function*(){return this._registry.getOwner(i)})}getAddress(i,s=60){return Jn(this,void 0,void 0,function*(){return this._resolver.getAddress(i,s)})}getText(i,s){return Jn(this,void 0,void 0,function*(){return vn(i)?this._resolver.getText(yield this._resolver.getName(i,!1),s):this._resolver.getText(i,s)})}getName(i,s=!0){return Jn(this,void 0,void 0,function*(){return this._resolver.getName(i,s)})}getPubkey(i){return Jn(this,void 0,void 0,function*(){return this._resolver.getPubkey(i)})}getContenthash(i){return Jn(this,void 0,void 0,function*(){return this._resolver.getContenthash(i)})}checkNetwork(){return Jn(this,void 0,void 0,function*(){const i=Date.now()/1e3;if(!this._lastSyncCheck||i-this._lastSyncCheck>3600){const l=yield uRe(this);if(!(typeof l=="boolean"&&!l))throw new abe;this._lastSyncCheck=i}if(this._detectedAddress)return this._detectedAddress;const s=yield H5(this,Object.assign(Object.assign({},this.defaultReturnFormat),{number:ho.HEX})),f=Sp[eke[s]];if(typeof f>"u")throw new obe(s);return this._detectedAddress=f,this._detectedAddress})}supportsInterface(i,s){return Jn(this,void 0,void 0,function*(){return this._resolver.supportsInterface(i,s)})}get events(){return this._registry.events}setAddress(i,s,f){return Jn(this,void 0,void 0,function*(){return this._resolver.setAddress(i,s,f)})}}var ws=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const Tke=o=>ws(void 0,void 0,void 0,function*(){return(yield Oxe(o)).map(Ra)}),Yke=(o,i)=>ws(void 0,void 0,void 0,function*(){Wt.validate(["string"],[i]);const s=yield jxe(o,i);return Ra(s)}),Jke=(o,i,s,f)=>ws(void 0,void 0,void 0,function*(){return Wt.validate(["address","string","uint"],[i,s,f]),Wxe(o,i,s,f)}),Pke=(o,i)=>ws(void 0,void 0,void 0,function*(){return Wt.validate(["address"],[i]),Vxe(o,i)}),Oke=(o,i,s)=>ws(void 0,void 0,void 0,function*(){return Wt.validate(["string","string"],[i,s]),Zxe(o,i,s)}),jke=(o,i,s,f)=>ws(void 0,void 0,void 0,function*(){const l=tn(i,nA,{transactionSchema:f==null?void 0:f.customTransactionSchema});return zxe(o,l,s)}),Wke=(o,i,s,f)=>ws(void 0,void 0,void 0,function*(){const l=tn(i,nA,{transactionSchema:f==null?void 0:f.customTransactionSchema});return $xe(o,l,s)}),Vke=(o,i,s,f)=>ws(void 0,void 0,void 0,function*(){Wt.validate(["string","address","string"],[i,s,f]);const l=PA(i)?i:Po(i);return Xxe(o,l,s,f)}),Zke=(o,i,s)=>ws(void 0,void 0,void 0,function*(){Wt.validate(["string","string"],[i,s]);const f=PA(i)?i:Po(i);return e8e(o,f,s)});var Va=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class jae extends en{getAccounts(){return Va(this,void 0,void 0,function*(){return Tke(this.requestManager)})}newAccount(i){return Va(this,void 0,void 0,function*(){return Yke(this.requestManager,i)})}unlockAccount(i,s,f){return Va(this,void 0,void 0,function*(){return Jke(this.requestManager,i,s,f)})}lockAccount(i){return Va(this,void 0,void 0,function*(){return Pke(this.requestManager,i)})}importRawKey(i,s){return Va(this,void 0,void 0,function*(){return Oke(this.requestManager,i,s)})}sendTransaction(i,s){return Va(this,void 0,void 0,function*(){return jke(this.requestManager,i,s,this.config)})}signTransaction(i,s){return Va(this,void 0,void 0,function*(){return Wke(this.requestManager,i,s,this.config)})}sign(i,s,f){return Va(this,void 0,void 0,function*(){return Vke(this.requestManager,i,s,f)})}ecRecover(i,s){return Va(this,void 0,void 0,function*(){return Zke(this.requestManager,i,s)})}}var Ca;(function(o){o.HTTPS="https",o.WebSocket="wss"})(Ca||(Ca={}));var Ut;(function(o){o.ETH_MAINNET="eth_mainnet",o.ETH_SEPOLIA="eth_sepolia",o.ETH_HOLESKY="eth_holesky",o.POLYGON_MAINNET="polygon_mainnet",o.POLYGON_AMOY="polygon_amoy",o.AVALANCHE_C_MAINNET="avalanche_c_mainnet",o.AVALANCHE_P_MAINNET="avalanche_p_mainnet",o.AVALANCHE_X_MAINNET="avalanche_x_mainnet",o.ARBITRUM_MAINNET="arbitrum_mainnet",o.ARBITRUM_SEPOLIA="arbitrum_sepolia",o.BASE_MAINNET="base_mainnet",o.BASE_SEPOLIA="base_sepolia",o.OPTIMISM_MAINNET="optimism_mainnet",o.OPTIMISM_SEPOLIA="optimism_sepolia",o.FANTOM_MAINNET="fantom_mainnet",o.FANTOM_TESTNET="fantom_testnet",o.DYMENSION_MAINNET="dymension_mainnet",o.DYMENSION_TESTNET="dymension_testnet",o.BNB_MAINNET="bnb_mainnet",o.BNB_TESTNET="bnb_testnet",o.BSC_MAINNET="bsc_mainnet",o.BSC_TESTNET="bsc_testnet",o.ARBITRUM_ONE="arbitrum_one",o.ARBITRUM_NOVA="arbitrum_nova",o.AVALANCHE_FUJI_C="avalanche_fuji_c",o.AVALANCHE_FUJI_P="avalanche_fuji_p",o.AVALANCHE_FUJI_X="avalanche_fuji_x",o.BLAST_MAINNET="blast_mainnet",o.OPBNB_MAINNET="opbnb_mainnet",o.OPBNB_TESTNET="opbnb_testnet",o.GNOSIS_MAINNET="gnosis_mainnet",o.GNOSIS_CHIADO="gnosis_chiado",o.PULSECHAIN_MAINNET="pulsechain_mainnet",o.PULSECHAIN_TESTNET="pulsechain_testnet",o.KAVA_MAINNET="kava_mainnet",o.CRONOS_MAINNET="cronos_mainnet",o.MANTLE_MAINNET="mantle_mainnet",o.CHILIZ_MAINNET="chiliz_mainnet",o.CHILIZ_SPICY="chiliz_spicy",o.MOONBEAM_MAINNET="moonbeam_mainnet",o.TAIKO_MAINNET="taiko_mainnet",o.TAIKO_HEKLA="taiko_hekla",o.LINEA_MAINNET="linea_mainnet",o.LINEA_SEPOLIA="linea_sepolia",o.BAHAMUT_MAINNET="bahamut_mainnet",o.SCROLL_MAINNET="scroll_mainnet",o.SCROLL_SEPOLIA="scroll_sepolia",o.TRON_MAINNET="tron_mainnet",o.SYSCOIN_MAINNET="syscoin_mainnet",o.SYSCOIN_TANENBAUM="syscoin_tanenbaum",o.MOONRIVER_MAINNET="moonriver_mainnet",o.HAQQ_MAINNET="haqq_mainnet",o.EVMOS_MAINNET="evmos_mainnet",o.EVMOS_TESTNET="evmos_testnet",o.BERACHAIN_TESTNET="berachain_testnet"})(Ut||(Ut={}));const zke=1300;class $ke extends eA{constructor(i){super("You've reach the rate limit of free RPC calls from our Partner Quick Nodes. There are two options you can either create a paid Quick Nodes account and get 20% off for 2 months using WEB3JS referral code, or use Free public RPC endpoint.",i),this.code=zke}}const Xke=1301;class bW extends eA{constructor(i){super(`Invalid provider config options given for ${i}`),this.code=Xke}}var eNe=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};class Wae extends m5{constructor(i,s,f,l,r){if(super(),r!==void 0&&s===Ca.HTTPS&&!("providerOptions"in r))throw new bW("HTTP Provider");if(r!==void 0&&s===Ca.WebSocket&&!("socketOptions"in r||"reconnectOptions"in r))throw new bW("Websocket Provider");this.transport=s,s===Ca.HTTPS?this.provider=new HQ(this.getRPCURL(i,s,f,l),r):s===Ca.WebSocket&&(this.provider=new Aoe(this.getRPCURL(i,s,f,l),r==null?void 0:r.socketOptions,r==null?void 0:r.reconnectOptions))}request(i,s){return eNe(this,void 0,void 0,function*(){return this.transport===Ca.HTTPS?yield this.provider.request(i,s):this.provider.request(i)})}getStatus(){return this.provider.getStatus()}supportsSubscriptions(){return this.provider.supportsSubscriptions()}once(i,s){var f;!((f=this.provider)===null||f===void 0)&&f.once&&this.provider.once(i,s)}removeAllListeners(i){var s;!((s=this.provider)===null||s===void 0)&&s.removeAllListeners&&this.provider.removeAllListeners(i)}connect(){var i;!((i=this.provider)===null||i===void 0)&&i.connect&&this.provider.connect()}disconnect(i,s){var f;!((f=this.provider)===null||f===void 0)&&f.disconnect&&this.provider.disconnect(i,s)}reset(){var i;!((i=this.provider)===null||i===void 0)&&i.reset&&this.provider.reset()}on(i,s){this.provider&&this.provider.on(i,s)}removeListener(i,s){this.provider&&this.provider.removeListener(i,s)}}var tNe=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const jr=o=>o!==void 0&&o.trim().length>0;class ANe extends Wae{constructor(i=Ut.ETH_MAINNET,s=Ca.HTTPS,f="",l="",r){super(i,s,f,l,r)}request(i,s){const f=Object.create(null,{request:{get:()=>super.request}});return tNe(this,void 0,void 0,function*(){try{return yield f.request.call(this,i,s)}catch(l){throw l instanceof Ia&&l.statusCode===429?new $ke(l):l}})}getRPCURL(i,s,f,l){let r="",B="";switch(i){case Ut.ETH_MAINNET:r=jr(l)?l:"powerful-holy-bush.quiknode.pro",B=jr(f)?f:"3240624a343867035925ff7561eb60dfdba2a668";break;case Ut.ETH_SEPOLIA:r=jr(l)?l:"dimensional-fabled-glitter.ethereum-sepolia.quiknode.pro",B=jr(f)?f:"382a3b5a4b938f2d6e8686c19af4b22921fde2cd";break;case Ut.ETH_HOLESKY:r=jr(l)?l:"yolo-morning-card.ethereum-holesky.quiknode.pro",B=jr(f)?f:"481ebe70638c4dcf176af617a16d02ab866b9af9";break;case Ut.ARBITRUM_MAINNET:r=jr(l)?l:"autumn-divine-dinghy.arbitrum-mainnet.quiknode.pro",B=jr(f)?f:"a5d7bfbf60b5ae9ce3628e53d69ef50d529e9a8c";break;case Ut.ARBITRUM_SEPOLIA:r=jr(l)?l:"few-patient-pond.arbitrum-sepolia.quiknode.pro",B=jr(f)?f:"3be985450970628c860b959c65cd2642dcafe53c";break;case Ut.BNB_MAINNET:r=jr(l)?l:"purple-empty-reel.bsc.quiknode.pro",B=jr(f)?f:"ebf6c532961e21f092ff2facce1ec4c89c540158";break;case Ut.BNB_TESTNET:r=jr(l)?l:"floral-rough-scion.bsc-testnet.quiknode.pro",B=jr(f)?f:"5b297e5acff5f81f4c37ebf6f235f7299b6f9d28";break;case Ut.POLYGON_MAINNET:r=jr(l)?l:"small-chaotic-moon.matic.quiknode.pro",B=jr(f)?f:"847569f8a017e84d985e10d0f44365d965a951f1";break;case Ut.POLYGON_AMOY:r=jr(l)?l:"prettiest-side-shape.matic-amoy.quiknode.pro",B=jr(f)?f:"79a9476eea661d4f82de614db1d8a895b14b881c";break;default:throw new Error("Network info not avalible.")}return`${s}://${r}/${B}`}}const rNe=o=>o!==void 0&&o.trim().length>0,iNe=[Ut.DYMENSION_MAINNET,Ut.DYMENSION_TESTNET,Ut.KAVA_MAINNET,Ut.CRONOS_MAINNET,Ut.POLYGON_MAINNET];class Kp extends Wae{constructor(i=Ut.ETH_MAINNET,s=Ca.HTTPS,f="",l){super(i,s,"",f,l)}getRPCURL(i,s,f,l){if(!Kp.networkHostMap[i])throw new Error("Network info not avalible.");const r=`${Kp.networkHostMap[i]}.publicnode.com`,B=rNe(l)?l:r;return iNe.includes(i)&&s===Ca.WebSocket?`${s}://${B}/websocket`:`${s}://${B}`}}Kp.networkHostMap={[Ut.POLYGON_AMOY]:"polygon-amoy-bor-rpc",[Ut.DYMENSION_MAINNET]:"dymension-evm-rpc",[Ut.DYMENSION_TESTNET]:"dymension-testnet-evm-rpc",[Ut.BLAST_MAINNET]:"blast-rpc",[Ut.GNOSIS_MAINNET]:"gnosis-rpc",[Ut.PULSECHAIN_MAINNET]:"pulsechain-rpc",[Ut.PULSECHAIN_TESTNET]:"pulsechain-testnet-rpc",[Ut.KAVA_MAINNET]:"kava-evm-rpc",[Ut.CRONOS_MAINNET]:"cronos-evm-rpc",[Ut.MANTLE_MAINNET]:"mantle-rpc",[Ut.TAIKO_MAINNET]:"taiko-rpc",[Ut.TAIKO_HEKLA]:"taiko-hekla-rpc",[Ut.LINEA_MAINNET]:"linea-rpc",[Ut.LINEA_SEPOLIA]:"linea-sepolia-rpc",[Ut.SCROLL_MAINNET]:"scroll-rpc",[Ut.SCROLL_SEPOLIA]:"scroll-sepolia-rpc",[Ut.SYSCOIN_MAINNET]:"syscoin-evm-rpc",[Ut.SYSCOIN_TANENBAUM]:"syscoin-tanenbaum-evm-rpc",[Ut.HAQQ_MAINNET]:"haqq-evm-rpc",[Ut.EVMOS_MAINNET]:"evmos-evm-rpc",[Ut.EVMOS_TESTNET]:"evmos-testnet-evm-rpc",[Ut.BERACHAIN_TESTNET]:"berachain-testnet-evm-rpc",[Ut.ETH_MAINNET]:"ethereum-rpc",[Ut.ETH_SEPOLIA]:"ethereum-sepolia-rpc",[Ut.ETH_HOLESKY]:"ethereum-holesky-rpc",[Ut.BSC_MAINNET]:"bsc-rpc",[Ut.BSC_TESTNET]:"bsc-testnet-rpc",[Ut.POLYGON_MAINNET]:"polygon-bor-rpc",[Ut.BASE_MAINNET]:"base-rpc",[Ut.BASE_SEPOLIA]:"base-sepolia-rpc",[Ut.ARBITRUM_ONE]:"arbitrum-one-rpc",[Ut.ARBITRUM_NOVA]:"arbitrum-nova-rpc",[Ut.ARBITRUM_SEPOLIA]:"arbitrum-sepolia-rpc",[Ut.AVALANCHE_C_MAINNET]:"avalanche-c-chain-rpc",[Ut.AVALANCHE_P_MAINNET]:"avalanche-p-chain-rpc",[Ut.AVALANCHE_X_MAINNET]:"avalanche-x-chain-rpc",[Ut.AVALANCHE_FUJI_C]:"avalanche-fuji-c-chain-rpc",[Ut.AVALANCHE_FUJI_P]:"avalanche-fuji-p-chain-rpc",[Ut.AVALANCHE_FUJI_X]:"avalanche-fuji-x-chain-rpc",[Ut.OPTIMISM_MAINNET]:"optimism-rpc",[Ut.OPTIMISM_SEPOLIA]:"optimism-sepolia-rpc",[Ut.FANTOM_MAINNET]:"fantom-rpc",[Ut.FANTOM_TESTNET]:"fantom-testnet-rpc",[Ut.OPBNB_MAINNET]:"opbnb-rpc",[Ut.OPBNB_TESTNET]:"opbnb-testnet-rpc",[Ut.GNOSIS_CHIADO]:"gnosis-chiado-rpc",[Ut.CHILIZ_MAINNET]:"chiliz-rpc",[Ut.CHILIZ_SPICY]:"chiliz-spicy-rpc",[Ut.MOONBEAM_MAINNET]:"moonbeam-rpc",[Ut.BAHAMUT_MAINNET]:"bahamut-rpc",[Ut.TRON_MAINNET]:"tron-evm-rpc",[Ut.MOONRIVER_MAINNET]:"moonriver-rpc"};const nNe=new ANe,oNe={encodeEventSignature:P5,encodeFunctionCall:iRe,encodeFunctionSignature:Nl,encodeParameter:rk,encodeParameters:VQ,decodeParameter:lae,decodeParameters:Lh,decodeLog:dae};var vc=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})};const aNe=o=>{const i=(B,I)=>vc(void 0,void 0,void 0,function*(){const p=yield PRe(B,o),Q=Rt({format:"bytes"},I,nA);return J4e(p,Q)}),s=B=>{const I=G5(B);return Object.assign(Object.assign({},I),{signTransaction:p=>vc(void 0,void 0,void 0,function*(){return i(p,I.privateKey)})})},f=(B,I,p)=>vc(void 0,void 0,void 0,function*(){var Q;const d=yield W4e(B,I,(Q=p==null?void 0:p.nonStrict)!==null&&Q!==void 0?Q:!0);return Object.assign(Object.assign({},d),{signTransaction:y=>vc(void 0,void 0,void 0,function*(){return i(y,d.privateKey)})})}),l=()=>{const B=j4e();return Object.assign(Object.assign({},B),{signTransaction:I=>vc(void 0,void 0,void 0,function*(){return i(I,B.privateKey)})})},r=new pp({create:l,privateKeyToAccount:s,decrypt:f});return{signTransaction:i,create:l,privateKeyToAccount:s,decrypt:f,recoverTransaction:P4e,hashMessage:F5,sign:Noe,recover:WR,encrypt:_oe,wallet:r,privateKeyToAddress:PQ,parseAndValidatePrivateKey:lu,privateKeyToPublicKey:O4e}},sNe={version:"4.15.0"};var fNe=function(o,i,s,f){function l(r){return r instanceof s?r:new s(function(B){B(r)})}return new(s||(s=Promise))(function(r,B){function I(d){try{Q(f.next(d))}catch(y){B(y)}}function p(d){try{Q(f.throw(d))}catch(y){B(y)}}function Q(d){d.done?r(d.value):l(d.value).then(I,p)}Q((f=f.apply(o,i||[])).next())})},Fp;(function(o){o.eip6963announceProvider="eip6963:announceProvider",o.eip6963requestProvider="eip6963:requestProvider"})(Fp||(Fp={}));const zS=new Map,Vae="web3:providersMapUpdated",hNe=()=>fNe(void 0,void 0,void 0,function*(){return new Promise((o,i)=>{typeof window>"u"&&i(new Error("window object not available, EIP-6963 is intended to be used within a browser")),window.addEventListener(Fp.eip6963announceProvider,s=>{zS.set(s.detail.info.uuid,s.detail);const f=new CustomEvent(Vae,{detail:zS});window.dispatchEvent(f),o(zS)}),window.dispatchEvent(new Event(Fp.eip6963requestProvider))})}),gNe=o=>{if(typeof window>"u")throw new Error("window object not available, EIP-6963 is intended to be used within a browser");window.addEventListener(Vae,o)};class Cu extends en{constructor(i=nNe){var s;(zt(i)||typeof i=="string"&&i.trim()===""||typeof i!="string"&&!Cp(i)&&!i.provider)&&console.warn("NOTE: web3.js is running without provider. You need to pass a provider in order to interact with the network!");let f={};typeof i=="string"||Cp(i)?f.provider=i:i?f=i:f={},f.registeredSubscriptions=Object.assign(Object.assign({},nk),(s=f.registeredSubscriptions)!==null&&s!==void 0?s:{}),super(f);const l=aNe(this);this._wallet=l.wallet,this._accountProvider=l,this.utils=toe;const r=this;class B extends Uh{constructor(Q,d,y,v,w){if(cf(d)&&cf(y))throw new Qj("Should not provide options at both 2nd and 3rd parameters");let M,m={},x,D;if(!zt(d)&&typeof d!="object"&&typeof d!="string")throw new Qj;if(typeof d=="string"&&(M=d),cf(d)?m=d:cf(y)?m=y:m={},d instanceof en?x=d:y instanceof en?x=y:v instanceof en?x=v:x=r.getContextObject(),w?D=w:As(y)?D=y:As(v)&&(D=v),super(Q,M,m,x,D),super.subscribeToContextEvents(r),!zt(I)){const S=I.getTransactionMiddleware();zt(S)||super.setTransactionMiddleware(S)}}}const I=r.use(ZQ);this.eth=Object.assign(I,{ens:r.use(Oae,Sp.main),Iban:Nr,net:r.use(Toe),personal:r.use(jae),Contract:B,abi:oNe,accounts:l})}}Cu.version=sNe.version;Cu.utils=toe;Cu.requestEIP6963Providers=hNe;Cu.onNewProviderDiscovered=gNe;Cu.modules={Web3Eth:ZQ,Iban:Nr,Net:Toe,ENS:Oae,Personal:jae};function Ul(o){"@babel/helpers - typeof";return Ul=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Ul(o)}function uNe(o,i){if(Ul(o)!="object"||!o)return o;var s=o[Symbol.toPrimitive];if(s!==void 0){var f=s.call(o,i||"default");if(Ul(f)!="object")return f;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(o)}function cNe(o){var i=uNe(o,"string");return Ul(i)=="symbol"?i:i+""}function FA(o,i,s){return(i=cNe(i))in o?Object.defineProperty(o,i,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[i]=s,o}function lNe(o,i){var s=Object.setPrototypeOf;s?s(o,i):o.__proto__=i}function dNe(o,i){i===void 0&&(i=o.constructor);var s=Error.captureStackTrace;s&&s(o,i)}var INe=function(){var o=function(s,f){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,r){l.__proto__=r}||function(l,r){for(var B in r)Object.prototype.hasOwnProperty.call(r,B)&&(l[B]=r[B])},o(s,f)};return function(i,s){if(typeof s!="function"&&s!==null)throw new TypeError("Class extends value "+String(s)+" is not a constructor or null");o(i,s);function f(){this.constructor=i}i.prototype=s===null?Object.create(s):(f.prototype=s.prototype,new f)}}(),BNe=function(o){INe(i,o);function i(s,f){var l=this.constructor,r=o.call(this,s,f)||this;return Object.defineProperty(r,"name",{value:l.name,enumerable:!1,configurable:!0}),lNe(r,l.prototype),dNe(r),r}return i}(Error);function CNe(o){const i=o.findIndex(r=>r instanceof Error),s=o.findIndex(r=>typeof r=="string"),f=o.findIndex(r=>r&&typeof r=="object"&&"status"in r&&"type"in r);let l;if(f!==-1){const r=o[f];l=new Error(`${r.status} ${r.type.toString()} ${r.statusText}`)}else i!==-1?l=o.splice(i,1)[0]:s!==-1?l=new Error(o.splice(s,1)[0]):l=new Error("Unknown error");return[l,o]}class XQ extends BNe{constructor(i,s,f){super(s),FA(this,"code",void 0),FA(this,"message",void 0),FA(this,"cause",void 0),this.code=i,this.message=s||"",this.cause=f,Object.defineProperty(this,"name",{value:"Web3AuthError"})}toJSON(){return{name:this.name,code:this.code,message:this.message,cause:CNe([this.cause])}}toString(){return JSON.stringify(this.toJSON())}}class kr extends XQ{constructor(i,s,f){super(i,s,f),Object.defineProperty(this,"name",{value:"WalletInitializationError"})}static fromCode(i,s="",f){return new kr(i,`${kr.messages[i]}, ${s}`,f)}static notFound(i="",s){return kr.fromCode(5001,i,s)}static notInstalled(i="",s){return kr.fromCode(5002,i,s)}static notReady(i="",s){return kr.fromCode(5003,i,s)}static windowBlocked(i="",s){return kr.fromCode(5004,i,s)}static windowClosed(i="",s){return kr.fromCode(5005,i,s)}static incompatibleChainNameSpace(i="",s){return kr.fromCode(5006,i,s)}static duplicateAdapterError(i="",s){return kr.fromCode(5007,i,s)}static invalidProviderConfigError(i="",s){return kr.fromCode(5008,i,s)}static providerNotReadyError(i="",s){return kr.fromCode(5009,i,s)}static rpcConnectionError(i="",s){return kr.fromCode(5010,i,s)}static invalidParams(i="",s){return kr.fromCode(5011,i,s)}static invalidNetwork(i="",s){return kr.fromCode(5013,i,s)}}FA(kr,"messages",{5e3:"Custom",5001:"Wallet is not found",5002:"Wallet is not installed",5003:"Wallet is not ready yet",5004:"Wallet window is blocked",5005:"Wallet window has been closed by the user",5006:"Incompatible chain namespace provided",5007:"Adapter has already been included",5008:"Invalid provider Config",5009:"Provider is not ready yet",5010:"Failed to connect with rpc url",5011:"Invalid params passed in",5013:"Invalid network provided"});class dn extends XQ{constructor(i,s,f){super(i,s,f),Object.defineProperty(this,"name",{value:"WalletLoginError"})}static fromCode(i,s="",f){return new dn(i,`${dn.messages[i]}. ${s}`,f)}static connectionError(i="",s){return dn.fromCode(5111,i,s)}static disconnectionError(i="",s){return dn.fromCode(5112,i,s)}static notConnectedError(i="",s){return dn.fromCode(5113,i,s)}static popupClosed(i="",s){return dn.fromCode(5114,i,s)}static mfaEnabled(i="",s){return dn.fromCode(5115,i,s)}static chainConfigNotAdded(i="",s){return dn.fromCode(5116,i,s)}static unsupportedOperation(i="",s){return dn.fromCode(5117,i,s)}static coreKitKeyNotFound(i="",s){return dn.fromCode(5118,i,s)}static userNotLoggedIn(i="",s){return dn.fromCode(5119,i,s)}}FA(dn,"messages",{5e3:"Custom",5111:"Failed to connect with wallet",5112:"Failed to disconnect from wallet",5113:"Wallet is not connected",5114:"Wallet popup has been closed by the user",5115:"User has already enabled mfa, please use the @web3auth/web3auth-web sdk for login with mfa",5116:"Chain config has not been added. Please add the chain config before calling switchChain",5117:"Unsupported operation",5118:"useCoreKitKey flag is enabled but coreKitKey is not available",5119:"User not logged in."});class Uo extends XQ{constructor(i,s,f){super(i,s,f),Object.defineProperty(this,"name",{value:"WalletOperationsError"})}static fromCode(i,s="",f){return new Uo(i,`${Uo.messages[i]}, ${s}`,f)}static chainIDNotAllowed(i="",s){return Uo.fromCode(5201,i,s)}static operationNotAllowed(i="",s){return Uo.fromCode(5202,i,s)}static chainNamespaceNotAllowed(i="",s){return Uo.fromCode(5203,i,s)}}FA(Uo,"messages",{5e3:"Custom",5201:"Provided chainId is not allowed",5202:"This operation is not allowed"});class rs extends XQ{constructor(i,s,f){super(i,s,f),Object.defineProperty(this,"name",{value:"WalletProviderError"})}static fromCode(i,s="",f){return new Uo(i,`${rs.messages[i]}, ${s}`,f)}static invalidRequestArgs(i="",s){return Uo.fromCode(5301,i,s)}static invalidRequestMethod(i="",s){return Uo.fromCode(5302,i,s)}static invalidRequestParams(i="",s){return Uo.fromCode(5303,i,s)}}FA(rs,"messages",{5e3:"Custom",5301:"Expected a single, non-array, object argument.",5302:"'args.method' must be a non-empty string.",5303:"'args.params' must be an object or array if provided."});const cg={EIP155:"eip155",SOLANA:"solana",CASPER:"casper",XRPL:"xrpl",OTHER:"other"};var CE={exports:{}},ENe=CE.exports,DW;function pNe(){return DW||(DW=1,function(o){(function(i,s){o.exports?o.exports=s():i.log=s()})(ENe,function(){var i=function(){},s="undefined",f=typeof window!==s&&typeof window.navigator!==s&&/Trident\/|MSIE /.test(window.navigator.userAgent),l=["trace","debug","info","warn","error"],r={},B=null;function I(m,x){var D=m[x];if(typeof D.bind=="function")return D.bind(m);try{return Function.prototype.bind.call(D,m)}catch{return function(){return Function.prototype.apply.apply(D,[m,arguments])}}}function p(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function Q(m){return m==="debug"&&(m="log"),typeof console===s?!1:m==="trace"&&f?p:console[m]!==void 0?I(console,m):console.log!==void 0?I(console,"log"):i}function d(){for(var m=this.getLevel(),x=0;x=0&&e<=D.levels.SILENT)return e;throw new TypeError("log.setLevel() called with invalid level: "+E)}D.name=m,D.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},D.methodFactory=x||v,D.getLevel=function(){return N??K??S},D.setLevel=function(E,e){return N=J(E),e!==!1&&j(N),d.call(D)},D.setDefaultLevel=function(E){K=J(E),re()||D.setLevel(E,!1)},D.resetLevel=function(){N=null,Z(),d.call(D)},D.enableAll=function(E){D.setLevel(D.levels.TRACE,E)},D.disableAll=function(E){D.setLevel(D.levels.SILENT,E)},D.rebuild=function(){if(B!==D&&(S=J(B.getLevel())),d.call(D),B===D)for(var E in r)r[E].rebuild()},S=J(B?B.getLevel():"WARN");var Ae=re();Ae!=null&&(N=J(Ae)),d.call(D)}B=new w,B.getLogger=function(x){if(typeof x!="symbol"&&typeof x!="string"||x==="")throw new TypeError("You must supply a name when creating a logger.");var D=r[x];return D||(D=r[x]=new w(x,B.methodFactory)),D};var M=typeof window!==s?window.log:void 0;return B.noConflict=function(){return typeof window!==s&&window.log===B&&(window.log=M),B},B.getLoggers=function(){return r},B.default=B,B})}(CE)),CE.exports}var r_=pNe();const Zae=gr(r_);var EE=Zae.getLogger("web3auth-logger");function SW(o,i){var s=Object.keys(o);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(o);i&&(f=f.filter(function(l){return Object.getOwnPropertyDescriptor(o,l).enumerable})),s.push.apply(s,f)}return s}function RA(o){for(var i=1;i0?n:a},r.min=function(n,a){return n.cmp(a)<0?n:a},r.prototype._init=function(n,a,h){if(typeof n=="number")return this._initNumber(n,a,h);if(typeof n=="object")return this._initArray(n,a,h);a==="hex"&&(a=16),f(a===(a|0)&&a>=2&&a<=36),n=n.toString().replace(/\s+/g,"");var c=0;n[0]==="-"&&(c++,this.negative=1),c=0;c-=3)g=n[c]|n[c-1]<<8|n[c-2]<<16,this.words[C]|=g<>>26-t&67108863,t+=24,t>=26&&(t-=26,C++);else if(h==="le")for(c=0,C=0;c>>26-t&67108863,t+=24,t>=26&&(t-=26,C++);return this._strip()};function I(A,n){var a=A.charCodeAt(n);if(a>=48&&a<=57)return a-48;if(a>=65&&a<=70)return a-55;if(a>=97&&a<=102)return a-87;f(!1,"Invalid character in "+A)}function p(A,n,a){var h=I(A,a);return a-1>=n&&(h|=I(A,a-1)<<4),h}r.prototype._parseHex=function(n,a,h){this.length=Math.ceil((n.length-a)/6),this.words=new Array(this.length);for(var c=0;c=a;c-=2)t=p(n,a,c)<=18?(C-=18,g+=1,this.words[g]|=t>>>26):C+=8;else{var u=n.length-a;for(c=u%2===0?a+1:a;c=18?(C-=18,g+=1,this.words[g]|=t>>>26):C+=8}this._strip()};function Q(A,n,a,h){for(var c=0,C=0,g=Math.min(A.length,a),t=n;t=49?C=u-49+10:u>=17?C=u-17+10:C=u,f(u>=0&&C1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{r.prototype[Symbol.for("nodejs.util.inspect.custom")]=y}catch{r.prototype.inspect=y}else r.prototype.inspect=y;function y(){return(this.red?""}var v=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],w=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],M=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(n,a){n=n||10,a=a|0||1;var h;if(n===16||n==="hex"){h="";for(var c=0,C=0,g=0;g>>24-c&16777215,c+=2,c>=26&&(c-=26,g--),C!==0||g!==this.length-1?h=v[6-u.length]+u+h:h=u+h}for(C!==0&&(h=C.toString(16)+h);h.length%a!==0;)h="0"+h;return this.negative!==0&&(h="-"+h),h}if(n===(n|0)&&n>=2&&n<=36){var b=w[n],R=M[n];h="";var T=this.clone();for(T.negative=0;!T.isZero();){var V=T.modrn(R).toString(n);T=T.idivn(R),T.isZero()?h=V+h:h=v[b-V.length]+V+h}for(this.isZero()&&(h="0"+h);h.length%a!==0;)h="0"+h;return this.negative!==0&&(h="-"+h),h}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var n=this.words[0];return this.length===2?n+=this.words[1]*67108864:this.length===3&&this.words[2]===1?n+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-n:n},r.prototype.toJSON=function(){return this.toString(16,2)},B&&(r.prototype.toBuffer=function(n,a){return this.toArrayLike(B,n,a)}),r.prototype.toArray=function(n,a){return this.toArrayLike(Array,n,a)};var m=function(n,a){return n.allocUnsafe?n.allocUnsafe(a):new n(a)};r.prototype.toArrayLike=function(n,a,h){this._strip();var c=this.byteLength(),C=h||Math.max(1,c);f(c<=C,"byte array longer than desired length"),f(C>0,"Requested array length <= 0");var g=m(n,C),t=a==="le"?"LE":"BE";return this["_toArrayLike"+t](g,c),g},r.prototype._toArrayLikeLE=function(n,a){for(var h=0,c=0,C=0,g=0;C>8&255),h>16&255),g===6?(h>24&255),c=0,g=0):(c=t>>>24,g+=2)}if(h=0&&(n[h--]=t>>8&255),h>=0&&(n[h--]=t>>16&255),g===6?(h>=0&&(n[h--]=t>>24&255),c=0,g=0):(c=t>>>24,g+=2)}if(h>=0)for(n[h--]=c;h>=0;)n[h--]=0},Math.clz32?r.prototype._countBits=function(n){return 32-Math.clz32(n)}:r.prototype._countBits=function(n){var a=n,h=0;return a>=4096&&(h+=13,a>>>=13),a>=64&&(h+=7,a>>>=7),a>=8&&(h+=4,a>>>=4),a>=2&&(h+=2,a>>>=2),h+a},r.prototype._zeroBits=function(n){if(n===0)return 26;var a=n,h=0;return a&8191||(h+=13,a>>>=13),a&127||(h+=7,a>>>=7),a&15||(h+=4,a>>>=4),a&3||(h+=2,a>>>=2),a&1||h++,h},r.prototype.bitLength=function(){var n=this.words[this.length-1],a=this._countBits(n);return(this.length-1)*26+a};function x(A){for(var n=new Array(A.bitLength()),a=0;a>>c&1}return n}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var n=0,a=0;an.length?this.clone().ior(n):n.clone().ior(this)},r.prototype.uor=function(n){return this.length>n.length?this.clone().iuor(n):n.clone().iuor(this)},r.prototype.iuand=function(n){var a;this.length>n.length?a=n:a=this;for(var h=0;hn.length?this.clone().iand(n):n.clone().iand(this)},r.prototype.uand=function(n){return this.length>n.length?this.clone().iuand(n):n.clone().iuand(this)},r.prototype.iuxor=function(n){var a,h;this.length>n.length?(a=this,h=n):(a=n,h=this);for(var c=0;cn.length?this.clone().ixor(n):n.clone().ixor(this)},r.prototype.uxor=function(n){return this.length>n.length?this.clone().iuxor(n):n.clone().iuxor(this)},r.prototype.inotn=function(n){f(typeof n=="number"&&n>=0);var a=Math.ceil(n/26)|0,h=n%26;this._expand(a),h>0&&a--;for(var c=0;c0&&(this.words[c]=~this.words[c]&67108863>>26-h),this._strip()},r.prototype.notn=function(n){return this.clone().inotn(n)},r.prototype.setn=function(n,a){f(typeof n=="number"&&n>=0);var h=n/26|0,c=n%26;return this._expand(h+1),a?this.words[h]=this.words[h]|1<n.length?(h=this,c=n):(h=n,c=this);for(var C=0,g=0;g>>26;for(;C!==0&&g>>26;if(this.length=h.length,C!==0)this.words[this.length]=C,this.length++;else if(h!==this)for(;gn.length?this.clone().iadd(n):n.clone().iadd(this)},r.prototype.isub=function(n){if(n.negative!==0){n.negative=0;var a=this.iadd(n);return n.negative=1,a._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(n),this.negative=1,this._normSign();var h=this.cmp(n);if(h===0)return this.negative=0,this.length=1,this.words[0]=0,this;var c,C;h>0?(c=this,C=n):(c=n,C=this);for(var g=0,t=0;t>26,this.words[t]=a&67108863;for(;g!==0&&t>26,this.words[t]=a&67108863;if(g===0&&t>>26,T=u&67108863,V=Math.min(b,n.length-1),P=Math.max(0,b-A.length+1);P<=V;P++){var F=b-P|0;c=A.words[F]|0,C=n.words[P]|0,g=c*C+T,R+=g/67108864|0,T=g&67108863}a.words[b]=T|0,u=R|0}return u!==0?a.words[b]=u|0:a.length--,a._strip()}var S=function(n,a,h){var c=n.words,C=a.words,g=h.words,t=0,u,b,R,T=c[0]|0,V=T&8191,P=T>>>13,F=c[1]|0,Y=F&8191,W=F>>>13,te=c[2]|0,z=te&8191,q=te>>>13,$=c[3]|0,le=$&8191,ae=$>>>13,he=c[4]|0,xe=he&8191,se=he>>>13,oe=c[5]|0,Ue=oe&8191,fe=oe>>>13,ce=c[6]|0,Te=ce&8191,ue=ce>>>13,Be=c[7]|0,Ve=Be&8191,H=Be>>>13,k=c[8]|0,G=k&8191,O=k>>>13,ee=c[9]|0,de=ee&8191,ie=ee>>>13,Ee=C[0]|0,Oe=Ee&8191,Ce=Ee>>>13,Qe=C[1]|0,Je=Qe&8191,me=Qe>>>13,Fe=C[2]|0,at=Fe&8191,ve=Fe>>>13,Ke=C[3]|0,nt=Ke&8191,we=Ke>>>13,Re=C[4]|0,Le=Re&8191,ge=Re>>>13,ye=C[5]|0,We=ye&8191,pe=ye>>>13,ke=C[6]|0,ot=ke&8191,Me=ke>>>13,Ne=C[7]|0,st=Ne&8191,be=Ne>>>13,Ge=C[8]|0,ft=Ge&8191,De=Ge>>>13,_e=C[9]|0,At=_e&8191,tt=_e>>>13;h.negative=n.negative^a.negative,h.length=19,u=Math.imul(V,Oe),b=Math.imul(V,Ce),b=b+Math.imul(P,Oe)|0,R=Math.imul(P,Ce);var Qt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,u=Math.imul(Y,Oe),b=Math.imul(Y,Ce),b=b+Math.imul(W,Oe)|0,R=Math.imul(W,Ce),u=u+Math.imul(V,Je)|0,b=b+Math.imul(V,me)|0,b=b+Math.imul(P,Je)|0,R=R+Math.imul(P,me)|0;var Et=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Et>>>26)|0,Et&=67108863,u=Math.imul(z,Oe),b=Math.imul(z,Ce),b=b+Math.imul(q,Oe)|0,R=Math.imul(q,Ce),u=u+Math.imul(Y,Je)|0,b=b+Math.imul(Y,me)|0,b=b+Math.imul(W,Je)|0,R=R+Math.imul(W,me)|0,u=u+Math.imul(V,at)|0,b=b+Math.imul(V,ve)|0,b=b+Math.imul(P,at)|0,R=R+Math.imul(P,ve)|0;var vt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(vt>>>26)|0,vt&=67108863,u=Math.imul(le,Oe),b=Math.imul(le,Ce),b=b+Math.imul(ae,Oe)|0,R=Math.imul(ae,Ce),u=u+Math.imul(z,Je)|0,b=b+Math.imul(z,me)|0,b=b+Math.imul(q,Je)|0,R=R+Math.imul(q,me)|0,u=u+Math.imul(Y,at)|0,b=b+Math.imul(Y,ve)|0,b=b+Math.imul(W,at)|0,R=R+Math.imul(W,ve)|0,u=u+Math.imul(V,nt)|0,b=b+Math.imul(V,we)|0,b=b+Math.imul(P,nt)|0,R=R+Math.imul(P,we)|0;var wt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(wt>>>26)|0,wt&=67108863,u=Math.imul(xe,Oe),b=Math.imul(xe,Ce),b=b+Math.imul(se,Oe)|0,R=Math.imul(se,Ce),u=u+Math.imul(le,Je)|0,b=b+Math.imul(le,me)|0,b=b+Math.imul(ae,Je)|0,R=R+Math.imul(ae,me)|0,u=u+Math.imul(z,at)|0,b=b+Math.imul(z,ve)|0,b=b+Math.imul(q,at)|0,R=R+Math.imul(q,ve)|0,u=u+Math.imul(Y,nt)|0,b=b+Math.imul(Y,we)|0,b=b+Math.imul(W,nt)|0,R=R+Math.imul(W,we)|0,u=u+Math.imul(V,Le)|0,b=b+Math.imul(V,ge)|0,b=b+Math.imul(P,Le)|0,R=R+Math.imul(P,ge)|0;var mt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(mt>>>26)|0,mt&=67108863,u=Math.imul(Ue,Oe),b=Math.imul(Ue,Ce),b=b+Math.imul(fe,Oe)|0,R=Math.imul(fe,Ce),u=u+Math.imul(xe,Je)|0,b=b+Math.imul(xe,me)|0,b=b+Math.imul(se,Je)|0,R=R+Math.imul(se,me)|0,u=u+Math.imul(le,at)|0,b=b+Math.imul(le,ve)|0,b=b+Math.imul(ae,at)|0,R=R+Math.imul(ae,ve)|0,u=u+Math.imul(z,nt)|0,b=b+Math.imul(z,we)|0,b=b+Math.imul(q,nt)|0,R=R+Math.imul(q,we)|0,u=u+Math.imul(Y,Le)|0,b=b+Math.imul(Y,ge)|0,b=b+Math.imul(W,Le)|0,R=R+Math.imul(W,ge)|0,u=u+Math.imul(V,We)|0,b=b+Math.imul(V,pe)|0,b=b+Math.imul(P,We)|0,R=R+Math.imul(P,pe)|0;var Mt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,u=Math.imul(Te,Oe),b=Math.imul(Te,Ce),b=b+Math.imul(ue,Oe)|0,R=Math.imul(ue,Ce),u=u+Math.imul(Ue,Je)|0,b=b+Math.imul(Ue,me)|0,b=b+Math.imul(fe,Je)|0,R=R+Math.imul(fe,me)|0,u=u+Math.imul(xe,at)|0,b=b+Math.imul(xe,ve)|0,b=b+Math.imul(se,at)|0,R=R+Math.imul(se,ve)|0,u=u+Math.imul(le,nt)|0,b=b+Math.imul(le,we)|0,b=b+Math.imul(ae,nt)|0,R=R+Math.imul(ae,we)|0,u=u+Math.imul(z,Le)|0,b=b+Math.imul(z,ge)|0,b=b+Math.imul(q,Le)|0,R=R+Math.imul(q,ge)|0,u=u+Math.imul(Y,We)|0,b=b+Math.imul(Y,pe)|0,b=b+Math.imul(W,We)|0,R=R+Math.imul(W,pe)|0,u=u+Math.imul(V,ot)|0,b=b+Math.imul(V,Me)|0,b=b+Math.imul(P,ot)|0,R=R+Math.imul(P,Me)|0;var qe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(qe>>>26)|0,qe&=67108863,u=Math.imul(Ve,Oe),b=Math.imul(Ve,Ce),b=b+Math.imul(H,Oe)|0,R=Math.imul(H,Ce),u=u+Math.imul(Te,Je)|0,b=b+Math.imul(Te,me)|0,b=b+Math.imul(ue,Je)|0,R=R+Math.imul(ue,me)|0,u=u+Math.imul(Ue,at)|0,b=b+Math.imul(Ue,ve)|0,b=b+Math.imul(fe,at)|0,R=R+Math.imul(fe,ve)|0,u=u+Math.imul(xe,nt)|0,b=b+Math.imul(xe,we)|0,b=b+Math.imul(se,nt)|0,R=R+Math.imul(se,we)|0,u=u+Math.imul(le,Le)|0,b=b+Math.imul(le,ge)|0,b=b+Math.imul(ae,Le)|0,R=R+Math.imul(ae,ge)|0,u=u+Math.imul(z,We)|0,b=b+Math.imul(z,pe)|0,b=b+Math.imul(q,We)|0,R=R+Math.imul(q,pe)|0,u=u+Math.imul(Y,ot)|0,b=b+Math.imul(Y,Me)|0,b=b+Math.imul(W,ot)|0,R=R+Math.imul(W,Me)|0,u=u+Math.imul(V,st)|0,b=b+Math.imul(V,be)|0,b=b+Math.imul(P,st)|0,R=R+Math.imul(P,be)|0;var Ye=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,u=Math.imul(G,Oe),b=Math.imul(G,Ce),b=b+Math.imul(O,Oe)|0,R=Math.imul(O,Ce),u=u+Math.imul(Ve,Je)|0,b=b+Math.imul(Ve,me)|0,b=b+Math.imul(H,Je)|0,R=R+Math.imul(H,me)|0,u=u+Math.imul(Te,at)|0,b=b+Math.imul(Te,ve)|0,b=b+Math.imul(ue,at)|0,R=R+Math.imul(ue,ve)|0,u=u+Math.imul(Ue,nt)|0,b=b+Math.imul(Ue,we)|0,b=b+Math.imul(fe,nt)|0,R=R+Math.imul(fe,we)|0,u=u+Math.imul(xe,Le)|0,b=b+Math.imul(xe,ge)|0,b=b+Math.imul(se,Le)|0,R=R+Math.imul(se,ge)|0,u=u+Math.imul(le,We)|0,b=b+Math.imul(le,pe)|0,b=b+Math.imul(ae,We)|0,R=R+Math.imul(ae,pe)|0,u=u+Math.imul(z,ot)|0,b=b+Math.imul(z,Me)|0,b=b+Math.imul(q,ot)|0,R=R+Math.imul(q,Me)|0,u=u+Math.imul(Y,st)|0,b=b+Math.imul(Y,be)|0,b=b+Math.imul(W,st)|0,R=R+Math.imul(W,be)|0,u=u+Math.imul(V,ft)|0,b=b+Math.imul(V,De)|0,b=b+Math.imul(P,ft)|0,R=R+Math.imul(P,De)|0;var Pe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,u=Math.imul(de,Oe),b=Math.imul(de,Ce),b=b+Math.imul(ie,Oe)|0,R=Math.imul(ie,Ce),u=u+Math.imul(G,Je)|0,b=b+Math.imul(G,me)|0,b=b+Math.imul(O,Je)|0,R=R+Math.imul(O,me)|0,u=u+Math.imul(Ve,at)|0,b=b+Math.imul(Ve,ve)|0,b=b+Math.imul(H,at)|0,R=R+Math.imul(H,ve)|0,u=u+Math.imul(Te,nt)|0,b=b+Math.imul(Te,we)|0,b=b+Math.imul(ue,nt)|0,R=R+Math.imul(ue,we)|0,u=u+Math.imul(Ue,Le)|0,b=b+Math.imul(Ue,ge)|0,b=b+Math.imul(fe,Le)|0,R=R+Math.imul(fe,ge)|0,u=u+Math.imul(xe,We)|0,b=b+Math.imul(xe,pe)|0,b=b+Math.imul(se,We)|0,R=R+Math.imul(se,pe)|0,u=u+Math.imul(le,ot)|0,b=b+Math.imul(le,Me)|0,b=b+Math.imul(ae,ot)|0,R=R+Math.imul(ae,Me)|0,u=u+Math.imul(z,st)|0,b=b+Math.imul(z,be)|0,b=b+Math.imul(q,st)|0,R=R+Math.imul(q,be)|0,u=u+Math.imul(Y,ft)|0,b=b+Math.imul(Y,De)|0,b=b+Math.imul(W,ft)|0,R=R+Math.imul(W,De)|0,u=u+Math.imul(V,At)|0,b=b+Math.imul(V,tt)|0,b=b+Math.imul(P,At)|0,R=R+Math.imul(P,tt)|0;var ze=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ze>>>26)|0,ze&=67108863,u=Math.imul(de,Je),b=Math.imul(de,me),b=b+Math.imul(ie,Je)|0,R=Math.imul(ie,me),u=u+Math.imul(G,at)|0,b=b+Math.imul(G,ve)|0,b=b+Math.imul(O,at)|0,R=R+Math.imul(O,ve)|0,u=u+Math.imul(Ve,nt)|0,b=b+Math.imul(Ve,we)|0,b=b+Math.imul(H,nt)|0,R=R+Math.imul(H,we)|0,u=u+Math.imul(Te,Le)|0,b=b+Math.imul(Te,ge)|0,b=b+Math.imul(ue,Le)|0,R=R+Math.imul(ue,ge)|0,u=u+Math.imul(Ue,We)|0,b=b+Math.imul(Ue,pe)|0,b=b+Math.imul(fe,We)|0,R=R+Math.imul(fe,pe)|0,u=u+Math.imul(xe,ot)|0,b=b+Math.imul(xe,Me)|0,b=b+Math.imul(se,ot)|0,R=R+Math.imul(se,Me)|0,u=u+Math.imul(le,st)|0,b=b+Math.imul(le,be)|0,b=b+Math.imul(ae,st)|0,R=R+Math.imul(ae,be)|0,u=u+Math.imul(z,ft)|0,b=b+Math.imul(z,De)|0,b=b+Math.imul(q,ft)|0,R=R+Math.imul(q,De)|0,u=u+Math.imul(Y,At)|0,b=b+Math.imul(Y,tt)|0,b=b+Math.imul(W,At)|0,R=R+Math.imul(W,tt)|0;var Xe=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,u=Math.imul(de,at),b=Math.imul(de,ve),b=b+Math.imul(ie,at)|0,R=Math.imul(ie,ve),u=u+Math.imul(G,nt)|0,b=b+Math.imul(G,we)|0,b=b+Math.imul(O,nt)|0,R=R+Math.imul(O,we)|0,u=u+Math.imul(Ve,Le)|0,b=b+Math.imul(Ve,ge)|0,b=b+Math.imul(H,Le)|0,R=R+Math.imul(H,ge)|0,u=u+Math.imul(Te,We)|0,b=b+Math.imul(Te,pe)|0,b=b+Math.imul(ue,We)|0,R=R+Math.imul(ue,pe)|0,u=u+Math.imul(Ue,ot)|0,b=b+Math.imul(Ue,Me)|0,b=b+Math.imul(fe,ot)|0,R=R+Math.imul(fe,Me)|0,u=u+Math.imul(xe,st)|0,b=b+Math.imul(xe,be)|0,b=b+Math.imul(se,st)|0,R=R+Math.imul(se,be)|0,u=u+Math.imul(le,ft)|0,b=b+Math.imul(le,De)|0,b=b+Math.imul(ae,ft)|0,R=R+Math.imul(ae,De)|0,u=u+Math.imul(z,At)|0,b=b+Math.imul(z,tt)|0,b=b+Math.imul(q,At)|0,R=R+Math.imul(q,tt)|0;var rt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(rt>>>26)|0,rt&=67108863,u=Math.imul(de,nt),b=Math.imul(de,we),b=b+Math.imul(ie,nt)|0,R=Math.imul(ie,we),u=u+Math.imul(G,Le)|0,b=b+Math.imul(G,ge)|0,b=b+Math.imul(O,Le)|0,R=R+Math.imul(O,ge)|0,u=u+Math.imul(Ve,We)|0,b=b+Math.imul(Ve,pe)|0,b=b+Math.imul(H,We)|0,R=R+Math.imul(H,pe)|0,u=u+Math.imul(Te,ot)|0,b=b+Math.imul(Te,Me)|0,b=b+Math.imul(ue,ot)|0,R=R+Math.imul(ue,Me)|0,u=u+Math.imul(Ue,st)|0,b=b+Math.imul(Ue,be)|0,b=b+Math.imul(fe,st)|0,R=R+Math.imul(fe,be)|0,u=u+Math.imul(xe,ft)|0,b=b+Math.imul(xe,De)|0,b=b+Math.imul(se,ft)|0,R=R+Math.imul(se,De)|0,u=u+Math.imul(le,At)|0,b=b+Math.imul(le,tt)|0,b=b+Math.imul(ae,At)|0,R=R+Math.imul(ae,tt)|0;var it=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(it>>>26)|0,it&=67108863,u=Math.imul(de,Le),b=Math.imul(de,ge),b=b+Math.imul(ie,Le)|0,R=Math.imul(ie,ge),u=u+Math.imul(G,We)|0,b=b+Math.imul(G,pe)|0,b=b+Math.imul(O,We)|0,R=R+Math.imul(O,pe)|0,u=u+Math.imul(Ve,ot)|0,b=b+Math.imul(Ve,Me)|0,b=b+Math.imul(H,ot)|0,R=R+Math.imul(H,Me)|0,u=u+Math.imul(Te,st)|0,b=b+Math.imul(Te,be)|0,b=b+Math.imul(ue,st)|0,R=R+Math.imul(ue,be)|0,u=u+Math.imul(Ue,ft)|0,b=b+Math.imul(Ue,De)|0,b=b+Math.imul(fe,ft)|0,R=R+Math.imul(fe,De)|0,u=u+Math.imul(xe,At)|0,b=b+Math.imul(xe,tt)|0,b=b+Math.imul(se,At)|0,R=R+Math.imul(se,tt)|0;var ct=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ct>>>26)|0,ct&=67108863,u=Math.imul(de,We),b=Math.imul(de,pe),b=b+Math.imul(ie,We)|0,R=Math.imul(ie,pe),u=u+Math.imul(G,ot)|0,b=b+Math.imul(G,Me)|0,b=b+Math.imul(O,ot)|0,R=R+Math.imul(O,Me)|0,u=u+Math.imul(Ve,st)|0,b=b+Math.imul(Ve,be)|0,b=b+Math.imul(H,st)|0,R=R+Math.imul(H,be)|0,u=u+Math.imul(Te,ft)|0,b=b+Math.imul(Te,De)|0,b=b+Math.imul(ue,ft)|0,R=R+Math.imul(ue,De)|0,u=u+Math.imul(Ue,At)|0,b=b+Math.imul(Ue,tt)|0,b=b+Math.imul(fe,At)|0,R=R+Math.imul(fe,tt)|0;var ut=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(ut>>>26)|0,ut&=67108863,u=Math.imul(de,ot),b=Math.imul(de,Me),b=b+Math.imul(ie,ot)|0,R=Math.imul(ie,Me),u=u+Math.imul(G,st)|0,b=b+Math.imul(G,be)|0,b=b+Math.imul(O,st)|0,R=R+Math.imul(O,be)|0,u=u+Math.imul(Ve,ft)|0,b=b+Math.imul(Ve,De)|0,b=b+Math.imul(H,ft)|0,R=R+Math.imul(H,De)|0,u=u+Math.imul(Te,At)|0,b=b+Math.imul(Te,tt)|0,b=b+Math.imul(ue,At)|0,R=R+Math.imul(ue,tt)|0;var It=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(It>>>26)|0,It&=67108863,u=Math.imul(de,st),b=Math.imul(de,be),b=b+Math.imul(ie,st)|0,R=Math.imul(ie,be),u=u+Math.imul(G,ft)|0,b=b+Math.imul(G,De)|0,b=b+Math.imul(O,ft)|0,R=R+Math.imul(O,De)|0,u=u+Math.imul(Ve,At)|0,b=b+Math.imul(Ve,tt)|0,b=b+Math.imul(H,At)|0,R=R+Math.imul(H,tt)|0;var pt=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(pt>>>26)|0,pt&=67108863,u=Math.imul(de,ft),b=Math.imul(de,De),b=b+Math.imul(ie,ft)|0,R=Math.imul(ie,De),u=u+Math.imul(G,At)|0,b=b+Math.imul(G,tt)|0,b=b+Math.imul(O,At)|0,R=R+Math.imul(O,tt)|0;var EA=(t+u|0)+((b&8191)<<13)|0;t=(R+(b>>>13)|0)+(EA>>>26)|0,EA&=67108863,u=Math.imul(de,At),b=Math.imul(de,tt),b=b+Math.imul(ie,At)|0,R=Math.imul(ie,tt);var YA=(t+u|0)+((b&8191)<<13)|0;return t=(R+(b>>>13)|0)+(YA>>>26)|0,YA&=67108863,g[0]=Qt,g[1]=Et,g[2]=vt,g[3]=wt,g[4]=mt,g[5]=Mt,g[6]=qe,g[7]=Ye,g[8]=Pe,g[9]=ze,g[10]=Xe,g[11]=rt,g[12]=it,g[13]=ct,g[14]=ut,g[15]=It,g[16]=pt,g[17]=EA,g[18]=YA,t!==0&&(g[19]=t,h.length++),h};Math.imul||(S=D);function K(A,n,a){a.negative=n.negative^A.negative,a.length=A.length+n.length;for(var h=0,c=0,C=0;C>>26)|0,c+=g>>>26,g&=67108863}a.words[C]=t,h=g,g=c}return h!==0?a.words[C]=h:a.length--,a._strip()}function N(A,n,a){return K(A,n,a)}r.prototype.mulTo=function(n,a){var h,c=this.length+n.length;return this.length===10&&n.length===10?h=S(this,n,a):c<63?h=D(this,n,a):c<1024?h=K(this,n,a):h=N(this,n,a),h},r.prototype.mul=function(n){var a=new r(null);return a.words=new Array(this.length+n.length),this.mulTo(n,a)},r.prototype.mulf=function(n){var a=new r(null);return a.words=new Array(this.length+n.length),N(this,n,a)},r.prototype.imul=function(n){return this.clone().mulTo(n,this)},r.prototype.imuln=function(n){var a=n<0;a&&(n=-n),f(typeof n=="number"),f(n<67108864);for(var h=0,c=0;c>=26,h+=C/67108864|0,h+=g>>>26,this.words[c]=g&67108863}return h!==0&&(this.words[c]=h,this.length++),a?this.ineg():this},r.prototype.muln=function(n){return this.clone().imuln(n)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(n){var a=x(n);if(a.length===0)return new r(1);for(var h=this,c=0;c=0);var a=n%26,h=(n-a)/26,c=67108863>>>26-a<<26-a,C;if(a!==0){var g=0;for(C=0;C>>26-a}g&&(this.words[C]=g,this.length++)}if(h!==0){for(C=this.length-1;C>=0;C--)this.words[C+h]=this.words[C];for(C=0;C=0);var c;a?c=(a-a%26)/26:c=0;var C=n%26,g=Math.min((n-C)/26,this.length),t=67108863^67108863>>>C<g)for(this.length-=g,b=0;b=0&&(R!==0||b>=c);b--){var T=this.words[b]|0;this.words[b]=R<<26-C|T>>>C,R=T&t}return u&&R!==0&&(u.words[u.length++]=R),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},r.prototype.ishrn=function(n,a,h){return f(this.negative===0),this.iushrn(n,a,h)},r.prototype.shln=function(n){return this.clone().ishln(n)},r.prototype.ushln=function(n){return this.clone().iushln(n)},r.prototype.shrn=function(n){return this.clone().ishrn(n)},r.prototype.ushrn=function(n){return this.clone().iushrn(n)},r.prototype.testn=function(n){f(typeof n=="number"&&n>=0);var a=n%26,h=(n-a)/26,c=1<=0);var a=n%26,h=(n-a)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=h)return this;if(a!==0&&h++,this.length=Math.min(h,this.length),a!==0){var c=67108863^67108863>>>a<=67108864;a++)this.words[a]-=67108864,a===this.length-1?this.words[a+1]=1:this.words[a+1]++;return this.length=Math.max(this.length,a+1),this},r.prototype.isubn=function(n){if(f(typeof n=="number"),f(n<67108864),n<0)return this.iaddn(-n);if(this.negative!==0)return this.negative=0,this.iaddn(n),this.negative=1,this;if(this.words[0]-=n,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var a=0;a>26)-(u/67108864|0),this.words[C+h]=g&67108863}for(;C>26,this.words[C+h]=g&67108863;if(t===0)return this._strip();for(f(t===-1),t=0,C=0;C>26,this.words[C]=g&67108863;return this.negative=1,this._strip()},r.prototype._wordDiv=function(n,a){var h=this.length-n.length,c=this.clone(),C=n,g=C.words[C.length-1]|0,t=this._countBits(g);h=26-t,h!==0&&(C=C.ushln(h),c.iushln(h),g=C.words[C.length-1]|0);var u=c.length-C.length,b;if(a!=="mod"){b=new r(null),b.length=u+1,b.words=new Array(b.length);for(var R=0;R=0;V--){var P=(c.words[C.length+V]|0)*67108864+(c.words[C.length+V-1]|0);for(P=Math.min(P/g|0,67108863),c._ishlnsubmul(C,P,V);c.negative!==0;)P--,c.negative=0,c._ishlnsubmul(C,1,V),c.isZero()||(c.negative^=1);b&&(b.words[V]=P)}return b&&b._strip(),c._strip(),a!=="div"&&h!==0&&c.iushrn(h),{div:b||null,mod:c}},r.prototype.divmod=function(n,a,h){if(f(!n.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var c,C,g;return this.negative!==0&&n.negative===0?(g=this.neg().divmod(n,a),a!=="mod"&&(c=g.div.neg()),a!=="div"&&(C=g.mod.neg(),h&&C.negative!==0&&C.iadd(n)),{div:c,mod:C}):this.negative===0&&n.negative!==0?(g=this.divmod(n.neg(),a),a!=="mod"&&(c=g.div.neg()),{div:c,mod:g.mod}):this.negative&n.negative?(g=this.neg().divmod(n.neg(),a),a!=="div"&&(C=g.mod.neg(),h&&C.negative!==0&&C.isub(n)),{div:g.div,mod:C}):n.length>this.length||this.cmp(n)<0?{div:new r(0),mod:this}:n.length===1?a==="div"?{div:this.divn(n.words[0]),mod:null}:a==="mod"?{div:null,mod:new r(this.modrn(n.words[0]))}:{div:this.divn(n.words[0]),mod:new r(this.modrn(n.words[0]))}:this._wordDiv(n,a)},r.prototype.div=function(n){return this.divmod(n,"div",!1).div},r.prototype.mod=function(n){return this.divmod(n,"mod",!1).mod},r.prototype.umod=function(n){return this.divmod(n,"mod",!0).mod},r.prototype.divRound=function(n){var a=this.divmod(n);if(a.mod.isZero())return a.div;var h=a.div.negative!==0?a.mod.isub(n):a.mod,c=n.ushrn(1),C=n.andln(1),g=h.cmp(c);return g<0||C===1&&g===0?a.div:a.div.negative!==0?a.div.isubn(1):a.div.iaddn(1)},r.prototype.modrn=function(n){var a=n<0;a&&(n=-n),f(n<=67108863);for(var h=(1<<26)%n,c=0,C=this.length-1;C>=0;C--)c=(h*c+(this.words[C]|0))%n;return a?-c:c},r.prototype.modn=function(n){return this.modrn(n)},r.prototype.idivn=function(n){var a=n<0;a&&(n=-n),f(n<=67108863);for(var h=0,c=this.length-1;c>=0;c--){var C=(this.words[c]|0)+h*67108864;this.words[c]=C/n|0,h=C%n}return this._strip(),a?this.ineg():this},r.prototype.divn=function(n){return this.clone().idivn(n)},r.prototype.egcd=function(n){f(n.negative===0),f(!n.isZero());var a=this,h=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var c=new r(1),C=new r(0),g=new r(0),t=new r(1),u=0;a.isEven()&&h.isEven();)a.iushrn(1),h.iushrn(1),++u;for(var b=h.clone(),R=a.clone();!a.isZero();){for(var T=0,V=1;!(a.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(a.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(b),C.isub(R)),c.iushrn(1),C.iushrn(1);for(var P=0,F=1;!(h.words[0]&F)&&P<26;++P,F<<=1);if(P>0)for(h.iushrn(P);P-- >0;)(g.isOdd()||t.isOdd())&&(g.iadd(b),t.isub(R)),g.iushrn(1),t.iushrn(1);a.cmp(h)>=0?(a.isub(h),c.isub(g),C.isub(t)):(h.isub(a),g.isub(c),t.isub(C))}return{a:g,b:t,gcd:h.iushln(u)}},r.prototype._invmp=function(n){f(n.negative===0),f(!n.isZero());var a=this,h=n.clone();a.negative!==0?a=a.umod(n):a=a.clone();for(var c=new r(1),C=new r(0),g=h.clone();a.cmpn(1)>0&&h.cmpn(1)>0;){for(var t=0,u=1;!(a.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(a.iushrn(t);t-- >0;)c.isOdd()&&c.iadd(g),c.iushrn(1);for(var b=0,R=1;!(h.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(h.iushrn(b);b-- >0;)C.isOdd()&&C.iadd(g),C.iushrn(1);a.cmp(h)>=0?(a.isub(h),c.isub(C)):(h.isub(a),C.isub(c))}var T;return a.cmpn(1)===0?T=c:T=C,T.cmpn(0)<0&&T.iadd(n),T},r.prototype.gcd=function(n){if(this.isZero())return n.abs();if(n.isZero())return this.abs();var a=this.clone(),h=n.clone();a.negative=0,h.negative=0;for(var c=0;a.isEven()&&h.isEven();c++)a.iushrn(1),h.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;h.isEven();)h.iushrn(1);var C=a.cmp(h);if(C<0){var g=a;a=h,h=g}else if(C===0||h.cmpn(1)===0)break;a.isub(h)}while(!0);return h.iushln(c)},r.prototype.invm=function(n){return this.egcd(n).a.umod(n)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(n){return this.words[0]&n},r.prototype.bincn=function(n){f(typeof n=="number");var a=n%26,h=(n-a)/26,c=1<>>26,t&=67108863,this.words[g]=t}return C!==0&&(this.words[g]=C,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(n){var a=n<0;if(this.negative!==0&&!a)return-1;if(this.negative===0&&a)return 1;this._strip();var h;if(this.length>1)h=1;else{a&&(n=-n),f(n<=67108863,"Number is too big");var c=this.words[0]|0;h=c===n?0:cn.length)return 1;if(this.length=0;h--){var c=this.words[h]|0,C=n.words[h]|0;if(c!==C){cC&&(a=1);break}}return a},r.prototype.gtn=function(n){return this.cmpn(n)===1},r.prototype.gt=function(n){return this.cmp(n)===1},r.prototype.gten=function(n){return this.cmpn(n)>=0},r.prototype.gte=function(n){return this.cmp(n)>=0},r.prototype.ltn=function(n){return this.cmpn(n)===-1},r.prototype.lt=function(n){return this.cmp(n)===-1},r.prototype.lten=function(n){return this.cmpn(n)<=0},r.prototype.lte=function(n){return this.cmp(n)<=0},r.prototype.eqn=function(n){return this.cmpn(n)===0},r.prototype.eq=function(n){return this.cmp(n)===0},r.red=function(n){return new E(n)},r.prototype.toRed=function(n){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),n.convertTo(this)._forceRed(n)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(n){return this.red=n,this},r.prototype.forceRed=function(n){return f(!this.red,"Already a number in reduction context"),this._forceRed(n)},r.prototype.redAdd=function(n){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,n)},r.prototype.redIAdd=function(n){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,n)},r.prototype.redSub=function(n){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,n)},r.prototype.redISub=function(n){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,n)},r.prototype.redShl=function(n){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,n)},r.prototype.redMul=function(n){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.mul(this,n)},r.prototype.redIMul=function(n){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,n),this.red.imul(this,n)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(n){return f(this.red&&!n.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,n)};var L={k256:null,p224:null,p192:null,p25519:null};function j(A,n){this.name=A,this.p=new r(n,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}j.prototype._tmp=function(){var n=new r(null);return n.words=new Array(Math.ceil(this.n/13)),n},j.prototype.ireduce=function(n){var a=n,h;do this.split(a,this.tmp),a=this.imulK(a),a=a.iadd(this.tmp),h=a.bitLength();while(h>this.n);var c=h0?a.isub(this.p):a.strip!==void 0?a.strip():a._strip(),a},j.prototype.split=function(n,a){n.iushrn(this.n,0,a)},j.prototype.imulK=function(n){return n.imul(this.k)};function re(){j.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(re,j),re.prototype.split=function(n,a){for(var h=4194303,c=Math.min(n.length,9),C=0;C>>22,g=t}g>>>=22,n.words[C-10]=g,g===0&&n.length>10?n.length-=10:n.length-=9},re.prototype.imulK=function(n){n.words[n.length]=0,n.words[n.length+1]=0,n.length+=2;for(var a=0,h=0;h>>=26,n.words[h]=C,a=c}return a!==0&&(n.words[n.length++]=a),n},r._prime=function(n){if(L[n])return L[n];var a;if(n==="k256")a=new re;else if(n==="p224")a=new Z;else if(n==="p192")a=new J;else if(n==="p25519")a=new Ae;else throw new Error("Unknown prime "+n);return L[n]=a,a};function E(A){if(typeof A=="string"){var n=r._prime(A);this.m=n.p,this.prime=n}else f(A.gtn(1),"modulus must be greater than 1"),this.m=A,this.prime=null}E.prototype._verify1=function(n){f(n.negative===0,"red works only with positives"),f(n.red,"red works only with red numbers")},E.prototype._verify2=function(n,a){f((n.negative|a.negative)===0,"red works only with positives"),f(n.red&&n.red===a.red,"red works only with red numbers")},E.prototype.imod=function(n){return this.prime?this.prime.ireduce(n)._forceRed(this):(d(n,n.umod(this.m)._forceRed(this)),n)},E.prototype.neg=function(n){return n.isZero()?n.clone():this.m.sub(n)._forceRed(this)},E.prototype.add=function(n,a){this._verify2(n,a);var h=n.add(a);return h.cmp(this.m)>=0&&h.isub(this.m),h._forceRed(this)},E.prototype.iadd=function(n,a){this._verify2(n,a);var h=n.iadd(a);return h.cmp(this.m)>=0&&h.isub(this.m),h},E.prototype.sub=function(n,a){this._verify2(n,a);var h=n.sub(a);return h.cmpn(0)<0&&h.iadd(this.m),h._forceRed(this)},E.prototype.isub=function(n,a){this._verify2(n,a);var h=n.isub(a);return h.cmpn(0)<0&&h.iadd(this.m),h},E.prototype.shl=function(n,a){return this._verify1(n),this.imod(n.ushln(a))},E.prototype.imul=function(n,a){return this._verify2(n,a),this.imod(n.imul(a))},E.prototype.mul=function(n,a){return this._verify2(n,a),this.imod(n.mul(a))},E.prototype.isqr=function(n){return this.imul(n,n.clone())},E.prototype.sqr=function(n){return this.mul(n,n)},E.prototype.sqrt=function(n){if(n.isZero())return n.clone();var a=this.m.andln(3);if(f(a%2===1),a===3){var h=this.m.add(new r(1)).iushrn(2);return this.pow(n,h)}for(var c=this.m.subn(1),C=0;!c.isZero()&&c.andln(1)===0;)C++,c.iushrn(1);f(!c.isZero());var g=new r(1).toRed(this),t=g.redNeg(),u=this.m.subn(1).iushrn(1),b=this.m.bitLength();for(b=new r(2*b*b).toRed(this);this.pow(b,u).cmp(t)!==0;)b.redIAdd(t);for(var R=this.pow(b,c),T=this.pow(n,c.addn(1).iushrn(1)),V=this.pow(n,c),P=C;V.cmp(g)!==0;){for(var F=V,Y=0;F.cmp(g)!==0;Y++)F=F.redSqr();f(Y=0;C--){for(var R=a.words[C],T=b-1;T>=0;T--){var V=R>>T&1;if(g!==c[0]&&(g=this.sqr(g)),V===0&&t===0){u=0;continue}t<<=1,t|=V,u++,!(u!==h&&(C!==0||T!==0))&&(g=this.mul(g,c[t]),u=0,t=0)}b=26}return g},E.prototype.convertTo=function(n){var a=n.umod(this.m);return a===n?a.clone():a},E.prototype.convertFrom=function(n){var a=n.clone();return a.red=null,a},r.mont=function(n){return new e(n)};function e(A){E.call(this,A),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(e,E),e.prototype.convertTo=function(n){return this.imod(n.ushln(this.shift))},e.prototype.convertFrom=function(n){var a=this.imod(n.mul(this.rinv));return a.red=null,a},e.prototype.imul=function(n,a){if(n.isZero()||a.isZero())return n.words[0]=0,n.length=1,n;var h=n.imul(a),c=h.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),C=h.isub(c).iushrn(this.shift),g=C;return C.cmp(this.m)>=0?g=C.isub(this.m):C.cmpn(0)<0&&(g=C.iadd(this.m)),g._forceRed(this)},e.prototype.mul=function(n,a){if(n.isZero()||a.isZero())return new r(0)._forceRed(this);var h=n.mul(a),c=h.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),C=h.isub(c).iushrn(this.shift),g=C;return C.cmp(this.m)>=0?g=C.isub(this.m):C.cmpn(0)<0&&(g=C.iadd(this.m)),g._forceRed(this)},e.prototype.invm=function(n){var a=this.imod(n._invmp(this.m).mul(this.r2));return a._forceRed(this)}})(o,QNe)}(pE)),pE.exports}var uk=ey();const df=gr(uk);var $S={},XA={},XS,RW;function Qo(){if(RW)return XS;RW=1,XS=o;function o(i,s){if(!i)throw new Error(s||"Assertion failed")}return o.equal=function(s,f,l){if(s!=f)throw new Error(l||"Assertion failed: "+s+" != "+f)},XS}var nC={exports:{}},kW;function oA(){return kW||(kW=1,typeof Object.create=="function"?nC.exports=function(i,s){s&&(i.super_=s,i.prototype=Object.create(s.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}))}:nC.exports=function(i,s){if(s){i.super_=s;var f=function(){};f.prototype=s.prototype,i.prototype=new f,i.prototype.constructor=i}}),nC.exports}var NW;function ka(){if(NW)return XA;NW=1;var o=Qo(),i=oA();XA.inherits=i;function s(e,A){return(e.charCodeAt(A)&64512)!==55296||A<0||A+1>=e.length?!1:(e.charCodeAt(A+1)&64512)===56320}function f(e,A){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if(typeof e=="string")if(A){if(A==="hex")for(e=e.replace(/[^a-z0-9]+/ig,""),e.length%2!==0&&(e="0"+e),h=0;h>6|192,n[a++]=c&63|128):s(e,h)?(c=65536+((c&1023)<<10)+(e.charCodeAt(++h)&1023),n[a++]=c>>18|240,n[a++]=c>>12&63|128,n[a++]=c>>6&63|128,n[a++]=c&63|128):(n[a++]=c>>12|224,n[a++]=c>>6&63|128,n[a++]=c&63|128)}else for(h=0;h>>24|e>>>8&65280|e<<8&16711680|(e&255)<<24;return A>>>0}XA.htonl=r;function B(e,A){for(var n="",a=0;a>>0}return c}XA.join32=Q;function d(e,A){for(var n=new Array(e.length*4),a=0,h=0;a>>24,n[h+1]=c>>>16&255,n[h+2]=c>>>8&255,n[h+3]=c&255):(n[h+3]=c>>>24,n[h+2]=c>>>16&255,n[h+1]=c>>>8&255,n[h]=c&255)}return n}XA.split32=d;function y(e,A){return e>>>A|e<<32-A}XA.rotr32=y;function v(e,A){return e<>>32-A}XA.rotl32=v;function w(e,A){return e+A>>>0}XA.sum32=w;function M(e,A,n){return e+A+n>>>0}XA.sum32_3=M;function m(e,A,n,a){return e+A+n+a>>>0}XA.sum32_4=m;function x(e,A,n,a,h){return e+A+n+a+h>>>0}XA.sum32_5=x;function D(e,A,n,a){var h=e[A],c=e[A+1],C=a+c>>>0,g=(C>>0,e[A+1]=C}XA.sum64=D;function S(e,A,n,a){var h=A+a>>>0,c=(h>>0}XA.sum64_hi=S;function K(e,A,n,a){var h=A+a;return h>>>0}XA.sum64_lo=K;function N(e,A,n,a,h,c,C,g){var t=0,u=A;u=u+a>>>0,t+=u>>0,t+=u>>0,t+=u>>0}XA.sum64_4_hi=N;function L(e,A,n,a,h,c,C,g){var t=A+a+c+g;return t>>>0}XA.sum64_4_lo=L;function j(e,A,n,a,h,c,C,g,t,u){var b=0,R=A;R=R+a>>>0,b+=R>>0,b+=R>>0,b+=R>>0,b+=R>>0}XA.sum64_5_hi=j;function re(e,A,n,a,h,c,C,g,t,u){var b=A+a+c+g+u;return b>>>0}XA.sum64_5_lo=re;function Z(e,A,n){var a=A<<32-n|e>>>n;return a>>>0}XA.rotr64_hi=Z;function J(e,A,n){var a=e<<32-n|A>>>n;return a>>>0}XA.rotr64_lo=J;function Ae(e,A,n){return e>>>n}XA.shr64_hi=Ae;function E(e,A,n){var a=e<<32-n|A>>>n;return a>>>0}return XA.shr64_lo=E,XA}var e6={},_W;function yd(){if(_W)return e6;_W=1;var o=ka(),i=Qo();function s(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}return e6.BlockHash=s,s.prototype.update=function(l,r){if(l=o.toArray(l,r),this.pending?this.pending=this.pending.concat(l):this.pending=l,this.pendingTotal+=l.length,this.pending.length>=this._delta8){l=this.pending;var B=l.length%this._delta8;this.pending=l.slice(l.length-B,l.length),this.pending.length===0&&(this.pending=null),l=o.join32(l,0,l.length-B,this.endian);for(var I=0;I>>24&255,I[p++]=l>>>16&255,I[p++]=l>>>8&255,I[p++]=l&255}else for(I[p++]=l&255,I[p++]=l>>>8&255,I[p++]=l>>>16&255,I[p++]=l>>>24&255,I[p++]=0,I[p++]=0,I[p++]=0,I[p++]=0,Q=8;Q>>3}fa.g0_256=p;function Q(d){return i(d,17)^i(d,19)^d>>>10}return fa.g1_256=Q,fa}var t6,FW;function yNe(){if(FW)return t6;FW=1;var o=ka(),i=yd(),s=zae(),f=o.rotl32,l=o.sum32,r=o.sum32_5,B=s.ft_1,I=i.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function Q(){if(!(this instanceof Q))return new Q;I.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}return o.inherits(Q,I),t6=Q,Q.blockSize=512,Q.outSize=160,Q.hmacStrength=80,Q.padLength=64,Q.prototype._update=function(y,v){for(var w=this.W,M=0;M<16;M++)w[M]=y[v+M];for(;Mthis.blockSize&&(l=new this.Hash().update(l).digest()),i(l.length<=this.blockSize);for(var r=l.length;r"u"||!m?o:m(Uint8Array),S={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?o:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?o:ArrayBuffer,"%ArrayIteratorPrototype%":w&&m?m([][Symbol.iterator]()):o,"%AsyncFromSyncIteratorPrototype%":o,"%AsyncFunction%":x,"%AsyncGenerator%":x,"%AsyncGeneratorFunction%":x,"%AsyncIteratorPrototype%":x,"%Atomics%":typeof Atomics>"u"?o:Atomics,"%BigInt%":typeof BigInt>"u"?o:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?o:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?o:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?o:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":s,"%Float32Array%":typeof Float32Array>"u"?o:Float32Array,"%Float64Array%":typeof Float64Array>"u"?o:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?o:FinalizationRegistry,"%Function%":p,"%GeneratorFunction%":x,"%Int8Array%":typeof Int8Array>"u"?o:Int8Array,"%Int16Array%":typeof Int16Array>"u"?o:Int16Array,"%Int32Array%":typeof Int32Array>"u"?o:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":w&&m?m(m([][Symbol.iterator]())):o,"%JSON%":typeof JSON=="object"?JSON:o,"%Map%":typeof Map>"u"?o:Map,"%MapIteratorPrototype%":typeof Map>"u"||!w||!m?o:m(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?o:Promise,"%Proxy%":typeof Proxy>"u"?o:Proxy,"%RangeError%":f,"%ReferenceError%":l,"%Reflect%":typeof Reflect>"u"?o:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?o:Set,"%SetIteratorPrototype%":typeof Set>"u"||!w||!m?o:m(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?o:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":w&&m?m(""[Symbol.iterator]()):o,"%Symbol%":w?Symbol:o,"%SyntaxError%":r,"%ThrowTypeError%":v,"%TypedArray%":D,"%TypeError%":B,"%Uint8Array%":typeof Uint8Array>"u"?o:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?o:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?o:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?o:Uint32Array,"%URIError%":I,"%WeakMap%":typeof WeakMap>"u"?o:WeakMap,"%WeakRef%":typeof WeakRef>"u"?o:WeakRef,"%WeakSet%":typeof WeakSet>"u"?o:WeakSet};if(m)try{null.error}catch(c){var K=m(m(c));S["%Error.prototype%"]=K}var N=function c(C){var g;if(C==="%AsyncFunction%")g=Q("async function () {}");else if(C==="%GeneratorFunction%")g=Q("function* () {}");else if(C==="%AsyncGeneratorFunction%")g=Q("async function* () {}");else if(C==="%AsyncGenerator%"){var t=c("%AsyncGeneratorFunction%");t&&(g=t.prototype)}else if(C==="%AsyncIteratorPrototype%"){var u=c("%AsyncGenerator%");u&&m&&(g=m(u.prototype))}return S[C]=g,g},L={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},j=o_(),re=FNe(),Z=j.call(Function.call,Array.prototype.concat),J=j.call(Function.apply,Array.prototype.splice),Ae=j.call(Function.call,String.prototype.replace),E=j.call(Function.call,String.prototype.slice),e=j.call(Function.call,RegExp.prototype.exec),A=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,n=/\\(\\)?/g,a=function(C){var g=E(C,0,1),t=E(C,-1);if(g==="%"&&t!=="%")throw new r("invalid intrinsic syntax, expected closing `%`");if(t==="%"&&g!=="%")throw new r("invalid intrinsic syntax, expected opening `%`");var u=[];return Ae(C,A,function(b,R,T,V){u[u.length]=T?Ae(V,n,"$1"):R||b}),u},h=function(C,g){var t=C,u;if(re(L,t)&&(u=L[t],t="%"+u[0]+"%"),re(S,t)){var b=S[t];if(b===x&&(b=N(t)),typeof b>"u"&&!g)throw new B("intrinsic "+C+" exists, but is not available. Please file an issue!");return{alias:u,name:t,value:b}}throw new r("intrinsic "+C+" does not exist!")};return w6=function(C,g){if(typeof C!="string"||C.length===0)throw new B("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof g!="boolean")throw new B('"allowMissing" argument must be a boolean');if(e(/^%?[^%]*%?$/,C)===null)throw new r("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var t=a(C),u=t.length>0?t[0]:"",b=h("%"+u+"%",g),R=b.name,T=b.value,V=!1,P=b.alias;P&&(u=P[0],J(t,Z([0,1],P)));for(var F=1,Y=!0;F=t.length){var q=d(T,W);Y=!!q,Y&&"get"in q&&!("originalValue"in q.get)?T=q.get:T=T[W]}else Y=re(T,W),T=T[W];Y&&!V&&(S[R]=T)}}return T},w6}var m6={exports:{}},M6,oV;function a_(){if(oV)return M6;oV=1;var o=vd(),i=o("%Object.defineProperty%",!0)||!1;if(i)try{i({},"a",{value:1})}catch{i=!1}return M6=i,M6}var b6,aV;function s_(){if(aV)return b6;aV=1;var o=vd(),i=o("%Object.getOwnPropertyDescriptor%",!0);if(i)try{i([],"length")}catch{i=null}return b6=i,b6}var D6,sV;function GNe(){if(sV)return D6;sV=1;var o=a_(),i=tse(),s=ty(),f=s_();return D6=function(r,B,I){if(!r||typeof r!="object"&&typeof r!="function")throw new s("`obj` must be an object or a function`");if(typeof B!="string"&&typeof B!="symbol")throw new s("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new s("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new s("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new s("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new s("`loose`, if provided, must be a boolean");var p=arguments.length>3?arguments[3]:null,Q=arguments.length>4?arguments[4]:null,d=arguments.length>5?arguments[5]:null,y=arguments.length>6?arguments[6]:!1,v=!!f&&f(r,B);if(o)o(r,B,{configurable:d===null&&v?v.configurable:!d,enumerable:p===null&&v?v.enumerable:!p,value:I,writable:Q===null&&v?v.writable:!Q});else if(y||!p&&!Q&&!d)r[B]=I;else throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},D6}var S6,fV;function LNe(){if(fV)return S6;fV=1;var o=a_(),i=function(){return!!o};return i.hasArrayLengthDefineBug=function(){if(!o)return null;try{return o([],"length",{value:1}).length!==1}catch{return!0}},S6=i,S6}var x6,hV;function UNe(){if(hV)return x6;hV=1;var o=vd(),i=GNe(),s=LNe()(),f=s_(),l=ty(),r=o("%Math.floor%");return x6=function(I,p){if(typeof I!="function")throw new l("`fn` is not a function");if(typeof p!="number"||p<0||p>4294967295||r(p)!==p)throw new l("`length` must be a positive 32-bit integer");var Q=arguments.length>2&&!!arguments[2],d=!0,y=!0;if("length"in I&&f){var v=f(I,"length");v&&!v.configurable&&(d=!1),v&&!v.writable&&(y=!1)}return(d||y||!Q)&&(s?i(I,"length",p,!0,!0):i(I,"length",p)),I},x6}var gV;function f_(){return gV||(gV=1,function(o){var i=o_(),s=vd(),f=UNe(),l=ty(),r=s("%Function.prototype.apply%"),B=s("%Function.prototype.call%"),I=s("%Reflect.apply%",!0)||i.call(B,r),p=a_(),Q=s("%Math.max%");o.exports=function(v){if(typeof v!="function")throw new l("a function is required");var w=I(i,B,arguments);return f(w,1+Q(0,v.length-(arguments.length-1)),!0)};var d=function(){return I(i,r,arguments)};p?p(o.exports,"apply",{value:d}):o.exports.apply=d}(m6)),m6.exports}var R6,uV;function h_(){if(uV)return R6;uV=1;var o=vd(),i=f_(),s=i(o("String.prototype.indexOf"));return R6=function(l,r){var B=o(l,!!r);return typeof B=="function"&&s(l,".prototype.")>-1?i(B):B},R6}var k6,cV;function qNe(){if(cV)return k6;cV=1;var o=n_()(),i=h_(),s=i("Object.prototype.toString"),f=function(I){return o&&I&&typeof I=="object"&&Symbol.toStringTag in I?!1:s(I)==="[object Arguments]"},l=function(I){return f(I)?!0:I!==null&&typeof I=="object"&&typeof I.length=="number"&&I.length>=0&&s(I)!=="[object Array]"&&s(I.callee)==="[object Function]"},r=function(){return f(arguments)}();return f.isLegacyArguments=l,k6=r?f:l,k6}var N6,lV;function HNe(){if(lV)return N6;lV=1;var o=Object.prototype.toString,i=Function.prototype.toString,s=/^\s*(?:function)?\*/,f=n_()(),l=Object.getPrototypeOf,r=function(){if(!f)return!1;try{return Function("return function*() {}")()}catch{}},B;return N6=function(p){if(typeof p!="function")return!1;if(s.test(i.call(p)))return!0;if(!f){var Q=o.call(p);return Q==="[object GeneratorFunction]"}if(!l)return!1;if(typeof B>"u"){var d=r();B=d?l(d):!1}return l(p)===B},N6}var _6,dV;function TNe(){if(dV)return _6;dV=1;var o=Function.prototype.toString,i=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,s,f;if(typeof i=="function"&&typeof Object.defineProperty=="function")try{s=Object.defineProperty({},"length",{get:function(){throw f}}),f={},i(function(){throw 42},null,s)}catch(S){S!==f&&(i=null)}else i=null;var l=/^\s*class\b/,r=function(K){try{var N=o.call(K);return l.test(N)}catch{return!1}},B=function(K){try{return r(K)?!1:(o.call(K),!0)}catch{return!1}},I=Object.prototype.toString,p="[object Object]",Q="[object Function]",d="[object GeneratorFunction]",y="[object HTMLAllCollection]",v="[object HTML document.all class]",w="[object HTMLCollection]",M=typeof Symbol=="function"&&!!Symbol.toStringTag,m=!(0 in[,]),x=function(){return!1};if(typeof document=="object"){var D=document.all;I.call(D)===I.call(document.all)&&(x=function(K){if((m||!K)&&(typeof K>"u"||typeof K=="object"))try{var N=I.call(K);return(N===y||N===v||N===w||N===p)&&K("")==null}catch{}return!1})}return _6=i?function(K){if(x(K))return!0;if(!K||typeof K!="function"&&typeof K!="object")return!1;try{i(K,null,s)}catch(N){if(N!==f)return!1}return!r(K)&&B(K)}:function(K){if(x(K))return!0;if(!K||typeof K!="function"&&typeof K!="object")return!1;if(M)return B(K);if(r(K))return!1;var N=I.call(K);return N!==Q&&N!==d&&!/^\[object HTML/.test(N)?!1:B(K)},_6}var K6,IV;function YNe(){if(IV)return K6;IV=1;var o=TNe(),i=Object.prototype.toString,s=Object.prototype.hasOwnProperty,f=function(p,Q,d){for(var y=0,v=p.length;y=3&&(y=d),i.call(p)==="[object Array]"?f(p,Q,y):typeof p=="string"?l(p,Q,y):r(p,Q,y)};return K6=B,K6}var F6,BV;function JNe(){return BV||(BV=1,F6=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]),F6}var G6,CV;function PNe(){if(CV)return G6;CV=1;var o=JNe(),i=globalThis;return G6=function(){for(var f=[],l=0;l-1?D:D!=="Object"?!1:M(x)}return l?w(x):null},L6}var U6,pV;function ONe(){if(pV)return U6;pV=1;var o=Ase();return U6=function(s){return!!o(s)},U6}var QV;function jNe(){return QV||(QV=1,function(o){var i=qNe(),s=HNe(),f=Ase(),l=ONe();function r(oe){return oe.call.bind(oe)}var B=typeof BigInt<"u",I=typeof Symbol<"u",p=r(Object.prototype.toString),Q=r(Number.prototype.valueOf),d=r(String.prototype.valueOf),y=r(Boolean.prototype.valueOf);if(B)var v=r(BigInt.prototype.valueOf);if(I)var w=r(Symbol.prototype.valueOf);function M(oe,Ue){if(typeof oe!="object")return!1;try{return Ue(oe),!0}catch{return!1}}o.isArgumentsObject=i,o.isGeneratorFunction=s,o.isTypedArray=l;function m(oe){return typeof Promise<"u"&&oe instanceof Promise||oe!==null&&typeof oe=="object"&&typeof oe.then=="function"&&typeof oe.catch=="function"}o.isPromise=m;function x(oe){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(oe):l(oe)||R(oe)}o.isArrayBufferView=x;function D(oe){return f(oe)==="Uint8Array"}o.isUint8Array=D;function S(oe){return f(oe)==="Uint8ClampedArray"}o.isUint8ClampedArray=S;function K(oe){return f(oe)==="Uint16Array"}o.isUint16Array=K;function N(oe){return f(oe)==="Uint32Array"}o.isUint32Array=N;function L(oe){return f(oe)==="Int8Array"}o.isInt8Array=L;function j(oe){return f(oe)==="Int16Array"}o.isInt16Array=j;function re(oe){return f(oe)==="Int32Array"}o.isInt32Array=re;function Z(oe){return f(oe)==="Float32Array"}o.isFloat32Array=Z;function J(oe){return f(oe)==="Float64Array"}o.isFloat64Array=J;function Ae(oe){return f(oe)==="BigInt64Array"}o.isBigInt64Array=Ae;function E(oe){return f(oe)==="BigUint64Array"}o.isBigUint64Array=E;function e(oe){return p(oe)==="[object Map]"}e.working=typeof Map<"u"&&e(new Map);function A(oe){return typeof Map>"u"?!1:e.working?e(oe):oe instanceof Map}o.isMap=A;function n(oe){return p(oe)==="[object Set]"}n.working=typeof Set<"u"&&n(new Set);function a(oe){return typeof Set>"u"?!1:n.working?n(oe):oe instanceof Set}o.isSet=a;function h(oe){return p(oe)==="[object WeakMap]"}h.working=typeof WeakMap<"u"&&h(new WeakMap);function c(oe){return typeof WeakMap>"u"?!1:h.working?h(oe):oe instanceof WeakMap}o.isWeakMap=c;function C(oe){return p(oe)==="[object WeakSet]"}C.working=typeof WeakSet<"u"&&C(new WeakSet);function g(oe){return C(oe)}o.isWeakSet=g;function t(oe){return p(oe)==="[object ArrayBuffer]"}t.working=typeof ArrayBuffer<"u"&&t(new ArrayBuffer);function u(oe){return typeof ArrayBuffer>"u"?!1:t.working?t(oe):oe instanceof ArrayBuffer}o.isArrayBuffer=u;function b(oe){return p(oe)==="[object DataView]"}b.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&b(new DataView(new ArrayBuffer(1),0,1));function R(oe){return typeof DataView>"u"?!1:b.working?b(oe):oe instanceof DataView}o.isDataView=R;var T=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function V(oe){return p(oe)==="[object SharedArrayBuffer]"}function P(oe){return typeof T>"u"?!1:(typeof V.working>"u"&&(V.working=V(new T)),V.working?V(oe):oe instanceof T)}o.isSharedArrayBuffer=P;function F(oe){return p(oe)==="[object AsyncFunction]"}o.isAsyncFunction=F;function Y(oe){return p(oe)==="[object Map Iterator]"}o.isMapIterator=Y;function W(oe){return p(oe)==="[object Set Iterator]"}o.isSetIterator=W;function te(oe){return p(oe)==="[object Generator]"}o.isGeneratorObject=te;function z(oe){return p(oe)==="[object WebAssembly.Module]"}o.isWebAssemblyCompiledModule=z;function q(oe){return M(oe,Q)}o.isNumberObject=q;function $(oe){return M(oe,d)}o.isStringObject=$;function le(oe){return M(oe,y)}o.isBooleanObject=le;function ae(oe){return B&&M(oe,v)}o.isBigIntObject=ae;function he(oe){return I&&M(oe,w)}o.isSymbolObject=he;function xe(oe){return q(oe)||$(oe)||le(oe)||ae(oe)||he(oe)}o.isBoxedPrimitive=xe;function se(oe){return typeof Uint8Array<"u"&&(u(oe)||P(oe))}o.isAnyArrayBuffer=se,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(oe){Object.defineProperty(o,oe,{enumerable:!1,value:function(){throw new Error(oe+" is not supported in userland")}})})}(f6)),f6}var q6,yV;function WNe(){return yV||(yV=1,q6=function(i){return i&&typeof i=="object"&&typeof i.copy=="function"&&typeof i.fill=="function"&&typeof i.readUInt8=="function"}),q6}var vV;function Ay(){return vV||(vV=1,function(o){var i={},s=Object.getOwnPropertyDescriptors||function(T){for(var V=Object.keys(T),P={},F=0;F=F)return te;switch(te){case"%s":return String(P[V++]);case"%d":return Number(P[V++]);case"%j":try{return JSON.stringify(P[V++])}catch{return"[Circular]"}default:return te}}),W=P[V];V"u")return function(){return o.deprecate(R,T).apply(this,arguments)};var V=!1;function P(){if(!V){if(process.throwDeprecation)throw new Error(T);process.traceDeprecation?console.trace(T):console.error(T),V=!0}return R.apply(this,arguments)}return P};var l={},r=/^$/;if(i.NODE_DEBUG){var B=i.NODE_DEBUG;B=B.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),r=new RegExp("^"+B+"$","i")}o.debuglog=function(R){if(R=R.toUpperCase(),!l[R])if(r.test(R)){var T=process.pid;l[R]=function(){var V=o.format.apply(o,arguments);console.error("%s %d: %s",R,T,V)}}else l[R]=function(){};return l[R]};function I(R,T){var V={seen:[],stylize:Q};return arguments.length>=3&&(V.depth=arguments[2]),arguments.length>=4&&(V.colors=arguments[3]),S(T)?V.showHidden=T:T&&o._extend(V,T),Z(V.showHidden)&&(V.showHidden=!1),Z(V.depth)&&(V.depth=2),Z(V.colors)&&(V.colors=!1),Z(V.customInspect)&&(V.customInspect=!0),V.colors&&(V.stylize=p),y(V,R,V.depth)}o.inspect=I,I.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},I.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function p(R,T){var V=I.styles[T];return V?"\x1B["+I.colors[V][0]+"m"+R+"\x1B["+I.colors[V][1]+"m":R}function Q(R,T){return R}function d(R){var T={};return R.forEach(function(V,P){T[V]=!0}),T}function y(R,T,V){if(R.customInspect&&T&&A(T.inspect)&&T.inspect!==o.inspect&&!(T.constructor&&T.constructor.prototype===T)){var P=T.inspect(V,R);return j(P)||(P=y(R,P,V)),P}var F=v(R,T);if(F)return F;var Y=Object.keys(T),W=d(Y);if(R.showHidden&&(Y=Object.getOwnPropertyNames(T)),e(T)&&(Y.indexOf("message")>=0||Y.indexOf("description")>=0))return w(T);if(Y.length===0){if(A(T)){var te=T.name?": "+T.name:"";return R.stylize("[Function"+te+"]","special")}if(J(T))return R.stylize(RegExp.prototype.toString.call(T),"regexp");if(E(T))return R.stylize(Date.prototype.toString.call(T),"date");if(e(T))return w(T)}var z="",q=!1,$=["{","}"];if(D(T)&&(q=!0,$=["[","]"]),A(T)){var le=T.name?": "+T.name:"";z=" [Function"+le+"]"}if(J(T)&&(z=" "+RegExp.prototype.toString.call(T)),E(T)&&(z=" "+Date.prototype.toUTCString.call(T)),e(T)&&(z=" "+w(T)),Y.length===0&&(!q||T.length==0))return $[0]+z+$[1];if(V<0)return J(T)?R.stylize(RegExp.prototype.toString.call(T),"regexp"):R.stylize("[Object]","special");R.seen.push(T);var ae;return q?ae=M(R,T,V,W,Y):ae=Y.map(function(he){return m(R,T,V,W,he,q)}),R.seen.pop(),x(ae,z,$)}function v(R,T){if(Z(T))return R.stylize("undefined","undefined");if(j(T)){var V="'"+JSON.stringify(T).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return R.stylize(V,"string")}if(L(T))return R.stylize(""+T,"number");if(S(T))return R.stylize(""+T,"boolean");if(K(T))return R.stylize("null","null")}function w(R){return"["+Error.prototype.toString.call(R)+"]"}function M(R,T,V,P,F){for(var Y=[],W=0,te=T.length;W-1&&(Y?te=te.split(` -`).map(function(q){return" "+q}).join(` -`).slice(2):te=` -`+te.split(` -`).map(function(q){return" "+q}).join(` -`))):te=R.stylize("[Circular]","special")),Z(W)){if(Y&&F.match(/^\d+$/))return te;W=JSON.stringify(""+F),W.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(W=W.slice(1,-1),W=R.stylize(W,"name")):(W=W.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),W=R.stylize(W,"string"))}return W+": "+te}function x(R,T,V){var P=R.reduce(function(F,Y){return Y.indexOf(` -`)>=0,F+Y.replace(/\u001b\[\d\d?m/g,"").length+1},0);return P>60?V[0]+(T===""?"":T+` - `)+" "+R.join(`, - `)+" "+V[1]:V[0]+T+" "+R.join(", ")+" "+V[1]}o.types=jNe();function D(R){return Array.isArray(R)}o.isArray=D;function S(R){return typeof R=="boolean"}o.isBoolean=S;function K(R){return R===null}o.isNull=K;function N(R){return R==null}o.isNullOrUndefined=N;function L(R){return typeof R=="number"}o.isNumber=L;function j(R){return typeof R=="string"}o.isString=j;function re(R){return typeof R=="symbol"}o.isSymbol=re;function Z(R){return R===void 0}o.isUndefined=Z;function J(R){return Ae(R)&&a(R)==="[object RegExp]"}o.isRegExp=J,o.types.isRegExp=J;function Ae(R){return typeof R=="object"&&R!==null}o.isObject=Ae;function E(R){return Ae(R)&&a(R)==="[object Date]"}o.isDate=E,o.types.isDate=E;function e(R){return Ae(R)&&(a(R)==="[object Error]"||R instanceof Error)}o.isError=e,o.types.isNativeError=e;function A(R){return typeof R=="function"}o.isFunction=A;function n(R){return R===null||typeof R=="boolean"||typeof R=="number"||typeof R=="string"||typeof R=="symbol"||typeof R>"u"}o.isPrimitive=n,o.isBuffer=WNe();function a(R){return Object.prototype.toString.call(R)}function h(R){return R<10?"0"+R.toString(10):R.toString(10)}var c=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function C(){var R=new Date,T=[h(R.getHours()),h(R.getMinutes()),h(R.getSeconds())].join(":");return[R.getDate(),c[R.getMonth()],T].join(" ")}o.log=function(){console.log("%s - %s",C(),o.format.apply(o,arguments))},o.inherits=oA(),o._extend=function(R,T){if(!T||!Ae(T))return R;for(var V=Object.keys(T),P=V.length;P--;)R[V[P]]=T[V[P]];return R};function g(R,T){return Object.prototype.hasOwnProperty.call(R,T)}var t=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;o.promisify=function(T){if(typeof T!="function")throw new TypeError('The "original" argument must be of type Function');if(t&&T[t]){var V=T[t];if(typeof V!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(V,t,{value:V,enumerable:!1,writable:!1,configurable:!0}),V}function V(){for(var P,F,Y=new Promise(function(z,q){P=z,F=q}),W=[],te=0;te=0&&o.call(s.callee)==="[object Function]"),l},H6}var T6,mV;function VNe(){if(mV)return T6;mV=1;var o;if(!Object.keys){var i=Object.prototype.hasOwnProperty,s=Object.prototype.toString,f=rse(),l=Object.prototype.propertyIsEnumerable,r=!l.call({toString:null},"toString"),B=l.call(function(){},"prototype"),I=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],p=function(v){var w=v.constructor;return w&&w.prototype===v},Q={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},d=function(){if(typeof window>"u")return!1;for(var v in window)try{if(!Q["$"+v]&&i.call(window,v)&&window[v]!==null&&typeof window[v]=="object")try{p(window[v])}catch{return!0}}catch{return!0}return!1}(),y=function(v){if(typeof window>"u"||!d)return p(v);try{return p(v)}catch{return!1}};o=function(w){var M=w!==null&&typeof w=="object",m=s.call(w)==="[object Function]",x=f(w),D=M&&s.call(w)==="[object String]",S=[];if(!M&&!m&&!x)throw new TypeError("Object.keys called on a non-object");var K=B&&m;if(D&&w.length>0&&!i.call(w,0))for(var N=0;N0)for(var L=0;L",o5e="MIT",a5e={url:"https://github.com/indutny/elliptic/issues"},s5e="https://github.com/indutny/elliptic",f5e={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},h5e={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},g5e={name:zNe,version:$Ne,description:XNe,main:e5e,files:t5e,scripts:A5e,repository:r5e,keywords:i5e,author:n5e,license:o5e,bugs:a5e,homepage:s5e,devDependencies:f5e,dependencies:h5e};var P6={},QE={exports:{}},u5e=QE.exports,bV;function ms(){return bV||(bV=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,u5e)}(QE)),QE.exports}var O6={},DV;function ise(){return DV||(DV=1,function(o){var i=o;function s(r,B){if(Array.isArray(r))return r.slice();if(!r)return[];var I=[];if(typeof r!="string"){for(var p=0;p>8,y=Q&255;d?I.push(d,y):I.push(y)}return I}i.toArray=s;function f(r){return r.length===1?"0"+r:r}i.zero2=f;function l(r){for(var B="",I=0;I(m>>1)-1?D=(m>>1)-S:D=S,x.isubn(D)):D=0,w[M]=D,x.iushrn(1)}return w}i.getNAF=r;function B(d,y){var v=[[],[]];d=d.clone(),y=y.clone();for(var w=0,M=0,m;d.cmpn(-w)>0||y.cmpn(-M)>0;){var x=d.andln(3)+w&3,D=y.andln(3)+M&3;x===3&&(x=-1),D===3&&(D=-1);var S;x&1?(m=d.andln(7)+w&7,(m===3||m===5)&&D===2?S=-x:S=x):S=0,v[0].push(S);var K;D&1?(m=y.andln(7)+M&7,(m===3||m===5)&&x===2?K=-D:K=D):K=0,v[1].push(K),2*w===S+1&&(w=1-w),2*M===K+1&&(M=1-M),d.iushrn(1),y.iushrn(1)}return v}i.getJSF=B;function I(d,y,v){var w="_"+y;d.prototype[y]=function(){return this[w]!==void 0?this[w]:this[w]=v.call(this)}}i.cachedProperty=I;function p(d){return typeof d=="string"?i.toArray(d,"hex"):d}i.parseBytes=p;function Q(d){return new s(d,"hex","le")}i.intFromLE=Q}(P6)),P6}var oC={exports:{}},CA={},aC={exports:{}},sC={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh */var xV;function aA(){return xV||(xV=1,function(o,i){var s=mr(),f=s.Buffer;function l(B,I){for(var p in B)I[p]=B[p]}f.from&&f.alloc&&f.allocUnsafe&&f.allocUnsafeSlow?o.exports=s:(l(s,i),i.Buffer=r);function r(B,I,p){return f(B,I,p)}r.prototype=Object.create(f.prototype),l(f,r),r.from=function(B,I,p){if(typeof B=="number")throw new TypeError("Argument must not be a number");return f(B,I,p)},r.alloc=function(B,I,p){if(typeof B!="number")throw new TypeError("Argument must be a number");var Q=f(B);return I!==void 0?typeof p=="string"?Q.fill(I,p):Q.fill(I):Q.fill(0),Q},r.allocUnsafe=function(B){if(typeof B!="number")throw new TypeError("Argument must be a number");return f(B)},r.allocUnsafeSlow=function(B){if(typeof B!="number")throw new TypeError("Argument must be a number");return s.SlowBuffer(B)}}(sC,sC.exports)),sC.exports}var RV;function Eu(){if(RV)return aC.exports;RV=1;var o=65536,i=4294967295;function s(){throw new Error(`Secure random number generation is not supported by this browser. -Use Chrome, Firefox or Internet Explorer 11`)}var f=aA().Buffer,l=globalThis.crypto||globalThis.msCrypto;l&&l.getRandomValues?aC.exports=r:aC.exports=s;function r(B,I){if(B>i)throw new RangeError("requested too many random bytes");var p=f.allocUnsafe(B);if(B>0)if(B>o)for(var Q=0;Q0&&(Ae=j[0]),Ae instanceof Error)throw Ae;var E=new Error("Unhandled error."+(Ae?" ("+Ae.message+")":""));throw E.context=Ae,E}var e=J[L];if(e===void 0)return!1;if(typeof e=="function")i(e,this,j);else for(var A=e.length,n=M(e,A),re=0;re0&&Ae.length>Z&&!Ae.warned){Ae.warned=!0;var E=new Error("Possible EventEmitter memory leak detected. "+Ae.length+" "+String(L)+" listeners added. Use emitter.setMaxListeners() to increase limit");E.name="MaxListenersExceededWarning",E.emitter=N,E.type=L,E.count=Ae.length,f(E)}return N}r.prototype.addListener=function(L,j){return Q(this,L,j,!1)},r.prototype.on=r.prototype.addListener,r.prototype.prependListener=function(L,j){return Q(this,L,j,!0)};function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function y(N,L,j){var re={fired:!1,wrapFn:void 0,target:N,type:L,listener:j},Z=d.bind(re);return Z.listener=j,re.wrapFn=Z,Z}r.prototype.once=function(L,j){return I(j),this.on(L,y(this,L,j)),this},r.prototype.prependOnceListener=function(L,j){return I(j),this.prependListener(L,y(this,L,j)),this},r.prototype.removeListener=function(L,j){var re,Z,J,Ae,E;if(I(j),Z=this._events,Z===void 0)return this;if(re=Z[L],re===void 0)return this;if(re===j||re.listener===j)--this._eventsCount===0?this._events=Object.create(null):(delete Z[L],Z.removeListener&&this.emit("removeListener",L,re.listener||j));else if(typeof re!="function"){for(J=-1,Ae=re.length-1;Ae>=0;Ae--)if(re[Ae]===j||re[Ae].listener===j){E=re[Ae].listener,J=Ae;break}if(J<0)return this;J===0?re.shift():m(re,J),re.length===1&&(Z[L]=re[0]),Z.removeListener!==void 0&&this.emit("removeListener",L,E||j)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(L){var j,re,Z;if(re=this._events,re===void 0)return this;if(re.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):re[L]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete re[L]),this;if(arguments.length===0){var J=Object.keys(re),Ae;for(Z=0;Z=0;Z--)this.removeListener(L,j[Z]);return this};function v(N,L,j){var re=N._events;if(re===void 0)return[];var Z=re[L];return Z===void 0?[]:typeof Z=="function"?j?[Z.listener||Z]:[Z]:j?x(Z):M(Z,Z.length)}r.prototype.listeners=function(L){return v(this,L,!0)},r.prototype.rawListeners=function(L){return v(this,L,!1)},r.listenerCount=function(N,L){return typeof N.listenerCount=="function"?N.listenerCount(L):w.call(N,L)},r.prototype.listenerCount=w;function w(N){var L=this._events;if(L!==void 0){var j=L[N];if(typeof j=="function")return 1;if(j!==void 0)return j.length}return 0}r.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]};function M(N,L){for(var j=new Array(L),re=0;re0?this.tail.next=D:this.head=D,this.tail=D,++this.length}},{key:"unshift",value:function(x){var D={data:x,next:this.head};this.length===0&&(this.tail=D),this.head=D,++this.length}},{key:"shift",value:function(){if(this.length!==0){var x=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,x}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(x){if(this.length===0)return"";for(var D=this.head,S=""+D.data;D=D.next;)S+=x+D.data;return S}},{key:"concat",value:function(x){if(this.length===0)return Q.alloc(0);for(var D=Q.allocUnsafe(x>>>0),S=this.head,K=0;S;)w(S.data,D,K),K+=S.data.length,S=S.next;return D}},{key:"consume",value:function(x,D){var S;return xN.length?N.length:x;if(L===N.length?K+=N:K+=N.slice(0,x),x-=L,x===0){L===N.length?(++S,D.next?this.head=D.next:this.head=this.tail=null):(this.head=D,D.data=N.slice(L));break}++S}return this.length-=S,K}},{key:"_getBuffer",value:function(x){var D=Q.allocUnsafe(x),S=this.head,K=1;for(S.data.copy(D),x-=S.data.length;S=S.next;){var N=S.data,L=x>N.length?N.length:x;if(N.copy(D,D.length-x,0,L),x-=L,x===0){L===N.length?(++K,S.next?this.head=S.next:this.head=this.tail=null):(this.head=S,S.data=N.slice(L));break}++K}return this.length-=K,D}},{key:v,value:function(x,D){return y(this,i(i({},D),{},{depth:0,customInspect:!1}))}}]),M}(),W6}var V6,KV;function ose(){if(KV)return V6;KV=1;function o(B,I){var p=this,Q=this._readableState&&this._readableState.destroyed,d=this._writableState&&this._writableState.destroyed;return Q||d?(I?I(B):B&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(l,this,B)):process.nextTick(l,this,B)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(B||null,function(y){!I&&y?p._writableState?p._writableState.errorEmitted?process.nextTick(s,p):(p._writableState.errorEmitted=!0,process.nextTick(i,p,y)):process.nextTick(i,p,y):I?(process.nextTick(s,p),I(y)):process.nextTick(s,p)}),this)}function i(B,I){l(B,I),s(B)}function s(B){B._writableState&&!B._writableState.emitClose||B._readableState&&!B._readableState.emitClose||B.emit("close")}function f(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function l(B,I){B.emit("error",I)}function r(B,I){var p=B._readableState,Q=B._writableState;p&&p.autoDestroy||Q&&Q.autoDestroy?B.destroy(I):B.emit("error",I)}return V6={destroy:o,undestroy:f,errorOrDestroy:r},V6}var Z6={},FV;function pu(){if(FV)return Z6;FV=1;function o(I,p){I.prototype=Object.create(p.prototype),I.prototype.constructor=I,I.__proto__=p}var i={};function s(I,p,Q){Q||(Q=Error);function d(v,w,M){return typeof p=="string"?p:p(v,w,M)}var y=function(v){o(w,v);function w(M,m,x){return v.call(this,d(M,m,x))||this}return w}(Q);y.prototype.name=Q.name,y.prototype.code=I,i[I]=y}function f(I,p){if(Array.isArray(I)){var Q=I.length;return I=I.map(function(d){return String(d)}),Q>2?"one of ".concat(p," ").concat(I.slice(0,Q-1).join(", "),", or ")+I[Q-1]:Q===2?"one of ".concat(p," ").concat(I[0]," or ").concat(I[1]):"of ".concat(p," ").concat(I[0])}else return"of ".concat(p," ").concat(String(I))}function l(I,p,Q){return I.substr(0,p.length)===p}function r(I,p,Q){return(Q===void 0||Q>I.length)&&(Q=I.length),I.substring(Q-p.length,Q)===p}function B(I,p,Q){return typeof Q!="number"&&(Q=0),Q+p.length>I.length?!1:I.indexOf(p,Q)!==-1}return s("ERR_INVALID_OPT_VALUE",function(I,p){return'The value "'+p+'" is invalid for option "'+I+'"'},TypeError),s("ERR_INVALID_ARG_TYPE",function(I,p,Q){var d;typeof p=="string"&&l(p,"not ")?(d="must not be",p=p.replace(/^not /,"")):d="must be";var y;if(r(I," argument"))y="The ".concat(I," ").concat(d," ").concat(f(p,"type"));else{var v=B(I,".")?"property":"argument";y='The "'.concat(I,'" ').concat(v," ").concat(d," ").concat(f(p,"type"))}return y+=". Received type ".concat(typeof Q),y},TypeError),s("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),s("ERR_METHOD_NOT_IMPLEMENTED",function(I){return"The "+I+" method is not implemented"}),s("ERR_STREAM_PREMATURE_CLOSE","Premature close"),s("ERR_STREAM_DESTROYED",function(I){return"Cannot call "+I+" after a stream was destroyed"}),s("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),s("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),s("ERR_STREAM_WRITE_AFTER_END","write after end"),s("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),s("ERR_UNKNOWN_ENCODING",function(I){return"Unknown encoding: "+I},TypeError),s("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Z6.codes=i,Z6}var z6,GV;function ase(){if(GV)return z6;GV=1;var o=pu().codes.ERR_INVALID_OPT_VALUE;function i(f,l,r){return f.highWaterMark!=null?f.highWaterMark:l?f[r]:null}function s(f,l,r,B){var I=i(l,B,r);if(I!=null){if(!(isFinite(I)&&Math.floor(I)===I)||I<0){var p=B?r:"highWaterMark";throw new o(p,I)}return Math.floor(I)}return f.objectMode?16:16*1024}return z6={getHighWaterMark:s},z6}var $6,LV;function sse(){if(LV)return $6;LV=1,$6=o;function o(s,f){if(i("noDeprecation"))return s;var l=!1;function r(){if(!l){if(i("throwDeprecation"))throw new Error(f);i("traceDeprecation")?console.trace(f):console.warn(f),l=!0}return s.apply(this,arguments)}return r}function i(s){try{if(!globalThis.localStorage)return!1}catch{return!1}var f=globalThis.localStorage[s];return f==null?!1:String(f).toLowerCase()==="true"}return $6}var X6,UV;function fse(){if(UV)return X6;UV=1,X6=Z;function o(P){var F=this;this.next=null,this.entry=null,this.finish=function(){V(F,P)}}var i;Z.WritableState=j;var s={deprecate:sse()},f=nse(),l=mr().Buffer,r=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function B(P){return l.from(P)}function I(P){return l.isBuffer(P)||P instanceof r}var p=ose(),Q=ase(),d=Q.getHighWaterMark,y=pu().codes,v=y.ERR_INVALID_ARG_TYPE,w=y.ERR_METHOD_NOT_IMPLEMENTED,M=y.ERR_MULTIPLE_CALLBACK,m=y.ERR_STREAM_CANNOT_PIPE,x=y.ERR_STREAM_DESTROYED,D=y.ERR_STREAM_NULL_VALUES,S=y.ERR_STREAM_WRITE_AFTER_END,K=y.ERR_UNKNOWN_ENCODING,N=p.errorOrDestroy;oA()(Z,f);function L(){}function j(P,F,Y){i=i||Wg(),P=P||{},typeof Y!="boolean"&&(Y=F instanceof i),this.objectMode=!!P.objectMode,Y&&(this.objectMode=this.objectMode||!!P.writableObjectMode),this.highWaterMark=d(this,P,"writableHighWaterMark",Y),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var W=P.decodeStrings===!1;this.decodeStrings=!W,this.defaultEncoding=P.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(te){h(F,te)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=P.emitClose!==!1,this.autoDestroy=!!P.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}j.prototype.getBuffer=function(){for(var F=this.bufferedRequest,Y=[];F;)Y.push(F),F=F.next;return Y},function(){try{Object.defineProperty(j.prototype,"buffer",{get:s.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var re;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(re=Function.prototype[Symbol.hasInstance],Object.defineProperty(Z,Symbol.hasInstance,{value:function(F){return re.call(this,F)?!0:this!==Z?!1:F&&F._writableState instanceof j}})):re=function(F){return F instanceof this};function Z(P){i=i||Wg();var F=this instanceof i;if(!F&&!re.call(Z,this))return new Z(P);this._writableState=new j(P,this,F),this.writable=!0,P&&(typeof P.write=="function"&&(this._write=P.write),typeof P.writev=="function"&&(this._writev=P.writev),typeof P.destroy=="function"&&(this._destroy=P.destroy),typeof P.final=="function"&&(this._final=P.final)),f.call(this)}Z.prototype.pipe=function(){N(this,new m)};function J(P,F){var Y=new S;N(P,Y),process.nextTick(F,Y)}function Ae(P,F,Y,W){var te;return Y===null?te=new D:typeof Y!="string"&&!F.objectMode&&(te=new v("chunk",["string","Buffer"],Y)),te?(N(P,te),process.nextTick(W,te),!1):!0}Z.prototype.write=function(P,F,Y){var W=this._writableState,te=!1,z=!W.objectMode&&I(P);return z&&!l.isBuffer(P)&&(P=B(P)),typeof F=="function"&&(Y=F,F=null),z?F="buffer":F||(F=W.defaultEncoding),typeof Y!="function"&&(Y=L),W.ending?J(this,Y):(z||Ae(this,W,P,Y))&&(W.pendingcb++,te=e(this,W,z,P,F,Y)),te},Z.prototype.cork=function(){this._writableState.corked++},Z.prototype.uncork=function(){var P=this._writableState;P.corked&&(P.corked--,!P.writing&&!P.corked&&!P.bufferProcessing&&P.bufferedRequest&&g(this,P))},Z.prototype.setDefaultEncoding=function(F){if(typeof F=="string"&&(F=F.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((F+"").toLowerCase())>-1))throw new K(F);return this._writableState.defaultEncoding=F,this},Object.defineProperty(Z.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function E(P,F,Y){return!P.objectMode&&P.decodeStrings!==!1&&typeof F=="string"&&(F=l.from(F,Y)),F}Object.defineProperty(Z.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function e(P,F,Y,W,te,z){if(!Y){var q=E(F,W,te);W!==q&&(Y=!0,te="buffer",W=q)}var $=F.objectMode?1:W.length;F.length+=$;var le=F.length>5===6?2:D>>4===14?3:D>>3===30?4:D>>6===2?-1:-2}function B(D,S,K){var N=S.length-1;if(N=0?(L>0&&(D.lastNeed=L-1),L):--N=0?(L>0&&(D.lastNeed=L-2),L):--N=0?(L>0&&(L===2?L=0:D.lastNeed=L-3),L):0))}function I(D,S,K){if((S[0]&192)!==128)return D.lastNeed=0,"�";if(D.lastNeed>1&&S.length>1){if((S[1]&192)!==128)return D.lastNeed=1,"�";if(D.lastNeed>2&&S.length>2&&(S[2]&192)!==128)return D.lastNeed=2,"�"}}function p(D){var S=this.lastTotal-this.lastNeed,K=I(this,D);if(K!==void 0)return K;if(this.lastNeed<=D.length)return D.copy(this.lastChar,S,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);D.copy(this.lastChar,S,0,D.length),this.lastNeed-=D.length}function Q(D,S){var K=B(this,D,S);if(!this.lastNeed)return D.toString("utf8",S);this.lastTotal=K;var N=D.length-(K-this.lastNeed);return D.copy(this.lastChar,0,N),D.toString("utf8",S,N)}function d(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+"�":S}function y(D,S){if((D.length-S)%2===0){var K=D.toString("utf16le",S);if(K){var N=K.charCodeAt(K.length-1);if(N>=55296&&N<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1],K.slice(0,-1)}return K}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=D[D.length-1],D.toString("utf16le",S,D.length-1)}function v(D){var S=D&&D.length?this.write(D):"";if(this.lastNeed){var K=this.lastTotal-this.lastNeed;return S+this.lastChar.toString("utf16le",0,K)}return S}function w(D,S){var K=(D.length-S)%3;return K===0?D.toString("base64",S):(this.lastNeed=3-K,this.lastTotal=3,K===1?this.lastChar[0]=D[D.length-1]:(this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1]),D.toString("base64",S,D.length-K))}function M(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+this.lastChar.toString("base64",0,3-this.lastNeed):S}function m(D){return D.toString(this.encoding)}function x(D){return D&&D.length?this.write(D):""}return t4}var A4,TV;function g_(){if(TV)return A4;TV=1;var o=pu().codes.ERR_STREAM_PREMATURE_CLOSE;function i(r){var B=!1;return function(){if(!B){B=!0;for(var I=arguments.length,p=new Array(I),Q=0;Q0)if(typeof q!="string"&&!he.objectMode&&Object.getPrototypeOf(q)!==f.prototype&&(q=r(q)),le)he.endEmitted?L(z,new D):E(z,he,q,!0);else if(he.ended)L(z,new m);else{if(he.destroyed)return!1;he.reading=!1,he.decoder&&!$?(q=he.decoder.write(q),he.objectMode||q.length!==0?E(z,he,q,!1):g(z,he)):E(z,he,q,!1)}else le||(he.reading=!1,g(z,he))}return!he.ended&&(he.length=A?z=A:(z--,z|=z>>>1,z|=z>>>2,z|=z>>>4,z|=z>>>8,z|=z>>>16,z++),z}function a(z,q){return z<=0||q.length===0&&q.ended?0:q.objectMode?1:z!==z?q.flowing&&q.length?q.buffer.head.data.length:q.length:(z>q.highWaterMark&&(q.highWaterMark=n(z)),z<=q.length?z:q.ended?q.length:(q.needReadable=!0,0))}J.prototype.read=function(z){p("read",z),z=parseInt(z,10);var q=this._readableState,$=z;if(z!==0&&(q.emittedReadable=!1),z===0&&q.needReadable&&((q.highWaterMark!==0?q.length>=q.highWaterMark:q.length>0)||q.ended))return p("read: emitReadable",q.length,q.ended),q.length===0&&q.ended?Y(this):c(this),null;if(z=a(z,q),z===0&&q.ended)return q.length===0&&Y(this),null;var le=q.needReadable;p("need readable",le),(q.length===0||q.length-z0?ae=F(z,q):ae=null,ae===null?(q.needReadable=q.length<=q.highWaterMark,z=0):(q.length-=z,q.awaitDrain=0),q.length===0&&(q.ended||(q.needReadable=!0),$!==z&&q.ended&&Y(this)),ae!==null&&this.emit("data",ae),ae};function h(z,q){if(p("onEofChunk"),!q.ended){if(q.decoder){var $=q.decoder.end();$&&$.length&&(q.buffer.push($),q.length+=q.objectMode?1:$.length)}q.ended=!0,q.sync?c(z):(q.needReadable=!1,q.emittedReadable||(q.emittedReadable=!0,C(z)))}}function c(z){var q=z._readableState;p("emitReadable",q.needReadable,q.emittedReadable),q.needReadable=!1,q.emittedReadable||(p("emitReadable",q.flowing),q.emittedReadable=!0,process.nextTick(C,z))}function C(z){var q=z._readableState;p("emitReadable_",q.destroyed,q.length,q.ended),!q.destroyed&&(q.length||q.ended)&&(z.emit("readable"),q.emittedReadable=!1),q.needReadable=!q.flowing&&!q.ended&&q.length<=q.highWaterMark,P(z)}function g(z,q){q.readingMore||(q.readingMore=!0,process.nextTick(t,z,q))}function t(z,q){for(;!q.reading&&!q.ended&&(q.length1&&te(le.pipes,z)!==-1)&&!Ue&&(p("false write response, pause",le.awaitDrain),le.awaitDrain++),$.pause())}function Te(H){p("onerror",H),Ve(),z.removeListener("error",Te),i(z,"error")===0&&L(z,H)}re(z,"error",Te);function ue(){z.removeListener("finish",Be),Ve()}z.once("close",ue);function Be(){p("onfinish"),z.removeListener("close",ue),Ve()}z.once("finish",Be);function Ve(){p("unpipe"),$.unpipe(z)}return z.emit("pipe",$),le.flowing||(p("pipe resume"),$.resume()),z};function u(z){return function(){var $=z._readableState;p("pipeOnDrain",$.awaitDrain),$.awaitDrain&&$.awaitDrain--,$.awaitDrain===0&&i(z,"data")&&($.flowing=!0,P(z))}}J.prototype.unpipe=function(z){var q=this._readableState,$={hasUnpiped:!1};if(q.pipesCount===0)return this;if(q.pipesCount===1)return z&&z!==q.pipes?this:(z||(z=q.pipes),q.pipes=null,q.pipesCount=0,q.flowing=!1,z&&z.emit("unpipe",this,$),this);if(!z){var le=q.pipes,ae=q.pipesCount;q.pipes=null,q.pipesCount=0,q.flowing=!1;for(var he=0;he0,le.flowing!==!1&&this.resume()):z==="readable"&&!le.endEmitted&&!le.readableListening&&(le.readableListening=le.needReadable=!0,le.flowing=!1,le.emittedReadable=!1,p("on readable",le.length,le.reading),le.length?c(this):le.reading||process.nextTick(R,this)),$},J.prototype.addListener=J.prototype.on,J.prototype.removeListener=function(z,q){var $=s.prototype.removeListener.call(this,z,q);return z==="readable"&&process.nextTick(b,this),$},J.prototype.removeAllListeners=function(z){var q=s.prototype.removeAllListeners.apply(this,arguments);return(z==="readable"||z===void 0)&&process.nextTick(b,this),q};function b(z){var q=z._readableState;q.readableListening=z.listenerCount("readable")>0,q.resumeScheduled&&!q.paused?q.flowing=!0:z.listenerCount("data")>0&&z.resume()}function R(z){p("readable nexttick read 0"),z.read(0)}J.prototype.resume=function(){var z=this._readableState;return z.flowing||(p("resume"),z.flowing=!z.readableListening,T(this,z)),z.paused=!1,this};function T(z,q){q.resumeScheduled||(q.resumeScheduled=!0,process.nextTick(V,z,q))}function V(z,q){p("resume",q.reading),q.reading||z.read(0),q.resumeScheduled=!1,z.emit("resume"),P(z),q.flowing&&!q.reading&&z.read(0)}J.prototype.pause=function(){return p("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(p("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function P(z){var q=z._readableState;for(p("flow",q.flowing);q.flowing&&z.read()!==null;);}J.prototype.wrap=function(z){var q=this,$=this._readableState,le=!1;z.on("end",function(){if(p("wrapped end"),$.decoder&&!$.ended){var xe=$.decoder.end();xe&&xe.length&&q.push(xe)}q.push(null)}),z.on("data",function(xe){if(p("wrapped data"),$.decoder&&(xe=$.decoder.write(xe)),!($.objectMode&&xe==null)&&!(!$.objectMode&&(!xe||!xe.length))){var se=q.push(xe);se||(le=!0,z.pause())}});for(var ae in z)this[ae]===void 0&&typeof z[ae]=="function"&&(this[ae]=function(se){return function(){return z[se].apply(z,arguments)}}(ae));for(var he=0;he=q.length?(q.decoder?$=q.buffer.join(""):q.buffer.length===1?$=q.buffer.first():$=q.buffer.concat(q.length),q.buffer.clear()):$=q.buffer.consume(z,q.decoder),$}function Y(z){var q=z._readableState;p("endReadable",q.endEmitted),q.endEmitted||(q.ended=!0,process.nextTick(W,q,z))}function W(z,q){if(p("endReadableNT",z.endEmitted,z.length),!z.endEmitted&&z.length===0&&(z.endEmitted=!0,q.readable=!1,q.emit("end"),z.autoDestroy)){var $=q._writableState;(!$||$.autoDestroy&&$.finished)&&q.destroy()}}typeof Symbol=="function"&&(J.from=function(z,q){return N===void 0&&(N=d5e()),N(J,z,q)});function te(z,q){for(var $=0,le=z.length;$0;return I(S,N,L,function(j){x||(x=j),j&&D.forEach(p),!N&&(D.forEach(p),m(x))})});return w.reduce(Q)}return s4=y,s4}var f4,VV;function wd(){if(VV)return f4;VV=1,f4=s;var o=Na().EventEmitter,i=oA();i(s,o),s.Readable=hse(),s.Writable=fse(),s.Duplex=Wg(),s.Transform=gse(),s.PassThrough=I5e(),s.finished=g_(),s.pipeline=B5e(),s.Stream=s;function s(){o.call(this)}return s.prototype.pipe=function(f,l){var r=this;function B(w){f.writable&&f.write(w)===!1&&r.pause&&r.pause()}r.on("data",B);function I(){r.readable&&r.resume&&r.resume()}f.on("drain",I),!f._isStdio&&(!l||l.end!==!1)&&(r.on("end",Q),r.on("close",d));var p=!1;function Q(){p||(p=!0,f.end())}function d(){p||(p=!0,typeof f.destroy=="function"&&f.destroy())}function y(w){if(v(),o.listenerCount(this,"error")===0)throw w}r.on("error",y),f.on("error",y);function v(){r.removeListener("data",B),f.removeListener("drain",I),r.removeListener("end",Q),r.removeListener("close",d),r.removeListener("error",y),f.removeListener("error",y),r.removeListener("end",v),r.removeListener("close",v),f.removeListener("close",v)}return r.on("end",v),r.on("close",v),f.on("close",v),f.emit("pipe",r),f},f4}var h4,ZV;function use(){if(ZV)return h4;ZV=1;var o=aA().Buffer,i=wd().Transform,s=oA();function f(I){i.call(this),this._block=o.allocUnsafe(I),this._blockSize=I,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}s(f,i),f.prototype._transform=function(I,p,Q){var d=null;try{this.update(I,p)}catch(y){d=y}Q(d)},f.prototype._flush=function(I){var p=null;try{this.push(this.digest())}catch(Q){p=Q}I(p)};var l=typeof Uint8Array<"u",r=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&ArrayBuffer.isView&&(o.prototype instanceof Uint8Array||o.TYPED_ARRAY_SUPPORT);function B(I,p){if(I instanceof o)return I;if(typeof I=="string")return o.from(I,p);if(r&&ArrayBuffer.isView(I)){if(I.byteLength===0)return o.alloc(0);var Q=o.from(I.buffer,I.byteOffset,I.byteLength);if(Q.byteLength===I.byteLength)return Q}if(l&&I instanceof Uint8Array||o.isBuffer(I)&&I.constructor&&typeof I.constructor.isBuffer=="function"&&I.constructor.isBuffer(I))return o.from(I);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}return f.prototype.update=function(I,p){if(this._finalized)throw new Error("Digest already called");I=B(I,p);for(var Q=this._block,d=0;this._blockOffset+I.length-d>=this._blockSize;){for(var y=this._blockOffset;y0;++v)this._length[v]+=w,w=this._length[v]/4294967296|0,w>0&&(this._length[v]-=4294967296*w);return this},f.prototype._update=function(){throw new Error("_update is not implemented")},f.prototype.digest=function(I){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var p=this._digest();I!==void 0&&(p=p.toString(I)),this._block.fill(0),this._blockOffset=0;for(var Q=0;Q<4;++Q)this._length[Q]=0;return p},f.prototype._digest=function(){throw new Error("_digest is not implemented")},h4=f,h4}var g4,zV;function u_(){if(zV)return g4;zV=1;var o=oA(),i=use(),s=aA().Buffer,f=new Array(16);function l(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}o(l,i),l.prototype._update=function(){for(var d=f,y=0;y<16;++y)d[y]=this._block.readInt32LE(y*4);var v=this._a,w=this._b,M=this._c,m=this._d;v=B(v,w,M,m,d[0],3614090360,7),m=B(m,v,w,M,d[1],3905402710,12),M=B(M,m,v,w,d[2],606105819,17),w=B(w,M,m,v,d[3],3250441966,22),v=B(v,w,M,m,d[4],4118548399,7),m=B(m,v,w,M,d[5],1200080426,12),M=B(M,m,v,w,d[6],2821735955,17),w=B(w,M,m,v,d[7],4249261313,22),v=B(v,w,M,m,d[8],1770035416,7),m=B(m,v,w,M,d[9],2336552879,12),M=B(M,m,v,w,d[10],4294925233,17),w=B(w,M,m,v,d[11],2304563134,22),v=B(v,w,M,m,d[12],1804603682,7),m=B(m,v,w,M,d[13],4254626195,12),M=B(M,m,v,w,d[14],2792965006,17),w=B(w,M,m,v,d[15],1236535329,22),v=I(v,w,M,m,d[1],4129170786,5),m=I(m,v,w,M,d[6],3225465664,9),M=I(M,m,v,w,d[11],643717713,14),w=I(w,M,m,v,d[0],3921069994,20),v=I(v,w,M,m,d[5],3593408605,5),m=I(m,v,w,M,d[10],38016083,9),M=I(M,m,v,w,d[15],3634488961,14),w=I(w,M,m,v,d[4],3889429448,20),v=I(v,w,M,m,d[9],568446438,5),m=I(m,v,w,M,d[14],3275163606,9),M=I(M,m,v,w,d[3],4107603335,14),w=I(w,M,m,v,d[8],1163531501,20),v=I(v,w,M,m,d[13],2850285829,5),m=I(m,v,w,M,d[2],4243563512,9),M=I(M,m,v,w,d[7],1735328473,14),w=I(w,M,m,v,d[12],2368359562,20),v=p(v,w,M,m,d[5],4294588738,4),m=p(m,v,w,M,d[8],2272392833,11),M=p(M,m,v,w,d[11],1839030562,16),w=p(w,M,m,v,d[14],4259657740,23),v=p(v,w,M,m,d[1],2763975236,4),m=p(m,v,w,M,d[4],1272893353,11),M=p(M,m,v,w,d[7],4139469664,16),w=p(w,M,m,v,d[10],3200236656,23),v=p(v,w,M,m,d[13],681279174,4),m=p(m,v,w,M,d[0],3936430074,11),M=p(M,m,v,w,d[3],3572445317,16),w=p(w,M,m,v,d[6],76029189,23),v=p(v,w,M,m,d[9],3654602809,4),m=p(m,v,w,M,d[12],3873151461,11),M=p(M,m,v,w,d[15],530742520,16),w=p(w,M,m,v,d[2],3299628645,23),v=Q(v,w,M,m,d[0],4096336452,6),m=Q(m,v,w,M,d[7],1126891415,10),M=Q(M,m,v,w,d[14],2878612391,15),w=Q(w,M,m,v,d[5],4237533241,21),v=Q(v,w,M,m,d[12],1700485571,6),m=Q(m,v,w,M,d[3],2399980690,10),M=Q(M,m,v,w,d[10],4293915773,15),w=Q(w,M,m,v,d[1],2240044497,21),v=Q(v,w,M,m,d[8],1873313359,6),m=Q(m,v,w,M,d[15],4264355552,10),M=Q(M,m,v,w,d[6],2734768916,15),w=Q(w,M,m,v,d[13],1309151649,21),v=Q(v,w,M,m,d[4],4149444226,6),m=Q(m,v,w,M,d[11],3174756917,10),M=Q(M,m,v,w,d[2],718787259,15),w=Q(w,M,m,v,d[9],3951481745,21),this._a=this._a+v|0,this._b=this._b+w|0,this._c=this._c+M|0,this._d=this._d+m|0},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var d=s.allocUnsafe(16);return d.writeInt32LE(this._a,0),d.writeInt32LE(this._b,4),d.writeInt32LE(this._c,8),d.writeInt32LE(this._d,12),d};function r(d,y){return d<>>32-y}function B(d,y,v,w,M,m,x){return r(d+(y&v|~y&w)+M+m|0,x)+y|0}function I(d,y,v,w,M,m,x){return r(d+(y&w|v&~w)+M+m|0,x)+y|0}function p(d,y,v,w,M,m,x){return r(d+(y^v^w)+M+m|0,x)+y|0}function Q(d,y,v,w,M,m,x){return r(d+(v^(y|~w))+M+m|0,x)+y|0}return g4=l,g4}var u4,$V;function c_(){if($V)return u4;$V=1;var o=mr().Buffer,i=oA(),s=use(),f=new Array(16),l=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],r=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],B=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],I=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],p=[0,1518500249,1859775393,2400959708,2840853838],Q=[1352829926,1548603684,1836072691,2053994217,0];function d(){s.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}i(d,s),d.prototype._update=function(){for(var D=f,S=0;S<16;++S)D[S]=this._block.readInt32LE(S*4);for(var K=this._a|0,N=this._b|0,L=this._c|0,j=this._d|0,re=this._e|0,Z=this._a|0,J=this._b|0,Ae=this._c|0,E=this._d|0,e=this._e|0,A=0;A<80;A+=1){var n,a;A<16?(n=v(K,N,L,j,re,D[l[A]],p[0],B[A]),a=x(Z,J,Ae,E,e,D[r[A]],Q[0],I[A])):A<32?(n=w(K,N,L,j,re,D[l[A]],p[1],B[A]),a=m(Z,J,Ae,E,e,D[r[A]],Q[1],I[A])):A<48?(n=M(K,N,L,j,re,D[l[A]],p[2],B[A]),a=M(Z,J,Ae,E,e,D[r[A]],Q[2],I[A])):A<64?(n=m(K,N,L,j,re,D[l[A]],p[3],B[A]),a=w(Z,J,Ae,E,e,D[r[A]],Q[3],I[A])):(n=x(K,N,L,j,re,D[l[A]],p[4],B[A]),a=v(Z,J,Ae,E,e,D[r[A]],Q[4],I[A])),K=re,re=j,j=y(L,10),L=N,N=n,Z=e,e=E,E=y(Ae,10),Ae=J,J=a}var h=this._b+L+E|0;this._b=this._c+j+e|0,this._c=this._d+re+Z|0,this._d=this._e+K+J|0,this._e=this._a+N+Ae|0,this._a=h},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var D=o.alloc?o.alloc(20):new o(20);return D.writeInt32LE(this._a,0),D.writeInt32LE(this._b,4),D.writeInt32LE(this._c,8),D.writeInt32LE(this._d,12),D.writeInt32LE(this._e,16),D};function y(D,S){return D<>>32-S}function v(D,S,K,N,L,j,re,Z){return y(D+(S^K^N)+j+re|0,Z)+L|0}function w(D,S,K,N,L,j,re,Z){return y(D+(S&K|~S&N)+j+re|0,Z)+L|0}function M(D,S,K,N,L,j,re,Z){return y(D+((S|~K)^N)+j+re|0,Z)+L|0}function m(D,S,K,N,L,j,re,Z){return y(D+(S&N|K&~N)+j+re|0,Z)+L|0}function x(D,S,K,N,L,j,re,Z){return y(D+(S^(K|~N))+j+re|0,Z)+L|0}return u4=d,u4}var c4={exports:{}},l4,XV;function Qu(){if(XV)return l4;XV=1;var o=aA().Buffer;function i(s,f){this._block=o.alloc(s),this._finalSize=f,this._blockSize=s,this._len=0}return i.prototype.update=function(s,f){typeof s=="string"&&(f=f||"utf8",s=o.from(s,f));for(var l=this._block,r=this._blockSize,B=s.length,I=this._len,p=0;p=this._finalSize&&(this._update(this._block),this._block.fill(0));var l=this._len*8;if(l<=4294967295)this._block.writeUInt32BE(l,this._blockSize-4);else{var r=(l&4294967295)>>>0,B=(l-r)/4294967296;this._block.writeUInt32BE(B,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var I=this._hash();return s?I.toString(s):I},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},l4=i,l4}var d4,eZ;function C5e(){if(eZ)return d4;eZ=1;var o=oA(),i=Qu(),s=aA().Buffer,f=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function B(Q){return Q<<5|Q>>>27}function I(Q){return Q<<30|Q>>>2}function p(Q,d,y,v){return Q===0?d&y|~d&v:Q===2?d&y|d&v|y&v:d^y^v}return r.prototype._update=function(Q){for(var d=this._w,y=this._a|0,v=this._b|0,w=this._c|0,M=this._d|0,m=this._e|0,x=0;x<16;++x)d[x]=Q.readInt32BE(x*4);for(;x<80;++x)d[x]=d[x-3]^d[x-8]^d[x-14]^d[x-16];for(var D=0;D<80;++D){var S=~~(D/20),K=B(y)+p(S,v,w,M)+m+d[D]+f[S]|0;m=M,M=w,w=I(v),v=y,y=K}this._a=y+this._a|0,this._b=v+this._b|0,this._c=w+this._c|0,this._d=M+this._d|0,this._e=m+this._e|0},r.prototype._hash=function(){var Q=s.allocUnsafe(20);return Q.writeInt32BE(this._a|0,0),Q.writeInt32BE(this._b|0,4),Q.writeInt32BE(this._c|0,8),Q.writeInt32BE(this._d|0,12),Q.writeInt32BE(this._e|0,16),Q},d4=r,d4}var I4,tZ;function E5e(){if(tZ)return I4;tZ=1;var o=oA(),i=Qu(),s=aA().Buffer,f=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function B(d){return d<<1|d>>>31}function I(d){return d<<5|d>>>27}function p(d){return d<<30|d>>>2}function Q(d,y,v,w){return d===0?y&v|~y&w:d===2?y&v|y&w|v&w:y^v^w}return r.prototype._update=function(d){for(var y=this._w,v=this._a|0,w=this._b|0,M=this._c|0,m=this._d|0,x=this._e|0,D=0;D<16;++D)y[D]=d.readInt32BE(D*4);for(;D<80;++D)y[D]=B(y[D-3]^y[D-8]^y[D-14]^y[D-16]);for(var S=0;S<80;++S){var K=~~(S/20),N=I(v)+Q(K,w,M,m)+x+y[S]+f[K]|0;x=m,m=M,M=p(w),w=v,v=N}this._a=v+this._a|0,this._b=w+this._b|0,this._c=M+this._c|0,this._d=m+this._d|0,this._e=x+this._e|0},r.prototype._hash=function(){var d=s.allocUnsafe(20);return d.writeInt32BE(this._a|0,0),d.writeInt32BE(this._b|0,4),d.writeInt32BE(this._c|0,8),d.writeInt32BE(this._d|0,12),d.writeInt32BE(this._e|0,16),d},I4=r,I4}var B4,AZ;function cse(){if(AZ)return B4;AZ=1;var o=oA(),i=Qu(),s=aA().Buffer,f=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],l=new Array(64);function r(){this.init(),this._w=l,i.call(this,64,56)}o(r,i),r.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function B(v,w,M){return M^v&(w^M)}function I(v,w,M){return v&w|M&(v|w)}function p(v){return(v>>>2|v<<30)^(v>>>13|v<<19)^(v>>>22|v<<10)}function Q(v){return(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7)}function d(v){return(v>>>7|v<<25)^(v>>>18|v<<14)^v>>>3}function y(v){return(v>>>17|v<<15)^(v>>>19|v<<13)^v>>>10}return r.prototype._update=function(v){for(var w=this._w,M=this._a|0,m=this._b|0,x=this._c|0,D=this._d|0,S=this._e|0,K=this._f|0,N=this._g|0,L=this._h|0,j=0;j<16;++j)w[j]=v.readInt32BE(j*4);for(;j<64;++j)w[j]=y(w[j-2])+w[j-7]+d(w[j-15])+w[j-16]|0;for(var re=0;re<64;++re){var Z=L+Q(S)+B(S,K,N)+f[re]+w[re]|0,J=p(M)+I(M,m,x)|0;L=N,N=K,K=S,S=D+Z|0,D=x,x=m,m=M,M=Z+J|0}this._a=M+this._a|0,this._b=m+this._b|0,this._c=x+this._c|0,this._d=D+this._d|0,this._e=S+this._e|0,this._f=K+this._f|0,this._g=N+this._g|0,this._h=L+this._h|0},r.prototype._hash=function(){var v=s.allocUnsafe(32);return v.writeInt32BE(this._a,0),v.writeInt32BE(this._b,4),v.writeInt32BE(this._c,8),v.writeInt32BE(this._d,12),v.writeInt32BE(this._e,16),v.writeInt32BE(this._f,20),v.writeInt32BE(this._g,24),v.writeInt32BE(this._h,28),v},B4=r,B4}var C4,rZ;function p5e(){if(rZ)return C4;rZ=1;var o=oA(),i=cse(),s=Qu(),f=aA().Buffer,l=new Array(64);function r(){this.init(),this._w=l,s.call(this,64,56)}return o(r,i),r.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},r.prototype._hash=function(){var B=f.allocUnsafe(28);return B.writeInt32BE(this._a,0),B.writeInt32BE(this._b,4),B.writeInt32BE(this._c,8),B.writeInt32BE(this._d,12),B.writeInt32BE(this._e,16),B.writeInt32BE(this._f,20),B.writeInt32BE(this._g,24),B},C4=r,C4}var E4,iZ;function lse(){if(iZ)return E4;iZ=1;var o=oA(),i=Qu(),s=aA().Buffer,f=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],l=new Array(160);function r(){this.init(),this._w=l,i.call(this,128,112)}o(r,i),r.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function B(m,x,D){return D^m&(x^D)}function I(m,x,D){return m&x|D&(m|x)}function p(m,x){return(m>>>28|x<<4)^(x>>>2|m<<30)^(x>>>7|m<<25)}function Q(m,x){return(m>>>14|x<<18)^(m>>>18|x<<14)^(x>>>9|m<<23)}function d(m,x){return(m>>>1|x<<31)^(m>>>8|x<<24)^m>>>7}function y(m,x){return(m>>>1|x<<31)^(m>>>8|x<<24)^(m>>>7|x<<25)}function v(m,x){return(m>>>19|x<<13)^(x>>>29|m<<3)^m>>>6}function w(m,x){return(m>>>19|x<<13)^(x>>>29|m<<3)^(m>>>6|x<<26)}function M(m,x){return m>>>0>>0?1:0}return r.prototype._update=function(m){for(var x=this._w,D=this._ah|0,S=this._bh|0,K=this._ch|0,N=this._dh|0,L=this._eh|0,j=this._fh|0,re=this._gh|0,Z=this._hh|0,J=this._al|0,Ae=this._bl|0,E=this._cl|0,e=this._dl|0,A=this._el|0,n=this._fl|0,a=this._gl|0,h=this._hl|0,c=0;c<32;c+=2)x[c]=m.readInt32BE(c*4),x[c+1]=m.readInt32BE(c*4+4);for(;c<160;c+=2){var C=x[c-30],g=x[c-15*2+1],t=d(C,g),u=y(g,C);C=x[c-2*2],g=x[c-2*2+1];var b=v(C,g),R=w(g,C),T=x[c-7*2],V=x[c-7*2+1],P=x[c-16*2],F=x[c-16*2+1],Y=u+V|0,W=t+T+M(Y,u)|0;Y=Y+R|0,W=W+b+M(Y,R)|0,Y=Y+F|0,W=W+P+M(Y,F)|0,x[c]=W,x[c+1]=Y}for(var te=0;te<160;te+=2){W=x[te],Y=x[te+1];var z=I(D,S,K),q=I(J,Ae,E),$=p(D,J),le=p(J,D),ae=Q(L,A),he=Q(A,L),xe=f[te],se=f[te+1],oe=B(L,j,re),Ue=B(A,n,a),fe=h+he|0,ce=Z+ae+M(fe,h)|0;fe=fe+Ue|0,ce=ce+oe+M(fe,Ue)|0,fe=fe+se|0,ce=ce+xe+M(fe,se)|0,fe=fe+Y|0,ce=ce+W+M(fe,Y)|0;var Te=le+q|0,ue=$+z+M(Te,le)|0;Z=re,h=a,re=j,a=n,j=L,n=A,A=e+fe|0,L=N+ce+M(A,e)|0,N=K,e=E,K=S,E=Ae,S=D,Ae=J,J=fe+Te|0,D=ce+ue+M(J,fe)|0}this._al=this._al+J|0,this._bl=this._bl+Ae|0,this._cl=this._cl+E|0,this._dl=this._dl+e|0,this._el=this._el+A|0,this._fl=this._fl+n|0,this._gl=this._gl+a|0,this._hl=this._hl+h|0,this._ah=this._ah+D+M(this._al,J)|0,this._bh=this._bh+S+M(this._bl,Ae)|0,this._ch=this._ch+K+M(this._cl,E)|0,this._dh=this._dh+N+M(this._dl,e)|0,this._eh=this._eh+L+M(this._el,A)|0,this._fh=this._fh+j+M(this._fl,n)|0,this._gh=this._gh+re+M(this._gl,a)|0,this._hh=this._hh+Z+M(this._hl,h)|0},r.prototype._hash=function(){var m=s.allocUnsafe(64);function x(D,S,K){m.writeInt32BE(D,K),m.writeInt32BE(S,K+4)}return x(this._ah,this._al,0),x(this._bh,this._bl,8),x(this._ch,this._cl,16),x(this._dh,this._dl,24),x(this._eh,this._el,32),x(this._fh,this._fl,40),x(this._gh,this._gl,48),x(this._hh,this._hl,56),m},E4=r,E4}var p4,nZ;function Q5e(){if(nZ)return p4;nZ=1;var o=oA(),i=lse(),s=Qu(),f=aA().Buffer,l=new Array(160);function r(){this.init(),this._w=l,s.call(this,128,112)}return o(r,i),r.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},r.prototype._hash=function(){var B=f.allocUnsafe(48);function I(p,Q,d){B.writeInt32BE(p,d),B.writeInt32BE(Q,d+4)}return I(this._ah,this._al,0),I(this._bh,this._bl,8),I(this._ch,this._cl,16),I(this._dh,this._dl,24),I(this._eh,this._el,32),I(this._fh,this._fl,40),B},p4=r,p4}var oZ;function l_(){if(oZ)return c4.exports;oZ=1;var o=c4.exports=function(s){s=s.toLowerCase();var f=o[s];if(!f)throw new Error(s+" is not supported (we accept pull requests)");return new f};return o.sha=C5e(),o.sha1=E5e(),o.sha224=p5e(),o.sha256=cse(),o.sha384=Q5e(),o.sha512=lse(),c4.exports}var Q4,aZ;function Nf(){if(aZ)return Q4;aZ=1;var o=aA().Buffer,i=wd().Transform,s=Gp().StringDecoder,f=oA();function l(I){i.call(this),this.hashMode=typeof I=="string",this.hashMode?this[I]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}f(l,i);var r=typeof Uint8Array<"u",B=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&ArrayBuffer.isView&&(o.prototype instanceof Uint8Array||o.TYPED_ARRAY_SUPPORT);return l.prototype.update=function(I,p,Q){var d;if(I instanceof o)d=I;else if(typeof I=="string")d=o.from(I,p);else if(B&&ArrayBuffer.isView(I))d=o.from(I.buffer,I.byteOffset,I.byteLength);else if(r&&I instanceof Uint8Array)d=o.from(I);else if(o.isBuffer(I)&&I.constructor&&I.constructor.isBuffer&&I.constructor.isBuffer(I))d=o.from(I);else throw new Error('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');var y=this._update(d);return this.hashMode?this:(Q&&(y=this._toString(y,Q)),y)},l.prototype.setAutoPadding=function(){},l.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},l.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},l.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},l.prototype._transform=function(I,p,Q){var d;try{this.hashMode?this._update(I):this.push(this._update(I))}catch(y){d=y}finally{Q(d)}},l.prototype._flush=function(I){var p;try{this.push(this.__final())}catch(Q){p=Q}I(p)},l.prototype._finalOrDigest=function(I){var p=this.__final()||o.alloc(0);return I&&(p=this._toString(p,I,!0)),p},l.prototype._toString=function(I,p,Q){if(this._decoder||(this._decoder=new s(p),this._encoding=p),this._encoding!==p)throw new Error("can’t switch encodings");var d=this._decoder.write(I);return Q&&(d+=this._decoder.end()),d},Q4=l,Q4}var y4,sZ;function md(){if(sZ)return y4;sZ=1;var o=oA(),i=u_(),s=c_(),f=l_(),l=Nf();function r(B){l.call(this,"digest"),this._hash=B}return o(r,l),r.prototype._update=function(B){this._hash.update(B)},r.prototype._final=function(){return this._hash.digest()},y4=function(I){return I=I.toLowerCase(),I==="md5"?new i:I==="rmd160"||I==="ripemd160"?new s:new r(f(I))},y4}var v4,fZ;function y5e(){if(fZ)return v4;fZ=1;var o=oA(),i=aA().Buffer,s=Nf(),f=i.alloc(128),l=64;function r(B,I){s.call(this,"digest"),typeof I=="string"&&(I=i.from(I)),this._alg=B,this._key=I,I.length>l?I=B(I):I.lengthy){var v=Q==="rmd160"?new r:B(Q);d=v.update(d).digest()}else d.lengtho||s!==s)throw new TypeError("Bad key length")},b4}var D4,lZ;function Ese(){if(lZ)return D4;lZ=1;var o;if(globalThis.process&&globalThis.process.browser)o="utf-8";else if(globalThis.process&&globalThis.process.version){var i=parseInt(process.version.split(".")[0].slice(1),10);o=i>=6?"utf-8":"binary"}else o="utf-8";return D4=o,D4}var S4,dZ;function pse(){if(dZ)return S4;dZ=1;var o=aA().Buffer;return S4=function(i,s,f){if(o.isBuffer(i))return i;if(typeof i=="string")return o.from(i,s);if(ArrayBuffer.isView(i))return o.from(i.buffer);throw new TypeError(f+" must be a string, a Buffer, a typed array or a DataView")},S4}var x4,IZ;function Qse(){if(IZ)return x4;IZ=1;var o=dse(),i=c_(),s=l_(),f=aA().Buffer,l=Cse(),r=Ese(),B=pse(),I=f.alloc(128),p={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function Q(v,w,M){var m=d(v),x=v==="sha512"||v==="sha384"?128:64;w.length>x?w=m(w):w.length>>0},cn.writeUInt32BE=function(l,r,B){l[0+B]=r>>>24,l[1+B]=r>>>16&255,l[2+B]=r>>>8&255,l[3+B]=r&255},cn.ip=function(l,r,B,I){for(var p=0,Q=0,d=6;d>=0;d-=2){for(var y=0;y<=24;y+=8)p<<=1,p|=r>>>y+d&1;for(var y=0;y<=24;y+=8)p<<=1,p|=l>>>y+d&1}for(var d=6;d>=0;d-=2){for(var y=1;y<=25;y+=8)Q<<=1,Q|=r>>>y+d&1;for(var y=1;y<=25;y+=8)Q<<=1,Q|=l>>>y+d&1}B[I+0]=p>>>0,B[I+1]=Q>>>0},cn.rip=function(l,r,B,I){for(var p=0,Q=0,d=0;d<4;d++)for(var y=24;y>=0;y-=8)p<<=1,p|=r>>>y+d&1,p<<=1,p|=l>>>y+d&1;for(var d=4;d<8;d++)for(var y=24;y>=0;y-=8)Q<<=1,Q|=r>>>y+d&1,Q<<=1,Q|=l>>>y+d&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},cn.pc1=function(l,r,B,I){for(var p=0,Q=0,d=7;d>=5;d--){for(var y=0;y<=24;y+=8)p<<=1,p|=r>>y+d&1;for(var y=0;y<=24;y+=8)p<<=1,p|=l>>y+d&1}for(var y=0;y<=24;y+=8)p<<=1,p|=r>>y+d&1;for(var d=1;d<=3;d++){for(var y=0;y<=24;y+=8)Q<<=1,Q|=r>>y+d&1;for(var y=0;y<=24;y+=8)Q<<=1,Q|=l>>y+d&1}for(var y=0;y<=24;y+=8)Q<<=1,Q|=l>>y+d&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},cn.r28shl=function(l,r){return l<>>28-r};var o=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];cn.pc2=function(l,r,B,I){for(var p=0,Q=0,d=o.length>>>1,y=0;y>>o[y]&1;for(var y=d;y>>o[y]&1;B[I+0]=p>>>0,B[I+1]=Q>>>0},cn.expand=function(l,r,B){var I=0,p=0;I=(l&1)<<5|l>>>27;for(var Q=23;Q>=15;Q-=4)I<<=6,I|=l>>>Q&63;for(var Q=11;Q>=3;Q-=4)p|=l>>>Q&63,p<<=6;p|=(l&31)<<1|l>>>31,r[B+0]=I>>>0,r[B+1]=p>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];cn.substitute=function(l,r){for(var B=0,I=0;I<4;I++){var p=l>>>18-I*6&63,Q=i[I*64+p];B<<=4,B|=Q}for(var I=0;I<4;I++){var p=r>>>18-I*6&63,Q=i[4*64+I*64+p];B<<=4,B|=Q}return B>>>0};var s=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];return cn.permute=function(l){for(var r=0,B=0;B>>s[B]&1;return r>>>0},cn.padSplit=function(l,r,B){for(var I=l.toString(2);I.length0;B--)l+=this._buffer(f,l),r+=this._flushBuffer(I,r);return l+=this._buffer(f,l),I},i.prototype.final=function(f){var l;f&&(l=this.update(f));var r;return this.type==="encrypt"?r=this._finalEncrypt():r=this._finalDecrypt(),l?l.concat(r):r},i.prototype._pad=function(f,l){if(l===0)return!1;for(;l>>1];d=s.r28shl(d,w),y=s.r28shl(y,w),s.pc2(d,y,p.keys,v)}},r.prototype._update=function(p,Q,d,y){var v=this._desState,w=s.readUInt32BE(p,Q),M=s.readUInt32BE(p,Q+4);s.ip(w,M,v.tmp,0),w=v.tmp[0],M=v.tmp[1],this.type==="encrypt"?this._encrypt(v,w,M,v.tmp,0):this._decrypt(v,w,M,v.tmp,0),w=v.tmp[0],M=v.tmp[1],s.writeUInt32BE(d,w,y),s.writeUInt32BE(d,M,y+4)},r.prototype._pad=function(p,Q){if(this.padding===!1)return!1;for(var d=p.length-Q,y=Q;y>>0,w=N}s.rip(M,w,y,v)},r.prototype._decrypt=function(p,Q,d,y,v){for(var w=d,M=Q,m=p.keys.length-2;m>=0;m-=2){var x=p.keys[m],D=p.keys[m+1];s.expand(w,p.tmp,0),x^=p.tmp[0],D^=p.tmp[1];var S=s.substitute(x,D),K=s.permute(S),N=w;w=(M^K)>>>0,M=N}s.rip(w,M,y,v)},N4}var _4={},yZ;function F5e(){if(yZ)return _4;yZ=1;var o=Qo(),i=oA(),s={};function f(r){o.equal(r.length,8,"Invalid IV length"),this.iv=new Array(8);for(var B=0;B>I%8,f._prev=s(f._prev,r?d:y);return Q}function s(f,l){var r=f.length,B=-1,I=o.allocUnsafe(f.length);for(f=o.concat([f,o.from([l])]);++B>7;return I}return q4.encrypt=function(f,l,r){for(var B=l.length,I=o.allocUnsafe(B),p=-1;++p>>24]^w[D>>>16&255]^M[S>>>8&255]^m[K&255]^p[Z++],L=v[D>>>24]^w[S>>>16&255]^M[K>>>8&255]^m[x&255]^p[Z++],j=v[S>>>24]^w[K>>>16&255]^M[x>>>8&255]^m[D&255]^p[Z++],re=v[K>>>24]^w[x>>>16&255]^M[D>>>8&255]^m[S&255]^p[Z++],x=N,D=L,S=j,K=re;return N=(d[x>>>24]<<24|d[D>>>16&255]<<16|d[S>>>8&255]<<8|d[K&255])^p[Z++],L=(d[D>>>24]<<24|d[S>>>16&255]<<16|d[K>>>8&255]<<8|d[x&255])^p[Z++],j=(d[S>>>24]<<24|d[K>>>16&255]<<16|d[x>>>8&255]<<8|d[D&255])^p[Z++],re=(d[K>>>24]<<24|d[x>>>16&255]<<16|d[D>>>8&255]<<8|d[S&255])^p[Z++],N=N>>>0,L=L>>>0,j=j>>>0,re=re>>>0,[N,L,j,re]}var l=[0,1,2,4,8,16,32,64,128,27,54],r=function(){for(var I=new Array(256),p=0;p<256;p++)p<128?I[p]=p<<1:I[p]=p<<1^283;for(var Q=[],d=[],y=[[],[],[],[]],v=[[],[],[],[]],w=0,M=0,m=0;m<256;++m){var x=M^M<<1^M<<2^M<<3^M<<4;x=x>>>8^x&255^99,Q[w]=x,d[x]=w;var D=I[w],S=I[D],K=I[S],N=I[x]*257^x*16843008;y[0][w]=N<<24|N>>>8,y[1][w]=N<<16|N>>>16,y[2][w]=N<<8|N>>>24,y[3][w]=N,N=K*16843009^S*65537^D*257^w*16843008,v[0][x]=N<<24|N>>>8,v[1][x]=N<<16|N>>>16,v[2][x]=N<<8|N>>>24,v[3][x]=N,w===0?w=M=1:(w=D^I[I[I[K^D]]],M^=I[I[M]])}return{SBOX:Q,INV_SBOX:d,SUB_MIX:y,INV_SUB_MIX:v}}();function B(I){this._key=i(I),this._reset()}return B.blockSize=4*4,B.keySize=256/8,B.prototype.blockSize=B.blockSize,B.prototype.keySize=B.keySize,B.prototype._reset=function(){for(var I=this._key,p=I.length,Q=p+6,d=(Q+1)*4,y=[],v=0;v>>24,w=r.SBOX[w>>>24]<<24|r.SBOX[w>>>16&255]<<16|r.SBOX[w>>>8&255]<<8|r.SBOX[w&255],w^=l[v/p|0]<<24):p>6&&v%p===4&&(w=r.SBOX[w>>>24]<<24|r.SBOX[w>>>16&255]<<16|r.SBOX[w>>>8&255]<<8|r.SBOX[w&255]),y[v]=y[v-p]^w}for(var M=[],m=0;m>>24]]^r.INV_SUB_MIX[1][r.SBOX[D>>>16&255]]^r.INV_SUB_MIX[2][r.SBOX[D>>>8&255]]^r.INV_SUB_MIX[3][r.SBOX[D&255]]}this._nRounds=Q,this._keySchedule=y,this._invKeySchedule=M},B.prototype.encryptBlockRaw=function(I){return I=i(I),f(I,this._keySchedule,r.SUB_MIX,r.SBOX,this._nRounds)},B.prototype.encryptBlock=function(I){var p=this.encryptBlockRaw(I),Q=o.allocUnsafe(16);return Q.writeUInt32BE(p[0],0),Q.writeUInt32BE(p[1],4),Q.writeUInt32BE(p[2],8),Q.writeUInt32BE(p[3],12),Q},B.prototype.decryptBlock=function(I){I=i(I);var p=I[1];I[1]=I[3],I[3]=p;var Q=f(I,this._invKeySchedule,r.INV_SUB_MIX,r.INV_SBOX,this._nRounds),d=o.allocUnsafe(16);return d.writeUInt32BE(Q[0],0),d.writeUInt32BE(Q[3],4),d.writeUInt32BE(Q[2],8),d.writeUInt32BE(Q[1],12),d},B.prototype.scrub=function(){s(this._keySchedule),s(this._invKeySchedule),s(this._key)},P4.AES=B,P4}var O4,LZ;function V5e(){if(LZ)return O4;LZ=1;var o=aA().Buffer,i=o.alloc(16,0);function s(r){return[r.readUInt32BE(0),r.readUInt32BE(4),r.readUInt32BE(8),r.readUInt32BE(12)]}function f(r){var B=o.allocUnsafe(16);return B.writeUInt32BE(r[0]>>>0,0),B.writeUInt32BE(r[1]>>>0,4),B.writeUInt32BE(r[2]>>>0,8),B.writeUInt32BE(r[3]>>>0,12),B}function l(r){this.h=r,this.state=o.alloc(16,0),this.cache=o.allocUnsafe(0)}return l.prototype.ghash=function(r){for(var B=-1;++B0;I--)r[I]=r[I]>>>1|(r[I-1]&1)<<31;r[0]=r[0]>>>1,Q&&(r[0]=r[0]^225<<24)}this.state=f(B)},l.prototype.update=function(r){this.cache=o.concat([this.cache,r]);for(var B;this.cache.length>=16;)B=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(B)},l.prototype.final=function(r,B){return this.cache.length&&this.ghash(o.concat([this.cache,i],16)),this.ghash(f([0,r,0,B])),this.state},O4=l,O4}var j4,UZ;function bse(){if(UZ)return j4;UZ=1;var o=ry(),i=aA().Buffer,s=Nf(),f=oA(),l=V5e(),r=Md(),B=mse();function I(d,y){var v=0;d.length!==y.length&&v++;for(var w=Math.min(d.length,y.length),M=0;M0||B>0;){var y=new i;y.update(d),y.update(f),l&&y.update(l),d=y.digest();var v=0;if(I>0){var w=p.length-I;v=Math.min(I,d.length),d.copy(p,w,0,v),I-=v}if(v0){var M=Q.length-B,m=Math.min(B,d.length-v);d.copy(Q,M,v,v+m),B-=m}}return d.fill(0),{key:p,iv:Q}}return V4=s,V4}var TZ;function Z5e(){if(TZ)return gC;TZ=1;var o=I_(),i=bse(),s=aA().Buffer,f=Dse(),l=Nf(),r=ry(),B=iy(),I=oA();function p(w,M,m){l.call(this),this._cache=new d,this._cipher=new r.AES(M),this._prev=s.from(m),this._mode=w,this._autopadding=!0}I(p,l),p.prototype._update=function(w){this._cache.add(w);for(var M,m,x=[];M=this._cache.get();)m=this._mode.encrypt(this,M),x.push(m);return s.concat(x)};var Q=s.alloc(16,16);p.prototype._final=function(){var w=this._cache.flush();if(this._autopadding)return w=this._mode.encrypt(this,w),this._cipher.scrub(),w;if(!w.equals(Q))throw this._cipher.scrub(),new Error("data not multiple of block length")},p.prototype.setAutoPadding=function(w){return this._autopadding=!!w,this};function d(){this.cache=s.allocUnsafe(0)}d.prototype.add=function(w){this.cache=s.concat([this.cache,w])},d.prototype.get=function(){if(this.cache.length>15){var w=this.cache.slice(0,16);return this.cache=this.cache.slice(16),w}return null},d.prototype.flush=function(){for(var w=16-this.cache.length,M=s.allocUnsafe(w),m=-1;++m16)return M=this.cache.slice(0,16),this.cache=this.cache.slice(16),M}else if(this.cache.length>=16)return M=this.cache.slice(0,16),this.cache=this.cache.slice(16),M;return null},Q.prototype.flush=function(){if(this.cache.length)return this.cache};function d(w){var M=w[15];if(M<1||M>16)throw new Error("unable to decrypt data");for(var m=-1;++m0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,e_e)}(yE)),yE.exports}var vE={exports:{}},t_e=vE.exports,WZ;function A_e(){return WZ||(WZ=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,t_e)}(vE)),vE.exports}var z4,VZ;function xse(){if(VZ)return z4;VZ=1;var o=A_e(),i=Q_();function s(f){this.rand=f||new i.Rand}return z4=s,s.create=function(l){return new s(l)},s.prototype._randbelow=function(l){var r=l.bitLength(),B=Math.ceil(r/8);do var I=new o(this.rand.generate(B));while(I.cmp(l)>=0);return I},s.prototype._randrange=function(l,r){var B=r.sub(l);return l.add(this._randbelow(B))},s.prototype.test=function(l,r,B){var I=l.bitLength(),p=o.mont(l),Q=new o(1).toRed(p);r||(r=Math.max(1,I/48|0));for(var d=l.subn(1),y=0;!d.testn(y);y++);for(var v=l.shrn(y),w=d.toRed(p),M=!0;r>0;r--){var m=this._randrange(new o(2),d);B&&B(m);var x=m.toRed(p).redPow(v);if(!(x.cmp(Q)===0||x.cmp(w)===0)){for(var D=1;D0;r--){var w=this._randrange(new o(2),Q),M=l.gcd(w);if(M.cmpn(1)!==0)return M;var m=w.toRed(I).redPow(y);if(!(m.cmp(p)===0||m.cmp(v)===0)){for(var x=1;xD;)K.ishrn(1);if(K.isEven()&&K.iadd(r),K.testn(1)||K.iadd(B),S.cmp(B)){if(!S.cmp(I))for(;K.mod(p).cmp(Q);)K.iadd(y)}else for(;K.mod(s).cmp(d);)K.iadd(y);if(N=K.shrn(1),M(N)&&M(K)&&m(N)&&m(K)&&l.test(N)&&l.test(K))return K}}return $4}const r_e={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},i_e={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},n_e={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},o_e={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},a_e={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},s_e={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},f_e={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},h_e={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},g_e={modp1:r_e,modp2:i_e,modp5:n_e,modp14:o_e,modp15:a_e,modp16:s_e,modp17:f_e,modp18:h_e};var X4,zZ;function u_e(){if(zZ)return X4;zZ=1;var o=Sse(),i=xse(),s=new i,f=new o(24),l=new o(11),r=new o(10),B=new o(3),I=new o(7),p=Rse(),Q=Eu();X4=M;function d(x,D){return D=D||"utf8",Buffer.isBuffer(x)||(x=new Buffer(x,D)),this._pub=new o(x),this}function y(x,D){return D=D||"utf8",Buffer.isBuffer(x)||(x=new Buffer(x,D)),this._priv=new o(x),this}var v={};function w(x,D){var S=D.toString("hex"),K=[S,x.toString(16)].join("_");if(K in v)return v[K];var N=0;if(x.isEven()||!p.simpleSieve||!p.fermatTest(x)||!s.test(x))return N+=1,S==="02"||S==="05"?N+=8:N+=4,v[K]=N,N;s.test(x.shrn(1))||(N+=2);var L;switch(S){case"02":x.mod(f).cmp(l)&&(N+=8);break;case"05":L=x.mod(r),L.cmp(B)&&L.cmp(I)&&(N+=8);break;default:N+=4}return v[K]=N,N}function M(x,D,S){this.setGenerator(D),this.__prime=new o(x),this._prime=o.mont(this.__prime),this._primeLen=x.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,S?(this.setPublicKey=d,this.setPrivateKey=y):this._primeCode=8}Object.defineProperty(M.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=w(this.__prime,this.__gen)),this._primeCode}}),M.prototype.generateKeys=function(){return this._priv||(this._priv=new o(Q(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},M.prototype.computeSecret=function(x){x=new o(x),x=x.toRed(this._prime);var D=x.redPow(this._priv).fromRed(),S=new Buffer(D.toArray()),K=this.getPrime();if(S.length"u"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?IC.exports={nextTick:o}:IC.exports=process;function o(i,s,f,l){if(typeof i!="function")throw new TypeError('"callback" argument must be a function');var r=arguments.length,B,I;switch(r){case 0:case 1:return process.nextTick(i);case 2:return process.nextTick(function(){i.call(null,s)});case 3:return process.nextTick(function(){i.call(null,s,f)});case 4:return process.nextTick(function(){i.call(null,s,f,l)});default:for(B=new Array(r-1),I=0;I"u"}oi.isPrimitive=w,oi.isBuffer=mr().Buffer.isBuffer;function M(m){return Object.prototype.toString.call(m)}return oi}var Ax={exports:{}},iz;function d_e(){return iz||(iz=1,function(o){function i(r,B){if(!(r instanceof B))throw new TypeError("Cannot call a class as a function")}var s=C_().Buffer,f=tA;function l(r,B,I){r.copy(B,I)}o.exports=function(){function r(){i(this,r),this.head=null,this.tail=null,this.length=0}return r.prototype.push=function(I){var p={data:I,next:null};this.length>0?this.tail.next=p:this.head=p,this.tail=p,++this.length},r.prototype.unshift=function(I){var p={data:I,next:this.head};this.length===0&&(this.tail=p),this.head=p,++this.length},r.prototype.shift=function(){if(this.length!==0){var I=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,I}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(I){if(this.length===0)return"";for(var p=this.head,Q=""+p.data;p=p.next;)Q+=I+p.data;return Q},r.prototype.concat=function(I){if(this.length===0)return s.alloc(0);for(var p=s.allocUnsafe(I>>>0),Q=this.head,d=0;Q;)l(Q.data,p,d),d+=Q.data.length,Q=Q.next;return p},r}(),f&&f.inspect&&f.inspect.custom&&(o.exports.prototype[f.inspect.custom]=function(){var r=f.inspect({length:this.length});return this.constructor.name+" "+r})}(Ax)),Ax.exports}var rx,nz;function Nse(){if(nz)return rx;nz=1;var o=ny();function i(l,r){var B=this,I=this._readableState&&this._readableState.destroyed,p=this._writableState&&this._writableState.destroyed;return I||p?(r?r(l):l&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,o.nextTick(f,this,l)):o.nextTick(f,this,l)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(l||null,function(Q){!r&&Q?B._writableState?B._writableState.errorEmitted||(B._writableState.errorEmitted=!0,o.nextTick(f,B,Q)):o.nextTick(f,B,Q):r&&r(Q)}),this)}function s(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function f(l,r){l.emit("error",r)}return rx={destroy:i,undestroy:s},rx}var ix,oz;function _se(){if(oz)return ix;oz=1;var o=ny();ix=m;function i(c){var C=this;this.next=null,this.entry=null,this.finish=function(){h(C,c)}}var s=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:o.nextTick,f;m.WritableState=w;var l=Object.create(bd());l.inherits=oA();var r={deprecate:sse()},B=kse(),I=C_().Buffer,p=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Q(c){return I.from(c)}function d(c){return I.isBuffer(c)||c instanceof p}var y=Nse();l.inherits(m,B);function v(){}function w(c,C){f=f||Vg(),c=c||{};var g=C instanceof f;this.objectMode=!!c.objectMode,g&&(this.objectMode=this.objectMode||!!c.writableObjectMode);var t=c.highWaterMark,u=c.writableHighWaterMark,b=this.objectMode?16:16*1024;t||t===0?this.highWaterMark=t:g&&(u||u===0)?this.highWaterMark=u:this.highWaterMark=b,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var R=c.decodeStrings===!1;this.decodeStrings=!R,this.defaultEncoding=c.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(T){re(C,T)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}w.prototype.getBuffer=function(){for(var C=this.bufferedRequest,g=[];C;)g.push(C),C=C.next;return g},function(){try{Object.defineProperty(w.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var M;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(M=Function.prototype[Symbol.hasInstance],Object.defineProperty(m,Symbol.hasInstance,{value:function(c){return M.call(this,c)?!0:this!==m?!1:c&&c._writableState instanceof w}})):M=function(c){return c instanceof this};function m(c){if(f=f||Vg(),!M.call(m,this)&&!(this instanceof f))return new m(c);this._writableState=new w(c,this),this.writable=!0,c&&(typeof c.write=="function"&&(this._write=c.write),typeof c.writev=="function"&&(this._writev=c.writev),typeof c.destroy=="function"&&(this._destroy=c.destroy),typeof c.final=="function"&&(this._final=c.final)),B.call(this)}m.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function x(c,C){var g=new Error("write after end");c.emit("error",g),o.nextTick(C,g)}function D(c,C,g,t){var u=!0,b=!1;return g===null?b=new TypeError("May not write null values to stream"):typeof g!="string"&&g!==void 0&&!C.objectMode&&(b=new TypeError("Invalid non-string/buffer chunk")),b&&(c.emit("error",b),o.nextTick(t,b),u=!1),u}m.prototype.write=function(c,C,g){var t=this._writableState,u=!1,b=!t.objectMode&&d(c);return b&&!I.isBuffer(c)&&(c=Q(c)),typeof C=="function"&&(g=C,C=null),b?C="buffer":C||(C=t.defaultEncoding),typeof g!="function"&&(g=v),t.ended?x(this,g):(b||D(this,t,c,g))&&(t.pendingcb++,u=K(this,t,b,c,C,g)),u},m.prototype.cork=function(){var c=this._writableState;c.corked++},m.prototype.uncork=function(){var c=this._writableState;c.corked&&(c.corked--,!c.writing&&!c.corked&&!c.bufferProcessing&&c.bufferedRequest&&Ae(this,c))},m.prototype.setDefaultEncoding=function(C){if(typeof C=="string"&&(C=C.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((C+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+C);return this._writableState.defaultEncoding=C,this};function S(c,C,g){return!c.objectMode&&c.decodeStrings!==!1&&typeof C=="string"&&(C=I.from(C,g)),C}Object.defineProperty(m.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function K(c,C,g,t,u,b){if(!g){var R=S(C,t,u);t!==R&&(g=!0,u="buffer",t=R)}var T=C.objectMode?1:t.length;C.length+=T;var V=C.length>5===6?2:D>>4===14?3:D>>3===30?4:D>>6===2?-1:-2}function B(D,S,K){var N=S.length-1;if(N=0?(L>0&&(D.lastNeed=L-1),L):--N=0?(L>0&&(D.lastNeed=L-2),L):--N=0?(L>0&&(L===2?L=0:D.lastNeed=L-3),L):0))}function I(D,S,K){if((S[0]&192)!==128)return D.lastNeed=0,"�";if(D.lastNeed>1&&S.length>1){if((S[1]&192)!==128)return D.lastNeed=1,"�";if(D.lastNeed>2&&S.length>2&&(S[2]&192)!==128)return D.lastNeed=2,"�"}}function p(D){var S=this.lastTotal-this.lastNeed,K=I(this,D);if(K!==void 0)return K;if(this.lastNeed<=D.length)return D.copy(this.lastChar,S,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);D.copy(this.lastChar,S,0,D.length),this.lastNeed-=D.length}function Q(D,S){var K=B(this,D,S);if(!this.lastNeed)return D.toString("utf8",S);this.lastTotal=K;var N=D.length-(K-this.lastNeed);return D.copy(this.lastChar,0,N),D.toString("utf8",S,N)}function d(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+"�":S}function y(D,S){if((D.length-S)%2===0){var K=D.toString("utf16le",S);if(K){var N=K.charCodeAt(K.length-1);if(N>=55296&&N<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1],K.slice(0,-1)}return K}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=D[D.length-1],D.toString("utf16le",S,D.length-1)}function v(D){var S=D&&D.length?this.write(D):"";if(this.lastNeed){var K=this.lastTotal-this.lastNeed;return S+this.lastChar.toString("utf16le",0,K)}return S}function w(D,S){var K=(D.length-S)%3;return K===0?D.toString("base64",S):(this.lastNeed=3-K,this.lastTotal=3,K===1?this.lastChar[0]=D[D.length-1]:(this.lastChar[0]=D[D.length-2],this.lastChar[1]=D[D.length-1]),D.toString("base64",S,D.length-K))}function M(D){var S=D&&D.length?this.write(D):"";return this.lastNeed?S+this.lastChar.toString("base64",0,3-this.lastNeed):S}function m(D){return D.toString(this.encoding)}function x(D){return D&&D.length?this.write(D):""}return ox}var ax,gz;function Kse(){if(gz)return ax;gz=1;var o=ny();ax=S;var i=l_e(),s;S.ReadableState=D,Na().EventEmitter;var f=function(F,Y){return F.listeners(Y).length},l=kse(),r=C_().Buffer,B=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function I(F){return r.from(F)}function p(F){return r.isBuffer(F)||F instanceof B}var Q=Object.create(bd());Q.inherits=oA();var d=tA,y=void 0;d&&d.debuglog?y=d.debuglog("stream"):y=function(){};var v=d_e(),w=Nse(),M;Q.inherits(S,l);var m=["error","close","destroy","pause","resume"];function x(F,Y,W){if(typeof F.prependListener=="function")return F.prependListener(Y,W);!F._events||!F._events[Y]?F.on(Y,W):i(F._events[Y])?F._events[Y].unshift(W):F._events[Y]=[W,F._events[Y]]}function D(F,Y){s=s||Vg(),F=F||{};var W=Y instanceof s;this.objectMode=!!F.objectMode,W&&(this.objectMode=this.objectMode||!!F.readableObjectMode);var te=F.highWaterMark,z=F.readableHighWaterMark,q=this.objectMode?16:16*1024;te||te===0?this.highWaterMark=te:W&&(z||z===0)?this.highWaterMark=z:this.highWaterMark=q,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=F.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,F.encoding&&(M||(M=hz().StringDecoder),this.decoder=new M(F.encoding),this.encoding=F.encoding)}function S(F){if(s=s||Vg(),!(this instanceof S))return new S(F);this._readableState=new D(F,this),this.readable=!0,F&&(typeof F.read=="function"&&(this._read=F.read),typeof F.destroy=="function"&&(this._destroy=F.destroy)),l.call(this)}Object.defineProperty(S.prototype,"destroyed",{get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(F){this._readableState&&(this._readableState.destroyed=F)}}),S.prototype.destroy=w.destroy,S.prototype._undestroy=w.undestroy,S.prototype._destroy=function(F,Y){this.push(null),Y(F)},S.prototype.push=function(F,Y){var W=this._readableState,te;return W.objectMode?te=!0:typeof F=="string"&&(Y=Y||W.defaultEncoding,Y!==W.encoding&&(F=r.from(F,Y),Y=""),te=!0),K(this,F,Y,!1,te)},S.prototype.unshift=function(F){return K(this,F,null,!0,!1)};function K(F,Y,W,te,z){var q=F._readableState;if(Y===null)q.reading=!1,Ae(F,q);else{var $;z||($=L(q,Y)),$?F.emit("error",$):q.objectMode||Y&&Y.length>0?(typeof Y!="string"&&!q.objectMode&&Object.getPrototypeOf(Y)!==r.prototype&&(Y=I(Y)),te?q.endEmitted?F.emit("error",new Error("stream.unshift() after end event")):N(F,q,Y,!0):q.ended?F.emit("error",new Error("stream.push() after EOF")):(q.reading=!1,q.decoder&&!W?(Y=q.decoder.write(Y),q.objectMode||Y.length!==0?N(F,q,Y,!1):A(F,q)):N(F,q,Y,!1))):te||(q.reading=!1)}return j(q)}function N(F,Y,W,te){Y.flowing&&Y.length===0&&!Y.sync?(F.emit("data",W),F.read(0)):(Y.length+=Y.objectMode?1:W.length,te?Y.buffer.unshift(W):Y.buffer.push(W),Y.needReadable&&E(F)),A(F,Y)}function L(F,Y){var W;return!p(Y)&&typeof Y!="string"&&Y!==void 0&&!F.objectMode&&(W=new TypeError("Invalid non-string/buffer chunk")),W}function j(F){return!F.ended&&(F.needReadable||F.length=re?F=re:(F--,F|=F>>>1,F|=F>>>2,F|=F>>>4,F|=F>>>8,F|=F>>>16,F++),F}function J(F,Y){return F<=0||Y.length===0&&Y.ended?0:Y.objectMode?1:F!==F?Y.flowing&&Y.length?Y.buffer.head.data.length:Y.length:(F>Y.highWaterMark&&(Y.highWaterMark=Z(F)),F<=Y.length?F:Y.ended?Y.length:(Y.needReadable=!0,0))}S.prototype.read=function(F){y("read",F),F=parseInt(F,10);var Y=this._readableState,W=F;if(F!==0&&(Y.emittedReadable=!1),F===0&&Y.needReadable&&(Y.length>=Y.highWaterMark||Y.ended))return y("read: emitReadable",Y.length,Y.ended),Y.length===0&&Y.ended?T(this):E(this),null;if(F=J(F,Y),F===0&&Y.ended)return Y.length===0&&T(this),null;var te=Y.needReadable;y("need readable",te),(Y.length===0||Y.length-F0?z=t(F,Y):z=null,z===null?(Y.needReadable=!0,F=0):Y.length-=F,Y.length===0&&(Y.ended||(Y.needReadable=!0),W!==F&&Y.ended&&T(this)),z!==null&&this.emit("data",z),z};function Ae(F,Y){if(!Y.ended){if(Y.decoder){var W=Y.decoder.end();W&&W.length&&(Y.buffer.push(W),Y.length+=Y.objectMode?1:W.length)}Y.ended=!0,E(F)}}function E(F){var Y=F._readableState;Y.needReadable=!1,Y.emittedReadable||(y("emitReadable",Y.flowing),Y.emittedReadable=!0,Y.sync?o.nextTick(e,F):e(F))}function e(F){y("emit readable"),F.emit("readable"),g(F)}function A(F,Y){Y.readingMore||(Y.readingMore=!0,o.nextTick(n,F,Y))}function n(F,Y){for(var W=Y.length;!Y.reading&&!Y.flowing&&!Y.ended&&Y.length1&&P(te.pipes,F)!==-1)&&!he&&(y("false write response, pause",te.awaitDrain),te.awaitDrain++,se=!0),W.pause())}function Ue(ue){y("onerror",ue),Te(),F.removeListener("error",Ue),f(F,"error")===0&&F.emit("error",ue)}x(F,"error",Ue);function fe(){F.removeListener("finish",ce),Te()}F.once("close",fe);function ce(){y("onfinish"),F.removeListener("close",fe),Te()}F.once("finish",ce);function Te(){y("unpipe"),W.unpipe(F)}return F.emit("pipe",W),te.flowing||(y("pipe resume"),W.resume()),F};function a(F){return function(){var Y=F._readableState;y("pipeOnDrain",Y.awaitDrain),Y.awaitDrain&&Y.awaitDrain--,Y.awaitDrain===0&&f(F,"data")&&(Y.flowing=!0,g(F))}}S.prototype.unpipe=function(F){var Y=this._readableState,W={hasUnpiped:!1};if(Y.pipesCount===0)return this;if(Y.pipesCount===1)return F&&F!==Y.pipes?this:(F||(F=Y.pipes),Y.pipes=null,Y.pipesCount=0,Y.flowing=!1,F&&F.emit("unpipe",this,W),this);if(!F){var te=Y.pipes,z=Y.pipesCount;Y.pipes=null,Y.pipesCount=0,Y.flowing=!1;for(var q=0;q=Y.length?(Y.decoder?W=Y.buffer.join(""):Y.buffer.length===1?W=Y.buffer.head.data:W=Y.buffer.concat(Y.length),Y.buffer.clear()):W=u(F,Y.buffer,Y.decoder),W}function u(F,Y,W){var te;return Fq.length?q.length:F;if($===q.length?z+=q:z+=q.slice(0,F),F-=$,F===0){$===q.length?(++te,W.next?Y.head=W.next:Y.head=Y.tail=null):(Y.head=W,W.data=q.slice($));break}++te}return Y.length-=te,z}function R(F,Y){var W=r.allocUnsafe(F),te=Y.head,z=1;for(te.data.copy(W),F-=te.data.length;te=te.next;){var q=te.data,$=F>q.length?q.length:F;if(q.copy(W,W.length-F,0,$),F-=$,F===0){$===q.length?(++z,te.next?Y.head=te.next:Y.head=Y.tail=null):(Y.head=te,te.data=q.slice($));break}++z}return Y.length-=z,W}function T(F){var Y=F._readableState;if(Y.length>0)throw new Error('"endReadable()" called on non-empty stream');Y.endEmitted||(Y.ended=!0,o.nextTick(V,Y,F))}function V(F,Y){!F.endEmitted&&F.length===0&&(F.endEmitted=!0,Y.readable=!1,Y.emit("end"))}function P(F,Y){for(var W=0,te=F.length;W=0||!p.umod(B.prime1)||!p.umod(B.prime2));return p}function l(B){var I=f(B),p=I.toRed(o.mont(B.modulus)).redPow(new o(B.publicExponent)).fromRed();return{blinder:p,unblinder:I.invm(B.modulus)}}function r(B,I){var p=l(I),Q=I.modulus.byteLength(),d=new o(B).mul(p.blinder).umod(I.modulus),y=d.toRed(o.mont(I.prime1)),v=d.toRed(o.mont(I.prime2)),w=I.coefficient,M=I.prime1,m=I.prime2,x=y.redPow(I.exponent1).fromRed(),D=v.redPow(I.exponent2).fromRed(),S=x.isub(D).imul(w).umod(M).imul(m);return D.iadd(S).imul(p.unblinder).umod(I.modulus).toArrayLike(s,"be",Q)}return r.getr=f,hx=r,hx}var jn={},gx={},wE={exports:{}},E_e=wE.exports,Iz;function p_e(){return Iz||(Iz=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,E_e)}(wE)),wE.exports}var ux={},Bz;function Q_e(){return Bz||(Bz=1,function(o){var i=Dd(),s=oA(),f=o;f.define=function(B,I){return new l(B,I)};function l(r,B){this.name=r,this.body=B,this.decoders={},this.encoders={}}l.prototype._createNamed=function(B){var I;try{I=tA.runInThisContext("(function "+this.name+`(entity) { - this._initNamed(entity); -})`)}catch{I=function(Q){this._initNamed(Q)}}return s(I,B),I.prototype._initNamed=function(Q){B.call(this,Q)},new I(this)},l.prototype._getDecoder=function(B){return B=B||"der",this.decoders.hasOwnProperty(B)||(this.decoders[B]=this._createNamed(i.decoders[B])),this.decoders[B]},l.prototype.decode=function(B,I,p){return this._getDecoder(I).decode(B,p)},l.prototype._getEncoder=function(B){return B=B||"der",this.encoders.hasOwnProperty(B)||(this.encoders[B]=this._createNamed(i.encoders[B])),this.encoders[B]},l.prototype.encode=function(B,I,p){return this._getEncoder(I).encode(B,p)}}(ux)),ux}var cx={},lx={},Cz;function y_e(){if(Cz)return lx;Cz=1;var o=oA();function i(f){this._reporterState={obj:null,path:[],options:f||{},errors:[]}}lx.Reporter=i,i.prototype.isError=function(l){return l instanceof s},i.prototype.save=function(){var l=this._reporterState;return{obj:l.obj,pathLen:l.path.length}},i.prototype.restore=function(l){var r=this._reporterState;r.obj=l.obj,r.path=r.path.slice(0,l.pathLen)},i.prototype.enterKey=function(l){return this._reporterState.path.push(l)},i.prototype.exitKey=function(l){var r=this._reporterState;r.path=r.path.slice(0,l-1)},i.prototype.leaveKey=function(l,r,B){var I=this._reporterState;this.exitKey(l),I.obj!==null&&(I.obj[r]=B)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){var l=this._reporterState,r=l.obj;return l.obj={},r},i.prototype.leaveObject=function(l){var r=this._reporterState,B=r.obj;return r.obj=l,B},i.prototype.error=function(l){var r,B=this._reporterState,I=l instanceof s;if(I?r=l:r=new s(B.path.map(function(p){return"["+JSON.stringify(p)+"]"}).join(""),l.message||l,l.stack),!B.options.partial)throw r;return I||B.errors.push(r),r},i.prototype.wrapResult=function(l){var r=this._reporterState;return r.options.partial?{result:this.isError(l)?null:l,errors:r.errors}:l};function s(f,l){this.path=f,this.rethrow(l)}return o(s,Error),s.prototype.rethrow=function(l){if(this.message=l+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,s),!this.stack)try{throw new Error(this.message)}catch(r){this.stack=r.stack}return this},lx}var EC={},Ez;function pz(){if(Ez)return EC;Ez=1;var o=oA(),i=Zc().Reporter,s=mr().Buffer;function f(r,B){if(i.call(this,B),!s.isBuffer(r)){this.error("Input not Buffer");return}this.base=r,this.offset=0,this.length=r.length}o(f,i),EC.DecoderBuffer=f,f.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},f.prototype.restore=function(B){var I=new f(this.base);return I.offset=B.offset,I.length=this.offset,this.offset=B.offset,i.prototype.restore.call(this,B.reporter),I},f.prototype.isEmpty=function(){return this.offset===this.length},f.prototype.readUInt8=function(B){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(B||"DecoderBuffer overrun")},f.prototype.skip=function(B,I){if(!(this.offset+B<=this.length))return this.error(I||"DecoderBuffer overrun");var p=new f(this.base);return p._reporterState=this._reporterState,p.offset=this.offset,p.length=this.offset+B,this.offset+=B,p},f.prototype.raw=function(B){return this.base.slice(B?B.offset:this.offset,this.length)};function l(r,B){if(Array.isArray(r))this.length=0,this.value=r.map(function(I){return I instanceof l||(I=new l(I,B)),this.length+=I.length,I},this);else if(typeof r=="number"){if(!(0<=r&&r<=255))return B.error("non-byte EncoderBuffer value");this.value=r,this.length=1}else if(typeof r=="string")this.value=r,this.length=s.byteLength(r);else if(s.isBuffer(r))this.value=r,this.length=r.length;else return B.error("Unsupported type: "+typeof r)}return EC.EncoderBuffer=l,l.prototype.join=function(B,I){return B||(B=new s(this.length)),I||(I=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(p){p.join(B,I),I+=p.length}):(typeof this.value=="number"?B[I]=this.value:typeof this.value=="string"?B.write(this.value,I):s.isBuffer(this.value)&&this.value.copy(B,I),I+=this.length)),B},EC}var dx,Qz;function v_e(){if(Qz)return dx;Qz=1;var o=Zc().Reporter,i=Zc().EncoderBuffer,s=Zc().DecoderBuffer,f=Qo(),l=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],r=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(l),B=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function I(Q,d){var y={};this._baseState=y,y.enc=Q,y.parent=d||null,y.children=null,y.tag=null,y.args=null,y.reverseArgs=null,y.choice=null,y.optional=!1,y.any=!1,y.obj=!1,y.use=null,y.useDecoder=null,y.key=null,y.default=null,y.explicit=null,y.implicit=null,y.contains=null,y.parent||(y.children=[],this._wrap())}dx=I;var p=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];return I.prototype.clone=function(){var d=this._baseState,y={};p.forEach(function(w){y[w]=d[w]});var v=new this.constructor(y.parent);return v._baseState=y,v},I.prototype._wrap=function(){var d=this._baseState;r.forEach(function(y){this[y]=function(){var w=new this.constructor(this);return d.children.push(w),w[y].apply(w,arguments)}},this)},I.prototype._init=function(d){var y=this._baseState;f(y.parent===null),d.call(this),y.children=y.children.filter(function(v){return v._baseState.parent===this},this),f.equal(y.children.length,1,"Root node can have only one child")},I.prototype._useArgs=function(d){var y=this._baseState,v=d.filter(function(w){return w instanceof this.constructor},this);d=d.filter(function(w){return!(w instanceof this.constructor)},this),v.length!==0&&(f(y.children===null),y.children=v,v.forEach(function(w){w._baseState.parent=this},this)),d.length!==0&&(f(y.args===null),y.args=d,y.reverseArgs=d.map(function(w){if(typeof w!="object"||w.constructor!==Object)return w;var M={};return Object.keys(w).forEach(function(m){m==(m|0)&&(m|=0);var x=w[m];M[x]=m}),M}))},B.forEach(function(Q){I.prototype[Q]=function(){var y=this._baseState;throw new Error(Q+" not implemented for encoding: "+y.enc)}}),l.forEach(function(Q){I.prototype[Q]=function(){var y=this._baseState,v=Array.prototype.slice.call(arguments);return f(y.tag===null),y.tag=Q,this._useArgs(v),this}}),I.prototype.use=function(d){f(d);var y=this._baseState;return f(y.use===null),y.use=d,this},I.prototype.optional=function(){var d=this._baseState;return d.optional=!0,this},I.prototype.def=function(d){var y=this._baseState;return f(y.default===null),y.default=d,y.optional=!0,this},I.prototype.explicit=function(d){var y=this._baseState;return f(y.explicit===null&&y.implicit===null),y.explicit=d,this},I.prototype.implicit=function(d){var y=this._baseState;return f(y.explicit===null&&y.implicit===null),y.implicit=d,this},I.prototype.obj=function(){var d=this._baseState,y=Array.prototype.slice.call(arguments);return d.obj=!0,y.length!==0&&this._useArgs(y),this},I.prototype.key=function(d){var y=this._baseState;return f(y.key===null),y.key=d,this},I.prototype.any=function(){var d=this._baseState;return d.any=!0,this},I.prototype.choice=function(d){var y=this._baseState;return f(y.choice===null),y.choice=d,this._useArgs(Object.keys(d).map(function(v){return d[v]})),this},I.prototype.contains=function(d){var y=this._baseState;return f(y.use===null),y.contains=d,this},I.prototype._decode=function(d,y){var v=this._baseState;if(v.parent===null)return d.wrapResult(v.children[0]._decode(d,y));var w=v.default,M=!0,m=null;if(v.key!==null&&(m=d.enterKey(v.key)),v.optional){var x=null;if(v.explicit!==null?x=v.explicit:v.implicit!==null?x=v.implicit:v.tag!==null&&(x=v.tag),x===null&&!v.any){var D=d.save();try{v.choice===null?this._decodeGeneric(v.tag,d,y):this._decodeChoice(d,y),M=!0}catch{M=!1}d.restore(D)}else if(M=this._peekTag(d,x,v.any),d.isError(M))return M}var S;if(v.obj&&M&&(S=d.enterObject()),M){if(v.explicit!==null){var K=this._decodeTag(d,v.explicit);if(d.isError(K))return K;d=K}var N=d.offset;if(v.use===null&&v.choice===null){if(v.any)var D=d.save();var L=this._decodeTag(d,v.implicit!==null?v.implicit:v.tag,v.any);if(d.isError(L))return L;v.any?w=d.raw(D):d=L}if(y&&y.track&&v.tag!==null&&y.track(d.path(),N,d.length,"tagged"),y&&y.track&&v.tag!==null&&y.track(d.path(),d.offset,d.length,"content"),v.any?w=w:v.choice===null?w=this._decodeGeneric(v.tag,d,y):w=this._decodeChoice(d,y),d.isError(w))return w;if(!v.any&&v.choice===null&&v.children!==null&&v.children.forEach(function(Z){Z._decode(d,y)}),v.contains&&(v.tag==="octstr"||v.tag==="bitstr")){var j=new s(w);w=this._getUse(v.contains,d._reporterState.obj)._decode(j,y)}}return v.obj&&M&&(w=d.leaveObject(S)),v.key!==null&&(w!==null||M===!0)?d.leaveKey(m,v.key,w):m!==null&&d.exitKey(m),w},I.prototype._decodeGeneric=function(d,y,v){var w=this._baseState;return d==="seq"||d==="set"?null:d==="seqof"||d==="setof"?this._decodeList(y,d,w.args[0],v):/str$/.test(d)?this._decodeStr(y,d,v):d==="objid"&&w.args?this._decodeObjid(y,w.args[0],w.args[1],v):d==="objid"?this._decodeObjid(y,null,null,v):d==="gentime"||d==="utctime"?this._decodeTime(y,d,v):d==="null_"?this._decodeNull(y,v):d==="bool"?this._decodeBool(y,v):d==="objDesc"?this._decodeStr(y,d,v):d==="int"||d==="enum"?this._decodeInt(y,w.args&&w.args[0],v):w.use!==null?this._getUse(w.use,y._reporterState.obj)._decode(y,v):y.error("unknown tag: "+d)},I.prototype._getUse=function(d,y){var v=this._baseState;return v.useDecoder=this._use(d,y),f(v.useDecoder._baseState.parent===null),v.useDecoder=v.useDecoder._baseState.children[0],v.implicit!==v.useDecoder._baseState.implicit&&(v.useDecoder=v.useDecoder.clone(),v.useDecoder._baseState.implicit=v.implicit),v.useDecoder},I.prototype._decodeChoice=function(d,y){var v=this._baseState,w=null,M=!1;return Object.keys(v.choice).some(function(m){var x=d.save(),D=v.choice[m];try{var S=D._decode(d,y);if(d.isError(S))return!1;w={type:m,value:S},M=!0}catch{return d.restore(x),!1}return!0},this),M?w:d.error("Choice not matched")},I.prototype._createEncoderBuffer=function(d){return new i(d,this.reporter)},I.prototype._encode=function(d,y,v){var w=this._baseState;if(!(w.default!==null&&w.default===d)){var M=this._encodeValue(d,y,v);if(M!==void 0&&!this._skipDefault(M,y,v))return M}},I.prototype._encodeValue=function(d,y,v){var w=this._baseState;if(w.parent===null)return w.children[0]._encode(d,y||new o);var D=null;if(this.reporter=y,w.optional&&d===void 0)if(w.default!==null)d=w.default;else return;var M=null,m=!1;if(w.any)D=this._createEncoderBuffer(d);else if(w.choice)D=this._encodeChoice(d,y);else if(w.contains)M=this._getUse(w.contains,v)._encode(d,y),m=!0;else if(w.children)M=w.children.map(function(N){if(N._baseState.tag==="null_")return N._encode(null,y,d);if(N._baseState.key===null)return y.error("Child should have a key");var L=y.enterKey(N._baseState.key);if(typeof d!="object")return y.error("Child expected, but input is not object");var j=N._encode(d[N._baseState.key],y,d);return y.leaveKey(L),j},this).filter(function(N){return N}),M=this._createEncoderBuffer(M);else if(w.tag==="seqof"||w.tag==="setof"){if(!(w.args&&w.args.length===1))return y.error("Too many args for : "+w.tag);if(!Array.isArray(d))return y.error("seqof/setof, but data is not Array");var x=this.clone();x._baseState.implicit=null,M=this._createEncoderBuffer(d.map(function(N){var L=this._baseState;return this._getUse(L.args[0],d)._encode(N,y)},x))}else w.use!==null?D=this._getUse(w.use,v)._encode(d,y):(M=this._encodePrimitive(w.tag,d),m=!0);var D;if(!w.any&&w.choice===null){var S=w.implicit!==null?w.implicit:w.tag,K=w.implicit===null?"universal":"context";S===null?w.use===null&&y.error("Tag could be omitted only for .use()"):w.use===null&&(D=this._encodeComposite(S,m,K,M))}return w.explicit!==null&&(D=this._encodeComposite(w.explicit,!1,"context",D)),D},I.prototype._encodeChoice=function(d,y){var v=this._baseState,w=v.choice[d.type];return w||f(!1,d.type+" not found in "+JSON.stringify(Object.keys(v.choice))),w._encode(d.value,y)},I.prototype._encodePrimitive=function(d,y){var v=this._baseState;if(/str$/.test(d))return this._encodeStr(y,d);if(d==="objid"&&v.args)return this._encodeObjid(y,v.reverseArgs[0],v.args[1]);if(d==="objid")return this._encodeObjid(y,null,null);if(d==="gentime"||d==="utctime")return this._encodeTime(y,d);if(d==="null_")return this._encodeNull();if(d==="int"||d==="enum")return this._encodeInt(y,v.args&&v.reverseArgs[0]);if(d==="bool")return this._encodeBool(y);if(d==="objDesc")return this._encodeStr(y,d);throw new Error("Unsupported tag: "+d)},I.prototype._isNumstr=function(d){return/^[0-9 ]*$/.test(d)},I.prototype._isPrintstr=function(d){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(d)},dx}var yz;function Zc(){return yz||(yz=1,function(o){var i=o;i.Reporter=y_e().Reporter,i.DecoderBuffer=pz().DecoderBuffer,i.EncoderBuffer=pz().EncoderBuffer,i.Node=v_e()}(cx)),cx}var Ix={},Bx={},vz;function w_e(){return vz||(vz=1,function(o){var i=Gse();o.tagClass={0:"universal",1:"application",2:"context",3:"private"},o.tagClassByName=i._reverse(o.tagClass),o.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},o.tagByName=i._reverse(o.tag)}(Bx)),Bx}var wz;function Gse(){return wz||(wz=1,function(o){var i=o;i._reverse=function(f){var l={};return Object.keys(f).forEach(function(r){(r|0)==r&&(r=r|0);var B=f[r];l[B]=r}),l},i.der=w_e()}(Ix)),Ix}var Cx={},Ex,mz;function Lse(){if(mz)return Ex;mz=1;var o=oA(),i=Dd(),s=i.base,f=i.bignum,l=i.constants.der;function r(Q){this.enc="der",this.name=Q.name,this.entity=Q,this.tree=new B,this.tree._init(Q.body)}Ex=r,r.prototype.decode=function(d,y){return d instanceof s.DecoderBuffer||(d=new s.DecoderBuffer(d,y)),this.tree._decode(d,y)};function B(Q){s.Node.call(this,"der",Q)}o(B,s.Node),B.prototype._peekTag=function(d,y,v){if(d.isEmpty())return!1;var w=d.save(),M=I(d,'Failed to peek tag: "'+y+'"');return d.isError(M)?M:(d.restore(w),M.tag===y||M.tagStr===y||M.tagStr+"of"===y||v)},B.prototype._decodeTag=function(d,y,v){var w=I(d,'Failed to decode tag of "'+y+'"');if(d.isError(w))return w;var M=p(d,w.primitive,'Failed to get length of "'+y+'"');if(d.isError(M))return M;if(!v&&w.tag!==y&&w.tagStr!==y&&w.tagStr+"of"!==y)return d.error('Failed to match tag: "'+y+'"');if(w.primitive||M!==null)return d.skip(M,'Failed to match body of: "'+y+'"');var m=d.save(),x=this._skipUntilEnd(d,'Failed to skip indefinite length body: "'+this.tag+'"');return d.isError(x)?x:(M=d.offset-m.offset,d.restore(m),d.skip(M,'Failed to match body of: "'+y+'"'))},B.prototype._skipUntilEnd=function(d,y){for(;;){var v=I(d,y);if(d.isError(v))return v;var w=p(d,v.primitive,y);if(d.isError(w))return w;var M;if(v.primitive||w!==null?M=d.skip(w):M=this._skipUntilEnd(d,y),d.isError(M))return M;if(v.tagStr==="end")break}},B.prototype._decodeList=function(d,y,v,w){for(var M=[];!d.isEmpty();){var m=this._peekTag(d,"end");if(d.isError(m))return m;var x=v.decode(d,"der",w);if(d.isError(x)&&m)break;M.push(x)}return M},B.prototype._decodeStr=function(d,y){if(y==="bitstr"){var v=d.readUInt8();return d.isError(v)?v:{unused:v,data:d.raw()}}else if(y==="bmpstr"){var w=d.raw();if(w.length%2===1)return d.error("Decoding of string type: bmpstr length mismatch");for(var M="",m=0;m>6],w=(y&32)===0;if((y&31)===31){var M=y;for(y=0;(M&128)===128;){if(M=Q.readUInt8(d),Q.isError(M))return M;y<<=7,y|=M&127}}else y&=31;var m=l.tag[y];return{cls:v,primitive:w,tag:y,tagStr:m}}function p(Q,d,y){var v=Q.readUInt8(y);if(Q.isError(v))return v;if(!d&&v===128)return null;if(!(v&128))return v;var w=v&127;if(w>4)return Q.error("length octect is too long");v=0;for(var M=0;M=256;x>>=8)m++;var D=new i(2+m);D[0]=M,D[1]=128|m;for(var x=1+m,S=w.length;S>0;x--,S>>=8)D[x]=S&255;return this._createEncoderBuffer([D,w])},B.prototype._encodeStr=function(d,y){if(y==="bitstr")return this._createEncoderBuffer([d.unused|0,d.data]);if(y==="bmpstr"){for(var v=new i(d.length*2),w=0;w=40)return this.reporter.error("Second objid identifier OOB");d.splice(0,2,d[0]*40+d[1])}for(var M=0,w=0;w=128;m>>=7)M++}for(var x=new i(M),D=x.length-1,w=d.length-1;w>=0;w--){var m=d[w];for(x[D--]=m&127;(m>>=7)>0;)x[D--]=128|m&127}return this._createEncoderBuffer(x)};function I(Q){return Q<10?"0"+Q:Q}B.prototype._encodeTime=function(d,y){var v,w=new Date(d);return y==="gentime"?v=[I(w.getFullYear()),I(w.getUTCMonth()+1),I(w.getUTCDate()),I(w.getUTCHours()),I(w.getUTCMinutes()),I(w.getUTCSeconds()),"Z"].join(""):y==="utctime"?v=[I(w.getFullYear()%100),I(w.getUTCMonth()+1),I(w.getUTCDate()),I(w.getUTCHours()),I(w.getUTCMinutes()),I(w.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+y+" time is not supported yet"),this._encodeStr(v,"octstr")},B.prototype._encodeNull=function(){return this._createEncoderBuffer("")},B.prototype._encodeInt=function(d,y){if(typeof d=="string"){if(!y)return this.reporter.error("String int or enum given, but no values map");if(!y.hasOwnProperty(d))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(d));d=y[d]}if(typeof d!="number"&&!i.isBuffer(d)){var v=d.toArray();!d.sign&&v[0]&128&&v.unshift(0),d=new i(v)}if(i.isBuffer(d)){var w=d.length;d.length===0&&w++;var m=new i(w);return d.copy(m),d.length===0&&(m[0]=0),this._createEncoderBuffer(m)}if(d<128)return this._createEncoderBuffer(d);if(d<256)return this._createEncoderBuffer([0,d]);for(var w=1,M=d;M>=256;M>>=8)w++;for(var m=new Array(w),M=m.length-1;M>=0;M--)m[M]=d&255,d>>=8;return m[0]&128&&m.unshift(0),this._createEncoderBuffer(new i(m))},B.prototype._encodeBool=function(d){return this._createEncoderBuffer(d?255:0)},B.prototype._use=function(d,y){return typeof d=="function"&&(d=d(y)),d._getEncoder("der").tree},B.prototype._skipDefault=function(d,y,v){var w=this._baseState,M;if(w.default===null)return!1;var m=d.join();if(w.defaultBuffer===void 0&&(w.defaultBuffer=this._encodeValue(w.default,y,v).join()),m.length!==w.defaultBuffer.length)return!1;for(M=0;M=31?v.error("Multi-octet tag encoding unsupported"):(d||(w|=32),w|=l.tagClassByName[y||"universal"]<<6,w)}return yx}var vx,Sz;function b_e(){if(Sz)return vx;Sz=1;var o=oA(),i=Use();function s(f){i.call(this,f),this.enc="pem"}return o(s,i),vx=s,s.prototype.encode=function(l,r){for(var B=i.prototype.encode.call(this,l),I=B.toString("base64"),p=["-----BEGIN "+r.label+"-----"],Q=0;Q0&&K.ishrn(N),K}function M(D,S){D=w(D,S),D=D.mod(S);var K=o.from(D.toArray());if(K.length=0)throw new Error("invalid sig")}return bx=r,bx}var Dx,Lz;function K_e(){if(Lz)return Dx;Lz=1;var o=aA().Buffer,i=md(),s=C_e(),f=oA(),l=N_e(),r=__e(),B=Bse;Object.keys(B).forEach(function(y){B[y].id=o.from(B[y].id,"hex"),B[y.toLowerCase()]=B[y]});function I(y){s.Writable.call(this);var v=B[y];if(!v)throw new Error("Unknown message digest");this._hashType=v.hash,this._hash=i(v.hash),this._tag=v.id,this._signType=v.sign}f(I,s.Writable),I.prototype._write=function(v,w,M){this._hash.update(v),M()},I.prototype.update=function(v,w){return this._hash.update(typeof v=="string"?o.from(v,w):v),this},I.prototype.sign=function(v,w){this.end();var M=this._hash.digest(),m=l(M,v,this._hashType,this._signType,this._tag);return w?m.toString(w):m};function p(y){s.Writable.call(this);var v=B[y];if(!v)throw new Error("Unknown message digest");this._hash=i(v.hash),this._tag=v.id,this._signType=v.sign}f(p,s.Writable),p.prototype._write=function(v,w,M){this._hash.update(v),M()},p.prototype.update=function(v,w){return this._hash.update(typeof v=="string"?o.from(v,w):v),this},p.prototype.verify=function(v,w,M){var m=typeof w=="string"?o.from(w,M):w;this.end();var x=this._hash.digest();return r(m,x,v,this._signType,this._tag)};function Q(y){return new I(y)}function d(y){return new p(y)}return Dx={Sign:Q,Verify:d,createSign:Q,createVerify:d},Dx}var mE={exports:{}},F_e=mE.exports,Uz;function G_e(){return Uz||(Uz=1,function(o){(function(i,s){function f(E,e){if(!E)throw new Error(e||"Assertion failed")}function l(E,e){E.super_=e;var A=function(){};A.prototype=e.prototype,E.prototype=new A,E.prototype.constructor=E}function r(E,e,A){if(r.isBN(E))return E;this.negative=0,this.words=null,this.length=0,this.red=null,E!==null&&((e==="le"||e==="be")&&(A=e,e=10),this._init(E||0,e||10,A||"be"))}typeof i=="object"?i.exports=r:s.BN=r,r.BN=r,r.wordSize=26;var B;try{typeof window<"u"&&typeof window.Buffer<"u"?B=window.Buffer:B=tA.Buffer}catch{}r.isBN=function(e){return e instanceof r?!0:e!==null&&typeof e=="object"&&e.constructor.wordSize===r.wordSize&&Array.isArray(e.words)},r.max=function(e,A){return e.cmp(A)>0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,F_e)}(mE)),mE.exports}var Sx,qz;function L_e(){if(qz)return Sx;qz=1;var o=sy(),i=G_e();Sx=function(B){return new f(B)};var s={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};s.p224=s.secp224r1,s.p256=s.secp256r1=s.prime256v1,s.p192=s.secp192r1=s.prime192v1,s.p384=s.secp384r1,s.p521=s.secp521r1;function f(r){this.curveType=s[r],this.curveType||(this.curveType={name:r}),this.curve=new o.ec(this.curveType.name),this.keys=void 0}f.prototype.generateKeys=function(r,B){return this.keys=this.curve.genKeyPair(),this.getPublicKey(r,B)},f.prototype.computeSecret=function(r,B,I){B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B));var p=this.curve.keyFromPublic(r).getPublic(),Q=p.mul(this.keys.getPrivate()).getX();return l(Q,I,this.curveType.byteLength)},f.prototype.getPublicKey=function(r,B){var I=this.keys.getPublic(B==="compressed",!0);return B==="hybrid"&&(I[I.length-1]%2?I[0]=7:I[0]=6),l(I,r)},f.prototype.getPrivateKey=function(r){return l(this.keys.getPrivate(),r)},f.prototype.setPublicKey=function(r,B){return B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B)),this.keys._importPublic(r),this},f.prototype.setPrivateKey=function(r,B){B=B||"utf8",Buffer.isBuffer(r)||(r=new Buffer(r,B));var I=new i(r);return I=I.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(I),this};function l(r,B,I){Array.isArray(r)||(r=r.toArray());var p=new Buffer(r);if(I&&p.length0?e:A},r.min=function(e,A){return e.cmp(A)<0?e:A},r.prototype._init=function(e,A,n){if(typeof e=="number")return this._initNumber(e,A,n);if(typeof e=="object")return this._initArray(e,A,n);A==="hex"&&(A=16),f(A===(A|0)&&A>=2&&A<=36),e=e.toString().replace(/\s+/g,"");var a=0;e[0]==="-"&&(a++,this.negative=1),a=0;a-=3)c=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[h]|=c<>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);else if(n==="le")for(a=0,h=0;a>>26-C&67108863,C+=24,C>=26&&(C-=26,h++);return this.strip()};function I(E,e){var A=E.charCodeAt(e);return A>=65&&A<=70?A-55:A>=97&&A<=102?A-87:A-48&15}function p(E,e,A){var n=I(E,A);return A-1>=e&&(n|=I(E,A-1)<<4),n}r.prototype._parseHex=function(e,A,n){this.length=Math.ceil((e.length-A)/6),this.words=new Array(this.length);for(var a=0;a=A;a-=2)C=p(e,A,a)<=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8;else{var g=e.length-A;for(a=g%2===0?A+1:A;a=18?(h-=18,c+=1,this.words[c]|=C>>>26):h+=8}this.strip()};function Q(E,e,A,n){for(var a=0,h=Math.min(E.length,A),c=e;c=49?a+=C-49+10:C>=17?a+=C-17+10:a+=C}return a}r.prototype._parseBase=function(e,A,n){this.words=[0],this.length=1;for(var a=0,h=1;h<=67108863;h*=A)a++;a--,h=h/A|0;for(var c=e.length-n,C=c%a,g=Math.min(c,c-C)+n,t=0,u=n;u1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},r.prototype.inspect=function(){return(this.red?""};var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],y=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(e,A){e=e||10,A=A|0||1;var n;if(e===16||e==="hex"){n="";for(var a=0,h=0,c=0;c>>24-a&16777215,a+=2,a>=26&&(a-=26,c--),h!==0||c!==this.length-1?n=d[6-g.length]+g+n:n=g+n}for(h!==0&&(n=h.toString(16)+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}if(e===(e|0)&&e>=2&&e<=36){var t=y[e],u=v[e];n="";var b=this.clone();for(b.negative=0;!b.isZero();){var R=b.modn(u).toString(e);b=b.idivn(u),b.isZero()?n=R+n:n=d[t-R.length]+R+n}for(this.isZero()&&(n="0"+n);n.length%A!==0;)n="0"+n;return this.negative!==0&&(n="-"+n),n}f(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var e=this.words[0];return this.length===2?e+=this.words[1]*67108864:this.length===3&&this.words[2]===1?e+=4503599627370496+this.words[1]*67108864:this.length>2&&f(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-e:e},r.prototype.toJSON=function(){return this.toString(16)},r.prototype.toBuffer=function(e,A){return f(typeof B<"u"),this.toArrayLike(B,e,A)},r.prototype.toArray=function(e,A){return this.toArrayLike(Array,e,A)},r.prototype.toArrayLike=function(e,A,n){var a=this.byteLength(),h=n||Math.max(1,a);f(a<=h,"byte array longer than desired length"),f(h>0,"Requested array length <= 0"),this.strip();var c=A==="le",C=new e(h),g,t,u=this.clone();if(c){for(t=0;!u.isZero();t++)g=u.andln(255),u.iushrn(8),C[t]=g;for(;t=4096&&(n+=13,A>>>=13),A>=64&&(n+=7,A>>>=7),A>=8&&(n+=4,A>>>=4),A>=2&&(n+=2,A>>>=2),n+A},r.prototype._zeroBits=function(e){if(e===0)return 26;var A=e,n=0;return A&8191||(n+=13,A>>>=13),A&127||(n+=7,A>>>=7),A&15||(n+=4,A>>>=4),A&3||(n+=2,A>>>=2),A&1||n++,n},r.prototype.bitLength=function(){var e=this.words[this.length-1],A=this._countBits(e);return(this.length-1)*26+A};function w(E){for(var e=new Array(E.bitLength()),A=0;A>>a}return e}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,A=0;Ae.length?this.clone().ior(e):e.clone().ior(this)},r.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},r.prototype.iuand=function(e){var A;this.length>e.length?A=e:A=this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},r.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},r.prototype.iuxor=function(e){var A,n;this.length>e.length?(A=this,n=e):(A=e,n=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},r.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},r.prototype.inotn=function(e){f(typeof e=="number"&&e>=0);var A=Math.ceil(e/26)|0,n=e%26;this._expand(A),n>0&&A--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this.strip()},r.prototype.notn=function(e){return this.clone().inotn(e)},r.prototype.setn=function(e,A){f(typeof e=="number"&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),A?this.words[n]=this.words[n]|1<e.length?(n=this,a=e):(n=e,a=this);for(var h=0,c=0;c>>26;for(;h!==0&&c>>26;if(this.length=n.length,h!==0)this.words[this.length]=h,this.length++;else if(n!==this)for(;ce.length?this.clone().iadd(e):e.clone().iadd(this)},r.prototype.isub=function(e){if(e.negative!==0){e.negative=0;var A=this.iadd(e);return e.negative=1,A._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n=this.cmp(e);if(n===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,h;n>0?(a=this,h=e):(a=e,h=this);for(var c=0,C=0;C>26,this.words[C]=A&67108863;for(;c!==0&&C>26,this.words[C]=A&67108863;if(c===0&&C>>26,b=g&67108863,R=Math.min(t,e.length-1),T=Math.max(0,t-E.length+1);T<=R;T++){var V=t-T|0;a=E.words[V]|0,h=e.words[T]|0,c=a*h+b,u+=c/67108864|0,b=c&67108863}A.words[t]=b|0,g=u|0}return g!==0?A.words[t]=g|0:A.length--,A.strip()}var m=function(e,A,n){var a=e.words,h=A.words,c=n.words,C=0,g,t,u,b=a[0]|0,R=b&8191,T=b>>>13,V=a[1]|0,P=V&8191,F=V>>>13,Y=a[2]|0,W=Y&8191,te=Y>>>13,z=a[3]|0,q=z&8191,$=z>>>13,le=a[4]|0,ae=le&8191,he=le>>>13,xe=a[5]|0,se=xe&8191,oe=xe>>>13,Ue=a[6]|0,fe=Ue&8191,ce=Ue>>>13,Te=a[7]|0,ue=Te&8191,Be=Te>>>13,Ve=a[8]|0,H=Ve&8191,k=Ve>>>13,G=a[9]|0,O=G&8191,ee=G>>>13,de=h[0]|0,ie=de&8191,Ee=de>>>13,Oe=h[1]|0,Ce=Oe&8191,Qe=Oe>>>13,Je=h[2]|0,me=Je&8191,Fe=Je>>>13,at=h[3]|0,ve=at&8191,Ke=at>>>13,nt=h[4]|0,we=nt&8191,Re=nt>>>13,Le=h[5]|0,ge=Le&8191,ye=Le>>>13,We=h[6]|0,pe=We&8191,ke=We>>>13,ot=h[7]|0,Me=ot&8191,Ne=ot>>>13,st=h[8]|0,be=st&8191,Ge=st>>>13,ft=h[9]|0,De=ft&8191,_e=ft>>>13;n.negative=e.negative^A.negative,n.length=19,g=Math.imul(R,ie),t=Math.imul(R,Ee),t=t+Math.imul(T,ie)|0,u=Math.imul(T,Ee);var At=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(At>>>26)|0,At&=67108863,g=Math.imul(P,ie),t=Math.imul(P,Ee),t=t+Math.imul(F,ie)|0,u=Math.imul(F,Ee),g=g+Math.imul(R,Ce)|0,t=t+Math.imul(R,Qe)|0,t=t+Math.imul(T,Ce)|0,u=u+Math.imul(T,Qe)|0;var tt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(tt>>>26)|0,tt&=67108863,g=Math.imul(W,ie),t=Math.imul(W,Ee),t=t+Math.imul(te,ie)|0,u=Math.imul(te,Ee),g=g+Math.imul(P,Ce)|0,t=t+Math.imul(P,Qe)|0,t=t+Math.imul(F,Ce)|0,u=u+Math.imul(F,Qe)|0,g=g+Math.imul(R,me)|0,t=t+Math.imul(R,Fe)|0,t=t+Math.imul(T,me)|0,u=u+Math.imul(T,Fe)|0;var Qt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,g=Math.imul(q,ie),t=Math.imul(q,Ee),t=t+Math.imul($,ie)|0,u=Math.imul($,Ee),g=g+Math.imul(W,Ce)|0,t=t+Math.imul(W,Qe)|0,t=t+Math.imul(te,Ce)|0,u=u+Math.imul(te,Qe)|0,g=g+Math.imul(P,me)|0,t=t+Math.imul(P,Fe)|0,t=t+Math.imul(F,me)|0,u=u+Math.imul(F,Fe)|0,g=g+Math.imul(R,ve)|0,t=t+Math.imul(R,Ke)|0,t=t+Math.imul(T,ve)|0,u=u+Math.imul(T,Ke)|0;var Et=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Et>>>26)|0,Et&=67108863,g=Math.imul(ae,ie),t=Math.imul(ae,Ee),t=t+Math.imul(he,ie)|0,u=Math.imul(he,Ee),g=g+Math.imul(q,Ce)|0,t=t+Math.imul(q,Qe)|0,t=t+Math.imul($,Ce)|0,u=u+Math.imul($,Qe)|0,g=g+Math.imul(W,me)|0,t=t+Math.imul(W,Fe)|0,t=t+Math.imul(te,me)|0,u=u+Math.imul(te,Fe)|0,g=g+Math.imul(P,ve)|0,t=t+Math.imul(P,Ke)|0,t=t+Math.imul(F,ve)|0,u=u+Math.imul(F,Ke)|0,g=g+Math.imul(R,we)|0,t=t+Math.imul(R,Re)|0,t=t+Math.imul(T,we)|0,u=u+Math.imul(T,Re)|0;var vt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(vt>>>26)|0,vt&=67108863,g=Math.imul(se,ie),t=Math.imul(se,Ee),t=t+Math.imul(oe,ie)|0,u=Math.imul(oe,Ee),g=g+Math.imul(ae,Ce)|0,t=t+Math.imul(ae,Qe)|0,t=t+Math.imul(he,Ce)|0,u=u+Math.imul(he,Qe)|0,g=g+Math.imul(q,me)|0,t=t+Math.imul(q,Fe)|0,t=t+Math.imul($,me)|0,u=u+Math.imul($,Fe)|0,g=g+Math.imul(W,ve)|0,t=t+Math.imul(W,Ke)|0,t=t+Math.imul(te,ve)|0,u=u+Math.imul(te,Ke)|0,g=g+Math.imul(P,we)|0,t=t+Math.imul(P,Re)|0,t=t+Math.imul(F,we)|0,u=u+Math.imul(F,Re)|0,g=g+Math.imul(R,ge)|0,t=t+Math.imul(R,ye)|0,t=t+Math.imul(T,ge)|0,u=u+Math.imul(T,ye)|0;var wt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(wt>>>26)|0,wt&=67108863,g=Math.imul(fe,ie),t=Math.imul(fe,Ee),t=t+Math.imul(ce,ie)|0,u=Math.imul(ce,Ee),g=g+Math.imul(se,Ce)|0,t=t+Math.imul(se,Qe)|0,t=t+Math.imul(oe,Ce)|0,u=u+Math.imul(oe,Qe)|0,g=g+Math.imul(ae,me)|0,t=t+Math.imul(ae,Fe)|0,t=t+Math.imul(he,me)|0,u=u+Math.imul(he,Fe)|0,g=g+Math.imul(q,ve)|0,t=t+Math.imul(q,Ke)|0,t=t+Math.imul($,ve)|0,u=u+Math.imul($,Ke)|0,g=g+Math.imul(W,we)|0,t=t+Math.imul(W,Re)|0,t=t+Math.imul(te,we)|0,u=u+Math.imul(te,Re)|0,g=g+Math.imul(P,ge)|0,t=t+Math.imul(P,ye)|0,t=t+Math.imul(F,ge)|0,u=u+Math.imul(F,ye)|0,g=g+Math.imul(R,pe)|0,t=t+Math.imul(R,ke)|0,t=t+Math.imul(T,pe)|0,u=u+Math.imul(T,ke)|0;var mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(mt>>>26)|0,mt&=67108863,g=Math.imul(ue,ie),t=Math.imul(ue,Ee),t=t+Math.imul(Be,ie)|0,u=Math.imul(Be,Ee),g=g+Math.imul(fe,Ce)|0,t=t+Math.imul(fe,Qe)|0,t=t+Math.imul(ce,Ce)|0,u=u+Math.imul(ce,Qe)|0,g=g+Math.imul(se,me)|0,t=t+Math.imul(se,Fe)|0,t=t+Math.imul(oe,me)|0,u=u+Math.imul(oe,Fe)|0,g=g+Math.imul(ae,ve)|0,t=t+Math.imul(ae,Ke)|0,t=t+Math.imul(he,ve)|0,u=u+Math.imul(he,Ke)|0,g=g+Math.imul(q,we)|0,t=t+Math.imul(q,Re)|0,t=t+Math.imul($,we)|0,u=u+Math.imul($,Re)|0,g=g+Math.imul(W,ge)|0,t=t+Math.imul(W,ye)|0,t=t+Math.imul(te,ge)|0,u=u+Math.imul(te,ye)|0,g=g+Math.imul(P,pe)|0,t=t+Math.imul(P,ke)|0,t=t+Math.imul(F,pe)|0,u=u+Math.imul(F,ke)|0,g=g+Math.imul(R,Me)|0,t=t+Math.imul(R,Ne)|0,t=t+Math.imul(T,Me)|0,u=u+Math.imul(T,Ne)|0;var Mt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,g=Math.imul(H,ie),t=Math.imul(H,Ee),t=t+Math.imul(k,ie)|0,u=Math.imul(k,Ee),g=g+Math.imul(ue,Ce)|0,t=t+Math.imul(ue,Qe)|0,t=t+Math.imul(Be,Ce)|0,u=u+Math.imul(Be,Qe)|0,g=g+Math.imul(fe,me)|0,t=t+Math.imul(fe,Fe)|0,t=t+Math.imul(ce,me)|0,u=u+Math.imul(ce,Fe)|0,g=g+Math.imul(se,ve)|0,t=t+Math.imul(se,Ke)|0,t=t+Math.imul(oe,ve)|0,u=u+Math.imul(oe,Ke)|0,g=g+Math.imul(ae,we)|0,t=t+Math.imul(ae,Re)|0,t=t+Math.imul(he,we)|0,u=u+Math.imul(he,Re)|0,g=g+Math.imul(q,ge)|0,t=t+Math.imul(q,ye)|0,t=t+Math.imul($,ge)|0,u=u+Math.imul($,ye)|0,g=g+Math.imul(W,pe)|0,t=t+Math.imul(W,ke)|0,t=t+Math.imul(te,pe)|0,u=u+Math.imul(te,ke)|0,g=g+Math.imul(P,Me)|0,t=t+Math.imul(P,Ne)|0,t=t+Math.imul(F,Me)|0,u=u+Math.imul(F,Ne)|0,g=g+Math.imul(R,be)|0,t=t+Math.imul(R,Ge)|0,t=t+Math.imul(T,be)|0,u=u+Math.imul(T,Ge)|0;var qe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(qe>>>26)|0,qe&=67108863,g=Math.imul(O,ie),t=Math.imul(O,Ee),t=t+Math.imul(ee,ie)|0,u=Math.imul(ee,Ee),g=g+Math.imul(H,Ce)|0,t=t+Math.imul(H,Qe)|0,t=t+Math.imul(k,Ce)|0,u=u+Math.imul(k,Qe)|0,g=g+Math.imul(ue,me)|0,t=t+Math.imul(ue,Fe)|0,t=t+Math.imul(Be,me)|0,u=u+Math.imul(Be,Fe)|0,g=g+Math.imul(fe,ve)|0,t=t+Math.imul(fe,Ke)|0,t=t+Math.imul(ce,ve)|0,u=u+Math.imul(ce,Ke)|0,g=g+Math.imul(se,we)|0,t=t+Math.imul(se,Re)|0,t=t+Math.imul(oe,we)|0,u=u+Math.imul(oe,Re)|0,g=g+Math.imul(ae,ge)|0,t=t+Math.imul(ae,ye)|0,t=t+Math.imul(he,ge)|0,u=u+Math.imul(he,ye)|0,g=g+Math.imul(q,pe)|0,t=t+Math.imul(q,ke)|0,t=t+Math.imul($,pe)|0,u=u+Math.imul($,ke)|0,g=g+Math.imul(W,Me)|0,t=t+Math.imul(W,Ne)|0,t=t+Math.imul(te,Me)|0,u=u+Math.imul(te,Ne)|0,g=g+Math.imul(P,be)|0,t=t+Math.imul(P,Ge)|0,t=t+Math.imul(F,be)|0,u=u+Math.imul(F,Ge)|0,g=g+Math.imul(R,De)|0,t=t+Math.imul(R,_e)|0,t=t+Math.imul(T,De)|0,u=u+Math.imul(T,_e)|0;var Ye=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Ye>>>26)|0,Ye&=67108863,g=Math.imul(O,Ce),t=Math.imul(O,Qe),t=t+Math.imul(ee,Ce)|0,u=Math.imul(ee,Qe),g=g+Math.imul(H,me)|0,t=t+Math.imul(H,Fe)|0,t=t+Math.imul(k,me)|0,u=u+Math.imul(k,Fe)|0,g=g+Math.imul(ue,ve)|0,t=t+Math.imul(ue,Ke)|0,t=t+Math.imul(Be,ve)|0,u=u+Math.imul(Be,Ke)|0,g=g+Math.imul(fe,we)|0,t=t+Math.imul(fe,Re)|0,t=t+Math.imul(ce,we)|0,u=u+Math.imul(ce,Re)|0,g=g+Math.imul(se,ge)|0,t=t+Math.imul(se,ye)|0,t=t+Math.imul(oe,ge)|0,u=u+Math.imul(oe,ye)|0,g=g+Math.imul(ae,pe)|0,t=t+Math.imul(ae,ke)|0,t=t+Math.imul(he,pe)|0,u=u+Math.imul(he,ke)|0,g=g+Math.imul(q,Me)|0,t=t+Math.imul(q,Ne)|0,t=t+Math.imul($,Me)|0,u=u+Math.imul($,Ne)|0,g=g+Math.imul(W,be)|0,t=t+Math.imul(W,Ge)|0,t=t+Math.imul(te,be)|0,u=u+Math.imul(te,Ge)|0,g=g+Math.imul(P,De)|0,t=t+Math.imul(P,_e)|0,t=t+Math.imul(F,De)|0,u=u+Math.imul(F,_e)|0;var Pe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,g=Math.imul(O,me),t=Math.imul(O,Fe),t=t+Math.imul(ee,me)|0,u=Math.imul(ee,Fe),g=g+Math.imul(H,ve)|0,t=t+Math.imul(H,Ke)|0,t=t+Math.imul(k,ve)|0,u=u+Math.imul(k,Ke)|0,g=g+Math.imul(ue,we)|0,t=t+Math.imul(ue,Re)|0,t=t+Math.imul(Be,we)|0,u=u+Math.imul(Be,Re)|0,g=g+Math.imul(fe,ge)|0,t=t+Math.imul(fe,ye)|0,t=t+Math.imul(ce,ge)|0,u=u+Math.imul(ce,ye)|0,g=g+Math.imul(se,pe)|0,t=t+Math.imul(se,ke)|0,t=t+Math.imul(oe,pe)|0,u=u+Math.imul(oe,ke)|0,g=g+Math.imul(ae,Me)|0,t=t+Math.imul(ae,Ne)|0,t=t+Math.imul(he,Me)|0,u=u+Math.imul(he,Ne)|0,g=g+Math.imul(q,be)|0,t=t+Math.imul(q,Ge)|0,t=t+Math.imul($,be)|0,u=u+Math.imul($,Ge)|0,g=g+Math.imul(W,De)|0,t=t+Math.imul(W,_e)|0,t=t+Math.imul(te,De)|0,u=u+Math.imul(te,_e)|0;var ze=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ze>>>26)|0,ze&=67108863,g=Math.imul(O,ve),t=Math.imul(O,Ke),t=t+Math.imul(ee,ve)|0,u=Math.imul(ee,Ke),g=g+Math.imul(H,we)|0,t=t+Math.imul(H,Re)|0,t=t+Math.imul(k,we)|0,u=u+Math.imul(k,Re)|0,g=g+Math.imul(ue,ge)|0,t=t+Math.imul(ue,ye)|0,t=t+Math.imul(Be,ge)|0,u=u+Math.imul(Be,ye)|0,g=g+Math.imul(fe,pe)|0,t=t+Math.imul(fe,ke)|0,t=t+Math.imul(ce,pe)|0,u=u+Math.imul(ce,ke)|0,g=g+Math.imul(se,Me)|0,t=t+Math.imul(se,Ne)|0,t=t+Math.imul(oe,Me)|0,u=u+Math.imul(oe,Ne)|0,g=g+Math.imul(ae,be)|0,t=t+Math.imul(ae,Ge)|0,t=t+Math.imul(he,be)|0,u=u+Math.imul(he,Ge)|0,g=g+Math.imul(q,De)|0,t=t+Math.imul(q,_e)|0,t=t+Math.imul($,De)|0,u=u+Math.imul($,_e)|0;var Xe=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(Xe>>>26)|0,Xe&=67108863,g=Math.imul(O,we),t=Math.imul(O,Re),t=t+Math.imul(ee,we)|0,u=Math.imul(ee,Re),g=g+Math.imul(H,ge)|0,t=t+Math.imul(H,ye)|0,t=t+Math.imul(k,ge)|0,u=u+Math.imul(k,ye)|0,g=g+Math.imul(ue,pe)|0,t=t+Math.imul(ue,ke)|0,t=t+Math.imul(Be,pe)|0,u=u+Math.imul(Be,ke)|0,g=g+Math.imul(fe,Me)|0,t=t+Math.imul(fe,Ne)|0,t=t+Math.imul(ce,Me)|0,u=u+Math.imul(ce,Ne)|0,g=g+Math.imul(se,be)|0,t=t+Math.imul(se,Ge)|0,t=t+Math.imul(oe,be)|0,u=u+Math.imul(oe,Ge)|0,g=g+Math.imul(ae,De)|0,t=t+Math.imul(ae,_e)|0,t=t+Math.imul(he,De)|0,u=u+Math.imul(he,_e)|0;var rt=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(rt>>>26)|0,rt&=67108863,g=Math.imul(O,ge),t=Math.imul(O,ye),t=t+Math.imul(ee,ge)|0,u=Math.imul(ee,ye),g=g+Math.imul(H,pe)|0,t=t+Math.imul(H,ke)|0,t=t+Math.imul(k,pe)|0,u=u+Math.imul(k,ke)|0,g=g+Math.imul(ue,Me)|0,t=t+Math.imul(ue,Ne)|0,t=t+Math.imul(Be,Me)|0,u=u+Math.imul(Be,Ne)|0,g=g+Math.imul(fe,be)|0,t=t+Math.imul(fe,Ge)|0,t=t+Math.imul(ce,be)|0,u=u+Math.imul(ce,Ge)|0,g=g+Math.imul(se,De)|0,t=t+Math.imul(se,_e)|0,t=t+Math.imul(oe,De)|0,u=u+Math.imul(oe,_e)|0;var it=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(it>>>26)|0,it&=67108863,g=Math.imul(O,pe),t=Math.imul(O,ke),t=t+Math.imul(ee,pe)|0,u=Math.imul(ee,ke),g=g+Math.imul(H,Me)|0,t=t+Math.imul(H,Ne)|0,t=t+Math.imul(k,Me)|0,u=u+Math.imul(k,Ne)|0,g=g+Math.imul(ue,be)|0,t=t+Math.imul(ue,Ge)|0,t=t+Math.imul(Be,be)|0,u=u+Math.imul(Be,Ge)|0,g=g+Math.imul(fe,De)|0,t=t+Math.imul(fe,_e)|0,t=t+Math.imul(ce,De)|0,u=u+Math.imul(ce,_e)|0;var ct=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ct>>>26)|0,ct&=67108863,g=Math.imul(O,Me),t=Math.imul(O,Ne),t=t+Math.imul(ee,Me)|0,u=Math.imul(ee,Ne),g=g+Math.imul(H,be)|0,t=t+Math.imul(H,Ge)|0,t=t+Math.imul(k,be)|0,u=u+Math.imul(k,Ge)|0,g=g+Math.imul(ue,De)|0,t=t+Math.imul(ue,_e)|0,t=t+Math.imul(Be,De)|0,u=u+Math.imul(Be,_e)|0;var ut=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(ut>>>26)|0,ut&=67108863,g=Math.imul(O,be),t=Math.imul(O,Ge),t=t+Math.imul(ee,be)|0,u=Math.imul(ee,Ge),g=g+Math.imul(H,De)|0,t=t+Math.imul(H,_e)|0,t=t+Math.imul(k,De)|0,u=u+Math.imul(k,_e)|0;var It=(C+g|0)+((t&8191)<<13)|0;C=(u+(t>>>13)|0)+(It>>>26)|0,It&=67108863,g=Math.imul(O,De),t=Math.imul(O,_e),t=t+Math.imul(ee,De)|0,u=Math.imul(ee,_e);var pt=(C+g|0)+((t&8191)<<13)|0;return C=(u+(t>>>13)|0)+(pt>>>26)|0,pt&=67108863,c[0]=At,c[1]=tt,c[2]=Qt,c[3]=Et,c[4]=vt,c[5]=wt,c[6]=mt,c[7]=Mt,c[8]=qe,c[9]=Ye,c[10]=Pe,c[11]=ze,c[12]=Xe,c[13]=rt,c[14]=it,c[15]=ct,c[16]=ut,c[17]=It,c[18]=pt,C!==0&&(c[19]=C,n.length++),n};Math.imul||(m=M);function x(E,e,A){A.negative=e.negative^E.negative,A.length=E.length+e.length;for(var n=0,a=0,h=0;h>>26)|0,a+=c>>>26,c&=67108863}A.words[h]=C,n=c,c=a}return n!==0?A.words[h]=n:A.length--,A.strip()}function D(E,e,A){var n=new S;return n.mulp(E,e,A)}r.prototype.mulTo=function(e,A){var n,a=this.length+e.length;return this.length===10&&e.length===10?n=m(this,e,A):a<63?n=M(this,e,A):a<1024?n=x(this,e,A):n=D(this,e,A),n};function S(E,e){this.x=E,this.y=e}S.prototype.makeRBT=function(e){for(var A=new Array(e),n=r.prototype._countBits(e)-1,a=0;a>=1;return a},S.prototype.permute=function(e,A,n,a,h,c){for(var C=0;C>>1)h++;return 1<>>13,n[2*c+1]=h&8191,h=h>>>13;for(c=2*A;c>=26,A+=a/67108864|0,A+=h>>>26,this.words[n]=h&67108863}return A!==0&&(this.words[n]=A,this.length++),this},r.prototype.muln=function(e){return this.clone().imuln(e)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(e){var A=w(e);if(A.length===0)return new r(1);for(var n=this,a=0;a=0);var A=e%26,n=(e-A)/26,a=67108863>>>26-A<<26-A,h;if(A!==0){var c=0;for(h=0;h>>26-A}c&&(this.words[h]=c,this.length++)}if(n!==0){for(h=this.length-1;h>=0;h--)this.words[h+n]=this.words[h];for(h=0;h=0);var a;A?a=(A-A%26)/26:a=0;var h=e%26,c=Math.min((e-h)/26,this.length),C=67108863^67108863>>>h<c)for(this.length-=c,t=0;t=0&&(u!==0||t>=a);t--){var b=this.words[t]|0;this.words[t]=u<<26-h|b>>>h,u=b&C}return g&&u!==0&&(g.words[g.length++]=u),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},r.prototype.ishrn=function(e,A,n){return f(this.negative===0),this.iushrn(e,A,n)},r.prototype.shln=function(e){return this.clone().ishln(e)},r.prototype.ushln=function(e){return this.clone().iushln(e)},r.prototype.shrn=function(e){return this.clone().ishrn(e)},r.prototype.ushrn=function(e){return this.clone().iushrn(e)},r.prototype.testn=function(e){f(typeof e=="number"&&e>=0);var A=e%26,n=(e-A)/26,a=1<=0);var A=e%26,n=(e-A)/26;if(f(this.negative===0,"imaskn works only with positive numbers"),this.length<=n)return this;if(A!==0&&n++,this.length=Math.min(n,this.length),A!==0){var a=67108863^67108863>>>A<=67108864;A++)this.words[A]-=67108864,A===this.length-1?this.words[A+1]=1:this.words[A+1]++;return this.length=Math.max(this.length,A+1),this},r.prototype.isubn=function(e){if(f(typeof e=="number"),f(e<67108864),e<0)return this.iaddn(-e);if(this.negative!==0)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var A=0;A>26)-(g/67108864|0),this.words[h+n]=c&67108863}for(;h>26,this.words[h+n]=c&67108863;if(C===0)return this.strip();for(f(C===-1),C=0,h=0;h>26,this.words[h]=c&67108863;return this.negative=1,this.strip()},r.prototype._wordDiv=function(e,A){var n=this.length-e.length,a=this.clone(),h=e,c=h.words[h.length-1]|0,C=this._countBits(c);n=26-C,n!==0&&(h=h.ushln(n),a.iushln(n),c=h.words[h.length-1]|0);var g=a.length-h.length,t;if(A!=="mod"){t=new r(null),t.length=g+1,t.words=new Array(t.length);for(var u=0;u=0;R--){var T=(a.words[h.length+R]|0)*67108864+(a.words[h.length+R-1]|0);for(T=Math.min(T/c|0,67108863),a._ishlnsubmul(h,T,R);a.negative!==0;)T--,a.negative=0,a._ishlnsubmul(h,1,R),a.isZero()||(a.negative^=1);t&&(t.words[R]=T)}return t&&t.strip(),a.strip(),A!=="div"&&n!==0&&a.iushrn(n),{div:t||null,mod:a}},r.prototype.divmod=function(e,A,n){if(f(!e.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var a,h,c;return this.negative!==0&&e.negative===0?(c=this.neg().divmod(e,A),A!=="mod"&&(a=c.div.neg()),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.iadd(e)),{div:a,mod:h}):this.negative===0&&e.negative!==0?(c=this.divmod(e.neg(),A),A!=="mod"&&(a=c.div.neg()),{div:a,mod:c.mod}):this.negative&e.negative?(c=this.neg().divmod(e.neg(),A),A!=="div"&&(h=c.mod.neg(),n&&h.negative!==0&&h.isub(e)),{div:c.div,mod:h}):e.length>this.length||this.cmp(e)<0?{div:new r(0),mod:this}:e.length===1?A==="div"?{div:this.divn(e.words[0]),mod:null}:A==="mod"?{div:null,mod:new r(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new r(this.modn(e.words[0]))}:this._wordDiv(e,A)},r.prototype.div=function(e){return this.divmod(e,"div",!1).div},r.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},r.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},r.prototype.divRound=function(e){var A=this.divmod(e);if(A.mod.isZero())return A.div;var n=A.div.negative!==0?A.mod.isub(e):A.mod,a=e.ushrn(1),h=e.andln(1),c=n.cmp(a);return c<0||h===1&&c===0?A.div:A.div.negative!==0?A.div.isubn(1):A.div.iaddn(1)},r.prototype.modn=function(e){f(e<=67108863);for(var A=(1<<26)%e,n=0,a=this.length-1;a>=0;a--)n=(A*n+(this.words[a]|0))%e;return n},r.prototype.idivn=function(e){f(e<=67108863);for(var A=0,n=this.length-1;n>=0;n--){var a=(this.words[n]|0)+A*67108864;this.words[n]=a/e|0,A=a%e}return this.strip()},r.prototype.divn=function(e){return this.clone().idivn(e)},r.prototype.egcd=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=new r(0),C=new r(1),g=0;A.isEven()&&n.isEven();)A.iushrn(1),n.iushrn(1),++g;for(var t=n.clone(),u=A.clone();!A.isZero();){for(var b=0,R=1;!(A.words[0]&R)&&b<26;++b,R<<=1);if(b>0)for(A.iushrn(b);b-- >0;)(a.isOdd()||h.isOdd())&&(a.iadd(t),h.isub(u)),a.iushrn(1),h.iushrn(1);for(var T=0,V=1;!(n.words[0]&V)&&T<26;++T,V<<=1);if(T>0)for(n.iushrn(T);T-- >0;)(c.isOdd()||C.isOdd())&&(c.iadd(t),C.isub(u)),c.iushrn(1),C.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(c),h.isub(C)):(n.isub(A),c.isub(a),C.isub(h))}return{a:c,b:C,gcd:n.iushln(g)}},r.prototype._invmp=function(e){f(e.negative===0),f(!e.isZero());var A=this,n=e.clone();A.negative!==0?A=A.umod(e):A=A.clone();for(var a=new r(1),h=new r(0),c=n.clone();A.cmpn(1)>0&&n.cmpn(1)>0;){for(var C=0,g=1;!(A.words[0]&g)&&C<26;++C,g<<=1);if(C>0)for(A.iushrn(C);C-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var t=0,u=1;!(n.words[0]&u)&&t<26;++t,u<<=1);if(t>0)for(n.iushrn(t);t-- >0;)h.isOdd()&&h.iadd(c),h.iushrn(1);A.cmp(n)>=0?(A.isub(n),a.isub(h)):(n.isub(A),h.isub(a))}var b;return A.cmpn(1)===0?b=a:b=h,b.cmpn(0)<0&&b.iadd(e),b},r.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var A=this.clone(),n=e.clone();A.negative=0,n.negative=0;for(var a=0;A.isEven()&&n.isEven();a++)A.iushrn(1),n.iushrn(1);do{for(;A.isEven();)A.iushrn(1);for(;n.isEven();)n.iushrn(1);var h=A.cmp(n);if(h<0){var c=A;A=n,n=c}else if(h===0||n.cmpn(1)===0)break;A.isub(n)}while(!0);return n.iushln(a)},r.prototype.invm=function(e){return this.egcd(e).a.umod(e)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(e){return this.words[0]&e},r.prototype.bincn=function(e){f(typeof e=="number");var A=e%26,n=(e-A)/26,a=1<>>26,C&=67108863,this.words[c]=C}return h!==0&&(this.words[c]=h,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(e){var A=e<0;if(this.negative!==0&&!A)return-1;if(this.negative===0&&A)return 1;this.strip();var n;if(this.length>1)n=1;else{A&&(e=-e),f(e<=67108863,"Number is too big");var a=this.words[0]|0;n=a===e?0:ae.length)return 1;if(this.length=0;n--){var a=this.words[n]|0,h=e.words[n]|0;if(a!==h){ah&&(A=1);break}}return A},r.prototype.gtn=function(e){return this.cmpn(e)===1},r.prototype.gt=function(e){return this.cmp(e)===1},r.prototype.gten=function(e){return this.cmpn(e)>=0},r.prototype.gte=function(e){return this.cmp(e)>=0},r.prototype.ltn=function(e){return this.cmpn(e)===-1},r.prototype.lt=function(e){return this.cmp(e)===-1},r.prototype.lten=function(e){return this.cmpn(e)<=0},r.prototype.lte=function(e){return this.cmp(e)<=0},r.prototype.eqn=function(e){return this.cmpn(e)===0},r.prototype.eq=function(e){return this.cmp(e)===0},r.red=function(e){return new J(e)},r.prototype.toRed=function(e){return f(!this.red,"Already a number in reduction context"),f(this.negative===0,"red works only with positives"),e.convertTo(this)._forceRed(e)},r.prototype.fromRed=function(){return f(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(e){return this.red=e,this},r.prototype.forceRed=function(e){return f(!this.red,"Already a number in reduction context"),this._forceRed(e)},r.prototype.redAdd=function(e){return f(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},r.prototype.redIAdd=function(e){return f(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},r.prototype.redSub=function(e){return f(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},r.prototype.redISub=function(e){return f(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},r.prototype.redShl=function(e){return f(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},r.prototype.redMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},r.prototype.redIMul=function(e){return f(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},r.prototype.redSqr=function(){return f(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return f(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return f(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return f(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return f(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(e){return f(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var K={k256:null,p224:null,p192:null,p25519:null};function N(E,e){this.name=E,this.p=new r(e,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}N.prototype._tmp=function(){var e=new r(null);return e.words=new Array(Math.ceil(this.n/13)),e},N.prototype.ireduce=function(e){var A=e,n;do this.split(A,this.tmp),A=this.imulK(A),A=A.iadd(this.tmp),n=A.bitLength();while(n>this.n);var a=n0?A.isub(this.p):A.strip!==void 0?A.strip():A._strip(),A},N.prototype.split=function(e,A){e.iushrn(this.n,0,A)},N.prototype.imulK=function(e){return e.imul(this.k)};function L(){N.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}l(L,N),L.prototype.split=function(e,A){for(var n=4194303,a=Math.min(e.length,9),h=0;h>>22,c=C}c>>>=22,e.words[h-10]=c,c===0&&e.length>10?e.length-=10:e.length-=9},L.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var A=0,n=0;n>>=26,e.words[n]=h,A=a}return A!==0&&(e.words[e.length++]=A),e},r._prime=function(e){if(K[e])return K[e];var A;if(e==="k256")A=new L;else if(e==="p224")A=new j;else if(e==="p192")A=new re;else if(e==="p25519")A=new Z;else throw new Error("Unknown prime "+e);return K[e]=A,A};function J(E){if(typeof E=="string"){var e=r._prime(E);this.m=e.p,this.prime=e}else f(E.gtn(1),"modulus must be greater than 1"),this.m=E,this.prime=null}J.prototype._verify1=function(e){f(e.negative===0,"red works only with positives"),f(e.red,"red works only with red numbers")},J.prototype._verify2=function(e,A){f((e.negative|A.negative)===0,"red works only with positives"),f(e.red&&e.red===A.red,"red works only with red numbers")},J.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},J.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},J.prototype.add=function(e,A){this._verify2(e,A);var n=e.add(A);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},J.prototype.iadd=function(e,A){this._verify2(e,A);var n=e.iadd(A);return n.cmp(this.m)>=0&&n.isub(this.m),n},J.prototype.sub=function(e,A){this._verify2(e,A);var n=e.sub(A);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},J.prototype.isub=function(e,A){this._verify2(e,A);var n=e.isub(A);return n.cmpn(0)<0&&n.iadd(this.m),n},J.prototype.shl=function(e,A){return this._verify1(e),this.imod(e.ushln(A))},J.prototype.imul=function(e,A){return this._verify2(e,A),this.imod(e.imul(A))},J.prototype.mul=function(e,A){return this._verify2(e,A),this.imod(e.mul(A))},J.prototype.isqr=function(e){return this.imul(e,e.clone())},J.prototype.sqr=function(e){return this.mul(e,e)},J.prototype.sqrt=function(e){if(e.isZero())return e.clone();var A=this.m.andln(3);if(f(A%2===1),A===3){var n=this.m.add(new r(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),h=0;!a.isZero()&&a.andln(1)===0;)h++,a.iushrn(1);f(!a.isZero());var c=new r(1).toRed(this),C=c.redNeg(),g=this.m.subn(1).iushrn(1),t=this.m.bitLength();for(t=new r(2*t*t).toRed(this);this.pow(t,g).cmp(C)!==0;)t.redIAdd(C);for(var u=this.pow(t,a),b=this.pow(e,a.addn(1).iushrn(1)),R=this.pow(e,a),T=h;R.cmp(c)!==0;){for(var V=R,P=0;V.cmp(c)!==0;P++)V=V.redSqr();f(P=0;h--){for(var u=A.words[h],b=t-1;b>=0;b--){var R=u>>b&1;if(c!==a[0]&&(c=this.sqr(c)),R===0&&C===0){g=0;continue}C<<=1,C|=R,g++,!(g!==n&&(h!==0||b!==0))&&(c=this.mul(c,a[C]),g=0,C=0)}t=26}return c},J.prototype.convertTo=function(e){var A=e.umod(this.m);return A===e?A.clone():A},J.prototype.convertFrom=function(e){var A=e.clone();return A.red=null,A},r.mont=function(e){return new Ae(e)};function Ae(E){J.call(this,E),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}l(Ae,J),Ae.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},Ae.prototype.convertFrom=function(e){var A=this.imod(e.mul(this.rinv));return A.red=null,A},Ae.prototype.imul=function(e,A){if(e.isZero()||A.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.mul=function(e,A){if(e.isZero()||A.isZero())return new r(0)._forceRed(this);var n=e.mul(A),a=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),h=n.isub(a).iushrn(this.shift),c=h;return h.cmp(this.m)>=0?c=h.isub(this.m):h.cmpn(0)<0&&(c=h.iadd(this.m)),c._forceRed(this)},Ae.prototype.invm=function(e){var A=this.imod(e._invmp(this.m).mul(this.r2));return A._forceRed(this)}})(o,U_e)}(ME)),ME.exports}var Nx,Jz;function Yse(){if(Jz)return Nx;Jz=1;var o=p_(),i=aA().Buffer;function s(f,l){return i.from(f.toRed(o.mont(l.modulus)).redPow(new o(l.publicExponent)).fromRed().toArray())}return Nx=s,Nx}var _x,Pz;function q_e(){if(Pz)return _x;Pz=1;var o=oy(),i=Eu(),s=md(),f=Hse(),l=Tse(),r=p_(),B=Yse(),I=E_(),p=aA().Buffer;_x=function(w,M,m){var x;w.padding?x=w.padding:m?x=1:x=4;var D=o(w),S;if(x===4)S=Q(D,M);else if(x===1)S=d(D,M,m);else if(x===3){if(S=new r(M),S.cmp(D.modulus)>=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return m?I(S,D):B(S,D)};function Q(v,w){var M=v.modulus.byteLength(),m=w.length,x=s("sha1").update(p.alloc(0)).digest(),D=x.length,S=2*D;if(m>M-S-2)throw new Error("message too long");var K=p.alloc(M-m-S-2),N=M-D-1,L=i(D),j=l(p.concat([x,K,p.alloc(1,1),w],N),f(L,N)),re=l(L,f(j,D));return new r(p.concat([p.alloc(1),re,j],M))}function d(v,w,M){var m=w.length,x=v.modulus.byteLength();if(m>x-11)throw new Error("message too long");var D;return M?D=p.alloc(x-m-3,255):D=y(x-m-3),new r(p.concat([p.from([0,M?1:2]),D,p.alloc(1),w],x))}function y(v){for(var w=p.allocUnsafe(v),M=0,m=i(v*2),x=0,D;MD||new f(w).cmp(x.modulus)>=0)throw new Error("decryption error");var S;M?S=B(new f(w),x):S=l(w,x);var K=I.alloc(D-S.length);if(S=I.concat([K,S],D),m===4)return p(x,S);if(m===1)return Q(x,S,M);if(m===3)return S;throw new Error("unknown padding")};function p(y,v){var w=y.modulus.byteLength(),M=r("sha1").update(I.alloc(0)).digest(),m=M.length;if(v[0]!==0)throw new Error("decryption error");var x=v.slice(1,m+1),D=v.slice(m+1),S=s(x,i(D,m)),K=s(D,i(S,w-m-1));if(d(M,K.slice(0,m)))throw new Error("decryption error");for(var N=m;K[N]===0;)N++;if(K[N++]!==1)throw new Error("decryption error");return K.slice(N)}function Q(y,v,w){for(var M=v.slice(0,2),m=2,x=0;v[m++]!==0;)if(m>=v.length){x++;break}var D=v.slice(2,m-1);if((M.toString("hex")!=="0002"&&!w||M.toString("hex")!=="0001"&&w)&&x++,D.length<8&&x++,x)throw new Error("decryption error");return v.slice(m)}function d(y,v){y=I.from(y),v=I.from(v);var w=0,M=y.length;y.length!==v.length&&(w++,M=Math.min(y.length,v.length));for(var m=-1;++mB||v<0)throw new TypeError("offset must be a uint32");if(v>l||v>w)throw new RangeError("offset out of range")}function p(v,w,M){if(typeof v!="number"||v!==v)throw new TypeError("size must be a number");if(v>B||v<0)throw new TypeError("size must be a uint32");if(v+w>M||v>l)throw new RangeError("buffer too small")}r&&r.getRandomValues||!process.browser?(T0.randomFill=Q,T0.randomFillSync=y):(T0.randomFill=o,T0.randomFillSync=o);function Q(v,w,M,m){if(!f.isBuffer(v)&&!(v instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof w=="function")m=w,w=0,M=v.length;else if(typeof M=="function")m=M,M=v.length-w;else if(typeof m!="function")throw new TypeError('"cb" argument must be a function');return I(w,v.length),p(M,w,v.length),d(v,w,M,m)}function d(v,w,M,m){if(process.browser){var x=v.buffer,D=new Uint8Array(x,w,M);if(r.getRandomValues(D),m){process.nextTick(function(){m(null,v)});return}return v}if(m){s(M,function(K,N){if(K)return m(K);N.copy(v,w),m(null,v)});return}var S=s(M);return S.copy(v,w),v}function y(v,w,M){if(typeof w>"u"&&(w=0),!f.isBuffer(v)&&!(v instanceof globalThis.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return I(w,v.length),M===void 0&&(M=v.length-w),p(M,w,v.length),d(v,w,M)}return T0}var Vz;function Jse(){if(Vz)return CA;Vz=1,CA.randomBytes=CA.rng=CA.pseudoRandomBytes=CA.prng=Eu(),CA.createHash=CA.Hash=md(),CA.createHmac=CA.Hmac=Ise();var o=_5e(),i=Object.keys(o),s=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);CA.getHashes=function(){return s};var f=yse();CA.pbkdf2=f.pbkdf2,CA.pbkdf2Sync=f.pbkdf2Sync;var l=X5e();CA.Cipher=l.Cipher,CA.createCipher=l.createCipher,CA.Cipheriv=l.Cipheriv,CA.createCipheriv=l.createCipheriv,CA.Decipher=l.Decipher,CA.createDecipher=l.createDecipher,CA.Decipheriv=l.Decipheriv,CA.createDecipheriv=l.createDecipheriv,CA.getCiphers=l.getCiphers,CA.listCiphers=l.listCiphers;var r=c_e();CA.DiffieHellmanGroup=r.DiffieHellmanGroup,CA.createDiffieHellmanGroup=r.createDiffieHellmanGroup,CA.getDiffieHellman=r.getDiffieHellman,CA.createDiffieHellman=r.createDiffieHellman,CA.DiffieHellman=r.DiffieHellman;var B=K_e();CA.createSign=B.createSign,CA.Sign=B.Sign,CA.createVerify=B.createVerify,CA.Verify=B.Verify,CA.createECDH=L_e();var I=T_e();CA.publicEncrypt=I.publicEncrypt,CA.privateEncrypt=I.privateEncrypt,CA.publicDecrypt=I.publicDecrypt,CA.privateDecrypt=I.privateDecrypt;var p=Y_e();return CA.randomFill=p.randomFill,CA.randomFillSync=p.randomFillSync,CA.createCredentials=function(){throw new Error(`sorry, createCredentials is not implemented yet -we accept pull requests -https://github.com/browserify/crypto-browserify`)},CA.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},CA}var Zz;function Q_(){if(Zz)return oC.exports;Zz=1;var o;oC.exports=function(l){return o||(o=new i(null)),o.generate(l)};function i(f){this.rand=f}if(oC.exports.Rand=i,i.prototype.generate=function(l){return this._rand(l)},i.prototype._rand=function(l){if(this.rand.getBytes)return this.rand.getBytes(l);for(var r=new Uint8Array(l),B=0;B0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}Gx=r,r.prototype.point=function(){throw new Error("Not implemented")},r.prototype.validate=function(){throw new Error("Not implemented")},r.prototype._fixedNafMul=function(p,Q){l(p.precomputed);var d=p._getDoubles(),y=s(Q,1,this._bitLength),v=(1<=M;x--)m=(m<<1)+y[x];w.push(m)}for(var D=this.jpoint(null,null,null),S=this.jpoint(null,null,null),K=v;K>0;K--){for(M=0;M=0;m--){for(var x=0;m>=0&&w[m]===0;m--)x++;if(m>=0&&x++,M=M.dblp(x),m<0)break;var D=w[m];l(D!==0),p.type==="affine"?D>0?M=M.mixedAdd(v[D-1>>1]):M=M.mixedAdd(v[-D-1>>1].neg()):D>0?M=M.add(v[D-1>>1]):M=M.add(v[-D-1>>1].neg())}return p.type==="affine"?M.toP():M},r.prototype._wnafMulAdd=function(p,Q,d,y,v){var w=this._wnafT1,M=this._wnafT2,m=this._wnafT3,x=0,D,S,K;for(D=0;D=1;D-=2){var L=D-1,j=D;if(w[L]!==1||w[j]!==1){m[L]=s(d[L],w[L],this._bitLength),m[j]=s(d[j],w[j],this._bitLength),x=Math.max(m[L].length,x),x=Math.max(m[j].length,x);continue}var re=[Q[L],null,null,Q[j]];Q[L].y.cmp(Q[j].y)===0?(re[1]=Q[L].add(Q[j]),re[2]=Q[L].toJ().mixedAdd(Q[j].neg())):Q[L].y.cmp(Q[j].y.redNeg())===0?(re[1]=Q[L].toJ().mixedAdd(Q[j]),re[2]=Q[L].add(Q[j].neg())):(re[1]=Q[L].toJ().mixedAdd(Q[j]),re[2]=Q[L].toJ().mixedAdd(Q[j].neg()));var Z=[-3,-1,-5,-7,0,7,5,1,3],J=f(d[L],d[j]);for(x=Math.max(J[0].length,x),m[L]=new Array(x),m[j]=new Array(x),S=0;S=0;D--){for(var n=0;D>=0;){var a=!0;for(S=0;S=0&&n++,e=e.dblp(n),D<0)break;for(S=0;S0?K=M[S][h-1>>1]:h<0&&(K=M[S][-h-1>>1].neg()),K.type==="affine"?e=e.mixedAdd(K):e=e.add(K))}}for(D=0;D=Math.ceil((p.bitLength()+1)/Q.step):!1},B.prototype._getDoubles=function(p,Q){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var d=[this],y=this,v=0;v=0&&(L=D,j=S),K.negative&&(K=K.neg(),N=N.neg()),L.negative&&(L=L.neg(),j=j.neg()),[{a:K,b:N},{a:L,b:j}]},r.prototype._endoSplit=function(Q){var d=this.endo.basis,y=d[0],v=d[1],w=v.b.mul(Q).divRound(this.n),M=y.b.neg().mul(Q).divRound(this.n),m=w.mul(y.a),x=M.mul(v.a),D=w.mul(y.b),S=M.mul(v.b),K=Q.sub(m).sub(x),N=D.add(S).neg();return{k1:K,k2:N}},r.prototype.pointFromX=function(Q,d){Q=new i(Q,16),Q.red||(Q=Q.toRed(this.red));var y=Q.redSqr().redMul(Q).redIAdd(Q.redMul(this.a)).redIAdd(this.b),v=y.redSqrt();if(v.redSqr().redSub(y).cmp(this.zero)!==0)throw new Error("invalid point");var w=v.fromRed().isOdd();return(d&&!w||!d&&w)&&(v=v.redNeg()),this.point(Q,v)},r.prototype.validate=function(Q){if(Q.inf)return!0;var d=Q.x,y=Q.y,v=this.a.redMul(d),w=d.redSqr().redMul(d).redIAdd(v).redIAdd(this.b);return y.redSqr().redISub(w).cmpn(0)===0},r.prototype._endoWnafMulAdd=function(Q,d,y){for(var v=this._endoWnafT1,w=this._endoWnafT2,M=0;M":""},B.prototype.isInfinity=function(){return this.inf},B.prototype.add=function(Q){if(this.inf)return Q;if(Q.inf)return this;if(this.eq(Q))return this.dbl();if(this.neg().eq(Q))return this.curve.point(null,null);if(this.x.cmp(Q.x)===0)return this.curve.point(null,null);var d=this.y.redSub(Q.y);d.cmpn(0)!==0&&(d=d.redMul(this.x.redSub(Q.x).redInvm()));var y=d.redSqr().redISub(this.x).redISub(Q.x),v=d.redMul(this.x.redSub(y)).redISub(this.y);return this.curve.point(y,v)},B.prototype.dbl=function(){if(this.inf)return this;var Q=this.y.redAdd(this.y);if(Q.cmpn(0)===0)return this.curve.point(null,null);var d=this.curve.a,y=this.x.redSqr(),v=Q.redInvm(),w=y.redAdd(y).redIAdd(y).redIAdd(d).redMul(v),M=w.redSqr().redISub(this.x.redAdd(this.x)),m=w.redMul(this.x.redSub(M)).redISub(this.y);return this.curve.point(M,m)},B.prototype.getX=function(){return this.x.fromRed()},B.prototype.getY=function(){return this.y.fromRed()},B.prototype.mul=function(Q){return Q=new i(Q,16),this.isInfinity()?this:this._hasDoubles(Q)?this.curve._fixedNafMul(this,Q):this.curve.endo?this.curve._endoWnafMulAdd([this],[Q]):this.curve._wnafMul(this,Q)},B.prototype.mulAdd=function(Q,d,y){var v=[this,d],w=[Q,y];return this.curve.endo?this.curve._endoWnafMulAdd(v,w):this.curve._wnafMulAdd(1,v,w,2)},B.prototype.jmulAdd=function(Q,d,y){var v=[this,d],w=[Q,y];return this.curve.endo?this.curve._endoWnafMulAdd(v,w,!0):this.curve._wnafMulAdd(1,v,w,2,!0)},B.prototype.eq=function(Q){return this===Q||this.inf===Q.inf&&(this.inf||this.x.cmp(Q.x)===0&&this.y.cmp(Q.y)===0)},B.prototype.neg=function(Q){if(this.inf)return this;var d=this.curve.point(this.x,this.y.redNeg());if(Q&&this.precomputed){var y=this.precomputed,v=function(w){return w.neg()};d.precomputed={naf:y.naf&&{wnd:y.naf.wnd,points:y.naf.points.map(v)},doubles:y.doubles&&{step:y.doubles.step,points:y.doubles.points.map(v)}}}return d},B.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var Q=this.curve.jpoint(this.x,this.y,this.curve.one);return Q};function I(p,Q,d,y){f.BasePoint.call(this,p,"jacobian"),Q===null&&d===null&&y===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(Q,16),this.y=new i(d,16),this.z=new i(y,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}return s(I,f.BasePoint),r.prototype.jpoint=function(Q,d,y){return new I(this,Q,d,y)},I.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var Q=this.z.redInvm(),d=Q.redSqr(),y=this.x.redMul(d),v=this.y.redMul(d).redMul(Q);return this.curve.point(y,v)},I.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},I.prototype.add=function(Q){if(this.isInfinity())return Q;if(Q.isInfinity())return this;var d=Q.z.redSqr(),y=this.z.redSqr(),v=this.x.redMul(d),w=Q.x.redMul(y),M=this.y.redMul(d.redMul(Q.z)),m=Q.y.redMul(y.redMul(this.z)),x=v.redSub(w),D=M.redSub(m);if(x.cmpn(0)===0)return D.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var S=x.redSqr(),K=S.redMul(x),N=v.redMul(S),L=D.redSqr().redIAdd(K).redISub(N).redISub(N),j=D.redMul(N.redISub(L)).redISub(M.redMul(K)),re=this.z.redMul(Q.z).redMul(x);return this.curve.jpoint(L,j,re)},I.prototype.mixedAdd=function(Q){if(this.isInfinity())return Q.toJ();if(Q.isInfinity())return this;var d=this.z.redSqr(),y=this.x,v=Q.x.redMul(d),w=this.y,M=Q.y.redMul(d).redMul(this.z),m=y.redSub(v),x=w.redSub(M);if(m.cmpn(0)===0)return x.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var D=m.redSqr(),S=D.redMul(m),K=y.redMul(D),N=x.redSqr().redIAdd(S).redISub(K).redISub(K),L=x.redMul(K.redISub(N)).redISub(w.redMul(S)),j=this.z.redMul(m);return this.curve.jpoint(N,L,j)},I.prototype.dblp=function(Q){if(Q===0)return this;if(this.isInfinity())return this;if(!Q)return this.dbl();var d;if(this.curve.zeroA||this.curve.threeA){var y=this;for(d=0;d=0)return!1;if(y.redIAdd(w),this.x.cmp(y)===0)return!0}},I.prototype.inspect=function(){return this.isInfinity()?"":""},I.prototype.isInfinity=function(){return this.z.cmpn(0)===0},Lx}var Ux,Xz;function P_e(){if(Xz)return Ux;Xz=1;var o=ms(),i=oA(),s=ay(),f=yo();function l(B){s.call(this,"mont",B),this.a=new o(B.a,16).toRed(this.red),this.b=new o(B.b,16).toRed(this.red),this.i4=new o(4).toRed(this.red).redInvm(),this.two=new o(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}i(l,s),Ux=l,l.prototype.validate=function(I){var p=I.normalize().x,Q=p.redSqr(),d=Q.redMul(p).redAdd(Q.redMul(this.a)).redAdd(p),y=d.redSqrt();return y.redSqr().cmp(d)===0};function r(B,I,p){s.BasePoint.call(this,B,"projective"),I===null&&p===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new o(I,16),this.z=new o(p,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}return i(r,s.BasePoint),l.prototype.decodePoint=function(I,p){return this.point(f.toArray(I,p),1)},l.prototype.point=function(I,p){return new r(this,I,p)},l.prototype.pointFromJSON=function(I){return r.fromJSON(this,I)},r.prototype.precompute=function(){},r.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},r.fromJSON=function(I,p){return new r(I,p[0],p[1]||I.one)},r.prototype.inspect=function(){return this.isInfinity()?"":""},r.prototype.isInfinity=function(){return this.z.cmpn(0)===0},r.prototype.dbl=function(){var I=this.x.redAdd(this.z),p=I.redSqr(),Q=this.x.redSub(this.z),d=Q.redSqr(),y=p.redSub(d),v=p.redMul(d),w=y.redMul(d.redAdd(this.curve.a24.redMul(y)));return this.curve.point(v,w)},r.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.diffAdd=function(I,p){var Q=this.x.redAdd(this.z),d=this.x.redSub(this.z),y=I.x.redAdd(I.z),v=I.x.redSub(I.z),w=v.redMul(Q),M=y.redMul(d),m=p.z.redMul(w.redAdd(M).redSqr()),x=p.x.redMul(w.redISub(M).redSqr());return this.curve.point(m,x)},r.prototype.mul=function(I){for(var p=I.clone(),Q=this,d=this.curve.point(null,null),y=this,v=[];p.cmpn(0)!==0;p.iushrn(1))v.push(p.andln(1));for(var w=v.length-1;w>=0;w--)v[w]===0?(Q=Q.diffAdd(d,y),d=d.dbl()):(d=Q.diffAdd(d,y),Q=Q.dbl());return d},r.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},r.prototype.eq=function(I){return this.getX().cmp(I.getX())===0},r.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},r.prototype.getX=function(){return this.normalize(),this.x.fromRed()},Ux}var qx,e$;function O_e(){if(e$)return qx;e$=1;var o=yo(),i=ms(),s=oA(),f=ay(),l=o.assert;function r(I){this.twisted=(I.a|0)!==1,this.mOneA=this.twisted&&(I.a|0)===-1,this.extended=this.mOneA,f.call(this,"edwards",I),this.a=new i(I.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(I.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(I.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),l(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(I.c|0)===1}s(r,f),qx=r,r.prototype._mulA=function(p){return this.mOneA?p.redNeg():this.a.redMul(p)},r.prototype._mulC=function(p){return this.oneC?p:this.c.redMul(p)},r.prototype.jpoint=function(p,Q,d,y){return this.point(p,Q,d,y)},r.prototype.pointFromX=function(p,Q){p=new i(p,16),p.red||(p=p.toRed(this.red));var d=p.redSqr(),y=this.c2.redSub(this.a.redMul(d)),v=this.one.redSub(this.c2.redMul(this.d).redMul(d)),w=y.redMul(v.redInvm()),M=w.redSqrt();if(M.redSqr().redSub(w).cmp(this.zero)!==0)throw new Error("invalid point");var m=M.fromRed().isOdd();return(Q&&!m||!Q&&m)&&(M=M.redNeg()),this.point(p,M)},r.prototype.pointFromY=function(p,Q){p=new i(p,16),p.red||(p=p.toRed(this.red));var d=p.redSqr(),y=d.redSub(this.c2),v=d.redMul(this.d).redMul(this.c2).redSub(this.a),w=y.redMul(v.redInvm());if(w.cmp(this.zero)===0){if(Q)throw new Error("invalid point");return this.point(this.zero,p)}var M=w.redSqrt();if(M.redSqr().redSub(w).cmp(this.zero)!==0)throw new Error("invalid point");return M.fromRed().isOdd()!==Q&&(M=M.redNeg()),this.point(M,p)},r.prototype.validate=function(p){if(p.isInfinity())return!0;p.normalize();var Q=p.x.redSqr(),d=p.y.redSqr(),y=Q.redMul(this.a).redAdd(d),v=this.c2.redMul(this.one.redAdd(this.d.redMul(Q).redMul(d)));return y.cmp(v)===0};function B(I,p,Q,d,y){f.BasePoint.call(this,I,"projective"),p===null&&Q===null&&d===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(p,16),this.y=new i(Q,16),this.z=d?new i(d,16):this.curve.one,this.t=y&&new i(y,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}return s(B,f.BasePoint),r.prototype.pointFromJSON=function(p){return B.fromJSON(this,p)},r.prototype.point=function(p,Q,d,y){return new B(this,p,Q,d,y)},B.fromJSON=function(p,Q){return new B(p,Q[0],Q[1],Q[2])},B.prototype.inspect=function(){return this.isInfinity()?"":""},B.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},B.prototype._extDbl=function(){var p=this.x.redSqr(),Q=this.y.redSqr(),d=this.z.redSqr();d=d.redIAdd(d);var y=this.curve._mulA(p),v=this.x.redAdd(this.y).redSqr().redISub(p).redISub(Q),w=y.redAdd(Q),M=w.redSub(d),m=y.redSub(Q),x=v.redMul(M),D=w.redMul(m),S=v.redMul(m),K=M.redMul(w);return this.curve.point(x,D,K,S)},B.prototype._projDbl=function(){var p=this.x.redAdd(this.y).redSqr(),Q=this.x.redSqr(),d=this.y.redSqr(),y,v,w,M,m,x;if(this.curve.twisted){M=this.curve._mulA(Q);var D=M.redAdd(d);this.zOne?(y=p.redSub(Q).redSub(d).redMul(D.redSub(this.curve.two)),v=D.redMul(M.redSub(d)),w=D.redSqr().redSub(D).redSub(D)):(m=this.z.redSqr(),x=D.redSub(m).redISub(m),y=p.redSub(Q).redISub(d).redMul(x),v=D.redMul(M.redSub(d)),w=D.redMul(x))}else M=Q.redAdd(d),m=this.curve._mulC(this.z).redSqr(),x=M.redSub(m).redSub(m),y=this.curve._mulC(p.redISub(M)).redMul(x),v=this.curve._mulC(M).redMul(Q.redISub(d)),w=M.redMul(x);return this.curve.point(y,v,w)},B.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},B.prototype._extAdd=function(p){var Q=this.y.redSub(this.x).redMul(p.y.redSub(p.x)),d=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),y=this.t.redMul(this.curve.dd).redMul(p.t),v=this.z.redMul(p.z.redAdd(p.z)),w=d.redSub(Q),M=v.redSub(y),m=v.redAdd(y),x=d.redAdd(Q),D=w.redMul(M),S=m.redMul(x),K=w.redMul(x),N=M.redMul(m);return this.curve.point(D,S,N,K)},B.prototype._projAdd=function(p){var Q=this.z.redMul(p.z),d=Q.redSqr(),y=this.x.redMul(p.x),v=this.y.redMul(p.y),w=this.curve.d.redMul(y).redMul(v),M=d.redSub(w),m=d.redAdd(w),x=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(y).redISub(v),D=Q.redMul(M).redMul(x),S,K;return this.curve.twisted?(S=Q.redMul(m).redMul(v.redSub(this.curve._mulA(y))),K=M.redMul(m)):(S=Q.redMul(m).redMul(v.redSub(y)),K=this.curve._mulC(M).redMul(m)),this.curve.point(D,S,K)},B.prototype.add=function(p){return this.isInfinity()?p:p.isInfinity()?this:this.curve.extended?this._extAdd(p):this._projAdd(p)},B.prototype.mul=function(p){return this._hasDoubles(p)?this.curve._fixedNafMul(this,p):this.curve._wnafMul(this,p)},B.prototype.mulAdd=function(p,Q,d){return this.curve._wnafMulAdd(1,[this,Q],[p,d],2,!1)},B.prototype.jmulAdd=function(p,Q,d){return this.curve._wnafMulAdd(1,[this,Q],[p,d],2,!0)},B.prototype.normalize=function(){if(this.zOne)return this;var p=this.z.redInvm();return this.x=this.x.redMul(p),this.y=this.y.redMul(p),this.t&&(this.t=this.t.redMul(p)),this.z=this.curve.one,this.zOne=!0,this},B.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},B.prototype.getX=function(){return this.normalize(),this.x.fromRed()},B.prototype.getY=function(){return this.normalize(),this.y.fromRed()},B.prototype.eq=function(p){return this===p||this.getX().cmp(p.getX())===0&&this.getY().cmp(p.getY())===0},B.prototype.eqXToP=function(p){var Q=p.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(Q)===0)return!0;for(var d=p.clone(),y=this.curve.redN.redMul(this.z);;){if(d.iadd(this.curve.n),d.cmp(this.curve.p)>=0)return!1;if(Q.redIAdd(y),this.x.cmp(Q)===0)return!0}},B.prototype.toP=B.prototype.normalize,B.prototype.mixedAdd=B.prototype.add,qx}var t$;function Pse(){return t$||(t$=1,function(o){var i=o;i.base=ay(),i.short=J_e(),i.mont=P_e(),i.edwards=O_e()}(Fx)),Fx}var Hx={},Tx,A$;function j_e(){return A$||(A$=1,Tx={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}),Tx}var r$;function y_(){return r$||(r$=1,function(o){var i=o,s=i_(),f=Pse(),l=yo(),r=l.assert;function B(Q){Q.type==="short"?this.curve=new f.short(Q):Q.type==="edwards"?this.curve=new f.edwards(Q):this.curve=new f.mont(Q),this.g=this.curve.g,this.n=this.curve.n,this.hash=Q.hash,r(this.g.validate(),"Invalid curve"),r(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}i.PresetCurve=B;function I(Q,d){Object.defineProperty(i,Q,{configurable:!0,enumerable:!0,get:function(){var y=new B(d);return Object.defineProperty(i,Q,{configurable:!0,enumerable:!0,value:y}),y}})}I("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:s.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),I("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:s.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),I("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:s.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),I("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:s.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),I("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:s.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),I("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["9"]}),I("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var p;try{p=j_e()}catch{p=void 0}I("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:s.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",p]})}(Hx)),Hx}var Yx,i$;function W_e(){if(i$)return Yx;i$=1;var o=i_(),i=ise(),s=Qo();function f(l){if(!(this instanceof f))return new f(l);this.hash=l.hash,this.predResist=!!l.predResist,this.outLen=this.hash.outSize,this.minEntropy=l.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var r=i.toArray(l.entropy,l.entropyEnc||"hex"),B=i.toArray(l.nonce,l.nonceEnc||"hex"),I=i.toArray(l.pers,l.persEnc||"hex");s(r.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(r,B,I)}return Yx=f,f.prototype._init=function(r,B,I){var p=r.concat(B).concat(I);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var Q=0;Q=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(r.concat(I||[])),this._reseed=1},f.prototype.generate=function(r,B,I,p){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof B!="string"&&(p=I,I=B,B=null),I&&(I=i.toArray(I,p||"hex"),this._update(I));for(var Q=[];Q.length"},Jx}var Px,o$;function Z_e(){if(o$)return Px;o$=1;var o=ms(),i=yo(),s=i.assert;function f(p,Q){if(p instanceof f)return p;this._importDER(p,Q)||(s(p.r&&p.s,"Signature without r or s"),this.r=new o(p.r,16),this.s=new o(p.s,16),p.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=p.recoveryParam)}Px=f;function l(){this.place=0}function r(p,Q){var d=p[Q.place++];if(!(d&128))return d;var y=d&15;if(y===0||y>4||p[Q.place]===0)return!1;for(var v=0,w=0,M=Q.place;w>>=0;return v<=127?!1:(Q.place=M,v)}function B(p){for(var Q=0,d=p.length-1;!p[Q]&&!(p[Q+1]&128)&&Q>>3);for(p.push(d|128);--d;)p.push(Q>>>(d<<3)&255);p.push(Q)}return f.prototype.toDER=function(Q){var d=this.r.toArray(),y=this.s.toArray();for(d[0]&128&&(d=[0].concat(d)),y[0]&128&&(y=[0].concat(y)),d=B(d),y=B(y);!y[0]&&!(y[1]&128);)y=y.slice(1);var v=[2];I(v,d.length),v=v.concat(d),v.push(2),I(v,y.length);var w=v.concat(y),M=[48];return I(M,w.length),M=M.concat(w),i.encode(M,Q)},Px}var Ox,a$;function z_e(){if(a$)return Ox;a$=1;var o=ms(),i=W_e(),s=yo(),f=y_(),l=Q_(),r=s.assert,B=V_e(),I=Z_e();function p(Q){if(!(this instanceof p))return new p(Q);typeof Q=="string"&&(r(Object.prototype.hasOwnProperty.call(f,Q),"Unknown curve "+Q),Q=f[Q]),Q instanceof f.PresetCurve&&(Q={curve:Q}),this.curve=Q.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=Q.curve.g,this.g.precompute(Q.curve.n.bitLength()+1),this.hash=Q.hash||Q.curve.hash}return Ox=p,p.prototype.keyPair=function(d){return new B(this,d)},p.prototype.keyFromPrivate=function(d,y){return B.fromPrivate(this,d,y)},p.prototype.keyFromPublic=function(d,y){return B.fromPublic(this,d,y)},p.prototype.genKeyPair=function(d){d||(d={});for(var y=new i({hash:this.hash,pers:d.pers,persEnc:d.persEnc||"utf8",entropy:d.entropy||l(this.hash.hmacStrength),entropyEnc:d.entropy&&d.entropyEnc||"utf8",nonce:this.n.toArray()}),v=this.n.byteLength(),w=this.n.sub(new o(2));;){var M=new o(y.generate(v));if(!(M.cmp(w)>0))return M.iaddn(1),this.keyFromPrivate(M)}},p.prototype._truncateToN=function(d,y,v){var w;if(o.isBN(d)||typeof d=="number")d=new o(d,16),w=d.byteLength();else if(typeof d=="object")w=d.length,d=new o(d,16);else{var M=d.toString();w=M.length+1>>>1,d=new o(M,16)}typeof v!="number"&&(v=w*8);var m=v-this.n.bitLength();return m>0&&(d=d.ushrn(m)),!y&&d.cmp(this.n)>=0?d.sub(this.n):d},p.prototype.sign=function(d,y,v,w){if(typeof v=="object"&&(w=v,v=null),w||(w={}),typeof d!="string"&&typeof d!="number"&&!o.isBN(d)){r(typeof d=="object"&&d&&typeof d.length=="number","Expected message to be an array-like, a hex string, or a BN instance"),r(d.length>>>0===d.length);for(var M=0;M=0)){var j=this.g.mul(L);if(!j.isInfinity()){var re=j.getX(),Z=re.umod(this.n);if(Z.cmpn(0)!==0){var J=L.invm(this.n).mul(Z.mul(y.getPrivate()).iadd(d));if(J=J.umod(this.n),J.cmpn(0)!==0){var Ae=(j.getY().isOdd()?1:0)|(re.cmp(Z)!==0?2:0);return w.canonical&&J.cmp(this.nh)>0&&(J=this.n.sub(J),Ae^=1),new I({r:Z,s:J,recoveryParam:Ae})}}}}}},p.prototype.verify=function(d,y,v,w,M){M||(M={}),d=this._truncateToN(d,!1,M.msgBitLength),v=this.keyFromPublic(v,w),y=new I(y,"hex");var m=y.r,x=y.s;if(m.cmpn(1)<0||m.cmp(this.n)>=0||x.cmpn(1)<0||x.cmp(this.n)>=0)return!1;var D=x.invm(this.n),S=D.mul(d).umod(this.n),K=D.mul(m).umod(this.n),N;return this.curve._maxwellTrick?(N=this.g.jmulAdd(S,v.getPublic(),K),N.isInfinity()?!1:N.eqXToP(m)):(N=this.g.mulAdd(S,v.getPublic(),K),N.isInfinity()?!1:N.getX().umod(this.n).cmp(m)===0)},p.prototype.recoverPubKey=function(Q,d,y,v){r((3&y)===y,"The recovery param is more than two bits"),d=new I(d,v);var w=this.n,M=new o(Q),m=d.r,x=d.s,D=y&1,S=y>>1;if(m.cmp(this.curve.p.umod(this.curve.n))>=0&&S)throw new Error("Unable to find sencond key candinate");S?m=this.curve.pointFromX(m.add(this.curve.n),D):m=this.curve.pointFromX(m,D);var K=d.r.invm(w),N=w.sub(M).mul(K).umod(w),L=x.mul(K).umod(w);return this.g.mulAdd(N,m,L)},p.prototype.getKeyRecoveryParam=function(Q,d,y,v){if(d=new I(d,v),d.recoveryParam!==null)return d.recoveryParam;for(var w=0;w<4;w++){var M;try{M=this.recoverPubKey(Q,d,w)}catch{continue}if(M.eq(y))return w}throw new Error("Unable to find valid recovery factor")},Ox}var jx,s$;function $_e(){if(s$)return jx;s$=1;var o=yo(),i=o.assert,s=o.parseBytes,f=o.cachedProperty;function l(r,B){this.eddsa=r,this._secret=s(B.secret),r.isPoint(B.pub)?this._pub=B.pub:this._pubBytes=s(B.pub)}return l.fromPublic=function(B,I){return I instanceof l?I:new l(B,{pub:I})},l.fromSecret=function(B,I){return I instanceof l?I:new l(B,{secret:I})},l.prototype.secret=function(){return this._secret},f(l,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),f(l,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),f(l,"privBytes",function(){var B=this.eddsa,I=this.hash(),p=B.encodingLength-1,Q=I.slice(0,B.encodingLength);return Q[0]&=248,Q[p]&=127,Q[p]|=64,Q}),f(l,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),f(l,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),f(l,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),l.prototype.sign=function(B){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(B,this)},l.prototype.verify=function(B,I){return this.eddsa.verify(B,I,this)},l.prototype.getSecret=function(B){return i(this._secret,"KeyPair is public only"),o.encode(this.secret(),B)},l.prototype.getPublic=function(B){return o.encode(this.pubBytes(),B)},jx=l,jx}var Wx,f$;function X_e(){if(f$)return Wx;f$=1;var o=ms(),i=yo(),s=i.assert,f=i.cachedProperty,l=i.parseBytes;function r(B,I){this.eddsa=B,typeof I!="object"&&(I=l(I)),Array.isArray(I)&&(s(I.length===B.encodingLength*2,"Signature has invalid size"),I={R:I.slice(0,B.encodingLength),S:I.slice(B.encodingLength)}),s(I.R&&I.S,"Signature without R or S"),B.isPoint(I.R)&&(this._R=I.R),I.S instanceof o&&(this._S=I.S),this._Rencoded=Array.isArray(I.R)?I.R:I.Rencoded,this._Sencoded=Array.isArray(I.S)?I.S:I.Sencoded}return f(r,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),f(r,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),f(r,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),f(r,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),r.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},r.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},Wx=r,Wx}var Vx,h$;function eKe(){if(h$)return Vx;h$=1;var o=i_(),i=y_(),s=yo(),f=s.assert,l=s.parseBytes,r=$_e(),B=X_e();function I(p){if(f(p==="ed25519","only tested with ed25519 so far"),!(this instanceof I))return new I(p);p=i[p].curve,this.curve=p,this.g=p.g,this.g.precompute(p.n.bitLength()+1),this.pointClass=p.point().constructor,this.encodingLength=Math.ceil(p.n.bitLength()/8),this.hash=o.sha512}return Vx=I,I.prototype.sign=function(Q,d){Q=l(Q);var y=this.keyFromSecret(d),v=this.hashInt(y.messagePrefix(),Q),w=this.g.mul(v),M=this.encodePoint(w),m=this.hashInt(M,y.pubBytes(),Q).mul(y.priv()),x=v.add(m).umod(this.curve.n);return this.makeSignature({R:w,S:x,Rencoded:M})},I.prototype.verify=function(Q,d,y){if(Q=l(Q),d=this.makeSignature(d),d.S().gte(d.eddsa.curve.n)||d.S().isNeg())return!1;var v=this.keyFromPublic(y),w=this.hashInt(d.Rencoded(),v.pubBytes(),Q),M=this.g.mul(d.S()),m=d.R().add(v.pub().mul(w));return m.eq(M)},I.prototype.hashInt=function(){for(var Q=this.hash(),d=0;d{const f={mode:"cors",headers:{}};s.useAPIKey&&(f.headers=RA(RA({},f.headers),sKe())),i.method="GET";const l=iKe(f,i),r=await aKe(o,l);if(r.ok){const B=r.headers.get("content-type");return B!=null&&B.includes("application/json")?r.json():r.text()}throw fKe(r),r};var pC={},zx,c$;function hKe(){if(c$)return zx;c$=1;var o,i,s={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` -`,r:"\r",t:" "},f;function l(w){throw{name:"SyntaxError",message:w,at:o,text:f}}function r(w){return w&&w!==i&&l("Expected '"+w+"' instead of '"+i+"'"),i=f.charAt(o),o+=1,i}function B(){var w,M="";for(i==="-"&&(M="-",r("-"));i>="0"&&i<="9";)M+=i,r();if(i===".")for(M+=".";r()&&i>="0"&&i<="9";)M+=i;if(i==="e"||i==="E")for(M+=i,r(),(i==="-"||i==="+")&&(M+=i,r());i>="0"&&i<="9";)M+=i,r();return w=Number(M),isFinite(w)||l("Bad number"),w}function I(){var w,M,m="",x;if(i==='"')for(;r();){if(i==='"')return r(),m;if(i==="\\")if(r(),i==="u"){for(x=0,M=0;M<4&&(w=parseInt(r(),16),!!isFinite(w));M+=1)x=x*16+w;m+=String.fromCharCode(x)}else if(typeof s[i]=="string")m+=s[i];else break;else m+=i}l("Bad string")}function p(){for(;i&&i<=" ";)r()}function Q(){switch(i){case"t":return r("t"),r("r"),r("u"),r("e"),!0;case"f":return r("f"),r("a"),r("l"),r("s"),r("e"),!1;case"n":return r("n"),r("u"),r("l"),r("l"),null;default:l("Unexpected '"+i+"'")}}function d(){var w=[];if(i==="["){if(r("["),p(),i==="]")return r("]"),w;for(;i;){if(w.push(v()),p(),i==="]")return r("]"),w;r(","),p()}}l("Bad array")}function y(){var w,M={};if(i==="{"){if(r("{"),p(),i==="}")return r("}"),M;for(;i;){if(w=I(),p(),r(":"),Object.prototype.hasOwnProperty.call(M,w)&&l('Duplicate key "'+w+'"'),M[w]=v(),p(),i==="}")return r("}"),M;r(","),p()}}l("Bad object")}function v(){switch(p(),i){case"{":return y();case"[":return d();case'"':return I();case"-":return B();default:return i>="0"&&i<="9"?B():Q()}}return zx=function(w,M){var m;return f=w,o=0,i=" ",m=v(),p(),i&&l("Syntax error"),typeof M=="function"?function x(D,S){var K,N,L=D[S];if(L&&typeof L=="object")for(K in v)Object.prototype.hasOwnProperty.call(L,K)&&(N=x(L,K),typeof N>"u"?delete L[K]:L[K]=N);return M.call(D,S,L)}({"":m},""):m},zx}var $x,l$;function gKe(){if(l$)return $x;l$=1;var o=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,i,s,f={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},l;function r(I){return o.lastIndex=0,o.test(I)?'"'+I.replace(o,function(p){var Q=f[p];return typeof Q=="string"?Q:"\\u"+("0000"+p.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+I+'"'}function B(I,p){var Q,d,y,v,w=i,M,m=p[I];switch(m&&typeof m=="object"&&typeof m.toJSON=="function"&&(m=m.toJSON(I)),typeof l=="function"&&(m=l.call(p,I,m)),typeof m){case"string":return r(m);case"number":return isFinite(m)?String(m):"null";case"boolean":case"null":return String(m);case"object":if(!m)return"null";if(i+=s,M=[],Object.prototype.toString.apply(m)==="[object Array]"){for(v=m.length,Q=0;Q1?arguments[1]:void 0,v=y&&y.space||"";typeof v=="number"&&(v=I(v," "));var w=!!y&&typeof y.cycles=="boolean"&&y.cycles,M=y&&y.replacer?f(y.replacer):p,m=typeof y=="function"?y:y&&y.cmp,x=m&&function(S){var K=m.length>2&&function(L){return S[L]};return function(N,L){return m({key:N,value:S[N]},{key:L,value:S[L]},K?{__proto__:null,get:K}:void 0)}},D=[];return function S(K,N,L,j){var re=v?` -`+I(j,v):"",Z=v?": ":":";if(L&&L.toJSON&&typeof L.toJSON=="function"&&(L=L.toJSON()),L=M(K,N,L),L!==void 0){if(typeof L!="object"||L===null)return o(L);if(i(L)){for(var e=[],J=0;J{if(v!==void 0&&(v===null||typeof v!="object"||!("aborted"in v)))throw new ERR_INVALID_ARG_TYPE(w,"AbortSignal",v)},d=(v,w)=>{if(typeof v!="function")throw new ERR_INVALID_ARG_TYPE(w,"Function",v)};class y extends Error{constructor(w){if(!Array.isArray(w))throw new TypeError(`Expected input to be an Array, got ${typeof w}`);let M="";for(let m=0;m{v=m,w=x}),resolve:v,reject:w}},promisify(v){return new Promise((w,M)=>{v((m,...x)=>m?M(m):w(...x))})},debuglog(){return function(){}},format(v,...w){return v.replace(/%([sdifj])/g,function(...[M,m]){const x=w.shift();return m==="f"?x.toFixed(6):m==="j"?JSON.stringify(x):m==="s"&&typeof x=="object"?`${x.constructor!==Object?x.constructor.name:""} {}`.trim():x.toString()})},inspect(v){switch(typeof v){case"string":if(v.includes("'"))if(v.includes('"')){if(!v.includes("`")&&!v.includes("${"))return`\`${v}\``}else return`"${v}"`;return`'${v}'`;case"number":return isNaN(v)?"NaN":Object.is(v,-0)?String(v):v;case"bigint":return`${String(v)}n`;case"boolean":case"undefined":return String(v);case"object":return"{}"}},types:{isAsyncFunction(v){return v instanceof B},isArrayBufferView(v){return ArrayBuffer.isView(v)}},isBlob:p,deprecate(v,w){return v},addAbortListener:Na().addAbortListener||function(w,M){if(w===void 0)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",w);Q(w,"signal"),d(M,"listener");let m;return w.aborted?queueMicrotask(()=>M()):(w.addEventListener("abort",M,{__proto__:null,once:!0,[s]:!0}),m=()=>{w.removeEventListener("abort",M)}),{__proto__:null,[f](){var x;(x=m)===null||x===void 0||x()}}},AbortSignalAny:l.any||function(w){if(w.length===1)return w[0];const M=new r,m=()=>M.abort();return w.forEach(x=>{Q(x,"signals"),x.addEventListener("abort",m,{once:!0})}),M.signal.addEventListener("abort",()=>{w.forEach(x=>x.removeEventListener("abort",m))},{once:!0}),M.signal}},o.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}(i8)),i8.exports}var QC={},n8,Q$;function An(){if(Q$)return n8;Q$=1;const{format:o,inspect:i,AggregateError:s}=Ki(),f=globalThis.AggregateError||s,l=Symbol("kIsNodeError"),r=["string","function","number","object","Function","Object","boolean","bigint","symbol"],B=/^([A-Z][a-z0-9]*)+$/,I="__node_internal_",p={};function Q(x,D){if(!x)throw new p.ERR_INTERNAL_ASSERTION(D)}function d(x){let D="",S=x.length;const K=x[0]==="-"?1:0;for(;S>=K+4;S-=3)D=`_${x.slice(S-3,S)}${D}`;return`${x.slice(0,S)}${D}`}function y(x,D,S){if(typeof D=="function")return Q(D.length<=S.length,`Code: ${x}; The provided arguments length (${S.length}) does not match the required ones (${D.length}).`),D(...S);const K=(D.match(/%[dfijoOs]/g)||[]).length;return Q(K===S.length,`Code: ${x}; The provided arguments length (${S.length}) does not match the required ones (${K}).`),S.length===0?D:o(D,...S)}function v(x,D,S){S||(S=Error);class K extends S{constructor(...L){super(y(x,D,L))}toString(){return`${this.name} [${x}]: ${this.message}`}}Object.defineProperties(K.prototype,{name:{value:S.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${x}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),K.prototype.code=x,K.prototype[l]=!0,p[x]=K}function w(x){const D=I+x.name;return Object.defineProperty(x,"name",{value:D}),x}function M(x,D){if(x&&D&&x!==D){if(Array.isArray(D.errors))return D.errors.push(x),D;const S=new f([D,x],D.message);return S.code=D.code,S}return x||D}class m extends Error{constructor(D="The operation was aborted",S=void 0){if(S!==void 0&&typeof S!="object")throw new p.ERR_INVALID_ARG_TYPE("options","Object",S);super(D,S),this.code="ABORT_ERR",this.name="AbortError"}}return v("ERR_ASSERTION","%s",Error),v("ERR_INVALID_ARG_TYPE",(x,D,S)=>{Q(typeof x=="string","'name' must be a string"),Array.isArray(D)||(D=[D]);let K="The ";x.endsWith(" argument")?K+=`${x} `:K+=`"${x}" ${x.includes(".")?"property":"argument"} `,K+="must be ";const N=[],L=[],j=[];for(const Z of D)Q(typeof Z=="string","All expected entries have to be of type string"),r.includes(Z)?N.push(Z.toLowerCase()):B.test(Z)?L.push(Z):(Q(Z!=="object",'The value "object" should be written as "Object"'),j.push(Z));if(L.length>0){const Z=N.indexOf("object");Z!==-1&&(N.splice(N,Z,1),L.push("Object"))}if(N.length>0){switch(N.length){case 1:K+=`of type ${N[0]}`;break;case 2:K+=`one of type ${N[0]} or ${N[1]}`;break;default:{const Z=N.pop();K+=`one of type ${N.join(", ")}, or ${Z}`}}(L.length>0||j.length>0)&&(K+=" or ")}if(L.length>0){switch(L.length){case 1:K+=`an instance of ${L[0]}`;break;case 2:K+=`an instance of ${L[0]} or ${L[1]}`;break;default:{const Z=L.pop();K+=`an instance of ${L.join(", ")}, or ${Z}`}}j.length>0&&(K+=" or ")}switch(j.length){case 0:break;case 1:j[0].toLowerCase()!==j[0]&&(K+="an "),K+=`${j[0]}`;break;case 2:K+=`one of ${j[0]} or ${j[1]}`;break;default:{const Z=j.pop();K+=`one of ${j.join(", ")}, or ${Z}`}}if(S==null)K+=`. Received ${S}`;else if(typeof S=="function"&&S.name)K+=`. Received function ${S.name}`;else if(typeof S=="object"){var re;if((re=S.constructor)!==null&&re!==void 0&&re.name)K+=`. Received an instance of ${S.constructor.name}`;else{const Z=i(S,{depth:-1});K+=`. Received ${Z}`}}else{let Z=i(S,{colors:!1});Z.length>25&&(Z=`${Z.slice(0,25)}...`),K+=`. Received type ${typeof S} (${Z})`}return K},TypeError),v("ERR_INVALID_ARG_VALUE",(x,D,S="is invalid")=>{let K=i(D);return K.length>128&&(K=K.slice(0,128)+"..."),`The ${x.includes(".")?"property":"argument"} '${x}' ${S}. Received ${K}`},TypeError),v("ERR_INVALID_RETURN_VALUE",(x,D,S)=>{var K;const N=S!=null&&(K=S.constructor)!==null&&K!==void 0&&K.name?`instance of ${S.constructor.name}`:`type ${typeof S}`;return`Expected ${x} to be returned from the "${D}" function but got ${N}.`},TypeError),v("ERR_MISSING_ARGS",(...x)=>{Q(x.length>0,"At least one arg needs to be specified");let D;const S=x.length;switch(x=(Array.isArray(x)?x:[x]).map(K=>`"${K}"`).join(" or "),S){case 1:D+=`The ${x[0]} argument`;break;case 2:D+=`The ${x[0]} and ${x[1]} arguments`;break;default:{const K=x.pop();D+=`The ${x.join(", ")}, and ${K} arguments`}break}return`${D} must be specified`},TypeError),v("ERR_OUT_OF_RANGE",(x,D,S)=>{Q(D,'Missing "range" argument');let K;return Number.isInteger(S)&&Math.abs(S)>2**32?K=d(String(S)):typeof S=="bigint"?(K=String(S),(S>2n**32n||S<-(2n**32n))&&(K=d(K)),K+="n"):K=i(S),`The value of "${x}" is out of range. It must be ${D}. Received ${K}`},RangeError),v("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),v("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),v("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),v("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),v("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),v("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),v("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),v("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),v("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),v("ERR_STREAM_WRITE_AFTER_END","write after end",Error),v("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),n8={AbortError:m,aggregateTwoErrors:w(M),hideStackFrames:w,codes:p},n8}var o8,y$;function Sd(){if(y$)return o8;y$=1;const{ArrayIsArray:o,ArrayPrototypeIncludes:i,ArrayPrototypeJoin:s,ArrayPrototypeMap:f,NumberIsInteger:l,NumberIsNaN:r,NumberMAX_SAFE_INTEGER:B,NumberMIN_SAFE_INTEGER:I,NumberParseInt:p,ObjectPrototypeHasOwnProperty:Q,RegExpPrototypeExec:d,String:y,StringPrototypeToUpperCase:v,StringPrototypeTrim:w}=wr(),{hideStackFrames:M,codes:{ERR_SOCKET_BAD_PORT:m,ERR_INVALID_ARG_TYPE:x,ERR_INVALID_ARG_VALUE:D,ERR_OUT_OF_RANGE:S,ERR_UNKNOWN_SIGNAL:K}}=An(),{normalizeEncoding:N}=Ki(),{isAsyncFunction:L,isArrayBufferView:j}=Ki().types,re={};function Z(oe){return oe===(oe|0)}function J(oe){return oe===oe>>>0}const Ae=/^[0-7]+$/,E="must be a 32-bit unsigned integer or an octal string";function e(oe,Ue,fe){if(typeof oe>"u"&&(oe=fe),typeof oe=="string"){if(d(Ae,oe)===null)throw new D(Ue,oe,E);oe=p(oe,8)}return a(oe,Ue),oe}const A=M((oe,Ue,fe=I,ce=B)=>{if(typeof oe!="number")throw new x(Ue,"number",oe);if(!l(oe))throw new S(Ue,"an integer",oe);if(oece)throw new S(Ue,`>= ${fe} && <= ${ce}`,oe)}),n=M((oe,Ue,fe=-2147483648,ce=2147483647)=>{if(typeof oe!="number")throw new x(Ue,"number",oe);if(!l(oe))throw new S(Ue,"an integer",oe);if(oece)throw new S(Ue,`>= ${fe} && <= ${ce}`,oe)}),a=M((oe,Ue,fe=!1)=>{if(typeof oe!="number")throw new x(Ue,"number",oe);if(!l(oe))throw new S(Ue,"an integer",oe);const ce=fe?1:0,Te=4294967295;if(oeTe)throw new S(Ue,`>= ${ce} && <= ${Te}`,oe)});function h(oe,Ue){if(typeof oe!="string")throw new x(Ue,"string",oe)}function c(oe,Ue,fe=void 0,ce){if(typeof oe!="number")throw new x(Ue,"number",oe);if(fe!=null&&oece||(fe!=null||ce!=null)&&r(oe))throw new S(Ue,`${fe!=null?`>= ${fe}`:""}${fe!=null&&ce!=null?" && ":""}${ce!=null?`<= ${ce}`:""}`,oe)}const C=M((oe,Ue,fe)=>{if(!i(fe,oe)){const Te="must be one of: "+s(f(fe,ue=>typeof ue=="string"?`'${ue}'`:y(ue)),", ");throw new D(Ue,oe,Te)}});function g(oe,Ue){if(typeof oe!="boolean")throw new x(Ue,"boolean",oe)}function t(oe,Ue,fe){return oe==null||!Q(oe,Ue)?fe:oe[Ue]}const u=M((oe,Ue,fe=null)=>{const ce=t(fe,"allowArray",!1),Te=t(fe,"allowFunction",!1);if(!t(fe,"nullable",!1)&&oe===null||!ce&&o(oe)||typeof oe!="object"&&(!Te||typeof oe!="function"))throw new x(Ue,"Object",oe)}),b=M((oe,Ue)=>{if(oe!=null&&typeof oe!="object"&&typeof oe!="function")throw new x(Ue,"a dictionary",oe)}),R=M((oe,Ue,fe=0)=>{if(!o(oe))throw new x(Ue,"Array",oe);if(oe.length{if(!j(oe))throw new x(Ue,["Buffer","TypedArray","DataView"],oe)});function W(oe,Ue){const fe=N(Ue),ce=oe.length;if(fe==="hex"&&ce%2!==0)throw new D("encoding",Ue,`is invalid for data of length ${ce}`)}function te(oe,Ue="Port",fe=!0){if(typeof oe!="number"&&typeof oe!="string"||typeof oe=="string"&&w(oe).length===0||+oe!==+oe>>>0||oe>65535||oe===0&&!fe)throw new m(Ue,oe,fe);return oe|0}const z=M((oe,Ue)=>{if(oe!==void 0&&(oe===null||typeof oe!="object"||!("aborted"in oe)))throw new x(Ue,"AbortSignal",oe)}),q=M((oe,Ue)=>{if(typeof oe!="function")throw new x(Ue,"Function",oe)}),$=M((oe,Ue)=>{if(typeof oe!="function"||L(oe))throw new x(Ue,"Function",oe)}),le=M((oe,Ue)=>{if(oe!==void 0)throw new x(Ue,"undefined",oe)});function ae(oe,Ue,fe){if(!i(fe,oe))throw new x(Ue,`('${s(fe,"|")}')`,oe)}const he=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function xe(oe,Ue){if(typeof oe>"u"||!d(he,oe))throw new D(Ue,oe,'must be an array or string of format "; rel=preload; as=style"')}function se(oe){if(typeof oe=="string")return xe(oe,"hints"),oe;if(o(oe)){const Ue=oe.length;let fe="";if(Ue===0)return fe;for(let ce=0;ce; rel=preload; as=style"')}return o8={isInt32:Z,isUint32:J,parseFileMode:e,validateArray:R,validateStringArray:T,validateBooleanArray:V,validateAbortSignalArray:P,validateBoolean:g,validateBuffer:Y,validateDictionary:b,validateEncoding:W,validateFunction:q,validateInt32:n,validateInteger:A,validateNumber:c,validateObject:u,validateOneOf:C,validatePlainFunction:$,validatePort:te,validateSignalName:F,validateString:h,validateUint32:a,validateUndefined:le,validateUnion:ae,validateAbortSignal:z,validateLinkHeaderValue:se},o8}var yC={exports:{}},a8,v$;function Ms(){if(v$)return a8;v$=1;const{SymbolAsyncIterator:o,SymbolIterator:i,SymbolFor:s}=wr(),f=s("nodejs.stream.destroyed"),l=s("nodejs.stream.errored"),r=s("nodejs.stream.readable"),B=s("nodejs.stream.writable"),I=s("nodejs.stream.disturbed"),p=s("nodejs.webstream.isClosedPromise"),Q=s("nodejs.webstream.controllerErrorFunction");function d(t,u=!1){var b;return!!(t&&typeof t.pipe=="function"&&typeof t.on=="function"&&(!u||typeof t.pause=="function"&&typeof t.resume=="function")&&(!t._writableState||((b=t._readableState)===null||b===void 0?void 0:b.readable)!==!1)&&(!t._writableState||t._readableState))}function y(t){var u;return!!(t&&typeof t.write=="function"&&typeof t.on=="function"&&(!t._readableState||((u=t._writableState)===null||u===void 0?void 0:u.writable)!==!1))}function v(t){return!!(t&&typeof t.pipe=="function"&&t._readableState&&typeof t.on=="function"&&typeof t.write=="function")}function w(t){return t&&(t._readableState||t._writableState||typeof t.write=="function"&&typeof t.on=="function"||typeof t.pipe=="function"&&typeof t.on=="function")}function M(t){return!!(t&&!w(t)&&typeof t.pipeThrough=="function"&&typeof t.getReader=="function"&&typeof t.cancel=="function")}function m(t){return!!(t&&!w(t)&&typeof t.getWriter=="function"&&typeof t.abort=="function")}function x(t){return!!(t&&!w(t)&&typeof t.readable=="object"&&typeof t.writable=="object")}function D(t){return M(t)||m(t)||x(t)}function S(t,u){return t==null?!1:u===!0?typeof t[o]=="function":u===!1?typeof t[i]=="function":typeof t[o]=="function"||typeof t[i]=="function"}function K(t){if(!w(t))return null;const u=t._writableState,b=t._readableState,R=u||b;return!!(t.destroyed||t[f]||R!=null&&R.destroyed)}function N(t){if(!y(t))return null;if(t.writableEnded===!0)return!0;const u=t._writableState;return u!=null&&u.errored?!1:typeof(u==null?void 0:u.ended)!="boolean"?null:u.ended}function L(t,u){if(!y(t))return null;if(t.writableFinished===!0)return!0;const b=t._writableState;return b!=null&&b.errored?!1:typeof(b==null?void 0:b.finished)!="boolean"?null:!!(b.finished||u===!1&&b.ended===!0&&b.length===0)}function j(t){if(!d(t))return null;if(t.readableEnded===!0)return!0;const u=t._readableState;return!u||u.errored?!1:typeof(u==null?void 0:u.ended)!="boolean"?null:u.ended}function re(t,u){if(!d(t))return null;const b=t._readableState;return b!=null&&b.errored?!1:typeof(b==null?void 0:b.endEmitted)!="boolean"?null:!!(b.endEmitted||u===!1&&b.ended===!0&&b.length===0)}function Z(t){return t&&t[r]!=null?t[r]:typeof(t==null?void 0:t.readable)!="boolean"?null:K(t)?!1:d(t)&&t.readable&&!re(t)}function J(t){return t&&t[B]!=null?t[B]:typeof(t==null?void 0:t.writable)!="boolean"?null:K(t)?!1:y(t)&&t.writable&&!N(t)}function Ae(t,u){return w(t)?K(t)?!0:!((u==null?void 0:u.readable)!==!1&&Z(t)||(u==null?void 0:u.writable)!==!1&&J(t)):null}function E(t){var u,b;return w(t)?t.writableErrored?t.writableErrored:(u=(b=t._writableState)===null||b===void 0?void 0:b.errored)!==null&&u!==void 0?u:null:null}function e(t){var u,b;return w(t)?t.readableErrored?t.readableErrored:(u=(b=t._readableState)===null||b===void 0?void 0:b.errored)!==null&&u!==void 0?u:null:null}function A(t){if(!w(t))return null;if(typeof t.closed=="boolean")return t.closed;const u=t._writableState,b=t._readableState;return typeof(u==null?void 0:u.closed)=="boolean"||typeof(b==null?void 0:b.closed)=="boolean"?(u==null?void 0:u.closed)||(b==null?void 0:b.closed):typeof t._closed=="boolean"&&n(t)?t._closed:null}function n(t){return typeof t._closed=="boolean"&&typeof t._defaultKeepAlive=="boolean"&&typeof t._removedConnection=="boolean"&&typeof t._removedContLen=="boolean"}function a(t){return typeof t._sent100=="boolean"&&n(t)}function h(t){var u;return typeof t._consuming=="boolean"&&typeof t._dumped=="boolean"&&((u=t.req)===null||u===void 0?void 0:u.upgradeOrConnect)===void 0}function c(t){if(!w(t))return null;const u=t._writableState,b=t._readableState,R=u||b;return!R&&a(t)||!!(R&&R.autoDestroy&&R.emitClose&&R.closed===!1)}function C(t){var u;return!!(t&&((u=t[I])!==null&&u!==void 0?u:t.readableDidRead||t.readableAborted))}function g(t){var u,b,R,T,V,P,F,Y,W,te;return!!(t&&((u=(b=(R=(T=(V=(P=t[l])!==null&&P!==void 0?P:t.readableErrored)!==null&&V!==void 0?V:t.writableErrored)!==null&&T!==void 0?T:(F=t._readableState)===null||F===void 0?void 0:F.errorEmitted)!==null&&R!==void 0?R:(Y=t._writableState)===null||Y===void 0?void 0:Y.errorEmitted)!==null&&b!==void 0?b:(W=t._readableState)===null||W===void 0?void 0:W.errored)!==null&&u!==void 0?u:!((te=t._writableState)===null||te===void 0)&&te.errored))}return a8={isDestroyed:K,kIsDestroyed:f,isDisturbed:C,kIsDisturbed:I,isErrored:g,kIsErrored:l,isReadable:Z,kIsReadable:r,kIsClosedPromise:p,kControllerErrorFunction:Q,kIsWritable:B,isClosed:A,isDuplexNodeStream:v,isFinished:Ae,isIterable:S,isReadableNodeStream:d,isReadableStream:M,isReadableEnded:j,isReadableFinished:re,isReadableErrored:e,isNodeStream:w,isWebStream:D,isWritable:J,isWritableNodeStream:y,isWritableStream:m,isWritableEnded:N,isWritableFinished:L,isWritableErrored:E,isServerRequest:h,isServerResponse:a,willEmitClose:c,isTransformStream:x},a8}var w$;function _f(){if(w$)return yC.exports;w$=1;const o=mf(),{AbortError:i,codes:s}=An(),{ERR_INVALID_ARG_TYPE:f,ERR_STREAM_PREMATURE_CLOSE:l}=s,{kEmptyObject:r,once:B}=Ki(),{validateAbortSignal:I,validateFunction:p,validateObject:Q,validateBoolean:d}=Sd(),{Promise:y,PromisePrototypeThen:v,SymbolDispose:w}=wr(),{isClosed:M,isReadable:m,isReadableNodeStream:x,isReadableStream:D,isReadableFinished:S,isReadableErrored:K,isWritable:N,isWritableNodeStream:L,isWritableStream:j,isWritableFinished:re,isWritableErrored:Z,isNodeStream:J,willEmitClose:Ae,kIsClosedPromise:E}=Ms();let e;function A(C){return C.setHeader&&typeof C.abort=="function"}const n=()=>{};function a(C,g,t){var u,b;if(arguments.length===2?(t=g,g=r):g==null?g=r:Q(g,"options"),p(t,"callback"),I(g.signal,"options.signal"),t=B(t),D(C)||j(C))return h(C,g,t);if(!J(C))throw new f("stream",["ReadableStream","WritableStream","Stream"],C);const R=(u=g.readable)!==null&&u!==void 0?u:x(C),T=(b=g.writable)!==null&&b!==void 0?b:L(C),V=C._writableState,P=C._readableState,F=()=>{C.writable||te()};let Y=Ae(C)&&x(C)===R&&L(C)===T,W=re(C,!1);const te=()=>{W=!0,C.destroyed&&(Y=!1),!(Y&&(!C.readable||R))&&(!R||z)&&t.call(C)};let z=S(C,!1);const q=()=>{z=!0,C.destroyed&&(Y=!1),!(Y&&(!C.writable||T))&&(!T||W)&&t.call(C)},$=oe=>{t.call(C,oe)};let le=M(C);const ae=()=>{le=!0;const oe=Z(C)||K(C);if(oe&&typeof oe!="boolean")return t.call(C,oe);if(R&&!z&&x(C,!0)&&!S(C,!1))return t.call(C,new l);if(T&&!W&&!re(C,!1))return t.call(C,new l);t.call(C)},he=()=>{le=!0;const oe=Z(C)||K(C);if(oe&&typeof oe!="boolean")return t.call(C,oe);t.call(C)},xe=()=>{C.req.on("finish",te)};A(C)?(C.on("complete",te),Y||C.on("abort",ae),C.req?xe():C.on("request",xe)):T&&!V&&(C.on("end",F),C.on("close",F)),!Y&&typeof C.aborted=="boolean"&&C.on("aborted",ae),C.on("end",q),C.on("finish",te),g.error!==!1&&C.on("error",$),C.on("close",ae),le?o.nextTick(ae):V!=null&&V.errorEmitted||P!=null&&P.errorEmitted?Y||o.nextTick(he):(!R&&(!Y||m(C))&&(W||N(C)===!1)||!T&&(!Y||N(C))&&(z||m(C)===!1)||P&&C.req&&C.aborted)&&o.nextTick(he);const se=()=>{t=n,C.removeListener("aborted",ae),C.removeListener("complete",te),C.removeListener("abort",ae),C.removeListener("request",xe),C.req&&C.req.removeListener("finish",te),C.removeListener("end",F),C.removeListener("close",F),C.removeListener("finish",te),C.removeListener("end",q),C.removeListener("error",$),C.removeListener("close",ae)};if(g.signal&&!le){const oe=()=>{const Ue=t;se(),Ue.call(C,new i(void 0,{cause:g.signal.reason}))};if(g.signal.aborted)o.nextTick(oe);else{e=e||Ki().addAbortListener;const Ue=e(g.signal,oe),fe=t;t=B((...ce)=>{Ue[w](),fe.apply(C,ce)})}}return se}function h(C,g,t){let u=!1,b=n;if(g.signal)if(b=()=>{u=!0,t.call(C,new i(void 0,{cause:g.signal.reason}))},g.signal.aborted)o.nextTick(b);else{e=e||Ki().addAbortListener;const T=e(g.signal,b),V=t;t=B((...P)=>{T[w](),V.apply(C,P)})}const R=(...T)=>{u||o.nextTick(()=>t.apply(C,T))};return v(C[E].promise,R,R),n}function c(C,g){var t;let u=!1;return g===null&&(g=r),(t=g)!==null&&t!==void 0&&t.cleanup&&(d(g.cleanup,"cleanup"),u=g.cleanup),new y((b,R)=>{const T=a(C,g,V=>{u&&T(),V?R(V):b()})})}return yC.exports=a,yC.exports.finished=c,yC.exports}var s8,m$;function yu(){if(m$)return s8;m$=1;const o=mf(),{aggregateTwoErrors:i,codes:{ERR_MULTIPLE_CALLBACK:s},AbortError:f}=An(),{Symbol:l}=wr(),{kIsDestroyed:r,isDestroyed:B,isFinished:I,isServerRequest:p}=Ms(),Q=l("kDestroy"),d=l("kConstruct");function y(Ae,E,e){Ae&&(Ae.stack,E&&!E.errored&&(E.errored=Ae),e&&!e.errored&&(e.errored=Ae))}function v(Ae,E){const e=this._readableState,A=this._writableState,n=A||e;return A!=null&&A.destroyed||e!=null&&e.destroyed?(typeof E=="function"&&E(),this):(y(Ae,A,e),A&&(A.destroyed=!0),e&&(e.destroyed=!0),n.constructed?w(this,Ae,E):this.once(Q,function(a){w(this,i(a,Ae),E)}),this)}function w(Ae,E,e){let A=!1;function n(a){if(A)return;A=!0;const h=Ae._readableState,c=Ae._writableState;y(a,c,h),c&&(c.closed=!0),h&&(h.closed=!0),typeof e=="function"&&e(a),a?o.nextTick(M,Ae,a):o.nextTick(m,Ae)}try{Ae._destroy(E||null,n)}catch(a){n(a)}}function M(Ae,E){x(Ae,E),m(Ae)}function m(Ae){const E=Ae._readableState,e=Ae._writableState;e&&(e.closeEmitted=!0),E&&(E.closeEmitted=!0),(e!=null&&e.emitClose||E!=null&&E.emitClose)&&Ae.emit("close")}function x(Ae,E){const e=Ae._readableState,A=Ae._writableState;A!=null&&A.errorEmitted||e!=null&&e.errorEmitted||(A&&(A.errorEmitted=!0),e&&(e.errorEmitted=!0),Ae.emit("error",E))}function D(){const Ae=this._readableState,E=this._writableState;Ae&&(Ae.constructed=!0,Ae.closed=!1,Ae.closeEmitted=!1,Ae.destroyed=!1,Ae.errored=null,Ae.errorEmitted=!1,Ae.reading=!1,Ae.ended=Ae.readable===!1,Ae.endEmitted=Ae.readable===!1),E&&(E.constructed=!0,E.destroyed=!1,E.closed=!1,E.closeEmitted=!1,E.errored=null,E.errorEmitted=!1,E.finalCalled=!1,E.prefinished=!1,E.ended=E.writable===!1,E.ending=E.writable===!1,E.finished=E.writable===!1)}function S(Ae,E,e){const A=Ae._readableState,n=Ae._writableState;if(n!=null&&n.destroyed||A!=null&&A.destroyed)return this;A!=null&&A.autoDestroy||n!=null&&n.autoDestroy?Ae.destroy(E):E&&(E.stack,n&&!n.errored&&(n.errored=E),A&&!A.errored&&(A.errored=E),e?o.nextTick(x,Ae,E):x(Ae,E))}function K(Ae,E){if(typeof Ae._construct!="function")return;const e=Ae._readableState,A=Ae._writableState;e&&(e.constructed=!1),A&&(A.constructed=!1),Ae.once(d,E),!(Ae.listenerCount(d)>1)&&o.nextTick(N,Ae)}function N(Ae){let E=!1;function e(A){if(E){S(Ae,A??new s);return}E=!0;const n=Ae._readableState,a=Ae._writableState,h=a||n;n&&(n.constructed=!0),a&&(a.constructed=!0),h.destroyed?Ae.emit(Q,A):A?S(Ae,A,!0):o.nextTick(L,Ae)}try{Ae._construct(A=>{o.nextTick(e,A)})}catch(A){o.nextTick(e,A)}}function L(Ae){Ae.emit(d)}function j(Ae){return(Ae==null?void 0:Ae.setHeader)&&typeof Ae.abort=="function"}function re(Ae){Ae.emit("close")}function Z(Ae,E){Ae.emit("error",E),o.nextTick(re,Ae)}function J(Ae,E){!Ae||B(Ae)||(!E&&!I(Ae)&&(E=new f),p(Ae)?(Ae.socket=null,Ae.destroy(E)):j(Ae)?Ae.abort():j(Ae.req)?Ae.req.abort():typeof Ae.destroy=="function"?Ae.destroy(E):typeof Ae.close=="function"?Ae.close():E?o.nextTick(Z,Ae,E):o.nextTick(re,Ae),Ae.destroyed||(Ae[r]=!0))}return s8={construct:K,destroyer:J,destroy:v,undestroy:D,errorOrDestroy:S},s8}var f8,M$;function v_(){if(M$)return f8;M$=1;const{ArrayIsArray:o,ObjectSetPrototypeOf:i}=wr(),{EventEmitter:s}=Na();function f(r){s.call(this,r)}i(f.prototype,s.prototype),i(f,s),f.prototype.pipe=function(r,B){const I=this;function p(m){r.writable&&r.write(m)===!1&&I.pause&&I.pause()}I.on("data",p);function Q(){I.readable&&I.resume&&I.resume()}r.on("drain",Q),!r._isStdio&&(!B||B.end!==!1)&&(I.on("end",y),I.on("close",v));let d=!1;function y(){d||(d=!0,r.end())}function v(){d||(d=!0,typeof r.destroy=="function"&&r.destroy())}function w(m){M(),s.listenerCount(this,"error")===0&&this.emit("error",m)}l(I,"error",w),l(r,"error",w);function M(){I.removeListener("data",p),r.removeListener("drain",Q),I.removeListener("end",y),I.removeListener("close",v),I.removeListener("error",w),r.removeListener("error",w),I.removeListener("end",M),I.removeListener("close",M),r.removeListener("close",M)}return I.on("end",M),I.on("close",M),r.on("close",M),r.emit("pipe",I),r};function l(r,B,I){if(typeof r.prependListener=="function")return r.prependListener(B,I);!r._events||!r._events[B]?r.on(B,I):o(r._events[B])?r._events[B].unshift(I):r._events[B]=[I,r._events[B]]}return f8={Stream:f,prependListener:l},f8}var h8={exports:{}},b$;function fy(){return b$||(b$=1,function(o){const{SymbolDispose:i}=wr(),{AbortError:s,codes:f}=An(),{isNodeStream:l,isWebStream:r,kControllerErrorFunction:B}=Ms(),I=_f(),{ERR_INVALID_ARG_TYPE:p}=f;let Q;const d=(y,v)=>{if(typeof y!="object"||!("aborted"in y))throw new p(v,"AbortSignal",y)};o.exports.addAbortSignal=function(v,w){if(d(v,"signal"),!l(w)&&!r(w))throw new p("stream",["ReadableStream","WritableStream","Stream"],w);return o.exports.addAbortSignalNoValidate(v,w)},o.exports.addAbortSignalNoValidate=function(y,v){if(typeof y!="object"||!("aborted"in y))return v;const w=l(v)?()=>{v.destroy(new s(void 0,{cause:y.reason}))}:()=>{v[B](new s(void 0,{cause:y.reason}))};if(y.aborted)w();else{Q=Q||Ki().addAbortListener;const M=Q(y,w);I(v,M[i])}return v}}(h8)),h8.exports}var g8,D$;function BKe(){if(D$)return g8;D$=1;const{StringPrototypeSlice:o,SymbolIterator:i,TypedArrayPrototypeSet:s,Uint8Array:f}=wr(),{Buffer:l}=mr(),{inspect:r}=Ki();return g8=class{constructor(){this.head=null,this.tail=null,this.length=0}push(I){const p={data:I,next:null};this.length>0?this.tail.next=p:this.head=p,this.tail=p,++this.length}unshift(I){const p={data:I,next:this.head};this.length===0&&(this.tail=p),this.head=p,++this.length}shift(){if(this.length===0)return;const I=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,I}clear(){this.head=this.tail=null,this.length=0}join(I){if(this.length===0)return"";let p=this.head,Q=""+p.data;for(;(p=p.next)!==null;)Q+=I+p.data;return Q}concat(I){if(this.length===0)return l.alloc(0);const p=l.allocUnsafe(I>>>0);let Q=this.head,d=0;for(;Q;)s(p,Q.data,d),d+=Q.data.length,Q=Q.next;return p}consume(I,p){const Q=this.head.data;if(Iy.length)p+=y,I-=y.length;else{I===y.length?(p+=y,++d,Q.next?this.head=Q.next:this.head=this.tail=null):(p+=o(y,0,I),this.head=Q,Q.data=o(y,I));break}++d}while((Q=Q.next)!==null);return this.length-=d,p}_getBuffer(I){const p=l.allocUnsafe(I),Q=I;let d=this.head,y=0;do{const v=d.data;if(I>v.length)s(p,v,Q-I),I-=v.length;else{I===v.length?(s(p,v,Q-I),++y,d.next?this.head=d.next:this.head=this.tail=null):(s(p,new f(v.buffer,v.byteOffset,I),Q-I),this.head=d,d.data=v.slice(I));break}++y}while((d=d.next)!==null);return this.length-=y,p}[Symbol.for("nodejs.util.inspect.custom")](I,p){return r(this,{...p,depth:0,customInspect:!1})}},g8}var u8,S$;function hy(){if(S$)return u8;S$=1;const{MathFloor:o,NumberIsInteger:i}=wr(),{validateInteger:s}=Sd(),{ERR_INVALID_ARG_VALUE:f}=An().codes;let l=16*1024,r=16;function B(d,y,v){return d.highWaterMark!=null?d.highWaterMark:y?d[v]:null}function I(d){return d?r:l}function p(d,y){s(y,"value",0),d?r=y:l=y}function Q(d,y,v,w){const M=B(y,w,v);if(M!=null){if(!i(M)||M<0){const m=w?`options.${v}`:"options.highWaterMark";throw new f(m,M)}return o(M)}return I(d.objectMode)}return u8={getHighWaterMark:Q,getDefaultHighWaterMark:I,setDefaultHighWaterMark:p},u8}var c8,x$;function Wse(){if(x$)return c8;x$=1;const o=mf(),{PromisePrototypeThen:i,SymbolAsyncIterator:s,SymbolIterator:f}=wr(),{Buffer:l}=mr(),{ERR_INVALID_ARG_TYPE:r,ERR_STREAM_NULL_VALUES:B}=An().codes;function I(p,Q,d){let y;if(typeof Q=="string"||Q instanceof l)return new p({objectMode:!0,...d,read(){this.push(Q),this.push(null)}});let v;if(Q&&Q[s])v=!0,y=Q[s]();else if(Q&&Q[f])v=!1,y=Q[f]();else throw new r("iterable",["Iterable"],Q);const w=new p({objectMode:!0,highWaterMark:1,...d});let M=!1;w._read=function(){M||(M=!0,x())},w._destroy=function(D,S){i(m(D),()=>o.nextTick(S,D),K=>o.nextTick(S,K||D))};async function m(D){const S=D!=null,K=typeof y.throw=="function";if(S&&K){const{value:N,done:L}=await y.throw(D);if(await N,L)return}if(typeof y.return=="function"){const{value:N}=await y.return();await N}}async function x(){for(;;){try{const{value:D,done:S}=v?await y.next():y.next();if(S)w.push(null);else{const K=D&&typeof D.then=="function"?await D:D;if(K===null)throw M=!1,new B;if(w.push(K))continue;M=!1}}catch(D){w.destroy(D)}break}}return w}return c8=I,c8}var l8,R$;function gy(){if(R$)return l8;R$=1;const o=mf(),{ArrayPrototypeIndexOf:i,NumberIsInteger:s,NumberIsNaN:f,NumberParseInt:l,ObjectDefineProperties:r,ObjectKeys:B,ObjectSetPrototypeOf:I,Promise:p,SafeSet:Q,SymbolAsyncDispose:d,SymbolAsyncIterator:y,Symbol:v}=wr();l8=ce,ce.ReadableState=fe;const{EventEmitter:w}=Na(),{Stream:M,prependListener:m}=v_(),{Buffer:x}=mr(),{addAbortSignal:D}=fy(),S=_f();let K=Ki().debuglog("stream",Le=>{K=Le});const N=BKe(),L=yu(),{getHighWaterMark:j,getDefaultHighWaterMark:re}=hy(),{aggregateTwoErrors:Z,codes:{ERR_INVALID_ARG_TYPE:J,ERR_METHOD_NOT_IMPLEMENTED:Ae,ERR_OUT_OF_RANGE:E,ERR_STREAM_PUSH_AFTER_EOF:e,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:A},AbortError:n}=An(),{validateObject:a}=Sd(),h=v("kPaused"),{StringDecoder:c}=Gp(),C=Wse();I(ce.prototype,M.prototype),I(ce,M);const g=()=>{},{errorOrDestroy:t}=L,u=1,b=2,R=4,T=8,V=16,P=32,F=64,Y=128,W=256,te=512,z=1024,q=2048,$=4096,le=8192,ae=16384,he=32768,xe=65536,se=1<<17,oe=1<<18;function Ue(Le){return{enumerable:!1,get(){return(this.state&Le)!==0},set(ge){ge?this.state|=Le:this.state&=~Le}}}r(fe.prototype,{objectMode:Ue(u),ended:Ue(b),endEmitted:Ue(R),reading:Ue(T),constructed:Ue(V),sync:Ue(P),needReadable:Ue(F),emittedReadable:Ue(Y),readableListening:Ue(W),resumeScheduled:Ue(te),errorEmitted:Ue(z),emitClose:Ue(q),autoDestroy:Ue($),destroyed:Ue(le),closed:Ue(ae),closeEmitted:Ue(he),multiAwaitDrain:Ue(xe),readingMore:Ue(se),dataEmitted:Ue(oe)});function fe(Le,ge,ye){typeof ye!="boolean"&&(ye=ge instanceof Is()),this.state=q|$|V|P,Le&&Le.objectMode&&(this.state|=u),ye&&Le&&Le.readableObjectMode&&(this.state|=u),this.highWaterMark=Le?j(this,Le,"readableHighWaterMark",ye):re(!1),this.buffer=new N,this.length=0,this.pipes=[],this.flowing=null,this[h]=null,Le&&Le.emitClose===!1&&(this.state&=~q),Le&&Le.autoDestroy===!1&&(this.state&=~$),this.errored=null,this.defaultEncoding=Le&&Le.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,Le&&Le.encoding&&(this.decoder=new c(Le.encoding),this.encoding=Le.encoding)}function ce(Le){if(!(this instanceof ce))return new ce(Le);const ge=this instanceof Is();this._readableState=new fe(Le,this,ge),Le&&(typeof Le.read=="function"&&(this._read=Le.read),typeof Le.destroy=="function"&&(this._destroy=Le.destroy),typeof Le.construct=="function"&&(this._construct=Le.construct),Le.signal&&!ge&&D(Le.signal,this)),M.call(this,Le),L.construct(this,()=>{this._readableState.needReadable&&ee(this,this._readableState)})}ce.prototype.destroy=L.destroy,ce.prototype._undestroy=L.undestroy,ce.prototype._destroy=function(Le,ge){ge(Le)},ce.prototype[w.captureRejectionSymbol]=function(Le){this.destroy(Le)},ce.prototype[d]=function(){let Le;return this.destroyed||(Le=this.readableEnded?null:new n,this.destroy(Le)),new p((ge,ye)=>S(this,We=>We&&We!==Le?ye(We):ge(null)))},ce.prototype.push=function(Le,ge){return Te(this,Le,ge,!1)},ce.prototype.unshift=function(Le,ge){return Te(this,Le,ge,!0)};function Te(Le,ge,ye,We){K("readableAddChunk",ge);const pe=Le._readableState;let ke;if(pe.state&u||(typeof ge=="string"?(ye=ye||pe.defaultEncoding,pe.encoding!==ye&&(We&&pe.encoding?ge=x.from(ge,ye).toString(pe.encoding):(ge=x.from(ge,ye),ye=""))):ge instanceof x?ye="":M._isUint8Array(ge)?(ge=M._uint8ArrayToBuffer(ge),ye=""):ge!=null&&(ke=new J("chunk",["string","Buffer","Uint8Array"],ge))),ke)t(Le,ke);else if(ge===null)pe.state&=~T,k(Le,pe);else if(pe.state&u||ge&&ge.length>0)if(We)if(pe.state&R)t(Le,new A);else{if(pe.destroyed||pe.errored)return!1;ue(Le,pe,ge,!0)}else if(pe.ended)t(Le,new e);else{if(pe.destroyed||pe.errored)return!1;pe.state&=~T,pe.decoder&&!ye?(ge=pe.decoder.write(ge),pe.objectMode||ge.length!==0?ue(Le,pe,ge,!1):ee(Le,pe)):ue(Le,pe,ge,!1)}else We||(pe.state&=~T,ee(Le,pe));return!pe.ended&&(pe.length0?(ge.state&xe?ge.awaitDrainWriters.clear():ge.awaitDrainWriters=null,ge.dataEmitted=!0,Le.emit("data",ye)):(ge.length+=ge.objectMode?1:ye.length,We?ge.buffer.unshift(ye):ge.buffer.push(ye),ge.state&F&&G(Le)),ee(Le,ge)}ce.prototype.isPaused=function(){const Le=this._readableState;return Le[h]===!0||Le.flowing===!1},ce.prototype.setEncoding=function(Le){const ge=new c(Le);this._readableState.decoder=ge,this._readableState.encoding=this._readableState.decoder.encoding;const ye=this._readableState.buffer;let We="";for(const pe of ye)We+=ge.write(pe);return ye.clear(),We!==""&&ye.push(We),this._readableState.length=We.length,this};const Be=1073741824;function Ve(Le){if(Le>Be)throw new E("size","<= 1GiB",Le);return Le--,Le|=Le>>>1,Le|=Le>>>2,Le|=Le>>>4,Le|=Le>>>8,Le|=Le>>>16,Le++,Le}function H(Le,ge){return Le<=0||ge.length===0&&ge.ended?0:ge.state&u?1:f(Le)?ge.flowing&&ge.length?ge.buffer.first().length:ge.length:Le<=ge.length?Le:ge.ended?ge.length:0}ce.prototype.read=function(Le){K("read",Le),Le===void 0?Le=NaN:s(Le)||(Le=l(Le,10));const ge=this._readableState,ye=Le;if(Le>ge.highWaterMark&&(ge.highWaterMark=Ve(Le)),Le!==0&&(ge.state&=~Y),Le===0&&ge.needReadable&&((ge.highWaterMark!==0?ge.length>=ge.highWaterMark:ge.length>0)||ge.ended))return K("read: emitReadable",ge.length,ge.ended),ge.length===0&&ge.ended?ve(this):G(this),null;if(Le=H(Le,ge),Le===0&&ge.ended)return ge.length===0&&ve(this),null;let We=(ge.state&F)!==0;if(K("need readable",We),(ge.length===0||ge.length-Le0?pe=at(Le,ge):pe=null,pe===null?(ge.needReadable=ge.length<=ge.highWaterMark,Le=0):(ge.length-=Le,ge.multiAwaitDrain?ge.awaitDrainWriters.clear():ge.awaitDrainWriters=null),ge.length===0&&(ge.ended||(ge.needReadable=!0),ye!==Le&&ge.ended&&ve(this)),pe!==null&&!ge.errorEmitted&&!ge.closeEmitted&&(ge.dataEmitted=!0,this.emit("data",pe)),pe};function k(Le,ge){if(K("onEofChunk"),!ge.ended){if(ge.decoder){const ye=ge.decoder.end();ye&&ye.length&&(ge.buffer.push(ye),ge.length+=ge.objectMode?1:ye.length)}ge.ended=!0,ge.sync?G(Le):(ge.needReadable=!1,ge.emittedReadable=!0,O(Le))}}function G(Le){const ge=Le._readableState;K("emitReadable",ge.needReadable,ge.emittedReadable),ge.needReadable=!1,ge.emittedReadable||(K("emitReadable",ge.flowing),ge.emittedReadable=!0,o.nextTick(O,Le))}function O(Le){const ge=Le._readableState;K("emitReadable_",ge.destroyed,ge.length,ge.ended),!ge.destroyed&&!ge.errored&&(ge.length||ge.ended)&&(Le.emit("readable"),ge.emittedReadable=!1),ge.needReadable=!ge.flowing&&!ge.ended&&ge.length<=ge.highWaterMark,Je(Le)}function ee(Le,ge){!ge.readingMore&&ge.constructed&&(ge.readingMore=!0,o.nextTick(de,Le,ge))}function de(Le,ge){for(;!ge.reading&&!ge.ended&&(ge.length1&&We.pipes.includes(Le)&&(K("false write response, pause",We.awaitDrainWriters.size),We.awaitDrainWriters.add(Le)),ye.pause()),Ne||(Ne=ie(ye,Le),Le.on("drain",Ne))}ye.on("data",ft);function ft(Qt){K("ondata");const Et=Le.write(Qt);K("dest.write",Et),Et===!1&&Ge()}function De(Qt){if(K("onerror",Qt),tt(),Le.removeListener("error",De),Le.listenerCount("error")===0){const Et=Le._writableState||Le._readableState;Et&&!Et.errorEmitted?t(Le,Qt):Le.emit("error",Qt)}}m(Le,"error",De);function _e(){Le.removeListener("finish",At),tt()}Le.once("close",_e);function At(){K("onfinish"),Le.removeListener("close",_e),tt()}Le.once("finish",At);function tt(){K("unpipe"),ye.unpipe(Le)}return Le.emit("pipe",ye),Le.writableNeedDrain===!0?Ge():We.flowing||(K("pipe resume"),ye.resume()),Le};function ie(Le,ge){return function(){const We=Le._readableState;We.awaitDrainWriters===ge?(K("pipeOnDrain",1),We.awaitDrainWriters=null):We.multiAwaitDrain&&(K("pipeOnDrain",We.awaitDrainWriters.size),We.awaitDrainWriters.delete(ge)),(!We.awaitDrainWriters||We.awaitDrainWriters.size===0)&&Le.listenerCount("data")&&Le.resume()}}ce.prototype.unpipe=function(Le){const ge=this._readableState,ye={hasUnpiped:!1};if(ge.pipes.length===0)return this;if(!Le){const pe=ge.pipes;ge.pipes=[],this.pause();for(let ke=0;ke0,We.flowing!==!1&&this.resume()):Le==="readable"&&!We.endEmitted&&!We.readableListening&&(We.readableListening=We.needReadable=!0,We.flowing=!1,We.emittedReadable=!1,K("on readable",We.length,We.reading),We.length?G(this):We.reading||o.nextTick(Oe,this)),ye},ce.prototype.addListener=ce.prototype.on,ce.prototype.removeListener=function(Le,ge){const ye=M.prototype.removeListener.call(this,Le,ge);return Le==="readable"&&o.nextTick(Ee,this),ye},ce.prototype.off=ce.prototype.removeListener,ce.prototype.removeAllListeners=function(Le){const ge=M.prototype.removeAllListeners.apply(this,arguments);return(Le==="readable"||Le===void 0)&&o.nextTick(Ee,this),ge};function Ee(Le){const ge=Le._readableState;ge.readableListening=Le.listenerCount("readable")>0,ge.resumeScheduled&&ge[h]===!1?ge.flowing=!0:Le.listenerCount("data")>0?Le.resume():ge.readableListening||(ge.flowing=null)}function Oe(Le){K("readable nexttick read 0"),Le.read(0)}ce.prototype.resume=function(){const Le=this._readableState;return Le.flowing||(K("resume"),Le.flowing=!Le.readableListening,Ce(this,Le)),Le[h]=!1,this};function Ce(Le,ge){ge.resumeScheduled||(ge.resumeScheduled=!0,o.nextTick(Qe,Le,ge))}function Qe(Le,ge){K("resume",ge.reading),ge.reading||Le.read(0),ge.resumeScheduled=!1,Le.emit("resume"),Je(Le),ge.flowing&&!ge.reading&&Le.read(0)}ce.prototype.pause=function(){return K("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(K("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[h]=!0,this};function Je(Le){const ge=Le._readableState;for(K("flow",ge.flowing);ge.flowing&&Le.read()!==null;);}ce.prototype.wrap=function(Le){let ge=!1;Le.on("data",We=>{!this.push(We)&&Le.pause&&(ge=!0,Le.pause())}),Le.on("end",()=>{this.push(null)}),Le.on("error",We=>{t(this,We)}),Le.on("close",()=>{this.destroy()}),Le.on("destroy",()=>{this.destroy()}),this._read=()=>{ge&&Le.resume&&(ge=!1,Le.resume())};const ye=B(Le);for(let We=1;We{pe=ot?Z(pe,ot):null,ye(),ye=g});try{for(;;){const ot=Le.destroyed?null:Le.read();if(ot!==null)yield ot;else{if(pe)throw pe;if(pe===null)return;await new p(We)}}}catch(ot){throw pe=Z(pe,ot),pe}finally{(pe||(ge==null?void 0:ge.destroyOnReturn)!==!1)&&(pe===void 0||Le._readableState.autoDestroy)?L.destroyer(Le,null):(Le.off("readable",We),ke())}}r(ce.prototype,{readable:{__proto__:null,get(){const Le=this._readableState;return!!Le&&Le.readable!==!1&&!Le.destroyed&&!Le.errorEmitted&&!Le.endEmitted},set(Le){this._readableState&&(this._readableState.readable=!!Le)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(Le){this._readableState&&(this._readableState.flowing=Le)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(Le){this._readableState&&(this._readableState.destroyed=Le)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),r(fe.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[h]!==!1},set(Le){this[h]=!!Le}}}),ce._fromList=at;function at(Le,ge){if(ge.length===0)return null;let ye;return ge.objectMode?ye=ge.buffer.shift():!Le||Le>=ge.length?(ge.decoder?ye=ge.buffer.join(""):ge.buffer.length===1?ye=ge.buffer.first():ye=ge.buffer.concat(ge.length),ge.buffer.clear()):ye=ge.buffer.consume(Le,ge.decoder),ye}function ve(Le){const ge=Le._readableState;K("endReadable",ge.endEmitted),ge.endEmitted||(ge.ended=!0,o.nextTick(Ke,ge,Le))}function Ke(Le,ge){if(K("endReadableNT",Le.endEmitted,Le.length),!Le.errored&&!Le.closeEmitted&&!Le.endEmitted&&Le.length===0){if(Le.endEmitted=!0,ge.emit("end"),ge.writable&&ge.allowHalfOpen===!1)o.nextTick(nt,ge);else if(Le.autoDestroy){const ye=ge._writableState;(!ye||ye.autoDestroy&&(ye.finished||ye.writable===!1))&&ge.destroy()}}}function nt(Le){Le.writable&&!Le.writableEnded&&!Le.destroyed&&Le.end()}ce.from=function(Le,ge){return C(ce,Le,ge)};let we;function Re(){return we===void 0&&(we={}),we}return ce.fromWeb=function(Le,ge){return Re().newStreamReadableFromReadableStream(Le,ge)},ce.toWeb=function(Le,ge){return Re().newReadableStreamFromStreamReadable(Le,ge)},ce.wrap=function(Le,ge){var ye,We;return new ce({objectMode:(ye=(We=Le.readableObjectMode)!==null&&We!==void 0?We:Le.objectMode)!==null&&ye!==void 0?ye:!0,...ge,destroy(pe,ke){L.destroyer(Le,pe),ke(pe)}}).wrap(Le)},l8}var d8,k$;function w_(){if(k$)return d8;k$=1;const o=mf(),{ArrayPrototypeSlice:i,Error:s,FunctionPrototypeSymbolHasInstance:f,ObjectDefineProperty:l,ObjectDefineProperties:r,ObjectSetPrototypeOf:B,StringPrototypeToLowerCase:I,Symbol:p,SymbolHasInstance:Q}=wr();d8=a,a.WritableState=A;const{EventEmitter:d}=Na(),y=v_().Stream,{Buffer:v}=mr(),w=yu(),{addAbortSignal:M}=fy(),{getHighWaterMark:m,getDefaultHighWaterMark:x}=hy(),{ERR_INVALID_ARG_TYPE:D,ERR_METHOD_NOT_IMPLEMENTED:S,ERR_MULTIPLE_CALLBACK:K,ERR_STREAM_CANNOT_PIPE:N,ERR_STREAM_DESTROYED:L,ERR_STREAM_ALREADY_FINISHED:j,ERR_STREAM_NULL_VALUES:re,ERR_STREAM_WRITE_AFTER_END:Z,ERR_UNKNOWN_ENCODING:J}=An().codes,{errorOrDestroy:Ae}=w;B(a.prototype,y.prototype),B(a,y);function E(){}const e=p("kOnFinished");function A($,le,ae){typeof ae!="boolean"&&(ae=le instanceof Is()),this.objectMode=!!($&&$.objectMode),ae&&(this.objectMode=this.objectMode||!!($&&$.writableObjectMode)),this.highWaterMark=$?m(this,$,"writableHighWaterMark",ae):x(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;const he=!!($&&$.decodeStrings===!1);this.decodeStrings=!he,this.defaultEncoding=$&&$.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=t.bind(void 0,le),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,n(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!$||$.emitClose!==!1,this.autoDestroy=!$||$.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[e]=[]}function n($){$.buffered=[],$.bufferedIndex=0,$.allBuffers=!0,$.allNoop=!0}A.prototype.getBuffer=function(){return i(this.buffered,this.bufferedIndex)},l(A.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function a($){const le=this instanceof Is();if(!le&&!f(a,this))return new a($);this._writableState=new A($,this,le),$&&(typeof $.write=="function"&&(this._write=$.write),typeof $.writev=="function"&&(this._writev=$.writev),typeof $.destroy=="function"&&(this._destroy=$.destroy),typeof $.final=="function"&&(this._final=$.final),typeof $.construct=="function"&&(this._construct=$.construct),$.signal&&M($.signal,this)),y.call(this,$),w.construct(this,()=>{const ae=this._writableState;ae.writing||T(this,ae),Y(this,ae)})}l(a,Q,{__proto__:null,value:function($){return f(this,$)?!0:this!==a?!1:$&&$._writableState instanceof A}}),a.prototype.pipe=function(){Ae(this,new N)};function h($,le,ae,he){const xe=$._writableState;if(typeof ae=="function")he=ae,ae=xe.defaultEncoding;else{if(!ae)ae=xe.defaultEncoding;else if(ae!=="buffer"&&!v.isEncoding(ae))throw new J(ae);typeof he!="function"&&(he=E)}if(le===null)throw new re;if(!xe.objectMode)if(typeof le=="string")xe.decodeStrings!==!1&&(le=v.from(le,ae),ae="buffer");else if(le instanceof v)ae="buffer";else if(y._isUint8Array(le))le=y._uint8ArrayToBuffer(le),ae="buffer";else throw new D("chunk",["string","Buffer","Uint8Array"],le);let se;return xe.ending?se=new Z:xe.destroyed&&(se=new L("write")),se?(o.nextTick(he,se),Ae($,se,!0),se):(xe.pendingcb++,c($,xe,le,ae,he))}a.prototype.write=function($,le,ae){return h(this,$,le,ae)===!0},a.prototype.cork=function(){this._writableState.corked++},a.prototype.uncork=function(){const $=this._writableState;$.corked&&($.corked--,$.writing||T(this,$))},a.prototype.setDefaultEncoding=function(le){if(typeof le=="string"&&(le=I(le)),!v.isEncoding(le))throw new J(le);return this._writableState.defaultEncoding=le,this};function c($,le,ae,he,xe){const se=le.objectMode?1:ae.length;le.length+=se;const oe=le.lengthae.bufferedIndex&&T($,ae),he?ae.afterWriteTickInfo!==null&&ae.afterWriteTickInfo.cb===xe?ae.afterWriteTickInfo.count++:(ae.afterWriteTickInfo={count:1,cb:xe,stream:$,state:ae},o.nextTick(u,ae.afterWriteTickInfo)):b($,ae,1,xe))}function u({stream:$,state:le,count:ae,cb:he}){return le.afterWriteTickInfo=null,b($,le,ae,he)}function b($,le,ae,he){for(!le.ending&&!$.destroyed&&le.length===0&&le.needDrain&&(le.needDrain=!1,$.emit("drain"));ae-- >0;)le.pendingcb--,he();le.destroyed&&R(le),Y($,le)}function R($){if($.writing)return;for(let xe=$.bufferedIndex;xe<$.buffered.length;++xe){var le;const{chunk:se,callback:oe}=$.buffered[xe],Ue=$.objectMode?1:se.length;$.length-=Ue,oe((le=$.errored)!==null&&le!==void 0?le:new L("write"))}const ae=$[e].splice(0);for(let xe=0;xe1&&$._writev){le.pendingcb-=se-1;const Ue=le.allNoop?E:ce=>{for(let Te=oe;Te256?(ae.splice(0,oe),le.bufferedIndex=0):le.bufferedIndex=oe}le.bufferProcessing=!1}a.prototype._write=function($,le,ae){if(this._writev)this._writev([{chunk:$,encoding:le}],ae);else throw new S("_write()")},a.prototype._writev=null,a.prototype.end=function($,le,ae){const he=this._writableState;typeof $=="function"?(ae=$,$=null,le=null):typeof le=="function"&&(ae=le,le=null);let xe;if($!=null){const se=h(this,$,le);se instanceof s&&(xe=se)}return he.corked&&(he.corked=1,this.uncork()),xe||(!he.errored&&!he.ending?(he.ending=!0,Y(this,he,!0),he.ended=!0):he.finished?xe=new j("end"):he.destroyed&&(xe=new L("end"))),typeof ae=="function"&&(xe||he.finished?o.nextTick(ae,xe):he[e].push(ae)),this};function V($){return $.ending&&!$.destroyed&&$.constructed&&$.length===0&&!$.errored&&$.buffered.length===0&&!$.finished&&!$.writing&&!$.errorEmitted&&!$.closeEmitted}function P($,le){let ae=!1;function he(xe){if(ae){Ae($,xe??K());return}if(ae=!0,le.pendingcb--,xe){const se=le[e].splice(0);for(let oe=0;oe{V(xe)?W(he,xe):xe.pendingcb--},$,le)):V(le)&&(le.pendingcb++,W($,le))))}function W($,le){le.pendingcb--,le.finished=!0;const ae=le[e].splice(0);for(let he=0;he{if(R!=null)throw new M("nully","body",R)},R=>{m(u,R)});return u=new J({objectMode:!0,readable:!1,write:c,final(R){C(async()=>{try{await b,o.nextTick(R,null)}catch(T){o.nextTick(R,T)}})},destroy:g})}throw new M("Iterable, AsyncIterable or AsyncFunction",n,h)}if(j(A))return e(A.arrayBuffer());if(l(A))return N(J,A,{objectMode:!0,writable:!1});if(Q(A==null?void 0:A.readable)&&d(A==null?void 0:A.writable))return J.fromWeb(A);if(typeof(A==null?void 0:A.writable)=="object"||typeof(A==null?void 0:A.readable)=="object"){const h=A!=null&&A.readable?B(A==null?void 0:A.readable)?A==null?void 0:A.readable:e(A.readable):void 0,c=A!=null&&A.writable?I(A==null?void 0:A.writable)?A==null?void 0:A.writable:e(A.writable):void 0;return E({readable:h,writable:c})}const a=A==null?void 0:A.then;if(typeof a=="function"){let h;return Z(a,A,c=>{c!=null&&h.push(c),h.push(null)},c=>{m(h,c)}),h=new J({objectMode:!0,writable:!1,read(){}})}throw new w(n,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],A)};function Ae(e){let{promise:A,resolve:n}=K();const a=new re,h=a.signal;return{value:e(async function*(){for(;;){const C=A;A=null;const{chunk:g,done:t,cb:u}=await C;if(o.nextTick(u),t)return;if(h.aborted)throw new v(void 0,{cause:h.reason});({promise:A,resolve:n}=K()),yield g}}(),{signal:h}),write(C,g,t){const u=n;n=null,u({chunk:C,done:!1,cb:t})},final(C){const g=n;n=null,g({done:!0,cb:C})},destroy(C,g){a.abort(),g(C)}}}function E(e){const A=e.readable&&typeof e.readable.read!="function"?D.wrap(e.readable):e.readable,n=e.writable;let a=!!s(A),h=!!f(n),c,C,g,t,u;function b(R){const T=t;t=null,T?T(R):R&&u.destroy(R)}return u=new J({readableObjectMode:!!(A!=null&&A.readableObjectMode),writableObjectMode:!!(n!=null&&n.writableObjectMode),readable:a,writable:h}),h&&(y(n,R=>{h=!1,R&&m(A,R),b(R)}),u._write=function(R,T,V){n.write(R,T)?V():c=V},u._final=function(R){n.end(),C=R},n.on("drain",function(){if(c){const R=c;c=null,R()}}),n.on("finish",function(){if(C){const R=C;C=null,R()}})),a&&(y(A,R=>{a=!1,R&&m(A,R),b(R)}),A.on("readable",function(){if(g){const R=g;g=null,R()}}),A.on("end",function(){u.push(null)}),u._read=function(){for(;;){const R=A.read();if(R===null){g=u._read;return}if(!u.push(R))return}}),u._destroy=function(R,T){!R&&t!==null&&(R=new v),g=null,c=null,C=null,t===null?T(R):(t=T,m(n,R),m(A,R))},u}return I8}var B8,_$;function Is(){if(_$)return B8;_$=1;const{ObjectDefineProperties:o,ObjectGetOwnPropertyDescriptor:i,ObjectKeys:s,ObjectSetPrototypeOf:f}=wr();B8=B;const l=gy(),r=w_();f(B.prototype,l.prototype),f(B,l);{const d=s(r.prototype);for(let y=0;y{if(d){Q?Q(d):this.destroy(d);return}y!=null&&this.push(y),this.push(null),Q&&Q()}):(this.push(null),Q&&Q())}function p(){this._final!==I&&I.call(this)}return B.prototype._final=I,B.prototype._transform=function(Q,d,y){throw new s("_transform()")},B.prototype._write=function(Q,d,y){const v=this._readableState,w=this._writableState,M=v.length;this._transform(Q,d,(m,x)=>{if(m){y(m);return}x!=null&&this.push(x),w.ended||M===v.length||v.length{P=!0});const F=r(R,{readable:T,writable:V},Y=>{P=!Y});return{destroy:Y=>{P||(P=!0,I.destroyer(R,Y||new w("pipe")))},cleanup:F}}function a(R){return x(R[R.length-1],"streams[stream.length - 1]"),R.pop()}function h(R){if(S(R))return R;if(N(R))return c(R);throw new d("val",["Readable","Iterable","AsyncIterable"],R)}async function*c(R){e||(e=gy()),yield*e.prototype[f].call(R)}async function C(R,T,V,{end:P}){let F,Y=null;const W=q=>{if(q&&(F=q),Y){const $=Y;Y=null,$()}},te=()=>new s((q,$)=>{F?$(F):Y=()=>{F?$(F):q()}});T.on("drain",W);const z=r(T,{readable:!1},W);try{T.writableNeedDrain&&await te();for await(const q of R)T.write(q)||await te();P&&(T.end(),await te()),V()}catch(q){V(F!==q?Q(F,q):q)}finally{z(),T.off("drain",W)}}async function g(R,T,V,{end:P}){j(T)&&(T=T.writable);const F=T.getWriter();try{for await(const Y of R)await F.ready,F.write(Y).catch(()=>{});await F.ready,P&&await F.close(),V()}catch(Y){try{await F.abort(Y),V(Y)}catch(W){V(W)}}}function t(...R){return u(R,B(a(R)))}function u(R,T,V){if(R.length===1&&i(R[0])&&(R=R[0]),R.length<2)throw new v("streams");const P=new Ae,F=P.signal,Y=V==null?void 0:V.signal,W=[];D(Y,"options.signal");function te(){xe(new m)}A=A||Ki().addAbortListener;let z;Y&&(z=A(Y,te));let q,$;const le=[];let ae=0;function he(fe){xe(fe,--ae===0)}function xe(fe,ce){var Te;if(fe&&(!q||q.code==="ERR_STREAM_PREMATURE_CLOSE")&&(q=fe),!(!q&&!ce)){for(;le.length;)le.shift()(q);(Te=z)===null||Te===void 0||Te[l](),P.abort(),ce&&(q||W.forEach(ue=>ue()),o.nextTick(T,q,$))}}let se;for(let fe=0;fe0,Be=Te||(V==null?void 0:V.end)!==!1,Ve=fe===R.length-1;if(L(ce)){let H=function(k){k&&k.name!=="AbortError"&&k.code!=="ERR_STREAM_PREMATURE_CLOSE"&&he(k)};if(Be){const{destroy:k,cleanup:G}=n(ce,Te,ue);le.push(k),K(ce)&&Ve&&W.push(G)}ce.on("error",H),K(ce)&&Ve&&W.push(()=>{ce.removeListener("error",H)})}if(fe===0)if(typeof ce=="function"){if(se=ce({signal:F}),!S(se))throw new y("Iterable, AsyncIterable or Stream","source",se)}else S(ce)||N(ce)||j(ce)?se=ce:se=p.from(ce);else if(typeof ce=="function"){if(j(se)){var oe;se=h((oe=se)===null||oe===void 0?void 0:oe.readable)}else se=h(se);if(se=ce(se,{signal:F}),Te){if(!S(se,!0))throw new y("AsyncIterable",`transform[${fe-1}]`,se)}else{var Ue;E||(E=Zse());const H=new E({objectMode:!0}),k=(Ue=se)===null||Ue===void 0?void 0:Ue.then;if(typeof k=="function")ae++,k.call(se,ee=>{$=ee,ee!=null&&H.write(ee),Be&&H.end(),o.nextTick(he)},ee=>{H.destroy(ee),o.nextTick(he,ee)});else if(S(se,!0))ae++,C(se,H,he,{end:Be});else if(Z(se)||j(se)){const ee=se.readable||se;ae++,C(ee,H,he,{end:Be})}else throw new y("AsyncIterable or Promise","destination",se);se=H;const{destroy:G,cleanup:O}=n(se,!1,!0);le.push(G),Ve&&W.push(O)}}else if(L(ce)){if(N(se)){ae+=2;const H=b(se,ce,he,{end:Be});K(ce)&&Ve&&W.push(H)}else if(j(se)||Z(se)){const H=se.readable||se;ae++,C(H,ce,he,{end:Be})}else if(S(se))ae++,C(se,ce,he,{end:Be});else throw new d("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],se);se=ce}else if(re(ce)){if(N(se))ae++,g(h(se),ce,he,{end:Be});else if(Z(se)||S(se))ae++,g(se,ce,he,{end:Be});else if(j(se))ae++,g(se.readable,ce,he,{end:Be});else throw new d("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],se);se=ce}else se=p.from(ce)}return(F!=null&&F.aborted||Y!=null&&Y.aborted)&&o.nextTick(te),se}function b(R,T,V,{end:P}){let F=!1;if(T.on("close",()=>{F||V(new M)}),R.pipe(T,{end:!1}),P){let Y=function(){F=!0,T.end()};J(R)?o.nextTick(Y):R.once("end",Y)}else V();return r(R,{readable:!0,writable:!1},Y=>{const W=R._readableState;Y&&Y.code==="ERR_STREAM_PREMATURE_CLOSE"&&W&&W.ended&&!W.errored&&!W.errorEmitted?R.once("end",V).once("error",V):V(Y)}),r(T,{readable:!1,writable:!0},V)}return p8={pipelineImpl:u,pipeline:t},p8}var Q8,L$;function zse(){if(L$)return Q8;L$=1;const{pipeline:o}=m_(),i=Is(),{destroyer:s}=yu(),{isNodeStream:f,isReadable:l,isWritable:r,isWebStream:B,isTransformStream:I,isWritableStream:p,isReadableStream:Q}=Ms(),{AbortError:d,codes:{ERR_INVALID_ARG_VALUE:y,ERR_MISSING_ARGS:v}}=An(),w=_f();return Q8=function(...m){if(m.length===0)throw new v("streams");if(m.length===1)return i.from(m[0]);const x=[...m];if(typeof m[0]=="function"&&(m[0]=i.from(m[0])),typeof m[m.length-1]=="function"){const E=m.length-1;m[E]=i.from(m[E])}for(let E=0;E0&&!(r(m[E])||p(m[E])||I(m[E])))throw new y(`streams[${E}]`,x[E],"must be writable")}let D,S,K,N,L;function j(E){const e=N;N=null,e?e(E):E?L.destroy(E):!Ae&&!J&&L.destroy()}const re=m[0],Z=o(m,j),J=!!(r(re)||p(re)||I(re)),Ae=!!(l(Z)||Q(Z)||I(Z));if(L=new i({writableObjectMode:!!(re!=null&&re.writableObjectMode),readableObjectMode:!!(Z!=null&&Z.readableObjectMode),writable:J,readable:Ae}),J){if(f(re))L._write=function(e,A,n){re.write(e,A)?n():D=n},L._final=function(e){re.end(),S=e},re.on("drain",function(){if(D){const e=D;D=null,e()}});else if(B(re)){const A=(I(re)?re.writable:re).getWriter();L._write=async function(n,a,h){try{await A.ready,A.write(n).catch(()=>{}),h()}catch(c){h(c)}},L._final=async function(n){try{await A.ready,A.close().catch(()=>{}),S=n}catch(a){n(a)}}}const E=I(Z)?Z.readable:Z;w(E,()=>{if(S){const e=S;S=null,e()}})}if(Ae){if(f(Z))Z.on("readable",function(){if(K){const E=K;K=null,E()}}),Z.on("end",function(){L.push(null)}),L._read=function(){for(;;){const E=Z.read();if(E===null){K=L._read;return}if(!L.push(E))return}};else if(B(Z)){const e=(I(Z)?Z.readable:Z).getReader();L._read=async function(){for(;;)try{const{value:A,done:n}=await e.read();if(!L.push(A))return;if(n){L.push(null);return}}catch{return}}}}return L._destroy=function(E,e){!E&&N!==null&&(E=new d),K=null,D=null,S=null,N===null?e(E):(N=e,f(Z)&&s(Z,E))},L},Q8}var U$;function EKe(){if(U$)return QC;U$=1;const o=globalThis.AbortController||ql().AbortController,{codes:{ERR_INVALID_ARG_VALUE:i,ERR_INVALID_ARG_TYPE:s,ERR_MISSING_ARGS:f,ERR_OUT_OF_RANGE:l},AbortError:r}=An(),{validateAbortSignal:B,validateInteger:I,validateObject:p}=Sd(),Q=wr().Symbol("kWeak"),d=wr().Symbol("kResistStopPropagation"),{finished:y}=_f(),v=zse(),{addAbortSignalNoValidate:w}=fy(),{isWritable:M,isNodeStream:m}=Ms(),{deprecate:x}=Ki(),{ArrayPrototypePush:D,Boolean:S,MathFloor:K,Number:N,NumberIsNaN:L,Promise:j,PromiseReject:re,PromiseResolve:Z,PromisePrototypeThen:J,Symbol:Ae}=wr(),E=Ae("kEmpty"),e=Ae("kEof");function A(Y,W){if(W!=null&&p(W,"options"),(W==null?void 0:W.signal)!=null&&B(W.signal,"options.signal"),m(Y)&&!M(Y))throw new i("stream",Y,"must be writable");const te=v(this,Y);return W!=null&&W.signal&&w(W.signal,te),te}function n(Y,W){if(typeof Y!="function")throw new s("fn",["Function","AsyncFunction"],Y);W!=null&&p(W,"options"),(W==null?void 0:W.signal)!=null&&B(W.signal,"options.signal");let te=1;(W==null?void 0:W.concurrency)!=null&&(te=K(W.concurrency));let z=te-1;return(W==null?void 0:W.highWaterMark)!=null&&(z=K(W.highWaterMark)),I(te,"options.concurrency",1),I(z,"options.highWaterMark",0),z+=te,(async function*(){const $=Ki().AbortSignalAny([W==null?void 0:W.signal].filter(S)),le=this,ae=[],he={signal:$};let xe,se,oe=!1,Ue=0;function fe(){oe=!0,ce()}function ce(){Ue-=1,Te()}function Te(){se&&!oe&&Ue=z||Ue>=te)&&await new j(Ve=>{se=Ve})}ae.push(e)}catch(Be){const Ve=re(Be);J(Ve,ce,fe),ae.push(Ve)}finally{oe=!0,xe&&(xe(),xe=null)}}ue();try{for(;;){for(;ae.length>0;){const Be=await ae[0];if(Be===e)return;if($.aborted)throw new r;Be!==E&&(yield Be),ae.shift(),Te()}await new j(Be=>{xe=Be})}}finally{oe=!0,se&&(se(),se=null)}}).call(this)}function a(Y=void 0){return Y!=null&&p(Y,"options"),(Y==null?void 0:Y.signal)!=null&&B(Y.signal,"options.signal"),(async function*(){let te=0;for await(const q of this){var z;if(Y!=null&&(z=Y.signal)!==null&&z!==void 0&&z.aborted)throw new r({cause:Y.signal.reason});yield[te++,q]}}).call(this)}async function h(Y,W=void 0){for await(const te of t.call(this,Y,W))return!0;return!1}async function c(Y,W=void 0){if(typeof Y!="function")throw new s("fn",["Function","AsyncFunction"],Y);return!await h.call(this,async(...te)=>!await Y(...te),W)}async function C(Y,W){for await(const te of t.call(this,Y,W))return te}async function g(Y,W){if(typeof Y!="function")throw new s("fn",["Function","AsyncFunction"],Y);async function te(z,q){return await Y(z,q),E}for await(const z of n.call(this,te,W));}function t(Y,W){if(typeof Y!="function")throw new s("fn",["Function","AsyncFunction"],Y);async function te(z,q){return await Y(z,q)?z:E}return n.call(this,te,W)}class u extends f{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}async function b(Y,W,te){var z;if(typeof Y!="function")throw new s("reducer",["Function","AsyncFunction"],Y);te!=null&&p(te,"options"),(te==null?void 0:te.signal)!=null&&B(te.signal,"options.signal");let q=arguments.length>1;if(te!=null&&(z=te.signal)!==null&&z!==void 0&&z.aborted){const xe=new r(void 0,{cause:te.signal.reason});throw this.once("error",()=>{}),await y(this.destroy(xe)),xe}const $=new o,le=$.signal;if(te!=null&&te.signal){const xe={once:!0,[Q]:this,[d]:!0};te.signal.addEventListener("abort",()=>$.abort(),xe)}let ae=!1;try{for await(const xe of this){var he;if(ae=!0,te!=null&&(he=te.signal)!==null&&he!==void 0&&he.aborted)throw new r;q?W=await Y(W,xe,{signal:le}):(W=xe,q=!0)}if(!ae&&!q)throw new u}finally{$.abort()}return W}async function R(Y){Y!=null&&p(Y,"options"),(Y==null?void 0:Y.signal)!=null&&B(Y.signal,"options.signal");const W=[];for await(const z of this){var te;if(Y!=null&&(te=Y.signal)!==null&&te!==void 0&&te.aborted)throw new r(void 0,{cause:Y.signal.reason});D(W,z)}return W}function T(Y,W){const te=n.call(this,Y,W);return(async function*(){for await(const q of te)yield*q}).call(this)}function V(Y){if(Y=N(Y),L(Y))return 0;if(Y<0)throw new l("number",">= 0",Y);return Y}function P(Y,W=void 0){return W!=null&&p(W,"options"),(W==null?void 0:W.signal)!=null&&B(W.signal,"options.signal"),Y=V(Y),(async function*(){var z;if(W!=null&&(z=W.signal)!==null&&z!==void 0&&z.aborted)throw new r;for await(const $ of this){var q;if(W!=null&&(q=W.signal)!==null&&q!==void 0&&q.aborted)throw new r;Y--<=0&&(yield $)}}).call(this)}function F(Y,W=void 0){return W!=null&&p(W,"options"),(W==null?void 0:W.signal)!=null&&B(W.signal,"options.signal"),Y=V(Y),(async function*(){var z;if(W!=null&&(z=W.signal)!==null&&z!==void 0&&z.aborted)throw new r;for await(const $ of this){var q;if(W!=null&&(q=W.signal)!==null&&q!==void 0&&q.aborted)throw new r;if(Y-- >0&&(yield $),Y<=0)return}}).call(this)}return QC.streamReturningOperators={asIndexedPairs:x(a,"readable.asIndexedPairs will be removed in a future version."),drop:P,filter:t,flatMap:T,map:n,take:F,compose:A},QC.promiseReturningOperators={every:c,forEach:g,reduce:b,toArray:R,some:h,find:C},QC}var y8,q$;function $se(){if(q$)return y8;q$=1;const{ArrayPrototypePop:o,Promise:i}=wr(),{isIterable:s,isNodeStream:f,isWebStream:l}=Ms(),{pipelineImpl:r}=m_(),{finished:B}=_f();Xse();function I(...p){return new i((Q,d)=>{let y,v;const w=p[p.length-1];if(w&&typeof w=="object"&&!f(w)&&!s(w)&&!l(w)){const M=o(p);y=M.signal,v=M.end}r(p,(M,m)=>{M?d(M):Q(m)},{signal:y,end:v})})}return y8={finished:B,pipeline:I},y8}var H$;function Xse(){if(H$)return A8.exports;H$=1;const{Buffer:o}=mr(),{ObjectDefineProperty:i,ObjectKeys:s,ReflectApply:f}=wr(),{promisify:{custom:l}}=Ki(),{streamReturningOperators:r,promiseReturningOperators:B}=EKe(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:I}}=An(),p=zse(),{setDefaultHighWaterMark:Q,getDefaultHighWaterMark:d}=hy(),{pipeline:y}=m_(),{destroyer:v}=yu(),w=_f(),M=$se(),m=Ms(),x=A8.exports=v_().Stream;x.isDestroyed=m.isDestroyed,x.isDisturbed=m.isDisturbed,x.isErrored=m.isErrored,x.isReadable=m.isReadable,x.isWritable=m.isWritable,x.Readable=gy();for(const S of s(r)){let N=function(...L){if(new.target)throw I();return x.Readable.from(f(K,this,L))};const K=r[S];i(N,"name",{__proto__:null,value:K.name}),i(N,"length",{__proto__:null,value:K.length}),i(x.Readable.prototype,S,{__proto__:null,value:N,enumerable:!1,configurable:!0,writable:!0})}for(const S of s(B)){let N=function(...L){if(new.target)throw I();return f(K,this,L)};const K=B[S];i(N,"name",{__proto__:null,value:K.name}),i(N,"length",{__proto__:null,value:K.length}),i(x.Readable.prototype,S,{__proto__:null,value:N,enumerable:!1,configurable:!0,writable:!0})}x.Writable=w_(),x.Duplex=Is(),x.Transform=Vse(),x.PassThrough=Zse(),x.pipeline=y;const{addAbortSignal:D}=fy();return x.addAbortSignal=D,x.finished=w,x.destroy=v,x.compose=p,x.setDefaultHighWaterMark=Q,x.getDefaultHighWaterMark=d,i(x,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return M}}),i(y,l,{__proto__:null,enumerable:!0,get(){return M.pipeline}}),i(w,l,{__proto__:null,enumerable:!0,get(){return M.finished}}),x.Stream=x,x._isUint8Array=function(K){return K instanceof Uint8Array},x._uint8ArrayToBuffer=function(K){return o.from(K.buffer,K.byteOffset,K.byteLength)},A8.exports}var T$;function pKe(){return T$||(T$=1,function(o){const i=Xse(),s=$se(),f=i.Readable.destroy;o.exports=i.Readable,o.exports._uint8ArrayToBuffer=i._uint8ArrayToBuffer,o.exports._isUint8Array=i._isUint8Array,o.exports.isDisturbed=i.isDisturbed,o.exports.isErrored=i.isErrored,o.exports.isReadable=i.isReadable,o.exports.Readable=i.Readable,o.exports.Writable=i.Writable,o.exports.Duplex=i.Duplex,o.exports.Transform=i.Transform,o.exports.PassThrough=i.PassThrough,o.exports.addAbortSignal=i.addAbortSignal,o.exports.finished=i.finished,o.exports.destroy=i.destroy,o.exports.destroy=f,o.exports.pipeline=i.pipeline,o.exports.compose=i.compose,Object.defineProperty(i,"promises",{configurable:!0,enumerable:!0,get(){return s}}),o.exports.Stream=i.Stream,o.exports.default=o.exports}(t8)),t8.exports}pKe();function Y$(o,i,s){try{Reflect.apply(o,i,s)}catch(f){setTimeout(()=>{throw f})}}function QKe(o){const i=o.length,s=new Array(i);for(let f=0;f0&&([B]=s),B instanceof Error)throw B;const I=new Error(`Unhandled error.${B?` (${B.message})`:""}`);throw I.context=B,I}const r=l[i];if(r===void 0)return!1;if(typeof r=="function")Y$(r,this,s);else{const B=r.length,I=QKe(r);for(let p=0;p0}function Up(o){return!!o&&typeof o=="object"&&!Array.isArray(o)}function wKe(o){if(typeof o!="object"||o===null)return!1;try{let i=o;for(;Object.getPrototypeOf(i)!==null;)i=Object.getPrototypeOf(i);return Object.getPrototypeOf(o)===i}catch{return!1}}function mKe(o){return o>=-32099&&o<=-32e3}function tfe(o){const i=o;return!(!i||!efe(i.code)||!O$(i.message)||i.stack&&!O$(i.stack))}function uy(o,i=yKe){if(efe(o)){const s=o.toString();if(Object.hasOwn(J$,s))return J$[s].message;if(mKe(o))return vKe}return i}const MKe={code:P$,message:uy(P$)};function lk(o){try{JSON.parse(JSON.stringify(o,(i,s)=>{if(i==="__proto__"||i==="constructor")throw new Error("Not valid json");if(typeof s=="function"||typeof s=="symbol")throw new Error("Not valid json");return s}),(i,s)=>{if(!(i==="__proto__"||i==="constructor"))return s})}catch{return!1}return!0}function j$(o){return Object.getOwnPropertyNames(o).reduce((i,s)=>{const f=o[s];return lk(f)&&(i[s]=f),i},{})}function Afe(o){return Array.isArray(o)?o.map(i=>lk(i)?i:Up(i)?j$(i):null):Up(o)?j$(o):lk(o)?o:null}function bKe(o,i){if(o&&typeof o=="object"&&"serialize"in o&&typeof o.serialize=="function")return o.serialize();if(tfe(o))return o;const s=Afe(o);return RA(RA({},i),{},{data:{cause:s}})}function dk(o,{fallbackError:i=MKe,shouldIncludeStack:s=!0}={}){if(!tfe(i))throw new Error("Must provide fallback error with integer number code and string message.");const f=bKe(o,i);return s||delete f.stack,f}function DKe(o){return Up(o)&&Object.hasOwn(o,"cause")&&Up(o.cause)}function SKe(o){return Number.isInteger(o)&&o>=1e3&&o<=4999}function xKe(o,i){if(i!=="[Circular]")return i}class rfe extends Error{constructor(i,s,f){if(!Number.isInteger(i))throw new Error('"code" must be an integer.');if(!s||typeof s!="string")throw new Error('"message" must be a non-empty string.');DKe(f)?(super(s,{cause:f.cause}),FA(this,"cause",void 0),FA(this,"code",void 0),FA(this,"data",void 0),Object.hasOwn(this,"cause")||Object.assign(this,{cause:f.cause})):(super(s),FA(this,"cause",void 0),FA(this,"code",void 0),FA(this,"data",void 0)),f!==void 0&&(this.data=f),this.code=i,this.cause=f==null?void 0:f.cause}serialize(){const i={code:this.code,message:this.message};return this.data!==void 0&&(i.data=this.data,wKe(this.data)&&(i.data.cause=Afe(this.data.cause))),this.stack&&(i.stack=this.stack),i}toString(){return jse(this.serialize(),{replacer:xKe,space:2})}}class ife extends rfe{constructor(i,s,f){if(!SKe(i))throw new Error('"code" must be an integer such that: 1000 <= code <= 4999');super(i,s,f)}}function nfe(o){if(o){if(typeof o=="string")return[o];if(typeof o=="object"&&!Array.isArray(o)){const{message:i,data:s}=o;if(i&&typeof i!="string")throw new Error("Must specify string message.");return[i??void 0,s]}}return[]}function Wn(o,i){const[s,f]=nfe(i);return new rfe(o,s??uy(o),f)}function bc(o,i){const[s,f]=nfe(i);return new ife(o,s??uy(o),f)}const rr={parse:o=>Wn(fi.rpc.parse,o),invalidRequest:o=>Wn(fi.rpc.invalidRequest,o),invalidParams:o=>Wn(fi.rpc.invalidParams,o),methodNotFound:o=>Wn(fi.rpc.methodNotFound,o),internal:o=>Wn(fi.rpc.internal,o),server:o=>{if(!o||typeof o!="object"||Array.isArray(o))throw new Error("Ethereum RPC Server errors must provide single object argument.");const{code:i}=o;if(!Number.isInteger(i)||i>-32005||i<-32099)throw new Error('"code" must be an integer such that: -32099 <= code <= -32005');return Wn(i,o)},invalidInput:o=>Wn(fi.rpc.invalidInput,o),resourceNotFound:o=>Wn(fi.rpc.resourceNotFound,o),resourceUnavailable:o=>Wn(fi.rpc.resourceUnavailable,o),transactionRejected:o=>Wn(fi.rpc.transactionRejected,o),methodNotSupported:o=>Wn(fi.rpc.methodNotSupported,o),limitExceeded:o=>Wn(fi.rpc.limitExceeded,o)},Fo={userRejectedRequest:o=>bc(fi.provider.userRejectedRequest,o),unauthorized:o=>bc(fi.provider.unauthorized,o),unsupportedMethod:o=>bc(fi.provider.unsupportedMethod,o),disconnected:o=>bc(fi.provider.disconnected,o),chainDisconnected:o=>bc(fi.provider.chainDisconnected,o),custom:o=>{if(!o||typeof o!="object"||Array.isArray(o))throw new Error("Ethereum Provider custom errors must provide single object argument.");const{code:i,message:s,data:f}=o;if(!s||typeof s!="string")throw new Error('"message" must be a nonempty string');return new ife(i,s,f)}};function cy(o){return(i,s,f,l)=>{const r=o[i.method];return r===void 0?f():typeof r=="function"?r(i,s,f,l):(s.result=r,l())}}function Oi(o){return async(i,s,f,l)=>{let r;const B=new Promise(d=>{r=d});let I=null,p=!1;const Q=async()=>{p=!0,f(d=>{I=d,r()}),await B};try{await o(i,s,Q),p?(await B,I(null)):l(null)}catch(d){const y=d;I?I(y):l(y)}}}function Ik(o){const{message:i="",code:s=-32603,stack:f="Stack trace is not available.",data:l=""}=o,r=parseInt((s==null?void 0:s.toString())||"-32603");return{message:i||(o==null?void 0:o.toString())||uy(r),code:r,stack:f,data:l||i||(o==null?void 0:o.toString())}}class ga extends M_{constructor(){super(),FA(this,"_middleware",void 0),this._middleware=[]}static async _runAllMiddleware(i,s,f){const l=[];let r=null,B=!1;for(const I of f)if([r,B]=await ga._runMiddleware(i,s,I,l),B)break;return[r,B,l.reverse()]}static _runMiddleware(i,s,f,l){return new Promise(r=>{const B=p=>{const Q=p||s.error;Q&&(typeof Q=="object"&&Object.keys(Q).includes("stack")===!1&&(Q.stack="Stack trace is not available."),Lp.error(Q),s.error=dk(Q,{shouldIncludeStack:!0,fallbackError:Ik(Q)})),r([Q,!0])},I=p=>{s.error?B(s.error):(p&&(typeof p!="function"&&B(new Mc({code:-32603,message:"JRPCEngine: 'next' return handlers must be functions"})),l.push(p)),r([null,!1]))};try{f(i,s,I,B)}catch(p){B(p)}})}static async _runReturnHandlers(i){for(const s of i)await new Promise((f,l)=>{s(r=>r?l(r):f())})}static _checkForCompletion(i,s,f){if(!("result"in s)&&!("error"in s))throw new Mc({code:-32603,message:"Response has no error or result for request"});if(!f)throw new Mc({code:-32603,message:"Nothing ended request"})}push(i){this._middleware.push(i)}handle(i,s){if(s&&typeof s!="function")throw new Error('"callback" must be a function if provided.');return Array.isArray(i)?s?this._handleBatch(i,s):this._handleBatch(i):s?this._handle(i,s):this._promiseHandle(i)}asMiddleware(){return async(i,s,f,l)=>{try{const[r,B,I]=await ga._runAllMiddleware(i,s,this._middleware);return B?(await ga._runReturnHandlers(I),l(r)):f(async p=>{try{await ga._runReturnHandlers(I)}catch(Q){return p(Q)}return p()})}catch(r){return l(r)}}}async _handleBatch(i,s){try{const f=await Promise.all(i.map(this._promiseHandle.bind(this)));return s?s(null,f):f}catch(f){if(s)return s(f);throw f}}_promiseHandle(i){return new Promise((s,f)=>{this._handle(i,(l,r)=>{l&&r===void 0?f(l):s(r)}).catch(f)})}async _handle(i,s){if(!i||Array.isArray(i)||typeof i!="object"){const B=new Mc({code:-32603,message:"request must be plain object"});return s(B,{id:void 0,jsonrpc:"2.0",error:B})}if(typeof i.method!="string"){const B=new Mc({code:-32603,message:"method must be string"});return s(B,{id:i.id,jsonrpc:"2.0",error:B})}const f=RA({},i),l={id:f.id,jsonrpc:f.jsonrpc};let r=null;try{await this._processRequest(f,l)}catch(B){r=B}return r&&(delete l.result,l.error||(typeof r=="object"&&Object.keys(r).includes("stack")===!1&&(r.stack="Stack trace is not available."),Lp.error(r),l.error=dk(r,{shouldIncludeStack:!0,fallbackError:Ik(r)}))),s(r,l)}async _processRequest(i,s){const[f,l,r]=await ga._runAllMiddleware(i,s,this._middleware);if(ga._checkForCompletion(i,s,l),await ga._runReturnHandlers(r),f)throw f}}function ofe(o){const i=new ga;return o.forEach(s=>{i.push(s)}),i.asMiddleware()}function RKe(o){const i=new M_;return i.sendAsync=async s=>{const f=await o.handle(s);if(f.error){typeof f.error=="object"&&Object.keys(f.error).includes("stack")===!1&&(f.error.stack="Stack trace is not available."),Lp.error(f.error);const l=dk(f.error,{fallbackError:Ik(f.error),shouldIncludeStack:!0});throw rr.internal(l)}return f.result},i.send=(s,f)=>{if(typeof f!="function")throw new Error('Must provide callback to "send" method.');o.handle(s,f)},o.on&&o.on("notification",s=>{i.emit("data",null,s)}),i.request=async s=>{const f=RA(RA({},s),{},{id:Math.random().toString(36).slice(2),jsonrpc:"2.0"});return await i.sendAsync(f)},i}function xd(o,i){return!(typeof o!="string"||!o.match(/^0x[0-9A-Fa-f]*$/))}const wf=o=>{if(typeof o!="string")throw new Error(`[stripHexPrefix] input must be type 'string', received ${typeof o}`);return xd(o)?o.slice(2):o};function b_(o){let i=o;if(typeof i!="string")throw new Error(`[padToEven] value must be type 'string', received ${typeof i}`);return i.length%2&&(i=`0${i}`),i}const kKe=function(o){if(!(o instanceof Uint8Array)){const i=`This method only supports Uint8Array but input was: ${o}`;throw new Error(i)}},NKe=function(o){if(typeof o!="string"){const i=`This method only supports strings but input was: ${o}`;throw new Error(i)}},afe=BigInt(0),Bk={},Ck={};for(let o=0;o<16;o++){const i=o,s=o*16,f=o.toString(16).toLowerCase();Ck[f]=i,Ck[f.toUpperCase()]=i,Bk[f]=s,Bk[f.toUpperCase()]=s}function sfe(o){const i=o.length,s=new Uint8Array(i/2);for(let f=0;f{if(o.slice(0,2)==="0x")throw new Error("hex string is prefixed with 0x, should be unprefixed");return sfe(b_(o))},KKe=Array.from({length:256},(o,i)=>i.toString(16).padStart(2,"0")),FKe=o=>{let i="0x";if(o===void 0||o.length===0)return i;for(const s of o)i=`${i}${KKe[s]}`;return i},Ek=[];for(let o=0;o<=256*256-1;o++)Ek[o]=BigInt(o);const ffe=(o,i=!1)=>{i&&o.reverse();const s=FKe(o);return s==="0x"?afe:s.length===4?Ek[o[0]]:s.length===6?Ek[o[0]*256+o[1]]:BigInt(s)},Rd=o=>{if(typeof o!="string")throw new Error(`hex argument type ${typeof o} must be of type string`);if(!/^0x[0-9a-fA-F]*$/.test(o))throw new Error(`Input must be a 0x-prefixed hexadecimal string, got ${o}`);const i=o.slice(2);return sfe(i.length%2===0?i:b_(i))},GKe=o=>{if(!Number.isSafeInteger(o)||o<0)throw new Error(`Received an invalid integer type: ${o}`);return`0x${o.toString(16)}`},n0=o=>{const i=GKe(o);return Rd(i)},LKe=(o,i=!1)=>{const s=D_(`0x${b_(o.toString(16))}`);return i?s.reverse():s},D_=o=>{if(o==null)return new Uint8Array;if(Array.isArray(o)||o instanceof Uint8Array)return Uint8Array.from(o);if(typeof o=="string"){if(!xd(o))throw new Error(`Cannot convert string to Uint8Array. toBytes only supports 0x-prefixed hex strings and this string was given: ${o}`);return Rd(o)}if(typeof o=="number")return n0(o);if(typeof o=="bigint"){if(oBigInt.asIntN(256,ffe(o)),V$=o=>LKe(BigInt.asUintN(256,o)),ai=o=>typeof o!="string"||xd(o)?o:`0x${o}`,UKe=o=>`0x${o.toString(16)}`;BigInt("0xffffffffffffffff");BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");BigInt("115792089237316195423570985008687907853269984665640564039457584007913129639935");cu.CURVE.n;cu.CURVE.n/BigInt(2);BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");const qKe="0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470";Rd(qKe);const HKe="0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347";Rd(HKe);const TKe="0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421";Rd(TKe);Uint8Array.from([128]);BigInt(-1);BigInt(0);BigInt(1);BigInt(2);BigInt(3);BigInt(7);BigInt(8);BigInt(27);BigInt(28);BigInt(31);BigInt(32);BigInt(64);BigInt(128);BigInt(255);BigInt(256);BigInt(96);BigInt(100);BigInt(160);BigInt(224);BigInt(7922816251426434e13);BigInt(1461501637330903e33);BigInt(2695994666715064e52);BigInt(1e9);const YKe=function(o){try{NKe(o)}catch{return!1}return/^0x[0-9a-fA-F]{40}$/.test(o)},JKe=function(o,i=!1){if(kKe(o),i&&o.length!==64&&(o=cu.ProjectivePoint.fromHex(o).toRawBytes(!1).slice(1)),o.length!==64)throw new Error("Expected pubKey to be of length 64");return yi(o).subarray(-20)},PKe=JKe;var Z$;(function(o){o.String="string",o.Bytes="view",o.Number="number"})(Z$||(Z$={}));var z$;(function(o){o.String="string",o.Bytes="view",o.JSON="json"})(z$||(z$={}));var $$;(function(o){o[o.Number=0]="Number",o[o.BigInt=1]="BigInt",o[o.Uint8Array=2]="Uint8Array",o[o.PrefixedHexString=3]="PrefixedHexString"})($$||($$={}));var X$;(function(o){o[o.Deposit=0]="Deposit",o[o.Withdrawal=1]="Withdrawal",o[o.Consolidation=2]="Consolidation"})(X$||(X$={}));var t0;(function(o){o[o.Version=0]="Version",o[o.Balance=1]="Balance",o[o.Nonce=2]="Nonce",o[o.CodeHash=3]="CodeHash",o[o.CodeSize=4]="CodeSize"})(t0||(t0={}));n0(t0.Version);n0(t0.Balance);n0(t0.Nonce);n0(t0.CodeHash);n0(t0.CodeSize);BigInt(256)**BigInt(31);class OKe extends M_{constructor({config:i={},state:s={}}){super(),FA(this,"defaultConfig",{}),FA(this,"defaultState",{}),FA(this,"disabled",!1),FA(this,"name","BaseController"),FA(this,"initialConfig",void 0),FA(this,"initialState",void 0),FA(this,"internalConfig",this.defaultConfig),FA(this,"internalState",this.defaultState),this.initialState=s,this.initialConfig=i}get config(){return this.internalConfig}get state(){return this.internalState}configure(i,s=!1,f=!0){if(f){this.internalConfig=s?i:Object.assign(this.internalConfig,i);for(const l in this.internalConfig)typeof this.internalConfig[l]<"u"&&(this[l]=this.internalConfig[l])}else for(const l in i)typeof this.internalConfig[l]<"u"&&(this.internalConfig[l]=i[l],this[l]=i[l])}update(i,s=!1){this.internalState=RA(s?{}:RA({},this.internalState),i),this.emit("store",this.internalState)}initialize(){return this.internalState=this.defaultState,this.internalConfig=this.defaultConfig,this.configure(this.initialConfig),this.update(this.initialState),this}}const jKe=()=>!0,WKe=["newListener","removeListener"],VKe=o=>!WKe.includes(o);function ZKe(o,i){return typeof o.rawListeners<"u"?o.rawListeners(i):o.listeners(i)}function zKe(o,i){let f={}.eventFilter||jKe;if(typeof f=="string"&&f==="skipInternal"&&(f=VKe),typeof f!="function")throw new Error("createEventEmitterProxy - Invalid eventFilter");let l=o,r=I=>{if(l===I)return;const p=l;l=I,p.eventNames().filter(f).forEach(d=>{ZKe(p,d).forEach(y=>{I.on(d,y)})}),p.removeAllListeners()};return new Proxy({},{get:(I,p)=>p==="setTarget"?r:l[p],set:(I,p,Q)=>p==="setTarget"?(r=Q,!0):(l[p]=Q,!0),has:(I,p)=>p[0]==="_"?!1:p in l})}var $Ke=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,v8=Math.ceil,Zn=Math.floor,Pi="[BigNumber Error] ",eX=Pi+"Number primitive has more than 15 significant digits: ",xo=1e14,uA=14,w8=9007199254740991,m8=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],Af=1e7,Wr=1e9;function hfe(o){var i,s,f,l=S.prototype={constructor:S,toString:null,valueOf:null},r=new S(1),B=20,I=4,p=-7,Q=21,d=-1e7,y=1e7,v=!1,w=1,M=0,m={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},x="0123456789abcdefghijklmnopqrstuvwxyz",D=!0;function S(Z,J){var Ae,E,e,A,n,a,h,c,C=this;if(!(C instanceof S))return new S(Z,J);if(J==null){if(Z&&Z._isBigNumber===!0){C.s=Z.s,!Z.c||Z.e>y?C.c=C.e=null:Z.e=10;n/=10,A++);A>y?C.c=C.e=null:(C.e=A,C.c=[Z]);return}c=String(Z)}else{if(!$Ke.test(c=String(Z)))return f(C,c,a);C.s=c.charCodeAt(0)==45?(c=c.slice(1),-1):1}(A=c.indexOf("."))>-1&&(c=c.replace(".","")),(n=c.search(/e/i))>0?(A<0&&(A=n),A+=+c.slice(n+1),c=c.substring(0,n)):A<0&&(A=c.length)}else{if(Cr(J,2,x.length,"Base"),J==10&&D)return C=new S(Z),j(C,B+C.e+1,I);if(c=String(Z),a=typeof Z=="number"){if(Z*0!=0)return f(C,c,a,J);if(C.s=1/Z<0?(c=c.slice(1),-1):1,S.DEBUG&&c.replace(/^0\.0*|\./,"").length>15)throw Error(eX+Z)}else C.s=c.charCodeAt(0)===45?(c=c.slice(1),-1):1;for(Ae=x.slice(0,J),A=n=0,h=c.length;nA){A=h;continue}}else if(!e&&(c==c.toUpperCase()&&(c=c.toLowerCase())||c==c.toLowerCase()&&(c=c.toUpperCase()))){e=!0,n=-1,A=0;continue}return f(C,String(Z),a,J)}a=!1,c=s(c,J,10,C.s),(A=c.indexOf("."))>-1?c=c.replace(".",""):A=c.length}for(n=0;c.charCodeAt(n)===48;n++);for(h=c.length;c.charCodeAt(--h)===48;);if(c=c.slice(n,++h)){if(h-=n,a&&S.DEBUG&&h>15&&(Z>w8||Z!==Zn(Z)))throw Error(eX+C.s*Z);if((A=A-n-1)>y)C.c=C.e=null;else if(A=-Wr&&e<=Wr&&e===Zn(e)){if(E[0]===0){if(e===0&&E.length===1)return!0;break e}if(J=(e+1)%uA,J<1&&(J+=uA),String(E[0]).length==J){for(J=0;J=xo||Ae!==Zn(Ae))break e;if(Ae!==0)return!0}}}else if(E===null&&e===null&&(A===null||A===1||A===-1))return!0;throw Error(Pi+"Invalid BigNumber: "+Z)},S.maximum=S.max=function(){return N(arguments,-1)},S.minimum=S.min=function(){return N(arguments,1)},S.random=function(){var Z=9007199254740992,J=Math.random()*Z&2097151?function(){return Zn(Math.random()*Z)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(Ae){var E,e,A,n,a,h=0,c=[],C=new S(r);if(Ae==null?Ae=B:Cr(Ae,0,Wr),n=v8(Ae/uA),v)if(crypto.getRandomValues){for(E=crypto.getRandomValues(new Uint32Array(n*=2));h>>11),a>=9e15?(e=crypto.getRandomValues(new Uint32Array(2)),E[h]=e[0],E[h+1]=e[1]):(c.push(a%1e14),h+=2);h=n/2}else if(crypto.randomBytes){for(E=crypto.randomBytes(n*=7);h=9e15?crypto.randomBytes(7).copy(E,h):(c.push(a%1e14),h+=7);h=n/7}else throw v=!1,Error(Pi+"crypto unavailable");if(!v)for(;h=10;a/=10,h++);he-1&&(a[n+1]==null&&(a[n+1]=0),a[n+1]+=a[n]/e|0,a[n]%=e)}return a.reverse()}return function(Ae,E,e,A,n){var a,h,c,C,g,t,u,b,R=Ae.indexOf("."),T=B,V=I;for(R>=0&&(C=M,M=0,Ae=Ae.replace(".",""),b=new S(E),t=b.pow(Ae.length-R),M=C,b.c=J(Za(Vn(t.c),t.e,"0"),10,e,Z),b.e=b.c.length),u=J(Ae,E,e,n?(a=x,Z):(a=Z,x)),c=C=u.length;u[--C]==0;u.pop());if(!u[0])return a.charAt(0);if(R<0?--c:(t.c=u,t.e=c,t.s=A,t=i(t,b,T,V,e),u=t.c,g=t.r,c=t.e),h=c+T+1,R=u[h],C=e/2,g=g||h<0||u[h+1]!=null,g=V<4?(R!=null||g)&&(V==0||V==(t.s<0?3:2)):R>C||R==C&&(V==4||g||V==6&&u[h-1]&1||V==(t.s<0?8:7)),h<1||!u[0])Ae=g?Za(a.charAt(1),-T,a.charAt(0)):a.charAt(0);else{if(u.length=h,g)for(--e;++u[--h]>e;)u[h]=0,h||(++c,u=[1].concat(u));for(C=u.length;!u[--C];);for(R=0,Ae="";R<=C;Ae+=a.charAt(u[R++]));Ae=Za(Ae,c,a.charAt(0))}return Ae}}(),i=function(){function Z(E,e,A){var n,a,h,c,C=0,g=E.length,t=e%Af,u=e/Af|0;for(E=E.slice();g--;)h=E[g]%Af,c=E[g]/Af|0,n=u*h+c*t,a=t*h+n%Af*Af+C,C=(a/A|0)+(n/Af|0)+u*c,E[g]=a%A;return C&&(E=[C].concat(E)),E}function J(E,e,A,n){var a,h;if(A!=n)h=A>n?1:-1;else for(a=h=0;ae[a]?1:-1;break}return h}function Ae(E,e,A,n){for(var a=0;A--;)E[A]-=a,a=E[A]1;E.splice(0,1));}return function(E,e,A,n,a){var h,c,C,g,t,u,b,R,T,V,P,F,Y,W,te,z,q,$=E.s==e.s?1:-1,le=E.c,ae=e.c;if(!le||!le[0]||!ae||!ae[0])return new S(!E.s||!e.s||(le?ae&&le[0]==ae[0]:!ae)?NaN:le&&le[0]==0||!ae?$*0:$/0);for(R=new S($),T=R.c=[],c=E.e-e.e,$=A+c+1,a||(a=xo,c=zn(E.e/uA)-zn(e.e/uA),$=$/uA|0),C=0;ae[C]==(le[C]||0);C++);if(ae[C]>(le[C]||0)&&c--,$<0)T.push(1),g=!0;else{for(W=le.length,z=ae.length,C=0,$+=2,t=Zn(a/(ae[0]+1)),t>1&&(ae=Z(ae,t,a),le=Z(le,t,a),z=ae.length,W=le.length),Y=z,V=le.slice(0,z),P=V.length;P=a/2&&te++;do{if(t=0,h=J(ae,V,z,P),h<0){if(F=V[0],z!=P&&(F=F*a+(V[1]||0)),t=Zn(F/te),t>1)for(t>=a&&(t=a-1),u=Z(ae,t,a),b=u.length,P=V.length;J(u,V,b,P)==1;)t--,Ae(u,z=10;$/=10,C++);j(R,A+(R.e=C+c*uA-1)+1,n,g)}else R.e=c,R.r=+g;return R}}();function K(Z,J,Ae,E){var e,A,n,a,h;if(Ae==null?Ae=I:Cr(Ae,0,8),!Z.c)return Z.toString();if(e=Z.c[0],n=Z.e,J==null)h=Vn(Z.c),h=E==1||E==2&&(n<=p||n>=Q)?wC(h,n):Za(h,n,"0");else if(Z=j(new S(Z),J,Ae),A=Z.e,h=Vn(Z.c),a=h.length,E==1||E==2&&(J<=A||A<=p)){for(;aa){if(--J>0)for(h+=".";J--;h+="0");}else if(J+=A-a,J>0)for(A+1==a&&(h+=".");J--;h+="0");return Z.s<0&&e?"-"+h:h}function N(Z,J){for(var Ae,E,e=1,A=new S(Z[0]);e=10;e/=10,E++);return(Ae=E+Ae*uA-1)>y?Z.c=Z.e=null:Ae=10;a/=10,e++);if(A=J-e,A<0)A+=uA,n=J,h=g[c=0],C=Zn(h/t[e-n-1]%10);else if(c=v8((A+1)/uA),c>=g.length)if(E){for(;g.length<=c;g.push(0));h=C=0,e=1,A%=uA,n=A-uA+1}else break e;else{for(h=a=g[c],e=1;a>=10;a/=10,e++);A%=uA,n=A-uA+e,C=n<0?0:Zn(h/t[e-n-1]%10)}if(E=E||J<0||g[c+1]!=null||(n<0?h:h%t[e-n-1]),E=Ae<4?(C||E)&&(Ae==0||Ae==(Z.s<0?3:2)):C>5||C==5&&(Ae==4||E||Ae==6&&(A>0?n>0?h/t[e-n]:0:g[c-1])%10&1||Ae==(Z.s<0?8:7)),J<1||!g[0])return g.length=0,E?(J-=Z.e+1,g[0]=t[(uA-J%uA)%uA],Z.e=-J||0):g[0]=Z.e=0,Z;if(A==0?(g.length=c,a=1,c--):(g.length=c+1,a=t[uA-A],g[c]=n>0?Zn(h/t[e-n]%t[n])*a:0),E)for(;;)if(c==0){for(A=1,n=g[0];n>=10;n/=10,A++);for(n=g[0]+=a,a=1;n>=10;n/=10,a++);A!=a&&(Z.e++,g[0]==xo&&(g[0]=1));break}else{if(g[c]+=a,g[c]!=xo)break;g[c--]=0,a=1}for(A=g.length;g[--A]===0;g.pop());}Z.e>y?Z.c=Z.e=null:Z.e=Q?wC(J,Ae):Za(J,Ae,"0"),Z.s<0?"-"+J:J)}return l.absoluteValue=l.abs=function(){var Z=new S(this);return Z.s<0&&(Z.s=1),Z},l.comparedTo=function(Z,J){return sh(this,new S(Z,J))},l.decimalPlaces=l.dp=function(Z,J){var Ae,E,e,A=this;if(Z!=null)return Cr(Z,0,Wr),J==null?J=I:Cr(J,0,8),j(new S(A),Z+A.e+1,J);if(!(Ae=A.c))return null;if(E=((e=Ae.length-1)-zn(this.e/uA))*uA,e=Ae[e])for(;e%10==0;e/=10,E--);return E<0&&(E=0),E},l.dividedBy=l.div=function(Z,J){return i(this,new S(Z,J),B,I)},l.dividedToIntegerBy=l.idiv=function(Z,J){return i(this,new S(Z,J),0,1)},l.exponentiatedBy=l.pow=function(Z,J){var Ae,E,e,A,n,a,h,c,C,g=this;if(Z=new S(Z),Z.c&&!Z.isInteger())throw Error(Pi+"Exponent not an integer: "+re(Z));if(J!=null&&(J=new S(J)),a=Z.e>14,!g.c||!g.c[0]||g.c[0]==1&&!g.e&&g.c.length==1||!Z.c||!Z.c[0])return C=new S(Math.pow(+re(g),a?Z.s*(2-vC(Z)):+re(Z))),J?C.mod(J):C;if(h=Z.s<0,J){if(J.c?!J.c[0]:!J.s)return new S(NaN);E=!h&&g.isInteger()&&J.isInteger(),E&&(g=g.mod(J))}else{if(Z.e>9&&(g.e>0||g.e<-1||(g.e==0?g.c[0]>1||a&&g.c[1]>=24e7:g.c[0]<8e13||a&&g.c[0]<=9999975e7)))return A=g.s<0&&vC(Z)?-0:0,g.e>-1&&(A=1/A),new S(h?1/A:A);M&&(A=v8(M/uA+2))}for(a?(Ae=new S(.5),h&&(Z.s=1),c=vC(Z)):(e=Math.abs(+re(Z)),c=e%2),C=new S(r);;){if(c){if(C=C.times(g),!C.c)break;A?C.c.length>A&&(C.c.length=A):E&&(C=C.mod(J))}if(e){if(e=Zn(e/2),e===0)break;c=e%2}else if(Z=Z.times(Ae),j(Z,Z.e+1,1),Z.e>14)c=vC(Z);else{if(e=+re(Z),e===0)break;c=e%2}g=g.times(g),A?g.c&&g.c.length>A&&(g.c.length=A):E&&(g=g.mod(J))}return E?C:(h&&(C=r.div(C)),J?C.mod(J):A?j(C,M,I,n):C)},l.integerValue=function(Z){var J=new S(this);return Z==null?Z=I:Cr(Z,0,8),j(J,J.e+1,Z)},l.isEqualTo=l.eq=function(Z,J){return sh(this,new S(Z,J))===0},l.isFinite=function(){return!!this.c},l.isGreaterThan=l.gt=function(Z,J){return sh(this,new S(Z,J))>0},l.isGreaterThanOrEqualTo=l.gte=function(Z,J){return(J=sh(this,new S(Z,J)))===1||J===0},l.isInteger=function(){return!!this.c&&zn(this.e/uA)>this.c.length-2},l.isLessThan=l.lt=function(Z,J){return sh(this,new S(Z,J))<0},l.isLessThanOrEqualTo=l.lte=function(Z,J){return(J=sh(this,new S(Z,J)))===-1||J===0},l.isNaN=function(){return!this.s},l.isNegative=function(){return this.s<0},l.isPositive=function(){return this.s>0},l.isZero=function(){return!!this.c&&this.c[0]==0},l.minus=function(Z,J){var Ae,E,e,A,n=this,a=n.s;if(Z=new S(Z,J),J=Z.s,!a||!J)return new S(NaN);if(a!=J)return Z.s=-J,n.plus(Z);var h=n.e/uA,c=Z.e/uA,C=n.c,g=Z.c;if(!h||!c){if(!C||!g)return C?(Z.s=-J,Z):new S(g?n:NaN);if(!C[0]||!g[0])return g[0]?(Z.s=-J,Z):new S(C[0]?n:I==3?-0:0)}if(h=zn(h),c=zn(c),C=C.slice(),a=h-c){for((A=a<0)?(a=-a,e=C):(c=h,e=g),e.reverse(),J=a;J--;e.push(0));e.reverse()}else for(E=(A=(a=C.length)<(J=g.length))?a:J,a=J=0;J0)for(;J--;C[Ae++]=0);for(J=xo-1;E>a;){if(C[--E]=0;){for(Ae=0,t=F[e]%T,u=F[e]/T|0,n=h,A=e+n;A>e;)c=P[--n]%T,C=P[n]/T|0,a=u*c+C*t,c=t*c+a%T*T+b[A]+Ae,Ae=(c/R|0)+(a/T|0)+u*C,b[A--]=c%R;b[A]=Ae}return Ae?++E:b.splice(0,1),L(Z,b,E)},l.negated=function(){var Z=new S(this);return Z.s=-Z.s||null,Z},l.plus=function(Z,J){var Ae,E=this,e=E.s;if(Z=new S(Z,J),J=Z.s,!e||!J)return new S(NaN);if(e!=J)return Z.s=-J,E.minus(Z);var A=E.e/uA,n=Z.e/uA,a=E.c,h=Z.c;if(!A||!n){if(!a||!h)return new S(e/0);if(!a[0]||!h[0])return h[0]?Z:new S(a[0]?E:e*0)}if(A=zn(A),n=zn(n),a=a.slice(),e=A-n){for(e>0?(n=A,Ae=h):(e=-e,Ae=a),Ae.reverse();e--;Ae.push(0));Ae.reverse()}for(e=a.length,J=h.length,e-J<0&&(Ae=h,h=a,a=Ae,J=e),e=0;J;)e=(a[--J]=a[J]+h[J]+e)/xo|0,a[J]=xo===a[J]?0:a[J]%xo;return e&&(a=[e].concat(a),++n),L(Z,a,n)},l.precision=l.sd=function(Z,J){var Ae,E,e,A=this;if(Z!=null&&Z!==!!Z)return Cr(Z,1,Wr),J==null?J=I:Cr(J,0,8),j(new S(A),Z,J);if(!(Ae=A.c))return null;if(e=Ae.length-1,E=e*uA+1,e=Ae[e]){for(;e%10==0;e/=10,E--);for(e=Ae[0];e>=10;e/=10,E++);}return Z&&A.e+1>E&&(E=A.e+1),E},l.shiftedBy=function(Z){return Cr(Z,-w8,w8),this.times("1e"+Z)},l.squareRoot=l.sqrt=function(){var Z,J,Ae,E,e,A=this,n=A.c,a=A.s,h=A.e,c=B+4,C=new S("0.5");if(a!==1||!n||!n[0])return new S(!a||a<0&&(!n||n[0])?NaN:n?A:1/0);if(a=Math.sqrt(+re(A)),a==0||a==1/0?(J=Vn(n),(J.length+h)%2==0&&(J+="0"),a=Math.sqrt(+J),h=zn((h+1)/2)-(h<0||h%2),a==1/0?J="5e"+h:(J=a.toExponential(),J=J.slice(0,J.indexOf("e")+1)+h),Ae=new S(J)):Ae=new S(a+""),Ae.c[0]){for(h=Ae.e,a=h+c,a<3&&(a=0);;)if(e=Ae,Ae=C.times(e.plus(i(A,e,c,1))),Vn(e.c).slice(0,a)===(J=Vn(Ae.c)).slice(0,a))if(Ae.e0&&b>0){for(A=b%a||a,C=u.substr(0,A);A0&&(C+=c+u.slice(A)),t&&(C="-"+C)}E=g?C+(Ae.decimalSeparator||"")+((h=+Ae.fractionGroupSize)?g.replace(new RegExp("\\d{"+h+"}\\B","g"),"$&"+(Ae.fractionGroupSeparator||"")):g):C}return(Ae.prefix||"")+E+(Ae.suffix||"")},l.toFraction=function(Z){var J,Ae,E,e,A,n,a,h,c,C,g,t,u=this,b=u.c;if(Z!=null&&(a=new S(Z),!a.isInteger()&&(a.c||a.s!==1)||a.lt(r)))throw Error(Pi+"Argument "+(a.isInteger()?"out of range: ":"not an integer: ")+re(a));if(!b)return new S(u);for(J=new S(r),c=Ae=new S(r),E=h=new S(r),t=Vn(b),A=J.e=t.length-u.e-1,J.c[0]=m8[(n=A%uA)<0?uA+n:n],Z=!Z||a.comparedTo(J)>0?A>0?J:c:a,n=y,y=1/0,a=new S(t),h.c[0]=0;C=i(a,J,0,1),e=Ae.plus(C.times(E)),e.comparedTo(Z)!=1;)Ae=E,E=e,c=h.plus(C.times(e=c)),h=e,J=a.minus(C.times(e=J)),a=e;return e=i(Z.minus(Ae),E,0,1),h=h.plus(e.times(c)),Ae=Ae.plus(e.times(E)),h.s=c.s=u.s,A=A*2,g=i(c,E,A,I).minus(u).abs().comparedTo(i(h,Ae,A,I).minus(u).abs())<1?[c,E]:[h,Ae],y=n,g},l.toNumber=function(){return+re(this)},l.toPrecision=function(Z,J){return Z!=null&&Cr(Z,1,Wr),K(this,Z,J,2)},l.toString=function(Z){var J,Ae=this,E=Ae.s,e=Ae.e;return e===null?E?(J="Infinity",E<0&&(J="-"+J)):J="NaN":(Z==null?J=e<=p||e>=Q?wC(Vn(Ae.c),e):Za(Vn(Ae.c),e,"0"):Z===10&&D?(Ae=j(new S(Ae),B+e+1,I),J=Za(Vn(Ae.c),Ae.e,"0")):(Cr(Z,2,x.length,"Base"),J=s(Za(Vn(Ae.c),e,"0"),10,Z,E,!0)),E<0&&Ae.c[0]&&(J="-"+J)),J},l.valueOf=l.toJSON=function(){return re(this)},l._isBigNumber=!0,l[Symbol.toStringTag]="BigNumber",l[Symbol.for("nodejs.util.inspect.custom")]=l.valueOf,o!=null&&S.set(o),S}function zn(o){var i=o|0;return o>0||o===i?i:i-1}function Vn(o){for(var i,s,f=1,l=o.length,r=o[0]+"";fQ^s?1:-1;for(I=(p=l.length)<(Q=r.length)?p:Q,B=0;Br[B]^s?1:-1;return p==Q?0:p>Q^s?1:-1}function Cr(o,i,s,f){if(os||o!==Zn(o))throw Error(Pi+(f||"Argument")+(typeof o=="number"?os?" out of range: ":" not an integer: ":" not a primitive number: ")+String(o))}function vC(o){var i=o.c.length-1;return zn(o.e/uA)==i&&o.c[i]%2!=0}function wC(o,i){return(o.length>1?o.charAt(0)+"."+o.slice(1):o)+(i<0?"e":"e+")+i}function Za(o,i,s){var f,l;if(i<0){for(l=s+".";++i;l+=s);o=l+o}else if(f=o.length,++i>f){for(l=s,i-=f;--i;l+=s);o+=l}else i{setTimeout(i,o)})}function AFe(o,i){if(o.status!==200)throw rr.internal({message:`Non-200 status code: '${o.status}'`,data:i});if(i.error){var s;throw rr.internal({data:i.error,message:(s=i.error)===null||s===void 0?void 0:s.message})}return i.result}function rFe({req:o,rpcTarget:i,originHttpHeaderKey:s}){const f=new URL(i),l={id:o.id,jsonrpc:o.jsonrpc,method:o.method,params:o.params},r=o.origin,B=JSON.stringify(l),I={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:B};return s&&r&&(I.headers[s]=r),{fetchUrl:f.href,fetchParams:I}}function iFe({rpcTarget:o,originHttpHeaderKey:i}){return Oi(async(s,f,l)=>{const{fetchUrl:r,fetchParams:B}=rFe({req:s,rpcTarget:o,originHttpHeaderKey:i}),I=5,p=1e3;for(let Q=0;Qy.includes(w)))throw d}await tFe(p)}})}class nFe extends OKe{constructor({config:i,state:s}){if(super({config:i,state:s}),FA(this,"_providerEngineProxy",null),FA(this,"keyExportFlagSetByCode",!1),!i.chainConfig)throw kr.invalidProviderConfigError("Please provide chainConfig");if(!i.chainConfig.chainId)throw kr.invalidProviderConfigError("Please provide chainId inside chainConfig");if(!i.chainConfig.rpcTarget)throw kr.invalidProviderConfigError("Please provide rpcTarget inside chainConfig");typeof i.keyExportEnabled=="boolean"&&(this.keyExportFlagSetByCode=!0),this.defaultState={chainId:"loading"},this.defaultConfig={chainConfig:i.chainConfig,networks:{[i.chainConfig.chainId]:i.chainConfig},keyExportEnabled:typeof i.keyExportEnabled=="boolean"?i.keyExportEnabled:!0},super.initialize()}get currentChainConfig(){return this.config.chainConfig}get provider(){return this._providerEngineProxy}get chainId(){return this.state.chainId}set provider(i){throw new Error("Method not implemented.")}async request(i){var s;if(!i||typeof i!="object"||Array.isArray(i))throw rr.invalidRequest({message:rs.invalidRequestArgs().message,data:RA(RA({},i||{}),{},{cause:rs.invalidRequestArgs().message})});const{method:f,params:l}=i;if(typeof f!="string"||f.length===0)throw rr.invalidRequest({message:rs.invalidRequestMethod().message,data:RA(RA({},i||{}),{},{cause:rs.invalidRequestMethod().message})});if(l!==void 0&&!Array.isArray(l)&&(typeof l!="object"||l===null))throw rr.invalidRequest({message:rs.invalidRequestParams().message,data:RA(RA({},i||{}),{},{cause:rs.invalidRequestParams().message})});return(s=this.provider)===null||s===void 0?void 0:s.request(i)}sendAsync(i,s){return s?this.send(i,s):this.request(i)}send(i,s){this.request(i).then(f=>s(null,{result:f})).catch(f=>s(f,null))}addChain(i){if(!i.chainId||!i.rpcTarget)throw rr.invalidParams("chainId is required");this.configure({networks:RA(RA({},this.config.networks),{},{[i.chainId]:i})})}getChainConfig(i){var s;const f=(s=this.config.networks)===null||s===void 0?void 0:s[i];if(!f)throw rr.invalidRequest(`Chain ${i} is not supported, please add chainConfig for it`);return f}updateProviderEngineProxy(i){this._providerEngineProxy?this._providerEngineProxy.setTarget(i):this._providerEngineProxy=zKe(i)}setKeyExportFlag(i){this.keyExportFlagSetByCode||this.configure({keyExportEnabled:i})}getProviderEngineProxy(){return this._providerEngineProxy}}function oFe({getAccounts:o,getPrivateKey:i,getPublicKey:s,processEthSignMessage:f,processPersonalMessage:l,processTransaction:r,processSignTransaction:B,processTypedMessageV4:I}){if(!o)throw new Error("opts.getAccounts is required");async function p(D,S){if(typeof D=="string"&&D.length>0){const N=(await o(S)).map(j=>j.toLowerCase()),L=D.toLowerCase();if(N.includes(L))return L}throw rr.invalidParams({message:"Invalid parameters: must provide an Ethereum address."})}async function Q(D,S){S.result=await o(D)}async function d(D,S){if(!r)throw rr.methodNotSupported();const K=D.params[0]||{from:""};K.from=await p(K.from,D),S.result=await r(K,D)}async function y(D,S){if(!B)throw rr.methodNotSupported();const K=D.params[0]||{from:""};K.from=await p(K.from,D),S.result=await B(K,D)}async function v(D,S){if(!f)throw rr.methodNotSupported();let K=D.params;const N=D.params[2]||{};if(Array.isArray(D.params)){if(D.params.length!==2)throw new Error(`WalletMiddleware - incorrect params for ${D.method} method. expected [address, message]`);const L=D.params,j=L[0],re=L[1];K={from:j,data:re}}K=RA(RA({},N),K),S.result=await f(K,D)}async function w(D,S){if(!I)throw rr.methodNotSupported();if(!(D!=null&&D.params))throw new Error("WalletMiddleware - missing params");let K=D.params;if(Array.isArray(D.params)){if(D.params.length!==2)throw new Error(`WalletMiddleware - incorrect params for ${D.method} method. expected [address, typedData]`);const N=D.params,L=N[0],j=N[1];K={from:L,data:j}}S.result=await I(K,D)}async function M(D,S){if(!l)throw rr.methodNotSupported();let K=D.params;const N=D.params[2]||{};if(Array.isArray(D.params)){if(!(D.params.length>=2))throw new Error(`WalletMiddleware - incorrect params for ${D.method} method. expected [message, address]`);const L=D.params;if(typeof L[0]=="object"){const{challenge:j,address:re}=L[0];K={from:re,data:j}}else{const j=L[0];K={from:L[1],data:j}}}K=RA(RA({},N),K),S.result=await l(K,D)}async function m(D,S){if(!i)throw rr.methodNotSupported();S.result=i(D)}async function x(D,S){if(!s)throw rr.methodNotSupported();S.result=s(D)}return cy({eth_accounts:Oi(Q),eth_private_key:Oi(m),eth_public_key:Oi(x),public_key:Oi(x),private_key:Oi(m),eth_sendTransaction:Oi(d),eth_signTransaction:Oi(y),eth_sign:Oi(v),eth_signTypedData_v4:Oi(w),personal_sign:Oi(M)})}function aFe(o){const{getAccounts:i,getPrivateKey:s,getPublicKey:f,processTransaction:l,processSignTransaction:r,processEthSignMessage:B,processTypedMessageV4:I,processPersonalMessage:p}=o;return ofe([cy({eth_syncing:!1}),oFe({getAccounts:i,getPrivateKey:s,getPublicKey:f,processTransaction:l,processEthSignMessage:B,processSignTransaction:r,processTypedMessageV4:I,processPersonalMessage:p})])}function sFe({addChain:o,switchChain:i}){async function s(l,r){var B;const I=(B=l.params)!==null&&B!==void 0&&B.length?l.params[0]:void 0;if(!I)throw rr.invalidParams("Missing chain params");if(!I.chainId)throw rr.invalidParams("Missing chainId in chainParams");if(!I.rpcUrls||I.rpcUrls.length===0)throw rr.invalidParams("Missing rpcUrls in chainParams");if(!I.nativeCurrency)throw rr.invalidParams("Missing nativeCurrency in chainParams");r.result=await o(I)}async function f(l,r){var B;const I=(B=l.params)!==null&&B!==void 0&&B.length?l.params[0]:void 0;if(!I)throw rr.invalidParams("Missing chainId");r.result=await i(I)}return cy({wallet_addEthereumChain:Oi(s),wallet_switchEthereumChain:Oi(f)})}function fFe(o){return(i,s,f,l)=>i.method==="eth_chainId"?(s.result=o,l()):f()}function hFe(o){return(i,s,f,l)=>i.method==="eth_provider_config"?(s.result=o,l()):f()}function gFe(o){const{chainId:i,rpcTarget:s}=o,f=iFe({rpcTarget:s});return{networkMiddleware:ofe([fFe(i),hFe(o),f]),fetchMiddleware:f}}const uFe="6.13.4";function pk(o,i,s){for(let f in i){let l=i[f];Object.defineProperty(o,f,{enumerable:!0,value:l,writable:!1})}}function ig(o){if(o==null)return"null";if(Array.isArray(o))return"[ "+o.map(ig).join(", ")+" ]";if(o instanceof Uint8Array){const i="0123456789abcdef";let s="0x";for(let f=0;f>4],s+=i[o[f]&15];return s}if(typeof o=="object"&&typeof o.toJSON=="function")return ig(o.toJSON());switch(typeof o){case"boolean":case"symbol":return o.toString();case"bigint":return BigInt(o).toString();case"number":return o.toString();case"string":return JSON.stringify(o);case"object":{const i=Object.keys(o);return i.sort(),"{ "+i.map(s=>`${ig(s)}: ${ig(o[s])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function cFe(o,i,s){let f=o;{const r=[];if(s){if("message"in s||"code"in s||"name"in s)throw new Error(`value will overwrite populated values: ${ig(s)}`);for(const B in s){if(B==="shortMessage")continue;const I=s[B];r.push(B+"="+ig(I))}}r.push(`code=${i}`),r.push(`version=${uFe}`),r.length&&(o+=" ("+r.join(", ")+")")}let l;switch(i){case"INVALID_ARGUMENT":l=new TypeError(o);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":l=new RangeError(o);break;default:l=new Error(o)}return pk(l,{code:i}),s&&Object.assign(l,s),l.shortMessage==null&&pk(l,{shortMessage:f}),l}function A0(o,i,s,f){if(!o)throw cFe(i,s,f)}function iA(o,i,s,f){A0(o,i,"INVALID_ARGUMENT",{argument:s,value:f})}["NFD","NFC","NFKD","NFKC"].reduce((o,i)=>{try{if("test".normalize(i)!=="test")throw new Error("bad");if(i==="NFD"&&"é".normalize("NFD")!=="é")throw new Error("broken");o.push(i)}catch{}return o},[]);function lFe(o,i,s){if(o!==i){let f=s,l="new";f+=".",l+=" "+s,A0(!1,`private constructor; use ${f}from* methods`,"UNSUPPORTED_OPERATION",{operation:l})}}function gfe(o,i,s){if(o instanceof Uint8Array)return s?new Uint8Array(o):o;if(typeof o=="string"&&o.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){const f=new Uint8Array((o.length-2)/2);let l=2;for(let r=0;r>4]+AX[l&15]}return s}function qh(o){return"0x"+o.map(i=>Di(i).substring(2)).join("")}function rX(o){return Zg(o,!0)?(o.length-2)/2:$i(o).length}function IFe(o,i,s){const f=$i(o);A0(i>=f.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(f),length:i,offset:i+1});const l=new Uint8Array(i);return l.fill(0),l.set(f,i-f.length),Di(l)}function ufe(o,i){return IFe(o,i)}const x_=BigInt(0),Bh=BigInt(1),ng=9007199254740991;function BFe(o,i){let s=ss(o,"value");const f=BigInt(Hh(i,"width")),l=Bh<=-ng&&o<=ng,"overflow",i||"value",o),BigInt(o);case"string":try{if(o==="")throw new Error("empty string");return o[0]==="-"&&o[1]!=="-"?-BigInt(o.substring(1)):BigInt(o)}catch(s){iA(!1,`invalid BigNumberish string: ${s.message}`,i||"value",o)}}iA(!1,"invalid BigNumberish value",i||"value",o)}function R_(o,i){const s=ss(o,i);return A0(s>=x_,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:o}),s}function Hh(o,i){switch(typeof o){case"bigint":return iA(o>=-ng&&o<=ng,"overflow",i||"value",o),Number(o);case"number":return iA(Number.isInteger(o),"underflow",i||"value",o),iA(o>=-ng&&o<=ng,"overflow",i||"value",o),o;case"string":try{if(o==="")throw new Error("empty string");return Hh(BigInt(o),i)}catch(s){iA(!1,`invalid numeric string: ${s.message}`,i||"value",o)}}iA(!1,"invalid numeric value",i||"value",o)}function k_(o,i){let f=R_(o,"value").toString(16);{const l=Hh(i,"width");for(A0(l*2>=f.length,`value exceeds width (${l} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:o});f.length>6|192),s.push(l&63|128);else if((l&64512)==55296){f++;const r=o.charCodeAt(f);iA(f>18|240),s.push(B>>12&63|128),s.push(B>>6&63|128),s.push(B&63|128)}else s.push(l>>12|224),s.push(l>>6&63|128),s.push(l&63|128)}return new Uint8Array(s)}function qp(o){if(!Number.isSafeInteger(o)||o<0)throw new Error(`Wrong positive integer: ${o}`)}function lfe(o,...i){if(!(o instanceof Uint8Array))throw new Error("Expected Uint8Array");if(i.length>0&&!i.includes(o.length))throw new Error(`Expected Uint8Array of length ${i}, not of length=${o.length}`)}function NGe(o){if(typeof o!="function"||typeof o.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");qp(o.outputLen),qp(o.blockLen)}function iX(o,i=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(i&&o.finished)throw new Error("Hash#digest() has already been called")}function pFe(o,i){lfe(o);const s=i.outputLen;if(o.lengtho instanceof Uint8Array,QFe=o=>new Uint32Array(o.buffer,o.byteOffset,Math.floor(o.byteLength/4)),_Ge=o=>new DataView(o.buffer,o.byteOffset,o.byteLength),KGe=(o,i)=>o<<32-i|o>>>i,yFe=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!yFe)throw new Error("Non little-endian hardware is not supported");function vFe(o){if(typeof o!="string")throw new Error(`utf8ToBytes expected string, got ${typeof o}`);return new Uint8Array(new TextEncoder().encode(o))}function Ife(o){if(typeof o=="string"&&(o=vFe(o)),!dfe(o))throw new Error(`expected Uint8Array, got ${typeof o}`);return o}function FGe(...o){const i=new Uint8Array(o.reduce((f,l)=>f+l.length,0));let s=0;return o.forEach(f=>{if(!dfe(f))throw new Error("Uint8Array expected");i.set(f,s),s+=f.length}),i}class wFe{clone(){return this._cloneInto()}}function mFe(o){const i=f=>o().update(Ife(f)).digest(),s=o();return i.outputLen=s.outputLen,i.blockLen=s.blockLen,i.create=()=>o(),i}function GGe(o=32){if(M8&&typeof M8.getRandomValues=="function")return M8.getRandomValues(new Uint8Array(o));throw new Error("crypto.getRandomValues must be defined")}const mC=BigInt(2**32-1),Qk=BigInt(32);function Bfe(o,i=!1){return i?{h:Number(o&mC),l:Number(o>>Qk&mC)}:{h:Number(o>>Qk&mC)|0,l:Number(o&mC)|0}}function Cfe(o,i=!1){let s=new Uint32Array(o.length),f=new Uint32Array(o.length);for(let l=0;lBigInt(o>>>0)<>>0),bFe=(o,i,s)=>o>>>s,DFe=(o,i,s)=>o<<32-s|i>>>s,SFe=(o,i,s)=>o>>>s|i<<32-s,xFe=(o,i,s)=>o<<32-s|i>>>s,RFe=(o,i,s)=>o<<64-s|i>>>s-32,kFe=(o,i,s)=>o>>>s-32|i<<64-s,NFe=(o,i)=>i,_Fe=(o,i)=>o,Efe=(o,i,s)=>o<>>32-s,pfe=(o,i,s)=>i<>>32-s,Qfe=(o,i,s)=>i<>>64-s,yfe=(o,i,s)=>o<>>64-s;function KFe(o,i,s,f){const l=(i>>>0)+(f>>>0);return{h:o+s+(l/2**32|0)|0,l:l|0}}const FFe=(o,i,s)=>(o>>>0)+(i>>>0)+(s>>>0),GFe=(o,i,s,f)=>i+s+f+(o/2**32|0)|0,LFe=(o,i,s,f)=>(o>>>0)+(i>>>0)+(s>>>0)+(f>>>0),UFe=(o,i,s,f,l)=>i+s+f+l+(o/2**32|0)|0,qFe=(o,i,s,f,l)=>(o>>>0)+(i>>>0)+(s>>>0)+(f>>>0)+(l>>>0),HFe=(o,i,s,f,l,r)=>i+s+f+l+r+(o/2**32|0)|0,LGe={fromBig:Bfe,split:Cfe,toBig:MFe,shrSH:bFe,shrSL:DFe,rotrSH:SFe,rotrSL:xFe,rotrBH:RFe,rotrBL:kFe,rotr32H:NFe,rotr32L:_Fe,rotlSH:Efe,rotlSL:pfe,rotlBH:Qfe,rotlBL:yfe,add:KFe,add3L:FFe,add3H:GFe,add4L:LFe,add4H:UFe,add5H:HFe,add5L:qFe},[vfe,wfe,mfe]=[[],[],[]],TFe=BigInt(0),Dc=BigInt(1),YFe=BigInt(2),JFe=BigInt(7),PFe=BigInt(256),OFe=BigInt(113);for(let o=0,i=Dc,s=1,f=0;o<24;o++){[s,f]=[f,(2*s+3*f)%5],vfe.push(2*(5*f+s)),wfe.push((o+1)*(o+2)/2%64);let l=TFe;for(let r=0;r<7;r++)i=(i<>JFe)*OFe)%PFe,i&YFe&&(l^=Dc<<(Dc<s>32?Qfe(o,i,s):Efe(o,i,s),oX=(o,i,s)=>s>32?yfe(o,i,s):pfe(o,i,s);function VFe(o,i=24){const s=new Uint32Array(10);for(let f=24-i;f<24;f++){for(let B=0;B<10;B++)s[B]=o[B]^o[B+10]^o[B+20]^o[B+30]^o[B+40];for(let B=0;B<10;B+=2){const I=(B+8)%10,p=(B+2)%10,Q=s[p],d=s[p+1],y=nX(Q,d,1)^s[I],v=oX(Q,d,1)^s[I+1];for(let w=0;w<50;w+=10)o[B+w]^=y,o[B+w+1]^=v}let l=o[2],r=o[3];for(let B=0;B<24;B++){const I=wfe[B],p=nX(l,r,I),Q=oX(l,r,I),d=vfe[B];l=o[d],r=o[d+1],o[d]=p,o[d+1]=Q}for(let B=0;B<50;B+=10){for(let I=0;I<10;I++)s[I]=o[B+I];for(let I=0;I<10;I++)o[B+I]^=~s[(I+2)%10]&s[(I+4)%10]}o[0]^=jFe[f],o[1]^=WFe[f]}s.fill(0)}class N_ extends wFe{constructor(i,s,f,l=!1,r=24){if(super(),this.blockLen=i,this.suffix=s,this.outputLen=f,this.enableXOF=l,this.rounds=r,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,qp(f),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=QFe(this.state)}keccak(){VFe(this.state32,this.rounds),this.posOut=0,this.pos=0}update(i){iX(this);const{blockLen:s,state:f}=this;i=Ife(i);const l=i.length;for(let r=0;r=f&&this.keccak();const B=Math.min(f-this.posOut,r-l);i.set(s.subarray(this.posOut,this.posOut+B),l),this.posOut+=B,l+=B}return i}xofInto(i){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(i)}xof(i){return qp(i),this.xofInto(new Uint8Array(i))}digestInto(i){if(pFe(i,this),this.finished)throw new Error("digest() was already called");return this.writeInto(i),this.destroy(),i}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(i){const{blockLen:s,suffix:f,outputLen:l,rounds:r,enableXOF:B}=this;return i||(i=new N_(s,f,l,B,r)),i.state32.set(this.state32),i.pos=this.pos,i.posOut=this.posOut,i.finished=this.finished,i.rounds=r,i.suffix=f,i.outputLen=l,i.enableXOF=B,i.destroyed=this.destroyed,i}}const ZFe=(o,i,s)=>mFe(()=>new N_(i,o,s)),zFe=ZFe(1,136,256/8);let Mfe=!1;const bfe=function(o){return zFe(o)};let Dfe=bfe;function Bn(o){const i=$i(o,"data");return Di(Dfe(i))}Bn._=bfe;Bn.lock=function(){Mfe=!0};Bn.register=function(o){if(Mfe)throw new TypeError("keccak256 is locked");Dfe=o};Object.freeze(Bn);const aX="0x0000000000000000000000000000000000000000000000000000000000000000",$Fe=`Ethereum Signed Message: -`,sX=BigInt(0),fX=BigInt(1),hX=BigInt(2),gX=BigInt(27),uX=BigInt(28),MC=BigInt(35),Y0={};function cX(o){return ufe(cfe(o),32)}var lg,dg,Ig,wh;const Ro=class Ro{constructor(i,s,f,l){Ta(this,lg);Ta(this,dg);Ta(this,Ig);Ta(this,wh);lFe(i,Y0,"Signature"),fn(this,lg,s),fn(this,dg,f),fn(this,Ig,l),fn(this,wh,null)}get r(){return sn(this,lg)}set r(i){iA(rX(i)===32,"invalid r","value",i),fn(this,lg,Di(i))}get s(){return sn(this,dg)}set s(i){iA(rX(i)===32,"invalid s","value",i);const s=Di(i);iA(parseInt(s.substring(0,3))<8,"non-canonical s","value",s),fn(this,dg,s)}get v(){return sn(this,Ig)}set v(i){const s=Hh(i,"value");iA(s===27||s===28,"invalid v","v",i),fn(this,Ig,s)}get networkV(){return sn(this,wh)}get legacyChainId(){const i=this.networkV;return i==null?null:Ro.getChainId(i)}get yParity(){return this.v===27?0:1}get yParityAndS(){const i=$i(this.s);return this.yParity&&(i[0]|=128),Di(i)}get compactSerialized(){return qh([this.r,this.yParityAndS])}get serialized(){return qh([this.r,this.s,this.yParity?"0x1c":"0x1b"])}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const i=new Ro(Y0,this.r,this.s,this.v);return this.networkV&&fn(i,wh,this.networkV),i}toJSON(){const i=this.networkV;return{_type:"signature",networkV:i!=null?i.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(i){const s=ss(i,"v");return s==gX||s==uX?sX:(iA(s>=MC,"invalid EIP-155 v","v",i),(s-MC)/hX)}static getChainIdV(i,s){return ss(i)*hX+BigInt(35+s-27)}static getNormalizedV(i){const s=ss(i);return s===sX||s===gX?27:s===fX||s===uX?28:(iA(s>=MC,"invalid v","v",i),s&fX?27:28)}static from(i){function s(Q,d){iA(Q,d,"signature",i)}if(i==null)return new Ro(Y0,aX,aX,27);if(typeof i=="string"){const Q=$i(i,"signature");if(Q.length===64){const d=Di(Q.slice(0,32)),y=Q.slice(32,64),v=y[0]&128?28:27;return y[0]&=127,new Ro(Y0,d,Di(y),v)}if(Q.length===65){const d=Di(Q.slice(0,32)),y=Q.slice(32,64);s((y[0]&128)===0,"non-canonical s");const v=Ro.getNormalizedV(Q[64]);return new Ro(Y0,d,Di(y),v)}s(!1,"invalid raw signature length")}if(i instanceof Ro)return i.clone();const f=i.r;s(f!=null,"missing r");const l=cX(f),r=function(Q,d){if(Q!=null)return cX(Q);if(d!=null){s(Zg(d,32),"invalid yParityAndS");const y=$i(d);return y[0]&=127,Di(y)}s(!1,"missing s")}(i.s,i.yParityAndS);s(($i(r)[0]&128)==0,"non-canonical s");const{networkV:B,v:I}=function(Q,d,y){if(Q!=null){const v=ss(Q);return{networkV:v>=MC?v:void 0,v:Ro.getNormalizedV(v)}}if(d!=null)return s(Zg(d,32),"invalid yParityAndS"),{v:$i(d)[0]&128?28:27};if(y!=null){switch(Hh(y,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}s(!1,"invalid yParity")}s(!1,"missing v")}(i.v,i.yParityAndS,i.yParity),p=new Ro(Y0,l,r,I);return B&&fn(p,wh,B),s(i.yParity==null||Hh(i.yParity,"sig.yParity")===p.yParity,"yParity mismatch"),s(i.yParityAndS==null||i.yParityAndS===p.yParityAndS,"yParityAndS mismatch"),p}};lg=new WeakMap,dg=new WeakMap,Ig=new WeakMap,wh=new WeakMap;let yk=Ro;const XFe=BigInt(0),e9e=BigInt(36);function lX(o){o=o.toLowerCase();const i=o.substring(2).split(""),s=new Uint8Array(40);for(let l=0;l<40;l++)s[l]=i[l].charCodeAt(0);const f=$i(Bn(s));for(let l=0;l<40;l+=2)f[l>>1]>>4>=8&&(i[l]=i[l].toUpperCase()),(f[l>>1]&15)>=8&&(i[l+1]=i[l+1].toUpperCase());return"0x"+i.join("")}const __={};for(let o=0;o<10;o++)__[String(o)]=String(o);for(let o=0;o<26;o++)__[String.fromCharCode(65+o)]=String(10+o);const dX=15;function t9e(o){o=o.toUpperCase(),o=o.substring(4)+o.substring(0,2)+"00";let i=o.split("").map(f=>__[f]).join("");for(;i.length>=dX;){let f=i.substring(0,dX);i=parseInt(f,10)%97+i.substring(f.length)}let s=String(98-parseInt(i,10)%97);for(;s.length<2;)s="0"+s;return s}const A9e=function(){const o={};for(let i=0;i<36;i++){const s="0123456789abcdefghijklmnopqrstuvwxyz"[i];o[s]=BigInt(i)}return o}();function r9e(o){o=o.toLowerCase();let i=XFe;for(let s=0;s=0,"invalid chain ID","domain.chainId",o),Number.isSafeInteger(i)?Number(i):EFe(i)},verifyingContract:function(o){try{return Sfe(o).toLowerCase()}catch{}iA(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",o)},salt:function(o){const i=$i(o,"domain.salt");return iA(i.length===32,'invalid domain value "salt"',"domain.salt",o),Di(i)}};function D8(o){{const i=o.match(/^(u?)int(\d+)$/);if(i){const s=i[1]==="",f=parseInt(i[2]);iA(f%8===0&&f!==0&&f<=256&&i[2]===String(f),"invalid numeric width","type",o);const l=CFe(o9e,s?f-1:f),r=s?(l+Nfe)*n9e:kfe;return function(B){const I=ss(B,"value");return iA(I>=r&&I<=l,`value out-of-bounds for ${o}`,"value",I),k_(s?BFe(I,256):I,32)}}}{const i=o.match(/^bytes(\d+)$/);if(i){const s=parseInt(i[1]);return iA(s!==0&&s<=32&&i[1]===String(s),"invalid bytes width","type",o),function(f){const l=$i(f);return iA(l.length===s,`invalid length for ${o}`,"value",f),a9e(f)}}}switch(o){case"address":return function(i){return ufe(Sfe(i),32)};case"bool":return function(i){return i?s9e:f9e};case"bytes":return function(i){return Bn(i)};case"string":return function(i){return xfe(i)}}return null}function CX(o,i){return`${o}(${i.map(({name:s,type:f})=>f+" "+s).join(",")})`}function bC(o){const i=o.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return i?{base:i[1],index:i[2]+i[4],array:{base:i[1],prefix:i[1]+i[2],count:i[5]?parseInt(i[5]):-1}}:{base:o}}var Hl,is,Bg,Hp,_fe;const $n=class $n{constructor(i){Ta(this,Hp);a9(this,"primaryType");Ta(this,Hl);Ta(this,is);Ta(this,Bg);fn(this,is,new Map),fn(this,Bg,new Map);const s=new Map,f=new Map,l=new Map,r={};Object.keys(i).forEach(p=>{r[p]=i[p].map(({name:Q,type:d})=>{let{base:y,index:v}=bC(d);return y==="int"&&!i.int&&(y="int256"),y==="uint"&&!i.uint&&(y="uint256"),{name:Q,type:y+(v||"")}}),s.set(p,new Set),f.set(p,[]),l.set(p,new Set)}),fn(this,Hl,JSON.stringify(r));for(const p in r){const Q=new Set;for(const d of r[p]){iA(!Q.has(d.name),`duplicate variable name ${JSON.stringify(d.name)} in ${JSON.stringify(p)}`,"types",i),Q.add(d.name);const y=bC(d.type).base;iA(y!==p,`circular type reference to ${JSON.stringify(y)}`,"types",i),!D8(y)&&(iA(f.has(y),`unknown type ${JSON.stringify(y)}`,"types",i),f.get(y).push(p),s.get(p).add(y))}}const B=Array.from(f.keys()).filter(p=>f.get(p).length===0);iA(B.length!==0,"missing primary type","types",i),iA(B.length===1,`ambiguous primary types or unused types: ${B.map(p=>JSON.stringify(p)).join(", ")}`,"types",i),pk(this,{primaryType:B[0]});function I(p,Q){iA(!Q.has(p),`circular type reference to ${JSON.stringify(p)}`,"types",i),Q.add(p);for(const d of s.get(p))if(f.has(d)){I(d,Q);for(const y of Q)l.get(y).add(d)}Q.delete(p)}I(this.primaryType,new Set);for(const[p,Q]of l){const d=Array.from(Q);d.sort(),sn(this,is).set(p,CX(p,r[p])+d.map(y=>CX(y,r[y])).join(""))}}get types(){return JSON.parse(sn(this,Hl))}getEncoder(i){let s=sn(this,Bg).get(i);return s||(s=s9(this,Hp,_fe).call(this,i),sn(this,Bg).set(i,s)),s}encodeType(i){const s=sn(this,is).get(i);return iA(s,`unknown type: ${JSON.stringify(i)}`,"name",i),s}encodeData(i,s){return this.getEncoder(i)(s)}hashStruct(i,s){return Bn(this.encodeData(i,s))}encode(i){return this.encodeData(this.primaryType,i)}hash(i){return this.hashStruct(this.primaryType,i)}_visit(i,s,f){if(D8(i))return f(i,s);const l=bC(i).array;if(l)return iA(l.count===-1||l.count===s.length,`array length mismatch; expected length ${l.count}`,"value",s),s.map(B=>this._visit(l.prefix,B,f));const r=this.types[i];if(r)return r.reduce((B,{name:I,type:p})=>(B[I]=this._visit(p,s[I],f),B),{});iA(!1,`unknown type: ${i}`,"type",i)}visit(i,s){return this._visit(this.primaryType,i,s)}static from(i){return new $n(i)}static getPrimaryType(i){return $n.from(i).primaryType}static hashStruct(i,s,f){return $n.from(s).hashStruct(i,f)}static hashDomain(i){const s=[];for(const f in i){if(i[f]==null)continue;const l=IX[f];iA(l,`invalid typed-data domain key: ${JSON.stringify(f)}`,"domain",i),s.push({name:f,type:l})}return s.sort((f,l)=>b8.indexOf(f.name)-b8.indexOf(l.name)),$n.hashStruct("EIP712Domain",{EIP712Domain:s},i)}static encode(i,s,f){return qh(["0x1901",$n.hashDomain(i),$n.from(s).hash(f)])}static hash(i,s,f){return Bn($n.encode(i,s,f))}static async resolveNames(i,s,f,l){i=Object.assign({},i);for(const I in i)i[I]==null&&delete i[I];const r={};i.verifyingContract&&!Zg(i.verifyingContract,20)&&(r[i.verifyingContract]="0x");const B=$n.from(s);B.visit(f,(I,p)=>(I==="address"&&!Zg(p,20)&&(r[p]="0x"),p));for(const I in r)r[I]=await l(I);return i.verifyingContract&&r[i.verifyingContract]&&(i.verifyingContract=r[i.verifyingContract]),f=B.visit(f,(I,p)=>I==="address"&&r[p]?r[p]:p),{domain:i,value:f}}static getPayload(i,s,f){$n.hashDomain(i);const l={},r=[];b8.forEach(p=>{const Q=i[p];Q!=null&&(l[p]=h9e[p](Q),r.push({name:p,type:IX[p]}))});const B=$n.from(s);s=B.types;const I=Object.assign({},s);return iA(I.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",s),I.EIP712Domain=r,B.encode(f),{types:I,domain:l,primaryType:B.primaryType,message:B.visit(f,(p,Q)=>{if(p.match(/^bytes(\d*)/))return Di($i(Q));if(p.match(/^u?int/))return ss(Q).toString();switch(p){case"address":return Q.toLowerCase();case"bool":return!!Q;case"string":return iA(typeof Q=="string","invalid string","value",Q),Q}iA(!1,"unsupported type","type",p)})}}};Hl=new WeakMap,is=new WeakMap,Bg=new WeakMap,Hp=new WeakSet,_fe=function(i){{const l=D8(i);if(l)return l}const s=bC(i).array;if(s){const l=s.prefix,r=this.getEncoder(l);return B=>{iA(s.count===-1||s.count===B.length,`array length mismatch; expected length ${s.count}`,"value",B);let I=B.map(r);return sn(this,is).has(l)&&(I=I.map(Bn)),Bn(qh(I))}}const f=this.types[i];if(f){const l=xfe(sn(this,is).get(i));return r=>{const B=f.map(({name:I,type:p})=>{const Q=this.getEncoder(p)(r[I]);return sn(this,is).has(p)?Bn(Q):Q});return B.unshift(l),qh(B)}}iA(!1,`unknown type: ${i}`,"type",i)};let vk=$n;const Kfe=new zr("1e18"),Ffe=new zr("1e9"),Gfe=new zr("1"),g9e={hex:o=>typeof o=="string"?new zr(wf(o),16):new zr(o,16),dec:o=>new zr(o,10)},u9e={WEI:o=>o.div(Kfe),GWEI:o=>o.div(Ffe),ETH:o=>o.div(Gfe)},c9e={WEI:o=>o.times(Kfe).dp(0,zr.ROUND_HALF_UP),GWEI:o=>o.times(Ffe).dp(9,zr.ROUND_HALF_UP),ETH:o=>o.times(Gfe).dp(9,zr.ROUND_HALF_UP)},l9e={hex:o=>o.toString(16),dec:o=>new zr(o).toString(10)},d9e=o=>{const{value:i,fromNumericBase:s,fromDenomination:f,toNumericBase:l,toDenomination:r,numberOfDecimals:B}=o;let I=g9e[s](i);return f&&(I=u9e[f](I)),r&&(I=c9e[r](I)),B&&(I=I.dp(B,zr.ROUND_HALF_DOWN)),l&&(I=l9e[l](I)),I},Lfe=(o,{fromNumericBase:i="hex",toNumericBase:s,fromDenomination:f,toDenomination:l,numberOfDecimals:r})=>d9e({fromNumericBase:i,toNumericBase:s,fromDenomination:f,toDenomination:l,numberOfDecimals:r,value:o||"0"});function z0(o){return Lfe(o,{fromNumericBase:"dec",toNumericBase:"hex",fromDenomination:"GWEI",toDenomination:"WEI"})}function Xa(o){return Lfe(o,{fromNumericBase:"hex",toNumericBase:"dec",fromDenomination:"WEI",toDenomination:"GWEI"})}function fh(o){const i=z0(o);return Xa(i).toString()}async function I9e(o){const i=await Ose(o);return RA(RA({},i),{},{estimatedBaseFee:fh(i.estimatedBaseFee),low:RA(RA({},i.low),{},{suggestedMaxPriorityFeePerGas:fh(i.low.suggestedMaxPriorityFeePerGas),suggestedMaxFeePerGas:fh(i.low.suggestedMaxFeePerGas)}),medium:RA(RA({},i.medium),{},{suggestedMaxPriorityFeePerGas:fh(i.medium.suggestedMaxPriorityFeePerGas),suggestedMaxFeePerGas:fh(i.medium.suggestedMaxFeePerGas)}),high:RA(RA({},i.high),{},{suggestedMaxPriorityFeePerGas:fh(i.high.suggestedMaxPriorityFeePerGas),suggestedMaxFeePerGas:fh(i.high.suggestedMaxFeePerGas)})})}async function B9e(o){const i=await Ose(o,{referrer:o,referrerPolicy:"no-referrer-when-downgrade",method:"GET",mode:"cors"});return{low:i.SafeGasPrice,medium:i.ProposeGasPrice,high:i.FastGasPrice}}function C9e(o,i){if(!o||typeof o!="string"||!YKe(o))throw new Error(`Invalid "${i}" address: ${o} must be a valid string.`)}async function E9e(o,i){if(C9e(o.from,"from"),!o.data||Array.isArray(o.data)||typeof o.data!="object"&&typeof o.data!="string")throw new Error('Invalid message "data": Must be a valid string or object.');let s;if(typeof o.data=="object")s=o.data;else try{s=JSON.parse(o.data)}catch{throw new Error("Data must be passed as a valid JSON string.")}if(!i)throw new Error("Current chainId cannot be null or undefined.");let{chainId:f}=s.domain;if(f){typeof f=="string"&&(f=parseInt(f,f.startsWith("0x")?16:10));const l=parseInt(i,16);if(Number.isNaN(l))throw new Error(`Cannot sign messages for chainId "${f}", because Web3Auth is switching networks.`);if(f!==l)throw new Error(`Provided chainId "${f}" must match the active chainId "${l}"`)}}function p9e(o,i){return o==null||i===null||i===void 0?null:new zr(o,10).lt(i,10)}function DC(o){return ai(o.toString(16))}function S8(o){return df.isBN(o)?o:new df(wf(o),16)}function Q9e(o,i,s){const f=new df(i),l=new df(s);return o.mul(f).div(l)}const y9e="https://gas-api.metaswap.codefi.network/networks//gasPrices",v9e="https://gas-api.metaswap.codefi.network/networks//suggestedGasFees",EX={LEGACY:"0x0",ACCESS_LIST:"0x1",FEE_MARKET:"0x2"},SC={SENT_ETHER:"sentEther",CONTRACT_INTERACTION:"contractInteraction",DEPLOY_CONTRACT:"contractDeployment",STANDARD_TRANSACTION:"transaction"},J0={FEE_MARKET:"fee-market",LEGACY:"legacy",ETH_GASPRICE:"eth_gasPrice",NONE:"none"};class w9e{constructor({getProviderEngineProxy:i}){FA(this,"API_SUPPORTED_CHAINIDS",new Set(["0x1","0x5","0x13881","0xa4b1","0xa86a","0x2105","0x38","0xfa","0xa","0x89"])),FA(this,"chainConfig",null),FA(this,"getProviderEngineProxy",void 0),FA(this,"isEIP1559Compatible",!1),this.getProviderEngineProxy=i}get providerProxy(){return this.getProviderEngineProxy()}async init(){this.chainConfig=await this.providerProxy.request({method:"eth_provider_config"}),this.isEIP1559Compatible=await this.getEIP1559Compatibility()}async formatTransaction(i){if(!this.chainConfig)throw new Error("Chain config not initialized");const s=RA({},i);if(s.nonce===void 0&&(s.nonce=await this.providerProxy.request({method:"eth_getTransactionCount",params:[i.from,"latest"]})),!this.isEIP1559Compatible&&s.gasPrice){if(s.maxFeePerGas&&delete s.maxFeePerGas,s.maxPriorityFeePerGas&&delete s.maxPriorityFeePerGas,!s.gasLimit)if(s.gas)s.gasLimit=ai(s.gas);else{const B=await this.getDefaultGasLimit(s);B&&(s.gasLimit=B)}return s}if(!s.gasLimit)if(s.gas)s.gasLimit=ai(s.gas);else{const B=await this.getDefaultGasLimit(s);B&&(s.gasLimit=B)}const{gasPrice:f,maxFeePerGas:l,maxPriorityFeePerGas:r}=await this.getDefaultGasFees(s);return this.isEIP1559Compatible?(s.gasPrice&&!s.maxFeePerGas&&!s.maxPriorityFeePerGas?(s.maxFeePerGas=s.gasPrice,s.maxPriorityFeePerGas=p9e(typeof r=="string"?wf(r):r,typeof s.gasPrice=="string"?wf(s.gasPrice):s.gasPrice.toString())?ai(r):ai(s.gasPrice.toString())):(l&&!s.maxFeePerGas&&(s.maxFeePerGas=ai(l)),r&&!s.maxPriorityFeePerGas&&(s.maxPriorityFeePerGas=ai(r)),f&&!s.maxFeePerGas&&(s.maxFeePerGas=ai(f)),s.maxFeePerGas&&!s.maxPriorityFeePerGas&&(s.maxPriorityFeePerGas=s.maxFeePerGas)),delete s.gasPrice):(delete s.maxPriorityFeePerGas,delete s.maxFeePerGas),f&&!s.gasPrice&&!s.maxPriorityFeePerGas&&!s.maxFeePerGas&&(s.gasPrice=f),s.type=Number.parseInt(this.isEIP1559Compatible?EX.FEE_MARKET:EX.LEGACY,16),s.chainId=this.chainConfig.chainId,s}async fetchEthGasPriceEstimate(){const i=await this.providerProxy.request({method:"eth_gasPrice",params:[]});return{gasPrice:Xa(i).toString()}}async fetchGasEstimatesViaEthFeeHistory(){const s="latest",f=[10,50,95],l=await this.providerProxy.request({method:"eth_feeHistory",params:[10,s,f]}),r=l.baseFeePerGas[l.baseFeePerGas.length-1],B=l.reward.reduce((I,p)=>({slow:I.slow.plus(new zr(p[0],16)),average:I.average.plus(new zr(p[1],16)),fast:I.fast.plus(new zr(p[2],16))}),{slow:new zr(0),average:new zr(0),fast:new zr(0)});return{estimatedBaseFee:Xa(r).toString(),high:{maxWaitTimeEstimate:3e4,minWaitTimeEstimate:15e3,suggestedMaxFeePerGas:Xa(B.fast.plus(r).toString(16)).toString(),suggestedMaxPriorityFeePerGas:Xa(B.fast.toString(16)).toString()},medium:{maxWaitTimeEstimate:45e3,minWaitTimeEstimate:15e3,suggestedMaxFeePerGas:Xa(B.average.plus(r).toString(16)).toString(),suggestedMaxPriorityFeePerGas:Xa(B.average.toString(16)).toString()},low:{maxWaitTimeEstimate:6e4,minWaitTimeEstimate:15e3,suggestedMaxFeePerGas:Xa(B.slow.plus(r).toString(16)).toString(),suggestedMaxPriorityFeePerGas:Xa(B.slow.toString(16)).toString()}}}async getEIP1559Compatibility(){const i=await this.providerProxy.request({method:"eth_getBlockByNumber",params:["latest",!1]});return!!(i&&i.baseFeePerGas!==void 0)}async fetchGasFeeEstimateData(){if(!this.chainConfig)throw new Error("Chain config not initialized");const i=this.chainConfig.chainId==="0x1",s=Number.parseInt(this.chainConfig.chainId,16);let f;try{if(this.isEIP1559Compatible){let l;try{if(this.API_SUPPORTED_CHAINIDS.has(this.chainConfig.chainId))l=await I9e(v9e.replace("",`${s}`));else throw new Error("Chain id not supported by api")}catch{l=await this.fetchGasEstimatesViaEthFeeHistory()}f={gasFeeEstimates:l,gasEstimateType:J0.FEE_MARKET}}else if(i)f={gasFeeEstimates:await B9e(y9e.replace("",`${s}`)),gasEstimateType:J0.LEGACY};else throw new Error("Main gas fee/price estimation failed. Use fallback")}catch{try{f={gasFeeEstimates:await this.fetchEthGasPriceEstimate(),gasEstimateType:J0.ETH_GASPRICE}}catch(r){throw new Error(`Gas fee/price estimation failed. Message: ${r.message}`)}}return f}async getDefaultGasFees(i){if(!this.isEIP1559Compatible&&i.gasPrice||this.isEIP1559Compatible&&i.maxFeePerGas&&i.maxPriorityFeePerGas)return{};try{const{gasFeeEstimates:f,gasEstimateType:l}=await this.fetchGasFeeEstimateData();if(this.isEIP1559Compatible&&l===J0.FEE_MARKET){const{medium:{suggestedMaxPriorityFeePerGas:r,suggestedMaxFeePerGas:B}={}}=f;if(r&&B)return{maxFeePerGas:ai(z0(B)),maxPriorityFeePerGas:ai(z0(r))}}else{if(l===J0.LEGACY)return{gasPrice:ai(z0(f.medium))};if(l===J0.ETH_GASPRICE)return{gasPrice:ai(z0(f.gasPrice))}}}catch(f){EE.error(f)}const{gasPrice:s}=await this.fetchEthGasPriceEstimate();return{gasPrice:ai(z0(s))}}async estimateTxGas(i){const s=RA({},i);return delete s.gasPrice,delete s.maxFeePerGas,delete s.maxPriorityFeePerGas,await this.providerProxy.request({method:"eth_estimateGas",params:[s]})}async analyzeGasUsage(i){const s=await this.providerProxy.request({method:"eth_getBlockByNumber",params:["latest",!1]}),f=S8(s.gasLimit),l=Q9e(f,19,20);let r=DC(l);try{r=await this.estimateTxGas(i)}catch(B){EE.warn(B)}return{blockGasLimit:s.gasLimit,estimatedGasHex:r}}addGasBuffer(i,s,f=1.5){const l=S8(i),B=S8(s).muln(.9),I=l.muln(f);return l.gt(B)?DC(l):I.lt(B)?DC(I):DC(B)}async determineTransactionCategory(i){const{data:s,to:f}=i;let l="",r;if(s&&!f)r=SC.DEPLOY_CONTRACT;else{try{l=await this.providerProxy.request({method:"eth_getCode",params:[f,"latest"]})}catch(I){EE.warn(I)}r=!l||l==="0x"||l==="0x0"?SC.SENT_ETHER:SC.CONTRACT_INTERACTION}return{transactionCategory:r,code:l}}async getDefaultGasLimit(i){const{transactionCategory:s}=await this.determineTransactionCategory(RA({},i));if(i.gas)return ai(i.gas);if(i.to&&s===SC.SENT_ETHER){if(i.data)throw Error("TxGasUtil - Trying to call a function on a non-contract address");return ai(21e3.toString(16))}const{blockGasLimit:f,estimatedGasHex:l}=await this.analyzeGasUsage(i);return this.addGasBuffer(ai(l),f)}}let Ufe=function(o){return o.V1="V1",o.V3="V3",o.V4="V4",o}({});function m9e({updatePrivatekey:o}){async function i(s,f){var l;const r=(l=s.params)!==null&&l!==void 0&&l.length?s.params[0]:void 0;if(!(r!=null&&r.privateKey))throw rr.invalidParams("Missing privateKey");f.result=await o(r)}return cy({wallet_updateAccount:Oi(i)})}async function pX(o,i,s){const{Transaction:f}=await mk(async()=>{const{Transaction:v}=await import("./index-LBjqkPsc.js");return{Transaction:v}},[]),l=await s.formatTransaction(o),r=f.from(RA(RA({},l),{},{from:void 0})),B=wf(r.unsignedHash),I=await i(Buffer.from(B,"hex"));let{v:p}=I;const{r:Q,s:d}=I;p>1&&(p=p-27);const y=r;return y.signature=yk.from({v:p,r:`0x${Q.toString("hex")}`,s:`0x${d.toString("hex")}`}),y.serialized}async function M9e(o,i){const s=wf(i),f=await o(Buffer.from(s,"hex"));let l=f.v;return l<=1&&(l=l+27),S_(Buffer.from(n0(l)),f.r,f.s)}async function b9e(o,i){if(i==null)throw new Error("Missing data parameter");const s=xd(i)?Buffer.from(wf(i),"hex"):Buffer.from(i),f=i9e(s),l=Buffer.from(`Ethereum Signed Message: -${s.length}`,"utf-8"),r=await o(Buffer.from(f.slice(2),"hex"),Buffer.concat([l,s]));let B=r.v;return B<=1&&(B=B+27),S_(Buffer.from(D_(B)),r.r,r.s)}function D9e(o,i){if(!Object.keys(Ufe).includes(o))throw new Error(`Invalid version: '${o}'`)}async function S9e(o,i,s){if(D9e(s),i==null)throw new Error("Missing data parameter");const f=typeof i=="string"?JSON.parse(i):i,{v:l,r,s:B}=await o(Buffer.from(vk.hash(f.domain,f.types,f.message).slice(2),"hex"));let I=l;return I<=1&&(I=I+27),S_(Buffer.from(D_(I)),r,B)}function x9e({txFormatter:o,sign:i,getPublic:s,getProviderEngineProxy:f}){return{getAccounts:async l=>{const r=await s();return[`0x${Buffer.from(PKe(r)).toString("hex")}`]},getPrivateKey:async l=>{throw Fo.custom({message:"MPC Provider cannot return private key",code:4902})},getPublicKey:async l=>`0x${(await s()).toString("hex")}`,processTransaction:async(l,r)=>{const B=f();if(!B)throw Fo.custom({message:"Provider is not initialized",code:4902});const I=await pX(l,i,o);return await B.request({method:"eth_sendRawTransaction",params:[I]})},processSignTransaction:async(l,r)=>{if(!f())throw Fo.custom({message:"Provider is not initialized",code:4902});return await pX(l,i,o)},processEthSignMessage:async(l,r)=>M9e(i,l.data),processPersonalMessage:async(l,r)=>b9e(i,l.data),processTypedMessageV4:async(l,r)=>{EE.debug("processTypedMessageV4",l);const B=f();if(!B)throw Fo.custom({message:"Provider is not initialized",code:4902});const I=await B.request({method:"eth_chainId"});await E9e(l,I);const p=typeof l.data=="string"?JSON.parse(l.data):l.data;return S9e(i,p,Ufe.V4)}}}var qfe;class K_ extends nFe{constructor({config:i,state:s}){super({config:{chainConfig:RA(RA({},i.chainConfig),{},{chainNamespace:cg.EIP155})},state:s}),FA(this,"PROVIDER_CHAIN_NAMESPACE",cg.EIP155)}async enable(){if(!this.state.signMethods)throw Fo.custom({message:"signMethods are not found in state, plz pass it in constructor state param",code:4902});return await this.setupProvider(this.state.signMethods),this._providerEngineProxy.request({method:"eth_accounts"})}async setupProvider({sign:i,getPublic:s}){const{chainNamespace:f}=this.config.chainConfig;if(f!==this.PROVIDER_CHAIN_NAMESPACE)throw kr.incompatibleChainNameSpace("Invalid chain namespace");const l=new w9e({getProviderEngineProxy:this.getProviderEngineProxy.bind(this)}),r=x9e({txFormatter:l,sign:i,getPublic:s,getProviderEngineProxy:this.getProviderEngineProxy.bind(this)}),B=aFe(r),I=this.getChainSwitchMiddleware(),p=new ga,{networkMiddleware:Q}=gFe(this.config.chainConfig);p.push(B),p.push(I),p.push(this.getAccountMiddleware()),p.push(Q);const d=RKe(p);this.updateProviderEngineProxy(d),await l.init(),await this.lookupNetwork(),this.state.signMethods={sign:i,getPublic:s}}async updateAccount(i){if(!this._providerEngineProxy)throw Fo.custom({message:"Provider is not initialized",code:4902});const s=this.state.signMethods;if(!s)throw Fo.custom({message:"signing methods are unavailable ",code:4092});const f=(await s.getPublic()).toString("hex"),l=(await i.signMethods.getPublic()).toString("hex");if(f!==l){await this.setupProvider(i.signMethods);const r=await this._providerEngineProxy.request({method:"eth_accounts"});this.emit("accountsChanged",r)}}async switchChain(i){if(!this._providerEngineProxy)throw Fo.custom({message:"Provider is not initialized",code:4902});const s=this.getChainConfig(i.chainId);if(this.update({chainId:"loading"}),this.configure({chainConfig:s}),!this.state.signMethods)throw Fo.custom({message:"sign methods are undefined",code:4902});await this.setupProvider(this.state.signMethods)}async lookupNetwork(){if(!this._providerEngineProxy)throw Fo.custom({message:"Provider is not initialized",code:4902});const{chainId:i}=this.config.chainConfig;if(!i)throw rr.invalidParams("chainId is required while lookupNetwork");const s=await this._providerEngineProxy.request({method:"net_version",params:[]}),f=xd(s)?parseInt(s,16):parseInt(s,10);if(parseInt(i,16)!==f)throw Fo.chainDisconnected(`Invalid network, net_version is: ${s}`);return this.state.chainId!==i&&(this.emit("chainChanged",i),this.emit("connect",{chainId:i})),this.update({chainId:i}),s}getChainSwitchMiddleware(){return sFe({addChain:async f=>{const{chainId:l,chainName:r,rpcUrls:B,blockExplorerUrls:I,nativeCurrency:p,iconUrls:Q}=f;this.addChain({chainNamespace:cg.EIP155,chainId:l,ticker:(p==null?void 0:p.symbol)||"ETH",tickerName:(p==null?void 0:p.name)||"Ether",displayName:r,rpcTarget:B[0],blockExplorerUrl:(I==null?void 0:I[0])||"",decimals:(p==null?void 0:p.decimals)||18,logo:(Q==null?void 0:Q[0])||"https://images.toruswallet.io/eth.svg"})},switchChain:async f=>{const{chainId:l}=f;await this.switchChain({chainId:l})}})}getAccountMiddleware(){return m9e({updateSignMethods:async s=>{await this.updateAccount(s)}})}}qfe=K_;FA(K_,"getProviderInstance",async o=>{const i=new qfe({config:{chainConfig:o.chainConfig}});return await i.setupProvider(o.signMethods),i});let QX=function(o){return o.secp256k1="secp256k1",o.ed25519="ed25519",o}({});const yX=new tKe.ec("secp256k1");class ts{constructor(i,s){FA(this,"x",void 0),FA(this,"y",void 0),this.x=new df(i,"hex"),this.y=new df(s,"hex")}static fromScalar(i,s){const f=s.g.mul(i);return ts.fromElliptic(f)}static fromCompressedPub(i){const f=yX.keyFromPublic(i,"hex").getPublic();return new ts(f.getX(),f.getY())}static fromJSON(i){const{x:s,y:f}=i;return new ts(s,f)}static fromElliptic(i){return i.isInfinity()?new ts(null,null):new ts(i.getX(),i.getY())}static fromSEC1(i,s){if(s.length===2&&s==="00"){const r=i.g.mul(new df(0));return ts.fromElliptic(r)}const l=i.keyFromPublic(s,"hex").getPublic();return ts.fromElliptic(l)}encode(i){switch(i){case"arr":return Buffer.concat([Buffer.from("0x04","hex"),Buffer.from(this.x.toString("hex"),"hex"),Buffer.from(this.y.toString("hex"),"hex")]);case"elliptic-compressed":{const f=yX.keyFromPublic({x:this.x.toString("hex"),y:this.y.toString("hex")},"hex");return Buffer.from(f.getPublic(!0,"hex"))}default:throw new Error("encoding doesnt exist in Point")}}toEllipticPoint(i){return this.isIdentity()?i.g.mul(new df(0)):i.keyFromPublic({x:this.x.toString("hex"),y:this.y.toString("hex")},"hex").getPublic()}toSEC1(i,s=!1){if(this.isIdentity())return Buffer.from("00","hex");const f=this.toEllipticPoint(i);return Buffer.from(f.encode("hex",s),"hex")}toJSON(){return{x:this.x.toString("hex"),y:this.y.toString("hex")}}isIdentity(){return this.x===null&&this.y===null}equals(i){return this.isIdentity()?i.isIdentity():this.x.eq(i.x)&&this.y.eq(i.y)}}var R9e=ts,x8={exports:{}},vX;function k9e(){return vX||(vX=1,function(o){(()=>{var i={};i.d=(xe,se)=>{for(var oe in se)i.o(se,oe)&&!i.o(xe,oe)&&Object.defineProperty(xe,oe,{enumerable:!0,get:se[oe]})},i.o=(xe,se)=>Object.prototype.hasOwnProperty.call(xe,se),i.r=xe=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(xe,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(xe,"__esModule",{value:!0})};var s={};i.r(s),i.d(s,{default:()=>he,load:()=>$,loadSync:()=>le,tssLib:()=>ae});var f={};i.r(f),i.d(f,{batch_size:()=>Ae,default:()=>te,get_r_from_precompute:()=>C,initSync:()=>Y,local_sign:()=>c,local_verify:()=>b,precompute:()=>h,random_generator:()=>E,random_generator_free:()=>e,setup:()=>a,sign:()=>R,threshold_signer:()=>A,threshold_signer_free:()=>n});let l;const r=new Array(32).fill(void 0);r.push(void 0,null,!0,!1);function B(xe){return r[xe]}let I=r.length;function p(xe){xe<36||(r[xe]=I,I=xe)}function Q(xe){const se=B(xe);return p(xe),se}const d=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});d.decode();let y=new Uint8Array;function v(){return y.byteLength===0&&(y=new Uint8Array(l.memory.buffer)),y}function w(xe,se){return d.decode(v().subarray(xe,xe+se))}function M(xe){I===r.length&&r.push(r.length+1);const se=I;return I=r[se],r[se]=xe,se}let m=0;const x=new TextEncoder("utf-8"),D=typeof x.encodeInto=="function"?function(xe,se){return x.encodeInto(xe,se)}:function(xe,se){const oe=x.encode(xe);return se.set(oe),{read:xe.length,written:oe.length}};function S(xe,se,oe){if(oe===void 0){const ue=x.encode(xe),Be=se(ue.length);return v().subarray(Be,Be+ue.length).set(ue),m=ue.length,Be}let Ue=xe.length,fe=se(Ue);const ce=v();let Te=0;for(;Te127)break;ce[fe+Te]=ue}if(Te!==Ue){Te!==0&&(xe=xe.slice(Te)),fe=oe(fe,Ue,Ue=Te+xe.length*3);const ue=v().subarray(fe+Te,fe+Ue),Be=D(xe,ue);Te+=Be.written}return m=Te,fe}function K(xe){return xe==null}let N=new Int32Array;function L(){return N.byteLength===0&&(N=new Int32Array(l.memory.buffer)),N}function j(xe){const se=typeof xe;if(se=="number"||se=="boolean"||xe==null)return`${xe}`;if(se=="string")return`"${xe}"`;if(se=="symbol"){const fe=xe.description;return fe==null?"Symbol":`Symbol(${fe})`}if(se=="function"){const fe=xe.name;return typeof fe=="string"&&fe.length>0?`Function(${fe})`:"Function"}if(Array.isArray(xe)){const fe=xe.length;let ce="[";fe>0&&(ce+=j(xe[0]));for(let Te=1;Te1)Ue=oe[1];else return toString.call(xe);if(Ue=="Object")try{return"Object("+JSON.stringify(xe)+")"}catch{return"Object"}return xe instanceof Error?`${xe.name}: ${xe.message} -${xe.stack}`:Ue}function re(xe,se,oe,Ue){const fe={a:xe,b:se,cnt:1,dtor:oe},ce=(...Te)=>{fe.cnt++;const ue=fe.a;fe.a=0;try{return Ue(ue,fe.b,...Te)}finally{--fe.cnt===0?l.__wbindgen_export_2.get(fe.dtor)(ue,fe.b):fe.a=ue}};return ce.original=fe,ce}function Z(xe,se,oe){l._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h7814fecea8304d3b(xe,se,M(oe))}function J(xe,se){try{return xe.apply(this,se)}catch(oe){l.__wbindgen_exn_store(M(oe))}}function Ae(){return l.batch_size()>>>0}function E(xe){try{const fe=l.__wbindgen_add_to_stack_pointer(-16),ce=S(xe,l.__wbindgen_malloc,l.__wbindgen_realloc),Te=m;l.random_generator(fe,ce,Te);var se=L()[fe/4+0],oe=L()[fe/4+1],Ue=L()[fe/4+2];if(Ue)throw Q(oe);return se}finally{l.__wbindgen_add_to_stack_pointer(16)}}function e(xe){l.random_generator_free(xe)}function A(xe,se,oe,Ue,fe,ce){try{const Ve=l.__wbindgen_add_to_stack_pointer(-16),H=S(xe,l.__wbindgen_malloc,l.__wbindgen_realloc),k=m,G=S(fe,l.__wbindgen_malloc,l.__wbindgen_realloc),O=m,ee=S(ce,l.__wbindgen_malloc,l.__wbindgen_realloc),de=m;l.threshold_signer(Ve,H,k,se,oe,Ue,G,O,ee,de);var Te=L()[Ve/4+0],ue=L()[Ve/4+1],Be=L()[Ve/4+2];if(Be)throw Q(ue);return Te}finally{l.__wbindgen_add_to_stack_pointer(16)}}function n(xe){l.threshold_signer_free(xe)}function a(xe,se){const oe=l.setup(xe,se);return Q(oe)}function h(xe,se,oe){const Ue=l.precompute(M(xe),se,oe);return Q(Ue)}function c(xe,se,oe){try{const Te=l.__wbindgen_add_to_stack_pointer(-16),ue=S(xe,l.__wbindgen_malloc,l.__wbindgen_realloc),Be=m;l.local_sign(Te,ue,Be,se,M(oe));var Ue=L()[Te/4+0],fe=L()[Te/4+1],ce=L()[Te/4+2];if(ce)throw Q(fe);return Q(Ue)}finally{l.__wbindgen_add_to_stack_pointer(16)}}function C(xe){try{const fe=l.__wbindgen_add_to_stack_pointer(-16);l.get_r_from_precompute(fe,M(xe));var se=L()[fe/4+0],oe=L()[fe/4+1],Ue=L()[fe/4+2];if(Ue)throw Q(oe);return Q(se)}finally{l.__wbindgen_add_to_stack_pointer(16)}}let g=new Uint32Array;function t(){return g.byteLength===0&&(g=new Uint32Array(l.memory.buffer)),g}function u(xe,se){const oe=se(xe.length*4),Ue=t();for(let fe=0;fe>>0,fe>>>0,w(ce,Te),w(ue,Be));return M(Ve)}finally{l.__wbindgen_free(se,oe),l.__wbindgen_free(ce,Te),l.__wbindgen_free(ue,Be)}},arguments)},xe.wbg.__wbg_jsreadmsg_3e2fec56a08697d4=function(){return J(function(se,oe,Ue,fe,ce,Te){try{const ue=js_read_msg(w(se,oe),Ue>>>0,fe>>>0,w(ce,Te));return M(ue)}finally{l.__wbindgen_free(se,oe),l.__wbindgen_free(ce,Te)}},arguments)},xe.wbg.__wbindgen_string_get=function(se,oe){const Ue=B(oe),fe=typeof Ue=="string"?Ue:void 0;var ce=K(fe)?0:S(fe,l.__wbindgen_malloc,l.__wbindgen_realloc),Te=m;L()[se/4+1]=Te,L()[se/4+0]=ce},xe.wbg.__wbindgen_cb_drop=function(se){const oe=Q(se).original;return oe.cnt--==1?(oe.a=0,!0):!1},xe.wbg.__wbg_call_168da88779e35f61=function(){return J(function(se,oe,Ue){const fe=B(se).call(B(oe),B(Ue));return M(fe)},arguments)},xe.wbg.__wbg_new_9962f939219f1820=function(se,oe){try{var Ue={a:se,b:oe},fe=(Te,ue)=>{const Be=Ue.a;Ue.a=0;try{return T(Be,Ue.b,Te,ue)}finally{Ue.a=Be}};const ce=new Promise(fe);return M(ce)}finally{Ue.a=Ue.b=0}},xe.wbg.__wbg_resolve_99fe17964f31ffc0=function(se){const oe=Promise.resolve(B(se));return M(oe)},xe.wbg.__wbg_then_11f7a54d67b4bfad=function(se,oe){const Ue=B(se).then(B(oe));return M(Ue)},xe.wbg.__wbg_then_cedad20fbbd9418a=function(se,oe,Ue){const fe=B(se).then(B(oe),B(Ue));return M(fe)},xe.wbg.__wbg_buffer_3f3d764d4747d564=function(se){const oe=B(se).buffer;return M(oe)},xe.wbg.__wbg_new_8c3f0052272a457a=function(se){const oe=new Uint8Array(B(se));return M(oe)},xe.wbg.__wbg_set_83db9690f9353e79=function(se,oe,Ue){B(se).set(B(oe),Ue>>>0)},xe.wbg.__wbg_length_9e1ae1900cb0fbd5=function(se){return B(se).length},xe.wbg.__wbindgen_debug_string=function(se,oe){const Ue=j(B(oe)),fe=S(Ue,l.__wbindgen_malloc,l.__wbindgen_realloc),ce=m;L()[se/4+1]=ce,L()[se/4+0]=fe},xe.wbg.__wbindgen_throw=function(se,oe){throw new Error(w(se,oe))},xe.wbg.__wbindgen_memory=function(){const se=l.memory;return M(se)},xe.wbg.__wbindgen_closure_wrapper523=function(se,oe,Ue){const fe=re(se,oe,110,Z);return M(fe)},xe}function F(xe,se){return l=xe.exports,W.__wbindgen_wasm_module=se,N=new Int32Array,g=new Uint32Array,y=new Uint8Array,l}function Y(xe){const se=P();xe instanceof WebAssembly.Module||(xe=new WebAssembly.Module(xe));const oe=new WebAssembly.Instance(xe,se);return F(oe,xe)}async function W(xe){const se=P();(typeof xe=="string"||typeof Request=="function"&&xe instanceof Request||typeof URL=="function"&&xe instanceof URL)&&(xe=fetch(xe));const{instance:oe,module:Ue}=await V(await xe,se);return F(oe,Ue)}const te=W,z="data:application/wasm;base64,AGFzbQEAAAAB/QEgYAF/AGACf38AYAN/f38AYAN/f38Bf2ACf38Bf2AEf39/fwBgAX8Bf2AFf39/f38AYAZ/f39/f38AYAAAYAV/f39/fwF/YAZ/f39/f38Bf2AAAX9gB39/f39/f38Bf2AEf39/fwF/YAF+AX9gCH9/f39/f39/AX9gCX9/f39/f39/fwF/YAR/f39+AGADfn9/AX9gA39/fgBgC39/f39/f39/f39/AX9gCX9/f39/f39/fwBgCn9/f39/f39/f38AYAd/f39/f39/AGACf34AYAV/f31/fwBgBH99f38AYAV/f35/fwBgBH9+f38AYAV/f3x/fwBgBH98f38AAokFFAN3YmcaX193YmluZGdlbl9vYmplY3RfZHJvcF9yZWYAAAN3YmcVX193YmluZGdlbl9zdHJpbmdfbmV3AAQDd2JnGl9fd2JpbmRnZW5fYmlnaW50X2Zyb21fdTY0AA8Dd2JnIF9fd2JnX2pzc2VuZG1zZ185NTU4ZTFlNmNjYmYwYmY2ABADd2JnIF9fd2JnX2pzcmVhZG1zZ18zZTJmZWM1NmEwODY5N2Q0AAsDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX2dldAABA3diZxJfX3diaW5kZ2VuX2NiX2Ryb3AABgN3YmcbX193YmdfY2FsbF8xNjhkYTg4Nzc5ZTM1ZjYxAAMDd2JnGl9fd2JnX25ld185OTYyZjkzOTIxOWYxODIwAAQDd2JnHl9fd2JnX3Jlc29sdmVfOTlmZTE3OTY0ZjMxZmZjMAAGA3diZxtfX3diZ190aGVuXzExZjdhNTRkNjdiNGJmYWQABAN3YmcbX193YmdfdGhlbl9jZWRhZDIwZmJiZDk0MThhAAMDd2JnHV9fd2JnX2J1ZmZlcl8zZjNkNzY0ZDQ3NDdkNTY0AAYDd2JnGl9fd2JnX25ld184YzNmMDA1MjI3MmE0NTdhAAYDd2JnGl9fd2JnX3NldF84M2RiOTY5MGY5MzUzZTc5AAIDd2JnHV9fd2JnX2xlbmd0aF85ZTFhZTE5MDBjYjBmYmQ1AAYDd2JnF19fd2JpbmRnZW5fZGVidWdfc3RyaW5nAAEDd2JnEF9fd2JpbmRnZW5fdGhyb3cAAQN3YmcRX193YmluZGdlbl9tZW1vcnkADAN3YmcdX193YmluZGdlbl9jbG9zdXJlX3dyYXBwZXI1MjMAAwPbA9kDAgQCAQQAAQAAAQAAAgYFAgUFAAIAAQAHAgUFAAIBAAQHAgcFAAABAggCAAUCAgIBBQIAAAIEBwIDAAMCAQIAAgABCwIAAQAFAAAIAgIAAAEBAAERAwECAgIDAQQEBgECAAIBAgECAAEBAQIBAQEEAAAAAgEAAAkNAAgBAAEKAAACAAQEEgEEEwQFAAQBAAAAAAAABQAAAgAEBQECAQACAAMAAgICAQYCAAAAAAAAAAABAhQAAgEBAgEBAQEAAAAIAQEFAQEBAQEBAQEBAQEKAAICAgEAAAAAAAACBAEVAgUAAQACAA0FAQUACAEBAAEABAQEAQQEAAEABAECFgEBAhcBAgAGAQABAAAAAAQEAAAAAAAABwQGBAAACwEHAAcBAgIAAAEAAQICAQECAgIYAQEBAQEZAQAEBAQEBAQEBAEBBAQABwEABAAEBAQFBAQIAwAAAAAAAAEBAQMCBAAAAAUCAQoABAQDBAQBBAQGBAQECQQBAQEBAQEBAQQEBAECAgQBAQABCQEEAgEDCxoKBxweAAQFAQQCAwAEAAAEDgEEBAAEBAcEBAEEBAAGAQEEBAEEBAIEAgIEAgQABgQEBAQEBAQBBAQEBAQEBAQEAwMCAwMJCQQGDAAEBwFwAeUB5QEFAwEAEQYJAX8BQYCAwAALB5oEFAZtZW1vcnkCAApiYXRjaF9zaXplAOsDEHJhbmRvbV9nZW5lcmF0b3IAuwIVcmFuZG9tX2dlbmVyYXRvcl9mcmVlALADEHRocmVzaG9sZF9zaWduZXIAlAIVdGhyZXNob2xkX3NpZ25lcl9mcmVlAK8DBXNldHVwAJADCnByZWNvbXB1dGUA+wIKbG9jYWxfc2lnbgCyAhVnZXRfcl9mcm9tX3ByZWNvbXB1dGUA2QIMbG9jYWxfdmVyaWZ5AJACBHNpZ24ArgIRX193YmluZGdlbl9tYWxsb2MAgQMSX193YmluZGdlbl9yZWFsbG9jAJ8DE19fd2JpbmRnZW5fZXhwb3J0XzIBAHxfZHluX2NvcmVfX29wc19fZnVuY3Rpb25fX0ZuTXV0X19BX19fX091dHB1dF9fX1JfYXNfd2FzbV9iaW5kZ2VuX19jbG9zdXJlX19XYXNtQ2xvc3VyZV9fX2Rlc2NyaWJlX19pbnZva2VfX2g3ODE0ZmVjZWE4MzA0ZDNiAKsDD19fd2JpbmRnZW5fZnJlZQCzAxRfX3diaW5kZ2VuX2V4bl9zdG9yZQC/Ax9fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyANADP3dhc21fYmluZGdlbl9fY29udmVydF9fY2xvc3VyZXNfX2ludm9rZTJfbXV0X19oYjllZmFlOGY4NDk4ZjViOACoAwnJAwIAQQELa7oDzAPsA88BxgGvAZgBugPsA7oD0QK7A+wD5AHkAfIB8gHuAe4BqAEVtQEznAIYrQPkApoB1APsA9EDiAKLA7wB7QHoAocDvQHsAeoCigO/AeoB5gKOA78B6gHmAogDwQHoAeUCjAPBAegB5QKJA8AB6wHnAo0DvgHpAekCiQK6A40CjwP/AtICrQPkApoB7APSA+wDqgP9AvwC1QOAA7ECPcoCQuwD/wLLAq0DqwLdAq0D8AKfAbED1gPTA+wDvAO6A60D5AKaAewDvQKpA/kCAEHtAAt4qwObA6sDuQKbAna2A+sC0wLsAtQCmQP4AfMCnwKiA/4BowOiA6ADrAOoA6MDowOhA6UDpAO7A84DugO6A+wD+gL5Am/MApEDggPaA9kD7APVAt4C/wLNAuwDoALfAuwD+gLsA6EC4gL/As4CgwP5AuwDcM8C+gKVA9oD2QPsA9YC4QLbA4UCuwPQAtwD7APvAfoC+QKcA7oDuwO6Aq0D5AKWAd0D7AOEA+wDpwPEA8MDrgPCA7wD7QLFA6YDyQGZAuwDwQOtA+4C4APeA+wD3wPJA7UDtAO4A8YDxwOGA6wB7APBA+wDbdsC4QMKh/8k2QOe7Q0CVH8KfiMAQeArayIPJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQCABLQD5BkEBaw4LCg0BCwwPHRARHh8ACyABQQA6APgGIAEgASkC5AY3AvAFIAEgASgC3AYiAzYC7AUgASABKALkBSIKNgLkASABIAEoAuAFIgQ2AuABIAFBgAZqIAFB9AZqKAIANgIAIAFB+AVqIAFB7AZqKQIANwIAAkAgAygCJEGAgICAeEcEQCABKALgBiEFIAEoAugFIQYgASADQSRqIhI2AoQGIA9BwAdqIQcCQAJAAkACQAJAAkAgCiASKAIIIgNNBEAgA0UNASADQQBIDXggA0EBEL4DIglFDY4BIApFDQQMAwtBsZXCAC0AABpBLkEBEL0DIgNFDQEgB0EuNgIMIAcgAzYCCCAHQoCAgIDgBTcCACADQSZqQdGqwQApAAA3AAAgA0EgakHLqsEAKQAANwAAIANBGGpBw6rBACkAADcAACADQRBqQbuqwQApAAA3AAAgA0EIakGzqsEAKQAANwAAIANBq6rBACkAADcAAAwFC0EBIQkgCg0BIAcgEkEBIAMQWwwEC0EBQS5B6JXCACgCACIAQbwBIAAbEQEAAAsgCkECdCEKA0AgBCgCACITIANPDQIgCSATakEBOgAAIARBBGohBCAKQQRrIgoNAAsLIAcgEiAJIAMQWyAJIANBARDIAwwBC0GxlcIALQAAGkEjQQEQvQMiBARAIAdBIzYCDCAHIAQ2AgggB0KAgICAsAQ3AgAgBEEfakGnqsEAKAAANgAAIARBGGpBoKrBACkAADcAACAEQRBqQZiqwQApAAA3AAAgBEEIakGQqsEAKQAANwAAIARBiKrBACkAADcAACAJIANBARDIAwwBC0EBQSNB6JXCACgCACIAQbwBIAAbEQEAAAsgDygCwAciCUEERg0BIA8oAswHIQogDygCyAchBCAPKALEByEFQQEhAwxpC0GxlcIALQAAGkEBIQNBFSEFQRVBARC9AyIERQ0SIARBDWpBn+fAACkAADcAACAEQQhqQZrnwAApAAA3AAAgBEGS58AAKQAANwAAQRUhCgxoCyABKAKEBiIEKAJgIgMgBCgCXCIHTw0SIAEgBCgCWCADQQN0aikDADcD6AEgASgC5AEiGARAIAFB8AVqIRIgASgC4AEhCiAYQQJ0IQkgASgC7AUiBygCjAEhE0EAIQMDQCATIAMgCmooAgBGDQMgC0EBaiELIAkgA0EEaiIDRw0ACwsgD0HAB2pB+N7AAEEZELwCIA8pAsQHIldCIIinIQogDygCwAchBSBXpyEEQQAhCUEBIQMMZwsgAUGAB2ohLiABQeYIaiFFAkAgAS0A5ghBAWsOBhMMAwYHCAALIAEoAuAIIQQgASgCnAghCyABKALcCCESIAEoAtgIIQUgASgCmAghBiABKAKUCCEYIAEoApAIIQogASgCjAghByABKAKICCEDDAELIAEgCzYCiAYgB0EQaigCACEDIAdBFGooAgAhByABQQA6AOYIIAEgBDYC4AggASASNgLcCCABIAU2AtgIIAEgCzYCnAggASAGNgKYCCABIBg2ApQIIAEgCjYCkAggASAHNgKMCCABIAM2AogIIAFBgAdqIS4gAUHmCGohRQsgASAENgKwCCABIAs2AqwIIAEgEjYCqAggASAFNgKkCCABIAY2AqAIIAEgGDYChAggASAKNgKACCABQQA7AeQIIC4gBRDFAiABQaAHaiIEIAEoAqQIEMUCIA9BwAdqIgtBGGogLkEYaikCADcDACALQRBqIC5BEGopAgA3AwAgC0EIaiAuQQhqKQIANwMAIA8gLikCADcDwAcgAUHAB2oiBSALEPsBIAsQtwIgAUHgB2ogBSAEEMECIA8gASkDgAg3AswHIA9BADYCyAcgDyADNgLAByAPIAMgB0EDdGo2AsQHIAFBtAhqIQ0jAEEQayITJAAgCygCECIYQQJ0IQogCygCDCEDIAsoAgghFSALKAIAIQYgCygCBCEUAkACQANAIAYgFEYNASALIAZBCGoiBDYCACAKIQUgAyEHAn8DQEEAIAVFDQEaIAVBBGshBSAHKAIAIAdBBGohByAVRw0ACyAGCyEJIAsgFUEBaiIVNgIIIAQhBiAJRQ0AC0GxlcIALQAAGkEQQQQQvQMiEgRAIBIgCTYCACATQQE2AgwgEyASNgIIIBNBBDYCBAJAIAQgFEYNACAYQQJ0IQlBASEGA0AgBCIKQQhqIQQgCSEFIAMhBwJAA0AgBUUNASAFQQRrIQUgBygCACAHQQRqIQcgFUcNAAsgFUEBaiEVIBMoAgQgBkYEQCMAQSBrIgUkACAGQQFqIgsgBkkNc0EEIRhBBCATQQRqIgcoAgAiEkEBdCIOIAsgCyAOSRsiCyALQQRNGyIOQQJ0IQwgC0GAgICAAklBAnQhCwJAIBJFBEBBACEYDAELIAUgEkECdDYCHCAFIAcoAgQ2AhQLIAUgGDYCGCAFQQhqIAsgDCAFQRRqEPoBIAUoAggEQCAFKAIMIgBFDXQgACAFKAIQQeiVwgAoAgAiAEG8ASAAGxEBAAALIAUoAgwhCyAHIA42AgAgByALNgIEIAVBIGokACATKAIIIRILIBIgBkECdGogCjYCACATIAZBAWoiBjYCDCAEIBRHDQEMAgsgFUEBaiEVIAQgFEcNAAsLIA0gEykCBDcCACANQQhqIBNBDGooAgA2AgAMAgtBBEEQQeiVwgAoAgAiAEG8ASAAGxEBAAALIA1BADYCCCANQoCAgIDAADcCAAsgE0EQaiQAIAFBuAhqKAIAIQ0gAUG8CGooAgAhDiABKAKwCCESIAEoAqQIIRkgASgCrAghAyABKAKgCCEYIA9BkClqIgQgASgCqAgiBRCzAiAFKQIMIVcgASAPKQOQKTcD6AggAUHwCGogBEEIaigCADYCACABQQA6APgJIAEgGDYClAkgASADNgKQCSABQQQ2AowJIAEgGTYCiAkgASASNgKECSABIA42AoAJIAEgDTYC/AggASBXNwL0CCABQfgJaiEWIAFB6AhqIRpBBAwBCyABQegIaiEaIAFB+AlqIRYCQCABLQD4CUEBaw4DHgkCAAsgASgCiAkhGSABKAKECSESIAEoAoAJIQ4gASgC/AghDSABKAKUCSEYIAEoApAJIQMgASgCjAkLIQQgASADNgKcCSABIAQ2ApgJIAEgGikCADcCoAkgAUGoCWogGkEIaikCADcCACABQbAJaiAaQRBqKAIANgIAAkAgGARAIBhBkI2kA0sNbCAYQbgCbCIDQQBIDWxBsZXCAC0AABogA0EIEL0DIgRFDW8gAUEANgK8CSABIAQ2ArgJIAEgGDYCtAlBsZXCAC0AABogGEEYbCIEQQQQvQMiA0UNfyABQbQJaiEHIAFBwAlqIQYgAUEANgLICSABIAM2AsQJIAEgGDYCwAkgD0HYAmohEyAPQcwpaiEUIA9BxClqIQxBACELA0AgD0HQAmoiAyAZEFUgD0GwKWoiBEEYaiADQRhqKQAAIlc3AwAgBEEQaiADQRBqKQAAIlg3AwAgDyATKQAAIlk3A7gpIA8gDykA0AIiWjcDsCkgFCgCACEEIAwoAgAhBSAPKAK8KSEJIA8oArQpIQojAEEgayIDJAAgA0EENgIEQeDewAAoAAAhCCADQSBqJAAjAEEgayIDJAAgA0EENgIEQeTewAAoAAAhESADQSBqJAAgASgCvAkiAyABKAK0CUYEQCAHIAMQ3AEgASgCvAkhAwsgASgCuAkgA0G4AmxqQQBBgAIQ5QMiA0G0AmogETYCACADQbACaiAINgIAIANCADcDqAIgA0GkAmogBDYCACADQaACaiBXPgIAIANBnAJqIAU2AgAgAyBYPgKYAiADQZQCaiAJNgIAIANBkAJqIFk+AgAgA0GMAmogCjYCACADIFo+AogCIANBwAA2AoACIAEgASgCvAlBAWo2ArwJIA9B0AJqIBIgCxBrIA8oAuACIQogDygC3AIhBCAPKALYAiEFIA8oAtQCIQkgDygC0AIiCEUNICAPKALkAiERIAEoAsgJIgMgASgCwAlGBEAgBiADENoBIAEoAsgJIQMLIAEoAsQJIANBGGxqIgMgETYCFCADIAo2AhAgAyAENgIMIAMgBTYCCCADIAk2AgQgAyAINgIAIAEgASgCyAlBAWo2AsgJIA9BADoAsCkgD0EAOgCxKSAPQQA6ALIpIA9BADoAsykgD0EAOgC0KSAPQQA6ALUpIA9BADoAtikgD0EAOgC3KSAPQQA6ALgpIA9BADoAuSkgD0EAOgC6KSAPQQA6ALspIA9BADoAvCkgD0EAOgC9KSAPQQA6AL4pIA9BADoAvykgD0EAOgDAKSAPQQA6AMEpIA9BADoAwikgD0EAOgDDKSAPQQA6AMQpIA9BADoAxSkgD0EAOgDGKSAPQQA6AMcpIA9BADoAyCkgD0EAOgDJKSAPQQA6AMopIA9BADoAyykgD0EAOgDMKSAPQQA6AM0pIA9BADoAzikgD0EAOgDPKSAYIAtBAWoiC0cNAAsMAQsgAUIENwLECSABQgA3ArwJIAFCgICAgIABNwK0CQsgD0HQAmoiAyABQaAJahCzAiAPIAEpAqwJNwLcAiAPQaApaiADIBgQtwEgD0EANgKEAyAPQgA3AvwCIA9BADYC8AIgD0IANwLoAiAPIA8oAqQpIgQgDygCqClBFGxqNgLkAiAPIA8oAqApNgLgAiAPIAQ2AtwCIA8gBDYC2AIgDyABKAK4CSIENgKIAyAPIAEoAsQJIgU2AvQCIA8gDTYC0AIgDyANIA5BAnRqNgLUAiAPIAQgASgCvAlBuAJsajYCjAMgDyAFIAEoAsgJQRhsajYC+AIgD0GYA2pCADcCACAPQgA3ApADIA8gAUGYCWo2AqQDIA8gAUGcCWo2AqADIA9BsClqIRUjAEGQAWsiDiQAIANBQGshBCADQSxqIQUgA0EYaiEHIAMoAhAhBiADKAIIIQkCfyADKAIEIgogAygCACILa0ECdiINIAMoAhQiEiADKAIMIhNrQRRuIhQgDSAUSRsiGCADKAIoIg0gAygCJCIUa0EYbiIMIAwgGEsbIgwgAygCPCIYIAMoAjgiA2tBuAJuIgggCCAMSxtBH08EQCAOQdgAaiAHQQhqKAIANgIAIA5B7ABqIAVBCGooAgA2AgAgDkGAAWogBEEIaikCADcCACAOQYgBaiAEQRBqKQIANwIAIA4gEjYCTCAOIAY2AkggDiATNgJEIA4gCTYCQCAOIAo2AjwgDiALNgI4IA4gDTYCYCAOIBQ2AlwgDiAYNgJ0IA4gAzYCcCAOIAcpAgA3AlAgDiAFKQIANwJkIA4gBCkCADcCeCAOQRhqIQggDkE4aiEFIwBBgAFrIhQkAEGxlcIALQAAGgJAQZgFQQgQvQMiAwRAIANCADcDgAUgA0GAgICAeDYCCCADQoGAgIAQNwMAIANBATsBlAUgA0F/NgKQBSADQYgFakIANwMAQbGVwgAtAAAaQSBBBBC9AyIERQ1pIAQgA0EIaiIHNgIcIAQgBzYCGCAEQQA2AhQgBEEANgIMIAQgAzYCCCAEQoGAgIAQNwIAIBRBADoAHCAUQQA2AhggFCAENgIUIBRCADcCICAUQQA2AhAgFEKAgICAwAA3AgggFEEoaiIDIAVB2AAQ5gMaQQAhGEEAIRNBACENIwBBsAprIhIkACADKAJUIQsgAygCUCEMIAMoAkwhGSADKAIQIR8gAygCCCEkIAMoAjwhESADKAI4IRAgAygCKCEpIAMoAiQhBiADKAIEIQogAygCACEFIAMoAhQhCSADKAIMIQQgEkEIaiIHQRhqIhwgFEEIaiIDQRhqKQIANwMAIAdBEGoiHSADQRBqKQIANwMAIAdBCGoiGyADQQhqKQIANwMAIBIgAykCADcDCCAKIAVrQQJ2IgcgCSAEa0EUbiIDIAMgB0sbIgcgKSAGa0EYbiIXIAcgF0kbIgcgESAQa0G4Am4iESAHIBFJGyIjBEAgEkHQAGohKiALKAIAISUgDCgCACEnIBJBNGohDCASQcgAaiEoIAQhAwNAAkAgBSAKRgRAQYCAgIB4IREgCiEHDAELIAVBBGohByADIAlGBH8gCQUgA0EUaiEEAkAgAygCACIRQYCAgIB4Rg0AIAMoAgQhCyADKQIIIVcgEkEwaiIXIANBEGooAgA2AgAgEiBXNwMoIAYgKUcEQCASQcAFaiAXKAIANgIAIBIgEikDKDcDuAUgBSEYIAshEyAEIQMgBiINQRhqIQYMAwsgEUUNACALIBFBARDIAwsgBAshA0GAgICAeCERCyAHIQUgKiASKQO4BTcCACAqQQhqIBJBuAVqIhdBCGooAgA2AgAgEkEoaiIHQQhqIjMgGykDADcDACAHQRBqIi0gHSkDADcDACAHQRhqIiAgHCkDADcDACASIBM2AkwgEiARNgJIIBIgEikDCDcDKCASQQA6AHggEiAlNgJwIBIgJzYCbCASIA02AmAgEiAYNgJcIBIgEDYCZCASIBk2AmggICgCACEHIBcgKEHwBBDmAxogICAHQQFqNgIAIBIgBzYCqAogDCgCACIRKAIIISICQAJAA0AgESgCBCEHA0AgB0F/Rg0BIAdBAEgNAiARIAdBAWogESgCBCILIAcgC0YbNgIEIAcgC0cgCyEHDQALC0GxlcIALQAAGkGYBUEIEL0DIgdFDXYgB0KBgICAEDcDACAHQQhqIBdB+AQQ5gMhFyAHQQE7AZQFIAcgETYCkAUgB0EANgKMBSAHQgA3AoQFIAcgIkEIajYCgAUgDEEAOgAIIAwoAgQhCyAMIBc2AgQCQCALBEAgDCgCACgCCEEIaiERA0AgCygC+AQgEUYNAAsgCygCgAUhESAHIAs2AoAFIAcgEUEBajYCiAUgCyAXNgL8BAwBCyAHQQA2AoAFIAdBATYCiAULIAdBADYCjAUgDCgCACIHKAIYIAcgFzYCGCAXNgKEBQwBCxDnAwALIBsgMykDADcDACAdIC0pAwA3AwAgHCAgKQMANwMAIBIgEikDKDcDCCAZQQFqIRkgEEG4AmohECAjQQFrIiMNAAsgCSAEa0EUbiEDCyAIIBIpAwg3AgAgCEEYaiAcKQMANwIAIAhBEGogHSkDADcCACAIQQhqIBspAwA3AgAgBCAJRwRAA0AgBCgCACIFBEAgBEEEaigCACAFQQEQyAMLIARBFGohBCADQQFrIgMNAAsLIB8EQCAkIB9BFGxBBBDIAwsgEkGwCmokACAUQYABaiQADAELDHELIA5BCGogCEEUaikCADcDACAOQRBqIA5BNGooAgA2AgAgDiAOKQIkNwMAIA4oAhwhBCAOKAIgIQYgDigCGAwBCyAOQYgBaiAEQRBqKQIANwMAIA5BgAFqIARBCGopAgA3AwAgDkHYAGogB0EIaigCADYCACAOIAQpAgA3A3ggDiAHKQIANwNQIA4gDTYCYCAOIBQ2AlwgDiASNgJMIA4gBjYCSCAOIBM2AkQgDiAJNgJAIA4gCjYCPCAOIAs2AjggDkHsAGogBUEIaigCADYCACAOIAUpAgA3AmQgDiAYNgJ0IA4gAzYCcCAOQRhqIRdBACEEIwBB8ABrIggkAEEIIRQCQAJAIA5BOGoiBSgCBCIGIAUoAgAiCWtBAnYiAyAFKAIUIgogBSgCDCILa0EUbiIHIAMgB0kbIgMgBSgCKCISIAUoAiQiE2tBGG4iByADIAdJGyIDIAUoAjwiDSAFKAI4IhhrQbgCbiIHIAMgB0kbIgMEQCADQaDXHksNbiADQbAhbCIHQQBIDW5BsZXCAC0AABogAyEEIAdBCBC9AyIURQ0BCyAIQQhqIhlBADYCACAIIBQ2AgQgCCAENgIAIAUoAgghBCAFKAIQIQcgCEEMaiIDQSBqIAVBIGooAgA2AgAgA0E0aiAFQTRqKAIANgIAIANByABqIAVByABqKQIANwIAIANB0ABqIAVB0ABqKQIANwIAIAggCjYCICAIIAc2AhwgCCALNgIYIAggBDYCFCAIIAY2AhAgCCAJNgIMIAggEjYCNCAIIBM2AjAgCCANNgJIIAggGDYCRCAIIAUpAhg3AiQgCCAFKQIsNwI4IAggBSkCQDcCTCAIIBQ2AmwgCEEANgJoIAggGTYCZEEAIRJBACELQQAhCSMAQSBrIhQkACAIQeQAaiIEKAIEIRAgBCgCACADKAIQIRsgAygCCCEgIAMoAgQiCiADKAIAIgdrQQJ2IhMgAygCFCIGIAMoAgwiBWtBFG4iHCATIBxJGyITIAMoAigiHyADKAIkIhhrQRhuIg0gDSATSxsiEyADKAI8IAMoAjgiHWtBuAJuIg0gDSATSxsiDQRAIAMoAlQhKSADKAJQISogAygCTCERIAQoAgggEEGwIWxqIRwgBSEEA0ACQCAHIApGBEBBgICAgHghDCAKIQMMAQsgB0EEaiEDIAQgBkYEfyAGBSAEQRRqIQUCQCAEKAIAIgxBgICAgHhGDQAgBCgCBCETIAQpAgghVyAUQRhqIiQgBEEQaigCADYCACAUIFc3AxAgGCAfRwRAIBRBCGogJCgCADYCACAUIBQpAxA3AwAgByESIBMhCyAFIQQgGCIJQRhqIRgMAwsgDEUNACATIAxBARDIAwsgBQshBEGAgICAeCEMCyADIQcgFEEYaiAUQQhqKAIAIgM2AgAgFCAUKQMAIlc3AxAgKigCACETICkoAgAhJCAcQQxqIAs2AgAgHEEIaiAMNgIAIBxBgYCAgHg2AgAgHEEQaiBXNwIAIBxBGGogAzYCACAcQThqQQA6AAAgHEEwaiAkNgIAIBxBLGogEzYCACAcQShqIBE2AgAgHEEkaiAdNgIAIBxBIGogCTYCACAcQRxqIBI2AgAgHEGwIWohHCARQQFqIREgEEEBaiEQIB1BuAJqIR0gDUEBayINDQALIAYgBWtBFG4hHAsgEDYCACAFIAZHBEADQCAFKAIAIgMEQCAFQQRqKAIAIANBARDIAwsgBUEUaiEFIBxBAWsiHA0ACwsgGwRAICAgG0EUbEEEEMgDCyAUQSBqJAAgF0EIaiAZKAIANgIAIBcgCCkCADcCACAIQfAAaiQADAELQQggB0HolcIAKAIAIgBBvAEgABsRAQAACyAOKAIcIQMCQCAOKAIgIgYgDigCGCIETwRAIAMhBAwBCyAEQbAhbCEFIAZFBEBBCCEEIAMgBUEIEMgDDAELIAMgBUEIIAZBsCFsIgMQsgMiBEUNbwtBgICAgHgLIQMgFSAGNgIIIBUgBDYCBCAVIAM2AgAgFSAOKQMANwIMIBVBADYCKCAVQoCAgIDAADcCICAVQRRqIA5BCGopAwA3AgAgFUEcaiAOQRBqKAIANgIAIA5BkAFqJAAgAUH0CWogD0HYKWooAgA2AgAgAUHsCWogD0HQKWopAwA3AgAgAUHkCWogFUEYaikDADcCACABQdwJaiAPQcApaikDADcCACABQdQJaiAPQbgpaikDADcCACABIA8pA7ApNwLMCQsgD0HQAmohIEEAIQMjAEHQIWsiHyQAAkACQAJAIAFBzAlqIhkoAgBBgICAgHhGBEAgGSgCBCIpIBkoAggiKkGwIWwiKGohJCAqRQ0CQQEhFQNAQQAhCiMAQeDCAGsiESQAAkACQEEBIAMgKWoiHCgCAEH/////B2oiBCAEQQNPG0EBaw4CAWwAC0EAIRJBACEYQQAhE0EAIQlBACEXQQAhFEEAIQ5BACEdIwBBwOQBayIIJAACQAJ/AkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfgJAAkACQAJAIBxBCGoiDC0AMEEBaw4EEAkFAQALIAwgDCgCICILNgIsIAxBJGohBUGBgICAeCENQQQhBkF/IAwoAiQiBCALRyAEIAtLG0H/AXEiBw4CTgIBCyAMQThqIRsgDEHsBGohJQJAAkACQCAMLQDsBEEBaw4DAgoBAAsgDCgChAQhCyAMKALUBCEQIAwoAtAEISMgDCgCgAQhBCAMKALMBCETDCYLIAxB2AFqIQ0gDEHIA2ohDgJAAkACQAJAAkACQCAMLQDIA0EBaw4GAg4BAwQFAAsgDCgCgAIhCyAMKAKwAyEQIAwoAqwDISMgDCgC/AEhByAMKAL4ASEGIAwoAqgDIRgMKwsgDCgC6AMhBCAMKALsAwwrC0HgscAAQSNBhMvAABD1AgALIAwoAuADIRAgDCgC3AMhBAwvCyAMKALsAyEQIAwoAugDIQQMNAsgDCgC+AMhECAMKAL0AyEEDDYLQeCxwABBI0HwvsAAEPUCAAtBASEEIAwoAhQoAgAiBygCAEEBRg0iIAhBAjYCpMQBIAhBiLnAADYCoMQBIAhCATcCrMQBIAhBAjYCNCAIIAU2AjAgCCAIQTBqNgKoxAEgCEGIpAFqIAhBoMQBahCHASAIKAKMpAEhByAIKAKQpAEiBQRAIAVBAEgNwAFBsZXCAC0AABogBUEBEL0DIgRFDdcBCyAFrUIghiAEIAcgBRDmA60gCCgCiKQBIgQEQCAHIARBARDIAwuEDAELIAwoAhQoAgAiBygCAEUNAiAIQQI2AqTEASAIQci5wAA2AqDEASAIQgE3AqzEASAIQQI2AjQgCCAFNgIwIAggCEEwajYCqMQBIAhBiKQBaiAIQaDEAWoQhwEgCCgCjKQBIQQCQCAIKAKQpAEiBUUEQEEBIRAMAQsgBUEASA2/AUGxlcIALQAAGiAFQQEQvQMiEEUN1gELIAWtQiCGIBAgBCAFEOYDrSAIKAKIpAEiBwRAIAQgB0EBEMgDC4QLIVdBACEGDEgLIAxBOGohEiAMQdwCaiEOAkAgDC0A3AJBAWsOAwkEAwALIAwoAqwCIQsgDCgCxAIhECAMKALAAiEHIAwoAqgCIQQgDCgCvAIhBgwBCyAMKAIoIQQgBygCBCEGIAwoAhghByAMKAIcIRAgCEH4owFqIAwQswIgDCAQNgLEAiAMIAc2AsACIAwgBjYCvAIgDCALNgKsAiAMIAQ2AqgCIAxBADoA3AIgDCAIKQP4owE3A8gCIAxB0AJqIAhBgKQBaigCADYCACAMIAwpAgw3AtQCIAxBOGohEiAMQdwCaiEOCyAMQYADNgK4AiAMIBA2ArQCIAwgBDYCsAIgDEEAOgD4ASAMIAs2AlwgDCAQNgJUIAwgBzYCUCASIAwpA8gCNwMAIAwgBkEMaiIGNgJMIBJBCGogDEHQAmopAwA3AwAgEkEQaiAMQdgCaigCADYCACAMIARBgANsQYABaiIENgJYIAxB+AFqIRgMAwsgDEH4AWohGAJAAkAgDC0A+AFBAWsOBggCAQUABgMLIAwoAowCIRAgDCgCiAIhBAwQCyAMKAKMAiEQIAwoAogCIQQMCAsACyAMKAJcIQsgDCgCVCEQIAwoAlAhByAMKAJYIQQgDCgCTCEGCyAMIAs2AmggDCAQNgJkIAwgBjYCYCAMIBIpAgA3AmwgDEH0AGogEkEIaikCADcCACAMQfwAaiASQRBqKAIANgIAIAwgBEFAayIFNgKMASAMQcAANgKIASAMIAQ2AoQBIAxBgAI2AoABIARBP3FFBEAgCEGIpAFqIgQgBiAFIAcQPyAIKQKQpAEhVyAIKAKMpAEhBSAIKAKIpAEiBkEERw0YIAwgVzcClAEgDCAFNgKQASAMKAJoIQUgCEGw5AFqIgcgDEHsAGoiBhCzAiAIQYzEAWpBAjYCACAIIAxBjAFqNgKIxAEgCEEINgKExAEgCEECNgKMpAEgCEGAwcAANgKIpAEgCEICNwKUpAEgCCAHNgKAxAEgCCAIQYDEAWo2ApCkASAIQaTkAWogBBCHASAIKAKw5AEiBARAIAgoArTkASAEQQEQyAMLIAwgCCkCpOQBNwL8ASAMQYQCaiIEIAhBrOQBaigCADYCACAEKAIAIQcgDEGAAmooAgAhC0GxlcIALQAAGkHMAEEEEL0DIgRFDcsBIARBADoASCAEIAU2AgwgBCAHNgIIIAQgCzYCBCAEIAY2AgBBlIHBACEQIAxBlIHBADYCjAIgDCAENgKIAgwGC0EAIQZBsZXCAC0AABpBEyEFQRNBARC9AyIERQ21ASAEQQ9qQZ/BwAAoAAA2AAAgBEEIakGYwcAAKQAANwAAIARBkMHAACkAADcAACAErUKAgICAsAKEIVcMFwsgDCgCmAIhECAMKAKUAiEEDAULIAwoAqQCIRAgDCgCoAIhBAwLC0HgscAAQSNB8LvAABD1AgALQeCxwABBI0GkwcAAEPUCAAtB4LHAAEEjQdi5wAAQ9QIACyAIQYikAWogBCACIBAoAgwRAgAgCCgCiKQBIgZBBUYNAyAIKQKQpAEhVyAIKAKMpAEhBSAMKAKIAiIHIAxBjAJqKAIAIgQoAgARAAAgBCgCBCILBEAgByALIAQoAggQyAMLQcQBIQQgBkEERw0QIAwgVzcDoAEgDCAFNgKcAQJ/IAwoAvwBIgRFBEAgV6chECBXQiCIpwwBCyAMKAKAAiAEQQEQyAMgDCgCoAEhECAMQaQBaigCAAshBCAIQYikAWoiByAQIAQQtgEgCCkCkKQBIVcgCCgCjKQBIQVB5AAhBCAIKAKIpAEiBkEERw0QIAwgVzcCrAEgDCAFNgKoASBXQiCIpyAMKAKMASAMKAKAAWxBA3ZHBEAgB0G0wcAAQSUQvAIgCCkCjKQBIVcgCCgCiKQBIQVBACEGDBALIAwgDCgCYCIFNgK0ASAMQZgBaigCACEHIAxBlAFqKAIAIQQgCCAMQagBajYCnKQBIAggDEGMAWo2ApikASAIIAU2ApSkASAIQQA2ApCkASAIIAQgB2o2AoykASAIIAQ2AoikASAIQYDEAWoiEyAIQYikAWoiDRDMASAMQcABaiIEIBNBCGooAgA2AgAgDCAIKQKAxAE3ArgBIAwoAogBIgVFDQQgDCAMKAKEASAFbjYCxAEgDCgCjAEiBUEISQ0FIAQoAgAiBCAFQQN2IgVwDQEgDEGIAmogDEH8AWohECAMQbwBaigCACEHIAggBTYCkKQBIAggBDYCjKQBIAggBzYCiKQBIAxByAFqIA0QgQEgDEHUAWogDCgCiAEgDCgCxAFsQQN2EJUCIAwoAmQhBCAMQdgBaiIjKAIAIRcgDEHcAWoiHSgCACELQQAhByMAQRBrIgYkAAJAAkAgCwRAIAQoAoACIQUDQCAFQcAATwRAIAQQHCAEKAKAAiIFQcEATw0DCyAGQQhqIAQgBUECdGpBwAAgBWsgByAXaiALIAdrELACIAQgBCgCgAIgBigCCGoiBTYCgAIgCyAGKAIMIAdqIgdLDQALCyAGQRBqJAAMAQsgBUHAAEGYscAAEMoDAAsgDCgCaCEEIAhBsOQBaiIFIAxB7ABqIhcQswIgCEGMxAFqQQI2AgAgCEEINgKExAEgCEECNgKMpAEgCEGEwsAANgKIpAEgCEICNwKUpAEgCCAdKAIANgKY5AEgCCAIQZjkAWo2AojEASAIIAU2AoDEASAIIBM2ApCkASAIQaTkAWogDRCAAiAIKAKw5AEiBQRAIAgoArTkASAFQQEQyAMLIBAgCCkCpOQBNwIAIBBBCGogCEGs5AFqKAIANgIAIAxBhAJqKAIAIQUgDEGAAmooAgAhByAjKAIAIB0oAgAQsgEgCEEoaiAXIAQgByAFIAxBjAJqKAIAIAxBkAJqKAIAEMICIAgoAighBCAMIAgoAiwiEDYCmAIgDCAENgKUAgsgCEGIpAFqIAQgAiAQKAIMEQIAIAgoAoikASIGQQVGDQEgCCkCkKQBIVcgCCgCjKQBIQUgDCgClAIiByAMQZgCaigCACIEKAIAEQAAIAQoAgQiCwRAIAcgCyAEKAIIEMgDCyAMKAKIAiIEBEAgDCgCjAIgBEEBEMgDCyAMKAL8ASIEBEAgDCgCgAIgBEEBEMgDCyAGQQRHDQwgCEGIpAFqIgcgDEHYAWooAgAgDEHcAWooAgAQyAEgCCkCkKQBIVcgCCgCjKQBIQUgCCgCiKQBIgZBBEcNDCAMQfwBaiEEIAwgVzcC5AEgDCAFNgLgASAMKAJoIQUgCEGAxAFqIgYgDEHsAGoiCxCzAiAIQQg2AqjkASAIQQI2AoykASAIQbDCwAA2AoikASAIQgE3ApSkASAIIAY2AqTkASAIIAhBpOQBajYCkKQBIAhBsOQBaiAHEIcBIAgoAoDEASIHBEAgCCgChMQBIAdBARDIAwsgBCAIKQKw5AE3AgAgBEEIaiAIQbjkAWooAgA2AgAgCEEgaiALIAUgDEGAAmooAgAgDEGEAmooAgAQ2AIgCCgCICEEIAwgCCgCJCIQNgKMAiAMIAQ2AogCDAULIAhBiKQBakGUwsAAQRAQvAIgCCkCjKQBIVcgCCgCiKQBIQVBACEGDAwLQQQMBQtBAwwEC0Ggr8AAQRlB3MHAABD1AgALQeCuwABBOUHswcAAEPUCAAsgCEGIpAFqIAQgAiAQKAIMEQIAQQUgCCgCiKQBIgZBBUYNARogCCkCkKQBIVcgCCgCjKQBIQUgDCgCiAIiByAMQYwCaigCACIEKAIAEQAAIAQoAgQiCwRAIAcgCyAEKAIIEMgDC0HEASEEIAZBBEcNBSAMIFc3A/ABIAwgBTYC7AECfyAMKAL8ASIERQRAIFenIRAgV0IgiKcMAQsgDCgCgAIgBEEBEMgDIAwoAvABIRAgDEH0AWooAgALIQQgCEGIpAFqIgcgECAEELYBIAgpApCkASFXIAgoAoykASEFQbQBIQQgCCgCiKQBIgZBBEcNBSAMIFc3A4ACIAwgBTYC/AEgV0IgiKciBCAMKAKIAUEDdkcEQCAHQcDCwABBIBC8AiAIKQKMpAEhVyAIKAKIpAEhBUEAIQYMBQsgCEGIpAFqIFenIAQQuAEgCCgCiKQBIgZBBEcEQCAIKQOQpAEhVyAIKAKMpAEhBQwFCyAMQYgCaiEEIAwgCCkDkKQBNwOYAiAMKAJoIQUgCEGAxAFqIgcgDEHsAGoiBhCzAiAIQQg2AqjkASAIQQI2AoykASAIQezCwAA2AoikASAIQgE3ApSkASAIIAc2AqTkASAIIAhBpOQBajYCkKQBIAhBsOQBaiAIQYikAWoQgAIgCCgCgMQBIgcEQCAIKAKExAEgB0EBEMgDCyAEIAgpArDkATcCACAEQQhqIAhBuOQBaigCADYCACAIQRhqIAYgBSAMQYwCaigCACAMQZACaigCABDYAiAIKAIYIQQgDCAIKAIcIhA2AqQCIAwgBDYCoAILIAhBiKQBaiAEIAIgECgCDBECACAIKAKIpAEiBkEFRwRAIAgpApCkASFXIAgoAoykASELIAwoAqACIgUgDEGkAmooAgAiBCgCABEAACAEKAIEIgcEQCAFIAcgBCgCCBDIAwsgBkEERgRAIAggCzYCmOQBIAwoAogCIQQgCCBXNwKc5AEgV6chFyAEBEAgDCgCjAIgBEEBEMgDCyAIQYikAWogFyBXQiCIpxC2ASAIKQKQpAEhVyAIKAKMpAEhEyAIQZjkAWohByAIKAKIpAEiBkEERwRAIBMhBSALIQQMBQsgCCgCkKQBIQ0gV0IgiKciBCAMKAKIASAMKAKAAWxBA3ZHBEAgCEGIpAFqQfzCwABBIBC8AiAIKQKMpAEhVyAIKAKIpAEhBUEAIQYMBAsgCEGIpAFqIhAgV6cgBBDIASAIKQKQpAEhVyAIKAKMpAEhBSAIKAKIpAEiBkEERw0DIAggVzcCqOQBIAggBTYCpOQBIAxB0AFqKAIAIQUgDEHMAWooAgAhBCAIIAxBxAFqNgKUpAEgCCAMQeABaiIdNgKQpAEgCCAENgKIpAEgCCAEIAVBDGxqNgKMpAEgCEGw5AFqIBAQzQEgDCgCtAEiBEEIaigCACEGIARBBGooAgAhBSAIIAxBmAJqNgKYpAFBACEEIAhBADYCkKQBIAggBSAGajYCjKQBIAggBTYCiKQBIAggCEGk5AFqNgKUpAEgCEGAxAFqIBAQsAEgCCgChMQBIQkgCCgCtOQBIRQCQCAIKAK45AEiBSAIKAKIxAFGBEAgBUEBaiEGA0AgBkEBayIGRQ0CIAQgCWohBSAEIBRqIARBCGohBCkDACAFKQMAUQ0ACwsgCEGIpAFqQZzDwABBLhC8AiAIKQKMpAEhVyAIKAKIpAEhBSAIKAKAxAEiBARAIAkgBEEDdEEIEMgDCyAIKAKw5AEiBARAIBQgBEEDdEEIEMgDC0EBIQYgCCgCpOQBIgRFDQQgCCgCqOQBIARBA3RBCBDIAwwECyAIQYikAWogDEG8AWooAgAgDEHAAWooAgAgDCgCjAFBA3YQNyAIKQKMpAEhVyAIKAKIpAEhBSAIKAKAxAEiBARAIAkgBEEDdEEIEMgDCyAIKAKw5AEiBARAIBQgBEEDdEEIEMgDCyAIKAKk5AEiBARAIAgoAqjkASAEQQN0QQgQyAMLIBMEQCANIBNBARDIAwsgCwRAIBcgC0EBEMgDCyAMKAL8ASIEBEAgDCgCgAIgBEEBEMgDCyAMKALsASIEBEAgDCgC8AEgBEEBEMgDCyAdKAIAIgQEQCAMKALkASAEQQN0QQgQyAMLIAxByAFqIQQgDCgC1AEiBwRAIAwoAtgBIAdBARDIAwsgDEG4AWogBBDXAiAEKAIAIgQEQCAMQcwBaigCACAEQQxsQQQQyAMLEIgBIAwoAqgBIgQEQCAMKAKsASAEQQEQyAMLIAwoApwBIgQEQCAMKAKgASAEQQEQyAMLIAxBkAFqEFhBBCEGDAsLIAxBiAJqIQcgCyEFIAwoAogCIQQMAwtBBgshBCAOQQM6AAAgGCAEOgAADAkLIAshBCATRQ0AIA0gE0EBEMgDCyAERQ0AIAcoAgQgBEEBEMgDC0G0ASEEIAwoAvwBIgdFDQAgDCgCgAIgB0EBEMgDCyAEIBJqIgQoAgAiBwRAIAQoAgQgB0EBEMgDCyAMKALgASIERQ0AIAwoAuQBIARBA3RBCBDIAwsgDCgC1AEiBARAIAwoAtgBIARBARDIAwsgDCgC0AEiEARAIAwoAswBIQQDQCAEKAIAIgcEQCAEQQRqKAIAIAdBA3RBCBDIAwsgBEEMaiEEIBBBAWsiEA0ACwsgDCgCyAEiBEUNACAMKALMASAEQQxsQQQQyAMLIAwoArwBIQsCQCAMKALAASIHRQ0AIAshBCAHQQdxIhAEQANAIARBADoAACAEQQFqIQQgEEEBayIQDQALCyAHQQhJDQAgByALaiEHA0AgBEEAOgAAIARBADoAASAEQQA6AAIgBEEAOgADIARBADoABCAEQQA6AAUgBEEAOgAGIARBADoAByAHIARBCGoiBEcNAAsLIAxBADYCwAEgDCgCuAEiBEEATgRAAkAgBEUNACAEQQdxIQdBACEQIARBCE8EQCAEQfj///8HcSEXA0AgCyAQaiIEQQA6AAAgBEEBakEAOgAAIARBAmpBADoAACAEQQNqQQA6AAAgBEEEakEAOgAAIARBBWpBADoAACAEQQZqQQA6AAAgBEEHakEAOgAAIBcgEEEIaiIQRw0ACwsgB0UNACALIBBqIQQDQCAEQQA6AAAgBEEBaiEEIAdBAWsiBw0ACwsgDCgCuAEiBEUNASAMKAK8ASAEQQEQyAMMAQsMogELQeQAIQQgDCgCqAEiB0UNACAMKAKsASAHQQEQyAMLIAQgEmoiBCgCACIHBEAgBCgCBCAHQQEQyAMLIAwoApQBIQsCQCAMKAKYASIHRQ0AIAshBCAHQQdxIhAEQANAIARBADoAACAEQQFqIQQgEEEBayIQDQALCyAHQQhJDQAgByALaiEHA0AgBEEAOgAAIARBADoAASAEQQA6AAIgBEEAOgADIARBADoABCAEQQA6AAUgBEEAOgAGIARBADoAByAHIARBCGoiBEcNAAsLIAxBADYCmAECQCAMKAKQASIEQQBOBEACQCAERQ0AIARBB3EhB0EAIRAgBEEITwRAIARB+P///wdxIRcDQCALIBBqIgRBADoAACAEQQFqQQA6AAAgBEECakEAOgAAIARBA2pBADoAACAEQQRqQQA6AAAgBEEFakEAOgAAIARBBmpBADoAACAEQQdqQQA6AAAgFyAQQQhqIhBHDQALCyAHRQ0AIAsgEGohBANAIARBADoAACAEQQFqIQQgB0EBayIHDQALCyAMKAKUASETAkAgDCgCmAEiB0UNACATIQQgB0EHcSIQBEADQCAEQQA6AAAgBEEBaiEEIBBBAWsiEA0ACwsgB0EISQ0AIAcgE2ohBwNAIARBADoAACAEQQA6AAEgBEEAOgACIARBADoAAyAEQQA6AAQgBEEAOgAFIARBADoABiAEQQA6AAcgByAEQQhqIgRHDQALCyAMQQA2ApgBIAwoApABIgRBAEgNAQJAIARFDQAgBEEHcSEHQQAhECAEQQhPBEAgBEH4////B3EhFwNAIBAgE2oiBEEAOgAAIARBAWpBADoAACAEQQJqQQA6AAAgBEEDakEAOgAAIARBBGpBADoAACAEQQVqQQA6AAAgBEEGakEAOgAAIARBB2pBADoAACAXIBBBCGoiEEcNAAsLIAdFDQAgECATaiEEA0AgBEEAOgAAIARBAWohBCAHQQFrIgcNAAsLIAwoApABIgRFDQIgDCgClAEgBEEBEMgDDAILDKEBCwygAQsgDCgCbCIEBEAgDCgCcCAEQQEQyAMLIBhBAToAACASEDIgBkEERwRAIA5BAToAAAwqCyBXQiCIpyELIFenIRICQAJAAkACQAJAAkACfyAMKAKwAiIERQRAIAhCBDcCqOQBIAggBDYCpOQBQQAhF0EADAELIARBqtWq1QBLDaUBIARBDGwiB0EASA2lAUGxlcIALQAAGiAHQQQQvQMiBkUNrQFBACEXIAhBADYCrOQBIAggBjYCqOQBIAggBDYCpOQBQQAgDCgCsAIiE0UNABpB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BmpBADoAACADQQdqQQA6AAAgECAHQQhqIgdHDQALCyASRQ0AIAQgB2ohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyAKKAK4ASIDRQ0BIAooArwBIANBARDIAwwBCwynAQtB5AAhAyAKKAKoASIERQ0AIAooAqwBIARBARDIAwsgAyARaiIDKAIAIgQEQCADKAIEIARBARDIAwsgCigClAEhBAJAIAooApgBIhJFDQAgBCEDIBJBB3EiBwRAA0AgA0EAOgAAIANBAWohAyAHQQFrIgcNAAsLIBJBCEkNACAEIBJqIQcDQCADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIAcgA0EIaiIDRw0ACwsgCkEANgKYAQJAIAooApABIgNBAE4EQAJAIANFDQAgA0EHcSESQQAhByADQQhPBEAgA0H4////B3EhEANAIAQgB2oiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAQIAdBCGoiB0cNAAsLIBJFDQAgBCAHaiEDA0AgA0EAOgAAIANBAWohAyASQQFrIhINAAsLIAooApQBIQQCQCAKKAKYASISRQ0AIAQhAyASQQdxIgcEQANAIANBADoAACADQQFqIQMgB0EBayIHDQALCyASQQhJDQAgBCASaiEHA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAHIANBCGoiA0cNAAsLIApBADYCmAEgCigCkAEiA0EASA0BAkAgA0UNACADQQdxIRJBACEHIANBCE8EQCADQfj///8HcSEQA0AgBCAHaiIDQQA6AAAgA0EBakEAOgAAIANBAmpBADoAACADQQNqQQA6AAAgA0EEakEAOgAAIANBBWpBADoAACADQQZqQQA6AAAgA0EHakEAOgAAIBAgB0EIaiIHRw0ACwsgEkUNACAEIAdqIQMDQCADQQA6AAAgA0EBaiEDIBJBAWsiEg0ACwsgCigCkAEiA0UNAiAKKAKUASADQQEQyAMMAgsMpgELDKUBCyAKKAJsIgMEQCAKKAJwIANBARDIAwsgFUEBOgAAAkACQAJAAkACQAJAAkACQAJAIBEtAMABDgcHCAgAAQIDCAsgESgC0AEiByARQdQBaigCACIEKAIAEQAAQcQBIQMgBCgCBCISRQ0FIAcgEiAEKAIIEMgDDAULIBEoAtwBIgQgEUHgAWooAgAiAygCABEAACADKAIEIgcEQCAEIAcgAygCCBDIAwsgESgC0AEiAwRAIBEoAtQBIANBARDIAwsgESgCxAEiA0UNAyARKALIASADQQEQyAMMAwsgESgC0AEiByARQdQBaigCACIEKAIAEQAAQcQBIQMgBCgCBCISRQ0BIAcgEiAEKAIIEMgDDAELIBEoAugBIgQgEUHsAWooAgAiAygCABEAACADKAIEIgcEQCAEIAcgAygCCBDIAwsgESgC0AEiAwRAIBEoAtQBIANBARDIAwtBtAEhAyARKALEASIERQ0AIBEoAsgBIARBARDIAwsgAyARaiIDKAIAIgQEQCADKAIEIARBARDIAwsgESgCqAEiA0UNACARKAKsASADQQN0QQgQyAMLIBEoApwBIgMEQCARKAKgASADQQEQyAMLIBEoApgBIgcEQCARKAKUASEDA0AgAygCACIEBEAgA0EEaigCACAEQQN0QQgQyAMLIANBDGohAyAHQQFrIgcNAAsLIBEoApABIgMEQCARKAKUASADQQxsQQQQyAMLIBEoAoQBIQQCQCARKAKIASISRQ0AIAQhAyASQQdxIgcEQANAIANBADoAACADQQFqIQMgB0EBayIHDQALCyASQQhJDQAgBCASaiEHA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAHIANBCGoiA0cNAAsLIBFBADYCiAEgESgCgAEiA0EATgRAAkAgA0UNACADQQdxIRJBACEHIANBCE8EQCADQfj///8HcSEQA0AgBCAHaiIDQQA6AAAgA0EBakEAOgAAIANBAmpBADoAACADQQNqQQA6AAAgA0EEakEAOgAAIANBBWpBADoAACADQQZqQQA6AAAgA0EHakEAOgAAIBAgB0EIaiIHRw0ACwsgEkUNACAEIAdqIQMDQCADQQA6AAAgA0EBaiEDIBJBAWsiEg0ACwsgESgCgAEiAwRAIBEoAoQBIANBARDIAwtB5AAhAyARKAJwIgRFDQEgESgCdCAEQQEQyAMMAQsMpwELIAMgEWoiAygCACIEBEAgAygCBCAEQQEQyAMLIBEoAlwhBAJAIBEoAmAiEkUNACAEIQMgEkEHcSIHBEADQCADQQA6AAAgA0EBaiEDIAdBAWsiBw0ACwsgEkEISQ0AIAQgEmohBwNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgByADQQhqIgNHDQALCyARQQA2AmACQCARKAJYIgNBAE4EQAJAIANFDQAgA0EHcSESQQAhByADQQhPBEAgA0H4////B3EhEANAIAQgB2oiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAQIAdBCGoiB0cNAAsLIBJFDQAgBCAHaiEDA0AgA0EAOgAAIANBAWohAyASQQFrIhINAAsLIBEoAlwhBAJAIBEoAmAiEkUNACAEIQMgEkEHcSIHBEADQCADQQA6AAAgA0EBaiEDIAdBAWsiBw0ACwsgEkEISQ0AIAQgEmohBwNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgByADQQhqIgNHDQALCyARQQA2AmAgESgCWCIDQQBIDQECQCADRQ0AIANBB3EhEkEAIQcgA0EITwRAIANB+P///wdxIRADQCAEIAdqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgECAHQQhqIgdHDQALCyASRQ0AIAQgB2ohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyARKAJYIgMEQCARKAJcIANBARDIAwsgEUE0aiERDAILDKcBCwymAQsgESgCACIDRQ0AIBEoAgQgA0EBEMgDCyAGQQRHBEAgDkEBOgAADCwLIFdCIIinIQYgV6chBAJAAkACQAJAAkACQAJ/IAooArACIgdFBEAgCEIENwK4wwEgCCAHNgK0wwFBACEQQQAMAQsgB0Gq1arVAEsNqgEgB0EMbCIDQQBIDaoBQbGVwgAtAAAaIANBBBC9AyIJRQ2/AUEAIRAgCEEANgK8wwEgCCAJNgK4wwEgCCAHNgK0wwFBACAKKAKwAiIVRQ0AGkEgIQcDQEEBIRIgCigCuAIiEUEFdCIDBEAgA0EASA2sASADQQEQvgMiEkUNwgEgCigCuAIhEQsgESAHQSBrbCITIAcgEWwiCUsNAiAGIAlJDQMgEUEFdCIJIANHDQQgEiAEIBNqIAMQ5gMhEiAIKAK8wwEiESAIKAK0wwFGBEAgCEG0wwFqIBEQ1wEgCCgCvMMBIRELIAgoArjDASARQQxsaiIJIAM2AgggCSASNgIEIAkgAzYCACAIIAgoArzDAUEBaiIQNgK8wwEgB0EgaiEHIBVBAWsiFQ0ACyAKKAKwAkEFdAsgCigCuAJsIgNBgCBqIQcCQCADQf9fTQRAIAYgB0kNASADIARqIgMpAAAhVyAIQZiDAWogA0EIakH4HxDmAxogEEUEQEEEIRUMBgsgEEH///8fSw2rAUGxlcIALQAAGiAQQQV0IhJBBBC9AyIVRQ02IAhBADYCyMMBIAggFTYCxMMBIAggEDYCwMMBIAgoArzDASISRQ0FA0AgCEGQowFqIAooArQCEMUCIAgoAsjDASIDIAgoAsDDAUYEQCAIQcDDAWogAxDZASAIKALIwwEhAwsgCCgCxMMBIhUgA0EFdGoiByAIKQKQowE3AgAgB0EIaiAIQZCjAWoiCUEIaikCADcCACAHQRBqIAlBEGopAgA3AgAgB0EYaiAJQRhqKQIANwIAIAggA0EBaiIHNgLIwwEgEkEBayISDQALIAgoArjDASEJIAgoArTDASETIAgoAsDDASEQIAgoArzDASEUIAhBsKMBaiAIQZiDAWpB+B8Q5gMaIAZFDQcMBgsgAyAHQYCOwAAQzQMACyAHIAZBgI7AABDLAwALIBMgCUGQjsAAEM0DAAsgCSAGQZCOwAAQywMACyADIAlBoI7AABC1AgALIAgoArjDASEJIAgoArTDASETIAhBsKMBaiAIQZiDAWpB+B8Q5gMaQQAhFEEAIQcLIAZBAWsCQCAGQQdxIhFFBEAgBCEDDAELIAQhAwNAIANBADoAACADQQFqIQMgEUEBayIRDQALC0EHSQ0AIAQgBmohBgNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgBiADQQhqIgNHDQALCyAFQQBIDaQBIAUEQCAFQQdxIRJBACERIAVBCE8EQCAFQXhxIQYDQCAEIBFqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgBiARQQhqIhFHDQALCyASBEAgBCARaiEDA0AgA0EAOgAAIANBAWohAyASQQFrIhINAAsLIAQgBUEBEMgDCyAIQThqIgMgCEGwowFqQfgfEOYDGiAOQQE6AAAgE0GBgICAeEYNASAIQbAgaiADQfgfEOYDGiATQYCAgIB4RgRAIAkhBiAUIQUMLAsCQCAHRQRAQQQhBgwBCyAHQf///x9LDaQBQQAhA0GxlcIALQAAGiAHQQV0IhJBBBC9AyIGRQ0vIAchBANAIAMgEkYNASADIAZqIgUgAyAVaiIOKQIANwIAIAVBGGogDkEYaikCADcCACAFQRBqIA5BEGopAgA3AgAgBUEIaiAOQQhqKQIANwIAIANBIGohAyAEQQFrIgQNAAsLIAhBsMEAaiAIQbAgakH4HxDmAxogCCBXNwKsYSAIIBQ2AqhhQYCAgIB4IRwgByEOCyAHIQUMKwsgF0GBgICAeDYCAEEDDCsLIAooAighAyAHKAIEIRAgCigCGCEkIAooAhwhESAIQajAAGogChCzAiAKIBE2AtQEIAogJDYC0AQgCiAQNgLMBCAKIBs2AoQEIAogAzYCgAQgCkEAOgDsBCAKIAgpA6hANwPYBCAKQeAEaiAIQbDAAGooAgA2AgAgCiAKKQIMNwLkBCAKQThqIS0gCkHsBGohJgsgCiADNgKIBCAIQThqIgNBCGogCkHgBGopAwA3AwAgA0EQaiAKQegEaigCADYCACAIIAopA9gENwM4QQAhAyAtQQBBoAEQ5QMhCSAKQYADNgKMBCAKQThqIQYgCkG4AWohFCAQQQRqIRMgCSESA0ACQCARKAKAAiIHQcAASQ0AIBEQHCARKAKAAiIHQcAASQ0AIAdBwABBqIPAABC0AgALIBEgB0EBajYCgAIgEiARIAdBAnRqLQAAQQFxOgAAAkAgAyAKKAKMBGoiBSAQQQhqKAIAIgRJBEAgCEGYgwFqIgQgFCATKAIAIAVBBXRqEL8CIBItAAAEQCAIQbCjAWoiBUEYaiIHIARBGGopAgA3AwAgBUEQaiISIARBEGopAgA3AwAgBUEIaiIFIARBCGopAgA3AwAgCCAIKQKYgwE3A7CjASAUELcCIBRBGGogBykDADcCACAUQRBqIBIpAwA3AgAgFEEIaiAFKQMANwIAIBQgCCkDsKMBNwIADAILIAhBmIMBahC3AgwBCyAFIARB4JDAABC0AgALIAYgA0EBaiIDaiESIANBgAFHDQALAkACQCAKKAKIBCIDRQRAIApCBDcClAQgCiADNgKQBCAIQcijAWpCADcDACAIQcCjAWpCADcDACAIQbijAWpCADcDACAIQgA3A7CjASAKQZgEaiEMIApBlARqIRUMAQsgA0Gq1arVAEsNoQEgA0EMbCIEQQBIDaEBQbGVwgAtAAAaAkAgBEEEEL0DIgUEQCAKQQA2ApgEIAogBTYClAQgCiADNgKQBCAKKAKIBCEEIAhByKMBakIANwMAIAhBwKMBakIANwMAIAhBuKMBakIANwMAIAhCADcDsKMBIApBmARqIQwgCkGUBGohFSAERQ0CIARB////H0sNowFBsZXCAC0AABogBEEFdCIDQQQQvQMiBkUNASAGIQMCQCAEQQFGDQAgBEEBayIFQQNxIQcgBEECa0EDTwRAIAVBfHEhEgNAIAMgCCkDsKMBIlc3AgAgA0EgaiBXNwIAIANBQGsgVzcCACADQeAAaiBXNwIAIANBGGogCEGwowFqIgVBGGopAwAiVzcCACADQRBqIAVBEGopAwAiWDcCACADQQhqIAVBCGopAwAiWTcCACADQShqIFk3AgAgA0EwaiBYNwIAIANBOGogVzcCACADQcgAaiBZNwIAIANB0ABqIFg3AgAgA0HYAGogVzcCACADQegAaiBZNwIAIANB8ABqIFg3AgAgA0H4AGogVzcCACADQYABaiEDIBJBBGsiEg0ACwsgB0UNAANAIAMgCCkDsKMBNwIAIANBGGogCEGwowFqIgVBGGopAwA3AgAgA0EQaiAFQRBqKQMANwIAIANBCGogBUEIaikDADcCACADQSBqIQMgB0EBayIHDQALCyADIAgpA7CjATcCACADQRhqIAhBsKMBaiIFQRhqKQMANwIAIANBEGogBUEQaikDADcCACADQQhqIAVBCGopAwA3AgAMAwsMtQELDLYB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AyAKICQ2AqwDIAogEEEMaiITNgKoAyAKIBs2AoACIAogEjYC/AEgCkEAOgDIAyAKIAooArgEIgQ2AvgBIAogCCkDODcCtAMgCkG8A2ogCEFAaykDADcCACAKQcQDaiAIQcgAaigCADYCACAKQdgBaiEHIApByANqIRwLIAogGzYChAIgCkHAADYCoAIgCiASNgKcAiAKIAopArQDNwKIAiAKIBJBQGsiAzYCpAIgCkGQAmogCkG8A2opAgA3AgAgCkGYAmogCkHEA2ooAgA2AgAgEkE/cQ0cAn8gAwRAIANBAEgNoAFBsZXCAC0AABogA0EBEL0DIgVFDbYBQQAhECAKQQA2ArACIAogBTYCrAIgCiADNgKoAiAKQawCaiEGIApBqAJqIRUgCkGwAmoMAQsgCkIBNwKsAiAKIAM2AqgCIApBqAJqIhVBACASEOUBIApBrAJqIQYgCigCrAIhBSAKKAKwAiEQIApBsAJqCyEDIAUgEGogBCASEOYDGiAKIBAgEmoiEjYCsAIgCigCoAIiBARAA0ACQCARKAKAAiISQcAASQ0AIBEQHCARKAKAAiISQcAASQ0AIBJBwABBqIPAABC0AgALIBEgEkEBajYCgAIgESASQQJ0aigCACEQIAMoAgAiCSAVKAIARgRAIBUgCRDnASADKAIAIQkLIAkgBigCAGogEEEBcToAACADIAMoAgBBAWoiEjYCACAEQQFrIgQNAAsLIAooAqwCIQMgCCASNgK0owEgCCADNgKwowEgCEEINgK4owEgCEGYgwFqIgMgCEGwowFqIgQQgAEgCkG8AmogA0EIaiIJKAIANgIAIAogCCkCmIMBNwK0AiAEIBMgCigCpAIgJBAtIAhBsIIBaiIGIAhBwKMBaigCADYCACAIIAgpArijATcDqIIBIAgoArSjASETIAgoArCjASISQYCAgIB4Rg0BIAgoAsSjASEMIAogEzYC3AEgCiASNgLYASAKQeABaiISIAgpA6iCATcCACAKIAc2AsACIAogDDYC7AEgCkHoAWogBigCADYCACASKAIAIQYgCCAKQbQCajYCwKMBIAggCkHkAWo2AryjASAIQQA2ArijASAIIAYgE2o2ArSjASAIIBM2ArCjASADIAQQuQEgCkHMAmoiBiAJKAIANgIAIAogCCkCmIMBNwLEAiAKKAKEAiEJIAhB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KAIMEQIAIAgoArCjASITQQVGDQEgCEGwwwFqIAhBvKMBaigCADYCACAIIAgpArSjATcDqMMBIAooAugDIgQgCkHsA2ooAgAiAygCABEAACADKAIEIgYEQCAEIAYgAygCCBDIAwsgE0EERw0DIAooAtwDIgMEQCAKKALgAyADQQEQyAMLIApB0ANqIAooAtADIgMEQCAKKALUAyADQQEQyAMLIApB6ANqIQYgCkHcA2ohAyAKQZQDaigCACAKQZgDaigCABCWAiAKKAKEAiEJIAhBmIMBaiISIApBiAJqIgQQswIgCEEBNgLcggEgCEECNgK0owEgCEHslMAANgKwowEgCEIBNwK8owEgCCASNgLYggEgCCAIQdiCAWo2ArijASAIQbTDAWogCEGwowFqEIcBIAgoApiDASISBEAgCCgCnIMBIBJBARDIAwsgAyAIKQK0wwE3AgAgA0EIaiAIQbzDAWooAgA2AgAgCkHkA2ooAgAhAyAKQeADaigCACEQIAYgCkHUA2ooAgAgCkHYA2ooAgAQsgEgCEEIaiAEIAkgECADIApB7ANqKAIAIApB8ANqKAIAEMICIAgoAgghAyAKIAgoAgwiETYC+AMgCiADNgL0AwwCCyAIQZijAWogAygCADYCACAIIAgpA4iDATcDkKMBDAkLIBxBBToAAAwPCyAIQbCjAWogAyAqIBEoAgwRAgAgCCgCsKMBIhNBBUYNASAIQcjDAWogCEG8owFqKAIANgIAIAggCCkCtKMBNwPAwwEgCigC9AMiBiAKQfgDaigCACIDKAIAEQAAIAMoAgQiCQRAIAYgCSADKAIIEMgDCyATQQRHDQIgCigC6AMiAwRAIAooAuwDIANBARDIAwsgCigC3AMiAwRAIAooAuADIANBARDIAwsgCEGQowFqIAooAsACIgNBBGooAgAgA0EIaigCACAKKAKkAkEDdhA3IAooAtADIgMEQCAKKALUAyADQQEQyAMLIAooApwDIgMEQCAKKAKgAyADQQEQyAMLIAooApADIgMEQCAKKAKUAyADQQN0QQgQyAMLIAooAoQDIgMEQCAKKAKIAyADQQN0QQgQyAMLIAooAvgCIgMEQCAKKAL8AiADQQEQyAMLIAooAuwCIgMEQCAKKALwAiADQQEQyAMLIApB4AJqENcCIAooAuACIgMEQCAKKALkAiADQQxsQQQQyAMLIAooAtQCIgMEQCAKKALYAiADQQN0QQgQyAMLIApBxAJqEIwBIAooAsQCIgMEQCAKKALIAiADQQEQyAMLIAcQWiAHEIwBIAcoAgAiAwRAIAcoAgQgA0EBEMgDCyAKQeQBahCMASAKKALkASIDBEAgCigC6AEgA0EBEMgDCyAKQbQCahCMASAKKAK0AiIDBEAgCigCuAIgA0EBEMgDCyAKQagCahCMAUEEIRMgCigCqAIiA0UNDSAKKAKsAiADQQEQyAMMDQsgCEGYowFqIAhBsMMBaigCADYCACAIIAgpA6jDATcDkKMBDAQLIBxBBjoAAAwMCyAIQZijAWogCEHIwwFqKAIANgIAIAggCCkDwMMBNwOQowEgCigC6AMiA0UNAiAKKALsAyADQQEQyAMMAgsgHEEDOgAADAoLIAQgBkHgncAAELQCAAsgCigC3AMiAwRAIAooAuADIANBARDIAwsgCigC0AMiAwRAIAooAtQDIANBARDIAwsgCigCnAMiAwRAIAooAqADIANBARDIAwsgCigCkAMiA0UNACAKKAKUAyADQQN0QQgQyAMLIAooAoQDIgNFDQAgCigCiAMgA0EDdEEIEMgDC0G0AiEDIAooAvgCIgRFDQAgCigC/AIgBEEBEMgDCyADIC1qIgMoAgAiBARAIAMoAgQgBEEBEMgDCyAKKALoAiIRBEAgCigC5AIhAwNAIAMoAgAiBARAIANBBGooAgAgBEEDdEEIEMgDCyADQQxqIQMgEUEBayIRDQALCyAKKALgAiIDRQ0AIAooAuQCIANBDGxBBBDIAwsgCigC1AIiA0UNACAKKALYAiADQQN0QQgQyAMLIAooAsgCIQQCQCAKKALMAiIGRQ0AIAQhAyAGQQdxIhEEQANAIANBADoAACADQQFqIQMgEUEBayIRDQALCyAGQQhJDQAgBCAGaiEGA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAGIANBCGoiA0cNAAsLIApBADYCzAICQCAKKALEAiIDQQBOBEACQCADRQ0AIANBB3EhEkEAIREgA0EITwRAIANB+P///wdxIRADQCAEIBFqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgECARQQhqIhFHDQALCyASRQ0AIAQgEWohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyAKKALEAiIDBEAgCigCyAIgA0EBEMgDCyAHEFogBygCBCEEAkAgBygCCCIGRQ0AIAQhAyAGQQdxIhEEQANAIANBADoAACADQQFqIQMgEUEBayIRDQALCyAGQQhJDQAgBCAGaiEGA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAGIANBCGoiA0cNAAsLIAdBADYCCCAHKAIAIgNBAEgNhgECQCADRQ0AIANBB3EhEkEAIREgA0EITwRAIANB+P///wdxIRADQCAEIBFqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgECARQQhqIhFHDQALCyASRQ0AIAQgEWohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyAHKAIAIgMEQCAHKAIEIANBARDIAwsgCigC6AEhBAJAIAooAuwBIgZFDQAgBCEDIAZBB3EiEQRAA0AgA0EAOgAAIANBAWohAyARQQFrIhENAAsLIAZBCEkNACAEIAZqIQYDQCADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIAYgA0EIaiIDRw0ACwsgCkEANgLsASAKKALkASIDQQBIDQECQCADRQ0AIANBB3EhEkEAIREgA0EITwRAIANB+P///wdxIRADQCAEIBFqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgECARQQhqIhFHDQALCyASRQ0AIAQgEWohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyAKKALkASIDRQ0CIAooAugBIANBARDIAwwCCwyFAQsMhAELIAooArgCIQQCQCAKKAK8AiIGRQ0AIAQhAyAGQQdxIhEEQANAIANBADoAACADQQFqIQMgEUEBayIRDQALCyAGQQhJDQAgBCAGaiEGA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAGIANBCGoiA0cNAAsLIApBADYCvAICQCAKKAK0AiIDQQBOBEACQCADRQ0AIANBB3EhEkEAIREgA0EITwRAIANB+P///wdxIRADQCAEIBFqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgECARQQhqIhFHDQALCyASRQ0AIAQgEWohAwNAIANBADoAACADQQFqIQMgEkEBayISDQALCyAKKAK0AiIDBEAgCigCuAIgA0EBEMgDCyAKKAKsAiEEAkAgCigCsAIiBkUNACAEIQMgBkEHcSIRBEADQCADQQA6AAAgA0EBaiEDIBFBAWsiEQ0ACwsgBkEISQ0AIAQgBmohBgNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgBiADQQhqIgNHDQALCyAKQQA2ArACIAooAqgCIgNBAEgNAQJAIANFDQAgA0EHcSESQQAhESADQQhPBEAgA0H4////B3EhEANAIAQgEWoiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAQIBFBCGoiEUcNAAsLIBJFDQAgBCARaiEDA0AgA0EAOgAAIANBAWohAyASQQFrIhINAAsLIAooAqgCIgNFDQMgCigCrAIgA0EBEMgDDAMLDIQBCwyDAQtBACETQbGVwgAtAAAaQRNBARC9AyIDRQ2AASADQQ9qQZ+TwAAoAAA2AAAgA0EIakGYk8AAKQAANwAAIANBkJPAACkAADcAACAIQRM2ApijASAIIAM2ApSjASAIQRM2ApCjAQsgCigCiAIiAwRAIAooAowCIANBARDIAwsgCCkClKMBIVcgCCgClKMBIQYgCCgCkKMBIQkgCCgCmKMBIRsgHEEBOgAAIBNBBUYNAEHcASEDAkACQAJAAkACQCAHLQDwAQ4HCAkJAAECAwkLIAcoApACIgQgB0GUAmooAgAiAygCABEAACADKAIEIhIEQCAEIBIgAygCCBDIAwsgBygChAIiAwRAIAcoAogCIANBARDIAwsgBygC+AEiA0UNBiAHKAL8ASADQQEQyAMMBgsgBygChAIiEiAHQYgCaigCACIEKAIAEQAAQfgBIQMgBCgCBCIMRQ0EIBIgDCAEKAIIEMgDDAQLIAcoApACIgQgB0GUAmooAgAiAygCABEAACADKAIEIhJFDQEgBCASIAMoAggQyAMMAQsgBygCnAIiBCAHQaACaigCACIDKAIAEQAAIAMoAgQiEgRAIAQgEiADKAIIEMgDCyAHKAKQAiIDRQ0AIAcoApQCIANBARDIAwsgBygChAIiAwRAIAcoAogCIANBARDIAwsgBygC+AEiAwRAIAcoAvwBIANBARDIAwsgBygCxAEiAwRAIAcoAsgBIANBARDIAwsgBygCuAEiAwRAIAcoArwBIANBA3RBCBDIAwsgBygCrAEiAwRAIAcoArABIANBA3RBCBDIAwtBlAEhAyAHKAKgASIERQ0BIAcoAqQBIARBARDIAwwBCyAmQQM6AAAMBAsgAyAHaiIDKAIAIgQEQCADKAIEIARBARDIAwsgBygCkAEiEQRAIAcoAowBIQMDQCADKAIAIgQEQCADQQRqKAIAIARBA3RBCBDIAwsgA0EMaiEDIBFBAWsiEQ0ACwsgBygCiAEiAwRAIAcoAowBIANBDGxBBBDIAwsgBygCfCIDRQ0AIAcoAoABIANBA3RBCBDIAwsgBygCcCEEAkAgBygCdCISRQ0AIAQhAyASQQdxIhEEQANAIANBADoAACADQQFqIQMgEUEBayIRDQALCyASQQhJDQAgBCASaiESA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByASIANBCGoiA0cNAAsLIAdBADYCdAJAIAcoAmwiA0EATgRAAkAgA0UNACADQQdxIRJBACERIANBCE8EQCADQfj///8HcSEQA0AgBCARaiIDQQA6AAAgA0EBakEAOgAAIANBAmpBADoAACADQQNqQQA6AAAgA0EEakEAOgAAIANBBWpBADoAACADQQZqQQA6AAAgA0EHakEAOgAAIBAgEUEIaiIRRw0ACwsgEkUNACAEIBFqIQMDQCADQQA6AAAgA0EBaiEDIBJBAWsiEg0ACwsgBygCbCIDBEAgBygCcCADQQEQyAMLIAcQWiAHKAIEIQQCQCAHKAIIIhJFDQAgBCEDIBJBB3EiEQRAA0AgA0EAOgAAIANBAWohAyARQQFrIhENAAsLIBJBCEkNACAEIBJqIRIDQCADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIBIgA0EIaiIDRw0ACwsgB0EANgIIIAcoAgAiA0EASA2AAQJAIANFDQAgA0EHcSESQQAhESADQQhPBEAgA0H4////B3EhEANAIAQgEWoiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAQIBFBCGoiEUcNAAsLIBJFDQAgBCARaiEDA0AgA0EAOgAAIANBAWohAyASQQFrIhINAAsLIAcoAgAiAwRAIAcoAgQgA0EBEMgDCyAHKAIQIQQCQCAHKAIUIhJFDQAgBCEDIBJBB3EiEQRAA0AgA0EAOgAAIANBAWohAyARQQFrIhENAAsLIBJBCEkNACAEIBJqIRIDQCADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIBIgA0EIaiIDRw0ACwsgB0EANgIUIAcoAgwiA0EASA2AAQJAIANFDQAgA0EHcSESQQAhESADQQhPBEAgA0H4////B3EhEANAIAQgEWoiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAQIBFBCGoiEUcNAAsLIBJFDQAgBCARaiEDA0AgA0EAOgAAIANBAWohAyASQQFrIhINAAsLIAcoAgwiAwRAIAcoAhAgA0EBEMgDCyAHKAJgIQQCQCAHKAJkIhJFDQAgBCEDIBJBB3EiEQRAA0AgA0EAOgAAIANBAWohAyARQQFrIhENAAsLIBJBCEkNACAEIBJqIRIDQCADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIBIgA0EIaiIDRw0ACwsgB0EANgJkIAcoAlwiA0EASA2AAQJAIANFDQAgA0EHcSESQQAhESADQQhPBEAgA0H4////B3EhEANAIAQgEWoiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAQIBFBCGoiEUcNAAsLIBJFDQAgBCARaiEDA0AgA0EAOgAAIANBAWohAyASQQFrIhINAAsLIAcoAlwiAwRAIAcoAmAgA0EBEMgDCyAHKAJUIQQCQCAHKAJYIhJFDQAgBCEDIBJBB3EiEQRAA0AgA0EAOgAAIANBAWohAyARQQFrIhENAAsLIBJBCEkNACAEIBJqIRIDQCADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIBIgA0EIaiIDRw0ACwsgB0EANgJYIAcoAlAiA0EASA0BAkAgA0UNACADQQdxIRJBACERIANBCE8EQCADQfj///8HcSEQA0AgBCARaiIDQQA6AAAgA0EBakEAOgAAIANBAmpBADoAACADQQNqQQA6AAAgA0EEakEAOgAAIANBBWpBADoAACADQQZqQQA6AAAgA0EHakEAOgAAIBAgEUEIaiIRRw0ACwsgEkUNACAEIBFqIQMDQCADQQA6AAAgA0EBaiEDIBJBAWsiEg0ACwtBMCEDIAcoAlAiEkUNAiAHKAJUIBJBARDIAwwCCwx/Cwx+CyADIAdqIgMoAgAiEkUNACADKAIEIBJBARDIAwsCQAJ/AkACQCATQQRHBEAgCigCyAQiEQRAIAooAsQEIQMDQCADKAIAIgcEQCADQQRqKAIAIAdBARDIAwsgA0EMaiEDIBFBAWsiEQ0ACwsgCigCwAQiAwRAIAooAsQEIANBDGxBBBDIAwsgCigCtAQiAwRAIAooArgEIANBARDIAwsgCigCsAQiEQRAIAooAqwEIQMDQCADELcCIANBIGohAyARQQFrIhENAAsLQYCAgIB4IRwgCigCqAQiAw0BDAQLIAooAogEIgNFBEAgCEIENwK0owEgCCADNgKwowEgV0IgiKchEyBXpyEcQQAhBUEADAMLIANBqtWq1QBLDX8gA0EMbCIEQQBIDX9BsZXCAC0AABogBEEEEL0DIgdFDZIBQQAhBSAIQQA2ArijASAIIAc2ArSjASAIIAM2ArCjASBXQiCIpyETIFenIRwgCigCiAQiBA0BQQAMAgsgCigCrAQgA0EFdEEEEMgDDAILQSAhBwJAAkACQAJAA0BBASESIAooAowEIhFBBXQiAwRAIANBAEgNgwEgA0EBEL4DIhJFDZkBIAooAowEIRELIBEgB0Ega2wiFCAHIBFsIgVLDQEgBSATSw0CIBFBBXQiBSADRw0DIBIgFCAcaiADEOYDIRIgCCgCuKMBIhEgCCgCsKMBRgRAIAhBsKMBaiARENcBIAgoArijASERCyAIKAK0owEgEUEMbGoiBSADNgIIIAUgEjYCBCAFIAM2AgAgCCAIKAK4owFBAWoiBTYCuKMBIAdBIGohByAEQQFrIgQNAAsMAwsgFCAFQZCRwAAQzQMACyAFIBNBkJHAABDLAwALIAMgBUGgkcAAELUCAAsgCigCiARBBXQLIAooAowEbCIDQYAgaiEEAkACQCADQf9fTQRAIAQgE0sNASADIBxqIgMoAIAfIQ4gAygA/B4hFSADKAD4HiEQIAooAsgEIAooAsQEIRMgCigCwAQhHCAIQaiBAWogLUGAARDmAxogCCkDsKMBIVcgCEGw4gBqIANB+B4Q5gMaIAhBtOEAaiADQYQfakH8ABDmAxogCigCsAQhByAKKAKsBCEEIAooAqgEIRQCQCAbRQ0AAkAgG0EHcSIRRQRAIAYhAwwBCyAGIQMDQCADQQA6AAAgA0EBaiEDIBFBAWsiEQ0ACwsgG0EISQ0AIAYgG2ohEgNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgEiADQQhqIgNHDQALCyAJQQBIDQIgCQRAIAlBB3EhEkEAIREgCUEITwRAIAlBeHEhGwNAIAYgEWoiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAbIBFBCGoiEUcNAAsLIBIEQCAGIBFqIQMDQCADQQA6AAAgA0EBaiEDIBJBAWsiEg0ACwsgBiAJQQEQyAMLIAooArQEIgMEQCAKKAK4BCADQQEQyAMLIQkMAwsgAyAEQYCRwAAQzQMACyAEIBNBgJHAABDLAwALDH0LIAooAqQEIhEEQCAKKAKgBCEDA0AgAxC3AiADQSBqIQMgEUEBayIRDQALCyAKKAKcBCIDBEAgCigCoAQgA0EFdEEEEMgDCyAKKAKYBCIRBEAgCigClAQhAwNAIAMoAgAiBgRAIANBBGooAgAgBkEBEMgDCyADQQxqIQMgEUEBayIRDQALCyAKKAKQBCIDBEAgCigClAQgA0EMbEEEEMgDCyAKQbgBahC3AiAKQQE6AOwEIBxBgICAgHhrDgICAAELIBdBgYCAgHg2AgBBBAwECwJAIAdFBEBBBCEGDAELIAdB////H0sNekEAIQNBsZXCAC0AABogB0EFdCISQQQQvQMiBkUNBSAHIQwDQCADIBJGDQEgAyAGaiIRIAMgBGoiGykCADcCACARQRhqIBtBGGopAgA3AgAgEUEQaiAbQRBqKQIANwIAIBFBCGogG0EIaikCADcCACADQSBqIQMgDEEBayIMDQALCyAIQbDBAGoiAyAIQaiBAWpBgAEQ5gMaIAhBtMAAaiAIQbThAGpB/AAQ5gMaIAggBTYCsGEgCCBXNwOoYSADQYABaiAIQbDiAGpB+B4Q5gMaIAchBQwCCyATIQYgCSEFCyBXQiCIpyETIFenIRxBgICAgHghBwsgCigCACIDBEAgCigCBCADQQEQyAMLIBcgCTYCFCAXIAU2AgggFyAGNgIEIBcgBzYCACAXIAgpA6hhNwIYIBdBIGogCEGw4QBqKAIANgIAIBcgHK0gE61CIIaENwIMIBdBJGogCEGwwQBqQfgfEOYDGiAXIA42AqQgIBcgFTYCoCAgFyAQNgKcICAXQaggaiAIQbTAAGpB/AAQ5gMaIBcgBzYCrCEgFyAENgKoISAXIBQ2AqQhQQELIQMgCiADOgAwIAhB0MMBaiQADAELQQQgEkHolcIAKAIAIgBBvAEgABsRAQAACyAjKALAISIDQYGAgIB4RwRAICNBBGoiBCAXQQRyQawhEOYDGiAlIAM2AgAgJUEEaiAEQawhEOYDGiAlIC82ArAhIApBCGsQHgwBCyAdKAIEIQMgHSAKNgIEIA0gCi0AjQVBAEdqIQ0CQCADBEAgHSgCACgCCEEIaiEEA0AgAygC+AQgBEYNAAsgAygCgAUhBCAKIAM2AvgEIAogBEEBajYCgAUgAyAKNgL8BAwBCyAKQQA2AvgEIApBATYCgAULIA1BAU0EQCAYIAtBAWoiC0cNAgsgMygCBCAzKAIAKAIIEQAAICVBgoCAgHg2AgALICNB8MIAaiQADAELIB0oAgAhEQwBCwsCQAJAAkAgKSgCDCIHQf////8Hag4CAQACCyAoQYKAgIB4NgIADAMLIChBgYCAgHg2AgAMAgsgKSgCvCEiBiAZKAIcRwRAIBkoAggiBCEDIBkoAgAiBSAERgRAIwBBIGsiAyQAIARBAWoiCUUNcSAFQQF0IgogCSAJIApJGyIJQbQhbCEKIAlBytMeSUECdCELIAMgBQR/IAMgBUG0IWw2AhwgAyAZKAIENgIUQQQFQQALNgIYIANBCGogCyAKIANBFGoQ+gEgAygCCARADG8LIAMoAgwhBSAZIAk2AgAgGSAFNgIEIANBIGokACAZKAIIIQMLIBkoAgQgA0G0IWxqIgMgBzYCACADQQRqICJBrCEQ5gMaIAMgBjYCsCEgGSAZKAIIQQFqNgIIIClBwCFqIBkoAgQiBSAEQbQhbGoiA0GwIRDmAxogAygCsCEhBwJAIARFBEBBACEDDAELA0AgByAFIARBAWsiBkEBdiIDQbQhbGoiCUGwIWooAgBPBEAgBCEDDAILIAUgBEG0IWxqIAlBtCEQ5gMaIAMhBCAGQQFLDQALCyAFIANBtCFsaiApQcAhakGwIRDmAyAHNgKwIQwBCwsgKCAHNgIAIBkgBkEBajYCHCAoQQRqICJBrCEQ5gMaCyApQfDCAGokAAJAAkACQCAfKAIQIgdB/////wdqDgIBAAILICBBgICAgHg2AgAMBQsgICAnKQIANwIAICdBCGooAgAhAyAZQQA2AiggGUKAgICAwAA3AiAgIEEIaiADNgIADAQLIBkoAigiAyAZKAIgRgRAIwBBIGsiBCQAIAMgA0EBaiIDSw1uQQEgJygCACIFQQF0IgYgAyADIAZJGyIDIANBAU0bIgZBsCFsIQkgA0Gh1x5JQQJ0IQogBCIDIAUEfyADIAVBsCFsNgIcIAMgJygCBDYCFEEEBUEACzYCGCADQQhqIAogCSADQRRqEPoBIAMoAggEQAxsCyADKAIMIQQgJyAGNgIAICcgBDYCBCADQSBqJAAgGSgCKCEDCyAZKAIkIANBsCFsaiIEIAc2AgAgBEEEaiAsQawhEOYDGiAZIANBAWo2AigMAAsACyAZQgg3AgQgH0EEaiIDICkgJBC7ASAgQQhqIANBCGooAgA2AgAgICAfKQIENwIAQQAhCgNAAkACQAJAAkACQAJAAkACQAJAAkACQEEBICkgCkGwIWxqIgUoAgAiC0H/////B2oiAyADQQNPGw4CAAEKCwJAAkAgBS0AOA4FCgsLAAELCwJAAkAgBS0A5AIOBAALCwELCyAFQdACaiEYDAkLIAVBQGshGAJAAkACQAJAAkAgBS0AgAIOBw0ODgABAgMOCyAFKAKQAiIHIAVBlAJqKAIAIgQoAgARAABBxAEhAyAEKAIEIgZFDQsgByAGIAQoAggQyAMMCwsgBSgCnAIiBCAFQaACaigCACIDKAIAEQAAIAMoAgQiBwRAIAQgByADKAIIEMgDCyAFKAKQAiIDBEAgBSgClAIgA0EBEMgDCyAFKAKEAiIDRQ0JIAUoAogCIANBARDIAwwJCyAFKAKQAiIHIAVBlAJqKAIAIgQoAgARAABBxAEhAyAEKAIEIgZFDQEgByAGIAQoAggQyAMMAQsgBSgCqAIiBCAFQawCaigCACIDKAIAEQAAIAMoAgQiBwRAIAQgByADKAIIEMgDCyAFKAKQAiIDBEAgBSgClAIgA0EBEMgDC0G0ASEDIAUoAoQCIgRFDQAgBSgCiAIgBEEBEMgDCyADIBhqIgMoAgAiBARAIAMoAgQgBEEBEMgDCyAFKALoASIDRQ0GIAUoAuwBIANBA3RBCBDIAwwGCwJAAkAgBS0A9AQOBAAKCgEKCyAFKALgBCIDRQ0JIAUoAuQEIANBARDIAwwJCyAFQeABaiEHQdwBIQMCQAJAAkACQAJAIAUtANADDgcICQkAAQIDCQsgBSgC8AMiBCAFQfQDaigCACIDKAIAEQAAIAMoAgQiBgRAIAQgBiADKAIIEMgDCyAFKALkAyIDBEAgBSgC6AMgA0EBEMgDCyAFKALYAyIDRQ0GIAUoAtwDIANBARDIAwwGCyAFKALkAyIGIAVB6ANqKAIAIgQoAgARAABB+AEhAyAEKAIEIglFDQQgBiAJIAQoAggQyAMMBAsgBSgC8AMiBCAFQfQDaigCACIDKAIAEQAAIAMoAgQiBkUNASAEIAYgAygCCBDIAwwBCyAFKAL8AyIEIAVBgARqKAIAIgMoAgARAAAgAygCBCIGBEAgBCAGIAMoAggQyAMLIAUoAvADIgNFDQAgBSgC9AMgA0EBEMgDCyAFKALkAyIDBEAgBSgC6AMgA0EBEMgDCyAFKALYAyIDBEAgBSgC3AMgA0EBEMgDCyAFKAKkAyIDBEAgBSgCqAMgA0EBEMgDCyAFKAKYAyIDBEAgBSgCnAMgA0EDdEEIEMgDCyAFKAKMAyIDBEAgBSgCkAMgA0EDdEEIEMgDC0GUASEDIAUoAoADIgRFDQEgBSgChAMgBEEBEMgDDAELIAtBgICAgHhHBEAgBSgCCCIVBEAgBSgCBCEDA0AgAxC3AiADQSBqIQMgFUEBayIVDQALIAUoAgAhCwsgCwRAIAUoAgQgC0EFdEEEEMgDCyAFQQxqIQRBkCAhGEEEIQMCQAJAIAUoAgwiC0GAgICAeGsOAgELAAsgBSgCFCIVBEAgBSgCECEDA0AgAygCACIHBEAgA0EEaigCACAHQQEQyAMLIANBDGohAyAVQQFrIhUNAAsgBCgCACELC0GYISEYQQwhAyALRQ0AIAUoAhAgC0EMbEEEEMgDCyADIARqIgUoAggiFQRAIAUoAgQhAwNAIAMoAgAiBwRAIANBBGooAgAgB0EBEMgDCyADQQxqIQMgFUEBayIVDQALCyAFKAIAIgMEQCAFKAIEIANBDGxBBBDIAwsgBCAYaiIEKAIIIhUEQCAEKAIEIQMDQCADELcCIANBIGohAyAVQQFrIhUNAAsLIAQoAgAiA0UNCSAEKAIEIANBBXRBBBDIAwwJCyAFQQRqEIwCDAgLIAMgB2oiAygCACIEBEAgAygCBCAEQQEQyAMLIAUoAvACIhUEQCAFKALsAiEDA0AgAygCACIEBEAgA0EEaigCACAEQQN0QQgQyAMLIANBDGohAyAVQQFrIhUNAAsLIAUoAugCIgMEQCAFKALsAiADQQxsQQQQyAMLIAUoAtwCIgNFDQAgBSgC4AIgA0EDdEEIEMgDCyAFKALQAiEEAkAgBSgC1AIiBkUNACAEIQMgBkEHcSIVBEADQCADQQA6AAAgA0EBaiEDIBVBAWsiFQ0ACwsgBkEISQ0AIAQgBmohBgNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgBiADQQhqIgNHDQALCyAFQQA2AtQCAkAgBSgCzAIiA0EATgRAAkAgA0UNACADQQdxIQtBACEVIANBCE8EQCADQfj///8HcSEGA0AgBCAVaiIDQQA6AAAgA0EBakEAOgAAIANBAmpBADoAACADQQNqQQA6AAAgA0EEakEAOgAAIANBBWpBADoAACADQQZqQQA6AAAgA0EHakEAOgAAIAYgFUEIaiIVRw0ACwsgC0UNACAEIBVqIQMDQCADQQA6AAAgA0EBaiEDIAtBAWsiCw0ACwsgBSgCzAIiAwRAIAUoAtACIANBARDIAwsgBxBaIAUoAuQBIQQCQCAFKALoASIGRQ0AIAQhAyAGQQdxIhUEQANAIANBADoAACADQQFqIQMgFUEBayIVDQALCyAGQQhJDQAgBCAGaiEGA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAGIANBCGoiA0cNAAsLIAVBADYC6AEgBSgC4AEiA0EASA12AkAgA0UNACADQQdxIQtBACEVIANBCE8EQCADQfj///8HcSEGA0AgBCAVaiIDQQA6AAAgA0EBakEAOgAAIANBAmpBADoAACADQQNqQQA6AAAgA0EEakEAOgAAIANBBWpBADoAACADQQZqQQA6AAAgA0EHakEAOgAAIAYgFUEIaiIVRw0ACwsgC0UNACAEIBVqIQMDQCADQQA6AAAgA0EBaiEDIAtBAWsiCw0ACwsgBygCACIDBEAgBSgC5AEgA0EBEMgDCyAFKALwASEEAkAgBSgC9AEiBkUNACAEIQMgBkEHcSIVBEADQCADQQA6AAAgA0EBaiEDIBVBAWsiFQ0ACwsgBkEISQ0AIAQgBmohBgNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgBiADQQhqIgNHDQALCyAFQQA2AvQBIAUoAuwBIgNBAEgNdgJAIANFDQAgA0EHcSELQQAhFSADQQhPBEAgA0H4////B3EhBgNAIAQgFWoiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAGIBVBCGoiFUcNAAsLIAtFDQAgBCAVaiEDA0AgA0EAOgAAIANBAWohAyALQQFrIgsNAAsLIAUoAuwBIgMEQCAFKALwASADQQEQyAMLIAUoAsACIQQCQCAFKALEAiIGRQ0AIAQhAyAGQQdxIhUEQANAIANBADoAACADQQFqIQMgFUEBayIVDQALCyAGQQhJDQAgBCAGaiEGA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAGIANBCGoiA0cNAAsLIAVBADYCxAIgBSgCvAIiA0EASA12AkAgA0UNACADQQdxIQtBACEVIANBCE8EQCADQfj///8HcSEGA0AgBCAVaiIDQQA6AAAgA0EBakEAOgAAIANBAmpBADoAACADQQNqQQA6AAAgA0EEakEAOgAAIANBBWpBADoAACADQQZqQQA6AAAgA0EHakEAOgAAIAYgFUEIaiIVRw0ACwsgC0UNACAEIBVqIQMDQCADQQA6AAAgA0EBaiEDIAtBAWsiCw0ACwsgBSgCvAIiAwRAIAUoAsACIANBARDIAwsgBSgCtAIhBAJAIAUoArgCIgZFDQAgBCEDIAZBB3EiFQRAA0AgA0EAOgAAIANBAWohAyAVQQFrIhUNAAsLIAZBCEkNACAEIAZqIQYDQCADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIAYgA0EIaiIDRw0ACwsgBUEANgK4AiAFKAKwAiIDQQBIDQECQCADRQ0AIANBB3EhC0EAIRUgA0EITwRAIANB+P///wdxIQYDQCAEIBVqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgBiAVQQhqIhVHDQALCyALRQ0AIAQgFWohAwNAIANBADoAACADQQFqIQMgC0EBayILDQALC0EwIQMgBSgCsAIiBEUNAiAFKAK0AiAEQQEQyAMMAgsMdQsMdAsgAyAHaiIDKAIAIgRFDQAgAygCBCAEQQEQyAMLIAUoAtAEIhUEQCAFKALMBCEDA0AgAygCACIEBEAgA0EEaigCACAEQQEQyAMLIANBDGohAyAVQQFrIhUNAAsLIAUoAsgEIgMEQCAFKALMBCADQQxsQQQQyAMLIAUoArwEIgMEQCAFKALABCADQQEQyAMLIAUoArgEIhUEQCAFKAK0BCEDA0AgAxC3AiADQSBqIQMgFUEBayIVDQALCyAFKAKwBCIDBEAgBSgCtAQgA0EFdEEEEMgDCyAFKAKsBCIVBEAgBSgCqAQhAwNAIAMQtwIgA0EgaiEDIBVBAWsiFQ0ACwsgBSgCpAQiAwRAIAUoAqgEIANBBXRBBBDIAwsgBSgCoAQiFQRAIAUoApwEIQMDQCADKAIAIgQEQCADQQRqKAIAIARBARDIAwsgA0EMaiEDIBVBAWsiFQ0ACwsgBSgCmAQiAwRAIAUoApwEIANBDGxBBBDIAwsgBUHAAWoQtwIMAwsgBSgC3AEiAwRAIAUoAuABIANBARDIAwsgBSgC2AEiFQRAIAUoAtQBIQMDQCADKAIAIgQEQCADQQRqKAIAIARBA3RBCBDIAwsgA0EMaiEDIBVBAWsiFQ0ACwsgBSgC0AEiAwRAIAUoAtQBIANBDGxBBBDIAwsgBSgCxAEhBAJAIAUoAsgBIgdFDQAgBCEDIAdBB3EiFQRAA0AgA0EAOgAAIANBAWohAyAVQQFrIhUNAAsLIAdBCEkNACAEIAdqIQcDQCADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIAcgA0EIaiIDRw0ACwsgBUEANgLIASAFKALAASIDQQBOBEACQCADRQ0AIANBB3EhC0EAIRUgA0EITwRAIANB+P///wdxIQcDQCAEIBVqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgByAVQQhqIhVHDQALCyALRQ0AIAQgFWohAwNAIANBADoAACADQQFqIQMgC0EBayILDQALCyAFKALAASIDBEAgBSgCxAEgA0EBEMgDC0HkACEDIAUoArABIgRFDQEgBSgCtAEgBEEBEMgDDAELDHELIAMgGGoiAygCACIEBEAgAygCBCAEQQEQyAMLIAUoApwBIQQCQCAFKAKgASIHRQ0AIAQhAyAHQQdxIhUEQANAIANBADoAACADQQFqIQMgFUEBayIVDQALCyAHQQhJDQAgBCAHaiEHA0AgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByAHIANBCGoiA0cNAAsLIAVBADYCoAECQCAFKAKYASIDQQBOBEACQCADRQ0AIANBB3EhC0EAIRUgA0EITwRAIANB+P///wdxIQcDQCAEIBVqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgByAVQQhqIhVHDQALCyALRQ0AIAQgFWohAwNAIANBADoAACADQQFqIQMgC0EBayILDQALCyAFKAKcASEEAkAgBSgCoAEiB0UNACAEIQMgB0EHcSIVBEADQCADQQA6AAAgA0EBaiEDIBVBAWsiFQ0ACwsgB0EISQ0AIAQgB2ohBwNAIANBADoAACADQQA6AAEgA0EAOgACIANBADoAAyADQQA6AAQgA0EAOgAFIANBADoABiADQQA6AAcgByADQQhqIgNHDQALCyAFQQA2AqABIAUoApgBIgNBAEgNAQJAIANFDQAgA0EHcSELQQAhFSADQQhPBEAgA0H4////B3EhBwNAIAQgFWoiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAHIBVBCGoiFUcNAAsLIAtFDQAgBCAVaiEDA0AgA0EAOgAAIANBAWohAyALQQFrIgsNAAsLIAUoApgBIgMEQCAFKAKcASADQQEQyAMLIAVB9ABqIRgMAgsMcQsMcAsgGCgCACIDRQ0AIBgoAgQgA0EBEMgDCyAFKAIIIgNFDQAgBSgCDCADQQEQyAMLICogCkEBaiIKRw0ACyApICpBsCFsQQgQyAMMAQsgGUIINwIEIB9BBGoiAyApICQQuwEgIEEIaiADQQhqKAIANgIAICAgHykCBDcCAAsgH0HQIWokACAPKALQAiIHQYCAgIB4RwRAIA8oAtQCIQUgDygC2AIhAyAZEBtBACEKIA9BADYCuCkgD0KAgICAwAA3ArApIA8gA0GwIWwiEiAFaiIENgLcAiAPIAc2AtgCIA8gBTYC1AIgDyAFNgLQAiADRQ0bQQAhBwNAAkAgBSAK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akIANwIAIA1B/AJqIhdCADcCACANQfQCaiIGQgA3AgAgDUHsAmoiBUIANwIAIA1B5AJqIgdCADcCACANQgA3AtwCIA1CADcDICANQShqIhlCADcDACANQTBqIhxCADcDACANQThqIh1CADcDACALQdADaiIJQRhqIhtCADcDACAJQRBqIh5CADcDACAJQQhqIghCADcDACALQgA3A9ADIA1BkANqIi0gCSANKAKcARB1IA1BIGoiEyASKAIAIBEoAgAQRSAGIB0pAgA3AgAgBSAcKQIANwIAIAcgGSkCADcCACANIA0pAiA3AtwCIA0oApwBIhFFDQUgDUHcAmohBSANQZQDaigCACEEIA1BmANqKAIAQQV0IQcgDUHgAGohGSALQaQDaiEcIAlBKGohBiALQdQDaiESA0AgB0UNBSANKQNIIlcgDSkDUFoEQEEAIQdBsZXCAC0AABpBIUEBEL0DIgRFDXkgBEEgakGsscEALQAAOgAAIARBGGpBpLHBACkAADcAACAEQRBqQZyxwQApAAA3AAAgBEEIakGUscEAKQAANwAAIARBjLHBACkAADcAACALQSE2AugCIAsgBDYC5AIgC0EhNgLgAgwQCyAIIBkvAQA7AQAgCEECaiAZQQJqLQAAOgAAIA0gV0IBfDcDSCALIA0pA1ggV3wiVzcD0AMgC0HwAmoiCUECaiALLQDSAyIdOgAAIAsgV6ciHzsB8AIgDSkAYyFYIA0tAGshJCALKADXAyElIBdBAmogHToAACAXIB87AAAgDSAkOgCPAyANIFg3AIcDIA0gJTYAgwMgDSBXQhiIPgD/AiAcQQhqQQA2AgAgHEIANwIAIAlBCGoiHSAFQQhqKQIANwMAIAlBEGoiHyAFQRBqKQIANwMAIAlBGGoiJCAFQRhqKQIANwMAIAlBIGoiJSAFQSBqKQIANwMAIAlBKGoiJyAFQShqKQIANwMAIAlBMGoiIiAFQTBqKAIANgIAIAsgBSkCADcD8AIgG0HgisEAKQMANwMAIB5B2IrBACkDADcDACAIQdCKwQApAwA3AwAgC0IANwPwAyALQciKwQApAwA3A9ADIAYgCykD8AI3AwAgBkEIaiAdKQMANwMAIAZBEGogHykDADcDACAGQRhqICQpAwA3AwAgBkEgaiAlKQMANwMAIAZBKGogJykDADcDACAGQTBq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ksAAELUCAAsgAyAHQaCSwAAQzQMACyAHIA5BoJLAABDLAwALIAooAowFIgYgEUUNAxogEUH/////AEsNWyAKKAKsBSEFQQAhB0GxlcIALQAAGiARQQN0IglBBBC9AyITBEAgEUEDcSEIIANBA08EQCADQQN0QQhqQeD///8HcSEUQQAhECAFIQMDQCAQIBNqIgkgA0EEaikCADcCACAJQQhqIANBEGopAgA3AgAgCUEQaiADQRxqKQIANwIAIAlBGGogA0EoaikCADcCACADQTBqIQMgB0EEaiEHIBQgEEEgaiIQRw0ACwsgCEUNBSATIAdBA3RqIQMgB0EMbCAFakEIaiEUA0AgAyAUQQRrKQIANwIAIBRBDGohFCADQQhqIQMgCEEBayIIDQALDAULDGgLIApBADYCpAUgCkKAgICAwAA3ApwFCyAKQoCAgICAMDcDsAUgCkKAgICAwAA3AqgFCyAKKAKMBQshBkEEIRNBACERCyAKIBE2AsAFIAogEzYCvAUgCiARNgK4BQJAIAooAqQFIg5FBEBBBCEFDAELIA5B/////wBLDVcgCigCoAUhCUEAIQdBsZXCAC0AABogDkEDdCIDQQQQvQMiBUUNbCAOQQNxIQggDkEETwRAIANB4P///wdxIRVBACEQIAkhAwNAIAUgEGoiFCADQQRqKQIANwIAIBRBCGogA0EQaikCADcCACAUQRBqIANBHGopAgA3AgAgFEEYaiADQShqKQIANwIAIANBMGohAyAHQQRqIQcgFSAQQSBqIhBHDQALCyAIRQ0AIAUgB0EDdGohAyAHQQxsIAlqQQhqIRQDQCADIBRBBGspAgA3AgAgFEEMaiEUIANBCGohAyAIQQFrIggNAAsLIAogDjYCzAUgCiAFNgLIBSAKIA42AsQFIAogGzYCnAQgCiAGQQxqNgKYBCAKIBY2AtABIAogDjYCzAEgCiAFNgLIASAKIBE2AsQBIAogEzYCwAEgCiAMKQMYNwOgBCAKQQA6ALUEIApBqARqIAxBIGopAwA3AwAgCkGwBGogDEEoaigCADYCAAsgDEGQAWohEUEAIQdBACETQQAhFSMAQeAEayIOJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJA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NgKABiAKIARBAWo2AogGIAMgCjYChAYMAQsgCkEANgKABiAKQQE2AogGCyANQQFNBEAgEiALQQFqIgtHDQILICcoAgQgJygCACgCCBEAACAkQQY2AgALIBxBMGokAAwBCyAaKAIAIQcMAQsLAkACQAJAIB0oAgwiBUEFaw4CAQACCyApQQY2AgAMAwsgKUEFNgIADAILIB0oAhwiByAjKAIcRwRAICMoAggiBCEDIAQgIygCAEYEQCAjIAQQ2AEgIygCCCEDCyAjKAIEIANBFGxqIgMgJSkCADcCBCADIAU2AgAgAyAHNgIQIANBDGogJUEIaigCADYCACAjICMoAghBAWo2AgggHUEoaiIJICMoAgQiBSAEQRRsaiIDQQhqKQIANwMAIB0gAykCADcDICADKAIQIQcCQCAERQRAQQAhAwwBCwNAIAcgBSAEQQFrIgpBAXYiA0EUbGoiBkEQaiILKAIATwRAIAQhAwwCCyAFIARBFGxqIgQgBikCADcCACAEQRBqIAsoAgA2AgAgBEEIaiAGQQhqKQIANwIAIAMhBCAKQQFLDQALCyAFIANBFGxqIgMgHSkDIDcCACADIAc2AhAgA0EIaiAJKQMANwIADAELCyApIAU2AgAgIyAHQQFqNgIcICkgJSkCADcCBCApQQxqICVBCGooAgA2AgALIB1BMGokAAJAAkACQCApKAIAIgVBBWsOAgEAAgsgKkGAgICAeDYCAAwFCyAqIC0pAgA3AgAgLUEIaigCACEDICNBADYCKCAjQoCAgIDAADcCICAqQQhqIAM2AgAMBAsgIygCKCIDICMoAiBGBEAgLSADENQBICMoAighAwsgIygCJCADQQR0aiIEIDQpAgA3AgQgBEEMaiA9KAIANgIAIAQgBTYCACAjIANBAWo2AigMAAsACyAjQgg3AgRBsZXCAC0AABogDkEEdCIDQQQQvQMiBQRAIAwhAyAFIQogDiEEAkADQCADKAIAQYCAgIB4Rw0BIANBgYCAgHg2AgAgA0EEaigCACIHQQVGDQEgCiAHNgIAIApBBGogA0EIaikCADcCACAKQQxqIANBEGooAgA2AgAgA0H4BWohAyAKQRBqIQogBEEBayIEDQALICogDjYCCCAqIAU2AgQgKiAONgIAA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgDCAaQfgF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NgIAIA5BDGohDiAUQQFqIRQgE0EBayITDQALCyAMIBQ2AgAgBUFAayQADAELQQQgBEHI9sAAEMsDAAsgCkEIaiALKAIANgIAIAogBikCCDcCACAGQSBqJAAgAUHUC2ogLkEYaikCADcCACABQcwLaiAuQRBqKQIANwIAIAFBxAtqIC5BCGopAgA3AgAgASAuKQIANwK8CyABIAEpAuAHNwLcCyABQeQLaiABQegHaikCADcCACABQewLaiABQfAHaikCADcCACABQfQLaiABQfgHaikCADcCACABQfgIaigCACEKIAFB/AhqKAIAIQcgASgCrAghAyABKAKgCCELIA9BsAdqIgQgASgCqAgiBRCzAiAFKQIMIVcgASAPKQOwBzcCjAkgAUGUCWogBEEIaigCADYCACABQQA6AIwKIAEgCzYCtAkgASADNgKwCSABIAc2AqwJIAEgCjYCqAlBAiEGIAFBAjYCpAkgASABQbwLaiIJNgKgCSABIFc3A5gJIAFBjApqIRcgAUGMCWohIwwBCyBFQQU6AAAMFQsgASAHNgLMCSABIAo2AsgJIAEgCzYCxAkgASADNgLACSABIAY2ArwJIAEgCTYCuAkgAUEAOgCNCiABICMpAgA3AtAJIAFB2AlqICNBCGopAgA3AgAgAUHgCWogI0EQaigCADYCAEEfIAtnIgVrIQQgAUEgIAVrIAQgC0EBIAR0Sxs2AuQJIAFBwAlqIRMCQCAGRQRAQQQhBQwBCyAGQf///x9LDT1BACEDQbGVwgAtAAAaIAZBBXQiBEEEEL0DIgVFDVAgBiEHA0AgAyAERwRAIAMgBWoiCiADIAlqIgspAgA3AgAgCkEYaiALQRhqKQIANwIAIApBEGogC0EQaikCADcCACAKQQhqIAtBCGopAgA3AgAgA0EgaiEDIAdBAWsiBw0BCwsgEygCACEDCyABQegJaiEEIAFB0AlqIQcgASAGNgLwCSABIAU2AuwJIAEgBjYC6AkgASADQQFyIgU2AvQJIAECfyADIAVGBEAgASgCxAkhCiADQX5xDAELIAUgASgCxAkiCiAFIApJGwsiAzYC+AkgASADIApHNgL8CSAPQcAHaiIFIAcQswIgDyABKQLcCTcCzAcgD0HcKGogBSABKALECRC3AQJAAkAgBCIDKAIIIgRFBEBBBCELDAELIARB////H0sNPiADKAIEIQpBACESQbGVwgAtAAAaIARBBXQiCUEEEL0DIgtFDUsgBCEDA0AgCSASRg0BIAsgEmoiByAKIBJqIgYpAgA3AgAgB0EYaiAGQRhqKQIANwIAIAdBEGogBkEQaikCADcCACAHQQhqIAZBCGopAgA3AgAgEkEgaiESIANBAWsiAw0ACwsgBSAENgIIIAUgCzYCBCAFIAQ2AgAMAAsgD0HoKGogBSABKALECRBqIAEoAvwJIgQgASgC+AkiB2ohAyADIARJDQIgASgCzAkiBiADSQ0BIAEoAsgJIQkgDyAPKALcKDYC7AcgDyAPKALgKCIDNgLoByAPIAM2AuQHIA9BADYC4AcgD0IANwLYByAPIA8oAugoNgLQByAPIA8oAuwoIgY2AswHIA8gBjYCyAcgDyADIA8oAuQoQRRsajYC8AcgDyAGIA8oAvAoQQxsajYC1AcgDyAJIAdBA3RqIgM2AsAHIA8gAyAEQQN0ajYCxAcgD0H8B2pCADcCACAPQgA3AvQHIA8gAUH0CWo2ApAIIA8gEzYCjAggDyABQbgJajYCiAggDyABQfgJajYChAggD0HQAmogBRBjIAFBuApqIA9B+AJqKAIANgIAIAFBsApqIA9B8AJqKQMANwMAIAFBqApqIA9B6AJqKQMANwMAIAFBoApqIA9B4AJqKQMANwMAIAFBmApqIA9B2AJqKQMANwMAIAEgDykD0AI3A5AKCyAPQfQoaiEWQQAhCiMAQSBrIhwkAAJAAkACQCABQZAKaiIVKAIAQYCAgIB4RgRAIBUoAggiB0UNAiAVKAIEIQ0gB0HwAGwhG0EBIQYDQEEAIQkjAEGgAWsiECQAAkACQAJAIAogDWoiESgCACIDQf////8Ha0EAIANBgoCAgHhIG0EBaw4CAT8ACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkAgES0AbEEBaw4DBAACAQsACyARIBEoAjAgESgCLGo2AjwgEEGQAWpCADcDACAQQYgBakIANwMAIBBBgAFqQgA3AwAgEEIANwN4AkACQCARKAIkIgUEQCAFQf///x9LDVRBsZXCAC0AABogBUEFdCIEQQQQvQMiAw0BDGcLIBBB+ABqELcCQQQhAwwBCyADIQQCQCAFQQFGDQAgBUEBayILQQdxIRQgBUECa0EHTwRAIAtBeHEhDANAIARCADcCACAEQRhqQgA3AgAgBEEQakIANwIAIARBCGpCADcCACAEQSBqQgA3AgAgBEEoakIANwIAIARBMGpCADcCACAEQThqQgA3AgAgBEFAa0IANwIAIARByABqQgA3AgAgBEHQAGpCADcCACAEQdgAakIANwIAIARB4ABqQgA3AgAgBEHoAGpCADcCACAEQfAAakIANwIAIARB+ABqQgA3AgAgBEGYAWpCADcCACAEQZABakIANwIAIARBiAFqQgA3AgAgBEGAAWpCADcCACAEQbgBakIANwIAIARBsAFqQgA3AgAgBEGoAWpCADcCACAEQaABakIANwIAIARBwAFqQgA3AgAgBEHIAWpCADcCACAEQdABakIANwIAIARB2AFqQgA3AgAgBEHgAWpCADcCACAEQegBakIANwIAIARB8AFqQgA3AgAgBEH4AWpCADcCACAEQYACaiEEIAxBCGsiDA0ACwsgFEUNAANAIARCADcCACAEQRhqQgA3AgAgBEEQakIANwIAIARBCGpCADcCACAEQSBqIQQgFEEBayIUDQALCyAEQgA3AgAgBEEYakIANwIAIARBEGpCADcCACAEQQhqQgA3AgALIBEgBTYCSCARIAM2AkQgESAFNgJAIBEoAjwiFCARKAI0Rg0KAkACQCARKAIkQQV0IgNFBEBBASEMDAELIANBAEgNUyADQQEQvgMiDEUNASARKAI8IRQLIBEgAzYCVCARIAw2AlAgESADNgJMIBBB2ABqIgMgERCzAiAQQQg2AhwgEEECNgJ8IBBB+LPAADYCeCAQQgE3AoQBIBAgAzYCGCAQIBBBGGo2AoABIBBBOGogEEH4AGoQhwEgECgCWCIDBEAgECgCXCADQQEQyAMLIBEgECkCODcCWCARQeAAaiIDIBBBQGsoAgA2AgAgAygCACEDIBFB3ABqKAIAIQVBsZXCAC0AABpBzABBBBC9AyIERQ1mIARBADoASCAEIBQ2AgwgBCADNgIIIAQgBTYCBCAEIBE2AgAgEUGUgcEANgJoIBEgBDYCZEGUgcEADAILDGcLIBEoAmQhBCARKAJoCyEDIBBB+ABqIAQgAiADKAIMEQIAIBAoAngiDkEFRwRAIBAoAoQBIQwgECgCgAEhBSAQKAJ8IQMgESgCZCILIBFB6ABqKAIAIgQoAgARAAAg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DWoiESgCACIDQf////8Ha0EAIANBgoCAgHhIG0EBaw4CAUEACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkAgES0AbEEBaw4DBAACAQsACyARIBEoAjAgESgCLGo2AjwgEEGQAWpCADcDACAQQYgBakIANwMAIBBBgAFqQgA3AwAgEEIANwN4AkACQCARKAIkIgUEQCAFQf///x9LDVZBsZXCAC0AABogBUEFdCIEQQQQvQMiAw0BDGkLIBBB+ABqELcCQQQhAwwBCyADIQQCQCAFQQFGDQAgBUEBayILQQdxIRQgBUECa0EHTwRAIAtBeHEhDANAIARCADcCACAEQRhqQgA3AgAgBEEQakIANwIAIARBCGpCADcCACAEQSBqQgA3AgAgBEEoakIANwIAIARBMGpCADcCACAEQThqQgA3AgAgBEFAa0IANwIAIARByABqQgA3AgAgBEHQAGpCADcCACAEQdgAakIANwIAIARB4ABqQgA3AgAgBEHoAGpCADcCACAEQfAAakIANwIAIARB+ABqQgA3AgAgBEGYAWpCADcCACAEQZABakIANwIAIARBiAFqQgA3AgAgBEGAAWpCADcCACAEQbgBakIANwIAIARBsAFqQgA3AgAgBEGoAWpCADcCACAEQaABakIANwIAIARBwAFqQgA3AgAgBEHIAWpCADcCACAEQdABakIANwIAIARB2AFqQgA3AgAgBEHgAWpCADcCACAEQegBakIANwIAIARB8AFqQgA3AgAgBEH4AWpCADcCACAEQYACaiEEIAxBCGsiDA0ACwsgFEUNAANAIARCADcCACAEQRhqQgA3AgAgBEEQakIANwIAIARBCGpCADcCACAEQSBqIQQgFEEBayIUDQALCyAEQgA3AgAgBEEYakIANwIAIARBEGpCADcCACAEQQhqQgA3AgALIBEgBTYCSCARIAM2AkQgESAFNgJAIBEoAjwiFCARKAI0Rg0KAkACQCARKAIkQQV0IgNFBEBBASEMDAELIANBAEgNVSADQQEQvgMiDEUNASARKAI8IRQLIBEgAzYCVCARIAw2AlAgESADNgJMIBBBOGoiAyARELMCIBBB5ABqQQI2AgAgEEEINgJcIBBBAjYCfCAQQYyywAA2AnggEEICNwKEASAQIBEoAiQ2AhQgECAQQRRqNgJgIBAg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KQKoBzcDsAEgASgCoAchBCABKAKkByEKIAEoAogJIQUgASgChAkhCSABKAKACSELIANBMGogEykDADcDACADQShqIA0pAwA3AwAgA0EgaiAUKQMANwMAIA9B8AFqIAwpAwA3AwAgD0H4AWogDikDADcDACAPQYACaiAYKQMANwMAIA8gDykDwCs3A8gBIA8gDykD+AM3A+gBIAYhAwNAIAMQtwIgA0EgaiEDIAdBAWsiBw0ACyASBEAgBiASQQV0QQQQyAMLIAEoAvQIIgMEQCABKAL4CCADQQN0QQQQyAMLIAFB6AhqEJoCIAEoAugIIgMEQCABKALsCCADQQxsQQQQyAMLIAFBADsB5AhBwAAhA0HgACEHIAEoArQIIgZFDQUgASgCuAggBkECdEEEEMgDDAULIAEoAsgIIgsEQCABKALECCEDA0AgAxB0IANBsCFqIQMgC0EBayILDQALCyABKALACCIDRQ0CIAEoAsQIIANBsCFsQQQQyAMMAgtBAEEAQbjnwAAQtAIAC0EBQQFByOfAABC0AgALIBIhBSAGIQQgByEKCyABQQA6AOQIIAEoArQIIgMEQCABKAK4CCADQQJ0QQQQyAMLIAFB4AdqELcCQYCAgIB4IQtBICEDQcAAIQcLIAcgLmoQtwIgAyAuahC3AiAuELcCIA9BqCpqIgMgD0GwAWpB2AAQ5gMaIEVBAToAACALQYGAgIB4Rg0AIA8gA0HYABDmAyEDIC4QXCALQYCAgIB4Rg0fIANB2ABqIgcgA0HYABDmAxogA0HQAmoiBkEYaiAHQTBqKQIANwMAIAZBEGogB0EoaikCADcDACAGQQhqIANB+ABqKQIANwMAIAFBAToA+AYgASAKNgIEIAEgBDYCACABQQhqIgQgAykCADcCACABQRBqIhIgA0EIaikCADcCACABQRhqIhMgA0EQaikCADcCACABIAU2ApQGIAEgCTYCkAYgASALNgKMBiADIAMpAnA3A9ACIAFBOGogA0GoAWopAgA3AgAgAUEwaiADQaABaikCADcCACABQShqIANBmAFqKQIANwIAIAEgAykCkAE3AiAgASkD6AEhVyABKALsBSgClAEhCyABKAKIBiEKIAEoAoQGIQcgA0GgKWoiDSABQfAFahCzAiAGQShqIAQpAwA3AwAgBkEwaiASKQMANwMAIAZBOGog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IAVBMGogB0EwaikAADcAACAFQShqIAdBKGopAAA3AAAgBUEgaiAHQSBqKQAANwAAIAVBGGogB0EYaikAADcAACAFQRBqIAdBEGopAAA3AAAgBUEIaiAHQQhqKQAANwAAIAMLNgIIIAogBDYCBCAKIAM2AgAgASgC2AkiAyABQZAKaiIEKAIAIgVPDQUgAUGMCmoiBSgCACADQQZ0aiIDIAkpAAA3ACAgA0E4aiAJQRhqKQAANwAAIANBMGogCUEQaikAADcAACADQShqIAlBCGopAAA3AAAgCSABQYAKaigCACABQYQKaigCABBFIAQoAgAiCiABKALYCSIDTQ0GIAUoAgAgA0EGdGoiAyAJKQAANwAAIANBGGogCUEYaikAADcAACADQRBqIAlBEGopAAA3AAAgA0EIaiAJQQhqKQAANwAAIAEgVzcDqAlBACEEIAFBADYCsAkgASABKALUCSIuNgK0CUEAIQMMCAsgDykC1AIhV0EDIQkMDAtBFCADQdjnwAAQygMAC0EUIANB6OfAABDKAwALQRQgA0H458AAEMsDAAtBFCADQYjowAAQywMACyADIAVBmOjAABC0AgALIAMgCkGo6MAAELQCAAsgDykC3AIhVyAPKALYAiEFIA8oAtQCIQkMBQsDQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAw4CAAECCyAEIC5JDQJBACESIAFBADYCuAkgASABKALUCSIXNgK8CQwJCyAPQdACaiA4IAIgUSgCDBECACAPKALQAiIJQQVGDQIgDykC2AIhVyAPKALUAiEFIAEoAtAKIgcgAUHUCmooAgAiAygCABEAACADKAIEIgoEQCAHIAogAygCCBDIAwsgASgCxAoiAwRAIAEoAsgKIANBARDIAwsgASgCuAoiCgRAIAEoArwKIApBARDIAwsgCUEERw0NIAFBuApqIQMgASgClAohCiAPQbApaiIFIAFB3AlqIgcQswIgD0EKNgKkKyAPQQI2AtQCIA9B9OjAADYC0AIgD0IBNwLcAiAPIAU2AqArIA8gD0GgK2o2AtgCIA9BwCtqIA9B0AJqEIcBIA8oArApIgUEQCAPKAK0KSAFQQEQyAMLIAMgDykCwCs3AgAgA0EIaiAPQcgraigCADYCACABKALYCSIDIAFBkApqKAIAIgVPDQQgAUG8CmooAgAhBSAB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AGogWDcCACABIFc3AmAgAUHgAGohAyABQUBrIQQgASgC7AUiBygClAEiDUUNAyABKALgASEJIAEoAuQBQQJ0IQcDQCAHRQ0DIAEoAogGIApHBEAgD0HAB2oiCyAJKAIAQQFqrRDIAiAPQdACaiIFIAQgCxDBAiAEELcCIARBGGogBUEYaikCADcCACAEQRBqIAVBEGopAgA3AgAgBEEIaiAFQQhqKQIANwIAIAQgDykC0AI3AgAgCxC3AiAFIAkoAgBBAWqtEMgCIAsgASgC7AUoAowBQQFqrRDIAiAPQbABaiITIAUgCxDAAiAPQagqaiISIAMgExDBAiADELcCIANBGGogEkEYaikCADcCACADQRBqIBJBEGopAgA3AgAgA0EIaiASQQhqKQIANwIAIAMgDykCqCo3AgAgExC3AiALELcCIAUQtwILIAlBBGohCSAHQQRrIQcgDSAKQQFqIgpHDQALDAILIFdCIIinIQogV6chBAwVCyAAQQI2AgBBBAwXCyABKALsBSEHCyAPQcAHaiIJIAMQ+wEgD0GwAWoiAyAEIAkQwQIgD0HwAmoiBCAHQZgBaiADEMECIAMQtwIgCRC3AiABQewIaiAEKQMANwIAIAFB9AhqIA9B0AJqIgNBKGopAwA3AgAgAUH8CGogA0EwaikDADcCACABQYQJaiADQThqKQMANwIAIAEgASkCIDcCzAggAUHUCGogAUEoaikCADcCACABQdwIaiABQTBqKQIANwIAIAFB5AhqIAFBOGopAgA3AgAgAUGQBmooAgAhAyABQZQGaigCACELIAEoAogGIQogD0HAK2oiBCABQfAFahCzAiABKQL8BSFXIAYgDykDwCs3AwAgBkEIaiAEQQhqKAIANgIAIAEgVzcCjAcgAUEAOgDQByABIAo2AqQHIAEgCzYCoAcgASADNgKcByABQQE2ApgHIAEgAUHMCGoiBTYClAcgAUHRB2ogCUH7ABDmAxogAUGAB2ohEiABQdAHaiEGQQELIQkgAUEBOgDRByABIAs2ArgHIAEgAzYCtAcgASAKNgKwByABIAk2AqwHIAEgBTYCqAcgASASKQIANwK8ByABQcQHaiASQQhqKQIANwIAIAFBzAdqIBJBEGooAgA2AgAgD0GwKWoiBCABQbwHahCzAiABQQA6AMgIIAEgCjYC+AcgASALNgL0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AGooAgAiEyAKQdQAaigCACILKAIAEQAAIAsoAgQiDQRAIBMgDSALKAIIEMgDCyAKQcQAaigCACILBEAgCkHIAGooAgAgC0EBEMgDCyAKQThqKAIAIgsEQCAKQTxqKAIAIAtBARDIAwsgCkEsaigCACILRQ0BIApBMGooAgAgC0EBEMgDDAELIApBBGoiCigCAEEERg0BIAoQjAIMAQsgCigCACILRQ0AIApBBGooAgAgC0EBEMgDCyAJQdwAaiEJIANBAWsiAw0ACyAFIARB3ABsQQQQyAMMAwsMFgsMMAsgGkEANgIIIBpCgICAgMAANwIAIBRCBDcCBAsgIUEgaiQAAkACQAJAIA8oAtACIgVBgICAgHhHBEAgDygC1AIhCiAPKALYAiEJIBQQZSAPIAlBBHQiCyAKaiIENgLcAiAPIAU2AtgCIA8gCjYC0AIgCiEDIAlFDQEDQAJAIAMoAgAiCUEERwRAIAlBBUcNASADQRBqIQMMBAsgA0EQaiEDIAtBEGsiCw0BDAQLCyAPIANBEGo2AtQCIAMoAgQhBSADKAIIIQQgAygCDCEKIA9B0AJqELYCDAMLQQMhAyAYQQM6AAAMBwsgDyADNgLUAiADIARGDQAgBCADa0EEdiELA0AgAygCAEEERwRAIAMQjAILIANBEGohAyALQQFrIgsNAAsLIAUEQCAKIAVBBHRBBBDIAwtBBCEJCyABKAKICCIDBEAgASgCjAggA0EBEMgDCyAYQQE6AAAgCUEERw0CIAFBADoA0QcgAUHEB2opAgAhVyABKQOoByFYIAEpArQHIVkgASgCsAchAyABKQK8ByFaIAdBEGogAUHMB2ooAgA2AgAgB0EIaiBXNwIAIAcgWjcCACABIAM2AvgHIAEgWTcD8AcgASBYNwPoByABQfwHaiAPQdACakHMABDmAxogAUEAOgDICCABIA8vAKArOwDJCCABQcsIaiAPQaIrai0AADoAACABQcgIaiFECyABIAEpA+gHNwL8ByABIAEoAvgHNgKECCABIAEpAtQHNwKICCABQZAIaiABQdwHaikCADcCACABQZgIaiABQeQHaigCADYCACABKALwByEEIAEoAvQHIQUgD0GwAWoiAyABQYgIahCzAiAPIAEpApQINwK8ASAPQfgDaiADIAUQtwEgA0EgakIANwIAIA9CADcCyAEg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ADYCaCAJKAJkIQQgCSAFQQhqNgJkAkACQAJAAkAgBARAIAQgBzYCaCAHRQ0BDAILIAcNASARQQA2AgQMAwsgESAENgIEIAQhAwwBCyAHIAQ2AmQLIAMgCkEBazYCbAsgCS0AdCAJQQA6AHRFDSMgCUEAOgB1IBAgCTYCJCAQQYD7wAA2AiAgECAQQSBqIgM2AiwgECADNgIoIBBBDGohFiAQQShqIQVBACEIQQAhOiMAQaACayIMJAAgCUEEaiIhKAJcISgCQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAICEtAFhBAWsOAwQAAgELAAsgISAhKAIgNgIoIAxBkAJqQgA3AwAgDEGIAmpCADcDACAMQYACakIANwMAIAxCADcD+AECQAJAICEoAhgiAwRAIANB////H0sNMEGxlcIALQAAGiADQQV0IgRBBBC9AyIHDQEMQwsgDEH4AWoQtwJBBCEHDAELIAchBAJAIANBAUYNACADQQFrIgtBB3EhCiADQQJrQQdPBEAgC0F4cSELA0AgBEIANwIAIARBGGpCADcCACAEQRBqQgA3AgAgBEEIakIANwIAIARBIGpCADcCACAEQShqQgA3AgAgBEEwakIANwIAIARBOGpCADcCACAEQUBrQgA3AgAgBEHIAGpCADcCACAEQdAAakIANwIAIARB2ABqQgA3AgAgBEHgAGpCADcCACAEQegAakIANwIAIARB8ABqQgA3AgAgBEH4AGpCADcCACAEQZgBakIANwIAIARBkAFqQgA3AgAgBEGIAWpCADcCACAEQYABakIANwIAIARBuAFqQgA3AgAgBEGwAWpCADcCACAEQagBakIANwIAIARBoAFqQgA3AgAgBEHAAWpCADcCACAEQcgBakIANwIAIARB0AFqQgA3AgAgBEHYAWpCADcCACAEQeABakIANwIAIARB6AFqQgA3AgAgBEHwAWpCADcCACAEQfgBakIANwIAIARBgAJqIQQgC0EIayILDQALCyAKRQ0AA0AgBEIANwIAIARBGGpCADcCACAEQRBqQgA3AgAgBEEIakIANwIAIARBIGohBCAKQQFrIgoNAAsLIARCADcCACAEQRhqQgA3AgAgBEEQakIANwIAIARBCGpCADcCAAsgISADNgIsICFBNGoiEyADNgIAICFBMGoiDSAHNgIAICEoAhgh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IApB/OXAABC1AgALQRQgBEGM5sAAEMoDAAsgBCAFQZzmwAAQtAIAC0EUIANB9ObAABDLAwALQQAhAwwCC0EBIQMMAQsLIA9B6AVqIgNBCGogAUE4aikCADcDACADQRhqIAFBiAFqKQIANwMAIANBIGogAUGQAWopAgA3AwAgD0GQBmogAUGYAWopAgA3AwAgD0GwBmogAkEYaikCADcDACAPQagGaiACQRBqKQIANwMAIANBOGogAkEIaikCADcDACAPIAEpAjA3A+gFIA8gASkCgAE3A/gFIA8gAikCADcDmAYgASgCLCEKIAEoAighBCABKAIkIQUgASgCICEJIA9BuAZqIAFB8AFqQfgAEOYDGiABKALIBiICBEAgASgCzAYgAkEFdEEBEMgDCyABKAK8BiICBEAgASgCwAYgAkEBEMgDCyABKAKwBiICBEAgASgCtAYgAkH4AGxBBBDIAwsgAUHgAGoQtwIgAUFAaxC3AiABKAKkBiICBEAgASgCqAYgAkEBEMgDCyABKAKYBiICBEAgASgCnAYgAkEGdEEBEMgDCyABQYwGahCaAiABKAKMBiICBEAgASgCkAYgAkEMbEEEEMgDC0EAIQMgAUEAOgD4BgwKCyAPKALIByEKIA8oAsQHIQQgDygCwAchBUEBIQkMAwsgA0UNACAHIANBARDIAwsgAUHEB2oQtwILIAEoAoAHIgJFDQAgASgChAcgAkEBEMgDCyABQaABahC3AgsgASgCyAYiAkUNACABKALMBiACQQV0QQEQyAMLIAEoArwGIgIEQCABKALABiACQQEQyAMLIAEoArAGIgIEQCABKAK0BiACQfgAbEEEEMgDCyABQYABahC3AgsgAUHgAGoQtwIgAUFAaxC3AiABKAKkBiICBEAgASgCqAYgAkEBEMgDCyABKAKYBiICRQ0AIAEoApwGIAJBBnRBARDIAwsgAUEgahC3AiABKAKUBiIGBEAgASgCkAYhC0EAIQcDQCALIAdBDGxqIgIoAggiMQRAIAIoAgQhAwNAIAMQtwIgA0EgahC3AiADQUBrIQMgMUEBayIxDQALCyACKAIAIgMEQCACKAIEIANBBnRBBBDIAwsgBiAHQQFqIgdHDQALCyABKAKMBiICBEAgASgCkAYgAkEMbEEEEMgDCyABLQD4BgRAIAEQtwILIAFBADoA+AYL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DSAFRQ0LIAIgBUEBEMgDDAsLIABBkAFqKAIAIAxqIgMgAi0AADoAACADIAItAAE6AAEgAyACLQACOgACIAMgAi0AAzoAAyADIAItAAQ6AAQgAyACLQAFOgAFIAMgAi0ABjoABiADIAItAAc6AAcgAyACLQAIOgAIIAMgAi0ACToACSADIAItAAo6AAogAyACLQALOgALIAMgAi0ADDoADCADIAItAA06AA0gAyACLQAOOgAOIAMgAi0ADzoADyADIAItABA6ABAgAyACLQAROgARIAMgAi0AEjoAEiADIAItABM6ABMgAyACLQAUOgAUIAMgAi0AFToAFSADIAItABY6ABYgAyACLQAXOgAXIAMgAi0AGDoAGCADIAItABk6ABkgAyACLQAaOgAaIAMgAi0AGzoAGyADIAItABw6ABwgAyACLQAdOgAdIAMgAi0AHjoAHiADIAItAB86AB8gBQRAIAIgBUEBEMgDCyAPKAKIAyICBEAgBCACQQEQyAMLIAAoArABIQ0gACgCrAEhDAwICyACQQBIDR5BsZXCAC0AABogAkEBEL0DIgxFDTYgAkEBRwR/IAxBASACQQFrIgMQ5QMgA2oFIAwLQQE6AAALIA9BgAJqIQkgDCEfQgAhlwEjAEHgAmsiByQAAkACQAJAAkACQAJAAkACQCACIA1LBEAgDCANai0AAEUNASAKQQhqIhsNAkEBIRcMAwsgDSACQeSnwQAQtAIAC0GxlcIALQAAGkEyQQEQvQMiA0UNAiAJQTI2AhAgCSADNgIMIAlCgICAgKAGNwIEIANBMGpBpKjBAC8AADsAACADQShqQZyowQApAAA3AAAgA0EgakGUqMEAKQAANwAAIANBGGpBjKjBACkAADcAACADQRBqQYSowQApAAA3AAAgA0EIakH8p8EAKQAANwAAIANB9KfBACkAADcAACAJQYCAgIB4NgIADAYLIBtBAEgNIyAbQQEQvgMiF0UNAgsgAkH///8fSw0iQbGVwgAtAAAaIAJBBXQiA0EBEL0DIhBFDSQgECEDAkAgAkECSQ0AIAJBAWsiDEEHcSEFIAJBAmtBB08EQCAMQXhxIQQDQCADQgA3AAAgA0EYakIANwAAIANBEGpCADcAACADQQhqQgA3AAAgA0EgakIANwAAIANBKGpCADcAACADQTBqQgA3AAAgA0E4akIANwAAIANBQGtCADcAACADQcgAakIANwAAIANB0ABqQgA3AAAgA0HYAGpCADcAACADQeAAakIANwAAIANB6ABqQgA3AAAgA0HwAGpCADcAACADQfgAakIANwAAIANBmAFqQgA3AAAgA0GQAWpCADcAACADQYgBakIANwAAIANBgAFqQgA3AAAgA0G4AWpCADcAACADQbABakIANwAAIANBqAFqQgA3AAAgA0GgAWpCADcAACADQcABakIANwAAIANByAFqQgA3AAAgA0HQAWpCADcAACADQdgBakIANwAAIANB4AFqQgA3AAAgA0HoAWpCADcAACADQfABakIANwAAIANB+AFqQgA3AAAgA0GAAmohAyAEQQhrIgQNAAsLIAVFDQADQCADQgA3AAAgA0EYakIANwAAIANBEGpCADcAACADQQhqQgA3AAAgA0EgaiEDIAVBAWsiBQ0ACwsgA0IANwAAIANBGGpCADcAACADQRBqQgA3AAAgA0EIakIANwAAIApBeE8NAiAXQQhqIA4gChDmAxogAkEFdCEKIBtBP3EhDCAXIBtBQHFqIQsgG0EGdiIGrSGYASAHQfgBaiEIIAdBiAFqIgRBOGohGSAEQTBqIREgBEEgaiEVQQAhBSACIQ4DQCAFIApGDQQgFyCXATcAACAZQgA3AwAgEUIANwMAIARBKGpCADcDACAVQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwAgBEIANwMAIAdBADoAyAEgB0HgAGoiA0EIakHQisEAKQMANwMAIANBEGpB2IrBACkDADcDACADQRhqQeCKwQApAwA3AwAgB0IANwOAASAHQciKwQApAwA3A2AgBwJ/IBtBP00EQCAEIBcgGxDmAxogGwwBCyAHIJgBNwOAASAHQeAAaiAXIAYQFiAEIAsgDBDmAxogDAs6AMgBIAdB0AFqIgMgB0HgAGpB8AAQ5gMaIAdBGGoiFEIANwMAIAdBEGoiHkIANwMAIAdBCGoiE0IANwMAIAdCADcDACADIAggBxBfIAdBwAJqIgNBGGogFCkDACKZATcDACADQRBqIB4pAwAimgE3AwAgA0EIaiATKQMAIpsBNwMAIAcgBykDACKcATcDwAIgBSAQaiIDQRhqIJkBNwAAIANBEGogmgE3AAAgA0EIaiCbATcAACADIJwBNwAAIJcBQgF8IZcBIAVBIGohBSAOQQFrIg4NAAsMAwtBAUEyQeiVwgAoAgAiAEG8ASAAGxEBAAALQQEgG0HolcIAKAIAIgBBvAEgABsRAQAAC0EIIBtBqKjBABDNAwALQbGVwgAtAAAaQQEhCgJAAkAgAkEUbCIZQQEQvQMiCwRAIAshAwJAIAJBAkkNACACQQFrIgxBB3EhBSACQQJrQQdPBEAgDEF4cSEEA0AgA0IANwAAIANBEGpBADYAACADQQhqQgA3AAAgA0EUakIANwAAIANBHGpCADcAACADQSRqQQA2AAAgA0EoakIANwAAIANBMGpCADcAACADQThqQQA2AAAgA0E8akIANwAAIANBxABqQgA3AAAgA0HMAGpBADYAACADQdAAakIANwAAIANB2ABqQgA3AAAgA0HgAGpBADYAACADQfQAakEANgAAIANB7ABqQgA3AAAgA0HkAGpCADcAACADQYgBakEANgAAIANBgAFqQgA3AAAgA0H4AGpCADcAACADQYwBakIANwAAIANBlAFqQgA3AAAgA0GcAWpBADYAACADQaABaiEDIARBCGsiBA0ACwsgAiEKIAVFDQADQCADQgA3AAAgA0EQakEANgAAIANBCGpCADcAACADQRRqIQMgBUEBayIFDQALCyADQgA3AAAgA0EQakEANgAAIANBCGpCADcAACAHQThqQgA3AwAgB0EwakIANwMAIAdBKGpCADcDACAHQSBqIgxCADcDACAHQRhqQgA3AwAgB0EQakIANwMAIAdBCGpCADcDACAHQgA3AwACQAJAAkACQCACIA1LBEAgDCAQIA1BBXRqIgUpAAA3AAAgDEEYaiAFQRhqKQAANwAAIAxBEGogBUEQaikAADcAACAMQQhqIAVBCGopAAA3AAAgDQRAIAdB+AFqIREgB0GIAWoiBkE4aiEVIAZBMGohFCAGQSBqIR5B0IrBACkDACGXAUHYisEAKQMAIZgBQeCKwQApAwAhmQFByIrBACkDACGaASAQIQMgCyEEQQAhDgNAIAdBGGogA0EYaikAADcDACAHQRBqIANBEGopAAA3AwAgB0EIaiADQQhqKQAANwMAIAcgAykAADcDACAVQgA3AwAgFEIANwMAIAZBKGpCADcDACAeQgA3AwAgBkEYakIANwMAIAZBEGpCADcDACAGQQhqQgA3AwAgBkIANwMAIAdB4ABqIghBCGoglwE3AwAgCEEQaiCYATcDACAIQRhqIJkBNwMAIAdBADoAyAEgB0IBNwOAASAHIJoBNwNgIAggB0EBEBYgB0EAOgDIASAHQdABaiITIAhB8AAQ5gMaIAdBwAJqIghBGGoiHUIANwMAIAhBEGoiGEIANwMAIAhBCGoiGkIANwMAIAdCADcDwAIgEyARIAgQXyAHQUBrIghBGGogHSkDADcDACAIQRBqIhMgGCkDADcDACAIQQhqIgggGikDADcDACAHIAcpA8ACNwNAIAogDkYNBiAEIAcpA0A3AAAgBEEQaiATKAIANgAAIARBCGogCCkDADcAACADQSBqIQMgBEEUaiEEIA0gDkEBaiIORw0ACwsgB0EYaiAFQRhqKQAANwMAIAdBEGogBUEQaikAADcDACAHQQhqIAVBCGopAAA3AwAgByAFKQAANwMAIA1BAWoiDiACTw0CIAIgCksNASANQRRsIAtqQRRqIQQgDUEFdCAQakEgaiEFIAdB+AFqIQggB0GIAWoiA0E4aiERIANBMGohFQNAIAIgDk0NBCAMIAUpAAA3AAAgDEEYaiAFQRhqKQAANwAAIAxBEGogBUEQaikAADcAACAMQQhqIAVBCGopAAA3AAAgEUIANwMAIBVCADcDACADQShqQgA3AwAgA0EgakIANwMAIANBGGpCADcDACADQRBqQgA3AwAgA0EIakIANwMAIANCADcDACAHQeAAaiIGQQhqQdCKwQApAwA3AwAgBkEQakHYisEAKQMANwMAIAZBGGpB4IrBACkDADcDACAHQQA6AMgBIAdCATcDgAEgB0HIisEAKQMANwNgIAYgB0EBEBYgB0EAOgDIASAHQdABaiIUIAZB8AAQ5gMaIAdBwAJqIgZBGGoiHkIANwMAIAZBEGoiE0IANwMAIAZBCGoiHUIANwMAIAdCADcDwAIgFCAIIAYQXyAHQUBrIgZBGGogHikDADcDACAGQRBqIBMpAwAilwE3AwAgBkEIaiAdKQMAIpgBNwMAIAcgBykDwAIimQE3A0AgBEEQaiCXAT4AACAEQQhqIJgBNwAAIAQgmQE3AAAgBEEUaiEEIAVBIGohBSAOQQFqIg4gAkcNAAsMAgsgDSACQbiowQAQtAIACyAMIBAgDkEFdGoiAykAADcAACAMQRhqIANBGGopAAA3AAAgDEEQaiADQRBqKQAANwAAIAxBCGogA0EIaikAADcAACAHQcABakIANwMAIAdBuAFqQgA3AwAgB0GwAWpCADcDACAHQagBakIANwMAIAdBoAFqQgA3AwAgB0GYAWpCADcDACAHQZABakIANwMAIAdB4ABqIgNBCGpB0IrBACkDADcDACADQRBqQdiKwQApAwA3AwAgA0EYakHgisEAKQMANwMAIAdCADcDiAEgB0EAOgDIASAHQgE3A4ABIAdByIrBACkDADcDYCADIAdBARAWIAdBADoAyAEgB0HQAWoiDCADQfAAEOYDGiAHQcACaiIDQRhqIgVCADcDACADQRBqIgRCADcDACADQQhqIgZCADcDACAHQgA3A8ACIAwgB0H4AWogAxBfIAdBQGsiA0EYaiAFKQMANwMAIANBEGogBCkDACKXATcDACADQQhqIAYpAwAimAE3AwAgByAHKQPAAiKZATcDQCALIA5BFGxqIgNBEGoglwE+AAAgA0EIaiCYATcAACADIJkBNwAAC0GxlcIALQAAGiAZQQEQvQMiBkUNJiAGIQMCf0EBIAJBAkkNABogAkEBayIMQQdxIQUgAkECa0EHTwRAIAxBeHEhBANAIANCADcAACADQRBqQQA2AAAgA0EIakIANwAAIANBFGpCADcAACADQRxqQgA3AAAgA0EkakEANgAAIANBKGpCADcAACADQTBqQgA3AAAgA0E4akEANgAAIANBPGpCADcAACADQcQAakIANwAAIANBzABqQQA2AAAgA0HQAGpCADcAACADQdgAakIANwAAIANB4ABqQQA2AAAgA0H0AGpBADYAACADQewAakIANwAAIANB5ABqQgA3AAAgA0GIAWpBADYAACADQYABakIANwAAIANB+ABqQgA3AAAgA0GMAWpCADcAACADQZQBakIANwAAIANBnAFqQQA2AAAgA0GgAWohAyAEQQhrIgQNAAsLIAIgBUUNABoDQCADQgA3AAAgA0EQakEANgAAIANBCGpCADcAACADQRRqIQMgBUEBayIFDQALIAILIQwgA0IANwAAIANBEGpBADYAACADQQhqQgA3AAAgAkEDdCIZQQQQvgMiEUUNJyAZQQQQvgMiCEUNBEEAIQMgCCEEIAYhBUEAIQ4CQANAIAMgH2otAAAEQCACIA5NDQYgBEEBNgIA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aiEnIAEhG0EAIQEjAEEgayIlJAACQAJAAkAgAEH0AGoiHSgCAEGAgICAeEYEQCAdKAIIIh9FDQIgHSgCBCEeIB9B0AtsISlBASEMA0BBACENQQAhCkEAIQZBACEJQQAhDkEAIRcjAEHgAmsiEyQAAkACQAJAAkACQAJAAkACQAJ/AkACQAJ+AkACQAJAAkACQAJAIAEgHmoiBygC2AIiA0H/////B2tBACADQYKAgIB4SBtBAWsOAhEBAAsgB0HYAmohIwJAAkACQAJ/AkACfwJAAkACQAJAIActAO0CQQFrDgQHAgwBAAsgB0EBOgDsAkECIQVBfyAHKALQAiIKIAcoAtQCIgJHIAIgCksbQf8BcQ4CFAoCCyAHQfACaiEXIAdBjARqIRkCQCAHLQCMBEEBaw4EBwEEEAALIAcoAowDIQogBygChAMhBSAHKAKIAwwCCwALIAdBADoA7AIgB0EAOgCMBCAHIAo2AowDIAcgIykDADcD8AIgByAHQbgCaiIFNgKEAyAHQfgCaiAjQQhqKQMANwMAIAdBgANqICNBEGooAgA2AgAgByAHNgKIAyAHQYwEaiEZIAdB8AJqIRcgBwshAiAHQQE6AI0EIAcgCjYCmAMgByACNgKUAyAHIAU2ApADIAdBgAY2ArADIAcgFykCADcCnAMgB0GkA2ogF0EIaikCADcCACAHQawDaiAXQRBqKAIANgIAQQAhA0GxlcIALQAAGkGAwAFBBBC9AyIFRQ0EA0AgAyAFaiICQgA3AgAgAkEYakIANwIAIAJBEGpCADcCACACQQhqQgA3AgAgAkEgakIANwIAIAJBKGpCADcCACACQTBqQgA3AgAgAkE4akIANwIAIAJBQGtCADcCACACQcgAakIANwIAIAJB0ABqQgA3AgAgAkHYAGpCADcCACACQeAAakIANwIAIAJB6ABqQgA3AgAgAkHwAGpCADcCACACQfgAakIANwIAIAJBmAFqQgA3AgAgAkGQAWpCADcCACACQYgBakIANwIAIAJBgAFqQgA3AgAgAkG4AWpCADcCACACQbABakIANwIAIAJBqAFqQgA3AgAgAkGgAWpCADcCACACQcABakIANwIAIAJByAFqQgA3AgAgAkHQAWpCADcCACACQdgBakIANwIAIAJB4AFqQgA3AgAgAkHoAWpCADcCACACQfABakIANwIAIAJB+AFqQgA3AgAgAkGAAmpCADcCACACQYgCakIANwIAIAJBkAJqQgA3AgAgAkGYAmpCADcCACACQbgCakIANwIAIAJBsAJqQgA3AgAgAkGoAmpCADcCACACQaACakIANwIAIAJB2AJqQgA3AgAgAkHQAmpCADcCACACQcgCakIANwIAIAJBwAJqQgA3AgAgAkH4AmpCADcCACACQfACakIANwIAIAJB6AJqQgA3AgAgAkHgAmpCADcCACACQZgDakIANwIAIAJBkANqQgA3AgAgAkGIA2pCADcCACACQYADakIANwIAIANBoANqIgNB4L8BRw0ACyAHQYAGNgK8AyAHIAU2ArgDIAdBgAY2ArQDIAMgBWoiAkIANwIAIAJBGGpCADcCACACQRBqQgA3AgAgAkEIakIANwIAQSBBARC+AyICRQ05IAdCADcCzAMgB0EgNgLAAyAHQcgDaiIDQSA2AgAgB0HEA2oiBSACNgIAIAdB1ANqQgA3AgAgB0HcA2pCADcCACAHQeQDakIANwIAIAdB7ANqIgIgBygClAMQxQIgE0HQAWoiBCACIAUoAgAgAygCABD8ASATKALQASIFQYCAgIB4Rw0JIAcoApgDIQIgE0FAayIDIAdBnANqIgUQswIgE0EINgK0ASATQQI2AtQBIBNBhLvAADYC0AEgE0IBNwLcASATIAM2ArABIBMgE0GwAWo2AtgBIBNBwAJqIAQQhwEgEygCQCIDBEAgEygCRCADQQEQyAMLIAcgEykCwAI3ApAEIAdBmARqIgMgE0HIAmooAgA2AgAgAygCACEDIAdBlARqKAIAIQQgB0GcBGogB0HEA2ooAgAgB0HIA2ooAgAQsgEgB0GkBGooAgAhDiAHQaAEaigCACEQQbGVwgAtAAAaQeAAQQQQvQMiCkUNPSAKQQA6AFwgCiACNgIUIAogDjYCECAKIBA2AgwgCiADNgIIIAogBDYCBCAKIAU2AgAgB0G0gMEANgKsBCAHIAo2AqgEQbSAwQAMAQsgBygCqAQhCiAHKAKsBAshAiATQdABaiAKIBsgAigCDBECACATKALQASIGQQVGDQYgEykC2AEhlwEgEygC1AEhBSAHKAKoBCIDIAdBrARqKAIAIgIoAgARAAAgAigCBCINBEAgAyANIAIoAggQyAMLIAcoApwEIgIEQCAHKAKgBCACQQEQyAMLIAcoApAEIgIEQCAHKAKUBCACQQEQyAMLIAZBBEcNDyAHKAKwAyIQRQ0JIAdBuANqKAIAIQogB0G8A2ooAgBBBXQhBiAHQcwDaiENIAdB7ANqIQMgE0HQAWoiAkEoaiEJIAJBEGohBCAHQcgDaiELIAdBxANqIQggE0HoAGoiAkE4aiERIAJBMGohFQNAIAZFDQogE0HQAWoiBUEYakHMu8AAKQIANwMAIARBxLvAACkCADcDACAFQQhqQby7wAApAgA3AwAgE0G0u8AAKQIANwPQASATQUBrIg4gAyAFEL8CIAMQtwIgA0EYaiAOQRhqIhQpAgA3AgAgA0EQaiAOQRBqIhgpAgA3AgAgA0EIaiAOQQhqIhopAgA3AgAgAyATKQJANwIAIAUQtwIgBSADIAgoAgAgCygCABD8ASATKALQASIFQYCAgIB4Rw0IIAgoAgAhDiALKAIAIQUgEUIANwMAIBVCADcDACACQShqQgA3AwAgAkEgakIANwMAIAJBGGpCADcDACACQRBqQgA3AwAgAkEIakIANwMAIAJCADcDACATQQA6AKgBIBpB0IrBACkDADcDACAYQdiKwQApAwA3AwAgFEHgisEAKQMANwMAIBNCADcDYCATQciKwQApAwA3A0ACQCAFQT9NBEAgAiAOIAUQ5gMaDAELIBMgBUEGdiIUrTcDYCATQUBrIA4gFBAWIAIgDiAFQUBxaiAFQT9xIgUQ5gMaCyATIAU6AKgBIBNB0AFqIg4gE0FAa0HwABDmAxogE0HAAmoiBUEYaiIUQgA3AwAgBUEQaiIYQgA3AwAgBUEIaiIaQgA3AwAgE0IANwPAAiAOIAkgBRBfIBNBsAFqIgVBGGogFCkDACKXATcDACAFQRBqIBgpAwAimAE3AwAgBUEIaiAaKQMAIpkBNwMAIBMgEykDwAIimgE3A7ABIA1BGGoglwE3AgAgDUEQaiCYATcCACANQQhqIJkBNwIAIA0gmgE3AgAgDiANQSAQlAEgEygC1AEhBSATKQLYASKXASATKALQAQ0JGiATQShqIg5BEGoiFCAEQRBqKAIANgIAIA5BCGoiDiAEQQhqKQIANwMAIBMgBCkCADcDKCAKELcCIAoglwE3AgQgCiAFNgIAIAogEykDKDcCDCAKQRRqIA4pAwA3AgAgCkEcaiAUKAIANgIAIAZBIGshBiAKQSBqIQogEEEBayIQDQALDAkLQeCxwABBI0HIscAAEPUCAAtB4LHAAEEjQZC9wAAQ9QIACww1CxCaAwALIAdBADoA7AIgB0EAOgDYAyAHIAo2AowDIAcgIykDADcD8AIgByAHQbgCajYChAMgB0H4AmogI0EIaikDADcDACAHQYADaiAjQRBqKAIANgIAIAcgBzYCiAMLIBNB0AFqIRkjAEGAB2siDSQAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/An8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAIAdB8AJqIggtAGhBAWsOBAMFAAQBCyAIKAJ4IQMgCCgCfAwBCyAIQQE6AGkgCEGABjYCQCAIIAgoAhQ2AiAgCCAIKQIYNwIkIAggCCkCADcCLCAIQTRqIAhBCGopAgA3AgAgCEE8aiAIQRBqKAIANgIAQbGVwgAtAAAaQYDAAUEEEL0DIgNFDYQBA0AgAyAJaiICQgA3AgAgAkEYakIANwIAIAJBEGpCADcCACACQQhqQgA3AgAgAkEgakIANwIAIAJBKGpCADcCACACQTBqQgA3AgAgAkE4akIANwIAIAJBQGtCADcCACACQcgAakIANwIAIAJB0ABqQgA3AgAgAkHYAGpCADcCACACQeAAakIANwIAIAJB6ABqQgA3AgAgAkHwAGpCADcCACACQfgAakIANwIAIAJBmAFqQgA3AgAgAkGQAWpCADcCACACQYgBakIANwIAIAJBgAFqQgA3AgAgAkG4AWpCADcCACACQbABakIANwIAIAJBqAFqQgA3AgAgAkGgAWpCADcCACACQcABakIANwIAIAJByAFqQgA3AgAgAkHQAWpCADcCACACQdgBakIANwIAIAJB4AFqQgA3AgAgAkHoAWpCADcCACACQfABakIANwIAIAJB+AFqQgA3AgAgAkGAAmpCADcCACACQYgCakIANwIAIAJBkAJqQgA3AgAgAkGYAmpCADcCACACQbgCakIANwIAIAJBsAJqQgA3AgAgAkGo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CygCSCEVIARBQGsiAiADELMCIARBiAdqIBEgFSACEC4gBC0AiAcNAiACQQJqIhUgEEECai0AADoAACAEQfAEaiICQQhqIApBCGopAAA3AwAgAkEQaiAKQRBqKQAANwMAIAJBGGogCkEYaikAADcDACACQSBqIApBIGopAAA3AwAgAkElaiAKQSVqKQAANwAAIAQgEC8AADsBQCAEIAopAAA3A/AEIAQpAowHIZcBIAQpApQHIZgBIAsoAoADIgIgCygC+AJGBEAgBiACEN8BIAsoAoADIQILIANBDGohAyALKAL8AiACQQZ0aiICIAQvAUA7AAAgAiCYATcACyACIJcBNwADIAIgBCkD8AQ3ABMgAiAOKQAANwAgIAJBAmogFS0AADoAACACQRhqIAQpAPUENwAAIAJBKGogDkEIaikAADcAACACQTBqIA5BEGopAAA3AAAgAkE4aiAOQRhqKQAANwAAIAsgCygCgANBAWo2AoADIAVBDGshBSAUQQFrIhQNAAsMCAsgC0HIA2pBIBCVAiAEQYgHaiALQeQAaiALQcwDaiIFKAIAIAtB0ANqIgooAgAQ/AEgBCgCiAciA0GAgICAeEYNAiAEKQKMByGXAUEDIQUMBgsgBCkCjAcimAFCIIinIQMgBCkClAchlwEgmAGnIQUMFQsgFkEFOgAADBkLIAtBzARqIQIgC0HUA2oiAyAFKAIAIAooAgAQsgEgAyALQagDaigCACALQawDaigCABDvAiALKAJMIQMgBEFAayIFIAtB0ABqIgoQswIgBEEINgLsBiAEQQI2AowHIARBtNbAADYCiAcgBEIBNwKUByAEIAU2AugGIAQgBEHoBmo2ApAHIARB8AVqIARBiAdqEIACIAQoAkAiBQRAIAQoAkQgBUEBEMgDCyACIAQpAvAFNwIAIAJBCGogBEH4BWooAgA2AgAgBEEoaiAKIAMgC0HQBGooAgAgC0HUBGooAgAgC0HYA2ooAgAgC0HcA2ooAgAQwgIgBCgCKCECIAsgBCgCLCIGNgLcBCALIAI2AtgECyAEQYgHaiACIBsgBigCDBECACAEKAKIByIFQQVHBEAgBCkCkAchlwEgBCgCjAchAyALKALYBCIKIAtB3ARqKAIAIgIoAgARAAAgAigCBCIOBEAgCiAOIAIoAggQyAMLIAsoAswEIgIEQCALKALQBCACQQEQyAMLIAVBBEcNAiALQcwEaiECIAsoAkwhAyAEQUBrIgUgC0HQAGoiChCzAiAEQQg2AuwGIARBAjYCjAcgBEHY1sAANgKIByAEQgE3ApQHIAQgBTYC6AYgBCAEQegGajYCkAcgBEHwBWogBEGIB2oQhwEgBCgCQCIFBEAgBCgCRCAFQQEQyAMLIAIgBCkC8AU3AgAgAkEIaiAEQfgFaigCADYCACAEQSBqIAogAyALQdAEaigCACALQdQEaigCABDYAiAEKAIgIQIgC0HcBGogBCgCJCIGNgIAIAsgAjYC2AQMAQsgFkEGOgAADBcLIARBiAdqIAIgGyAGKAIMEQIAIAQoAogHIgVBBUcEQCAEKQKQByGXASAEKAKMByEDIAsoAtgEIgogC0HcBGooAgAiAigCABEAACACKAIEIg4EQCAKIA4gAigCCBDIAwsCfyAFQQRGBEAgBCADNgKMCSAEIJcBNwKQCSCXAUIgiKchAiALKALMBCIFBEAgCygC0AQgBUEBEMgDCyACIAsoAkQiGiALKAKQA2xGBEAglwGnIQoCQAJAAkAgGgRAIAtBtANqKAIAIRggC0G4A2ooAgBBDGwhECACQbABayECIAtB+AJqIRQgBEHNBGohESAEQZwHaiEGIARBiAdqQQFyIRUgBAJ/A0AgAiIFQbABaiICIBBFDQEaAkAgAkGwAU0EQCAFRQ0BDAcLIAosALABQb9/TA0GCyAKLABYQb9/TA0EIAsoAkghAiAEQegGaiIOIBgQswJBsZXCAC0AABpB2ABBARC9AyIgRQ1TICAgCkHYABDmAyEgIARB2AA2AvgFIAQgIDYC9AUgBEHYADYC8AVBsZXCAC0AABpB2ABBARC9AyIgRQ1TICAgCkHYAGpB2AAQ5gMhICAEQdgANgJIIAQgIDYCRCAEQdgANgJAIARBiAdqIAIgDiAEQfAFaiAEQUBrIgIQNiAELQCIBw0DIAJBAmoiDiAVQQJqLQAAOgAAIARBwARqIgJBCGogBkEIaikAADcDACACQRBqIAZBEGopAAA3AwAgAkEYaiAGQRhqKQAANwMAIAJBIGogBkEgaikAADcDACACQSVqIAZBJWopAAA3AAAgBCAVLwAAOwFAIAQgBikAADcDwAQgBCkCjAchlwEgBCkClAchmAEgCygCgAMiAiALKAL4AkYEQCAUIAIQ3wEgCygCgAMhAgsgCygC/AIgAkEGdGoiAiAELwFAOwAAIAIgmAE3AAsgAiCXATcAAyACIAQpA8AENwATIAIgESkAADcAICACQQJqIA4tAAA6AAAgAkEYaiAEKQDFBDcAACACQShqIBFBCGopAAA3AAAgAkEwaiARQRBqKQAANwAAIAJBOGogEUEYaikAADcAAEEBIQIgCyALKAKAA0EBajYCgAMgBQRAIAVBAEgNP0GxlcIALQAAGiAFQQEQvQMiAkUNUwsgAiAKQbABaiAFEOYDIAMEQCAKIANBARDIAwsgGEEMaiEYIBBBDGshECAFQbABayECIAUhAyEKIBpBAWsiGg0ACyACQbABaiIDCzYClAkgBCADNgKMCSAEIAo2ApAJCyADBEAgCiADQQEQyAMLIAsoAtQDIgIEQCALKALYAyACQQEQyAMLIAsoAsgDIgJFDQkgCygCzAMgAkEBEMgDDAkLIAQgAzYCjAkgBCAKNgKQCSAEIAVBsAFqNgKUCSAEKQKUByGXASAEKQKMByKYAachBSADIQIgmAFCIIinIQMgBEGMCWoMBAsgCkGwAUEAQdgAQciuwAAQuQMACyAKIAVBsAFqQQBBsAFByK7AABC5AwALIARBiAdqQYTXwABBIhC8AiAEKQKMByGXAUEAIQUgAyECIAQoAogHIQMgBEGMCWoMAQsgCygCzAQhAiALQcwEagsgAkUNASgCBCACQQEQyAMMAQsgFkEHOgAADBYLIAsoAtQDIgJFDQAgCygC2AMgAkEBEMgDCyALKALIAyICRQ0PIAsoAswDIAJBARDIAwwPC0EAIQUgBEGIB2ogCygCRBCOAiAEKAKIBwRAIAQoAowHIgBFDTIMQQsgBCgCjAchCiAEKAKQByECIAtB6ANqIgNBADYCACALQeQDaiIQIAI2AgAgCyAKNgLgAwJAIAsoAkQiCkUNACALQYADaigCACIORQ0AIAtB4ANqIQYgC0H8AmooAgAiAiAOQQZ0aiERIAtBhANqIRUgBEGYB2ohFCAKQQFrIQoDQCAEQfAFaiIFQRhqIAJBGGopAAA3AwAgBUEQaiACQRBqKQAANwMAIAVBCGogAkEIaikAADcDACAEIAIpAAA3A/AFIARBQGsiDkEYaiACQThqKQAANwMAIA5BEGogAkEwaikAADcDACAOQQhqIAJBKGopAAA3AwAgBCACKQAgNwNAIARBiAdqIAUgDiALKAJIECUgBCkDkAchlwEgBCkDiAchmAEgBCgC6AciDkGAgICAeEYNAyAEQaAFaiAUQdAAEOYDGiAEKQLsByGZASALKAKMAyIFIAsoAoQDRgRAIBUgBRDgASALKAKMAyEFCyALKAKIAyAFQeAAbGoiBSCXATcACCAFIJgBNwAAIAVBEGogBEGgBWpB0AAQ5gMaIAsgCygCjANBAWo2AowDIAMoAgAiBSALKALgA0YEQCAGIAUQ1wEgAygCACEFCyAQKAIAIAVBDGxqIgUgmQE3AgQgBSAONgIAIAMgAygCAEEBaiIFNgIAIAoEQCAKQQFrIQogESACQUBrIgJHDQELCyALQeQDaigCACECCyAEQYgHaiIDIAIgBRA1IAtB9ANqIgIgA0EIaigCADYCACALIAQpAogHNwLsAyALKAJMIQUgBEHwBWoiCiALQdAAaiIOELMCIARBzABqQQI2AgAgBEEINgJEIARBAjYCjAcgBEH01sAANgKIByAEQgI3ApQHIAQgAigCADYCjAkgBCAEQYwJajYCSCAEIAo2AkAgBCAEQUBrNgKQByAEQegGaiADEIACIAQoAvAFIgMEQCAEKAL0BSADQQEQyAMLIAsgBCkC6AY3AswEIAtB1ARqIgMgBEHwBmooAgA2AgAgBEEYaiAOIAUgC0HQBGooAgAgAygCACALQfADaigCACACKAIAEMICIAQoAhghAiALIAQoAhwiBjYC3AQgCyACNgLYBAsgBEGIB2ogAiAbIAYoAgwRAgAgBCgCiAciBUEFRg0BIAQpApAHIZcBIAQoAowHIQMgCygC2AQiCiALQdwEaigCACICKAIAEQAAIAIoAgQiDgRAIAogDiACKAIIEMgDCyALKALMBCICBEAgCygC0AQgAkEBEMgDCyAFQQRHDQsgC0HMBGohAiALQSw2AvgDIAsgCygCREEsbDYC/AMgCygCTCEDIARB8AVqIgUgC0HQAGoiChCzAiAEQcwAakECNgIAIAQgC0H8A2o2AkggBEEINgJEIARBAjYCjAcgBEGw18AANgKIByAEQgI3ApQHIAQgBTYCQCAEIARBQGs2ApAHIARB6AZqIARBiAdqEIcBIAQoAvAFIgUEQCAEKAL0BSAFQQEQyAMLIAIgBCkC6AY3AgAgAkEIaiAEQfAGaigCADYCACAEQRBqIAogAyALQdAEaigCACALQdQEaigCABDYAiAEKAIQIQIgC0HcBGogBCgCFCIGNgIAIAsgAjYC2AQMAgsgmAFCIIinIQMgmAGnIQUMCwsgFkEIOgAADBALIARBiAdqIAIgGyAGKAIMEQIAAn8CQCAEKAKIByIFQQVHBEAgBCkCkAchlwEgBCgCjAchAyALKALYBCIKIAtB3ARqKAIAIgIoAgARAAAgAigCBCIOBEAgCiAOIAIoAggQyAMLQawEIQIgBUEERw0KIAsglwE3AoQEIAsgAzYCgAQgCygCzAQiAg0BIJcBQiCIpwwCCyAWQQk6AAAMEQsgCygC0AQgAkEBEMgDIAtBiARqKAIACyALKAJEIgMgCygC+ANsRw0CIAtBjARqIg4gAxC4AkEAIAsoAkQiA0UNABogC0GIBGoiECgCACEGIAsoAoQEIQoCQANAAkBBASEFIAsoAvgDIgIEQAJAIAIgBk8EQCACIAZGDQEMFwsgAiAKaiwAAEG/f0wNFgsgAkEASA0xQbGVwgAtAAAaIAJBARC9AyIFRQ0BCyAFIAogAhDmAyERIAYgAmshBiALKAKUBCIFIAsoAowERgRAIA4gBRDXASALKAKUBCEFCyALKAKQBCAFQQxsaiIFIAI2AgggBSARNgIEIAUgAjYCAEEBIQUgCyALKAKUBEEBajYClAQgBgRAIAZBAEgNMUGxlcIALQAAGiAGQQEQvQMiBUUNQQsgBSACIApqIAYQ5gMhCiALKAKABCICBEAgCygChAQgAkEBEMgDCyALIAo2AoQEIAsgBjYCgAQgECAGNgIAIANBAWsiAw0BDAILCwxGCyALKAJECyECIAtBmARqIg4gAhC4AiALQaQEaiIQIAsoAkQQuAICQCALKAJEIhFFDQAgC0GIA2ooAgAhCiALQYwDaigCAEHgAGwhAkEAIQUgC0GUBGohFSALQZAEaiEUQQAhBgJAA0AgAkUNAiAVKAIAIgMgBk0NASAEQUBrIgMgFCgCACAFahCzAiAEQYgHaiAKIAMQVyAEKQKUByGXASAEKQKMByGYASAEKAKIByIYQYCAgIB4RwRAIAQoApwHIRogCygCoAQiAyALKAKYBEYEQCAOIAMQ1wEgCygCoAQhAwsgCygCnAQgA0EMbGoiAyCYATcCBCADIBg2AgAgCyALKAKgBEEBajYCoAQgCygCrAQiAyALKAKkBEYEQCAQIAMQ1wEgCygCrAQhAwsgCkHgAGohCiALKAKoBCADQQxsaiIDIBo2AgggAyCXATcCACALIAsoAqwEQQFqNgKsBCACQeAAayECIAVBDGohBSARIAZBAWoiBkcNAQwDCwsgmAFCIIinIQMgmAGnIQUMBwsgBiADQdzXwAAQtAIACyALQcwEaiEDIARBiAdqIgIgC0GcBGooAgAgC0GgBGooAgAQNSALQbgEaiIFIAJBCGoiCigCADYCACALIAQpAogHNwKwBCACIAtBqARqKAIAIAtBrARqKAIAEDUgC0HEBGogCigCADYCACALIAQpAogHNwK8BCALKAJMIQogBEHwBWoiDiALQdAAaiIQELMCIARBzABqQQI2AgAgBEEINgJEIARBAjYCjAcgBEHM18AANgKIByAEQgI3ApQHIAQgBSgCADYCjAkgBCAEQYwJajYCSCAEIA42AkAgBCAEQUBrNgKQByAEQegGaiACEIACIAQoAvAFIgIEQCAEKAL0BSACQQEQyAMLIAMgBCkC6AY3AgAgA0EIaiAEQfAGaigCADYCACAEQQhqIBAgCiALQdAEaigCACALQdQEaigCACALQbQEaigCACAFKAIAEMICIAQoAgghAiALQdwEaiAEKAIMIgY2AgAgCyACNgLYBAsgBEGIB2ogAiAbIAYoAgwRAgAgBCgCiAciBUEFRwRAIAQpApAHIZcBIAQoAowHIQMgCygC2AQiCiALQdwEaigCACICKAIAEQAAIAIoAgQiDgRAIAogDiACKAIIEMgDCyALKALMBCICBEAgCygC0AQgAkEBEMgDCyAFQQRHDQMgC0HMBGohAiALKAJMIQMgBEHwBWoiBSALQdAAaiIKELMCIARBzABqQQI2AgAgBEEINgJEIARBAjYCjAcgBEGc2MAANgKIByAEQgI3ApQHIAQgC0HEBGoiDigCADYCjAkgBCAEQYwJajYCSCAEIAU2AkAgBCAEQUBrNgKQByAEQegGaiAEQYgHahCHASAEKALwBSIFBEAgBCgC9AUgBUEBEMgDCyACIAQpAugGNwIAIAJBCGogBEHwBmooAgA2AgAgBCAKIAMgC0HQBGooAgAgC0HUBGooAgAgC0HABGooAgAgDigCABDCAiAEKAIAIQIgC0HcBGogBCgC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ASgC0AshJgJAAkACQAJAAn8CQAJAAkACQAJAAn8CQAJAAn4CQAJAAkACQAJAAkACfwJAAn8CQAJAAkACQCABLQDtAkEBaw4EBwIKAQALIAFBAToA7AJBAiEMQX8gASgC0AIiCiABKALUAiIFRyAFIApLG0H/AXEOAhIIAgsgAUGMBGohGgJAIAEtAIwEQQFrDgQHAQQOAAsgASgCjAMhCiABKAKEAyEMIAEoAogDDAILAAsgAUEAOgDsAiABQQA6AIwEIAEgCjYCjAMgASABKQPYAjcD8AIgASABQbgCaiIMNgKEAyABQfgCaiABQeACaikDADcDACABQYADaiABQegCaigCADYCACABIAE2AogDIAFBjARqIRogAQshAiABQQE6AI0EIAEgCjYCmAMgASACNgKUAyABIAw2ApADIAFBgAY2ArADIAEgASkC8AI3ApwDIAFBpANqIAFB+AJqKQIANwIAIAFBrANqIAFBgANqKAIANgIAQQAhCkGxlcIALQAAGkGAwAFBBBC9AyIMRQ1AA0AgCiAMaiICQgA3AgAgAkEYakIANwIAIAJBEGpCADcCACACQQhqQgA3AgAgAkEgakIANwIAIAJBKGpCADcCACACQTBqQgA3AgAgAkE4akIANwIAIAJBQGtCADcCACACQcgAakIANwIAIAJB0ABqQgA3AgAgAkHYAGpCADcCACACQeAAakIANwIAIAJB6ABqQgA3AgAgAkHwAGpCADcCACACQfgAakIANwIAIAJBmAFqQgA3AgAgAkGQAWpCADcCACACQYgBakIANwIAIAJBgAFqQgA3AgAgAkG4AWpCADcCACACQbABakIANwIAIAJBqAFqQgA3AgAgAkGgAWpCADcCACACQcABakIANwIAIAJByAFqQgA3AgAgAkHQAWpCADcCACACQdgBakIANwIAIAJB4AFqQgA3AgAgAkHoAWpCADcCACACQfABakIANwIAIAJB+AFqQgA3AgAgAkGAAmpCADcCACACQYgCakIANwIAIAJBkAJqQgA3AgAgAkGYAmpCADcCACACQbgCakIANwIAIAJBsAJqQgA3AgAgAkGoAmpCADcCACACQaACakIANwIAIAJB2AJqQgA3AgAgAkHQAmpCADcCACACQcgCakIANwIAIAJBwAJqQgA3AgAgAkH4AmpCADcCACACQfACakIA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DEEAIQojAEGAB2siCSQAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/An8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAIAFB8AJqIgctAGhBAWsOBAMFAAQBCyAHKAJ4IQIgBygCfAwBCyAHQQE6AGkgB0GABjYCQCAHIAcoAhQ2AiAgByAHKQIYNwIkIAcgBykCADcCLCAHQTRqIAdBCGopAgA3AgAgB0E8aiAHQRBqKAIANgIAQbGVwgAtAAAaQYDAAUEEEL0DIgNFDYwBA0AgAyAIaiICQgA3AgAgAkEYakIANwIAIAJBEGpCADcCACACQQhqQgA3AgAgAkEgakIANwIAIAJBKGpCADcCACACQTBqQgA3AgAgAkE4akIANwIAIAJBQGtCADcCACACQcgAakIANwIAIAJB0ABqQgA3AgAgAkHYAGpCADcCACACQeAAakIANwIAIAJB6ABqQgA3AgAgAkHwAGpCADcCACACQfgAakIANwIAIAJBmAFqQgA3AgAgAkGQAWpCADcCACACQYgBakIANwIAIAJBgAFqQgA3AgAgAkG4AWpCADcCACACQbABakIANwIAIAJBqAFqQgA3AgAgAkGgAWpCADcCACACQcABakIANwIAIAJByAFqQgA3AgAgAkHQAWpCADcCACACQdgBakIANwIAIAJB4AFqQgA3AgAgAkHoAWpCADcCACACQfABakIANwIAIAJB+AFqQgA3AgAgAkGAAmpCADcCACACQYgCakIANwIAIAJBkAJqQgA3AgAgAkGYAmpCADcCACACQbgCakIANwIAIAJBsAJqQgA3AgAgAkGoAmpCADcCACACQaACakIANwIAIAJB2AJqQgA3AgAgAkHQAmpCADcCACACQcgCakIANwIAIAJBwAJqQgA3AgAgAkH4AmpCADcCACACQfACakIANwIAIAJB6AJqQgA3AgAgAkHgAmpCADcCACACQZgDakIANwIAIAJBkANqQgA3AgAgAkGIA2pCADcCACACQYADakIANwIAIAhBoANqIghB4L8B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DBILIAIoAowHIgMgAkGQB2ooAgAiASgCABEAAEHgAiEIIAEoAgQiCkUNDyADIAogASgCCBDIAwwPCyACKAKMByIDIAJBkAdqKAIAIgEoAgARAABB4AIhCCABKAIEIgpFDQ4gAyAKIAEoAggQyAMMDgsgAigCjAciAyACQZAHaigCACIBKAIAEQAAQeACIQggASgCBCIKRQ0CIAMgCiABKAIIEMgDDAILIAIoAowHIgMgAkGQB2ooAgAiASgCABEAAEHgAiEIIAEoAgQiCkUNASADIAogASgCCBDIAwwBCyACKAKMByIDIAJBkAdqKAIAIgEoAgARAAAgASgCBCIKBEAgAyAKIAEoAggQyAMLQdACIQggAigCgAciAUUNACACKAKEByABQQEQyAMLIAggDGoiASgCACIDBEAgASgCBCADQQEQyAMLIAIoAtwGIgEEQCACKALgBiABQQEQyAMLIAJB0AZqENwCIAIoAtAGIgEEQCACKALUBiABQQxsQQQQyAMLIAIoAsQGIgEEQCACKALIBiABQdUAbEEBEMgDCyACQbgGahDcAkGMAiEIIAIoArgGIgFFDQogAigCvAYgAUEMbEEEEMgDDAoLAkACQAJAIAItAIwEDgUAFhYBAhYLIAIoAvACIgFFDRUgAigC9AIgAUEBEMgDDBULIAIoAqgEIgMgAkGsBGooAgAiASgCABEAACABKAIEIgwEQCADIAwgASgCCBDIAwsgAigCnAQiAQRAIAIoAqAEIAFBARDIAwsgAkGQBGohDAwICyACQZAEaiEMAkAgAi0AyAsOBAgJCQAJCyACQbAEaiEMAkACQAJAAkACQAJAAkACQAJAAkACQCACLQDYCA4MEhMTAAECAwQGBwgJEwsgAkHcCGohAQJAAkACQAJAAkACQCACLQDMCg4FABYWAQIWCyABKAIAIgFFDRUgAigC4AggAUEBEMgDDBULIAIoAugKIgwgAkHsCmooAgAiAygCABEAAEH0ASEIQYACIRAgAygCBCIFRQ0BIAwgBSADKAIIEMgDDAELIAJB2ApqIQgCQCACLQDECw4EAgMDAAMLIAIoArwLIgwgAkHAC2ooAgAiAygCABEAACADKAIEIgUEQCAMIAUgAygCCBDIAwsgAigCsAsiAwRAIAIoArQLIANBARDIAwtBqAIhCEG8AiEQIAIoAqQLIgNFDQAgAigCqAsgA0EBEMgDCyABIBBqIgMoAgAiDARAIAMoAgQgDEEBEMgDCyABIAhqIQgLIAgoAgAiAUUNACAIKAIEIAFBARDIAwsgAigCwAoiAQRAIAIoAsQKIAFBARDIAwsgAkGoCWoQtwIgAigCnAkiAQRAIAIoAqAJIAFB+ABsQQQQyAMLIAItAM0KRQ0PIAIoAogJIgFFDQ8gAigCjAkgAUEBEMgDIAJBADoAzQoMEAsgAigC6AgiAyACQewIaigCACIBKAIAEQAAQawEIQggASgCBCIFRQ0NIAMgBSABKAIIEMgDDA0LIAIoAtwIIgMgAkHgCGooAgAiASgCABEAACABKAIEIgVFDQsgAyAFIAEoAggQyAMMCwsgAigC6AgiAyACQewIaigCACIBKAIAEQAAIAEoAgQiBUUNASADIAUgASgCCBDIAwwBCyACKALoCCIDIAJB7AhqKAIAIgEoAgARAAAgASgCBCIFRQ0AIAMgBSABKAIIEMgDCyACKALcCCIBBEAgAigC4AggAUEBEMgDCyACKALkByIBBEAgAigC6AcgAUEBEMgDCyACKALYByIBRQ0HIAIoAtwHIAFBARDIAwwHCyACKALoCCIDIAJB7AhqKAIAIgEoAgARAABBrAQhCCABKAIEIgVFDQUgAyAFIAEoAggQyAMMBQsgAigC6AgiAyACQewIaigCACIBKAIAEQAAQawEIQggASgCBCIFRQ0EIAMgBSABKAIIEMgDDAQLIAIoAugIIgMgAkHsCGooAgAiASgCABEAACABKAIEIgVFDQEgAyAFIAEoAggQyAMMAQsgAigC6AgiAyACQewIaigCACIBKAIAEQAAIAEoAgQiBUUNACADIAUgASgCCBDIAwsgAigC3AgiAQRAIAIoAuAIIAFBARDIAwsgAigCzAgiAQRAIAIoAtAIIAFBARDIAwsgAigCwAgiAQRAIAIoAsQIIAFBARDIAwsgAkG0CGoQ3AIgAigCtAgiAQRAIAIoArgIIAFBDGxBBBDIAwsgAkGoCGoQ3AIgAigCqAgiAQRAIAIoAqwIIAFBDGxBBBDIAwsgAkGcCGoQ3AJB4AMhCCACKAKcCCIBRQ0BIAIoAqAIIAFBDGxBBBDIAwwBCwJAIAIoAgBBBEYEQCACKAIIIQMCQAJAAkACQCACKAIEDgIAARgLIAMoAggiDARAIAMoAgQhAQNAIAEQtwIgAUEgaiEBIAxBAWsiDA0ACwsgAygCACIBBEAgAygCBCABQQV0QQQQyAMLIAMoAhAhAgJAIAMoAhQiBUUNACACIQEgBUEHcSIMBEADQCABQQA6AAAgAUEBaiEBIAxBAWsiDA0ACwsgBUEISQ0AIAIgBWohDANAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgDCABQQhqIgFHDQALCyADQQA2AhQgAygCDCIBQQBIDTACQCABRQ0AIAFBB3EhEEEAIQwgAUEITwRAIAFB+P///wdxIQUDQCACIAxqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBSAMQQhqIgxHDQALCyAQRQ0AIAIgDGohAQNAIAFBADoAACABQQFqIQEgEEEBayIQDQALCyADKAIMIgEEQCADKAIQIAFBARDIAwsgAygCHCECAkAgAygCICIFRQ0AIAIhASAFQQdxIgwEQANAIAFBADoAACABQQFqIQEgDEEBayIMDQALCyAFQQhJDQAgAiAFaiEMA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByAMIAFBCGoiAUcNAAsLIANBADYCICADKAIYIgFBAEgNBAJAIAFFDQAgAUEHcSEQQQAhDCABQQhPBEAgAUH4////B3EhBQNAIAIgDGoiAUEAOgAAIAFBAWpBADoAACABQQJqQQA6AAAgAUEDakEAOgAAIAFBBGpBADoAACABQQVqQQA6AAAgAUEGakEAOgAAIAFBB2pBADoAACAFIAxBCGoiDEcNAAsLIBBFDQAgAiAMaiEBA0AgAUEAOgAAIAFBAWohASAQQQFrIhANAAsLIAMoAhgiAQRAIAMoAhwgAUEBEMgDCyAlIAMoAigiAjYCACAlIAIgAygCLEEFdGo2AgQgJRDDASADQQA2AiwCQCADKAIkIgFB////P00EQCABQQV0IgVBAEgNASAFBEBBACEMA0AgAiAMaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAUgDEEIaiIMRw0ACwtBNCEBIAMoAiQiAkUNAyADKAIoIAJBBXRBARDIAyADQTRBBBDIAwwZCwwrCwwwCyADKAIIIgwEQCADKAIEIQEDQCABELcCIAFBIGohASAMQQFrIgwNAAsLIAMoAgAiAQRAIAMoAgQgAUEFdEEEEMgDCyADKAIQIQIgAygCFCIBBEAgAUEGdCEMIAIhAQNAIAEQhQEgAUFAayEBIAxBQGoiDA0ACwsgA0EANgIUIAMoAgwiAUH///8fSw0pIAFBBnQiBUEASA0BIAUEQEEAIQwDQCACIAxqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBSAMQQhqIgxHDQALC0EcIQEgAygCDCICRQ0AIAMoAhAgAkEGdEEBEMgDCyADIAFBBBDIAwwVCwwtCyACEIwCDBMLDCsLIAggDGoiASgCACIDBEAgASgCBCADQQEQyAMLIAIoAvwHIgEEQCACKAKACCABQQEQyAMLIAJB8AdqENwCIAIoAvAHIgFFDQAgAigC9AcgAUEMbEEEEMgDCyACKALMByIBRQ0AIAIoAtAHIAFBARDIAwsgAkHAB2oQ3AIgAigCwAciAQRAIAIoAsQHIAFBDGxBBBDIAwtB+AIhCCACKAK0ByIBRQ0AIAIoArgHIAFBARDIAwsgCCAMaiIBKAIAIgMEQCABKAIEIANBARDIAwsgAigClAciAQRAIAIoApgHIAFB4ABsQQEQyAMLIAIoAogHIgEEQCACKAKMByABQQZ0QQEQyAMLIAJB9ARqELcCDAELIAJBADoAzQoLIAJB4ARqIQwLIAwoAgAiAUUNACAMKAIEIAFBARDIAwsgAkHsA2oQtwIgAigCwAMiAQRAIAIoAsQDIAFBARDIAwsgAigCvAMiCARAIAIoArgDIQwDQCAMELcCIAxBIGohDCAIQQFrIggNAAsLIAIoArQDIgEEQCACKAK4AyABQQV0QQQQyAMLAkAgAi0AjQRFDQAgAigCnAMiAUUNACACKAKgAyABQQEQyAMgAkEAOgCNBAwLCyACQQA6AI0EDAoLIAggDGoiASgCACIDBEAgASgCBCADQQEQyAMLIAIoApgGIgEEQCACKAKcBiABQQEQyAMLIAJBjAZqENwCIAIoAowGIgEEQCACKAKQBiABQQxsQQQQyAMLIAIoAoAGIgEEQCACKAKEBiABQQV0QQEQyAMLIAIoAvAEIgEEQCACKAL0BCABQfgAbEEEEMgDCyACKAL8BCIBRQ0AIAIoAoAFIAFB+ABsQQQQyAMLIAJB3ARqIQwMAwsgCCgCACIDRQ0AIAgoAgQgA0EBEMgDCyACQQA6AMUHQTghCCACKALIByIDRQ0AIAIoAswHIANBARDIAwsgASAIaiIBKAIAIgMEQCABKAIEIANBARDIAwsCQCACLQDGB0UNACACKAKkByIBRQ0AIAIoAqgHIAFBARDIAyACQQA6AMYHIAJB3ARqIQwMAQsgAkEAOgDGByACQdwEaiEMCyAMKAIAIgFFDQAgDCgCBCABQQEQyAMLIAIoApgEIQECQCACKAKcBCIDRQ0AIAEhDCADQQdxIggEQANAIAxBADoAACAMQQFqIQwgCEEBayIIDQALCyADQQhJDQAgASADaiEDA0AgDEEAOgAAIAxBADoAASAMQQA6AAIgDEEAOgADIAxBADoABCAMQQA6AAUgDEEAOgAGIAxBADoAByADIAxBCGoiDEcNAAsLIAJBADYCnAQCQCACKAKUBCIDQQBOBEACQCADRQ0AIANBB3EhEEEAIQggA0EITwRAIANB+P///wdxIQwDQCABIAhqIgNBADoAACADQQFqQQA6AAAgA0ECakEAOgAAIANBA2pBADoAACADQQRqQQA6AAAgA0EFakEAOgAAIANBBmpBADoAACADQQdqQQA6AAAgDCAIQQhqIghHDQALCyAQRQ0AIAEgCGohDANAIAxBADoAACAMQQFqIQwgEEEBayIQDQALCyACKAKUBCIBBEAgAigCmAQgAUEBEMgDCyACKAKMBCEBAkAgAigCkAQiA0UNACABIQwgA0EHcSIIBEADQCAMQQA6AAAgDEEBaiEMIAhBAWsiCA0ACwsgA0EISQ0AIAEgA2ohAwNAIAxBADoAACAMQQA6AAEgDEEAOgACIAxBADoAAyAMQQA6AAQgDEEAOgAFIAxBADoABiAMQQA6AAcgAyAMQQhqIgxHDQALCyACQQA2ApAEIAIoAogEIgNBAEgNAQJAIANFDQAgA0EHcSEQQQAhCCADQQhPBEAgA0H4////B3EhDANAIAEgCGoiA0EAOgAAIANBAWpBADoAACADQQJqQQA6AAAgA0EDakEAOgAAIANBBGpBADoAACADQQVqQQA6AAAgA0EGakEAOgAAIANBB2pBADoAACAMIAhBCGoiCEcNAAsLIBBFDQAgASAIaiEMA0AgDEEAOgAAIAxBAWohDCAQQQFrIhANAAsLIAIoAogEIgxFDQMgAkGMBGohCAwCCwwdCwwcCyAIKAIAIAxBARDIAwsgAkGsCWoQtwJB3AAhDCACKALcAyIBRQ0AIAIoAuADIAFBARDIAwsgBSAMaiIBKAIAIgMEQCABKAIEIANBARDIAwsgAigCwAMiAQRAIAIoAsQDIAFBARDIAwsgAigCvAMiCARAIAIoArgDIQwDQCAMELcCIAxBIGohDCAIQQFrIggNAAsLIAIoArQDIgEEQCACKAK4AyABQQV0QQQQyAMLAkAgAi0A2QNFDQAgAigCnAMiAUUNACACKAKgAyABQQEQyAMgAkEAOgDZAwwBCyACQQA6ANkDCyAfIARBAWoiBEcNAAsgHiAfQdALbEEIEMgDDAMLQYj2wAAQzwMAC0EEIAFB6JXCACgCACIAQbwBIAAbEQEAAAsgJ0EANgIIICdCgICAgMAANwIAIB1CCDcCBAsgJUEgaiQAIA8oAoACIgFBgICAgHhHBEAgDygChAIhAyAPKAKIAiENIB0QGUEAISEgD0EANgJIIA9CgICAgMAANwJAIA8gAyANQQR0aiImNgKMAiAPIAE2AogCIA8gAzYChAIgDyADNgKAAiANRQ0EA0ACQCADKAIIIQkgAygCBCENIAMoAgAiDEEERwRAIAxBBUcNASADQRBqISYMBgsgDygCQCAhRgRAIwBBIGsiASQAICFBAWoiDEUNEEEEIQVBBCAPQUBrIgIoAgAiBEEBdCIKIAwgCiAMSxsiDCAMQQRNGyIKQQN0IQ4gDEGAgICAAUlBAnQhDAJAIARFBEBBACEFDAELIAEgBEEDdDYCHCABIAIoAgQ2AhQLIAEgBTYCGCABQQhqIAwgDiABQRRqEPoBIAEoAggEQCABKAIMIgBFDREgACABKAIQQeiVwgAoAgAiAEG8ASAAGxEBAAALIAEoAgwhDCACIAo2AgAgAiAMNgIEIAFBIGokACAPKAJIISELIA8oAkQgIUEDdGoiASAJNgIEIAEgDTYCACAPIA8oAkhBAWoiITYCSCAmIANBEGoiA0cNAQwFCwsgDyADQRBqNgKEAiADKAIMISYgD0GAAmoQLyAPQUBrIgEoAggiAwRAIAEoAgQhAQNAIAEoAgAgAUEEaigCABA6IAFBCGohASADQQFrIgMNAAsLIA8oAkAiAUUNAiAPKAJEIAFBA3RBBBDIAwwCCyBFQQQ6AAAMBQsgD0EAOgBAIA9BADoAQSAPQQA6AEIgD0EAOgBDIA9BADoARCAPQQA6AEUgD0EAOgBGIA9BADoARyAPQQA6AEggD0EAOgBJIA9BADoASiAPQQA6AEsgD0EAOgBMIA9BADoATSAPQQA6AE4gD0EAOgBPIA9BADoAoAMgD0EAOgChAyAPQQA6AKIDIA9BADoAowMgD0EAOgCkAyAPQQA6AKUDIA9BADoApgMgD0EAOgCnAyAPQQA6AKgDIA9BADoAqQMgD0EAOgCqAyAPQQA6AKsDIA9BADoArAMgD0EAOgCtAyAPQQA6AK4DIA9BADoArwMLAkAgAC0ATUUNACAAKAJoIgFFDQAgACgCbCABQRhsQQQQyAMLIABBADoATQJAIAAtAE5FDQAgACgCXCIBRQ0AIAAoAmAgAUG4AmxBCBDIAwsgAEEAOgBOAkAgAC0AT0UNACAAKAJQIgFFDQAgACgCVCABQQJ0QQQQyAMLIABBADoATyAAQaABahDSAQwCCyAPICY2AoQCCyAPQYACaiIBEC8gAUEIaiAPQcgAaigCADYCACAPIA8pAkA3A4ACIAAoAjAiCSgCFCIMBEAgCSgCECEDA0AgAygCACADQQRqKAIAEDogA0EIaiEDIAxBAWsiDA0ACwsgCSgCDCIBBEAgCSgCECABQQN0QQQQyAMLIAAoAjAiASAPKQOAAjcCDCABQRRqIA9BiAJqKAIANgIAIA9BgAJqIABBoAFqQegAEOYDGiAAKAIwIgEoAiRBgICAgHhHBH8gAUEkahDSASAAKAIwBSABC0EkaiAPQYACakHoABDmAxogAEEAOgBPIABBADsATUEEIQwLIAAoAjgiAQRAIAAoAjwgAUEBEMgDCyBFQQE6AAAgDEEFRg0AIAxBBEcEQCAPQQE2AoQCIA9BwPDAADYCgAIgD0IBNwKMAiAPQQs2AqQDIA8gJjYCrAEgDyAJNgKoASAPIA02AqQBIA8gDDYCoAEgDyAPQaADajYCiAIgDyAPQaABaiIBNgKgAyAPQUBrIA9BgAJqEIcBIA8oAqABQQRHBEAgARCMAgsgDygCQCEBIA8oAkQiAiAPKAJIEAEhAyABRQ0DIAIgAUEBEMgDDAMLIAAoAhAoAiRBgICAgHhHDQFByPDAAEEREAEhAwwCC0EDIQMgAEEDOgCMAiAAQQM6AIgCQQEhDAwFC0IAEAIhASAAQQE6AIwCIABBAToAiAIgDyABNgKgASAPQSA2AoACIA9BEGogAEGQAmogD0GAAmogD0GgAWoQ9AIgDygCEA0CAkAgDygCFCIBQSRJDQAgARAAIA8oAoACIgFBJEkNACABEAALIA8oAqABIgFBJEkNASABEAAMAQsgAEEBOgCMAiAAQQE6AIgCIA8gAzYCoAEgD0EgNgKAAiAPQQhqIABBlAJqIA9BgAJqIA9BoAFqEPQCIA8oAggNAgJAIA8oAgwiAUEkSQ0AIAEQACAPKAKAAiIBQSRJDQAgARAACyAPKAKgASIBQSRJDQAgARAACyAAKAKQAiIBQSRPBEAgARAAC0EBIQNBACEMIAAoApQCIgFBJEkNAiABEAAMAgtB+ZvBAEEVENgDAAtB+ZvBAEEVENgDAAsgACADOgCoBCAPQeADaiQAIAwPCxCFAwALQZSXwQAQzwMAC0EBIANB6JXCACgCACIAQbwBIAAbEQEAAAtBASAZQeiVwgAoAgAiAEG8ASAAGxEBAAALQQQgGUHolcIAKAIAIgBBvAEgABsRAQAAC0EIIBlB6JXCACgCACIAQbwBIAAbEQEAAAtBBCADQeiVwgAoAgAiAEG8ASAAGxEBAAALQfiVwQBBLUGEl8EAEPUCAAtBCEH4C0HolcIAKAIAIgBBvAEgABsRAQAAC0EBQRpB6JXCACgCACIAQbwBIAAbEQEAAAtBAUGAAkHolcIAKAIAIgBBvAEgABsRAQAAC0EEIAVB6JXCACgCACIAQbwBIAAbEQEAAAtBBEE0QeiVwgAoAgAiAEG8ASAAGxEBAAALQQFBwABB6JXCACgCACIAQbwBIAAbEQEAAAtBAUEdQeiVwgAoAgAiAEG8ASAAGxEBAAALIAAgBCgCkAdB6JXCACgCACIAQbwBIAAbEQEAAAtBASAGQeiVwgAoAgAiAEG8ASAAGxEBAAALQQRBHEHolcIAKAIAIgBBvAEgABsRAQAAC0EBQSBB6JXCACgCACIAQbwBIAAbEQEAAAtBBEGAwAFB6JXCACgCACIAQbwBIAAbEQEAAAtBASAFQeiVwgAoAgAiAEG8ASAAGxEBAAALQQFB2ABB6JXCACgCACIAQbwBIAAbEQEAAAtBBEHgAEHolcIAKAIAIgBBvAEgABsRAQAAC0EEQcwAQeiVwgAoAgAiAEG8ASAAGxEBAAALQQEgAkHolcIAKAIAIgBBvAEgABsRAQAAC88/ASF/IAAoAhwhISAAKAIYIR8gACgCFCEeIAAoAhAhHCAAKAIMISIgACgCCCEgIAAoAgQhHSAAKAIAIRsgAgRAIAEgAkEGdGohIwNAIAEoAAAiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiECAhIBxBGncgHEEVd3MgHEEHd3NqIB4gH3MgHHEgH3NqakGY36iUBGoiAyAdICBzIBtxIB0gIHFzIBtBHncgG0ETd3MgG0EKd3NqaiECIAEoAAQiBEEYdCAEQYD+A3FBCHRyIARBCHZBgP4DcSAEQRh2cnIiESAfaiADICJqIgUgHCAec3EgHnNqIAVBGncgBUEVd3MgBUEHd3NqQZGJ3YkHaiIGIAJBHncgAkETd3MgAkEKd3MgAiAbIB1zcSAbIB1xc2pqIQQgASgACCIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZyciISIB5qIAYgIGoiCSAFIBxzcSAcc2ogCUEadyAJQRV3cyAJQQd3c2pBsYj80QRrIgogBEEedyAEQRN3cyAEQQp3cyAEIAIgG3NxIAIgG3FzamohAyABKAAMIgZBGHQgBkGA/gNxQQh0ciAGQQh2QYD+A3EgBkEYdnJyIhQgHGogCiAdaiIKIAUgCXNxIAVzaiAKQRp3IApBFXdzIApBB3dzakHbyKiyAWsiDSADQR53IANBE3dzIANBCndzIAMgAiAEc3EgAiAEcXNqaiEGIAUgASgAECIFQRh0IAVBgP4DcUEIdHIgBUEIdkGA/gNxIAVBGHZyciIVaiANIBtqIg0gCSAKc3EgCXNqIA1BGncgDUEVd3MgDUEHd3NqQduE28oDaiIHIAZBHncgBkETd3MgBkEKd3MgBiADIARzcSADIARxc2pqIQUgCSABKAAUIglBGHQgCUGA/gNxQQh0ciAJQQh2QYD+A3EgCUEYdnJyIhZqIAIgB2oiCSAKIA1zcSAKc2ogCUEadyAJQRV3cyAJQQd3c2pB8aPEzwVqIgcgBUEedyAFQRN3cyAFQQp3cyAFIAMgBnNxIAMgBnFzamohAiAKIAEoABgiCkEYdCAKQYD+A3FBCHRyIApBCHZBgP4DcSAKQRh2cnIiE2ogBCAHaiIKIAkgDXNxIA1zaiAKQRp3IApBFXdzIApBB3dzakHc+oHuBmsiByACQR53IAJBE3dzIAJBCndzIAIgBSAGc3EgBSAGcXNqaiEEIA0gASgAHCINQRh0IA1BgP4DcUEIdHIgDUEIdkGA/gNxIA1BGHZyciIXaiADIAdqIg0gCSAKc3EgCXNqIA1BGncgDUEVd3MgDUEHd3NqQavCjqcFayIHIARBHncgBEETd3MgBEEKd3MgBCACIAVzcSACIAVxc2pqIQMgCSABKAAgIglBGHQgCUGA/gNxQQh0ciAJQQh2QYD+A3EgCUEYdnJyIhpqIAYgB2oiCSAKIA1zcSAKc2ogCUEadyAJQRV3cyAJQQd3c2pB6KrhvwJrIgcgA0EedyADQRN3cyADQQp3cyADIAIgBHNxIAIgBHFzamohBiAKIAEoACQiCkEYdCAKQYD+A3FBCHRyIApBCHZBgP4DcSAKQRh2cnIiGGogBSAHaiIKIAkgDXNxIA1zaiAKQRp3IApBFXdzIApBB3dzakGBto2UAWoiByAGQR53IAZBE3dzIAZBCndzIAYgAyAEc3EgAyAEcXNqaiEFIA0gASgAKCINQRh0IA1BgP4DcUEIdHIgDUEIdkGA/gNxIA1BGHZyciIZaiACIAdqIg0gCSAKc3EgCXNqIA1BGncgDUEVd3MgDUEHd3NqQb6LxqECaiIHIAVBHncgBUETd3MgBUEKd3MgBSADIAZzcSADIAZxc2pqIQIgCSABKAAsIglBGHQgCUGA/gNxQQh0ciAJQQh2QYD+A3EgCUEYdnJyIgtqIAQgB2oiCSAKIA1zcSAKc2ogCUEadyAJQRV3cyAJQQd3c2pBw/uxqAVqIgcgAkEedyACQRN3cyACQQp3cyACIAUgBnNxIAUgBnFzamohBCAKIAEoADAiCkEYdCAKQYD+A3FBCHRyIApBCHZBgP4DcSAKQRh2cnIiDGogAyAHaiIKIAkgDXNxIA1zaiAKQRp3IApBFXdzIApBB3dzakH0uvmVB2oiDyAEQR53IARBE3dzIARBCndzIAQgAiAFc3EgAiAFcXNqaiEDIA0gASgANCIHQRh0IAdBgP4DcUEIdHIgB0EIdkGA/gNxIAdBGHZyciIOaiAGIA9qIg0gCSAKc3EgCXNqIA1BGncgDUEVd3MgDUEHd3NqQYKchfkHayIHIANBHncgA0ETd3MgA0EKd3MgAyACIARzcSACIARxc2pqIQYgCSABKAA4IglBGHQgCUGA/gNxQQh0ciAJQQh2QYD+A3EgCUEYdnJyIglqIAUgB2oiByAKIA1zcSAKc2ogB0EadyAHQRV3cyAHQQd3c2pB2fKPoQZrIg8gBkEedyAGQRN3cyAGQQp3cyAGIAMgBHNxIAMgBHFzamohBSAKIAEoADwiCkEYdCAKQYD+A3FBCHRyIApBCHZBgP4DcSAKQRh2cnIiCmogAiAPaiIPIAcgDXNxIA1zaiAPQRp3IA9BFXdzIA9BB3dzakGMnZDzA2siCCAFQR53IAVBE3dzIAVBCndzIAUgAyAGc3EgAyAGcXNqaiECIA0gEUEZdyARQQ53cyARQQN2cyAQaiAYaiAJQQ93IAlBDXdzIAlBCnZzaiINaiAEIAhqIhAgByAPc3EgB3NqIBBBGncgEEEVd3MgEEEHd3NqQb+sktsBayIIIAJBHncgAkETd3MgAkEKd3MgAiAFIAZzcSAFIAZxc2pqIQQgByASQRl3IBJBDndzIBJBA3ZzIBFqIBlqIApBD3cgCkENd3MgCkEKdnNqIgdqIAMgCGoiESAPIBBzcSAPc2ogEUEadyARQRV3cyARQQd3c2pB+vCGggFrIgggBEEedyAEQRN3cyAEQQp3cyAEIAIgBXNxIAIgBXFzamohAyAPIBRBGXcgFEEOd3MgFEEDdnMgEmogC2ogDUEPdyANQQ13cyANQQp2c2oiD2ogBiAIaiISIBAgEXNxIBBzaiASQRp3IBJBFXdzIBJBB3dzakHGu4b+AGoiCCADQR53IANBE3dzIANBCndzIAMgAiAEc3EgAiAEcXNqaiEGIBAgFUEZdyAVQQ53cyAVQQN2cyAUaiAMaiAHQQ93IAdBDXdzIAdBCnZzaiIQaiAFIAhqIhQgESASc3EgEXNqIBRBGncgFEEVd3MgFEEHd3NqQczDsqACaiIIIAZBHncgBkETd3MgBkEKd3MgBiADIARzcSADIARxc2pqIQUgESAWQRl3IBZBDndzIBZBA3ZzIBVqIA5qIA9BD3cgD0ENd3MgD0EKdnNqIhFqIAIgCGoiFSASIBRzcSASc2ogFUEadyAVQRV3cyAVQQd3c2pB79ik7wJqIgggBUEedyAFQRN3cyAFQQp3cyAFIAMgBnNxIAMgBnFzamohAiASIBNBGXcgE0EOd3MgE0EDdnMgFmogCWogEEEPdyAQQQ13cyAQQQp2c2oiEmogBCAIaiIWIBQgFXNxIBRzaiAWQRp3IBZBFXdzIBZBB3dzakGqidLTBGoiCCACQR53IAJBE3dzIAJBCndzIAIgBSAGc3EgBSAGcXNqaiEEIBQgF0EZdyAXQQ53cyAXQQN2cyATaiAKaiARQQ93IBFBDXdzIBFBCnZzaiIUaiADIAhqIhMgFSAWc3EgFXNqIBNBGncgE0EVd3MgE0EHd3NqQdzTwuUFaiIIIARBHncgBEETd3MgBEEKd3MgBCACIAVzcSACIAVxc2pqIQMgFSAaQRl3IBpBDndzIBpBA3ZzIBdqIA1qIBJBD3cgEkENd3MgEkEKdnNqIhVqIAYgCGoiFyATIBZzcSAWc2ogF0EadyAXQRV3cyAXQQd3c2pB2pHmtwdqIgggA0EedyADQRN3cyADQQp3cyADIAIgBHNxIAIgBHFzamohBiAWIBhBGXcgGEEOd3MgGEEDdnMgGmogB2ogFEEPdyAUQQ13cyAUQQp2c2oiFmogBSAIaiIaIBMgF3NxIBNzaiAaQRp3IBpBFXdzIBpBB3dzakGu3Ya+BmsiCCAGQR53IAZBE3dzIAZBCndzIAYgAyAEc3EgAyAEcXNqaiEFIBMgGUEZdyAZQQ53cyAZQQN2cyAYaiAPaiAVQQ93IBVBDXdzIBVBCnZzaiITaiACIAhqIhggFyAac3EgF3NqIBhBGncgGEEVd3MgGEEHd3NqQZPzuL4FayIIIAVBHncgBUETd3MgBUEKd3MgBSADIAZzcSADIAZxc2pqIQIgFyALQRl3IAtBDndzIAtBA3ZzIBlqIBBqIBZBD3cgFkENd3MgFkEKdnNqIhdqIAQgCGoiGSAYIBpzcSAac2ogGUEadyAZQRV3cyAZQQd3c2pBuLDz/wRrIgggAkEedyACQRN3cyACQQp3cyACIAUgBnNxIAUgBnFzamohBCAaIAxBGXcgDEEOd3MgDEEDdnMgC2ogEWogE0EPdyATQQ13cyATQQp2c2oiGmogAyAIaiILIBggGXNxIBhzaiALQRp3IAtBFXdzIAtBB3dzakG5gJqFBGsiCCAEQR53IARBE3dzIARBCndzIAQgAiAFc3EgAiAFcXNqaiEDIBggDkEZdyAOQQ53cyAOQQN2cyAMaiASaiAXQQ93IBdBDXdzIBdBCnZzaiIYaiAGIAhqIgwgCyAZc3EgGXNqIAxBGncgDEEVd3MgDEEHd3NqQY3o/8gDayIIIANBHncgA0ETd3MgA0EKd3MgAyACIARzcSACIARxc2pqIQYgGSAJQRl3IAlBDndzIAlBA3ZzIA5qIBRqIBpBD3cgGkENd3MgGkEKdnNqIhlqIAUgCGoiDiALIAxzcSALc2ogDkEadyAOQRV3cyAOQQd3c2pBud3h0gJrIgggBkEedyAGQRN3cyAGQQp3cyAGIAMgBHNxIAMgBHFzamohBSAKQRl3IApBDndzIApBA3ZzIAlqIBVqIBhBD3cgGEENd3MgGEEKdnNqIgkgC2ogAiAIaiILIAwgDnNxIAxzaiALQRp3IAtBFXdzIAtBB3dzakHRxqk2aiIIIAVBHncgBUETd3MgBUEKd3MgBSADIAZzcSADIAZxc2pqIQIgDUEZdyANQQ53cyANQQN2cyAKaiAWaiAZQQ93IBlBDXdzIBlBCnZzaiIKIAxqIAQgCGoiDCALIA5zcSAOc2ogDEEadyAMQRV3cyAMQQd3c2pB59KkoQFqIgggAkEedyACQRN3cyACQQp3cyACIAUgBnNxIAUgBnFzamohBCAHQRl3IAdBDndzIAdBA3ZzIA1qIBNqIAlBD3cgCUENd3MgCUEKdnNqIg0gDmogAyAIaiIOIAsgDHNxIAtzaiAOQRp3IA5BFXdzIA5BB3dzakGFldy9AmoiCCAEQR53IARBE3dzIARBCndzIAQgAiAFc3EgAiAFcXNqaiEDIA9BGXcgD0EOd3MgD0EDdnMgB2ogF2ogCkEPdyAKQQ13cyAKQQp2c2oiByALaiAGIAhqIgsgDCAOc3EgDHNqIAtBGncgC0EVd3MgC0EHd3NqQbjC7PACaiIIIANBHncgA0ETd3MgA0EKd3MgAyACIARzcSACIARxc2pqIQYgEEEZdyAQQQ53cyAQQQN2cyAPaiAaaiANQQ93IA1BDXdzIA1BCnZzaiIPIAxqIAUgCGoiDCALIA5zcSAOc2ogDEEadyAMQRV3cyAMQQd3c2pB/Nux6QRqIgggBkEedyAGQRN3cyAGQQp3cyAGIAMgBHNxIAMgBHFzamohBSARQRl3IBFBDndzIBFBA3ZzIBBqIBhqIAdBD3cgB0ENd3MgB0EKdnNqIhAgDmogAiAIaiIOIAsgDHNxIAtzaiAOQRp3IA5BFXdzIA5BB3dzakGTmuCZBWoiCCAFQR53IAVBE3dzIAVBCndzIAUgAyAGc3EgAyAGcXNqaiECIBJBGXcgEkEOd3MgEkEDdnMgEWogGWogD0EPdyAPQQ13cyAPQQp2c2oiESALaiAEIAhqIgsgDCAOc3EgDHNqIAtBGncgC0EVd3MgC0EHd3NqQdTmqagGaiIIIAJBHncgAkETd3MgAkEKd3MgAiAFIAZzcSAFIAZxc2pqIQQgFEEZdyAUQQ53cyAUQQN2cyASaiAJaiAQQQ93IBBBDXdzIBBBCnZzaiISIAxqIAMgCGoiDCALIA5zcSAOc2ogDEEadyAMQRV3cyAMQQd3c2pBu5WoswdqIgggBEEedyAEQRN3cyAEQQp3cyAEIAIgBXNxIAIgBXFzamohAyAVQRl3IBVBDndzIBVBA3ZzIBRqIApqIBFBD3cgEUENd3MgEUEKdnNqIhQgDmogBiAIaiIOIAsgDHNxIAtzaiAOQRp3IA5BFXdzIA5BB3dzakHS7fTxB2siCCADQR53IANBE3dzIANBCndzIAMgAiAEc3EgAiAEcXNqaiEGIBZBGXcgFkEOd3MgFkEDdnMgFWogDWogEkEPdyASQQ13cyASQQp2c2oiFSALaiAFIAhqIgsgDCAOc3EgDHNqIAtBGncgC0EVd3MgC0EHd3NqQfumt+wGayIIIAZBHncgBkETd3MgBkEKd3MgBiADIARzcSADIARxc2pqIQUgE0EZdyATQQ53cyATQQN2cyAWaiAHaiAUQQ93IBRBDXdzIBRBCnZzaiIWIAxqIAIgCGoiDCALIA5zcSAOc2ogDEEadyAMQRV3cyAMQQd3c2pB366A6gVrIgggBUEedyAFQRN3cyAFQQp3cyAFIAMgBnNxIAMgBnFzamohAiAXQRl3IBdBDndzIBdBA3ZzIBNqIA9qIBVBD3cgFUENd3MgFUEKdnNqIhMgDmogBCAIaiIOIAsgDHNxIAtzaiAOQRp3IA5BFXdzIA5BB3dzakG1s5a/BWsiCCACQR53IAJBE3dzIAJBCndzIAIgBSAGc3EgBSAGcXNqaiEEIBpBGXcgGkEOd3MgGkEDdnMgF2ogEGogFkEPdyAWQQ13cyAWQQp2c2oiFyALaiADIAhqIgsgDCAOc3EgDHNqIAtBGncgC0EVd3MgC0EHd3NqQZDp0e0DayIIIARBHncgBEETd3MgBEEKd3MgBCACIAVzcSACIAVxc2pqIQMgGEEZdyAYQQ53cyAYQQN2cyAaaiARaiATQQ93IBNBDXdzIBNBCnZzaiIaIAxqIAYgCGoiDCALIA5zcSAOc2ogDEEadyAMQRV3cyAMQQd3c2pB3dzOxANrIgggA0EedyADQRN3cyADQQp3cyADIAIgBHNxIAIgBHFzamohBiAZQRl3IBlBDndzIBlBA3ZzIBhqIBJqIBdBD3cgF0ENd3MgF0EKdnNqIhggDmogBSAIaiIOIAsgDHNxIAtzaiAOQRp3IA5BFXdzIA5BB3dzakHnr7TzAmsiCCAGQR53IAZBE3dzIAZBCndzIAYgAyAEc3EgAyAEcXNqaiEFIAlBGXcgCUEOd3MgCUEDdnMgGWogFGogGkEPdyAaQQ13cyAaQQp2c2oiGSALaiACIAhqIgsgDCAOc3EgDHNqIAtBGncgC0EVd3MgC0EHd3NqQdzzm8sCayIIIAVBHncgBUETd3MgBUEKd3MgBSADIAZzcSADIAZxc2pqIQIgCkEZdyAKQQ53cyAKQQN2cyAJaiAVaiAYQQ93IBhBDXdzIBhBCnZzaiIJIAxqIAQgCGoiDCALIA5zcSAOc2ogDEEadyAMQRV3cyAMQQd3c2pB+5TH3wBrIgggAkEedyACQRN3cyACQQp3cyACIAUgBnNxIAUgBnFzamohBCANQRl3IA1BDndzIA1BA3ZzIApqIBZqIBlBD3cgGUENd3MgGUEKdnNqIgogDmogAyAIaiIOIAsgDHNxIAtzaiAOQRp3IA5BFXdzIA5BB3dzakHwwKqDAWoiCCAEQR53IARBE3dzIARBCndzIAQgAiAFc3EgAiAFcXNqaiEDIAdBGXcgB0EOd3MgB0EDdnMgDWogE2ogCUEPdyAJQQ13cyAJQQp2c2oiDSALaiAGIAhqIgsgDCAOc3EgDHNqIAtBGncgC0EVd3MgC0EHd3NqQZaCk80BaiIIIANBHncgA0ETd3MgA0EKd3MgAyACIARzcSACIARxc2pqIQYgDCAPQRl3IA9BDndzIA9BA3ZzIAdqIBdqIApBD3cgCkENd3MgCkEKdnNqIgxqIAUgCGoiByALIA5zcSAOc2ogB0EadyAHQRV3cyAHQQd3c2pBiNjd8QFqIgggBkEedyAGQRN3cyAGQQp3cyAGIAMgBHNxIAMgBHFzamohBSAOIBBBGXcgEEEOd3MgEEEDdnMgD2ogGmogDUEPdyANQQ13cyANQQp2c2oiDmogAiAIaiIPIAcgC3NxIAtzaiAPQRp3IA9BFXdzIA9BB3dzakHM7qG6AmoiCCAFQR53IAVBE3dzIAVBCndzIAUgAyAGc3EgAyAGcXNqaiECIAsgEUEZdyARQQ53cyARQQN2cyAQaiAYaiAMQQ93IAxBDXdzIAxBCnZzaiILaiAEIAhqIhAgByAPc3EgB3NqIBBBGncgEEEVd3MgEEEHd3NqQbX5wqUDaiIIIAJBHncgAkETd3MgAkEKd3MgAiAFIAZzcSAFIAZxc2pqIQQgEkEZdyASQQ53cyASQQN2cyARaiAZaiAOQQ93IA5BDXdzIA5BCnZzaiIRIAdqIAMgCGoiByAPIBBzcSAPc2ogB0EadyAHQRV3cyAHQQd3c2pBs5nwyANqIgggBEEedyAEQRN3cyAEQQp3cyAEIAIgBXNxIAIgBXFzamohAyAUQRl3IBRBDndzIBRBA3ZzIBJqIAlqIAtBD3cgC0ENd3MgC0EKdnNqIhIgD2ogBiAIaiIPIAcgEHNxIBBzaiAPQRp3IA9BFXdzIA9BB3dzakHK1OL2BGoiCCADQR53IANBE3dzIANBCndzIAMgAiAEc3EgAiAEcXNqaiEGIBVBGXcgFUEOd3MgFUEDdnMgFGogCmogEUEPdyARQQ13cyARQQp2c2oiFCAQaiAFIAhqIhAgByAPc3EgB3NqIBBBGncgEEEVd3MgEEEHd3NqQc+U89wFaiIIIAZBHncgBkETd3MgBkEKd3MgBiADIARzcSADIARxc2pqIQUgFkEZdyAWQQ53cyAWQQN2cyAVaiANaiASQQ93IBJBDXdzIBJBCnZzaiIVIAdqIAIgCGoiByAPIBBzcSAPc2ogB0EadyAHQRV3cyAHQQd3c2pB89+5wQZqIgggBUEedyAFQRN3cyAFQQp3cyAFIAMgBnNxIAMgBnFzamohAiATQRl3IBNBDndzIBNBA3ZzIBZqIAxqIBRBD3cgFEENd3MgFEEKdnNqIhYgD2ogBCAIaiIPIAcgEHNxIBBzaiAPQRp3IA9BFXdzIA9BB3dzakHuhb6kB2oiDCACQR53IAJBE3dzIAJBCndzIAIgBSAGc3EgBSAGcXNqaiEEIBdBGXcgF0EOd3MgF0EDdnMgE2ogDmogFUEPdyAVQQ13cyAVQQp2c2oiEyAQaiADIAxqIhAgByAPc3EgB3NqIBBBGncgEEEVd3MgEEEHd3NqQe/GlcUHaiIMIARBHncgBEETd3MgBEEKd3MgBCACIAVzcSACIAVxc2pqIQMgGkEZdyAaQQ53cyAaQQN2cyAXaiALaiAWQQ93IBZBDXdzIBZBCnZzaiIXIAdqIAYgDGoiByAPIBBzcSAPc2ogB0EadyAHQRV3cyAHQQd3c2pB7I/e2QdrIgsgA0EedyADQRN3cyADQQp3cyADIAIgBHNxIAIgBHFzamohBiAYQRl3IBhBDndzIBhBA3ZzIBpqIBFqIBNBD3cgE0ENd3MgE0EKdnNqIhEgD2ogBSALaiIPIAcgEHNxIBBzaiAPQRp3IA9BFXdzIA9BB3dzakH4++OZB2siEyAGQR53IAZBE3dzIAZBCndzIAYgAyAEc3EgAyAEcXNqaiEFIBlBGXcgGUEOd3MgGUEDdnMgGGogEmogF0EPdyAXQQ13cyAXQQp2c2oiEiAQaiACIBNqIhAgByAPc3EgB3NqIBBBGncgEEEVd3MgEEEHd3NqQYaAhPoGayITIAVBHncgBUETd3MgBUEKd3MgBSADIAZzcSADIAZxc2pqIQIgCUEZdyAJQQ53cyAJQQN2cyAZaiAUaiARQQ93IBFBDXdzIBFBCnZzaiIRIAdqIAQgE2oiBCAPIBBzcSAPc2ogBEEadyAEQRV3cyAEQQd3c2pBlaa+3QVrIhQgAkEedyACQRN3cyACQQp3cyACIAUgBnNxIAUgBnFzamohByAJIApBGXcgCkEOd3MgCkEDdnNqIBVqIBJBD3cgEkENd3MgEkEKdnNqIA9qIAMgFGoiAyAEIBBzcSAQc2ogA0EadyADQRV3cyADQQd3c2pBibiZiARrIg8gB0EedyAHQRN3cyAHQQp3cyAHIAIgBXNxIAIgBXFzamohCSAKIA1BGXcgDUEOd3MgDUEDdnNqIBZqIBFBD3cgEUENd3MgEUEKdnNqIBBqIAYgD2oiBiADIARzcSAEc2ogBkEadyAGQRV3cyAGQQd3c2pBjo66zANrIgogCSACIAdzcSACIAdxcyAbaiAJQR53IAlBE3dzIAlBCndzamohGyAJIB1qIR0gBSAcaiAKaiEcIAcgIGohICAGIB5qIR4gAiAiaiEiIAMgH2ohHyAEICFqISEgIyABQUBrIgFHDQALCyAAICE2AhwgACAfNgIYIAAgHjYCFCAAIBw2AhAgACAiNgIMIAAgIDYCCCAAIB02AgQgACAbNgIAC+AyAhJ/An4jAEGQA2siAiQAIAJBwAJqIgRBIGoiAyABQSBqKQIANwMAIARBGGoiBSABQRhqKQIANwMAIARBEGoiCyABQRBqKQIANwMAIARBCGoiDCABQQhqKQIANwMAIAIgASkCADcDwAIgAkHoAmoiBiAEEEMgAyAGQSBqIgcpAgAiFDcDACAFIAZBGGoiCCkCACIVNwMAIAJBmAJqIg1BCGoiDyAGQQhqIgkpAgA3AwAgDUEQaiIQIAZBEGoiCikCADcDACANQRhqIhEgFTcDACANQSBqIhIgFDcDACACIAIpAugCIhQ3A8ACIAIgFDcDmAIgAiANIAEQOyADIAJBIGopAgA3AwAgBSACQRhqKQIANwMAIAsgAkEQaikCADcDACAMIAJBCGopAgA3AwAgAiACKQIANwPAAiAGIAQQQyADIAcpAgAiFDcDACAFIAgpAgAiFTcDACAPIAkpAgA3AwAgECAKKQIANwMAIBEgFTcDACASIBQ3AwAgAiACKQLoAiIUNwPAAiACIBQ3A5gCIAJBKGoiDiANIAEQOyADIA5BIGopAgA3AwAgBSAOQRhqKQIANwMAIAsgDkEQaikCADcDACAMIA5BCGopAgA3AwAgAiACKQIoNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCACIUNwMAIAUgCCkCACIVNwMAIA8gCSkCADcDACAQIAopAgA3AwAgESAVNwMAIBIgFDcDACACIAIpAugCIhQ3A8ACIAIgFDcDmAIgBCANIA4QOyAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCACIUNwMAIAUgCCkCACIVNwMAIA8gCSkCADcDACAQIAopAgA3AwAgESAVNwMAIBIgFDcDACACIAIpAugCIhQ3A8ACIAIgFDcDmAIgBCANIA4QOyAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIAIhQ3AwAgBSAIKQIAIhU3AwAgDyAJKQIANwMAIBAgCikCADcDACARIBU3AwAgEiAUNwMAIAIgAikC6AIiFDcDwAIgAiAUNwOYAiACQdAAaiIOIA0gAhA7IAMgDkEgaikCADcDACAFIA5BGGopAgA3AwAgCyAOQRBqKQIANwMAIAwgDkEIaikCADcDACACIAIpAlA3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgAiFDcDACAFIAgpAgAiFTcDACAPIAkpAgA3AwAgECAKKQIANwMAIBEgFTcDACASIBQ3AwAgAiACKQLoAiIUNwPAAiACIBQ3A5gCIAJB+ABqIhMgDSAOEDsgAyATQSBqKQIANwMAIAUgE0EYaikCADcDACALIBNBEGopAgA3AwAgDCATQQhqKQIANwMAIAIgAikCeDcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBiAEEEMgAyAHKQIAIhQ3AwAgBSAIKQIAIhU3AwAgDyAJKQIANwMAIBAgCikCADcDACARIBU3AwAgEiAUNwMAIAIgAikC6AIiFDcDwAIgAiAUNwOYAiACQaABaiIEIA0gExA7IAMgBEEgaikCADcDACAFIARBGGopAgA3AwAgCyAEQRBqKQIANwMAIAwgBEEIaikCADcDACACIAIpAqABNwPAAkEsIQ0DQCACQegCaiIEIAJBwAJqIgYQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgDUEBayINDQALIARBIGoiCiAGQSBqIgcpAwA3AwAgBEEYaiILIAZBGGoiCCkDADcDACAEQRBqIgwgBkEQaiIJKQMANwMAIARBCGoiDSAGQQhqIgYpAwA3AwAgAiACKQPAAjcD6AIgAkHIAWoiAyAEIAJBoAFqEDsgByADQSBqKQIANwMAIAggA0EYaikCADcDACAJIANBEGopAgA3AwAgBiADQQhqKQIANwMAIAIgAikCyAE3A8ACQdgAIQQDQCACQegCaiIDIAJBwAJqIgUQQyAHIAopAgA3AwAgCCALKQIANwMAIAkgDCkCADcDACAGIA0pAgA3AwAgAiACKQLoAjcDwAIgBEEBayIEDQALIANBIGoiBiAFQSBqIgcpAwA3AwAgA0EYaiIIIAVBGGoiCSkDADcDACADQRBqIgogBUEQaiILKQMANwMAIANBCGoiDCAFQQhqIg0pAwA3AwAgAiACKQPAAjcD6AIgBSADIAJByAFqEDtBLCEEA0AgAkHoAmoiBSACQcACaiIDEEMgByAGKQIANwMAIAkgCCkCADcDACALIAopAgA3AwAgDSAMKQIANwMAIAIgAikC6AI3A8ACIARBAWsiBA0ACyAFQSBqIgQgA0EgaiIGKQMANwMAIAVBGGoiByADQRhqIgopAwA3AwAgBUEQaiIIIANBEGoiCykDADcDACAFQQhqIgkgA0EIaiIMKQMANwMAIAIgAikDwAI3A+gCIAMgBSACQaABahA7IAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIAIhQ3AwAgAkGYAmoiDUEIaiIPIAkpAgA3AwAgDUEQaiIQIAgpAgA3AwAgDUEYaiIRIAcpAgA3AwAgDUEgaiISIBQ3AwAgAiACKQLoAiIUNwPAAiACIBQ3A5gCIAMgDSACQShqEDsgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCACIUNwMAIA8gCSkCADcDACAQIAgpAgA3AwAgESAHKQIANwMAIBIgFDcDACACIAIpAugCIhQ3A8ACIAIgFDcDmAIgAyANIAJB+ABqEDsgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACACIAIpAugCNwPAAiAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCACIUNwMAIA8gCSkCADcDACAQIAgpAgA3AwAgESAHKQIANwMAIBIgFDcDACACIAIpAugCIhQ3A8ACIAIgFDcDmAIgAyANIAEQOyAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSADEEMgBiAEKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAIgAikC6AI3A8ACIAUgAxBDIAYgBCkCACIUNwMAIA8gCSkCADcDACAQIAgpAgA3AwAgESAHKQIANwMAIBIgFDcDACACIAIpAugCIhQ3A8ACIAIgFDcDmAIgAyANIAIQOyAFIAMQQyAGIAQpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgAiACKQLoAjcDwAIgBSAD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IgFFDQQgAUEwakHo4MAALwAAOwAAIAFBKGpB4ODAACkAADcAACABQSBqQdjgwAApAAA3AAAgAUEYakHQ4MAAKQAANwAAIAFBEGpByODAACkAADcAACABQQhqQcDgwAApAAA3AAAgAUG44MAAKQAANwAAIAGtQoCAgICgBoQhFAwPCyAAKAJUIgFFDQ4gACgCWCABQQJ0QQQQyAMMDgsgAEGBgoQINgCJCCAAIAg6AIYIIAAgCzYC/AIgACAQNgL4AiAAIAc2AvQCIAAgBTYC8AIgAEEAOwCHCCAAQYADaiAAQZgBaiIFQdgBEOYDGiAAQegEaiAMQRBqKAIANgIAIABB4ARqIAxBCGopAgA3AgAgACAMKQIANwLYBAJAAkAgBCAKRgRAIABBADoAjAggAEHsBGogAEHgA2pB+AAQ5gMhCCAAQQA7AYoIIABBADoAiQggACAFKQIANwLkBSAAQewFaiAFQQhqKQIANwIAIABB9AVqIAVBEGopAgA3AgAgAEH8BWogBUEYaikCADcCACAAIAApAqADNwKEBiAAQYwGaiAAQagDaikCADcCACAAQZQGaiAAQbADaikCADcCACAAQZwGaiAAQbgDaikCADcCACAAIAY2AsQGIABBvAZqIABB2ANqKQIANwIAIABBtAZqIABB0ANqKQIANwIAIABBrAZqIABByANqKQIANwIAIAAgACkCwAM3AqQGIABBpAZqIQcgAEGEBmohCiAAQeQFaiETIAQEQCAEQQJ0IQVBACEEA0AgBiADKAIARg0EIARBAWohBCADQQRqIQMgBUEEayIFDQALCyAAQYkIaiEFIAJB+ABqQfjewABBGRC8AiACKQJ8IRQgAigCeCEEIAcQtwIgChC3AiATELcCQQAhAyAAQdgEaigCACIBDQFBASEIDA8LQbGVwgAtAAAaQQEhCEEpIQRBKUEBEL0DIgFFDQVBACEDIAFBKGpBud/AAC0AADoAACABQSBqQbHfwAApAAA3AAAgAUEYakGp38AAKQAANwAAIAFBEGpBod/AACkAADcAACABQQhqQZnfwAApAAA3AAAgAUGR38AAKQAANwAAIAGtQoCAgICQBYQhFAwNC0EBIQggACgC3AQgAUEBEMgDDA0LIABCADcCzAYgACAENgLIBiAAQdQGakIANwIAIABB3AZqQgA3AgAgAEHkBmpCADcCACAAQcwGaiIDIBAgCxBFIAJB+ABqIANBIBCUASACKQKAASEUIAIoAnwhBCACKAJ4BEBBAyEDQQEhCAwLCyACQaAFaiIFIAJB+ABqIgNBIGooAgAiBjYCACACQZgFaiILIAJBkAFqIhApAgAiFTcDACACIAIpAogBIhY3A5AFIAAgFDcD8AYgACAENgLsBiAAIBY3AvgGIABBgAdqIBU3AgAgAEGIB2ogBjYCACADIAgQlgMgAkGQBWoiBCADEMQCIABBjAdqIAQQrwIgAyAAQZAHaigCACAAQZQHaigCABCUASACKQKAASEUIAIoAnwhBCACKAJ4BEBBAyEDQQEhCAwKCyAFIAJB+ABqIgVBIGooAgAiAzYCACALIBApAgAiFTcDACACIAIpAogBIhY3A5AFIAAgFDcCnAcgACAENgKYB0EBIQggAEEBOgCICCAAIBY3AqQHIABBrAdqIBU3AgAgAEG0B2ogAzYCACAFIAcQ+wEgAEG4B2oiCyAKIAUQwQIgBRC3AiACQfAEaiIDIABB7AZqIBMQwQIgAkGQBWoiBCAHEPsBIAJB0ARqIgYgAyAEEMECIAUgCyAAQZgHahDBAiAAQdgHaiIHIAYgBRC/AiAAQQE6AIcIIAUQtwIgBhC3AiAEELcCIAMQtwJBACEDIABB+AdqQSAQlQIgBSAHIABB/AdqKAIAIABBgAhqKAIAEPwBIAIoAngiBEGAgICAeEcEQCACKQJ8IRRBAyEDDAkLIABBADYCqAggACAAKALwAiIFNgKsCEEAIQQMBAtBAwwGCxCFAwALQQFBMkHolcIAKAIAIgBBvAEgABsRAQAAC0EBQSlB6JXCACgCACIAQbwBIAAbEQEAAAsDQAJAAkACQAJAAkACQCAERQRAIAMgBUkNAUEAIQQgAEEANgKQCCAAIAAoAvACIgY2ApQIDAYLIAJB+ABqIA0gASASKAIMEQIAIAIoAngiA0EFRg0BIAIpAoABIRQgAigCfCEEIAAoArAIIgYgAEG0CGooAgAiBSgCABEAACAFKAIEIgcEQCAGIAcgBSgCCBDIAwsgACgCnAgiBQRAIAAoAqAIIAVBARDIAwsgACgCkAgiBQRAIAAoApQIIAVBARDIAwsgA0EERwRAQQEhCAwLCyAAKAKsCCEFIAAoAqgIIQMMAwsgACADQQFqIgQ2AqgIIAMgACgCyAZGIAQhAw0CIAJBkAVqIgQgAEHYBGoiBhCzAiACQQo2AtQEIAJBAjYCfCACQdzfwAA2AnggAkIBNwKEASACIAQ2AtAEIAIgAkHQBGo2AoABIAJB8ARqIAJB+ABqEIcBIAIoApAFIgQEQCACKAKUBSAEQQEQyAMLIAAgAikC8AQ3ApAIIABBmAhqIgQgAkH4BGooAgA2AgAgBCgCACEEIABBlAhqKAIAIQcgAEGcCGogAEH8B2ooAgAgAEGACGooAgAQsgEgAEGkCGooAgAhCiAAQaAIaigCACEIQbGVwgAtAAAaQeAAQQQQvQMiDUUNASANQQA6AFwgDSADQQFrNgIUIA0gCjYCECANIAg2AgwgDSAENgIIIA0gBzYCBCANIAY2AgBBtIDBACESIABBtIDBADYCtAggACANNgKwCAwDC0EDIQMMBgtBBEHgAEHolcIAKAIAIgBBvAEgABsRAQAAC0EAIQQMAgtBASEEDAELC0EBCyEDA0ACQAJAIANFBEAgAkH4AGogAEGYCGogARBTAkAgAigCeCIDQQVHBEAgAikCgAEhFCACKAKAASEGIAIoAnwhBQJAIAAtAMwIQQNHDQAgACgCxAgiByAAQcgIaigCACIEKAIAEQAAIAQoAgQiCgRAIAcgCiAEKAIIEMgDCyAAKAK4CCIERQ0AIAAoArwIIARBARDIAwtBASEIIANBBEYNASAFIQQMCAtBBCEDDAULIAJB+ABqIgMgFKcgFEIgiKcQlAEgAikCgAEhFCACKAJ8IQQgAigCeEUEQCACQawFaiACQZgBaigCADYCACACQaQFaiACQZABaiIHKQIANwIAIAIgAikCiAE3ApwFIAIgFDcClAUgAiAENgKQBSADIABB2AdqIgMgAkGQBWoiBBC/AiADELcCIABBAToAhwggACACKQJ4NwLYByAAQeAHaiACQYABaikCADcCACAAQegHaiACQYgBaikCADcCACAAQfAHaiAHKQIANwIAIAQQtwIgBQRAIAYgBUEBEMgDCyAAKAKUCCEGIAAoApAIIQQMAgtBAyEDIAVFDQYgBiAFQQEQyAMMBgsgBCAGTw0BIAAgBEEBaiIDNgKQCCAEIAAoAsgGRiEFIAMhBCAFDQAgAEEAOgDMCCAAQSA2AqgIIABBDDYCoAggAEGb4MAANgKcCCAAIANBAWs2AqQIIAAgAEHYBGo2ApgIQQAhAwwCC0EBIQMMAQsLIAAoAvgCIQYgACgC/AIhByAAQZgHaiEKIABB2AdqIQMgACgC9AIhBCAALQCGCCEIQQAhBSMAQZABayIBJAACQCAEEOoDDQAgASAEEPYCIAFBGGoiBEG8psEAQfgAEOYDGiABQQxqIAQQ9gIgBiAHIAogAyABKAIQIgQgASgCFCABKAIEIgYgASgCCCAIEGchBSABKAIMIgcEQCAEIAdB+ABsQQQQyAMLIAEoAgAiBEUNACAGIARB+ABsQQQQyAMLIAFBkAFqJAAgBUUEQCACQfgAakHs38AAQS8QvAIgAikCfCEUIAIoAnghBEEBIQhBASEDDAMLQQAhCCAAQQA7AIcIIAJBsAVqIgFBCGogAEGwB2opAgA3AwAgAUEYaiADQQhqKQIANwMAIAJB0AVqIANBEGopAgA3AwAgAkHYBWogA0EYaikCADcDACACIAApAqgHNwOwBSACIAMpAgA3A8AFIAApA6AHIRQgACgCnAchBCAAKAKYByEDDAILIAkgAzoAAEEECyEBIA8gAToAACARQQM6AABBAiEDDAsLIAAoAvgHIgEEQCAAKAL8ByABQQEQyAMLIAAtAIcIBEAgAEHYB2oQtwILIABBADoAhwggAEG4B2oQtwIgAC0AiAhFDQAgAEGYB2oQtwILIABBADoAiAggACgCjAciAQRAIAAoApAHIAFBARDIAwsgAEHsBmoQtwILIABBpAZqELcCIABBhAZqELcCIABB5AVqELcCCyAAKALYBCIBBEAgACgC3AQgAUEBEMgDCyAALQCLCARAIABBgANqELcCCyAALQCKCARAIABBoANqELcCCyAAQYkIaiEFIAAtAIkIRQ0AIABBwANqELcCCyAFQQA2AAAgCUEBOgAAIAwQjwEgCEUEQCACQaAEaiIBQShqIAJBsAVqIgVBKGopAwA3AwAgAUEgaiAFQSBqKQMANwMAIAFBGGogBUEYaikDADcDACABQRBqIAVBEGopAwA3AwAgAUEIaiAFQQhqKQMANwMAIAIgAikDsAU3A6AEIAAoAlQiAQRAIAAoAlggAUECdEEEEMgDCyAAQeMAaiEGQQEhAUEAIQUMAgsgACgCVCIBRQ0AIAAoAlggAUECdEEEEMgDCyAAQeMAaiEGQQIhAUEBIQUgAC0AY0UNACAAKAJAIgdFDQAgACgCRCAHQQEQyAMLIAZBADoAACAPQQE6AAAgAkHQAGogAkGgBGoiBkEIaikDADcCACACQdgAaiAGQRBqKQMANwIAIAJB4ABqIAZBGGopAwA3AgAgAkHoAGogBkEgaikDADcCACACQfAAaiAGQShqKQMANwIAIAIgFDcCQCACIAQ2AjwgAiADNgI4IAIgATYCNCACIAIpA6AENwJIIA4QnQIgAkE4aiEBIAUEQEGV8sAAQQ4QASEFAkACQAJAIAIoAjQOAwIAAQALIAEQtwIgAkHYAGoQtwIMAQsgARCMAgsgACgCkA0iAQRAIAAoApQNIAFBAnRBBBDIAwsgAEEAOgCoDSAAKAKEDSIBBEAgACgCiA0gAUEBEMgDCyAAQQA6AKkNIAAoAvgMIgEEQCAAKAL8DCABQQEQyAMLQQEhAwwECyACQdgCaiIDQThqIAFBOGopAgA3AwAgA0EwaiABQTBqKQIANwMAIANBKGogAUEoaikCADcDACADQSBqIAFBIGopAgA3AwAgA0EYaiABQRhqKQIANwMAIANBEGogAUEQaikCADcDACADQQhqIAFBCGopAgA3AwAgAiABKQIANwPYAiACQfgAaiIEQThqQgA3AwAgBEEwakIANwMAIARBKGpCADcDACAEQSBqQgA3AwAgBEEYakIANwMAIARBEGpCADcDACAEQQhqQgA3AwAgAkIANwN4IAJBsAVqIAMgBEEgEPwBAn8CQCACKAKwBSIDQYCAgIB4RwRAIANFDQEgAigCtAUgA0EBEMgDDAELIAJBsAVqIAJB+AJqIgQgAkGYAWpBIBD8ASACKAKwBSIDQYCAgIB4RwRAIANFDQEgAigCtAUgA0EBEMgDDAELIAJBsAVqIAJB+ABqQcAAELIBIAIoArQFIgMgAigCuAUQASEFIAIoArAFIgYEQCADIAZBARDIAwsgAkHYAmoQtwIgBBC3AkEADAELIAJB2AJqELcCIAJB+AJqELcCQYTywABBERABIQVBAQshAyACKAI0QQJHDQAgARCMAgsgACgCkA0iAQRAIAAoApQNIAFBAnRBBBDIAwsCQCAALQCoDUUNACACKAIgIgFFDQAgAigCJCABQQEQyAMLIABBADoAqA0LAkAgAC0AqQ1FDQAgACgChA0iAUUNACAAKAKIDSABQQEQyAMLIABBADoAqQ0LIAAoAvgMIgEEQCAAKAL8DCABQQEQyAMLCyAAKAL0DCIBQSNLBEAgARAACyARQQE6AAALAkACQCADQQJGBEBBAyEEIABBAzoAwA0MAQsgDhCDAiAAQQE6AMANAkAgAwRAIAIgBTYC2AIgAkEgNgJ4IAJBCGogAEGUG2ogAkH4AGogAkHYAmoQ9AIgAigCCEUEQAJAIAIoAgwiAUEkSQ0AIAEQACACKAJ4IgFBJEkNACABEAALIAIoAtgCIgFBJEkNAiABEAAMAgtB+ZvBAEEVENgDAAsgAiAFNgLYAiACQSA2AnggAiAAQZAbaiACQfgAaiACQdgCahD0AiACKAIADQICQCACKAIEIgFBJEkNACABEAAgAigCeCIBQSRJDQAgARAACyACKALYAiIBQSRJDQAgARAACyAAKAKQGyIBQSRPBEAgARAAC0EBIQQgACgClBsiAUEkSQ0AIAEQAAsgACAEOgCYGyACQeAFaiQAIANBAkYPC0H5m8EAQRUQ2AMAC0EEIANB6JXCACgCACIAQbwBIAAbEQEAAAvuMAEKfyMAQRBrIggkAAJAAkAgACgCAEGAgICAeEYEQCAAKAIIIglFDQEgACgCBCEKA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCiAHQdALbGoiASgC2AIiAEH/////B2tBACAAQYKAgIB4SBsOAgABFAsCQAJAAkAgAS0A7QIOBQAWFgECFgsgAEUNFSABKALcAiAAQQEQyAMMFQsgAUHwAmohBgJAAkACQCABLQDYAw4FABcXAQIXCyAGKAIAIgBFDRYgASgC9AIgAEEBEMgDDBYLIAEoAugDIgMgAUHsA2ooAgAiACgCABEAAEHsACECIAAoAgQiBEUNFCADIAQgACgCCBDIAwwUCwJAAkAgAS0AqAkOBAAUFAEUCyABKALoAyICRQ0TIAFB7ANqIQMMEgsgAUGgBGohAAJAAkACQAJAAkACQAJAIAEtAPwGDgkWFxcAAQIDBAUXCyABQYAHaiEAAkACQAJAIAEtAMQHDgUAFBQBAhQLIAAoAgAiAEUNEyABKAKEByAAQQEQyAMgAUHcBGohAAwXCyABKALUByIEIAFB2AdqKAIAIgIoAgARAABByAAhAyACKAIEIgVFDRUgBCAFIAIoAggQyAMMFQsgAUHUB2ohAwJAIAEtAKQIDgQTFBQAFAsgASgCnAgiAyABQaAIaigCACICKAIAEQAAIAIoAgQiBARAIAMgBCACKAIIEMgDCyABKAKQCCICBEAgASgClAggAkEBEMgDCyABQfwHaiEDDBILIAEoAowHIgQgAUGQB2ooAgAiAygCABEAAEHgAiECIAMoAgQiBUUNDyAEIAUgAygCCBDIAwwPCyABKAKMByIEIAFBkAdqKAIAIgMoAgARAABB4AIhAiADKAIEIgVFDQ4gBCAFIAMoAggQyAMMDgsgASgCjAciBCABQZAHaigCACIDKAIAEQAAQeACIQIgAygCBCIFRQ0CIAQgBSADKAIIEMgDDAILIAEoAowHIgQgAUGQB2ooAgAiAygCABEAAEHgAiECIAMoAgQiBUUNASAEIAUgAygCCBDIAwwBCyABKAKMByIDIAFBkAdqKAIAIgIoAgARAAAgAigCBCIEBEAgAyAEIAIoAggQyAMLQdACIQIgASgCgAciA0UNACABKAKEByADQQEQyAMLIAAgAmoiAigCACIDBEAgAigCBCADQQEQyAMLIAEoAtwGIgIEQCABKALgBiACQQEQyAMLIAEoAtgGIgMEQCABKALUBiECA0AgAigCACIEBEAgAkEEaigCACAEQQEQyAMLIAJBDGohAiADQQFrIgMNAAsLIAEoAtAGIgIEQCABKALUBiACQQxsQQQQyAMLIAEoAsQGIgIEQCABKALIBiACQdUAbEEBEMgDCyABKALABiIDBEAgASgCvAYhAgNAIAIoAgAiBARAIAJBBGooAgAgBEEBEMgDCyACQQxqIQIgA0EBayIDDQALC0GMAiECIAEoArgGIgNFDQogASgCvAYgA0EMbEEEEMgDDAoLAkACQAJAIAEtAIwEDgUAFhYBAhYLIAEoAvACIgBFDRUgASgC9AIgAEEBEMgDDBULIAEoAqgEIgIgAUGsBGooAgAiACgCABEAACAAKAIEIgMEQCACIAMgACgCCBDIAwsgASgCnAQiAARAIAEoAqAEIABBARDIAwsgAUGQBGohAAwICyABQZAEaiEAAkAgAS0AyAsOBAgJCQAJCyABQbAEaiEAAkACQAJAAkACQAJAAkACQAJAAkACQCABLQDYCA4MEhMTAAECAwQGBwgJEwsgAUHcCGohAAJAAkACQAJAAkACQCABLQDMCg4FABYWAQIWCyAAKAIAIgBFDRUgASgC4AggAEEBEMgDDBULIAEoAugKIgYgAUHsCmooAgAiAigCABEAAEH0ASEDQYACIQQgAigCBCIFRQ0BIAYgBSACKAIIEMgDDAELIAFB2ApqIQMCQCABLQDECw4EAgMDAAMLIAEoArwLIgMgAUHAC2ooAgAiAigCABEAACACKAIEIgQEQCADIAQgAigCCBDIAwsgASgCsAsiAgRAIAEoArQLIAJBARDIAwtBqAIhA0G8AiEEIAEoAqQLIgJFDQAgASgCqAsgAkEBEMgDCyAAIARqIgIoAgAiBARAIAIoAgQgBEEBEMgDCyAAIANqIQMLIAMoAgAiAEUNACADKAIEIABBARDIAwsgASgCwAoiAARAIAEoAsQKIABBARDIAwsgAUGoCWoQtwIgASgCnAkiAARAIAEoAqAJIABB+ABsQQQQyAMLIAEtAM0KRQ0PIAEoAogJIgBFDQ8gASgCjAkgAEEBEMgDIAFBADoAzQoMEAsgASgC6AgiBCABQewIaigCACIDKAIAEQAAQawEIQIgAygCBCIGRQ0NIAQgBiADKAIIEMgDDA0LIAEoAtwIIgMgAUHgCGooAgAiAigCABEAACACKAIEIgRFDQsgAyAEIAIoAggQyAMMCwsgASgC6AgiAyABQewIaigCACICKAIAEQAAIAIoAgQiBEUNASADIAQgAigCCBDIAwwBCyABKALoCCIDIAFB7AhqKAIAIgIoAgARAAAgAigCBCIERQ0AIAMgBCACKAIIEMgDCyABKALcCCICBEAgASgC4AggAkEBEMgDCyABKALkByICBEAgASgC6AcgAkEBEMgDCyABKALYByICRQ0HIAEoAtwHIAJBARDIAwwHCyABKALoCCIEIAFB7AhqKAIAIgMoAgARAABBrAQhAiADKAIEIgZFDQUgBCAGIAMoAggQyAMMBQsgASgC6AgiBCABQewIaigCACIDKAIAEQAAQawEIQIgAygCBCIGRQ0EIAQgBiADKAIIEMgDDAQLIAEoAugIIgMgAUHsCGooAgAiAigCABEAACACKAIEIgRFDQEgAyAEIAIoAggQyAMMAQsgASgC6AgiAyABQewIaigCACICKAIAEQAAIAIoAgQiBEUNACADIAQgAigCCBDIAwsgASgC3AgiAgRAIAEoAuAIIAJBARDIAwsg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QfgCIQIgASgCtAciA0UNACABKAK4ByADQQEQyAMLIAAgAmoiACgCACICBEAgACgCBCACQQEQyAMLIAEoApQHIgAEQCABKAKYByAAQeAAbEEBEMgDCyABKAKIByIABEAgASgCjAcgAEEGdEEBEMgDCyABQfQEahC3AgwBCyABQQA6AM0KCyABQeAEaiEACyAAKAIAIgJFDQAgACgCBCACQQEQyAMLIAFB7ANqELcCIAEoAsADIgAEQCABKALEAyAAQQEQyAMLIAEoArwDIgMEQCABKAK4AyECA0AgAhC3AiACQSBqIQIgA0EBayIDDQALCyABKAK0AyIABEAgASgCuAMgAEEFdEEEEMgDCwJAIAEtAI0ERQ0AIAEoApwDIgBFDQAgASgCoAMgAEEBEMgDIAFBADoAjQQMCwsgAUEAOgCNBAwKCyAAIAJqIgAoAgAiAgRAIAAoAgQgAkEBEMgDCyABKAKYBiIABEAgASgCnAYgAEEBEMgDCyABKAKUBiIDBEAgASgCkAYhAgNAIAIoAgAiAARAIAJBBGooAgAgAEEBEMgDCyACQQxqIQIgA0EBayIDDQALCyABKAKMBiIABEAgASgCkAYgAEEMbEEEEMgDCyABKAKABiIABEAgASgChAYgAEEFdEEBEMgDCyABKALwBCIABEAgASgC9AQgAEH4AGxBBBDIAwsgASgC/AQiAEUNACABKAKABSAAQfgAbEEEEMgDCyABQdwEaiEADAMLIAMoAgAiAkUNACADKAIEIAJBARDIAwsgAUEAOgDFB0E4IQMgASgCyAciAkUNACABKALMByACQQEQyAMLIAAgA2oiACgCACICBEAgACgCBCACQQEQyAMLAkAgAS0AxgdFDQAgASgCpAciAEUNACABKAKoByAAQQEQyAMgAUEAOgDGByABQdwEaiEADAELIAFBADoAxgcgAUHcBGohAAsgACgCACICRQ0AIAAoAgQgAkEBEMgDCyABKAKYBCEAAkAgASgCnAQiBEUNACAAIQIgBEEHcSIDBEADQCACQQA6AAAgAkEBaiECIANBAWsiAw0ACwsgBEEISQ0AIAAgBGohAwNAIAJBADoAACACQQA6AAEgAkEAOgACIAJBADoAAyACQQA6AAQgAkEAOgAFIAJBADoABiACQQA6AAcgAyACQQhqIgJHDQALCyABQQA2ApwEAkAgASgClAQiAkEATgRAAkAgAkUNACACQQdxIQRBACEDIAJBCE8EQCACQfj///8HcSEFA0AgACADaiICQQA6AAAgAkEBakEAOgAAIAJBAmpBADoAACACQQNqQQA6AAAgAkEEakEAOgAAIAJBBWpBADoAACACQQZqQQA6AAAgAkEHakEAOgAAIAUgA0EIaiIDRw0ACwsgBEUNACAAIANqIQIDQCACQQA6AAAgAkEBaiECIARBAWsiBA0ACwsgASgClAQiAARAIAEoApgEIABBARDIAwsgASgCjAQhAAJAIAEoApAEIgRFDQAgACECIARBB3EiAwRAA0AgAkEAOgAAIAJBAWohAiADQQFrIgMNAAsLIARBCEkNACAAIARqIQMDQCACQQA6AAAgAkEAOgABIAJBADoAAiACQQA6AAMgAkEAOgAEIAJBADoABSACQQA6AAYgAkEAOgAHIAMgAkEIaiICRw0ACwsgAUEANgKQBCABKAKIBCICQQBIDQECQCACRQ0AIAJBB3EhBEEAIQMgAkEITwRAIAJB+P///wdxIQUDQCAAIANqIgJBADoAACACQQFqQQA6AAAgAkECakEAOgAAIAJBA2pBADoAACACQQRqQQA6AAAgAkEFakEAOgAAIAJBBmpBADoAACACQQdqQQA6AAAgBSADQQhqIgNHDQALCyAERQ0AIAAgA2ohAgNAIAJBADoAACACQQFqIQIgBEEBayIEDQALCyABKAKIBCICRQ0DIAFBjARqIQMMAgsMCAsMBwsgAygCACACQQEQyAMLIAFBrAlqELcCQdwAIQIgASgC3AMiAEUNACABKALgAyAAQQEQyAMLIAIgBmoiACgCACICBEAgACgCBCACQQEQyAMLIAEoAsADIgAEQCABKALEAyAAQQEQyAMLIAEoArwDIgMEQCABKAK4AyECA0AgAhC3AiACQSBqIQIgA0EBayIDDQALCyABKAK0AyIABEAgASgCuAMgAEEFdEEEEMgDCwJAIAEtANkDRQ0AIAEoApwDIgBFDQAgASgCoAMgAEEBEMgDIAFBADoA2QMMAQsgAUEAOgDZAwsgCSAHQQFqIgdHDQALIAogCUHQC2xBCBDIAwwBCyAAQQxqIQQCQCAAKAIQIgFFDQAgBCgCACEJA0AgASgC3AshAyAJKAIIIQcgAUEANgLcCyABKALYCyECIAEgB0EI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EMgDCyACKAKEAiIARQ0JIAIoAogCIABBARDIAwwJCyACKAKQAiIDIAJBlAJqKAIAIgAoAgARAABBxAEhASAAKAIEIgRFDQEgAyAEIAAoAggQyAMMAQsgAigCqAIiASACQawCaigCACIAKAIAEQAAIAAoAgQiAwRAIAEgAyAAKAIIEMgDCyACKAKQAiIABEAgAigClAIgAEEBEMgDC0G0ASEBIAIoAoQCIgBFDQAgAigCiAIgAEEBEMgDCyABIAVqIgAoAgAiAQRAIAAoAgQgAUEBEMgDCyACKALoASIARQ0GIAIoAuwBIABBA3RBCBDIAwwGCwJAAkAgAi0A9AQOBAAKCgEKCyACKALgBCIARQ0JIAIoAuQEIABBARDIAwwJCyACQeABaiEFQdwBIQECQAJAAkACQAJAIAItANADDgcICQkAAQIDCQsgAigC8AMiASACQfQDaigCACIAKAIAEQAAIAAoAgQiAwRAIAEgAyAAKAIIEMgDCyACKALkAyIABEAgAigC6AMgAEEBEMgDCyACKALYAyIARQ0GIAIoAtwDIABBARDIAwwGCyACKALkAyIDIAJB6ANqKAIAIgAoAgARAABB+AEhASAAKAIEIgRFDQQgAyAEIAAoAggQyAMMBAsgAigC8AMiASACQfQDaigCACIAKAIAEQAAIAAoAgQiA0UNASABIAMgACgCCBDIAwwBCyACKAL8AyIBIAJBgARqKAIAIgAoAgARAAAgACgCBCIDBEAgASADIAAoAggQyAMLIAIoAvADIgBFDQAgAigC9AMgAEEBEMgDCyACKALkAyIABEAgAigC6AMgAEEBEMgDCyACKALYAyIABEAgAigC3AMgAEEBEMgDCyACKAKkAyIABEAgAigCqAMgAEEBEMgDCyACKAKYAyIABEAgAigCnAMgAEEDdEEIEMgDCyACKAKMAyIABEAgAigCkAMgAEEDdEEIEMgDC0GUASEBIAIoAoADIgBFDQEgAigChAMgAEEBEMgDDAELIARBgICAgHhHBEAgAigCCCIDBEAgAigCBCEBA0AgARC3AiABQSBqIQEgA0EBayIDDQALIAIoAgAhBAsgBARAIAIoAgQgBEEFdEEEEMgDCyACQQxqIQBBkCAhBUEEIQECQAJAIAIoAgwiBEGAgICAeGsOAgELAAsgAigCFCIDBEAgAigCECEBA0AgASgCACIEBEAgAUEEaigCACAEQQEQyAMLIAFBDGohASADQQFrIgMNAAsgACgCACEEC0GYISEFQQwhASAERQ0AIAIoAhAgBEEMbEEEEMgDCyAAIAFqIgIoAggiAwRAIAIoAgQhAQNAIAEoAgAiBARAIAFBBGooAgAgBEEBEMgDCyABQQxqIQEgA0EBayIDDQALCyACKAIAIgEEQCACKAIEIAFBDGxBBBDIAwsgACAFaiIAKAIIIgMEQCAAKAIEIQEDQCABELcCIAFBIGohASADQQFrIgMNAAsLIAAoAgAiAUUNCSAAKAIEIAFBBXRBBBDIAwwJCyACQQRqEIwCDAgLIAEgBWoiACgCACIBBEAgACgCBCABQQEQyAMLIAIoAvACIgMEQCACKALsAiEBA0AgASgCACIABEAgAUEEaigCACAAQQN0QQgQyAMLIAFBDGohASADQQFrIgMNAAsLIAIoAugCIgAEQCACKALsAiAAQQxsQQQQyAMLIAIoAtwCIgBFDQAgAigC4AIgAEEDdEEIEMgDCyACKALQAiEAAkAgAigC1AIiBEUNACAAIQEgBEEHcSIDBEADQCABQQA6AAAgAUEBaiEBIANBAWsiAw0ACwsgBEEISQ0AIAAgBGohAwNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAyABQQhqIgFHDQALCyACQQA2AtQCAkAgAigCzAIiAUEATgRAAkAgAUUNACABQQdxIQRBACEDIAFBCE8EQCABQfj///8HcSEGA0AgACADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgA0EIaiIDRw0ACwsgBEUNACAAIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgAigCzAIiAARAIAIoAtACIABBARDIAwsgBRBaIAIoAuQBIQACQCACKALoASIERQ0AIAAhASAEQQdxIgMEQANAIAFBADoAACABQQFqIQEgA0EBayIDDQALCyAEQQhJDQAgACAEaiEDA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByADIAFBCGoiAUcNAAsLIAJBADYC6AEgAigC4AEiAUEASA0MAkAgAUUNACABQQdxIQRBACEDIAFBCE8EQCABQfj///8HcSEGA0AgACADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgA0EIaiIDRw0ACwsgBEUNACAAIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgBSgCACIABEAgAigC5AEgAEEBEMgDCyACKALwASEAAkAgAigC9AEiBEUNACAAIQEgBEEHcSIDBEADQCABQQA6AAAgAUEBaiEBIANBAWsiAw0ACwsgBEEISQ0AIAAgBGohAwNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAyABQQhqIgFHDQALCyACQQA2AvQBIAIoAuwBIgFBAEgNDAJAIAFFDQAgAUEHcSEEQQAhAyABQQhPBEAgAUH4////B3EhBgNAIAAgA2oiAUEAOgAAIAFBAWpBADoAACABQQJqQQA6AAAgAUEDakEAOgAAIAFBBGpBADoAACABQQVqQQA6AAAgAUEGakEAOgAAIAFBB2pBADoAACAGIANBCGoiA0cNAAsLIARFDQAgACADaiEBA0AgAUEAOgAAIAFBAWohASAEQQFrIgQNAAsLIAIoAuwBIgAEQCACKALwASAAQQEQyAMLIAIoAsACIQACQCACKALEAiIERQ0AIAAhASAEQQdxIgMEQANAIAFBADoAACABQQFqIQEgA0EBayIDDQALCyAEQQhJDQAgACAEaiEDA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByADIAFBCGoiAUcNAAsLIAJBADYCxAIgAigCvAIiAUEASA0MAkAgAUUNACABQQdxIQRBACEDIAFBCE8EQCABQfj///8HcSEGA0AgACADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgA0EIaiIDRw0ACwsgBEUNACAAIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgAigCvAIiAARAIAIoAsACIABBARDIAwsgAigCtAIhAAJAIAIoArgCIgRFDQAgACEBIARBB3EiAwRAA0AgAUEAOgAAIAFBAWohASADQQFrIgMNAAsLIARBCEkNACAAIARqIQMDQCABQQA6AAAgAUEAOgABIAFBADoAAiABQQA6AAMgAUEAOgAEIAFBADoABSABQQA6AAYgAUEAOgAHIAMgAUEIaiIBRw0ACwsgAkEANgK4AiACKAKwAiIBQQBIDQECQCABRQ0AIAFBB3EhBEEAIQMgAUEITwRAIAFB+P///wdxIQYDQCAAIANqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBiADQQhqIgNHDQALCyAERQ0AIAAgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALC0EwIQEgAigCsAIiAEUNAiACKAK0AiAAQQEQyAMMAgsMCwsMCgsgASAFaiIAKAIAIgFFDQAgACgCBCABQQEQyAMLIAIoAtAEIgMEQCACKALMBCEBA0AgASgCACIABEAgAUEEaigCACAAQQEQyAMLIAFBDGohASADQQFrIgMNAAsLIAIoAsgEIgAEQCACKALMBCAAQQxsQQQQyAMLIAIoArwEIgAEQCACKALABCAAQQEQyAMLIAIoArgEIgMEQCACKAK0BCEBA0AgARC3AiABQSBqIQEgA0EBayIDDQALCyACKAKwBCIABEAgAigCtAQgAEEFdEEEEMgDCyACKAKsBCIDBEAgAigCqAQhAQNAIAEQtwIgAUEgaiEBIANBAWsiAw0ACwsgAigCpAQiAARAIAIoAqgEIABBBXRBBBDIAwsgAigCoAQiAwRAIAIoApwEIQEDQCABKAIAIgAEQCABQQRqKAIAIABBARDIAwsgAUEMaiEBIANBAWsiAw0ACwsgAigCmAQiAARAIAIoApwEIABBDGxBBBDIAwsgAkHAAWoQtwIMAwsgAigC3AEiAARAIAIoAuABIABBARDIAwsgAigC2AEiAwRAIAIoAtQBIQEDQCABKAIAIgAEQCABQQRqKAIAIABBA3RBCBDIAwsgAUEMaiEBIANBAWsiAw0ACwsgAigC0AEiAARAIAIoAtQBIABBDGxBBBDIAwsgAigCxAEhAAJAIAIoAsgBIgRFDQAgACEBIARBB3EiAwRAA0AgAUEAOgAAIAFBAWohASADQQFrIgMNAAsLIARBCEkNACAAIARqIQMDQCABQQA6AAAgAUEAOgABIAFBADoAAiABQQA6AAMgAUEAOgAEIAFBADoABSABQQA6AAYgAUEAOgAHIAMgAUEIaiIBRw0ACwsgAkEANgLIASACKALAASIBQQBOBEACQCABRQ0AIAFBB3EhBEEAIQMgAUEITwRAIAFB+P///wdxIQYDQCAAIANqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBiADQQhqIgNHDQALCyAERQ0AIAAgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALCyACKALAASIABEAgAigCxAEgAEEBEMgDC0HkACEBIAIoArABIgBFDQEgAigCtAEgAEEBEMgDDAELDAcLIAEgBWoiACgCACIBBEAgACgCBCABQQEQyAMLIAIoApwBIQACQCACKAKgASIERQ0AIAAhASAEQQdxIgMEQANAIAFBADoAACABQQFqIQEgA0EBayIDDQALCyAEQQhJDQAgACAEaiEDA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByADIAFBCGoiAUcNAAsLIAJBADYCoAECQCACKAKYASIBQQBOBEACQCABRQ0AIAFBB3EhBEEAIQMgAUEITwRAIAFB+P///wdxIQUDQCAAIANqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBSADQQhqIgNHDQALCyAERQ0AIAAgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALCyACKAKcASEAAkAgAigCoAEiBEUNACAAIQEgBEEHcSIDBEADQCABQQA6AAAgAUEBaiEBIANBAWsiAw0ACwsgBEEISQ0AIAAgBGohAwNAIAFBADoA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IAAoAvACIgIEQCAAKALsAiEBA0AgASgCACIDBEAgAUEEaigCACADQQN0QQgQyAMLIAFBDGohASACQQFrIgINAAsLIAAoAugCIgEEQCAAKALsAiABQQxsQQQQyAMLIAAoAtwCIgFFDQAgACgC4AIgAUEDdEEIEMgDCyAAKALQAiEDAkAgACgC1AIiBEUNACADIQEgBEEHcSICBEADQCABQQA6AAAgAUEBaiEBIAJBAWsiAg0ACwsgBEEISQ0AIAMgBGohAgNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAiABQQhqIgFHDQALCyAAQQA2AtQCAkAgACgCzAIiAUEATgRAAkAgAUUNACABQQdxIQRBACECIAFBCE8EQCABQfj///8HcSEGA0AgAiADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgAkEIaiICRw0ACwsgBEUNACACIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgACgCzAIiAQRAIAAoAtACIAFBARDIAwsgBRBaIAAoAuQBIQMCQCAAKALoASIERQ0AIAMhASAEQQdxIgIEQANAIAFBADoAACABQQFqIQEgAkEBayICDQALCyAEQQhJDQAgAyAEaiECA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByACIAFBCGoiAUcNAAsLIABBADYC6AEgACgC4AEiAUEASA0KAkAgAUUNACABQQdxIQRBACECIAFBCE8EQCABQfj///8HcSEGA0AgAiADaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAYgAkEIaiICRw0ACwsgBEUNACACIANqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgBSgCACIBBEAgACgC5AEgAUEBEMgDCyAAKALwASEDAkAgACgC9AEiBEUNACADIQEgBEEHcSICBEADQCABQQA6AAAg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OgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBiACQQhqIgJHDQALCyAERQ0AIAIgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALCyAAKALAASIBBEAgACgCxAEgAUEBEMgDC0HkACEBIAAoArABIgNFDQEgACgCtAEgA0EBEMgDDAELDAULIAEgBWoiASgCACIDBEAgASgCBCADQQEQyAMLIAAoApwBIQMCQCAAKAKgASIERQ0AIAMhASAEQQdxIgIEQANAIAFBADoAACABQQFqIQEgAkEBayICDQALCyAEQQhJDQAgAyAEaiECA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByACIAFBCGoiAUcNAAsLIABBADYCoAECQCAAKAKYASIBQQBOBEACQCABRQ0AIAFBB3EhBEEAIQIgAUEITwRAIAFB+P///wdxIQUDQCACIANqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBSACQQhqIgJHDQALCyAERQ0AIAIgA2ohAQNAIAFBADoAACABQQFqIQEgBEEBayIEDQALCyAAKAKcASEDAkAgACgCoAEiBEUNACADIQEgBEEHcSICBEADQCABQQA6AAAgAUEBaiEBIAJBAWsiAg0ACwsgBEEISQ0AIAMgBGohAgNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAiABQQhqIgFHDQALCyAAQQA2AqABIAAoApgBIgFBAEgNAQJAIAFFDQAgAUEHcSEEQQAhAiABQQhPBEAgAUH4////B3EhBQNAIAIgA2oiAUEAOgAAIAFBAWpBADoAACABQQJqQQA6AAAgAUEDakEAOgAAIAFBBGpBADoAACABQQVqQQA6AAAgAUEGakEAOgAAIAFBB2pBADoAACAFIAJBCGoiAkcNAAsLIARFDQAgAiADaiEBA0AgAUEAOgAAIAFBAWohASAEQQFrIgQNAAsLIAAoApgBIgEEQCAAKAKcASABQQEQyAML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KAKIBCAQIBhqa0H6//+/AWo2AlAgAyADKAKEBCAKIBdqa0H6//+/AWo2AkwgAyADKAKABCAPIBZqa0H6//+/AWo2AkggAyADKAL8AyAJIBVqa0H6//+/AWo2AkQgAyADKAL4AyAOIBRqa0H6//+/AWo2AkAgAyADKAL0AyAIIBNqa0H6//+/AWo2AjwgAyADKALwAyAMIBJqa0H6//+/AWo2AjggAyADKALsAyAHIBFqa0H6/P+/AWo2AjQgAyADKALoAyAGIA1qa0Ga0v+/AWo2AjAgAyBKIFJqNgK8AyADICwgP2o2ArgDIAMgKyA+ajYCtAMgAyAqID1qNgKwAyADICkgPGo2AqwDIAMgKCA7ajYCqAMgAyAnIDpqNgKkAyADICYgOWo2AqADIAMgJSA4ajYCnAMgAyABIDdqNgKYAyADIBkgTWo2AuQDIAMgNCBJajYC4AMgAyAzIEhqNgLcAyADIDIgR2o2AtgDIAMgMSBGajYC1AMgAyAwIEVqNgLQAyADIC8gRGo2AswDIAMgLiBDajYCyAMgAyAtIEJqNgLEAyADIAIgQWo2AsADIAQgNSAFEDsgAyADKAKMBCAaICBqa0H6//8LajYCfCADIAMoAogEIBggJGprQfr//78BajYCeCADIAMoAoQEIBcgH2prQfr//78BajYCdCADIAMoAoAEIBYgI2prQfr//78BajYCcCADIAMoAvwDIBUgHmprQfr//78BajYCbCADIAMoAvgDIBQgImprQfr//78BajYCaCADIAMoAvQDIBMgHWprQfr//78BajYCZCADIAMoAvADIBIgIWprQfr//78BajYCYCADIAMoAuwDIBEgHGprQfr8/78BajYCXCADIAMoAugDIA0gG2prQZrS/78BajYCWCADIBpBFWw2AuQDIAMgGEEVbDYC4AMgAyAXQRVsNgLcAyADIBZBFWw2AtgDIAMgFUEVbDYC1AMgAyAUQRVsNgLQAyADIBNBFWw2AswDIAMgEkEVbDYCyAMgAyARQRVsNgLEAyADIA1BFWw2AsADIAQgBRDEASADKALoAyECIAMoAuwDIQ0gAygC8AMhESADKAL0AyESIAMoAvgDIRMgAygC/AMhFCADKAKABCEVIAMoAoQEIRYgAygCiAQhFyADIAsgAygCjAQiGGtB/P//B2o2AqQBIAMgECAXa0H8////AGo2AqABIAMgCiAWa0H8////AGo2ApwBIAMgDyAVa0H8////AGo2ApgBIAMgCSAUa0H8////AGo2ApQBIAMgDiATa0H8////AGo2ApABIAMgCCASa0H8////AGo2AowBIAMgDCARa0H8////AGo2AogBIAMgByANa0H8/f//AGo2AoQBIAMgBiACa0G84f//AGo2AoABIANBqAFqIgFBIGoiGiAQIBdqNgIAIAFBGGoiECAPIBVqNgIAIAFBEGoiDyAOIBNqNgIAIAFBCGoiDiAMIBFqNgIAIAMgCyAYajYCzAEgAyAKIBZqNgLEASADIAkgFGo2ArwBIAMgCCASajYCtAEgAyAHIA1qNgKsASADIAIgBmo2AqgBIAMgAygCVEEHbDYC5AMgAyADKAJQQQdsNgLgAyADIAMoAkxBB2w2AtwDIAMgAygCSEEHbDYC2AMgAyADKAJEQQdsNgLUAyADIAMoAkBBB2w2AtADIAMgAygCPEEHbDYCzAMgAyADKAI4QQdsNgLIAyADIAMoAjRBB2w2AsQDIAMgAygCMEEHbDYCwAMgBCAFEMQBIAMoAugDIQIgAygC7AMhBiADKALwAyEHIAMoAvQDIQggAygC+AMhCSADKAL8AyEKIAMoAoAEIQsgAygChAQhDCADKAKIBCENIAMgAygCjARBA2w2AowEIAMgDUEDbDYCiAQgAyAMQQNsNgKEBCADIAtBA2w2AoAEIAMgCkEDbDYC/AMgAyAJQQNsNgL4AyADIAhBA2w2AvQDIAMgB0EDbDYC8AMgAyAGQQNsNgLsAyADIAJBA2w2AugDIANB0AFqIgIgBBDEASADICBBCWw2AuQDIAMgJEEJbDYC4AMgAyAfQQlsNgLcAyADICNBCWw2AtgDIAMgHkEJbDYC1AMgAyAiQQlsNgLQAyADIB1BCWw2AswDIAMgIUEJbDYCyAMgAyAcQQlsNgLEAyADIBtBCWw2AsADIAQgBRDEASADIAMoAowEQQdsNgK8AyADIAMoAogEQQdsNgK4AyADIAMoAoQEQQdsNgK0AyADIAMoAoAEQQdsNgKwAyADIAMoAvwDQQdsNgKsAyADIAMoAvgDQQdsNgKoAyADIAMoAvQDQQdsNgKkAyADIAMoAvADQQdsNgKgAyADIAMoAuwDQQdsNgKcAyADIAMoAugDQQdsNgKYAyADQfgBaiIGIDUQxAEgBUEgaiIHIE4pAgA3AwAgBUEYaiIIIE8pAgA3AwAgBUEQaiIJIFApAgA3AwAgBUEIaiIKIFEpAgA3AwAgAyADKQIINwPAAyAEIAUgA0GAAWoiCxA7IAMoAugDIQwgAygC7AMhDSADKALwAyERIAMoAvQDIRIgAygC+AMhEyADKAL8AyEUIAMoAoAEIRUgAygChAQhFiADKAKIBCEXIAMoAowEIRggBCACIANB2ABqIhkQOyADIBggAygCjARrQfz//wdqNgLkAyADIBcgAygCiARrQfz///8AajYC4AMgAyAWIAMoAoQEa0H8////AGo2AtwDIAMgFSADKAKABGtB/P///wBqNgLYAyADIBQgAygC/ANrQfz///8AajYC1AMgAyATIAMoAvgDa0H8////AGo2AtADIAMgEiADKAL0A2tB/P///wBqNgLMAyADIBEgAygC8ANrQfz///8AajYCyAMgAyANIAMoAuwDa0H8/f//AGo2AsQDIAMgDCADKALoA2tBvOH//wBqNgLAAyADQaACaiICIAUQxAEgByAaKQIANwMAIAggECkCADcDACAJIA8pAgA3AwAgCiAOKQIANwMAIAMgAykCqAE3A8ADIAQgBSALEDsgAygC6AMhByADKALsAyEIIAMoAvADIQkgAygC9AMhCiADKAL4AyELIAMoAvwDIQwgAygCgAQhDiADKAKEBCEPIAMoAogEIRAgAygCjAQhDSAEIAYgGRA7IAMgDSADKAKMBGo2AuQDIAMgECADKAKIBGo2AuADIAMgDyADKAKEBGo2AtwDIAMgDiADKAKABGo2AtgDIAMgDCADKAL8A2o2AtQDIAMgCyADKAL4A2o2AtADIAMgCiADKAL0A2o2AswDIAMgCSADKALwA2o2AsgDIAMgCCADKALsA2o2AsQDIAMgByADKALoA2o2AsADIANByAJqIgYgBRDEASAEIANBMGogARA7IAMoAugDIQEgAygC7AMhByADKALwAyEIIAMoAvQDIQkgAygC+AMhCiADKAL8AyELIAMoAoAEIQwgAygChAQhDiADKAKIBCEPIAMoAowEIRAgAyAgQQNsNgLkAyADICRBA2w2AuADIAMgH0EDbDYC3AMgAyAjQQNsNgLYAyADIB5BA2w2AtQDIAMgIkEDbDYC0AMgAyAdQQNsNgLM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FCABKAKQCSEVIAEoAowJIRYgASgCiAkhFyABKAKECSEYIAEoAoAJIRkgAUHIImoiA0GkzsEAQfgAEOYDGiADIAFBnM/BABA7IANByABqIAFByABqKQIANwMAIANBQGsgAUFAaykCADcDACADQThqIAFBOGopAgA3AwAgA0EwaiABQTBqKQIANwMAIANB2ABqIAFB2ABqKQIANwMAIANB4ABqIAFB4ABqKQIANwMAIANB6ABqIAFB6ABqKQIANwMAIANB8ABqIAFB8ABqKQIANwMAIAEgASkCKDcD8CIgASABKQJQNwOYIyMAQRBrIgciC0EAOgAPIAstAA8aIAtCf0IAIBlBoMHswAZLrSAYrXxCxt6k/w1WrSAXrXxCnaCRvQVWrSAWrXxC89zd6gVWrSAVrXxC/////w9WrSAUrXxC/////w9WrSATrXxC/////w9WGyAKrX1C/////wd8QiCIp0EBcToADyABIAstAA8iCzoAngEgB0EAOgAPIActAA8aIAdCf0IAICGnIh1BoMHswAZLrSASrXxCxt6k/w1WrSAgQv////8Pg3xCnaCRvQVWrSARrXxC89zd6gVWrSAfQv////8Pg3xC/////w9WrSAQrXxC/////w9WrSAeQv////8Pg3xC/////w9WGyAPrX1C/////wd8QiCIp0EBcToADyABIActAA8iBzoAnwEgBEIANwMAIA1CADcDACAOQgA3AwAgAUIANwO4ESABIAs6AKAJIAEgCjYCnAkgASATNgKYCSABIBQ2ApQJIAEgFTYCkAkgASAWNgKMCSABIBc2AogJIAEgGDYChAkgASAZNgKACSAIIAIQmQEgBSACIAggCxDWASABQaABaiIKQQhqIA4pAwA3AwAgCkEQaiANKQMANwMAIApBGGogBCkDADcDACABIAEpA7gRNwOgASABIAc6AKAJIAEgDzYCnAkgASAePgKYCSABIBA2ApQJIAEgHz4CkAkgASARNgKMCSABICA+AogJIAEgEjYChAkgASAdNgKACSAIIAIQmQEgBiACIAggBxDWASAMQQhqIBwpAwA3AwAgDEEQaiAbKQMANwMAIAxBGGogGikDADcDACABIAEpA7AhNwOoIiABQbASaiIEQaTOwQBB+AAQ5gMaIARB+ABqQaTOwQBB+AAQ5gMaIARB8AFqQaTOwQBB+AAQ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aiIBRw0ACwsgA0EANgIgIAMoAhgiAUEASA0IAkAgAUUNACABQQdxIQRBACECIAFBCE8EQCABQfj///8HcSEIA0AgAiAFaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAggAkEIaiICRw0ACwsgBEUNACACIAVqIQEDQCABQQA6AAAgAUEBaiEBIARBAWsiBA0ACwsgAygCGCIBBEAgAygCHCABQQEQyAMLIAYgAygCKCIFNgIIIAYgBSADKAIsQQV0ajYCDCAGQQhqEMMBIANBADYCLAJAIAMoAiQiAUH///8/TQRAIAFBBXQiBEEASA0BIAQEQEEAIQIDQCACIAVqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBCACQQhqIgJHDQALC0E0IQEgAygCJCIFRQ0DIAMoAiggBUEFdEEBEMgDIANBNEEEEMgDDAcLQZSXwQAQzwMACwwICyADKAIIIgIEQCADKAIEIQEDQCABELcCIAFBIGohASACQQFrIgINAAsLIAMoAgAiAQRAIAMoAgQgAUEFdEEEEMgDCyADKAIQIQUgAygCFCIBBEAgBSABQQZ0aiECIAUhAQNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAUEAOgAIIAFBADoACSABQQA6AAogAUEAOgALIAFBADoADCABQQA6AA0gAUEAOgAOIAFBADoADyABQQA6ABAgAUEAOgARIAFBADoAEiABQQA6ABMgAUEAOgAUIAFBADoAFSABQQA6ABYgAUEAOgAXIAFBADoAGCABQQA6ABkgAUEAOgAaIAFBADoAGyABQQA6ABwgAUEAOgAdIAFBADoAHiABQQA6AB8gAUEAOgAgIAFBADoAISABQQA6ACIgAUEAOgAjIAFBADoAJCABQQA6ACUgAUEAOgAmIAFBADoAJyABQQA6ACggAUEAOgApIAFBADoAKiABQQA6ACsgAUEAOgAsIAFBADoALSABQQA6AC4gAUEAOgAvIAFBADoAMCABQQA6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AoADIAIgBkEVbDYC/AIgAiAFQRVsNgL4AiACIARBFWw2AvQCIAIgAUEVbDYC8AIgAyACQfACaiIBEMQBIAIoApgDIQUgAigCnAMhBiACKAKgAyEHIAIoAqQDIQggAigCqAMhCSACKAKsAyEKIAIoArADIQsgAigCtAMhDCACKAK4AyENIAIgAigCvAMiD0EDbDYClAMgAiANQQNsNgKQAyACIAxBA2w2AowDIAIgC0EDbDYCiAMgAiAKQQNsNgKEAyACIAlBA2w2AoADIAIgCEEDbDYC/AIgAiAHQQNsNgL4AiACIAZBA2w2AvQCIAIgBUEDbDYC8AIgAyABEMQBIAIoApgDIRsgAigCnAMhECACKAKkAyERIAIoAqwDIRIgAigCtAMhEyACKAK8AyEUIAIoAqADIRUgAigCqAMhFiACKAKwAyEXIAJBgAFqIgRBIGoiHCACKAIoIh0gAigCuANrQfz///8AajYCACAEQRhqIh4gAigCICIfIBdrQfz///8AajYCACAEQRBqIhcgAigCGCIgIBZrQfz///8AajYCACAEQQhqIhYgAigCECIhIBVrQfz///8AajYCACACIAIoAiwiFSAUa0H8//8HajYCpAEgAiACKAIkIhQgE2tB/P///wBqNgKcASACIAIoAhwiEyASa0H8////AGo2ApQBIAIgAigCFCISIBFrQfz///8AajYCjAEgAiACKAIMIhEgEGtB/P3//wBqNgKEASACIAIoAggiECAba0G84f//AGo2AoABIAIgDyAVajYCzAEgAiANIB1qNgLIASACIAwgFGo2AsQBIAIgCyAfajYCwAEgAiAKIBNqNgK8ASACIAkgIGo2ArgBIAIgCCASajYCtAEgAiAHICFqNgKwASACIAYgEWo2AqwBIAIgBSAQajYCqAEgAyAYIA4QOyACKAKYAyEFIAIoApwDIQYgAigCoAMhByACKAKkAyEIIAIoAqgDIQkgAigCrAMhCiACKAKwAyELIAIoArQDIQwgAigCuAMhDSACIAIoArwDQRhsNgKUAyACIA1BGGw2ApADIAIgDEEYbDYCjAMgAiALQRhsNgKIAyACIApBGGw2AoQDIAIgCUEYbDYCgAMgAiAIQRhsNgL8AiACIAdBGGw2AvgCIAIgBkEYbDYC9AIgAiAFQRhsNgLwAiADIAEQxAEgAigCmAMhBiACKAKcAyEHIAIoAqADIQggAigCpAMhCSACKAKoAyEKIAIoAqwDIQsgAigCsAMhDCACKAK0AyENIAIoArgDIQ4gAigCvAMhDyACQdABaiIFIAJB2ABqIAQQOyABQSBqIBwpAgA3AwAgAUEYaiAeKQIANwMAIAFBEGogFykCADcDACABQQhqIBYpAgA3AwAgAiACKQKAATcD8AIgAyABIAJBqAFqEDsgAiACKAK8AyAPQQdsajYCxAIgAiACKAK4AyAOQQdsajYCwAIgAiACKAK0AyANQQdsajYCvAIgAiACKAKwAyAMQQdsajYCuAIgAiACKAKsAyALQQdsajYCtAIgAiACKAKoAyAKQQdsajYCsAIgAiACKAKkAyAJQQdsajYCrAIgAiACKAKgAyAIQQdsajYCqAIgAiACKAKcAyAHQQdsajYCpAIgAiACKAKYAyAGQQdsajYCoAIgAkH4AWoiBCACQaACahDEASABIBggGRA7IAMgASAaEDsgAiACKAK8A0EDdDYC7AIgAiACKAK4A0EDdDYC6AIgAiACKAK0A0EDdDYC5AIgAiACKAKwA0EDdDYC4AIgAiACKAKsA0EDdDYC3AIgAiACKAKoA0EDdDYC2AIgAiACKAKkA0EDdDYC1AIgAiACKAKgA0EDdDYC0AIgAiACKAKcA0EDdDYCzAIgAiACKAKYA0EDdDYCyAIgAyACQcgCahDEASAAQSBqIAVBIGopAgA3AgAgAEEYaiAFQRhqKQIANwIAIABBEGogBUEQaikCADcCACAAQQhqIAVBCGopAgA3AgAgACACKQLQATcCACAAIAIpAvgBNwIoIABBMGogBEEIaikCADcCACAAQThqIARBEGopAgA3AgAgAEFAayAEQRhqKQIANwIAIABByABqIARBIGopAgA3AgAgAEHwAGogA0EgaikCADcCACAAQegAaiADQRhqKQIANwIAIABB4ABqIANBEGopAgA3AgAgAEHYAGogA0EIaikCADcCACAAIAIpApgDNwJQIAJBwANqJAALpg0BBX8CQAJAAkACQAJAAkACQAJAAkACQCAALQDAAQ4HBwgIAAECAwgLIAAoAtABIgIgAEHUAWooAgAiAygCABEAAEHEASEBIAMoAgQiBEUNBSACIAQgAygCCBDIAwwFCyAAKALcASIDIABB4AFqKAIAIgEoAgAR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ADcDACACQQhqQgA3AwAgBEIANwOgAiACIAVB1AEQRSAGIAJBIBCUASAGQQRqIQIgBCgCgAFFBEAgB0EYaiACQRhqKQIAIgs3AwAgBEHAAmoiCEEIaiACQQhqKQIANwMAIAhBEGogAkEQaikCADcDACAIQRhqIAs3AwAgBCACKQIANwPAAiAJIAMQkgMgBiABIAgQkwMgByAGIAoQlAMgCSAHELcDIQEgAEEENgIAIAAgAToABCAIELcCIAMQtwIMBwsgBEHgA2ogAkEIaigCACIBNgIAIAQgAikCACILNwPYAyAAQQM2AgAgACALNwIEIABBDGogATYCACAEQYACahC3AgwGC0EBQfQBQeiVwgAoAgAiAEG8ASAAGxEBAAALIARB4wNqIARBjAFqKQIAIgs3AAAgBCAEKQKEASIMNwDbAyAAQQhqIAs3AAAgACAMNwAADAQLIAggBEHoAmooAgAiATYCACAEIAQpAuACIgs3A9gDIABBAzYCACAAIAs3AgQgAEEMaiABNgIADAMLIARBiAFqIARB4ANqKAIAIgE2AgAgBCAEKQLYAyILNwOAASAAQQM2AgAgACALNwIEIABBDGogATYCAAwCCyAEQeADaiACQQhqKAIAIgE2AgAgBCACKQIAIgs3A9gDIABBAzYCACAAIAs3AgQgAEEMaiABNgIADAELIARB4ANqIAJBCGooAgAiATYCACAEIAIpAgAiCzcD2AMgAEEDNgIAIAAgCzcCBCAAQQxqIAE2AgALIAVB9AFBARDIAyAEQdAEaiQAC7oHAgd/A34jAEGgAmsiAyQAIANB4ABqQgA3AwAgA0HYAGpCADcDACADQdAAakIANwMAIANByABqQgA3AwAgA0FAa0IANwMAIANBOGpCADcDACADQTBqQgA3AwAgA0EAOgBoIANBCGpB0IrBACkDADcDACADQRBqQdiKwQApAwA3AwAgA0EYakHgisEAKQMANwMAIANCADcDKCADQgA3AyAgA0HIisEAKQMANwMAIANBKGohBAJAIAJBP00EQCAEIAEgAhDmAxoMAQsgAyACQQZ2IgWtNwMgIAMgASAFEBYgBCABIAJBQHFqIAJBP3EiAhDmAxoLIAMgAjoAaCADQfAAaiADQfAAEOYDGiADQZgBaiIFIAMtANgBIgRqIgFBgAE6AAAgAykDkAEiCkIJhiEL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IANBBHRBBBDIAwsL+gYBCH8jAEHwEWsiAyQAIAItAAAhBiADQcQHaiIEIAFB+AAQ5gMaIAMgBjoAvAggA0H8//8HIAMoApAIazYC1AogA0H8////ACADKAKMCGs2AtAKIANB/P///wAgAygCiAhrNgLMCiADQfz///8AIAMoAoQIazYCyAogA0H8////ACADKAKACGs2AsQKIANB/P///wAgAygC/AdrNgLACiADQfz///8AIAMoAvgHazYCvAogA0H8////ACADKAL0B2s2ArgKIANB/P3//wAgAygC8AdrNgK0CiADQbzh//8AIAMoAuwHazYCsAogA0G4CWoiAkEoaiIHIANBsApqIgUQxAEgAkEgaiABQSBqKQIANwMAIAJBGGogAUEYaikCADcDACACQRBqIAFBEGopAgA3AwAgAkEIaiABQQhqKQIANwMAIAJB2ABqIARB2ABqKQIANwMAIAJB4ABqIARB4ABqKQIANwMAIAJB6ABqIARB6ABqKQIANwMAIAJB8ABqIARB8ABqKQIANwMAIAMgASkCADcDuAkgAyADKQKUCDcDiAogAyAEIAIgBhCnASAFIARBKGogByAGEKcBIANBwAhqIgFB0ABqIARB0ABqIAJB0ABqIAYQpwEgAUEgaiADQSBqKQIANwMAIAFBGGogA0EYaikCADcDACABQRBqIANBEGopAgA3AwAgAUEIaiADQQhqKQIANwMAIANB8AhqIAVBCGopAgA3AwAgA0H4CGogBUEQaikCADcDACADQYAJaiAFQRhqKQIANwMAIANBiAlqIAVBIGopAgA3AwAgAyADKQIANwPACCADIAMpArAKNwPoCCAFIAFB+AAQ5gMaIAVB+ABqIAFB+AAQ5gMhAiADQaAMaiABQfgAEOYDIQQgA0GYDWogAUH4ABDmAyEGIANBkA5qIAFB+AAQ5gMhByADQYgPaiABQfgAEOYDIQggA0GAEGogAUH4ABDmAyEJIANB+BBqIAFB+AAQ5gMgAyABIAUQICADIAEgAiADQfgAEOYDECAgAyABIAQgA0H4ABDmAxAgIAMgASAGIANB+AAQ5gMQICADIAEgByADQfgAEOYDECAgAyABIAggA0H4ABDmAxAgIAMgASAJIANB+AAQ5gMQICADQfgAEOYDGiAAIAMgBUHABxDmAyIAQcAHEOYDGiAAQfAR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NwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCACIdNwMAIAUgCCkCACIeNwMAIBIgCSkCADcDACATIAopAgA3AwAgFCAeNwMAIBUgHTcDACABIAEpAsgCIh03A6ACIAEgHTcD+AEgAUGAAWoiFiAOIBEQOyADIBZBIGopAgA3AwAgBSAWQRhqKQIANwMAIAsgFkEQaikCADcDACAMIBZBCGopAgA3AwAgASABKQKAATcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIANwMAIAUgCCkCADcDACALIAopAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAYgBBBDIAMgBykCADcDACAFIAgpAgA3AwAgCyAKKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAGIAQQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBiAEEEMgAyAHKQIAIh03AwAgBSAIKQIAIh43AwAgEiAJKQIANwMAIBMgCikCADcDACAUIB43AwAgFSAdNwMAIAEgASkCyAIiHTcDoAIgASAdNwP4ASABQagBaiIEIA4gFhA7IAMgBEEgaikCADcDACAFIARBGGopAgA3AwAgCyAEQRBqKQIANwMAIAwgBEEIaikCADcDACABIAEpAqgBNwOgAkEsIQ4DQCABQcgCaiIEIAFBoAJqIgYQQyADIAcpAgA3AwAgBSAIKQIANwMAIAsgCikCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgDkEBayIODQALIARBIGoiCiAGQSBqIgcpAwA3AwAgBEEYaiILIAZBGGoiCCkDADcDACAEQRBqIgwgBkEQaiIJKQMANwMAIARBCGoiDiAGQQhqIgYpAwA3AwAgASABKQOgAjcDyAIgAUHQAWoiAyAEIAFBqAFqEDsgByADQSBqKQIANwMAIAggA0EYaikCADcDACAJIANBEGopAgA3AwAgBiADQQhqKQIANwMAIAEgASkC0AE3A6ACQdgAIQQDQCABQcgCaiIDIAFBoAJqIgUQQyAHIAopAgA3AwAgCCALKQIANwMAIAkgDCkCADcDACAGIA4pAgA3AwAgASABKQLIAjcDoAIgBEEBayIEDQALIANBIGoiBiAFQSBqIgcpAwA3AwAgA0EYaiIIIAVBGGoiCSkDADcDACADQRBqIgogBUEQaiILKQMANwMAIANBCGoiDCAFQQhqIg4pAwA3AwAgASABKQOgAjcDyAIgBSADIAFB0AFqEDtBLCEEA0AgAUHIAmoiBSABQaACaiIDEEMgByAGKQIANwMAIAkgCCkCADcDACALIAopAgA3AwAgDiAMKQIANwMAIAEgASkCyAI3A6ACIARBAWsiBA0ACyAFQSBqIgYgA0EgaiIEKQMANwMAIAVBGGoiByADQRhqIgopAwA3AwAgBUEQaiIIIANBEGoiCykDADcDACAFQQhqIgkgA0EIaiIMKQMANwMAIAEgASkDoAI3A8gCIAMgBSABQagBahA7IAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIAIh03AwAgAUH4AWoiDkEIaiISIAkpAgA3AwAgDkEQaiITIAgpAgA3AwAgDkEYaiIUIAcpAgA3AwAgDkEgaiIVIB03AwAgASABKQLIAiIdNwOgAiABIB03A/gBIAMgDiABQTBqEDsgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCACIdNwMAIBIgCSkCADcDACATIAgpAgA3AwAgFCAHKQIANwMAIBUgHTcDACABIAEpAsgCIh03A6ACIAEgHTcD+AEgAyAOIAFBgAFqEDsgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgA3AwAgCiAHKQIANwMAIAsgCCkCADcDACAMIAkpAgA3AwAgASABKQLIAjcDoAIgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCADcDACAKIAcpAgA3AwAgCyAIKQIANwMAIAwgCSkCADcDACABIAEpAsgCNwOgAiAFIAMQQyAEIAYpAgAiHTcDACASIAkpAgA3AwAgEyAIKQIANwMAIBQgBykCADcDACAVIB03AwAgASABKQLIAiIdNwOgAiABIB03A/gBIAMgDiABQQhqEDsgBSADEEMgBCAGKQIANwMAIAogBykCADcDACALIAgpAgA3AwAgDCAJKQIANwMAIAEgASkCyAI3A6ACIAUgAxBDIAQgBikCACIdNwMAIBIgCSkCACIfNwMAIBMgCCkCACIgNwMAIBQgBykCACIhNwMAIBUgHTcDACABIAEpAsgCIh43A6ACIAEgHjcD+AEgBCAdNwMAIAogITcDACALICA3AwAgDCAfNwMAIAEgHjcDoAIgBSADIA4QOyAQKAIAIAEoAsgCayAQKAIkIAEoAuwCa0H8//8HaiIFQRZ2IgRB0QdsakG84f//AGohAyAFQf///wFxIBAoAiAgASgC6AJrIBAoAhwgASgC5AJrIBAoAhggASgC4AJrIBAoAhQgASgC3AJrIBAoAhAgASgC2AJrIBAoAgwgASgC1AJrIBAoAgggASgC0AJrIBAoAgQgASgCzAJrIARBBnRqIANBGnZqQfz9//8AaiIFQRp2akH8////AGoiBEEadmpB/P///wBqIgZBGnZqQfz///8AaiIHQRp2akH8////AGoiCEEadmpB/P///wBqIglBGnZqQfz///8AaiIKQRp2akH8////AGoiC0EadmohDCAMIAMgBXIgBHIgBnIgB3IgCHIgCXIgCnIgC3JB////H3FyBH8gBUHAAHMgA0HQB3NxIAxBgICAHnNxIARxIAZxIAdxIAhxIAlxIApxIAtxQf///x9GBUEBCyEDIwBBEGsiBSADOgAPIA8gBS0ADzoAKCAPQSBqIBUpAwA3AgAgD0EYaiAUKQMANwIAIA9BEGogEykDADcCACAPQQhqIBIpAwA3AgAgDyABKQP4ATcCACABQfACaiQAIA1B2AJqIgFBIGpCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACANQgA3A9gCIA1BsAJqIgMgASAPIA0tANgBEKcBIA1BgANqIg8gAxBuIA1B/P//ByANKAKkA2s2AoQCIA1B/P///wAgDSgCoANrNgKAAiANQfz///8AIA0oApwDazYC/AEgDUH8////ACANKAKYA2s2AvgBIA1B/P///wAgDSgClANrNgL0ASANQfz///8AIA0oApADazYC8AEgDUH8////ACANKAKMA2s2AuwBIA1B/P///wAgDSgCiANr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AUtyOgAPIAYgBi0AD0F/c0EBcToADyAGLQAPIQwgAUHYAmoiBkEgaiIPIAcpAgA3AwAgBkEYaiIQIAgpAgA3AwAgBkEQaiIRIAopAgA3AwAgBkEIaiISIAspAgA3AwAgASAMOgCAAyABIAEpArABNwPYAiAHQgA3AwAgCEIANwMAIApCADcDACALQgA3AwAgAUIANwOwASABQQxqIhMgBSAGIAwQpwEgASAMOgA0IAUgA0EhahByIwBBEGsiAyABKALUASIJQf///wFGIAcoAgAgASgCzAEgCCgCACABKALEASAKKAIAIAEoArwBIAsoAgBxcXFxcXFB////H0ZxIAEoArQBIAEoArABQdEHakEadmpBQGtB////H0txIAlB////AUtyOgAPIwBBEGsiCSADLQAPQX9zQQFxOgAPIAktAA8hCSAPIAcpAgA3AwAgECAIKQIANwMAIBEgCikCADcDACASIAspAgA3AwAgASAJOgCAAyABIAEpArABNwPYAiAHQgA3AwAgCEIANwMAIApCADcDACALQgA3AwAgAUIANwOwASABQThqIg0gBSAGIAkQpwEgAUGIAWoiDkEgakIANwMAIA5BGGpCADcDACAOQRBqQgA3AwAgDkEIakIANwMAIAFCADcDiAEgAUHgAGoiAyAOIBMgDBCnASAHIA1BIGopAgA3AwAgCCANQRhqKQIANwMAIAogDUEQaikCADcDACALIA1BCGopAgA3AwAgASABKQI4NwOwASABIAk6ANgBIAFBiAJqIghBIGpCADcDACAIQRhqQgA3AwAgCEEQakIANwMAIAhBCGpCADcDACABQgA3A4gCIAFB4AFqIgcgCCAFIAkQpwEgBiAHIAcQOyABKALYAiEFIAEoAtwCIQggASgC4AIhCiABKALkAiELIAEoAugCIQwgASgC7AIhCSABKALwAiENIAEoAvQCIQ4gASgC+AIhEyABKAL8AiEVIAFBsAJqIhQgAyADEDsgAUGoA2oiFiAUIAMQOyASIANBCGopAgA3AwAgESADQRBqKQIANwMAIBAgA0EYaikCADcDACAPIANBIGopAgA3AwAgASABKQJgNwPYAiABKAKoAyEDIAEoAqwDIQ8gASgCsAMhECABKAK0AyERIAEoArgDIRIgASgCvAMhFCABKALAAyEXIAEoAsQDIRggASgCyAMhGSABKALMAyEaIAFBoANqIAdBIGopAgA3AwAgBkFAayAHQRhqKQIANwMAIAFBkANqIAdBEGopAgA3AwAgAUGIA2ogB0EIaikCADcDACABIAEpAuABNwOAAyABIBogFWtB/P//B2o2AswDIAEgGSATa0H8////AGo2AsgDIAEgGCAOa0H8////AGo2AsQDIAEgFyANa0H8////AGo2AsADIAEgFCAJa0H8////AGo2ArwDIAEgEiAMa0H8////AGo2ArgDIAEgESALa0H8////AGo2ArQDIAEgECAKa0H8////AGo2ArADIAEgDyAIa0H8/f//AGo2AqwDIAEgAyAFa0HD4f//AGo2AqgDIBYQugEhAyMAQRBrIgUgAyABLQDYAXE6AA8jAEEQayIDIAUtAA8gAS0ANHE6AA8gAy0ADyEDIAIgBkHQABDmAyIFIAM6AFQgBUEAOgBQDAELIwBBEGsiA0EBOgAPIAMtAA8hAyACQfzMwQBB1AAQ5gMgAzoAVAsgAUHQA2okACACQaQCaiIBQdDNwQBB1AAQ5gMaIAJB0AFqIgMgASACIAItAFQiBRCnASADQShqIAFBKGogAkEoaiAFEKcBIAItAFAhByACLQD0AiEGIAJB+AJqIgFByABqIANByABqKQMANwMAIAFBQGsgA0FAaykDADcDACABQThqIANBOGopAwA3AwAgAUEwaiADQTBqKQMANwMAIAFBCGogA0EIaikDADcDACABQRBqIANBEGopAwA3AwAgAUEYaiADQRhqKQMANwMAIAFBIGogA0EgaikDADcDACACIAIpA/gBNwOgAyACIAIpA9ABNwP4AiACQegDakHkz8EAKQIANwMAIAJB4ANqQdzPwQApAgA3AwAgAkHYA2pB1M/BACkCADcDACACQdADakHMz8EAKQIANwMAIAJBxM/BACkCADcDyAMjAEEQayIIIAZBACAFayAGIAdzcXM6AA8gAkHYAGoiAyABQaTOwQAgCC0ADyIFEKcBIANBKGogAUEoakHMzsEAIAUQpwEgA0HQAGogAUHQAGpB9M7BACAFEKcBIAItAFQhASAEQZABaiADQfgAEOYDIAE6AHggAkHwA2okACAELQCIAiIBDQJBsZXCAC0AABpBF0EBEL0DIgFFDQYgAEEXNgIMIAAgATYCCCAAQRc2AgQgAUEPakGxwcEA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EMoDAAsgAEGABDsBCiAAQgA3AQIgAEHcxAA7AQALIANBIGokAAuyBgEFfwJAAkACQAJAIAAtAMAFDgQAAwMBAwsgACgCACIBRQ0CIABBBGohAgwBCyAAQThqEFQgACgCMCEEAkAgACgCNCIDRQ0AIAQhASADQQdxIgIEQANAIAFBADoAACABQQFqIQEgAkEBayICDQALCyADQQhJDQAgAyAEaiECA0AgAUEAOgAAIAFBADoAASABQQA6AAIgAUEAOgADIAFBADoABCABQQA6AAUgAUEAOgAGIAFBADoAByACIAFBCGoiAUcNAAsLIABBADYCNAJAIAAoAiwiAUEATgRAAkAgAUUNACABQQdxIQNBACECIAFBCE8EQCABQfj///8HcSEFA0AgAiAEaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIAUgAkEIaiICRw0ACwsgA0UNACACIARqIQEDQCABQQA6AAAgAUEBaiEBIANBAWsiAw0ACwsgACgCLCIBBEAgACgCMCABQQEQyAMLIAAoAiQhBAJAIAAoAigiA0UNACAEIQEgA0EHcSICBEADQCABQQA6AAAgAUEBaiEBIAJBAWsiAg0ACwsgA0EISQ0AIAMgBGohAgNAIAFBADoAACABQQA6AAEgAUEAOgACIAFBADoAAyABQQA6AAQgAUEAOgAFIAFBADoABiABQQA6AAcgAiABQQhqIgFHDQALCyAAQQA2AiggACgCICIBQQBIDQECQCABRQ0AIAFBB3EhA0EAIQIgAUEITwRAIAFB+P///wdxIQUDQCACIARqIgFBADoAACABQQFqQQA6AAAgAUECakEAOgAAIAFBA2pBADoAACABQQRqQQA6AAAgAUEFakEAOgAAIAFBBmpBADoAACABQQdqQQA6AAAgBSACQQhqIgJHDQALCyADRQ0AIAIgBGohAQNAIAFBADoAACABQQFqIQEgA0EBayIDDQALCyAAKAIgIgFFDQMgAEEkaiECDAILQfiVwQBBLUGEl8EAEPUCAAtB+JXBAEEtQYSXwQAQ9QIACyACKAIAIAFBARDIAwsLlgcBCH8jAEFAaiIDJAACfwJAAkACQAJAAkACQAJAAkACfwJAAkACQCAB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FGoiCSEICyAEQcABaiIDIARBKGoiAkEIaiIcKQMANwMAIAQgBCkDKDcDuAEgHykCACEpICAoAgAhISAeKAIAISIgHSgCACEmIBwgFikDADcDACACQRBqIicgFSkDADcDACACQRhqIhcgFCkDADcDACAEIAQpAwg3AyggBCAKNgJIIBsgBCkDuAE3AgAgG0EIaiADKQMANwIAIAQgETYCXCAEICg3A2AgBEEAOgC0ASAEICY2AoABIAQgIjYCfCAEICE2AnQgBCAHNgJwIAQgKTcDaCAEIA02AnggFygCACECIARBzAFqIhEgJUHwABDmAxogFyACQQFqNgIAIAQgAjYCvAIgDygCACIKKAIIISECQAJAA0AgCigCBCECA0AgAkF/Rg0BIAJBAEgNAiAKIAJBAWogCigCBCIDIAIgA0YbNgIEIAIgA0cgAyECDQALC0GxlcIALQAAGkGUAUEEEL0DIgJFDQogAiAKNgIIIAJCgYCAgBA3AgAgAkEMaiARQfQAEOYDGiACQQE7AZABIAJBADYCjAEgAkIANwKEASACICFBCGo2AoABIA9BADoACCAPKAIEIQMgDyACQQhqIgo2AgQCQCADBEAgDygCACgCCEEIaiERA0AgAygCeCARRg0ACyADKAKAASERIAIgAzYCgAEgAiARQQFqNgKIASADIAo2AnwMAQsgAkEANgKAASACQQE2AogBCyACQQA2AowBIA8oAgAiAigCGCACIAo2AhggCjYChAEMAQsQ5wMACyAWIBwpAwA3AwAgFSAnKQMANwMAIBQgFykDADcDACAEIAQpAyg3AwggDUEBaiENIAghAyAMIQIgGkEBayIaDQALIA4gBmtBDG4hCAsgEyAEKQMINwIAIBNBGGogFCkDADcCACATQRBqIBUpAwA3AgAgE0EIaiAWKQMANwIAIAYgDkcEQEEAIQoDQCAGIApBDGxqIgEoAggiDQRAIAEoAgQhAwNAIAMQtwIgA0EgaiEDIA1BAWsiDQ0ACwsgASgCACICBEAgASgCBCACQQV0QQQQyAMLIApBAWoiCiAIRw0ACwsgGQRAICQgGUEMbEEEEMgDCyASIAlrQRRuIQMgCSASRwRAA0AgCSgCACIBBEAgCUEEaigCACABQQEQyAMLIAlBFGohCSADQQFrIgMNAAsLIBgEQCAjIBhBFGxBBBDIAwsg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Ai0AACEBQQEMAwsgASgCGCICBEAgAyACQQEQyAMLIAFBADYCEEEADAILIAcpAgghCyABIAI2AgggASALpyIDNgIEIAEgAzYCACABIAMgC0IgiKdqIgY2AgwgAyECDAILIAEgAkEBajYCBCACLQAAIQFBAQshAiAAIAE6AAEgACACOgAAIAdBEGokAA8LQQAhBAwACwALnAMBBH8CQAJAAkACQAJAAkAgAC0AoQcOBQAFBQECBQsgAEE0ahC3AiAAQdQAahC3AiAAQfQAahC3AiAAKAIAIgFFDQQgACgCBCABQQEQyAMPCyAAKALMByICIABB0AdqKAIAIgEoAgARAAAgASgCBCIDBEAgAiADIAEoAggQyAMLQawHIQEgACgCuAciAkUNASAAKAK8ByACQQEQyAMMAQsgAC0A6AdBA0cNASAAKALgByIDIABB5AdqKAIAIgIoAgARAABB1AchASACKAIEIgRFDQAgAyAEIAIoAggQyAMLIAAgAWoiASgCACICRQ0AIAEoAgQgAkEBEMgDCyAAKAKUByIBBEAgACgCmAcgAUEBEMgDCyAAQfQGahC3AiAAQQA6AKMHIABB1AZqELcCIABBtAZqELcCIABBADoApAcgACgCqAYiAQRAIAAoAqwGIAFBARDIAwsgAEGIBmoQtwIgAEHABWoQtwIgAEGgBWoQtwIgAEGABWoQtwIgACgC9AMiAQRAIAAoAvgDIAFBARDIAwsgAEEANgClBwsL8wIBBH8gACgCDCECAkACQCABQYACTwRAIAAoAhghAwJAAkAgACACRgRAIABBFEEQIAAoAhQiAhtqKAIAIgENAUEAIQIMAgsgACgCCCIBIAI2AgwgAiABNgIIDAELIABBFGogAEEQaiACGyEEA0AgBCEFIAEiAigCFCEBIAJBFGogAkEQaiABGyEEIAJBFEEQIAEbaigCACIBDQALIAVBADYCAAsgA0UNAiAAIAAoAhxBAnRB/JXCAGoiASgCAEcEQCADQRBBFCADKAIQIABGG2ogAjYCACACRQ0DDAILIAEgAjYCACACDQFBmJnCAEGYmcIAKAIAQX4gACgCHHdxNgIADAILIAIgACgCCCIARwRAIAAgAjYCDCACIAA2AggPC0GUmcIAQZSZwgAoAgBBfiABQQN2d3E2AgAPCyACIAM2AhggACgCECIBBEAgAiAB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QQFrNgIEIABBAUcNACABQSBBBBDIAwsgBEEQaiQADwsCQCACRQRAIAEoAhggAEcNASABKAIIIgJBADYCjAUgASgCGCABIAJBCGoiAjYCGCACNgKEBSAAKAKEBSICRQ0BCyABIAI2AhwgAEEIayIAKAIAIQIgACACQQFrNgIAIAQgADYCDCACQQFHDQEgBEEMahClAgwBCwtBgP3AAEEUEJ4DAAvFAgEFfyMAQRBrIgQkACAAKAIAIgFBCGohBQNAIAEoAhwiAygCfCEAAkAgASgCCCICQQhqIANHBEAgACECIAMhAAwBCyAABEAgASAANgIcIAAoAnwhAgwBCyABKAIMIgAEQCABKAIQIAAoAgwRAAAgASgCCCECCyACIAIoAgAiAEEBazYCACAAQQFGBEAgBRCmAgsCQCABQX9GDQAgASABKAIEIgBBAWs2AgQgAEEBRw0AIAFBIEEEEMgDCyAEQRBqJAAPCwJAIAJFBEAgASgCGCAARw0BIAEoAggiAkEANgKEASABKAIYIAEgAkEIaiICNgIYIAI2AnwgACgCfCICRQ0BCyABIAI2AhwgAEEIayIAKAIAIQIgACACQQFrNgIAIAQgADYCDCACQQFHDQEgBEEMahCmAgwBCwtBgP3AAEEUEJ4DAAvJAgEFfyMAQRBrIgQkACAAKAIAIgFBCGohBQNAIAEoAhwiAygCjAYhAAJAIAEoAggiAkEIaiADRwRAIAAhAiADIQAMAQsgAARAIAEgADYCHCAAKAKMBiECDAELIAEoAgwiAARAIAEoAhAgACgCDBEAACABKAIIIQILIAIgAigCACIAQQFrNgIAIABBAUYEQCAFEKcCCwJAIAFBf0YNACABIAEoAgQiAEEBazYCBCAAQQFHDQAgAUEgQQQQyAMLIARBEGokAA8LAkAgAkUEQCABKAIYIABHDQEgASgCCCICQQA2ApQGIAEoAhggASACQQhqIgI2AhggAjYCjAYgACgCjAYiAkUNAQsgASACNgIcIABBCGsiACgCACECIAAgAkEBazYCACAEIAA2AgwgAkEBRw0BIARBDGoQpwIMAQsLQYD9wABBFBCeAwALswIBEn8gAigCACENIAEoAgAhBCACKAIEIQ4gASgCBCEFIAIoAgghDyABKAIIIQYgAigCDCEQIAEoAgwhByACKAIQIREgASgCECEIIAIo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AgAgASgCJCIDQRZ2IgJB0QdsaiIEQf///x9xNgIAIAAgASgCBCACQQZ0aiAEQRp2aiICQf///x9xNgIEIAAgASgCCCACQRp2aiICQf///x9xNgIIIAAgASgCDCACQRp2aiICQf///x9xNgIMIAAgASgCECACQRp2aiICQf///x9xNgIQIAAgASgCFCACQRp2aiICQf///x9xNgIUIAAgASgCGCACQRp2aiICQf///x9xNgIYIAAgASgCHCACQRp2aiICQf///x9xNgIcIAAgASgCICACQRp2aiIBQf///x9xNgIgIAAgA0H///8BcSABQRp2ajYCJAv/AQEGfyAAKAIARQRAIABBfzYCACAAKAIUIQMgAEEANgIUAkAgA0UNACAAKAIoIAAoAiQhBCAAKAIgIQYgACgCGCEFAkAgACgCHBAGRQ0AIAMgBSgCABEAACAFKAIEIghFDQAgAyAIIAUoAggQyAMLEAZFDQAgBiAEKAIAEQAAIAQoAgQiA0UNACAGIAMgBCgCCBDIAwsgAEEIaiEDAkAgACgCBEECRg0AIAMoAgAiBEEkSQ0AIAQQAAsgACABNgIEIAMgAjYCACAAKAIMIQEgAEEANgIMIAAgACgCAEEBajYCACABBEAgACgCECABKAIEEQAACw8LQdS0wQAQ2gIAC7ACAgF/AX4CQCABLQAERQRAQbGVwgAtAAAaQThBARC9AyIBRQ0BIABBODYCECAAIAE2AgwgAEKAgICAgAc3AgQgAUEwakGEscEAKQAANwAAIAFBKGpB/LDBACkAADcAACABQSBqQfSwwQApAAA3AAAgAUEYakHssMEAKQAANwAAIAFBEGpB5LDBACkAADcAACABQQhqQdywwQApAAA3AAAgAUHUsMEAKQAANwAAIABBATYCAA8LIAEoAgAiASgCBCIDKQMAIgQgAnwhAiADIAI3AwAgACAENwMIIAAgAjcDECAAIAEoAgAiASkAADcAGCAAQSBqIAFBCGopAAA3AAAgAEEoaiABQRBqKAAANgAAIABBADYCAA8LQQFBOEHolcIAKAIAIgBBvAEgABsRAQAAC4cCAQN/AkACQAJAAkACQCAALQDwAQ4FAAQEAQIECyAAKAIAIgFFDQMgACgCBCABQQEQyAMPCyAAKAKMAiICIABBkAJqKAIAIgEoAgARAAAgASgCBCIDBEAgAiADIAEoAggQyAMLIAAoAoACIgEEQCAAKAKEAiABQQEQyAMLIAAoAvQBIgFFDQEgACgC+AEgAUEBEMgDDAELIABB/AFqEIoCCyAAKALkASIBBEAgACgC6AEgAUEBEMgDCyAAQcwAahC3AiAAKAJAIgEEQCAAKAJEIAFB+ABsQQQQyAMLAkAgAC0A8QFFDQAgACgCLCIBRQ0AIAAoAjAgAUEBEMgDCyAAQQA6APEBCwuRAgEBfyMAQSBrIgMkAAJAAkAgAkEHcUUEQCADIAI2AhggAyABNgIUIANBCDYCHCADQQhqIgEgA0EUahBZIABBDGogAUEIaigCADYCACAAIAMpAgg3AgRBBCEBDAELQQAhAUGxlcIALQAAGkErQQEQvQMiAkUNASAAQSs2AgwgACACNgIIIABBKzYCBCACQSdqQdulwQAoAAA2AAAgAkEgakHUpcEAKQAANwAAIAJBGGpBzKXBACkAADcAACACQRBqQcSlwQApAAA3AAAgAkEIakG8pcEAKQAANwAAIAJBtKXBACkAADcAAAsgACABNgIAIANBIGokAA8LQQFBK0HolcIAKAIAIgBBvAEgABsRAQAAC4oCAgR/AX4jAEEwayICJAAgASgCAEGAgICAeEYEQCABKAIMIQMgAkEkaiIEQQhqIgVBADYCACACQoCAgIAQNwIkIARBxODBACADEGgaIAJBIGogBSgCACIDNgIAIAIgAikCJCIGNwMYIAFBCGogAzYCACABIAY3AgALIAEpAgAhBiABQoCAgIAQNwIAIAJBEGoiAyABQQhqIgEoAgA2AgAgAUEANgIAQbGVwgAtAAAaIAIgBjcDCEEMQQQQvQMiAUUEQEEEQQxB6JXCACgCACIAQbwBIAAbEQEAAAsgASACKQMINwIAIAFBCGogAygCADYCACAAQaDqwQA2AgQgACABNgIAIAJBMGokAAv4AQEDfyMAQRBrIgMkACAAIAAoAggiAkEBIAIbNgIIAkACQAJAAkACQCACDgMABAEECyADQQhqIAEoAgQgASgCACgCABEBACADKAIMIQEgAygCCCECIAAoAgAiBARAIABBBGooAgAgBCgCDBEAAAsgACACNgIAIABBBGoiAiABNgIAIAAoAggiBEEBRiEBIABBACAEIAEbNgIIIAENAyAAKAIAIQEgAEEANgIAIAFFDQEgAigC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ASgCLCIDIAEoAmAiAksEQCABKAIoIAJBA3RqIgIoAgAEQCAAIAEgAigCBBCGAQ8LQbGVwgAtAAAaQShBARC9AyIBRQ0BIABBKDYCECAAIAE2AgwgAEKAgICAgAU3AgQgAEEBOgAAIAFBIGpBnKvBACkAADcAACABQRhqQZSrwQApAAA3AAAgAUEQakGMq8EAKQAANwAAIAFBCGpBhKvBACkAADcAACABQfyqwQApAAA3AAAPCyACIANB7KrBABC0AgALQQFBKEHolcIAKAIAIgBBvAEgABsRAQAAC8YCAQd/QbSVwgAoAgAiASgCCEUEQCABQX82AgggASgCGCIDIAEoAgwiAkYEQCABQQxqIgIoAgAhAyACIAMQ3QEgAigCCCIGIAMgAigCDCIEa0sEQAJAIAQgAyAGayIEayEFIAQgBUsgAigCACIHIANrIAVPcUUEQCACKAIEIgUgByAEayIDQQJ0aiAFIAZBAnRqIARBAnQQ5AMgAiADNgIIDAELIAIoAgQiAiADQQJ0aiACIAVBAnQQ5gMaCwsgASgCGCEDIAEoAgwhAgsgASgCECABKAIUIANqIgMgAkEAIAIgA00ba0ECdGogADYCACABLQAcIQAgAUEBOgAcIAEgASgCGEEBajYCGCABIAEoAghBAWo2AggCQCAADQBBxJXCACgCAEHAlcIAKAIAEAoiAEEkSQ0AIAAQAAsPC0HIs8EAENoCAAu7AQEFfyMAQRBrIgMkACABKAIAIgEoAghFBEAgASgCDCEFIAFC/////y83AgggASgCECEGIAEgBUECRgR/IANBCGogAigCACICKAIEIAIoAgAoAgARAQAgAygCDCECIAMoAgghBCABKAIUIgcEQCABQRhqKAIAIAcoAgwRAAALIAEgAjYCGCABIAQ2AhQgASgCCEEBagVBAAs2AgggACAGNgIEIAAgBTYCACADQRBqJAAPC0HktMEAENoCAAu4AQEEfyAALQAUIQEgAEEBOgAUIABBCGshAgJAIAFFBEAQigEgAiACKAIAQQFqIgE2AgAgAUUNASACEPYBCyACIAIoAgBBAWsiATYCAAJAIAENACAAKAIEIgEEQCABIAAoAggiAygCABEAACADKAIEIgQEQCABIAQgAygCCBDIAwsgACgCECAAKAIMKAIMEQAACyAAQQRrIgEoAgBBAWshACABIAA2AgAgAA0AIAJBIEEEEMgDCw8LAAuxAQEBfyMAQRBrIgckACAAKAIUIAEgAiAAKAIYKAIMEQMAIQEgB0EAOgANIAcgAToADCAHIAA2AgggB0EIaiADIAQgBSAGEJEBIQIgBy0ADCEBAn8gAUEARyAHLQANRQ0AGkEBIAENABogAigCACIALQAcQQRxRQRAIAAoAhRB6/nBAEECIAAoAhgoAgwRAwAMAQsgACgCFEHq+cEAQQEgACgCGCgCDBEDAAsgB0EQaiQAC5sBAQF/AkACQCABBEAgAkEASA0BAn8gAygCBARAAkAgAygCCCIERQRADAELIAMoAgAgBCABIAIQsgMMAgsLIAEgAkUNABpBsZXCAC0AABogAiABEL0DCyIDBEAgACACNgIIIAAgAzYCBCAAQQA2AgAPCyAAIAI2AgggACABNgIEDAILIABBADYCBAwBCyAAQQA2AgQLIABBATYCAAuSWQEQfyMAQfAAayIMJAAgDEEsaiEOIwBBoAtrIgIkACACQYADaiIFQRhqIAFBGGopAgA3AwAgBUEQaiABQRBqKQIANwMAIAVBCGogAUEIaikCADcDACACIAEpAgA3A4ADIAUgASABECcgAiAFIAEQJyACQSBqIgcgBSACECcgAkFAayIIIAUgBxAnIAJB4ABqIgcgBSAIECcgAkGAAWoiBCAFIAcQJyACQaABaiIIIAUgBBAnIAJBgAtqIgcgCCAIECcgAkGgA2oiBUEYaiIGIAdBGGoiCCkCADcDACAFQRBqIgkgB0EQaiIKKQIANwMAIAVBCGoiCyAHQQhqIgMpAgA3AwAgAiACKQKACzcDoAMgByAFIAUQJyAGIAgpAgA3AwAgCSAKKQIANwMAIAsgAykCADcDACACIAIpAoALNwOgAyACQcABaiILIAUgBBAnIAcgCyALECcgAkHAA2oiBUEYaiIEIAgpAgA3AwAgBUEQaiIGIAopAgA3AwAgBUEIaiIJIAMpAgA3AwAgAiACKQKACzcDwAMgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwPAAyACQeABaiIEIAUgAhAnIAcgBCAEECcgAkHgA2oiBUEYaiIEIAgpAgA3AwAgBUEQaiIGIAopAgA3AwAgBUEIaiIJIAMpAgA3AwAgAiACKQKACzcD4AMgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwPgAyAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A+ADIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcD4AMgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwPgAyAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A+ADIAJBgAJqIg0gBSALECcgByANIA0QJyACQYAEaiIFQRhqIgQgCCkCADcDACAFQRBqIgYgCikCADcDACAFQQhqIgkgAykCADcDACACIAIpAoALNwOABCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A4AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDgAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOABCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A4AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDgAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOABCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A4AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDgAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOABCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A4AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDgAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOABCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A4AEIAJBoAJqIgsgBSANECcgByALIAsQJyACQaAEaiIFQRhqIgQgCCkCADcDACAFQRBqIgYgCikCADcDACAFQQhqIgkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCAHIAUgBRAnIAQgCCkCADcDACAGIAopAgA3AwAgCSADKQIANwMAIAIgAikCgAs3A6AEIAcgBSAFECcgBCAIKQIANwMAIAYgCikCADcDACAJIAMpAgA3AwAgAiACKQKACzcDoAQgByAFIAUQJyAEIAgpAgA3AwAgBiAKKQIANwMAIAkgAykCADcDACACIAIpAoALNwOgBCACQcACaiIHIAUgCxAnIAJBwARqIgVBGGoiBiAHQRhqKQIANwMAIAVBEGoiCSAHQRBqKQIANwMAIAVBCGoiCyAHQQhqKQIANwMAIAIgAikCwAI3A8AEQTghBwNAIAJBgAtqIgUgAkHABGoiBCAEECcgBiAIKQIANwMAIAkgCikCADcDACALIAMpAgA3AwAgAiACKQKACzcDwAQgB0EBayIHDQALIAJB4ARqIgMgBCACQcACahAnIAUgAyADECcgA0EYaiIEIAVBGGoiBykCADcDACADQRBqIgYgBUEQaiIIKQIANwMAIANBCGoiCSAFQQhqIgopAgA3AwAgAiACKQKACzcD4AQgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AEIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AQgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AEIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AQgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AEIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AQgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AEIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AQgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBCACQYAFaiIEIAMgAkGAAmoQJyAFIAQgBBAnIARBGGoiAyAHKQIANwMAIARBEGoiBiAIKQIANwMAIARBCGoiCSAKKQIANwMAIAIgAikCgAs3A4AFIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAUgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOABSACQaAFaiIDIAQgAkEgaiINECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwOgBSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AFIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAUgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOgBSACQcAFaiIEIAMgAkFAayILECcgBSAEIAQQJyAEQRhqIgMgBykCADcDACAEQRBqIgYgCCkCADcDACAEQQhqIgkgCikCADcDACACIAIpAoALNwPABSAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AFIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAUgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPABSACQeAFaiIDIAQgDRAnIAUgAyADECcgA0EYaiIEIAcpAgA3AwAgA0EQaiIGIAgpAgA3AwAgA0EIaiIJIAopAgA3AwAgAiACKQKACzcD4AUgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AFIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AUgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBSACQYAGaiIEIAMgAkGAAWoiEBAnIAUgBCAEECcgBEEYaiIDIAcpAgA3AwAgBEEQaiIGIAgpAgA3AwAgBEEIaiIJIAopAgA3AwAgAiACKQKACzcDgAYgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOABiAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AGIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAYgAkGgBmoiAyAEIBAQJyAFIAMgAxAnIANBGGoiBCAHKQIANwMAIANBEGoiBiAIKQIANwMAIANBCGoiCSAKKQIANwMAIAIgAikCgAs3A6AGIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAYgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOgBiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AGIAJBwAZqIgQgAyALECcgBSAEIAQQJyAEQRhqIgMgBykCADcDACAEQRBqIgYgCCkCADcDACAEQQhqIgkgCikCADcDACACIAIpAoALNwPABiAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AGIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAYgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPABiAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AGIAJB4AZqIgMgBCALECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwPgBiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AGIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AYgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgBiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AGIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AYgAkGAB2oiBCADIAJBoAFqIg8QJyAFIAQgBBAnIARBGGoiAyAHKQIANwMAIARBEGoiBiAIKQIANwMAIARBCGoiCSAKKQIANwMAIAIgAikCgAs3A4AHIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAcgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOAByAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AHIAJBoAdqIgYgBCANECcgBSAGIAYQJyAGQRhqIgMgBykCADcDACAGQRBqIgQgCCkCADcDACAGQQhqIgkgCikCADcDACACIAIpAoALNwOgByAFIAYgBhAnIAMgBykCADcDACAEIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AHIAUgBiAGECcgAyAHKQIANwMAIAQgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAcgAkHAB2oiAyAGIAsQJyAFIAMgAxAnIANBGGoiBCAHKQIANwMAIANBEGoiBiAIKQIANwMAIANBCGoiCSAKKQIANwMAIAIgAikCgAs3A8AHIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAcgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPAByAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AHIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAcgAkHgB2oiBCADIAJB4ABqIhEQJyAFIAQgBBAnIARBGGoiAyAHKQIANwMAIARBEGoiBiAIKQIANwMAIARBCGoiCSAKKQIANwMAIAIgAikCgAs3A+AHIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AcgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgByAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AHIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AcgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgByACQYAIaiIDIAQgDRAnIAUgAyADECcgA0EYaiIEIAcpAgA3AwAgA0EQaiIGIAgpAgA3AwAgA0EIaiIJIAopAgA3AwAgAiACKQKACzcDgAggBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAggBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAggBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAggAkGgCGoiBCADIAsQJyAFIAQgBBAnIARBGGoiAyAHKQIANwMAIARBEGoiBiAIKQIANwMAIARBCGoiCSAKKQIANwMAIAIgAikCgAs3A6AIIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAggBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOgCCAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AIIAJBwAhqIgMgBCALECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwPACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAggBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAggBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPACCAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AIIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAggAkHgCGoiBCADIAJB4AFqECcgBSAEIAQQJyAEQRhqIgMgBykCADcDACAEQRBqIgYgCCkCADcDACAEQQhqIgkgCikCADcDACACIAIpAoALNwPgCCAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AIIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AggBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgCCAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AIIAJBgAlqIgMgBCARECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwOACSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AJIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAkgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AJIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAkgAkGgCWoiBCADIBAQJyAFIAQgBBAnIARBGGoiAyAHKQIANwMAIARBEGoiBiAIKQIANwMAIARBCGoiCSAKKQIANwMAIAIgAikCgAs3A6AJIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAkgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOgCSAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AJIAJBwAlqIgMgBCAPECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwPACSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AJIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAkgBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPACSAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AJIAJB4AlqIgQgAyACECcgBSAEIAQQJyAEQRhqIgMgBykCADcDACAEQRBqIgYgCCkCADcDACAEQQhqIgkgCikCADcDACACIAIpAoALNwPgCSAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AJIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AkgBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgCSAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AJIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AkgAkGACmoiAyAEIA8QJyAFIAMgAxAnIANBGGoiBCAHKQIANwMAIANBEGoiBiAIKQIANwMAIANBCGoiCSAKKQIANwMAIAIgAikCgAs3A4AKIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAogBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AKIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAogBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AKIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDgAogBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOACiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A4AKIAJBoApqIgYgAyAPECcgBSAGIAYQJyAGQRhqIgMgBykCADcDACAGQRBqIgQgCCkCADcDACAGQQhqIgkgCikCADcDACACIAIpAoALNwOgCiAFIAYgBhAnIAMgBykCADcDACAEIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A6AKIAUgBiAGECcgAyAHKQIANwMAIAQgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDoAogBSAGIAYQJyADIAcpAgA3AwAgBCAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwOgCiACQcAKaiIEIAYgERAnIAUgBCAEECcgBEEYaiIDIAcpAgA3AwAgBEEQaiIGIAgpAgA3AwAgBEEIaiIJIAopAgA3AwAgAiACKQKACzcDwAogBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPACiAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AKIAUgBCAEECcgAyAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcDwAogBSAEIAQQJyADIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPACiAFIAQgBBAnIAMgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A8AKIAJB4ApqIgMgBCABECcgBSADIAMQJyADQRhqIgQgBykCADcDACADQRBqIgYgCCkCADcDACADQQhqIgkgCikCADcDACACIAIpAoALNwPgCiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AKIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AogBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgCiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AKIAUgAyADECcgBCAHKQIANwMAIAYgCCkCADcDACAJIAopAgA3AwAgAiACKQKACzcD4AogBSADIAMQJyAEIAcpAgA3AwAgBiAIKQIANwMAIAkgCikCADcDACACIAIpAoALNwPgCiAFIAMgAxAnIAQgBykCADcDACAGIAgpAgA3AwAgCSAKKQIANwMAIAIgAikCgAs3A+AKIAJB4AJqIgUgAyACQcABahAnIwBBEGsiB0EAQX8gASgCHCABKAIYIAEoAhQgASgCECABKAIMIAEoAgggASgCBCABKAIAcnJycnJychtBAXE6AA8gByAHLQAPQX9zQQFxOgAPIA4gBy0ADzoAICAOQRhqIAVBGGopAgA3AgAgDkEQaiAFQRBqKQIANwIAIA5BCGogBUEIaikCADcCACAOIAIpAuACNwIAIAJBoAtqJAAgDEHQAGoiAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgDEIANwNQIAxBDGoiAiABIA4gDC0A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twIgDSAKQRhqKQIANwMAIA4gCkEQaikCADcDACAYIApBCGopAgA3AwAgASABKQKIATcDGCAMQSBqIQwgBkEgayIGDQALCyABQYgBaiIMIAkQlgMgAUHoAGoiDiAMEMQCIAFBPGogDhCvAiAMIAEoAkAiCiABKAJEEJQBIAFBjAFqIQYCQAJAAkACfwJAIAEoAogBRQRAIAFByABqIg1BCGogBkEIaikCADcDACANQRBqIAZBEGopAgA3AwAgDUEYaiAGQRhqKQIANwMAIAEgBikCADcDSCAMQYyewQBB+AAQ5gMaIA4gDBD2AiAPIAMgDSABQRhqIgMgASgCbCIGIAEoAnAgASgCECIMIAEoAhQgERBnRQ0BIAIgASkDGDcCBCACQRxqIANBGGopAwA3AgAgAkEUaiADQRBqKQMANwIAIAJBDGogA0EIaikDADcCACABKAJoIgMEQCAGIANB+ABsQQQQyAMLIAFByABqELcCIAEoAjwiAwRAIAogA0EBEMgDC0EADAILIAFB8ABqIAZBCGooAgAiAzYCACABIAYpAgAiHjcDaCACQoGAgIAwNwIAIAIgHjcCCCACQRBqIAM2AgAgASgCPCICBEAgCiACQQEQyAMLIAFBGGoQtwIgASgCDCICRQ0CIAEoAhAgAkH4AGxBBBDIAwwCC0GxlcIALQAAGkEdQQEQvQMiA0UNAiACQR02AhAgAiADNgIMIAJCgICAgNADNwIEIANBFWpBhqHBACkAADcAACADQRBqQYGhwQApAAA3AAAgA0EIakH5oMEAKQAANwAAIANB8aDBACkAADcAACABKAJoIgMEQCAGIANB+ABsQQQQyAMLIAFByABqELcCIAEoAjwiAwRAIAogA0EBEMgDCyABQRhqELcCQQELIQMgAiADNgIAIAEoAgwiAkUNACAMIAJB+ABsQQQQyAMLIAFBgAJqJAAMAQtBAUEdQeiVwgAoAgAiAEG8ASAAGxEBAAALAkACQCAFKALoA0UEQCAFQZAEaiICQRhqIAVBhARqKQIANwMAIAJBEGogBUH8A2opAgA3AwAgAkEIaiAFQfQDaikCADcDACAFIAUpAuwDNwOQBCAFQegEakIANwMAIAVB4ARqQgA3AwAgBUHYBGpCADcDACAFQbAEaiIBQSBqIgxCADcDACABQRhqIgpCADcDACABQRBqIg1C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KQIANwMAIAhBEGogBUEwaikCADcDACAIQQhqIAVBKGopAgA3AwAgAyAFKQIgNwOgASADQcABaiIIQRhqIAVB2ABqKQIANwMAIAhBEGogBUHQAGopAgA3AwAgCEEIaiAFQcgAaikCADcDACADIAUpAkA3A8ABIANB4AFqIgVBGGpCADcDACAFQRBqQgA3AwAgBUEIakIANwMAIANCADcD4AECQAJAAkACQAJAIA5FBEAgA0GwA2oiBUHgAGpCADcDACAFQdgAakIANwMAIAVB0ABqQgA3AwAgBUHIAGpCADcDACADQfADakIANwMAIAVBOGpCADcDACAFQTBqQgA3AwAgA0EAOgCYBCAFQQhqQdCKwQApAwA3AwAgBUEQakHYisEAKQMANwMAIAVBGGpB4IrBACkDADcDACADQgA3A9gDIANCADcD0AMgA0HIisEAKQMANwOwAyAFQShqIQUCQCABQT9NBEAgBSALIAEQ5gMaDAELIAMgAUEGdiIIrTcD0AMgA0GwA2ogCyAIEBYgBSALIAFBQHFqIAFBP3EiARDmAxoLIAMgAToAmAQgA0GgBGoiBSADQbADaiIIQfAAEOYDGiADQZAFaiIBQRhqIg1CADcDACABQRBqIgpCADcDACABQQhqIhFCADcDACADQgA3A5AFIAUgA0HIBGogARBfIANB4AFqIgFBGGogDSkDADcDACABQRBqIAopAwA3AwAgAUEIaiARKQMANwMAIAMgAykDkAU3A+ABIAUgAUEgEJQBIANBpARqIQEgAygCoAQNASAIQRhqIAFBGGopAgAiFjcDAAwECyABQSBHBEBBsZXCAC0AABpBOEEBEL0DIgFFDQIgB0E4NgIQIAcgATYCDCAHQoCAgICABzcCBCABQTBqQemgwQApAAA3AAAgAUEoakHhoMEAKQAANwAAIAFBIGpB2aDBACkAADcAACABQRhqQdGgwQApAAA3AAAgAUEQakHJoMEAKQAANwAAIAFBCGpBwaDBACkAADcAACABQbmgwQApAAA3AAAgB0EBNgIADAULIANBoARqIAtBIBCUASADQaQEaiEBIAMoAqAERQ0CIANBuANqIAFBCGooAgAiBTYCACADIAEpAgAiFjcDsAMgB0KBgICAMDcCACAHIBY3AgggB0EQaiAFNgIADAQLIANBuANqIAFBCGooAgAiBTYCACADIAEpAgAiFjcDsAMgB0KBgICAMDcCACAHIBY3AgggB0EQaiAFNgIADAMLQQFBOEHolcIAKAIAIgBBvAEgABsRAQAACyADQcgDaiABQRhqKQIAIhY3AwALIANBgAJqIgpBCGogAUEIaikCADcDACAKQRBqIAFBEGopAgA3AwAgCkEYaiAWNwMAIAMgASkCADcDgAIgA0GgBGoiASADQQhqEJYDIANBsANqIgggARDEAiADQaQCaiAIEK8CIAEgAygCqAIiESADKAKsAhCUASADQaQEaiEFIAMoAqAERQRAIANBsAJqIg1BCGogBUEIaikCADcDACANQRBqIAVBEGopAgA3AwAgDUEYaiAFQRhqKQIANwMAIAMgBSkCADcDsAIgASADQcABaiIFEPsBIANB0AJqIhQgA0GgAWogARDBAiABELcCIANBkAVqIhUgCiADQYABahDBAiAIIAUQ+wEgA0GQA2oiCiAVIAgQwQIgASAUIA0QwQIgA0HwAmoiBSAKIAEQvwIgARC3AiAKELcCIAgQtwIgFRC3AiAHQRxqIAVBGGopAgA3AgAgB0EUaiAFQRBqKQIANwIAIAdBDGogBUEIaikCADcCACAHIAMpAvACNwIEIAdBADYCACAUELcCIA0QtwIgAygCpAIiAQRAIBEgAUEBEMgDCyADQYACahC3AgwBCyADQbgDaiAFQQhqKAIAIgE2AgAgAyAFKQIAIhY3A7ADIAdCgYCAgDA3AgAgByAWNwIIIAdBEGogATYCACADKAKkAiIBBEAgESABQQEQyAMLIANBgAJqELcCCyADQcABahC3AiADQaABahC3AiADQYABahC3AiADQbAFaiQAIAYoAiRFDQFBuobBAEEUEAEhAyAMEIwCQQEMAgsgBkHYA2oiAUEIaiAMQQhqKQIANwMAIAYgDCkCADcD2AMgBkEANgKEBCAGQoCAgIAQNwL8AyAGQQM6AKgEIAZBIDYCmAQgBkEANgKkBCAGQZT9wAA2AqAEIAZBADYCkAQgBkEANgKIBCAGIAZB/ANqNgKcBCABIAZBiARqEJwBDQIgBigC/AMhASAGKAKABCIHIAYoAoQEEAEhAyABBEAgByABQQEQyAMLIAZB2ANqEIwCQQEMAQsgBkHYA2oiAUEYaiAMQRhqKQIANwMAIAFBEGogDEEQaikCADcDACABQQhq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P4d8IghCP4d8IglCP4d8IgpCIIinIgFB3MzBACgCAHGtIANC/////w+DfCIDPgIAIAsgASATca0gBEL/////D4N8IANCIIh8IgM+AgQgCyABIBJxrSAFQv////8Pg3wgA0IgiHwiAz4CCCALIAEgEXGtIAZC/////w+DfCADQiCIfCIDPgIMIAsgASAQca0gB0L/////D4N8IANCIIh8IgM+AhAgCyABIA9xrSAIQv////8Pg3wgA0IgiHwiAz4CFCALIAEgDnGtIAlC/////w+DfCADQiCIfCIDPgIYIAsgA0IgiCAKfKcgASANcWo2AhwgDEEYaiIBIAtBGGopAgA3AgAgDEEQaiICIAtBEGopAgA3AgAgDEEIaiINIAtBCGopAgA3AgAgDCALKQIANwIAIAtBIGokACAAQRhqIAEpAgA3AgAgAEEQaiACKQIANwIAIABBCGogDSkCADcCACAAIAwpAgA3AgAgDEEgaiQAC1YBAX8jAEEgayIDJAAgAyABIAIQJyAAQRhqIANBGGopAgA3AgAgAEEQaiADQRBqKQIANwIAIABBCGogA0EIaikCADcCACAAIAMpAgA3AgAgA0EgaiQAC3YBAX9BsZXCAC0AABpB4ABBBBC9AyIHRQRAQQRB4ABB6JXCACgCACIAQbwBIAAbEQEAAAsgB0EAOgBcIAcgAjYCFCAHIAY2AhAgByAFNgIMIAcgBDYCCCAHIAM2AgQgByABNgIAIABBtIDBADYCBCAAIAc2AgALcQEBf0GxlcIALQAAGkEgQQQQvQMiAkUEQEEEQSBB6JXCACgCACIAQbwBIAAbEQEAAAsgAkEBOgAcIAJCATcCBCACQfS0wQA2AhQgAiABNgIQIAIgADYCDCACQQI2AgAgAiACQQhqNgIYEIoBIAIQ9gELbwEDfyMAQSBrIgIkACMAQTBrIgMkACADQQhqIgQgARBuIAIgBBB9IANBMGokACAAQRhqIAJBGGopAwA3AAAgAEEQaiACQRBqKQMANwAAIABBCGogAkEIaikDADcAACAAIAIpAwA3AAAgAkEgaiQAC1QBAX8jAEEgayICJAAgAiABEBogAEEYaiACQRhqKQIANwIAIABBEGogAkEQaikCADcCACAAQQhqIAJBCGopAgA3AgAgACACKQIANwIAIAJBIGokAAtWAQF/IwBBIGsiAiQA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ACACQQBIBEAACyAAIAE2AgQgAEGg/MAANgIACzQBAn8gAUEIayIDKAIAIQIgAyACQQFqNgIAIAJBAEgEQAALIAAgATYCBCAAQbD8wAA2AgALNAECfyABQQhrIgMoAgAhAiADIAJBAWo2AgAgAkEASARAAAsgACABNgIEIABBwPzAADYCAAs0AQJ/IAFBCGsiAygCACECIAMgAkEBajYCACACQQBIBEAACyAAIAE2AgQgAEHQ/MAANgIACzQBAn8gAUEIayIDKAIAIQIgAyACQQFqNgIAIAJBAEgEQAALIAAgATYCBCAAQeD8wAA2AgALNAECfyABQQhrIgMoAgAhAiADIAJBAWo2AgAgAkEASARAAAsgACABNgIEIABB8PzAADYCAAsxAQF/IwBBEGsiAiQAIAIgADYCDCABQdX+wABBCiACQQxqQeD+wAAQ4gEgAkEQaiQAC+UBAQN/IwBBkAJrIgIkACACQQA6AIwCIAIgATYCBCACIAA2AgAjAEGgAmsiACQAIABBDGoiASACQZACEOYDGiAAIAE2ApwCIABBnAJqQdjawAAQ6QMCQCAALQCYAkEDRw0AIAAtAJQCQQNHDQAgAEEgaiEBAkACQAJAAkAgAC0AWA4FAwQEAAEECyAAQdwAahDRAQwBCyAAQYABahAZIABBADoAWyAAQQA7AFkgAEGsAWoQ0gELIABBxABqIQELIAEoAgAiBEUNACABKAIEIARBARDIAwsgAEGgAmokACACQZACaiQACzEBAX8jAEEQayICJAAgAiAANgIMIAFB3MPBAEEGIAJBDGpBiMPBABDiASACQRBqJAALMQECfyMAQYABayICJAAgAkEIaiIDQajHwQAgARAsIAAgA0H4ABDmAxogAkGAAWokAAsuAQJ/IwBBgAFrIgMkACADQQhqIgQgASACECwgACAEQfgAEOYDGiADQYABaiQACy4BAn8jAEGAAWsiAyQAIANBCGoiBCABIAIQICAAIARB+AAQ5gMaIANBgAFqJAALMQEBfyMAQRBrIgIkACACIAA2AgwgAUHo1MEAQQYgAkEMakHw1MEAEOIBIAJBEGokAAvCAwEHfyMAQeAAayIHJAAjAEHgAmsiAiQAIAJB5ABqIgQgAUHQAGoQFyACQZACaiIDQSBqQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQQhqQgA3AwAgAkIANwOQAiACQegBaiIFIAMgBCACLQCMARCnASACQbgCaiIDIAEgBRA7IAJBDGoiBiABQShqIAUQOyACQZABaiIBIAMQbiABQShqIgggBhBuIAItAIwBIQUgBiABQdAAEOYDGiACIAU6AGAgAkEAOgBcIAFB0M3BAEHUABDmAxogAyABIAYgBRCnASAEIAggBkEoaiAFEKcBIAdBDGoiASACKQK4AjcCACABQQhqIANBCGopAgA3AgAgAUEQaiADQRBqKQIANwIAIAFBGGogA0EYaikCADcCACABQSBqIANBIGopAgA3AgAgASACKQJkNwIoIAFBMGogBEEIaikCADcCACABQThqIARBEGopAgA3AgAgAUFAayAEQRhqKQIANwIAIAFByABqIARBIGopAgA3AgAgAUEAIAVrIAItAOABIgQgAi0AXHNxIARzOgBQIAJB4AJqJAAgACABQdQAEOYDGiAHQeAAaiQAC9IDAQN/IwBBgAFrIgQkACMAQdAAayICJAAgAkH8//8HIAEoAkxrNgJMIAJB/P///wAgASgCSGs2AkggAkH8////ACABKAJEazYCRCACQfz///8AIAEoAkBrNgJAIAJB/P///wAgASgCPGs2AjwgAkH8////ACABKAI4azYCOCACQfz///8AIAEoAjRrNgI0IAJB/P///wAgASgCMGs2AjAgAkH8/f//ACABKAIsazYCLCACQbzh//8AIAEoAihrNgIoIAIgAkEoahDEASAEQQhqIgNBIGogAUEgaikCADcCACADQRhqIAFBGGopAgA3AgAgA0EQaiABQRBqKQIANwIAIANBCGogAUEIaikCADcCACADIAEpAgA3AgAgAyACKQIANwIoIANBMGogAkEIaikCADcCACADQThqIAJBEGopAgA3AgAgA0FAayACQRhqKQIANwIAIANByABqIAJBIGopAgA3AgAgA0HwAGogAUHwAGopAgA3AgAgA0HoAGogAUHoAGopAgA3AgAgA0HgAGogAUHgAGopAgA3AgAgA0HYAGogAUHYAGopAgA3AgAgAyABKQJQNwJQIAJB0ABqJAAgACADQfgAEOYDGiAEQYABaiQACy4BAX8CQCAAKAIAQQRGBEAgACgCBCIBRQ0BIAAoAgggAUEBEMgDDwsgABCMAgsLMgECfyABQQhrIgMoAgBBAWohAiADIAI2AgAgAkUEQAALIAAgATYCBCAAQfS0wQA2AgALWQECfyMAQRBrIgAkACAAQeytwAA2AgwgAEEiNgIIIABB2KzAADYCBCMAQRBrIgEkACABIABBBGoiACkCADcCCCABQQhqQZCmwQBBACAAKAIIQQFBABDTAQALLAEBfwJAIABFDQAgACABKAIAEQAAIAEoAgQiAkUNACAAIAIgASgCCBDIAwsLJAEBfyAAKAIAIgBBH3UiAiAAcyACa60gAEF/c0EfdiABEJsBC2ABAX8jAEEQayIDJAAgAyABNgIMIAMgADYCCCMAQSBrIgAkACAAQQE2AgQgAEGY98EANgIAIABCATcCDCAAQdsBNgIcIAAgA0EIajYCGCAAIABBGGo2AgggACACEP4CAAtjAQF/IwBBEGsiAiQAIAIgATYCDCACIAA2AggjAEEgayIAJAAgAEEBNgIEIABBwLbBADYCACAAQgE3AgwgAEGIATYCHCAAIAJBCGo2AhggACAAQRhqNgIIIABByLfBABD+AgALIwACQCABQfz///8HTQRAIAAgAUEEIAIQsgMiAA0BCwALIAALJQAgAEUEQEGQtsEAQTAQ2AMACyAAIAIgAyAEIAUgASgCEBEKAAsjACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAQgASgCEBEbAAsjACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAQgASgCEBEOAAsjACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAQgASgCEBEFAAsjACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAQgASgCEBEdAAsjACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAQgASgCEBEfAAsoAQF/IAAoAgAiAUGAgICAeHJBgICAgHhHBEAgACgCBCABQQEQyAMLCzAAIAEoAhQgAC0AAEECdCIAQZjzwQBqKAIAIABB9PHBAGooAgAgASgCGCgCDBEDAAshACAARQRAQZC2wQBBMBDYAwALIAAgAiADIAEoAhARAgALHQAgASgCAEUEQAALIABB6JXBADYCBCAAIAE2AgALGwAgACgCACIAQQRqKAIAIABBCGooAgAgARBMCx8AIABFBEBBrbHBAEEwENgDAAsgACACIAEoAhARAQALHwAgAEUEQEGQtsEAQTAQ2AMACyAAIAIgASgCEBEEAAsaAQF/IAAoAgAiAQRAIAAoAgQgAUEBEMgDCwscACAAKAIAIgAoAgAgASAAQQRqKAIAKAIMEQQACxYAIAAEQCAAEJMBIABBsAJBBBDIAwsLEQAgAARAIABBuAJBCBDIAwsLIQAgASgCFCAAKAIAIgAoAgQgACgCCCABKAIYKAIMEQMAC+cGAQV/AkACQAJAAkACQCAAQQRrIgUoAgAiB0F4cSIEQQRBCCAHQQNxIgYbIAFqTwRAIAZBAEcgAUEnaiIIIARJcQ0BAkACQCACQQlPBEAgAiADEIIBIgINAUEAIQAMCAtBACECIANBzP97Sw0BQRAgA0ELakF4cSADQQtJGyEBAkAgBkUEQCABQYACSQ0BIAQgAUEEckkNASAEIAFrQYGACE8NAQwJCyAAQQhrIgYgBGohCAJAAkACQAJAIAEgBEsEQCAIQaiZwgAoAgBGDQQgCEGkmcIAKAIARg0CIAgoAgQiB0ECcQ0FIAdBeHEiByAEaiIEIAFJDQUgCCAHEJABIAQgAWsiAkEQSQ0BIAUgASAFKAIAQQFxckECcjYCACABIAZqIgEgAkEDcjYCBCAEIAZqIgMgAygCBEEBcjYCBCABIAIQeAwNCyAEIAFrIgJBD0sNAgwMCyAFIAQgBSgCAEEBcXJBAnI2AgAgBCAGaiIBIAEoAgRBAXI2AgQMCwtBnJnCACgCACAEaiIEIAFJDQICQCAEIAFrIgJBD00EQCAFIAdBAXEgBHJBAnI2AgAgBCAGaiIBIAEoAgRBAXI2AgRBACECQQAhAQwBCyAFIAEgB0EBcXJBAnI2AgAgASAGaiIBIAJBAXI2AgQgBCAGaiIDIAI2AgAgAyADKAIEQX5xNgIEC0GkmcIAIAE2AgBBnJnCACACNgIADAoLIAUgASAHQQFxckECcjYCACABIAZqIgEgAkEDcjYCBCAIIAgoAgRBAXI2AgQgASACEHgMCQtBoJnCACgCACAEaiIEIAFLDQcLIAMQISIBRQ0BIAEgACAFKAIAIgFBeHFBfEF4IAFBA3EbaiIBIAMgASADSRsQ5gMgABBhIQAMBwsgAiAAIAEgAyABIANJGxDmAxogBSgCACIFQXhxIQMgAyABQQRBCCAFQQNxIgUbakkNAyAFQQBHIAMgCEtxDQQgABBhCyACIQAMBQtBheHBAEEuQbThwQAQ9QIAC0HE4cEAQS5B9OHBABD1AgALQYXhwQBBLkG04cEAEPUCAAtBxOHBAEEuQfThwQAQ9QIACyAFIAEgB0EBcXJBAnI2AgAgASAGaiICIAQgAWsiAUEBcjYCBEGgmcIAIAE2AgBBqJnCACACNgIACyAACxAAIAEEQCAAIAFBBBDIAwsLGQAgASgCFEG+9sEAQQsgASgCGCgCDBEDAAsZACABKAIUQcn2wQBBDiABKAIYKAIMEQMACw8AIAAoAgAEQCAAENABCwvSBQEXfyMAQTBrIgIkACACQQhqIgMgACABQdAAaiIEEDsgAigCCCEFIAIoAgwhBiACKAIQIQcgAigCFCEIIAIoAhghCSACKAIcIQogAigCICELIAIoAiQhDCACKAIoIQ0gAigCLCEOIAMgASAAQdAAaiIPEDsgAigCCCEQIAIoAgwhESACKAIQIRIgAigCFCETIAIoAhghFCACKAIcIRUgAigCICEWIAIoAiQhFyACKAIoIRggAiAOIAIoAixrQfz//wdqNgIsIAIgDSAYa0H8////AGo2AiggAiAMIBdrQfz///8AajYCJCACIAsgFmtB/P///wBqNgIgIAIgCiAVa0H8////AGo2AhwgAiAJIBRrQfz///8AajYCGCACIAggE2tB/P///wBqNgIUIAIgByASa0H8////AGo2AhAgAiAGIBFrQfz9//8AajYCDCACIAUgEGtBvOH//wBqNgIIIAMQugEhBSADIABBKGogBBA7IAIoAgghACACKAIMIQQgAigCECEGIAIoAhQhByACKAIYIQggAigCHCEJIAIoAiAhCiACKAIkIQsgAigCKCEMIAIoAiwhDSADIAFBKGogDxA7IAIoAgghASACKAIMIQ4gAigCECEPIAIoAhQhECACKAIYIREgAigCHCESIAIoAiAhEyACKAIkIRQgAigCKCEVIAIgDSACKAIsa0H8//8HajYCLCACIAwgFWtB/P///wBqNgIoIAIgCyAUa0H8////AGo2AiQgAiAKIBNrQfz///8AajYCICACIAkgEmtB/P///wBqNgIcIAIgCCARa0H8////AGo2AhggAiAHIBBrQfz///8AajYCFCACIAYgD2tB/P///wBqNgIQIAIgBCAOa0H8/f//AGo2AgwgAiAAIAFrQbzh//8AajYCCCADELoBIAVxIQAjAEEQayIBIAA6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NgIoIAMgAzYCICADQQhqIAIQ/gIAC2oBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQSxqQQI2AgAgA0ECNgIMIANB4PzBADYCCCADQgI3AhQgA0ECNgIkIAMgA0EgajYCECADIANBBGo2AiggAyADNgIgIANBCGogAhD+AgALDgAgADUCAEEBIAEQmwELagEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBLGpBAjYCACADQQI2AgwgA0GU/cEANgIIIANCAjcCFCADQQI2AiQgAyADQSBqNgIQIAMgA0EEajYCKCADIAM2AiAgA0EIaiACEP4CAAsOACAAMQAAQQEgARCbAQsPAEGh98EAQSsgABD1AgALCwAgACMAaiQAIwALGQAgASgCFEHA3sAAQQUgASgCGCgCDBEDAAsZACABKAIUQdD+wABBBSABKAIYKAIMEQMAC1oBAX8gACgCACECIwBBIGsiACQAIABBATYCBCAAQfTIwQA2AgAgAEIBNwIMIABBiwE2AhwgACACNgIYIAAgAEEYajYCCCABKAIUIAEoAhggABBoIABBIGokAAsNACAAQYSfwQAgARBoC9EFAQN/IAAoAgAhACMAQSBrIgIkAAJAAkACQAJAAkACQAJAIAAtAABBAWsOAwECAwALIAIgACgCBDYCBCABKAIUQfnnwQBBAiABKAIYKAIMEQMAIQMgAkEIaiIAQQA6AAUgACADOgAEIAAgATYCACAAQfvnwQBBBCACQQRqQYDowQAQkQEgAkEoOgATQZDowQBBBCACQRNqQZTowQAQkQFBsZXCAC0AABpBFEEBEL0DIgBFDQQgAEEQakGm78EAKAAANgAAIABBCGpBnu/BACkAADcAACAAQZbvwQApAAA3AAAgAkEUNgIcIAIgADYCGCACQRQ2AhRBpOjBAEEHIAJBFGpBrOjBABCRARCqAiEAIAIoAhQiAUUNAyACKAIYIAFBARDIAwwDCyACIAAtAAE6AAggAkEUaiIAIAEoAhRBvOjBAEEEIAEoAhgoAgwRAwA6AAggACABNgIEIABBADoACSAAQQA2AgAgACACQQhqQZTowQAQtAEiAC0ACCEBAkAgACgCACIDRQRAIAFBAEchAAwBCwJAIAFFBEAgACgCBCEBIANBAUcNASAALQAJRQ0BIAEtABxBBHENASABKAIUQfD5wQBBASABKAIYKAIMEQMARQ0BCyAAQQE6AAhBASEADAELIAAgASgCFEGr9sEAQQEgASgCGCgCDBEDACIAOgAICwwCCyAAKAIEIQMgASgCFEHA6MEAQQUgASgCGCgCDBEDACEEIAJBFGoiAEEAOgAFIAAgBDoABCAAIAE2AgAgAEGQ6MEAQQQgA0EIakGU6MEAEJEBQaTowQBBByADQcjowQAQkQEQqgIhAAwBCyACIAAoAgQiADYCFCABQdjowQBBBkGQ6MEAQQQgAEEIakGU6MEAQd7owQBBBSACQRRqQeTowQAQ8QEhAAsgAkEgaiQADAELQQFBFEHolcIAKAIAIgBBvAEgABsRAQAACyAAC9UDAQF/IAAoAgAhACMAQUBqIgIkAAJAAkACQAJAAkACQAJAIAAtAABBAWsOAwECAwALIAIgACgCBDYCCEGxlcIALQAAGkEUQQEQvQMiAEUNBCAAQRBqQabvwQAoAAA2AAAgAEEIakGe78EAKQAANwAAIABBlu/BACkAADcAACACQRQ2AhQgAiAANgIQIAJBFDYCDCACQSRqQbkBNgIAIAJBAzYCLCACQYDpwQA2AiggAkICNwI0IAJBugE2AhwgAiACQRhqNgIwIAIgAkEIajYCICACIAJBDGo2AhggASgCFCABKAIYIAJBKGoQaCEAIAIoAgwiAUUNAyACKAIQIAFBARDIAwwDCyAALQABIQAgAkEBNgIsIAJBhOLBADYCKCACQgE3AjQgAkG7ATYCECACIABBAnQiAEGs78EAaigCADYCHCACIABB0PDBAGooAgA2AhggAiACQQxqNgIwIAIgAkEYajYCDCABKAIUIAEoAhggAkEoahBoIQAMAgsgACgCBCIAKAIAIAAoAgQgARDiAyEADAELIAAoAgQiACgCACABIAAoAgQoAhARBAAhAAsgAkFAayQADAELQQFBFEHolcIAKAIAIgBBvAEgABsRAQAACyAACwsAIAAgAUHsABATCwkAIAAgARARAAtnAQF/IAAoAgAhAiMAQTBrIgAkACAAIAI2AgwgAEECNgIUIABBtN7BADYCECAAQgE3AhwgAEG0ATYCLCAAIABBKGo2AhggACAAQQxqNgIoIAEoAhQgASgCGCAAQRBqEGggAEEwaiQAC4MEAQN/IAAoAgAhAyMAQfAAayIAJAAgACADNgIA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AAAAwBQQAAsAAAAsExAADwAAAKQBAABCAAAAY2hhbF9tc2dfYXJyYXlfc3RyaW5nIGxlbiBtaXNtYXRjaH5tc2dfMV9jb218AAAAAAAQAAAAAAAOFRAACwAAACwTEAAPAAAAywEAAC4AAAAsExAADwAAAPEBAAAYAAAALBMQAA8AAADyAQAAHgAAACwTEAAPAAAA8wEAAA0AAABjb21fbXNnX2FycmF5X3N0cmluZyBsZW4gbWlzbWF0Y2htc2dfMF9hcnJheV9zdHJpbmcgbGVuIG1pc21hdGNoLBMQAA8AAAAqAgAAKAAAACwTEAAPAAAAKwIAACgAAABtc2dfMV9hcnJheV9zdHJpbmcgbGVuIG1pc21hdGNofnByb3ZlX2RsX2ZzAAAAEAAAAAAA6xUQAAwAAABka2xzL3NyYy96a3Bvay5ycwAAAAgWEAARAAAADQAAABwAAAAIFhAAEQAAAGwAAAAeAAAAcHJvdmVfZGxfZnNfbXNnIGxlbiBtaXNtYXRjaE1heWJlRG9uZSBwb2xsZWQgYWZ0ZXIgdmFsdWUgdGFrZW4vVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9mdXR1cmVzLXV0aWwtMC4zLjI1L3NyYy9mdXR1cmUvbWF5YmVfZG9uZS5ycwB6FhAAcQAAAGMAAAAkAAAAL3J1c3RjLzliMDA5NTZlNTYwMDliYWIyYWExNWQ3YmZmMTA5MTY1OTllM2Q2ZDYvbGlicmFyeS9jb3JlL3NyYy9zdHIvbW9kLnJzAPwWEABLAAAAmwIAABUAQeCuwAALrQFhdHRlbXB0IHRvIGNhbGN1bGF0ZSB0aGUgcmVtYWluZGVyIHdpdGggYSBkaXZpc29yIG9mIHplcm8AAAAAAAAAYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAAJgX+ALFVqAAn5WNAji3bAP8mwIDwcKhA1wpBgJWse4C3Pl+AplvHgC41BAD/iP0AcSZQQEVmiIBtBf9ACpChAPAv08CdpURA6MmdwK2DhIAAQBBtLDAAAuhAS9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUw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aWxlZAAAABQAAAAsAgAABAAAABUAAAAWAAAAcAwAAAgAAAAXAAAAGAAAAKANAAAIAAAAGQAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3dhc20tYmluZGdlbi1mdXR1cmVzLTAuNC4zMy9zcmMvbGliLnJzANwtEABrAAAA2gAAABUAQeDcwAAL/QFgYXN5bmMgZm5gIHJlc3VtZWQgYWZ0ZXIgY29tcGxldGlvbgAaAAAADAAAAAQAAAAbAAAAHAAAAB0AAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5AB4AAAAAAAAAAQAAAB8AAAAvcnVzdGMvOWIwMDk1NmU1NjAwOWJhYjJhYTE1ZDdiZmYxMDkxNjU5OWUzZDZkNi9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMA5C4QAEsAAAD6CQAADgAAAEVycm9yTm9uZVNvbWUAAAANAAAABAAAAAQAAAAgAEHo3sAAC6UCZGtscy9zcmMvZGtscy5yc1BydW5lZFBsYXllckluZGV4IGlzIE5vbmVQYXJ0aWVzIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBwbGF5ZXJjb3VudAAAaC8QABAAAADHAAAAJgAAAH5zaWdfZnJhZ19yYXcAAABALxAAAAAAAMwvEAANAAAAU2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBmYWlsZWQgZm9yIEVDRFNBIHNpZ25pbmdzaWdfZnJhZ19yYXcAaC8QABAAAAAnAQAAIAAAAE51bWJlciBvZiBjb3VudGVycGFydGllcyBkb2VzIG5vdCBtYXRjaCB0aHJlc2hvbGQuAABoLxAAEAAAAGQCAAAyAAAAaC8QABAAAACKAgAAKwAAAAEAQazhwAALxRNoLxAAEAAAANECAAAQAAAAaC8QABAAAADkAgAAIAAAAGgvEAAQAAAA5wIAACAAAABoLxAAEAAAAOoCAAAXAAAAaC8QABAAAADrAgAAIgAAAH5jaGVja3B0MTIzX2NvbXNALxAAAAAAAPwwEAAQAAAAaC8QABAAAADzAgAAMQAAAGgvEAAQAAAABAMAABYAAABjaGVja3B0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bmVyIFJPIGlzIE5vbmUAAAD+NxAAEAAAABUBAAABAAAATm90IGVub3VnaCBwbGF5ZXJzIHdlcmUgc3VwcGxpZWT+NxAAEAAAADgBAAAfAAAAUHJlY29tcHV0ZSBmYWlsZWQsIGVycm9yOiAAAJw4EAAaAAAA/jcQABAAAAAzAQAAAQAAAE1zZyBoYXNoIGlzIG5vdCAzMiBieXRlc01zZyBpcyBlbXB0ef43EAAQAAAA7QEAAB8AAABTaWduYXR1cmUgaXMgTm9uZVNpZ25pbmcgZmFpbGVkQ291bGQgbm90IGRlY29kZSBtc2cgaGFzaP43EAAQAAAA5gEAAAEAAAAAAAAAYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVyby9ydXN0Yy85YjAwOTU2ZTU2MDA5YmFiMmFhMTVkN2JmZjEwOTE2NTk5ZTNkNmQ2L2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwBpORAATgAAANkFAAAVAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZS9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Z1dHVyZXMtdXRpbC0wLjMuMjUvc3JjL2Z1dHVyZS9tYXliZV9kb25lLnJzAAAA8DkQAHEAAABJAAAAFgBBgPXAAAupA2F0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8vVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9mdXR1cmVzLXV0aWwtMC4zLjI1L3NyYy9mdXR1cmUvam9pbl9hbGwucnOZOhAAbwAAAJYAAABOAAAAZGtscy9zcmMvZGtscy5ycxg7EAAQAAAAvQMAABkAAAAYOxAAEAAAAO4DAAAnAAAAGDsQABAAAAD1AwAAEgAAAGRrbHMvc3JjL21wbXVsLnJzAAAAWDsQABEAAAClAAAAHwAAAFg7EAARAAAApgAAADEAAABka2xzL3NyYy9vdGUucnMAjDsQAA8AAACqAAAANAAAAIw7EAAPAAAAqgAAADMAAACMOxAADwAAAKsAAAAoAAAAjDsQAA8AAADqAAAAIgAAAIw7EAAPAAAA6AAAACwAAACMOxAADwAAAPMAAAArAAAAjDsQAA8AAADyAAAAKgAAAIw7EAAPAAAAYwEAACkAAACMOxAADwAAAGMBAAA7AEG4+MAACx2MOxAADwAAAGkCAAArAAAAjDsQAA8AAABpAgAAPgBB4PjAAAuhB2F0dGVtcHQgdG8gY2FsY3VsYXRlIHRoZSByZW1haW5kZXIgd2l0aCBhIGRpdmlzb3Igb2YgemVybwAAAIw7EAAPAAAAogIAACIAAACMOxAADwAAAKACAAAsAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHJldi9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Z1dHVyZXMtdXRpbC0wLjMuMjUvc3JjL3N0cmVhbS9mdXR1cmVzX3Vub3JkZXJlZC9tb2QucnMAANI8EAB8AAAAzgEAAA0AAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAGZ1dHVyZSBzdGlsbCBoZXJlIHdoZW4gZHJvcHBpbmcAJQAAACYAAAAnAAAAKAAAADEAAAAyAAAAMwAAADQAAAA5AAAAOgAAADsAAAA8AAAAKQAAACoAAAArAAAALAAAACEAAAAiAAAAIwAAACQAAAA1AAAANgAAADcAAAA4AAAAPQAAAD4AAAA/AAAAQAAAAC0AAAAuAAAALwAAADAAAABpbmNvbnNpc3RlbnQgaW4gZHJvcEcAAAAMAAAABAAAAEgAAABJAAAAHQAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkASgAAAAAAAAABAAAASwAAAC9ydXN0Yy85YjAwOTU2ZTU2MDA5YmFiMmFhMTVkN2JmZjEwOTE2NTk5ZTNkNmQ2L2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwD0PhAASwAAAPoJAAAOAAAARXJyb3JDdXJ2ZUVycm9yAEwAAAAEAAAABAAAAE0AAABOb25lU29tZUwAAAAEAAAABAAAACAAAABHZW5lcmFsAEwAAAAEAAAABAAAAE4AAABQcm9vZgAAAEwAAAAEAAAABAAAAE8AAABJbwAATAAAAAQAAAAEAAAAUAAAAEN1cnZlAAAATAAAAAQAAAAEAAAAUQAAAGRrbHMvc3JjL3dhc20ucnPkPxAAEAAAABQAAAAXAEGQgMEAC80eYGFzeW5jIGZuYCByZXN1bWVkIGFmdGVyIGNvbXBsZXRpb24AUgAAAGAAAAAEAAAAUwAAAOQ/EAAQAAAAdwAAACAAAABzZW5kX21zZzogU2Vzc2lvbiA6IC0+AABUQBAAEgAAAGZAEAACAAAAaEAQAAIAAABmQBAAAgAAAGZAEAACAAAAVAAAAEwAAAAEAAAAVQAAAOQ/EAAQAAAAkAAAAF4AAABDYW5ub3QgY29udmVydCByZWFkIG1lc3NhZ2UgdG8gc3RyaW5ncmVhZF9tc2c6IFNlc3Npb24gPC0AAADZQBAAEgAAAGZAEAACAAAA60AQAAIAAABmQBAAAgAAAGZAEAACAAAAc3RhdGUgaXMgZW1wdHkAAAAAAAAAAHN0YXRlIGlzIG5vdCBhIDI1NiBiaXQgYmFzZTY0IHN0cmluZ0NvdWxkIG5vdCBjb25zdHJ1Y3QgcmFuZG9tIGdlbmVyYXRvciwgZXJyOiAAAABSQRAAKwAAAENhbm5vdCBjcmVhdGUgdGhyZXNob2xkIHNpZ25lcnMgd2l0aCB6ZXJvIHBsYXllcnNDYW5ub3QgY3JlYXRlIHRocmVzaG9sZCBzaWduZXJzIHdpdGggc2lnbmluZyB0aHJlc2hvbGQgb2YgemVyb3Nlc3Npb24gaXMgZW1wdHlTaGFyZSBpcyBlbXB0eXB1YmtleSBpcyBlbXB0eUNvdWxkIG5vdCBjb25zdHJ1Y3QgdGhyZXNob2xkIHNpZ25lclB1YmxpYyBrZXkgaXMgbm90IGRlY29kYWJsZVNoYXJlIGlzIG5vdCBkZWNvZGFibGVDYW5ub3QgY3JlYXRlIHRocmVzaG9sZCBzaWduZXJzIHdpdGggaW52YWxpZCBwbGF5ZXIgaW5kZXhjb3VsZCBub3QgY29udmVydCBzaGFyZSBmcm9tIGJ5dGVzLCBlcnI6IACyQhAAKQAAAGNvdWxkIG5vdCBjb252ZXJ0IHB1YmxpYyBrZXkgZnJvbSBieXRlcywgZXJyOiAAAORCEAAuAAAATXNnIGlzIGVtcHR5UHJlY29tcHV0ZSBpcyBOb25lTG9jYWwgc2lnbmluZyBmYWlsZWRDb3VsZCBub3QgZGVjb2RlIG1zZyBoYXNoY291bGQgbm90IGNvbnZlcnQgcHJlY29tcHV0ZSB0byBieXRlcywgZXJyOiAAZ0MQACwAAABmYWlsZWQgdG8gY29udmVydCByLnggdG8gYnl0ZXMsIHVuZXhwZWN0ZWQgbGVuZ3RoOiAAnEMQADMAAABMb2NhbCB2ZXJpZnkgZmFpbGVkLCBlcnI6IAAA2EMQABoAAABQYXJhbWV0ZXIgcHVia2V5IGlzIG5vdCB2YWxpZCBiYXNlNjRQYXJhbWV0ZXIgc2lnZnJhZyBpcyBub3QgdmFsaWQgYmFzZTY0IGF0IGluZGV4OiAgRBAAMAAAAFBhcmFtZXRlciBzaWdmcmFnIGlzIE5vbmUgYXQgaW5kZXg6IFhEEAAkAAAAUGFyYW1ldGVyIHIgaXMgbm90IHZhbGlkIGJhc2U2NFBhcmFtZXRlciByIGlzIE5vbmVjb3VsZCBub3QgY29udmVydCByIGZyb20gYnl0ZXMsIGVycjogALZEEAAlAAAAY291bGQgbm90IGNvbnZlcnQgZnJhZ21lbnQgZnJvbSBieXRlcywgZXJyOiDkRBAALAAAAGNvdWxkIG5vdCBjb252ZXJ0IHNpZyB0byBieXRlcywgZXJyOiAAAAAYRRAAJQAAAGfmCWqFrme7cvNuPDr1T6V/Ug5RjGgFm6vZgx8ZzeBbZGtscy9zcmMvcm90LnJzVmVyaWZpY2F0aW9uIEZhaWxlZCBmb3IgUk9UIChyZWNlaXZlciBjaGVhdGVkKQAAAGhFEAAPAAAAAQEAABMAAABoRRAADwAAABABAAATAAAAaEUQAA8AAAATAQAAEwAAAFZlcmlmaWNhdGlvbiBGYWlsZWQgZm9yIFJPVCAoc2VuZGVyIGNoZWF0ZWQpZGtscy9zcmMvbGliLnJzAARGEAAPAAAAVgAAABsAAAAERhAADwAAAFcAAAAMAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogAAA0RhAAKgAAAC9ydXN0Yy85YjAwOTU2ZTU2MDA5YmFiMmFhMTVkN2JmZjEwOTE2NTk5ZTNkNmQ2L2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL2JpbmFyeV9oZWFwL21vZC5yc2hGEABgAAAAegEAABkAAABVdGY4RXJyb3J2YWxpZF91cF90b1YAAAAEAAAABAAAAFcAAABlcnJvcl9sZW4AAABWAAAABAAAAAQAAABYAAAARnJvbVV0ZjhFcnJvcmJ5dGVzAABZAAAADAAAAAQAAABaAAAAZXJyb3IAAABWAAAABAAAAAQAAABbAAAAVmVjIGlzIHNpemVkIGNvbnNlcnZhdGl2ZWx5AFRHEAAbAAAAL1VzZXJzL21hdHRoaWFzLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYmFzZTY0LTAuMjIuMS9zcmMvZW5naW5lL21vZC5yc3hHEABkAAAAAQEAABkAAABpbnRlZ2VyIG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgYnVmZmVyIHNpemUAAAB4RxAAZAAAAHkAAAASAAAASW52YWxpZCBVVEY4XAAAABQAAAAEAAAAXQAAAHhHEABkAAAAfwAAACQAAABYSBAAAAAAAEFyYyBjb3VudGVyIG92ZXJmbG93YEgQABQAAAAvcnVzdGMvOWIwMDk1NmU1NjAwOWJhYjJhYTE1ZDdiZmYxMDkxNjU5OWUzZDZkNi9saWJyYXJ5L2FsbG9jL3NyYy9zeW5jLnJzAAAAfEgQAEkAAABeBgAADQAAAHxIEABJAAAAEAsAAA0AAAAvcnVzdGMvOWIwMDk1NmU1NjAwOWJhYjJhYTE1ZDdiZmYxMDkxNjU5OWUzZDZkNi9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQucnMAAOhIEABOAAAA0QIAAA8AAABtaWQgPiBsZW4AAABISRAACQAAAOhIEABOAAAA5wAAAAsAAABhc3NlcnRpb24gZmFpbGVkOiBvZmZzZXQgIT0gMCAmJiBvZmZzZXQgPD0gbGVuAADoSBAATgAAAJsAAAAFAAAA6EgQAE4AAABaAwAAHQAAAOhIEABOAAAAXgMAABsAAADoSBAATgAAACABAAALAAAA6EgQAE4AAAAPAQAAGgAAAOhIEABOAAAADwEAACQAAADoSBAATgAAADYCAAALAAAA6EgQAE4AAABWAgAAKAAAAOhIEABOAAAAXgIAAAcAAABDdXJ2ZUVycm9yAABiAAAABAAAAAQAAABNAAAAYXR0ZW1wdCB0byBqb2luIGludG8gY29sbGVjdGlvbiB3aXRoIGxlbiA+IHVzaXplOjpNQVgvcnVzdGMvOWIwMDk1NmU1NjAwOWJhYjJhYTE1ZDdiZmYxMDkxNjU5OWUzZDZkNi9saWJyYXJ5L2FsbG9jL3NyYy9zdHIucnMAAAB9ShAASAAAALIAAAAWAAAAfUoQAEgAAACbAAAACgAAAGIAAAAIAAAABAAAAGMAAABhc3NlcnRpb24gZmFpbGVkOiBzaXplIDw9IGlzaXplOjpNQVggYXMgdXNpemUvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi96ZXJvaXplLTEuNS43L3NyYy9saWIucnMAACVLEABdAAAArwEAAAkAAAAlSxAAXQAAAK4BAABAAAAAAQABQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL/////////////////////////////////////////////////////////8+////PzQ1Njc4OTo7PD3/////////AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBn///////8aGxwdHh8gISIjJCUmJygpKissLS4vMDEyM/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9iNjQgZGVjb2RlIGZhaWxlZDogAADnTBAAEwAAAEdlbmVyYWwgRXJyb3I6IAAETRAADwAAAFByb29mIEVycm9yOiAAAAAcTRAADQAAAElPIEVycm9yOiAAADRNEAAKAAAAQ3VydmUgRXJyb3I6IAAAAEhNEAANAAAAUHJvb2ZFcnJvcmRlc2NzdHJpbmdHZW5l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Z25hdGVkIGNvdW50ZXJwYXJ0eS5UcmllZCB0byBhdXRvZ2VuZXJhdGUgYnJvYWRjYXN0IHRhZ3MgZnJvbSBkeWFkaWMgdGFnZ2VyLlJhbmRvbSBPcmFjbGUgdGFnIHJhbmdlIGV4aGF1c3RlZGNsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBkZXN0cm95ZWQgYWxyZWFkeQAAAHAAAAAEAAAABAAAAHEAAAByAAAAcwAAAAQAAAAEAAAAdAAAAHUAAABzAAAABAAAAAQAAAB2AAAAdwAAAEZuT25jZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2UvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi93YXNtLWJpbmRnZW4tZnV0dXJlcy0wLjQuMzMvc3JjL3F1ZXVlLnJzAAAAOFkQAG0AAAAdAAAAKQAAADhZEABtAAAAGgAAAC4AAAA4WRAAbQAAADIAAAAaAAAAL1VzZXJzL21hdHRoaWFzLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvd2FzbS1iaW5kZ2VuLWZ1dHVyZXMtMC40LjMzL3NyYy9saWIucnMA2FkQAGsAAAClAAAADwAAANhZEABrAAAAhQAAACcAAADYWRAAawAAAK8AAAAkAAAAeAAAAHkAAAB6AAAAewAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3dhc20tYmluZGdlbi1mdXR1cmVzLTAuNC4zMy9zcmMvdGFzay9zaW5nbGV0aHJlYWQucnMAAACEWhAAeQAAAFUAAAAlAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGRlc3Ryb3llZCBhbHJlYWR5QFsQAAAAAAAvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9mdXR1cmVzLXV0aWwtMC4zLjI1L3NyYy9zdHJlYW0vZnV0dXJlc191bm9yZGVyZWQvYWJvcnQucnMAAEhbEAB+AAAACwAAAAUAAAAvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9mdXR1cmVzLWNvcmUtMC4zLjI1L3NyYy90YXNrL19faW50ZXJuYWwvYXRvbWljX3dha2VyLnJz2FsQAHwAAAAqAQAARAAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9nZW5lcmFsX3B1cnBvc2UvZGVjb2RlLnJzAGRcEAB3AAAAOAAAACYAAABkXBAAdwAAAF4AAAAuAAAAZFwQAHcAAABhAAAADQAAAGRcEAB3AAAAZQAAADgAAABkXBAAdwAAAD0AAAAnAAAAZFwQAHcAAACNAAAAGQAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9nZW5lcmFsX3B1cnBvc2UvZGVjb2RlX3N1ZmZpeC5ycwAAPF0QAH4AAABUAAAACQAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2Jhc2U2NC0wLjIyLjEvc3JjL2VuZ2luZS9nZW5lcmFsX3B1cnBvc2UvbW9kLnJzzF0QAHQAAACWAAAADQAAAMxdEAB0AAAAmAAAAEAAAADMXRAAdAAAAJcAAAANAAAAzF0QAHQAAACaAAAADQAAAMxdEAB0AAAAngAAAA0AAADMXRAAdAAAAJ8AAAANAAAAzF0QAHQAAACHAAAAJQAAAMxdEAB0AAAAiAAAACsAAADMXRAAdAAAAEAAAAAbAAAAzF0QAHQAAABCAAAAIAAAAEludmFsaWQgc3ltYm9sICwgb2Zmc2V0IC4AAADgXhAADwAAAO9eEAAJAAAA+F4QAAEAAABJbnZhbGlkIGlucHV0IGxlbmd0aDogAAAUXxAAFgAAAEludmFsaWQgbGFzdCBzeW1ib2wgNF8QABQAAADvXhAACQAAAPheEAABAAAASW52YWxpZCBwYWRkaW5nL1VzZXJzL21hdHRoaWFzLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvYmFzZTY0LTAuMjIuMS9zcmMvZW5jb2RlLnJzAG9fEABgAAAAigAAAAkAAABKc1ZhbHVlKCkAAADgXxAACAAAAOhfEAABAEGkwMEACwEBAEH0wMEAC4UHaW52YWxpZCBsZW5ndGhlbmNvZGluZyBpbmZpbml0eSBpcyB1bnN1cHBvcnRlZGRlc2VyaWFsaXphdGlvbiBmYWlsdXJlAS9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3N1YnRsZS0yLjQuMS9zcmMvbGliLnJzAAC6YBAAXAAAAGQCAAAJAAAAZmFpbGVkIHRvIGRlY29kZSBwb2ludCBmcm9tIGJ5dGVzAAAAAAAAAGfmCWqFrme7cvNuPDr1T6V/Ug5RjGgFm6vZgx8ZzeBbAAAAAAAAAAAgAAAAIAAAAEAAAAAgAAAAjAAAAAQAAAAEAAAAjQAAAIwAAAAEAAAABAAAAI4AAABFcnJvcmtpbmQAAACMAAAALAAAAAQAAACPAAAAcG9zaXRpb26MAAAABAAAAAQAAACQAAAATGVuZ3RoRGF0ZVRpbWVGYWlsZWRJbmNvbXBsZXRlZXhwZWN0ZWRfbGVuAACMAAAABAAAAAQAAACRAAAAYWN0dWFsX2xlbgAAjAAAAAQAAAAEAAAAkgAAAEluZGVmaW5pdGVMZW5ndGh0YWcAjAAAAAQAAAAEAAAAkwAAAE5vbmNhbm9uaWNhbE9pZE1hbGZvcm1lZE9pZFVua25vd25vaWQAAACMAAAABAAAAAQAAACUAAAAU2V0RHVwbGljYXRlU2V0T3JkZXJpbmdPdmVyZmxvd092ZXJsZW5ndGhSZWFkZXJUYWdNb2RlVW5rbm93blRhZ051bWJlckludmFsaWRUYWdVbmV4cGVjdGVkZXhwZWN0ZWQAAJUAAAADAAAAAQAAAJYAAABhY3R1YWxUYWdVbmtub3duYnl0ZVRyYWlsaW5nRGF0YWRlY29kZWRyZW1haW5pbmdVdGY4jAAAAAQAAAAEAAAAlwAAAFZhbHVlVXRmOEVycm9ydmFsaWRfdXBfdG8AAACMAAAABAAAAAQAAACYAAAAZXJyb3JfbGVuAAAAjAAAAAQAAAAEAAAAmQAAAE5vbmVTb21laW52YWxpZCBsZW5ndGgAAJgX+ALFVqAAn5WNAji3bAP8mwIDwcKhA1wpBgJWse4C3Pl+AplvHgC41BAD/iP0AcSZQQEVmiIBtBf9ACpChAPAv08CdpURA6MmdwK2DhIAAQBBoMjBAAudBGN1cnZlcy9zcmMvcnVzdGNyeXB0by9ncm91cC5ycwAAIGQQAB4AAAAoAAAAFwAAAGRlc2VyaWFsaXphdGlvbiBmYWlsdXJlQ3VydmVFcnJvcjogAGdkEAAMAAAAL1VzZXJzL21hdHRoaWFzLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvc2VjMS0wLjcuMS9zcmMvcG9pbnQucnNpbnZhbGlkIHRhZwCaAAAANAAAAAQAAACbAAAAfGQQAFwAAADAAAAAJQAAAEFzbjGaAAAABAAAAAQAAACcAAAAQ3J5cHRvUG9pbnRFbmNvZGluZ1ZlcnNpb24AAJ0AAAAEAAAABAAAAJ4AAAAvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYW5kX2NoYWNoYS0wLjMuMS9zcmMvZ3V0cy5ycwAABAAAAERlEABiAAAA5gAAAAUAAAAvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9rMjU2LTAuMTMuMS9zcmMvYXJpdGhtZXRpYy9zY2FsYXIvd2lkZTMyLnJzvGUQAHAAAADpAAAAEgAAAAEAQdzMwQALIEFBNtCMXtK/O6BIr+bcrrr+////////////////////AEHMzcEACwEBAEGgzsEACwEBAEHMzsEACwEBAEGcz8EACynuAZUBHApbAhNcmQDWS9QBSfCcAToNDQPqeUQCuUEcAHxlKwJauh4AAQBB7M/BAAudAi9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL3NlYzEtMC43LjEvc3JjL3BvaW50LnJzaW52YWxpZCB0YWcAnwAAADQAAAAEAAAAoAAAAOxnEABcAAAAwAAAACUAAABBc24xnwAAAAQAAAAEAAAAoQAAAENyeXB0b1BvaW50RW5jb2RpbmdWZXJzaW9uVXRmOEVycm9ydmFsaWRfdXBfdG8AAJ8AAAAEAAAABAAAAKIAAABlcnJvcl9sZW4AAACfAAAABAAAAAQAAACjAAAATm9uZVNvbWWfAAAABAAAAAQAAACkAAAAnwAAAAQAAAAEAAAApQBBtNLBAAsBAQBBhNPBAAswMbDbRZogk+h/yuhxFIqqPRXrhJLkkGzozWvUpyHShjDD5L8KqX9UbyiIDgHWfkPkAEHE08EAC7grcX/Eiq60cRXGBvWdrAgSIsTkvwqpf1RvKIgOAdZ+Q+QsVrE9qM1l1200dAfFCiiK/v///////////////////8+DErUQyM/gwjnHjvy5gKikm+13/ePZWh/Poz+zUpyspgAAAAQAAAAEAAAApQAAAEVycm9ya2luZAAAAKYAAAAsAAAABAAAAKcAAABwb3NpdGlvbqYAAAAEAAAABAAAAKgAAABMZW5ndGgAAKYAAAAEAAAABAAAAKkAAABEYXRlVGltZUZhaWxlZEluY29tcGxldGVleHBlY3RlZF9sZW6mAAAABAAAAAQAAACqAAAAYWN0dWFsX2xlbgAApgAAAAQAAAAEAAAApAAAAEluZGVmaW5pdGVMZW5ndGh0YWcApgAAAAQAAAAEAAAAqwAAAE5vbmNhbm9uaWNhbE9pZE1hbGZvcm1lZE9pZFVua25vd25vaWQAAACmAAAABAAAAAQAAACsAAAAU2V0RHVwbGljYXRlU2V0T3JkZXJpbmdPdmVyZmxvd092ZXJsZW5ndGhSZWFkZXJUYWdNb2RlVW5rbm93blRhZ051bWJlckludmFsaWRUYWdVbmV4cGVjdGVkZXhwZWN0ZWQAAK0AAAADAAAAAQAAAK4AAABhY3R1YWxUYWdVbmtub3duYnl0ZVRyYWlsaW5nRGF0YWRlY29kZWRyZW1haW5pbmdVdGY4pgAAAAQAAAAEAAAArwAAAFZhbHVlTm9uZVNvbWVlbXB0eSB5LWNvb3JkaW5hdGUvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9zZWMxLTAuNy4xL3NyYy9wb2ludC5ycwADbBAAXAAAAAoCAAAeAAAAQk9PTEVBTklOVEVHRVJCSVQgU1RSSU5HT0NURVQgU1RSSU5HTlVMTE9CSkVDVCBJREVOVElGSUVSUkVBTEVOVU1FUkFURURVVEY4U3RyaW5nU0VRVUVOQ0VTRVROdW1lcmljU3RyaW5nUHJpbnRhYmxlU3RyaW5nVGVsZXRleFN0cmluZ1ZpZGVvdGV4U3RyaW5nSUE1U3RyaW5nVVRDVGltZUdlbmVyYWxpemVkVGltZVZpc2libGVTdHJpbmdCTVBTdHJpbmdBUFBMSUNBVElPTiBbXSAoKQAAADhtEAANAAAARW0QAAMAAABIbRAAAQAAAHByaW1pdGl2ZWNvbnN0cnVjdGVkZG0QAAkAAABtbRAACwAAAENPTlRFWFQtU1BFQ0lGSUMgWwAAiG0QABIAAABFbRAAAwAAAEhtEAABAAAAUFJJVkFURSBbAAAAtG0QAAkAAABFbRAAAwAAAEhtEAABAAAAVGFnKDB4OiDYbRAABgAAAN5tEAACAAAASG0QAAEAAAD4bRAAAAAAAC9Vc2Vycy9tYXR0aGlhcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby02ZjE3ZDIyYmJhMTUwMDFmL2NvbnN0LW9pZC0wLjkuNS9zcmMvYXJjcy5ycwBuEABgAAAANwAAAC8AAAAAbhAAYAAAADwAAAAvAAAAT0lEIG1hbGZvcm1lZAAAALUAAAAIAAAABAAAALYAAAAAbhAAYAAAAG0AAAAZAAAAL1VzZXJzL21hdHRoaWFzLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTZmMTdkMjJiYmExNTAwMWYvY29uc3Qtb2lkLTAuOS41L3NyYy9saWIucnMAsG4QAF8AAACoAAAAFAAAAE9iamVjdElkZW50aWZpZXIoKQAAIG8QABEAAAAxbxAAAQAAAABuEAAAAAAALkFyY0ludmFsaWRhcmMAALUAAAAEAAAABAAAALcAAABBcmNUb29CaWdCYXNlMTI4RGlnaXRFeHBlY3RlZGFjdHVhbAC1AAAABAAAAAQAAAC4AAAARW1wdHlMZW5ndGhOb3RFbm91Z2hBcmNzVHJhaWxpbmdEb3QvVXNlcnMvbWF0dGhpYXMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tNmYxN2QyMmJiYTE1MDAxZi9yYW5kX2NvcmUtMC42LjQvc3JjL2ltcGxzLnJzw28QAGEAAABcAAAAQAAAAMNvEABhAAAAXAAAAE8AAAC9AAAADAAAAAQAAAC+AAAAvwAAAMAAAAAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi42L3NyYy9kbG1hbGxvYy5yc2Fzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAXHAQACkAAACoBAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplIDw9IHNpemUgKyBtYXhfb3ZlcmhlYWQAAFxwEAApAAAArgQAAA0AAABEcBAAAAAAAGVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVmaWxlc3lzdGVtIHF1b3RhIGV4Y2VlZGVkZmlsZSB0b28gbGFyZ2VyZXNvdXJjZSBidXN5ZXhlY3V0YWJsZSBmaWxlIGJ1c3lkZWFkbG9ja2Nyb3NzLWRldmljZSBsaW5rIG9yIHJlbmFtZXRvbyBtYW55IGxpbmtzaW52YWxpZCBmaWxlbmFtZWFyZ3VtZW50IGxpc3QgdG9vIGxvbmdvcGVyYXRpb24gaW50ZXJydXB0ZWR1bnN1cHBvcnRlZHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGVvdXQgb2YgbWVtb3J5b3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yT3Njb2RlAMEAAAAEAAAABAAAAMIAAABraW5kwwAAAAEAAAABAAAAxAAAAG1lc3NhZ2UAvQAAAAwAAAAEAAAAxQAAAEtpbmRFcnJvcgAAAMEAAAAIAAAABAAAAMYAAABDdXN0b21lcnJvcgDBAAAABAAAAAQAAADHAAAAIChvcyBlcnJvciApRHAQAAAAAAB0dBAACwAAAH90EAABAAAAbWVtb3J5IGFsbG9jYXRpb24gb2YgIGJ5dGVzIGZhaWxlZAAAmHQQABUAAACtdBAADQAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc8x0EAAYAAAAYgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJz9HQQABwAAACEAgAAHgAAAL0AAAAMAAAABAAAAMgAAADBAAAACAAAAAQAAADJAAAAwQAAAAgAAAAEAAAAygAAAMsAAADMAAAAEAAAAAQAAADNAAAAzgAAAM8AAAAAAAAAAQAAANAAAABOb3RGb3VuZFBlcm1pc3Npb25EZW5pZWRDb25uZWN0aW9uUmVmdXNlZENvbm5lY3Rpb25SZXNldEhvc3RVbnJlYWNoYWJsZU5ldHdvcmtVbnJlYWNoYWJsZUNvbm5lY3Rpb25BYm9ydGVkTm90Q29ubmVjdGVkQWRkckluVXNlQWRkck5vdEF2YWlsYWJsZU5ldHdvcmtEb3duQnJva2VuUGlwZUFscmVhZHlFeGlzdHNXb3VsZEJsb2NrTm90QURpcmVjdG9yeUlzQURpcmVjdG9yeURpcmVjdG9yeU5vdEVtcHR5UmVhZE9ubHlGaWxlc3lzdGVtRmlsZXN5c3RlbUxvb3BTdGFsZU5ldHdvcmtG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AQEMAQkBKAEDATcBAQMFAwEEBwILAh0BOgECAQIBAwEFAgcCCwIcAjkCAQECBAgBCQEKAh0BSAEEAQIDAQEIAVEBAgcMCGIBAgkLB0kCGwEBAQEBNw4BBQECBQsBJAkBZgQBBgECAgIZAgQDEAQNAQICBgEPAQADAAMdAh4CHgJAAgEHCAECCwkBLQMBAXUCIgF2AwQCCQEGA9sCAgE6AQEHAQEBAQIIBgoCATAfMQQwBwEBBQEoCQwCIAQCAgEDOAEBAgMBAQM6CAICmAMBDQEHBAEGAQMCxkAAAcMhAAONAWAgAAZpAgAEAQogAlACAAEDAQQBGQIFAZcCGhINASYIGQsuAzABAgQCAicBQwYCAgICDAEIAS8BMwEBAwICBQIBASoCCAHuAQIBBAEAAQAQEBAAAgAB4gGVBQADAQIFBCgDBAGlAgAEAAJQA0YLMQR7ATYPKQECAgoDMQQCAgcBPQMkBQEIPgEMAjQJCgQCAV8DAgEBAgYBAgGdAQMIFQI5AgEBAQEWAQ4HAwXDCAIDAQEXAVEBAgYBAQIBAQIBAusBAgQGAgECGwJVCAIBAQJqAQEBAgYBAWUDAgQBBQAJAQL1AQoCAQEEAZAEAgIEASAKKAYCBAgBCQYCAy4NAQIABwEGAQFSFgIHAQIBAnoGAwEBAgEHAQFIAgMBAQEAAgsCNAUFAQEBAAEGDwAFOwcAAT8EUQEAAgAuAhcAAQEDBAUICAIHHgSUAwA3BDIIAQ4BFgUBDwAHARECBwECAQVkAaAHAAE9BAAEAAdtBwBggPAAbwlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjHTEuNzguMCAoOWIwMDk1NmU1IDIwMjQtMDQtMjkpBndhbHJ1cwYwLjE5LjAMd2FzbS1iaW5kZ2VuBjAuMi44MwAsD3RhcmdldF9mZWF0dXJlcwIrD211dGFibGUtZ2xvYmFscysIc2lnbi1leHQ=";function q(){const xe=z.split("base64,")[1];return Uint8Array.from(atob(xe),oe=>oe.charCodeAt(0))}async function $(){const xe=q();return await te(xe),f}function le(){const xe=q();return Y(xe),f}const ae={keyType:"secp256k1",load:$,loadSync:le},he=ae;o.exports=s})()}(x8)),x8.exports}var Hfe=k9e(),za={},R8,wX;function Tfe(){if(wX)return R8;wX=1;var o=aA().Buffer,i=wd(),s=Ay();function f(l){if(this.buffer=null,this.writable=!0,this.readable=!0,!l)return this.buffer=o.alloc(0),this;if(typeof l.pipe=="function")return this.buffer=o.alloc(0),l.pipe(this),this;if(l.length||typeof l=="object")return this.buffer=l,this.writable=!1,process.nextTick((function(){this.emit("end",l),this.readable=!1,this.emit("close")}).bind(this)),this;throw new TypeError("Unexpected data type ("+typeof l+")")}return s.inherits(f,i),f.prototype.write=function(r){this.buffer=o.concat([this.buffer,o.from(r)]),this.emit("data",r)},f.prototype.end=function(r){r&&this.write(r),this.emit("end",r),this.emit("close"),this.writable=!1,this.readable=!1},R8=f,R8}var k8,mX;function N9e(){if(mX)return k8;mX=1;var o=mr().Buffer,i=mr().SlowBuffer;k8=s;function s(r,B){if(!o.isBuffer(r)||!o.isBuffer(B)||r.length!==B.length)return!1;for(var I=0,p=0;p=s;return S&&--D,D}function w(M,m){M=d(M);var x=i(m),D=M.length;if(D!==x*2)throw new TypeError('"'+m+'" signatures must be "'+x*2+'" bytes, saw "'+D+'"');var S=v(M,0,x),K=v(M,x,M.length),N=x-S,L=x-K,j=2+N+1+1+L,re=j0)return B(d);if(v==="number"&&isFinite(d))return y.long?p(d):I(d);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(d))};function B(d){if(d=String(d),!(d.length>100)){var y=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(d);if(y){var v=parseFloat(y[1]),w=(y[2]||"ms").toLowerCase();switch(w){case"years":case"year":case"yrs":case"yr":case"y":return v*r;case"weeks":case"week":case"w":return v*l;case"days":case"day":case"d":return v*f;case"hours":case"hour":case"hrs":case"hr":case"h":return v*s;case"minutes":case"minute":case"mins":case"min":case"m":return v*i;case"seconds":case"second":case"secs":case"sec":case"s":return v*o;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return v;default:return}}}}function I(d){var y=Math.abs(d);return y>=f?Math.round(d/f)+"d":y>=s?Math.round(d/s)+"h":y>=i?Math.round(d/i)+"m":y>=o?Math.round(d/o)+"s":d+"ms"}function p(d){var y=Math.abs(d);return y>=f?Q(d,y,f,"day"):y>=s?Q(d,y,s,"hour"):y>=i?Q(d,y,i,"minute"):y>=o?Q(d,y,o,"second"):d+" ms"}function Q(d,y,v,w){var M=y>=v*1.5;return Math.round(d/v)+" "+w+(M?"s":"")}return Y8}var J8,LX;function Wfe(){if(LX)return J8;LX=1;var o=L9e();return J8=function(i,s){var f=s||Math.floor(Date.now()/1e3);if(typeof i=="string"){var l=o(i);return typeof l>"u"?void 0:Math.floor(f+l/1e3)}else return typeof i=="number"?f+i:void 0},J8}var xC={exports:{}},UX;function U9e(){return UX||(UX=1,function(o,i){var s={};i=o.exports=Te;var f;typeof process=="object"&&s&&s.NODE_DEBUG&&/\bsemver\b/i.test(s.NODE_DEBUG)?f=function(){var qe=Array.prototype.slice.call(arguments,0);qe.unshift("SEMVER"),console.log.apply(console,qe)}:f=function(){},i.SEMVER_SPEC_VERSION="2.0.0";var l=256,r=Number.MAX_SAFE_INTEGER||9007199254740991,B=16,I=l-6,p=i.re=[],Q=i.safeRe=[],d=i.src=[],y=0,v="[a-zA-Z0-9-]",w=[["\\s",1],["\\d",l],[v,I]];function M(qe){for(var Ye=0;Ye)?=?)";var a=y++;d[a]=d[x]+"|x|X|\\*";var h=y++;d[h]=d[m]+"|x|X|\\*";var c=y++;d[c]="[v=\\s]*("+d[h]+")(?:\\.("+d[h]+")(?:\\.("+d[h]+")(?:"+d[j]+")?"+d[J]+"?)?)?";var C=y++;d[C]="[v=\\s]*("+d[a]+")(?:\\.("+d[a]+")(?:\\.("+d[a]+")(?:"+d[re]+")?"+d[J]+"?)?)?";var g=y++;d[g]="^"+d[n]+"\\s*"+d[c]+"$";var t=y++;d[t]="^"+d[n]+"\\s*"+d[C]+"$";var u=y++;d[u]="(?:^|[^\\d])(\\d{1,"+B+"})(?:\\.(\\d{1,"+B+"}))?(?:\\.(\\d{1,"+B+"}))?(?:$|[^\\d])";var b=y++;d[b]="(?:~>?)";var R=y++;d[R]="(\\s*)"+d[b]+"\\s+",p[R]=new RegExp(d[R],"g"),Q[R]=new RegExp(M(d[R]),"g");var T="$1~",V=y++;d[V]="^"+d[b]+d[c]+"$";var P=y++;d[P]="^"+d[b]+d[C]+"$";var F=y++;d[F]="(?:\\^)";var Y=y++;d[Y]="(\\s*)"+d[F]+"\\s+",p[Y]=new RegExp(d[Y],"g"),Q[Y]=new RegExp(M(d[Y]),"g");var W="$1^",te=y++;d[te]="^"+d[F]+d[c]+"$";var z=y++;d[z]="^"+d[F]+d[C]+"$";var q=y++;d[q]="^"+d[n]+"\\s*("+e+")$|^$";var $=y++;d[$]="^"+d[n]+"\\s*("+E+")$|^$";var le=y++;d[le]="(\\s*)"+d[n]+"\\s*("+e+"|"+d[c]+")",p[le]=new RegExp(d[le],"g"),Q[le]=new RegExp(M(d[le]),"g");var ae="$1$2$3",he=y++;d[he]="^\\s*("+d[c]+")\\s+-\\s+("+d[c]+")\\s*$";var xe=y++;d[xe]="^\\s*("+d[C]+")\\s+-\\s+("+d[C]+")\\s*$";var se=y++;d[se]="(<|>)?=?\\s*\\*";for(var oe=0;oel)return null;var Pe=Ye.loose?Q[A]:Q[Ae];if(!Pe.test(qe))return null;try{return new Te(qe,Ye)}catch{return null}}i.valid=fe;function fe(qe,Ye){var Pe=Ue(qe,Ye);return Pe?Pe.version:null}i.clean=ce;function ce(qe,Ye){var Pe=Ue(qe.trim().replace(/^[=v]+/,""),Ye);return Pe?Pe.version:null}i.SemVer=Te;function Te(qe,Ye){if((!Ye||typeof Ye!="object")&&(Ye={loose:!!Ye,includePrerelease:!1}),qe instanceof Te){if(qe.loose===Ye.loose)return qe;qe=qe.version}else if(typeof qe!="string")throw new TypeError("Invalid Version: "+qe);if(qe.length>l)throw new TypeError("version is longer than "+l+" characters");if(!(this instanceof Te))return new Te(qe,Ye);f("SemVer",qe,Ye),this.options=Ye,this.loose=!!Ye.loose;var Pe=qe.trim().match(Ye.loose?Q[A]:Q[Ae]);if(!Pe)throw new TypeError("Invalid Version: "+qe);if(this.raw=qe,this.major=+Pe[1],this.minor=+Pe[2],this.patch=+Pe[3],this.major>r||this.major<0)throw new TypeError("Invalid major version");if(this.minor>r||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>r||this.patch<0)throw new TypeError("Invalid patch version");Pe[4]?this.prerelease=Pe[4].split(".").map(function(ze){if(/^[0-9]+$/.test(ze)){var Xe=+ze;if(Xe>=0&&Xe=0;)typeof this.prerelease[Pe]=="number"&&(this.prerelease[Pe]++,Pe=-2);Pe===-1&&this.prerelease.push(0)}Ye&&(this.prerelease[0]===Ye?isNaN(this.prerelease[1])&&(this.prerelease=[Ye,0]):this.prerelease=[Ye,0]);break;default:throw new Error("invalid increment argument: "+qe)}return this.format(),this.raw=this.version,this},i.inc=ue;function ue(qe,Ye,Pe,ze){typeof Pe=="string"&&(ze=Pe,Pe=void 0);try{return new Te(qe,Pe).inc(Ye,ze).version}catch{return null}}i.diff=Be;function Be(qe,Ye){if(me(qe,Ye))return null;var Pe=Ue(qe),ze=Ue(Ye),Xe="";if(Pe.prerelease.length||ze.prerelease.length){Xe="pre";var rt="prerelease"}for(var it in Pe)if((it==="major"||it==="minor"||it==="patch")&&Pe[it]!==ze[it])return Xe+it;return rt}i.compareIdentifiers=H;var Ve=/^[0-9]+$/;function H(qe,Ye){var Pe=Ve.test(qe),ze=Ve.test(Ye);return Pe&&ze&&(qe=+qe,Ye=+Ye),qe===Ye?0:Pe&&!ze?-1:ze&&!Pe?1:qe0}i.lt=Je;function Je(qe,Ye,Pe){return de(qe,Ye,Pe)<0}i.eq=me;function me(qe,Ye,Pe){return de(qe,Ye,Pe)===0}i.neq=Fe;function Fe(qe,Ye,Pe){return de(qe,Ye,Pe)!==0}i.gte=at;function at(qe,Ye,Pe){return de(qe,Ye,Pe)>=0}i.lte=ve;function ve(qe,Ye,Pe){return de(qe,Ye,Pe)<=0}i.cmp=Ke;function Ke(qe,Ye,Pe,ze){switch(Ye){case"===":return typeof qe=="object"&&(qe=qe.version),typeof Pe=="object"&&(Pe=Pe.version),qe===Pe;case"!==":return typeof qe=="object"&&(qe=qe.version),typeof Pe=="object"&&(Pe=Pe.version),qe!==Pe;case"":case"=":case"==":return me(qe,Pe,ze);case"!=":return Fe(qe,Pe,ze);case">":return Qe(qe,Pe,ze);case">=":return at(qe,Pe,ze);case"<":return Je(qe,Pe,ze);case"<=":return ve(qe,Pe,ze);default:throw new TypeError("Invalid operator: "+Ye)}}i.Comparator=nt;function nt(qe,Ye){if((!Ye||typeof Ye!="object")&&(Ye={loose:!!Ye,includePrerelease:!1}),qe instanceof nt){if(qe.loose===!!Ye.loose)return qe;qe=qe.value}if(!(this instanceof nt))return new nt(qe,Ye);qe=qe.trim().split(/\s+/).join(" "),f("comparator",qe,Ye),this.options=Ye,this.loose=!!Ye.loose,this.parse(qe),this.semver===we?this.value="":this.value=this.operator+this.semver.version,f("comp",this)}var we={};nt.prototype.parse=function(qe){var Ye=this.options.loose?Q[q]:Q[$],Pe=qe.match(Ye);if(!Pe)throw new TypeError("Invalid comparator: "+qe);this.operator=Pe[1],this.operator==="="&&(this.operator=""),Pe[2]?this.semver=new Te(Pe[2],this.options.loose):this.semver=we},nt.prototype.toString=function(){return this.value},nt.prototype.test=function(qe){return f("Comparator.test",qe,this.options.loose),this.semver===we?!0:(typeof qe=="string"&&(qe=new Te(qe,this.options)),Ke(qe,this.operator,this.semver,this.options))},nt.prototype.intersects=function(qe,Ye){if(!(qe instanceof nt))throw new TypeError("a Comparator is required");(!Ye||typeof Ye!="object")&&(Ye={loose:!!Ye,includePrerelease:!1});var Pe;if(this.operator==="")return Pe=new Re(qe.value,Ye),ft(this.value,Pe,Ye);if(qe.operator==="")return Pe=new Re(this.value,Ye),ft(qe.semver,Pe,Ye);var ze=(this.operator===">="||this.operator===">")&&(qe.operator===">="||qe.operator===">"),Xe=(this.operator==="<="||this.operator==="<")&&(qe.operator==="<="||qe.operator==="<"),rt=this.semver.version===qe.semver.version,it=(this.operator===">="||this.operator==="<=")&&(qe.operator===">="||qe.operator==="<="),ct=Ke(this.semver,"<",qe.semver,Ye)&&(this.operator===">="||this.operator===">")&&(qe.operator==="<="||qe.operator==="<"),ut=Ke(this.semver,">",qe.semver,Ye)&&(this.operator==="<="||this.operator==="<")&&(qe.operator===">="||qe.operator===">");return ze||Xe||rt&&it||ct||ut},i.Range=Re;function Re(qe,Ye){if((!Ye||typeof Ye!="object")&&(Ye={loose:!!Ye,includePrerelease:!1}),qe instanceof Re)return qe.loose===!!Ye.loose&&qe.includePrerelease===!!Ye.includePrerelease?qe:new Re(qe.raw,Ye);if(qe instanceof nt)return new Re(qe.value,Ye);if(!(this instanceof Re))return new Re(qe,Ye);if(this.options=Ye,this.loose=!!Ye.loose,this.includePrerelease=!!Ye.includePrerelease,this.raw=qe.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(Pe){return this.parseRange(Pe.trim())},this).filter(function(Pe){return Pe.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}Re.prototype.format=function(){return this.range=this.set.map(function(qe){return qe.join(" ").trim()}).join("||").trim(),this.range},Re.prototype.toString=function(){return this.range},Re.prototype.parseRange=function(qe){var Ye=this.options.loose,Pe=Ye?Q[xe]:Q[he];qe=qe.replace(Pe,be),f("hyphen replace",qe),qe=qe.replace(Q[le],ae),f("comparator trim",qe,Q[le]),qe=qe.replace(Q[R],T),qe=qe.replace(Q[Y],W);var ze=Ye?Q[q]:Q[$],Xe=qe.split(" ").map(function(rt){return ge(rt,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(Xe=Xe.filter(function(rt){return!!rt.match(ze)})),Xe=Xe.map(function(rt){return new nt(rt,this.options)},this),Xe},Re.prototype.intersects=function(qe,Ye){if(!(qe instanceof Re))throw new TypeError("a Range is required");return this.set.some(function(Pe){return Pe.every(function(ze){return qe.set.some(function(Xe){return Xe.every(function(rt){return ze.intersects(rt,Ye)})})})})},i.toComparators=Le;function Le(qe,Ye){return new Re(qe,Ye).set.map(function(Pe){return Pe.map(function(ze){return ze.value}).join(" ").trim().split(" ")})}function ge(qe,Ye){return f("comp",qe,Ye),qe=ke(qe,Ye),f("caret",qe),qe=We(qe,Ye),f("tildes",qe),qe=Me(qe,Ye),f("xrange",qe),qe=st(qe,Ye),f("stars",qe),qe}function ye(qe){return!qe||qe.toLowerCase()==="x"||qe==="*"}function We(qe,Ye){return qe.trim().split(/\s+/).map(function(Pe){return pe(Pe,Ye)}).join(" ")}function pe(qe,Ye){var Pe=Ye.loose?Q[P]:Q[V];return qe.replace(Pe,function(ze,Xe,rt,it,ct){f("tilde",qe,ze,Xe,rt,it,ct);var ut;return ye(Xe)?ut="":ye(rt)?ut=">="+Xe+".0.0 <"+(+Xe+1)+".0.0":ye(it)?ut=">="+Xe+"."+rt+".0 <"+Xe+"."+(+rt+1)+".0":ct?(f("replaceTilde pr",ct),ut=">="+Xe+"."+rt+"."+it+"-"+ct+" <"+Xe+"."+(+rt+1)+".0"):ut=">="+Xe+"."+rt+"."+it+" <"+Xe+"."+(+rt+1)+".0",f("tilde return",ut),ut})}function ke(qe,Ye){return qe.trim().split(/\s+/).map(function(Pe){return ot(Pe,Ye)}).join(" ")}function ot(qe,Ye){f("caret",qe,Ye);var Pe=Ye.loose?Q[z]:Q[te];return qe.replace(Pe,function(ze,Xe,rt,it,ct){f("caret",qe,ze,Xe,rt,it,ct);var ut;return ye(Xe)?ut="":ye(rt)?ut=">="+Xe+".0.0 <"+(+Xe+1)+".0.0":ye(it)?Xe==="0"?ut=">="+Xe+"."+rt+".0 <"+Xe+"."+(+rt+1)+".0":ut=">="+Xe+"."+rt+".0 <"+(+Xe+1)+".0.0":ct?(f("replaceCaret pr",ct),Xe==="0"?rt==="0"?ut=">="+Xe+"."+rt+"."+it+"-"+ct+" <"+Xe+"."+rt+"."+(+it+1):ut=">="+Xe+"."+rt+"."+it+"-"+ct+" <"+Xe+"."+(+rt+1)+".0":ut=">="+Xe+"."+rt+"."+it+"-"+ct+" <"+(+Xe+1)+".0.0"):(f("no pr"),Xe==="0"?rt==="0"?ut=">="+Xe+"."+rt+"."+it+" <"+Xe+"."+rt+"."+(+it+1):ut=">="+Xe+"."+rt+"."+it+" <"+Xe+"."+(+rt+1)+".0":ut=">="+Xe+"."+rt+"."+it+" <"+(+Xe+1)+".0.0"),f("caret return",ut),ut})}function Me(qe,Ye){return f("replaceXRanges",qe,Ye),qe.split(/\s+/).map(function(Pe){return Ne(Pe,Ye)}).join(" ")}function Ne(qe,Ye){qe=qe.trim();var Pe=Ye.loose?Q[t]:Q[g];return qe.replace(Pe,function(ze,Xe,rt,it,ct,ut){f("xRange",qe,ze,Xe,rt,it,ct,ut);var It=ye(rt),pt=It||ye(it),EA=pt||ye(ct),YA=EA;return Xe==="="&&YA&&(Xe=""),It?Xe===">"||Xe==="<"?ze="<0.0.0":ze="*":Xe&&YA?(pt&&(it=0),ct=0,Xe===">"?(Xe=">=",pt?(rt=+rt+1,it=0,ct=0):(it=+it+1,ct=0)):Xe==="<="&&(Xe="<",pt?rt=+rt+1:it=+it+1),ze=Xe+rt+"."+it+"."+ct):pt?ze=">="+rt+".0.0 <"+(+rt+1)+".0.0":EA&&(ze=">="+rt+"."+it+".0 <"+rt+"."+(+it+1)+".0"),f("xRange return",ze),ze})}function st(qe,Ye){return f("replaceStars",qe,Ye),qe.trim().replace(Q[se],"")}function be(qe,Ye,Pe,ze,Xe,rt,it,ct,ut,It,pt,EA,YA){return ye(Pe)?Ye="":ye(ze)?Ye=">="+Pe+".0.0":ye(Xe)?Ye=">="+Pe+"."+ze+".0":Ye=">="+Ye,ye(ut)?ct="":ye(It)?ct="<"+(+ut+1)+".0.0":ye(pt)?ct="<"+ut+"."+(+It+1)+".0":EA?ct="<="+ut+"."+It+"."+pt+"-"+EA:ct="<="+ct,(Ye+" "+ct).trim()}Re.prototype.test=function(qe){if(!qe)return!1;typeof qe=="string"&&(qe=new Te(qe,this.options));for(var Ye=0;Ye0){var Xe=qe[ze].semver;if(Xe.major===Ye.major&&Xe.minor===Ye.minor&&Xe.patch===Ye.patch)return!0}return!1}return!0}i.satisfies=ft;function ft(qe,Ye,Pe){try{Ye=new Re(Ye,Pe)}catch{return!1}return Ye.test(qe)}i.maxSatisfying=De;function De(qe,Ye,Pe){var ze=null,Xe=null;try{var rt=new Re(Ye,Pe)}catch{return null}return qe.forEach(function(it){rt.test(it)&&(!ze||Xe.compare(it)===-1)&&(ze=it,Xe=new Te(ze,Pe))}),ze}i.minSatisfying=_e;function _e(qe,Ye,Pe){var ze=null,Xe=null;try{var rt=new Re(Ye,Pe)}catch{return null}return qe.forEach(function(it){rt.test(it)&&(!ze||Xe.compare(it)===1)&&(ze=it,Xe=new Te(ze,Pe))}),ze}i.minVersion=At;function At(qe,Ye){qe=new Re(qe,Ye);var Pe=new Te("0.0.0");if(qe.test(Pe)||(Pe=new Te("0.0.0-0"),qe.test(Pe)))return Pe;Pe=null;for(var ze=0;ze":it.prerelease.length===0?it.patch++:it.prerelease.push(0),it.raw=it.format();case"":case">=":(!Pe||Qe(Pe,it))&&(Pe=it);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+rt.operator)}})}return Pe&&qe.test(Pe)?Pe:null}i.validRange=tt;function tt(qe,Ye){try{return new Re(qe,Ye).range||"*"}catch{return null}}i.ltr=Qt;function Qt(qe,Ye,Pe){return vt(qe,Ye,"<",Pe)}i.gtr=Et;function Et(qe,Ye,Pe){return vt(qe,Ye,">",Pe)}i.outside=vt;function vt(qe,Ye,Pe,ze){qe=new Te(qe,ze),Ye=new Re(Ye,ze);var Xe,rt,it,ct,ut;switch(Pe){case">":Xe=Qe,rt=ve,it=Je,ct=">",ut=">=";break;case"<":Xe=Je,rt=at,it=Qe,ct="<",ut="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(ft(qe,Ye,ze))return!1;for(var It=0;It=0.0.0")),EA=EA||Zo,YA=YA||Zo,Xe(Zo.semver,EA.semver,ze)?EA=Zo:it(Zo.semver,YA.semver,ze)&&(YA=Zo)}),EA.operator===ct||EA.operator===ut||(!YA.operator||YA.operator===ct)&&rt(qe,YA.semver))return!1;if(YA.operator===ut&&it(qe,YA.semver))return!1}return!0}i.prerelease=wt;function wt(qe,Ye){var Pe=Ue(qe,Ye);return Pe&&Pe.prerelease.length?Pe.prerelease:null}i.intersects=mt;function mt(qe,Ye,Pe){return qe=new Re(qe,Pe),Ye=new Re(Ye,Pe),qe.intersects(Ye)}i.coerce=Mt;function Mt(qe){if(qe instanceof Te)return qe;if(typeof qe!="string")return null;var Ye=qe.match(Q[u]);return Ye==null?null:Ue(Ye[1]+"."+(Ye[2]||"0")+"."+(Ye[3]||"0"))}}(xC,xC.exports)),xC.exports}var P8,qX;function Vfe(){if(qX)return P8;qX=1;var o=U9e();return P8=o.satisfies(process.version,"^6.12.0 || >=8.0.0"),P8}var O8,HX;function q9e(){if(HX)return O8;HX=1;var o=ly(),i=Ofe(),s=jfe(),f=Pfe(),l=Wfe(),r=Vfe(),B=F_(),I=["RS256","RS384","RS512","ES256","ES384","ES512"],p=["RS256","RS384","RS512"],Q=["HS256","HS384","HS512"];return r&&(I.splice(3,0,"PS256","PS384","PS512"),p.splice(3,0,"PS256","PS384","PS512")),O8=function(d,y,v,w){typeof v=="function"&&!w&&(w=v,v={}),v||(v={}),v=Object.assign({},v);var M;if(w?M=w:M=function(N,L){if(N)throw N;return L},v.clockTimestamp&&typeof v.clockTimestamp!="number")return M(new o("clockTimestamp must be a number"));if(v.nonce!==void 0&&(typeof v.nonce!="string"||v.nonce.trim()===""))return M(new o("nonce must be a non-empty string"));var m=v.clockTimestamp||Math.floor(Date.now()/1e3);if(!d)return M(new o("jwt must be provided"));if(typeof d!="string")return M(new o("jwt must be a string"));var x=d.split(".");if(x.length!==3)return M(new o("jwt malformed"));var D;try{D=f(d,{complete:!0})}catch(N){return M(N)}if(!D)return M(new o("invalid token"));var S=D.header,K;if(typeof y=="function"){if(!w)return M(new o("verify must be called asynchronous if secret or public key is provided as a callback"));K=y}else K=function(N,L){return L(null,y)};return K(S,function(N,L){if(N)return M(new o("error in secret or public key callback: "+N.message));var j=x[2].trim()!=="";if(!j&&L)return M(new o("jwt signature is required"));if(j&&!L)return M(new o("secret or public key must be provided"));if(!j&&!v.algorithms&&(v.algorithms=["none"]),v.algorithms||(v.algorithms=~L.toString().indexOf("BEGIN CERTIFICATE")||~L.toString().indexOf("BEGIN PUBLIC KEY")?I:~L.toString().indexOf("BEGIN RSA PUBLIC KEY")?p:Q),!~v.algorithms.indexOf(D.header.alg))return M(new o("invalid algorithm"));var re;try{re=B.verify(d,D.header.alg,L)}catch(a){return M(a)}if(!re)return M(new o("invalid signature"));var Z=D.payload;if(typeof Z.nbf<"u"&&!v.ignoreNotBefore){if(typeof Z.nbf!="number")return M(new o("invalid nbf value"));if(Z.nbf>m+(v.clockTolerance||0))return M(new i("jwt not active",new Date(Z.nbf*1e3)))}if(typeof Z.exp<"u"&&!v.ignoreExpiration){if(typeof Z.exp!="number")return M(new o("invalid exp value"));if(m>=Z.exp+(v.clockTolerance||0))return M(new s("jwt expired",new Date(Z.exp*1e3)))}if(v.audience){var J=Array.isArray(v.audience)?v.audience:[v.audience],Ae=Array.isArray(Z.aud)?Z.aud:[Z.aud],E=Ae.some(function(a){return J.some(function(h){return h instanceof RegExp?h.test(a):h===a})});if(!E)return M(new o("jwt audience invalid. expected: "+J.join(" or ")))}if(v.issuer){var e=typeof v.issuer=="string"&&Z.iss!==v.issuer||Array.isArray(v.issuer)&&v.issuer.indexOf(Z.iss)===-1;if(e)return M(new o("jwt issuer invalid. expected: "+v.issuer))}if(v.subject&&Z.sub!==v.subject)return M(new o("jwt subject invalid. expected: "+v.subject));if(v.jwtid&&Z.jti!==v.jwtid)return M(new o("jwt jwtid invalid. expected: "+v.jwtid));if(v.nonce&&Z.nonce!==v.nonce)return M(new o("jwt nonce invalid. expected: "+v.nonce));if(v.maxAge){if(typeof Z.iat!="number")return M(new o("iat required when maxAge is specified"));var A=l(v.maxAge,Z.iat);if(typeof A>"u")return M(new o('"maxAge" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'));if(m>=A+(v.clockTolerance||0))return M(new s("maxAge exceeded",new Date(A*1e3)))}if(v.complete===!0){var n=D.signature;return M(null,{header:S,payload:Z,signature:n})}return M(null,Z)})},O8}var j8,TX;function H9e(){if(TX)return j8;TX=1;var o=1/0,i=9007199254740991,s=17976931348623157e292,f=NaN,l="[object Arguments]",r="[object Function]",B="[object GeneratorFunction]",I="[object String]",p="[object Symbol]",Q=/^\s+|\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,y=/^0b[01]+$/i,v=/^0o[0-7]+$/i,w=/^(?:0|[1-9]\d*)$/,M=parseInt;function m(q,$){for(var le=-1,ae=q?q.length:0,he=Array(ae);++le-1&&q%1==0&&q<$}function a(q){var $=q&&q.constructor,le=typeof $=="function"&&$.prototype||j;return q===le}function h(q,$,le,ae){q=g(q)?q:z(q),le=le&&!ae?Y(le):0;var he=q.length;return le<0&&(le=E(he+le,0)),V(q)?le<=he&&q.indexOf($,le)>-1:!!he&&D(q,$,le)>-1}function c(q){return t(q)&&re.call(q,"callee")&&(!J.call(q,"callee")||Z.call(q)==l)}var C=Array.isArray;function g(q){return q!=null&&b(q.length)&&!u(q)}function t(q){return T(q)&&g(q)}function u(q){var $=R(q)?Z.call(q):"";return $==r||$==B}function b(q){return typeof q=="number"&&q>-1&&q%1==0&&q<=i}function R(q){var $=typeof q;return!!q&&($=="object"||$=="function")}function T(q){return!!q&&typeof q=="object"}function V(q){return typeof q=="string"||!C(q)&&T(q)&&Z.call(q)==I}function P(q){return typeof q=="symbol"||T(q)&&Z.call(q)==p}function F(q){if(!q)return q===0?q:0;if(q=W(q),q===o||q===-o){var $=q<0?-1:1;return $*s}return q===q?q:0}function Y(q){var $=F(q),le=$%1;return $===$?le?$-le:$:0}function W(q){if(typeof q=="number")return q;if(P(q))return f;if(R(q)){var $=typeof q.valueOf=="function"?q.valueOf():q;q=R($)?$+"":$}if(typeof q!="string")return q===0?q:+q;q=q.replace(Q,"");var le=y.test(q);return le||v.test(q)?M(q.slice(2),le?2:8):d.test(q)?f:+q}function te(q){return g(q)?e(q):A(q)}function z(q){return q?N(q,te(q)):[]}return j8=h,j8}var W8,YX;function T9e(){if(YX)return W8;YX=1;var o="[object Boolean]",i=Object.prototype,s=i.toString;function f(r){return r===!0||r===!1||l(r)&&s.call(r)==o}function l(r){return!!r&&typeof r=="object"}return W8=f,W8}var V8,JX;function Y9e(){if(JX)return V8;JX=1;var o=1/0,i=17976931348623157e292,s=NaN,f="[object Symbol]",l=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,B=/^0b[01]+$/i,I=/^0o[0-7]+$/i,p=parseInt,Q=Object.prototype,d=Q.toString;function y(S){return typeof S=="number"&&S==x(S)}function v(S){var K=typeof S;return!!S&&(K=="object"||K=="function")}function w(S){return!!S&&typeof S=="object"}function M(S){return typeof S=="symbol"||w(S)&&d.call(S)==f}function m(S){if(!S)return S===0?S:0;if(S=D(S),S===o||S===-o){var K=S<0?-1:1;return K*i}return S===S?S:0}function x(S){var K=m(S),N=K%1;return K===K?N?K-N:K:0}function D(S){if(typeof S=="number")return S;if(M(S))return s;if(v(S)){var K=typeof S.valueOf=="function"?S.valueOf():S;S=v(K)?K+"":K}if(typeof S!="string")return S===0?S:+S;S=S.replace(l,"");var N=B.test(S);return N||I.test(S)?p(S.slice(2),N?2:8):r.test(S)?s:+S}return V8=y,V8}var Z8,PX;function J9e(){if(PX)return Z8;PX=1;var o="[object Number]",i=Object.prototype,s=i.toString;function f(r){return!!r&&typeof r=="object"}function l(r){return typeof r=="number"||f(r)&&s.call(r)==o}return Z8=l,Z8}var z8,OX;function P9e(){if(OX)return z8;OX=1;var o="[object Object]";function i(v){var w=!1;if(v!=null&&typeof v.toString!="function")try{w=!!(v+"")}catch{}return w}function s(v,w){return function(M){return v(w(M))}}var f=Function.prototype,l=Object.prototype,r=f.toString,B=l.hasOwnProperty,I=r.call(Object),p=l.toString,Q=s(Object.getPrototypeOf,Object);function d(v){return!!v&&typeof v=="object"}function y(v){if(!d(v)||p.call(v)!=o||i(v))return!1;var w=Q(v);if(w===null)return!0;var M=B.call(w,"constructor")&&w.constructor;return typeof M=="function"&&M instanceof M&&r.call(M)==I}return z8=y,z8}var $8,jX;function O9e(){if(jX)return $8;jX=1;var o="[object String]",i=Object.prototype,s=i.toString,f=Array.isArray;function l(B){return!!B&&typeof B=="object"}function r(B){return typeof B=="string"||!f(B)&&l(B)&&s.call(B)==o}return $8=r,$8}var X8,WX;function j9e(){if(WX)return X8;WX=1;var o="Expected a function",i=1/0,s=17976931348623157e292,f=NaN,l="[object Symbol]",r=/^\s+|\s+$/g,B=/^[-+]0x[0-9a-f]+$/i,I=/^0b[01]+$/i,p=/^0o[0-7]+$/i,Q=parseInt,d=Object.prototype,y=d.toString;function v(N,L){var j;if(typeof L!="function")throw new TypeError(o);return N=S(N),function(){return--N>0&&(j=L.apply(this,arguments)),N<=1&&(L=void 0),j}}function w(N){return v(2,N)}function M(N){var L=typeof N;return!!N&&(L=="object"||L=="function")}function m(N){return!!N&&typeof N=="object"}function x(N){return typeof N=="symbol"||m(N)&&y.call(N)==l}function D(N){if(!N)return N===0?N:0;if(N=K(N),N===i||N===-i){var L=N<0?-1:1;return L*s}return N===N?N:0}function S(N){var L=D(N),j=L%1;return L===L?j?L-j:L:0}function K(N){if(typeof N=="number")return N;if(x(N))return f;if(M(N)){var L=typeof N.valueOf=="function"?N.valueOf():N;N=M(L)?L+"":L}if(typeof N!="string")return N===0?N:+N;N=N.replace(r,"");var j=I.test(N);return j||p.test(N)?Q(N.slice(2),j?2:8):B.test(N)?f:+N}return X8=w,X8}var eR,VX;function W9e(){if(VX)return eR;VX=1;var o=Wfe(),i=Vfe(),s=F_(),f=H9e(),l=T9e(),r=Y9e(),B=J9e(),I=P9e(),p=O9e(),Q=j9e(),d=["RS256","RS384","RS512","ES256","ES384","ES512","HS256","HS384","HS512","none"];i&&d.splice(3,0,"PS256","PS384","PS512");var y={expiresIn:{isValid:function(S){return r(S)||p(S)&&S},message:'"expiresIn" should be a number of seconds or string representing a timespan'},notBefore:{isValid:function(S){return r(S)||p(S)&&S},message:'"notBefore" should be a number of seconds or string representing a timespan'},audience:{isValid:function(S){return p(S)||Array.isArray(S)},message:'"audience" must be a string or array'},algorithm:{isValid:f.bind(null,d),message:'"algorithm" must be a valid string enum value'},header:{isValid:I,message:'"header" must be an object'},encoding:{isValid:p,message:'"encoding" must be a string'},issuer:{isValid:p,message:'"issuer" must be a string'},subject:{isValid:p,message:'"subject" must be a string'},jwtid:{isValid:p,message:'"jwtid" must be a string'},noTimestamp:{isValid:l,message:'"noTimestamp" must be a boolean'},keyid:{isValid:p,message:'"keyid" must be a string'},mutatePayload:{isValid:l,message:'"mutatePayload" must be a boolean'}},v={iat:{isValid:B,message:'"iat" should be a number of seconds'},exp:{isValid:B,message:'"exp" should be a number of seconds'},nbf:{isValid:B,message:'"nbf" should be a number of seconds'}};function w(S,K,N,L){if(!I(N))throw new Error('Expected "'+L+'" to be a plain object.');Object.keys(N).forEach(function(j){var re=S[j];if(!re){if(!K)throw new Error('"'+j+'" is not allowed in "'+L+'"');return}if(!re.isValid(N[j]))throw new Error(re.message)})}function M(S){return w(y,!1,S,"options")}function m(S){return w(v,!0,S,"payload")}var x={audience:"aud",issuer:"iss",subject:"sub",jwtid:"jti"},D=["expiresIn","notBefore","noTimestamp","audience","issuer","subject","jwtid"];return eR=function(S,K,N,L){typeof N=="function"?(L=N,N={}):N=N||{};var j=typeof S=="object"&&!Buffer.isBuffer(S),re=Object.assign({alg:N.algorithm||"HS256",typ:j?"JWT":void 0,kid:N.keyid},N.header);function Z(e){if(L)return L(e);throw e}if(!K&&N.algorithm!=="none")return Z(new Error("secretOrPrivateKey must have a value"));if(typeof S>"u")return Z(new Error("payload is required"));if(j){try{m(S)}catch(e){return Z(e)}N.mutatePayload||(S=Object.assign({},S))}else{var J=D.filter(function(e){return typeof N[e]<"u"});if(J.length>0)return Z(new Error("invalid "+J.join(",")+" option for "+typeof S+" payload"))}if(typeof S.exp<"u"&&typeof N.expiresIn<"u")return Z(new Error('Bad "options.expiresIn" option the payload already has an "exp" property.'));if(typeof S.nbf<"u"&&typeof N.notBefore<"u")return Z(new Error('Bad "options.notBefore" option the payload already has an "nbf" property.'));try{M(N)}catch(e){return Z(e)}var Ae=S.iat||Math.floor(Date.now()/1e3);if(N.noTimestamp?delete S.iat:j&&(S.iat=Ae),typeof N.notBefore<"u"){try{S.nbf=o(N.notBefore,Ae)}catch(e){return Z(e)}if(typeof S.nbf>"u")return Z(new Error('"notBefore" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'))}if(typeof N.expiresIn<"u"&&typeof S=="object"){try{S.exp=o(N.expiresIn,Ae)}catch(e){return Z(e)}if(typeof S.exp>"u")return Z(new Error('"expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'))}Object.keys(x).forEach(function(e){var A=x[e];if(typeof N[e]<"u"){if(typeof S[A]<"u")return Z(new Error('Bad "options.'+e+'" option. The payload already has an "'+A+'" property.'));S[A]=N[e]}});var E=N.encoding||"utf8";if(typeof L=="function")L=L&&Q(L),s.createSign({header:re,privateKey:K,payload:S,encoding:E}).once("error",L).once("done",function(e){L(null,e)});else return s.sign({header:re,payload:S,secret:K,encoding:E})},eR}var tR,ZX;function V9e(){return ZX||(ZX=1,tR={decode:Pfe(),verify:q9e(),sign:W9e(),JsonWebTokenError:ly(),NotBeforeError:Ofe(),TokenExpiredError:jfe()}),tR}var Z9e=V9e();const z9e=gr(Z9e),$9e=async o=>{const i=Date.now();console.log("startTime",i);const s=new Rre({web3AuthClientId:"BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ",web3AuthNetwork:o.selectedNetwork,uxMode:"redirect",manualSync:o.manualSync,storage:window.localStorage,tssLib:Hfe.tssLib});await s.init({handleRedirectResult:!1,rehydrate:!1}),await s.loginWithJWT({verifier:o.verifier,verifierId:o.verifierId,idToken:o.idToken,prefetchTssPublicKeys:2});let f=Date.now();console.log("logged Time :",f),console.log(f-i),await new gre().setSecurityQuestion({mpcCoreKit:s,question:"question",answer:"answer"});let r=Date.now();console.log("SQ time",r),console.log(r-f),await s.commitChanges();let B=Date.now();console.log("commit :",B),console.log(B-r),console.log("total time",B-i)},pA=(...o)=>{const i=document.querySelector("#console>p");i&&(i.innerHTML=JSON.stringify(o||{},null,2)),console.log(...o)},Zfe=$X.DEVNET,X9e={chainNamespace:cg.EIP155,chainId:"0xaa36a7",rpcTarget:"https://rpc.ankr.com/eth_sepolia",displayName:"Ethereum Sepolia Testnet",blockExplorerUrl:"https://sepolia.etherscan.io",ticker:"ETH",tickerName:"Ethereum",decimals:18},Ft=new Rre({web3AuthClientId:"BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ",web3AuthNetwork:Zfe,uxMode:"redirect",manualSync:!0,storage:window.localStorage,tssLib:Hfe.tssLib,useDKG:!1}),hh=new f2e,eGe="MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCCD7oLrcKae+jVZPGx52Cb/lKhdKxpXjl9eGNa1MlY57A==",tGe=`-----BEGIN PRIVATE KEY----- -${eGe} ------END PRIVATE KEY-----`,AGe="ES256",zX=async o=>{const i=Math.floor(Date.now()/1e3),s={iss:"torus-key-test",aud:"torus-key-test",name:o,email:o,scope:"email",iat:i,eat:i+120},f={expiresIn:120,algorithm:AGe},r=z9e.sign(s,tGe,f),B=xre(r);return{idToken:r,parsedToken:B}};function rGe(){const[o,i]=Ii.useState(void 0),[s,f]=Ii.useState(void 0),[l,r]=Ii.useState(null),[B,I]=Ii.useState(void 0),[p,Q]=Ii.useState(qo.DEVICE),[d,y]=Ii.useState(""),[v,w]=Ii.useState(Zr.NOT_INITIALIZED),[M,m]=Ii.useState(void 0),[x,D]=Ii.useState(void 0),[S,K]=Ii.useState(void 0),[N,L]=Ii.useState(void 0),j=Ii.useMemo(()=>new gre,[]);async function re(ue){if(Ft.keyType!==QX.secp256k1){console.warn(`Ethereum requires keytype ${QX.secp256k1}, skipping provider setup`);return}let Be=new K_({config:{chainConfig:ue||X9e}});Be.setupProvider(ive(Ft)),r(Be)}const Z=!0,J=Ii.useRef(!1);Ii.useEffect(()=>{const ue=async()=>{Ft.status===Zr.NOT_INITIALIZED&&(await Ft.init({handleRedirectResult:!1,rehydrate:Z}),await hh.initWithMpcCoreKit(Ft),window.location.hash.includes("#state")&&await Ft.handleRedirectResult()),Ft.status===Zr.LOGGED_IN&&await re(),Ft.status===Zr.REQUIRED_SHARE&&pA("required more shares, please enter your backup/ device factor key, or reset account unrecoverable once reset, please use it with caution]"),console.log("coreKitInstance.status",Ft.status),w(Ft.status);try{let Be=j.getQuestion(Ft);K(Be),pA("security question set")}catch{pA("security question not set")}};J.current||(ue(),J.current=!0)},[]),Ii.useEffect(()=>{if(l){const ue=new Cu(l);I(ue)}},[l]);const Ae=async()=>{if(!Ft)throw new Error("coreKitInstance not found");pA(Ft.getKeyDetails())},E=async()=>{if(!Ft)throw new Error("coreKitInstance not found");const ue=Ft.tKey.metadata.factorPubs;if(!ue)throw new Error("factorPubs not found");const Be=ue[Ft.tKey.tssTag].map(Ve=>Ve.toSEC1(or,!0).toString("hex"));pA(Be)},e=async()=>{try{if(!o)throw new Error("mockEmail not found");const{idToken:ue,parsedToken:Be}=await zX(o);await Ft.loginWithJWT({verifier:"torus-test-health",verifierId:Be.email,idToken:ue,prefetchTssPublicKeys:1}),Ft.status===Zr.LOGGED_IN&&await re(),w(Ft.status)}catch(ue){console.error(ue)}},A=async()=>{try{if(!o)throw new Error("mockEmail not found");const{idToken:ue,parsedToken:Be}=await zX(o);await $9e({selectedNetwork:Zfe,manualSync:!0,setupProviderOnInit:!1,verifier:"torus-test-health",verifierId:Be.email,idToken:ue})}catch(ue){console.error(ue)}},n=async()=>{try{if(!Ft)throw new Error("initiated to login");const ue={subVerifierDetails:{typeOfLogin:"google",verifier:"w3a-google-demo",clientId:"519228911939-cri01h55lsjbsia1k7ll6qpalrus75ps.apps.googleusercontent.com"}};await Ft.loginWithOAuth(ue),w(Ft.status)}catch(ue){console.error(ue)}},a=async()=>{const ue=await Ft.getDeviceFactor();f(ue),pA("Device share: ",ue)},h=async()=>{if(!Ft)throw new Error("coreKitInstance not found");if(!s)throw new Error("backupFactorKey not found");const ue=new uk.BN(s,"hex");await Ft.inputFactorKey(ue),Ft.status===Zr.REQUIRED_SHARE&&pA("required more shares even after inputing backup factor key, please enter your backup/ device factor key, or reset account [unrecoverable once reset, please use it with caution]"),Ft.status===Zr.LOGGED_IN&&await re(),w(Ft.status)},c=async()=>{if(!Ft)throw new Error("coreKitInstance not found");if(!M)throw new Error("backupFactorKey not found");let ue=await j.recoverFactor(Ft,M);f(ue),pA("Security Question share: ",ue)},C=async()=>{if(!Ft)throw new Error("coreKitInstance not found");await Ft.logout(),pA("Log out"),r(null),w(Ft.status)},g=()=>{const ue=Ft==null?void 0:Ft.getUserInfo();pA(ue)},t=async()=>{if(!Ft)throw new Error("coreKitInstance is not set");pA("export share type: ",p);const ue=QR();await Ft.createFactor({shareType:p,factorKey:ue.private});let Be=BY(ue.private.toString("hex")),Ve=gQe(Be);pA("Export factor key: ",ue),console.log("menmonic : ",Be),console.log("key: ",Ve)},u=async()=>{if(!Ft)throw new Error("coreKitInstance is not set");const ue=Buffer.from(d,"hex"),Be=R9e.fromSEC1(or,ue.toString("hex"));await Ft.deleteFactor(Be),pA("factor deleted")},b=async()=>{if(!B){pA("web3 not initialized yet");return}const ue=await B.eth.getChainId();return pA(ue),ue},R=async(ue=0)=>{await Ft.setTssWalletIndex(ue),await T()},T=async()=>{if(!B){pA("web3 not initialized yet");return}const ue=(await B.eth.getAccounts())[0];return pA(ue),ue},V=async()=>{if(!B){pA("web3 not initialized yet");return}const ue=(await B.eth.getAccounts())[0],Be=B.utils.fromWei(await B.eth.getBalance(ue),"ether");return pA(Be),Be},P=async()=>{if(Ft.keyType==="secp256k1"){if(!B){pA("web3 not initialized yet");return}const ue=(await B.eth.getAccounts())[0],Ve=await B.eth.personal.sign("hello",ue,"");pA(Ve)}else if(Ft.keyType==="ed25519"){const ue=Buffer.from("hello signer!"),Be=await Ft.sign(ue);pA(Be.toString("hex"))}},F=async()=>{if(Ft.keyType==="secp256k1"){const ue=await Ft.precompute_secp256k1(),Be=Buffer.from("hello signer!"),Ve=await Ft.sign(Be,!1,ue);pA(Ve.toString("hex"))}else if(Ft.keyType==="ed25519"){const ue=Buffer.from("hello signer!"),Be=await Ft.sign(ue);pA(Be.toString("hex"))}},Y=async()=>{if(Ft.keyType==="secp256k1"){const[ue,Be]=await Promise.all([Ft.precompute_secp256k1(),Ft.precompute_secp256k1()]),Ve=Buffer.from("hello signer!"),H=await Ft.sign(Ve,!1,ue),k=Buffer.from("hello signer2!"),G=await Ft.sign(k,!1,Be);pA("Sig1: ",H.toString("hex"),"Sig2: ",G.toString("hex"))}else if(Ft.keyType==="ed25519"){const ue=Buffer.from("hello signer!"),Be=await Ft.sign(ue);pA(Be.toString("hex"))}},W=async()=>{if(!l){pA("provider not initialized yet");return}const ue={chainId:"0xaa36a7",displayName:"Ethereum Sepolia",chainNamespace:cg.EIP155,tickerName:"Ethereum Sepolia",ticker:"ETH",decimals:18,rpcTarget:"https://rpc.ankr.com/eth_sepolia",blockExplorer:"https://sepolia.etherscan.io",logo:"https://cryptologos.cc/logos/ethereum-eth-logo.png"};Ft.status===Zr.LOGGED_IN&&await re(ue),pA("Changed to Sepolia Network")},te=async()=>{if(!l){pA("provider not initialized yet");return}const ue={chainNamespace:cg.EIP155,chainId:"0x89",rpcTarget:"https://rpc.ankr.com/polygon",displayName:"Polygon Mainnet",blockExplorer:"https://polygonscan.com",ticker:"MATIC",tickerName:"MATIC"};Ft.status===Zr.LOGGED_IN&&await re(ue),pA("Changed to Sepolia Network")},z=async()=>{if(!l){pA("provider not initialized yet");return}console.log(l);let ue={chainId:"0xCC",chainName:"BNB",nativeCurrency:{name:"BNB",symbol:"BNB",decimals:18},rpcUrls:["https://opbnb-mainnet-rpc.bnbchain.org"],blockExplorerUrls:["https://opbnbscan.com"]};await l.sendAsync({method:"wallet_addEthereumChain",params:[ue]}),await l.sendAsync({method:"wallet_switchEthereumChain",params:[{chainId:ue.chainId}]}),pA("Changed to BNB Network")},q=async()=>{if(!Ft)throw new Error("coreKitInstance is not set");await Ft.tKey.storageLayer.setMetadata({privKey:new uk.BN(Ft.state.postBoxKey,"hex"),input:{message:"KEY_NOT_FOUND"}}),pA("reset"),r(null)},$=async()=>{if(!B){pA("web3 not initialized yet");return}const ue=(await B.eth.getAccounts())[0],Be="0x2E464670992574A613f10F7682D5057fB507Cc21",Ve=B.utils.toWei("0.0001","ether");pA("Sending transaction...");const H=await B.eth.sendTransaction({from:ue,to:Be,value:Ve});pA(H)},le=async(ue,Be)=>{if(!Ft)throw new Error("coreKitInstance is not set");await j.setSecurityQuestion({mpcCoreKit:Ft,question:ue,answer:Be,shareType:qo.RECOVERY}),L(void 0),await j.getQuestion(Ft)&&K(ue)},ae=async(ue,Be,Ve)=>{if(!Ft)throw new Error("coreKitInstance is not set");await j.changeSecurityQuestion({mpcCoreKit:Ft,newQuestion:ue,newAnswer:Be,answer:Ve}),await j.getQuestion(Ft)&&K(S)},he=async()=>{if(!Ft)throw new Error("coreKitInstance is not set");await j.deleteSecurityQuestion(Ft),K(void 0)},xe=async()=>{if(!Ft)throw new Error("coreKitInstance is not set");const ue=await Ft.enableMFA({}),Be=await BY(ue);pA("MFA enabled, device factor stored in local store, deleted hashed cloud key, your backup factor key: ",Be)},se=async()=>{if(!Ft)throw new Error("coreKitInstance is not set");if(!hh)throw new Error("passkeyPlugin is not set");await hh.registerPasskey()},oe=async()=>{if(!Ft)throw new Error("coreKitInstance is not set");if(!hh)throw new Error("passkeyPlugin is not set");await hh.authenticateWithPasskey()},Ue=async()=>{if(!Ft)throw new Error("coreKitInstance is not set");if(!hh)throw new Error("passkeyPlugin is not set");const ue=await hh.listPasskeys();pA(ue)},fe=async()=>{if(!Ft)throw new Error("coreKitInstance is not set");await Ft.commitChanges()},ce=Nt.jsxs(Nt.Fragment,{children:[Nt.jsx("h2",{className:"subtitle",children:"Account Details"}),Nt.jsxs("div",{className:"flex-container",children:[Nt.jsx("button",{onClick:g,className:"card",children:"Get User Info"}),Nt.jsx("button",{onClick:async()=>pA(await Ft.getPubKey()),className:"card",children:"Get Public Key"}),Nt.jsx("button",{onClick:Ae,className:"card",children:"Key Details"}),Nt.jsx("button",{onClick:E,className:"card",children:"List Factors"}),Nt.jsx("button",{onClick:fe,className:"card",children:"Commit Changes"})]}),Nt.jsxs("div",{className:"flex-container",children:[Nt.jsx("button",{onClick:q,className:"card",children:"[CRITICAL] Reset Account"}),Nt.jsx("button",{onClick:async()=>pA(await Ft._UNSAFE_exportTssKey()),className:"card",children:"[CAUTION] Export TSS Private Key"}),Nt.jsx("button",{onClick:C,className:"card",children:"Log Out"})]}),Nt.jsx("h2",{className:"subtitle",children:"Recovery/ Key Manipulation"}),Nt.jsxs("div",{children:[Nt.jsx("h4",{children:"Enabling MFA"}),Nt.jsx("div",{className:"flex-container",children:Nt.jsx("button",{onClick:xe,className:"card",children:"Enable MFA"})}),Nt.jsx("h4",{children:"Register Passkey"}),Nt.jsxs("div",{className:"flex-container",children:[Nt.jsx("button",{onClick:se,className:"card",children:"Register Passkey"}),Nt.jsx("button",{onClick:Ue,className:"card",children:"List Passkeys"})]}),Nt.jsx("h4",{children:"Manual Factors Manipulation"}),Nt.jsxs("div",{className:"flex-container",children:[Nt.jsx("label",{children:"Share Type:"}),Nt.jsxs("select",{value:p,onChange:ue=>Q(parseInt(ue.target.value)),children:[Nt.jsx("option",{value:qo.DEVICE,children:"Device Share"}),Nt.jsx("option",{value:qo.RECOVERY,children:"Recovery Share"})]}),Nt.jsx("button",{onClick:t,className:"card",children:"Export share"})]}),Nt.jsxs("div",{className:"flex-container",children:[Nt.jsx("label",{children:"Factor pub:"}),Nt.jsx("input",{value:d,onChange:ue=>y(ue.target.value)}),Nt.jsx("button",{onClick:u,className:"card",children:"Delete Factor"})]}),Nt.jsxs("div",{className:"flex-container",children:[Nt.jsx("input",{value:s,onChange:ue=>f(ue.target.value)}),Nt.jsx("button",{onClick:()=>h(),className:"card",children:"Input Factor Key"})]}),Nt.jsx("h4",{children:"Security Question"}),Nt.jsx("div",{children:S}),Nt.jsxs("div",{className:"flex-container",children:[Nt.jsxs("div",{className:S?" disabledDiv":"",children:[Nt.jsx("label",{children:"Set Security Question:"}),Nt.jsx("input",{value:S,placeholder:"question",onChange:ue=>L(ue.target.value)}),Nt.jsx("input",{value:M,placeholder:"answer",onChange:ue=>m(ue.target.value)}),Nt.jsx("button",{onClick:()=>le(N,M),className:"card",children:"Create Security Question"})]}),Nt.jsxs("div",{className:S?"":" disabledDiv",children:[Nt.jsx("label",{children:"Change Security Question:"}),Nt.jsx("input",{value:N,placeholder:"newQuestion",onChange:ue=>L(ue.target.value)}),Nt.jsx("input",{value:x,placeholder:"newAnswer",onChange:ue=>D(ue.target.value)}),Nt.jsx("input",{value:M,placeholder:"oldAnswer",onChange:ue=>m(ue.target.value)}),Nt.jsx("button",{onClick:()=>ae(N,x,M),className:"card",children:"Change Security Question"})]})]}),Nt.jsx("div",{className:"flex-container",children:Nt.jsx("div",{className:S?"":"disabledDiv",children:Nt.jsx("button",{onClick:()=>he(),className:"card",children:"Delete Security Question"})})})]}),Nt.jsx("h2",{className:"subtitle",children:"Blockchain Calls"}),Nt.jsxs("div",{className:"flex-container",children:[Nt.jsx("button",{onClick:b,className:"card",children:"Get Chain ID"}),Nt.jsx("button",{onClick:T,className:"card",children:"Get Accounts"}),Nt.jsx("button",{onClick:()=>R(1),className:"card",children:"Switch to wallet index: 1"}),Nt.jsx("button",{onClick:()=>R(2),className:"card",children:"Switch to wallet index: 2"}),Nt.jsx("button",{onClick:()=>R(0),className:"card",children:"Switch to wallet index: 0/default"}),Nt.jsx("button",{onClick:V,className:"card",children:"Get Balance"}),Nt.jsx("button",{onClick:P,className:"card",children:"Sign Message"}),Nt.jsx("button",{onClick:F,className:"card",children:"Sign Msgwith precomputed TSS"}),Nt.jsx("button",{onClick:Y,className:"card",children:"Sign Multiple MSGs with precomputed TSS"}),Nt.jsx("button",{onClick:$,className:"card",children:"Send Transaction"}),Nt.jsx("button",{onClick:W,className:"card",children:"switchChainSepolia"}),Nt.jsx("button",{onClick:te,className:"card",children:"switchChainPolygon"}),Nt.jsx("button",{onClick:z,className:"card",children:"switchChainOPBNB"})]})]}),Te=Nt.jsxs(Nt.Fragment,{children:[Nt.jsx("input",{value:o,onChange:ue=>i(ue.target.value)}),Nt.jsx("button",{onClick:()=>e(),className:"card",children:"MockLogin"}),Nt.jsx("button",{onClick:oe,className:"card",children:"Login with Passkey"}),Nt.jsx("button",{onClick:()=>n(),className:"card",children:"Login"}),Nt.jsxs("div",{className:v===Zr.REQUIRED_SHARE?"":"disabledDiv",children:[Nt.jsx("button",{onClick:()=>a(),className:"card",children:"Get Device Share"}),Nt.jsx("label",{children:"Backup/ Device factor key:"}),Nt.jsx("input",{value:s,onChange:ue=>f(ue.target.value)}),Nt.jsx("button",{onClick:()=>h(),className:"card",children:"Input Factor Key"}),Nt.jsx("button",{onClick:q,className:"card",children:"[CRITICAL] Reset Account"}),Nt.jsxs("div",{className:S?"":"disabledDiv",children:[Nt.jsx("label",{children:"Recover Using Security Answer:"}),Nt.jsx("label",{children:S}),Nt.jsx("input",{value:M,onChange:ue=>m(ue.target.value)}),Nt.jsx("button",{onClick:()=>c(),className:"card",children:"Recover Using Security Answer"})]})]}),Nt.jsx("button",{onClick:()=>A(),className:"card",children:"Timed Flow"})]});return Nt.jsxs("div",{className:"container",children:[Nt.jsxs("h1",{className:"title",children:[Nt.jsx("a",{target:"_blank",href:"https://web3auth.io/docs/guides/mpc",rel:"noreferrer",children:"Web3Auth MPC Core Kit"})," ","Redirect Flow Example"]}),Nt.jsx("div",{className:"grid",children:v===Zr.LOGGED_IN?ce:Te}),Nt.jsx("div",{id:"console",style:{whiteSpace:"pre-line"},children:Nt.jsx("p",{style:{whiteSpace:"pre-line"}})}),Nt.jsx("footer",{className:"footer",children:Nt.jsx("a",{href:"https://github.com/Web3Auth/web3auth-core-kit-examples/tree/main/tkey/tkey-mpc-beta-react-popup-example",target:"_blank",rel:"noopener noreferrer",children:"Source code"})})]})}const iGe=z0e.createRoot(document.getElementById("root"));iGe.render(Nt.jsx(J0e.StrictMode,{children:Nt.jsx(rGe,{})}));export{cfe as A,uFe as B,xfe as C,i9e as D,pk as E,lFe as F,cFe as G,wFe as H,R_ as I,EFe as J,BFe as K,CFe as L,$Fe as M,bE as N,hs as O,pa as P,Dh as Q,En as R,yk as S,vk as T,Mh as U,Yc as V,Ok as W,aX as Z,iA as a,A0 as b,NGe as c,lfe as d,iX as e,_Ge as f,$i as g,Di as h,FGe as i,GGe as j,rX as k,kGe as l,k_ as m,qh as n,pFe as o,Sfe as p,Zg as q,KGe as r,Bn as s,Ife as t,LGe as u,Hh as v,mFe as w,ss as x,dFe as y,ufe as z}; diff --git a/demo/redirect-flow-example/dist/assets/index-LBjqkPsc.js b/demo/redirect-flow-example/dist/assets/index-LBjqkPsc.js deleted file mode 100644 index aed3ef5c..00000000 --- a/demo/redirect-flow-example/dist/assets/index-LBjqkPsc.js +++ /dev/null @@ -1 +0,0 @@ -var Ce=n=>{throw TypeError(n)};var de=(n,t,e)=>t.has(n)||Ce("Cannot "+e);var O=(n,t,e)=>(de(n,t,"read from private field"),e?e.call(n):t.get(n)),$=(n,t,e)=>t.has(n)?Ce("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(n):t.set(n,e),I=(n,t,e,r)=>(de(n,t,"write to private field"),r?r.call(n,e):t.set(n,e),e),ne=(n,t,e)=>(de(n,t,"access private method"),e);import{g as ot,a as L,b as rt,h as _,H as Xe,c as wn,t as Je,e as se,d as Bn,f as ge,o as En,w as Qe,r as nt,u as S,i as An,j as vn,k as be,l as Wt,S as St,m as ke,n as Xt,p as oe,q as ae,s as we,v as tn,x as st,y as Pn,z as ie,A as tt}from"./index-DX4e5JdD.js";import{M as kr,T as _r,Z as qr,F as Rr,E as $r,I as zr,D as Vr,C as Kr,G as Zr,L as jr,J as Dr,K as Mr,N as Yr,B as Wr}from"./index-DX4e5JdD.js";function In(n){let t=n.toString(16);for(;t.length<2;)t="0"+t;return"0x"+t}function _e(n,t,e){let r=0;for(let s=0;s{rt(r<=n.length,"data short segment too short","BUFFER_OVERRUN",{buffer:n,length:n.length,offset:r})};if(n[t]>=248){const r=n[t]-247;e(t+1+r);const s=_e(n,t+1,r);return e(t+1+r+s),qe(n,t,t+1+r,r+s)}else if(n[t]>=192){const r=n[t]-192;return e(t+1+r),qe(n,t,t+1,r)}else if(n[t]>=184){const r=n[t]-183;e(t+1+r);const s=_e(n,t+1,r);e(t+1+r+s);const i=_(n.slice(t+1+r,t+1+r+s));return{consumed:1+r+s,result:i}}else if(n[t]>=128){const r=n[t]-128;e(t+1+r);const s=_(n.slice(t+1,t+1+r));return{consumed:1+r,result:s}}return{consumed:1,result:In(n[t])}}function ce(n){const t=ot(n,"data"),e=en(t,0);return L(e.consumed===t.length,"unexpected junk after rlp payload","data",n),e.result}function Re(n){const t=[];for(;n;)t.unshift(n&255),n>>=8;return t}function nn(n){if(Array.isArray(n)){let r=[];if(n.forEach(function(i){r=r.concat(nn(i))}),r.length<=55)return r.unshift(192+r.length),r;const s=Re(r.length);return s.unshift(247+s.length),s.concat(r)}const t=Array.prototype.slice.call(ot(n,"object"));if(t.length===1&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const e=Re(t.length);return e.unshift(183+e.length),e.concat(t)}const $e="0123456789abcdef";function Kt(n){let t="0x";for(const e of nn(n))t+=$e[e>>4],t+=$e[e&15];return t}class rn extends Xe{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,wn(t);const r=Je(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,i=new Uint8Array(s);i.set(r.length>s?t.create().update(r).digest():r);for(let c=0;cnew rn(n,t).update(e).digest();sn.create=(n,t)=>new rn(n,t);function Sn(n,t,e,r){if(typeof n.setBigUint64=="function")return n.setBigUint64(t,e,r);const s=BigInt(32),i=BigInt(4294967295),c=Number(e>>s&i),a=Number(e&i),o=r?4:0,l=r?0:4;n.setUint32(t+o,c,r),n.setUint32(t+l,a,r)}class on extends Xe{constructor(t,e,r,s){super(),this.blockLen=t,this.outputLen=e,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=ge(this.buffer)}update(t){se(this);const{view:e,buffer:r,blockLen:s}=this;t=Je(t);const i=t.length;for(let c=0;cs-c&&(this.process(r,0),c=0);for(let f=c;fy.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fn&t^~n&e,Hn=(n,t,e)=>n&t^n&e^t&e,Nn=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),gt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),bt=new Uint32Array(64);class Fn extends on{constructor(){super(64,32,8,!1),this.A=gt[0]|0,this.B=gt[1]|0,this.C=gt[2]|0,this.D=gt[3]|0,this.E=gt[4]|0,this.F=gt[5]|0,this.G=gt[6]|0,this.H=gt[7]|0}get(){const{A:t,B:e,C:r,D:s,E:i,F:c,G:a,H:o}=this;return[t,e,r,s,i,c,a,o]}set(t,e,r,s,i,c,a,o){this.A=t|0,this.B=e|0,this.C=r|0,this.D=s|0,this.E=i|0,this.F=c|0,this.G=a|0,this.H=o|0}process(t,e){for(let f=0;f<16;f++,e+=4)bt[f]=t.getUint32(e,!1);for(let f=16;f<64;f++){const w=bt[f-15],P=bt[f-2],m=nt(w,7)^nt(w,18)^w>>>3,u=nt(P,17)^nt(P,19)^P>>>10;bt[f]=u+bt[f-7]+m+bt[f-16]|0}let{A:r,B:s,C:i,D:c,E:a,F:o,G:l,H:y}=this;for(let f=0;f<64;f++){const w=nt(a,6)^nt(a,11)^nt(a,25),P=y+w+Ln(a,o,l)+Nn[f]+bt[f]|0,u=(nt(r,2)^nt(r,13)^nt(r,22))+Hn(r,s,i)|0;y=l,l=o,o=a,a=c+P|0,c=i,i=s,s=r,r=P+u|0}r=r+this.A|0,s=s+this.B|0,i=i+this.C|0,c=c+this.D|0,a=a+this.E|0,o=o+this.F|0,l=l+this.G|0,y=y+this.H|0,this.set(r,s,i,c,a,o,l,y)}roundClean(){bt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const an=Qe(()=>new Fn),[Gn,On]=S.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(n=>BigInt(n))),yt=new Uint32Array(80),pt=new Uint32Array(80);class Un extends on{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:e,Bh:r,Bl:s,Ch:i,Cl:c,Dh:a,Dl:o,Eh:l,El:y,Fh:f,Fl:w,Gh:P,Gl:m,Hh:u,Hl:d}=this;return[t,e,r,s,i,c,a,o,l,y,f,w,P,m,u,d]}set(t,e,r,s,i,c,a,o,l,y,f,w,P,m,u,d){this.Ah=t|0,this.Al=e|0,this.Bh=r|0,this.Bl=s|0,this.Ch=i|0,this.Cl=c|0,this.Dh=a|0,this.Dl=o|0,this.Eh=l|0,this.El=y|0,this.Fh=f|0,this.Fl=w|0,this.Gh=P|0,this.Gl=m|0,this.Hh=u|0,this.Hl=d|0}process(t,e){for(let b=0;b<16;b++,e+=4)yt[b]=t.getUint32(e),pt[b]=t.getUint32(e+=4);for(let b=16;b<80;b++){const H=yt[b-15]|0,v=pt[b-15]|0,x=S.rotrSH(H,v,1)^S.rotrSH(H,v,8)^S.shrSH(H,v,7),A=S.rotrSL(H,v,1)^S.rotrSL(H,v,8)^S.shrSL(H,v,7),E=yt[b-2]|0,k=pt[b-2]|0,G=S.rotrSH(E,k,19)^S.rotrBH(E,k,61)^S.shrSH(E,k,6),F=S.rotrSL(E,k,19)^S.rotrBL(E,k,61)^S.shrSL(E,k,6),z=S.add4L(A,F,pt[b-7],pt[b-16]),j=S.add4H(z,x,G,yt[b-7],yt[b-16]);yt[b]=j|0,pt[b]=z|0}let{Ah:r,Al:s,Bh:i,Bl:c,Ch:a,Cl:o,Dh:l,Dl:y,Eh:f,El:w,Fh:P,Fl:m,Gh:u,Gl:d,Hh:g,Hl:B}=this;for(let b=0;b<80;b++){const H=S.rotrSH(f,w,14)^S.rotrSH(f,w,18)^S.rotrBH(f,w,41),v=S.rotrSL(f,w,14)^S.rotrSL(f,w,18)^S.rotrBL(f,w,41),x=f&P^~f&u,A=w&m^~w&d,E=S.add5L(B,v,A,On[b],pt[b]),k=S.add5H(E,g,H,x,Gn[b],yt[b]),G=E|0,F=S.rotrSH(r,s,28)^S.rotrBH(r,s,34)^S.rotrBH(r,s,39),z=S.rotrSL(r,s,28)^S.rotrBL(r,s,34)^S.rotrBL(r,s,39),j=r&i^r&a^i&a,et=s&c^s&o^c&o;g=u|0,B=d|0,u=P|0,d=m|0,P=f|0,m=w|0,{h:f,l:w}=S.add(l|0,y|0,k|0,G|0),l=a|0,y=o|0,a=i|0,o=c|0,i=r|0,c=s|0;const h=S.add3L(G,z,et);r=S.add3H(h,k,F,j),s=h|0}({h:r,l:s}=S.add(this.Ah|0,this.Al|0,r|0,s|0)),{h:i,l:c}=S.add(this.Bh|0,this.Bl|0,i|0,c|0),{h:a,l:o}=S.add(this.Ch|0,this.Cl|0,a|0,o|0),{h:l,l:y}=S.add(this.Dh|0,this.Dl|0,l|0,y|0),{h:f,l:w}=S.add(this.Eh|0,this.El|0,f|0,w|0),{h:P,l:m}=S.add(this.Fh|0,this.Fl|0,P|0,m|0),{h:u,l:d}=S.add(this.Gh|0,this.Gl|0,u|0,d|0),{h:g,l:B}=S.add(this.Hh|0,this.Hl|0,g|0,B|0),this.set(r,s,i,c,a,o,l,y,f,w,P,m,u,d,g,B)}roundClean(){yt.fill(0),pt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Tn=Qe(()=>new Un);function Cn(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof globalThis<"u")return globalThis;throw new Error("unable to locate global object")}const ze=Cn();ze.crypto||ze.msCrypto;function kn(n){switch(n){case"sha256":return an.create();case"sha512":return Tn.create()}L(!1,"invalid hashing algorithm name","algorithm",n)}const cn=function(n){return kn("sha256").update(n).digest()};let ln=cn,fn=!1;function Mt(n){const t=ot(n,"data");return _(ln(t))}Mt._=cn;Mt.lock=function(){fn=!0};Mt.register=function(n){if(fn)throw new Error("sha256 is locked");ln=n};Object.freeze(Mt);Object.freeze(Mt);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const un=BigInt(0),le=BigInt(1),_n=BigInt(2),fe=n=>n instanceof Uint8Array,qn=Array.from({length:256},(n,t)=>t.toString(16).padStart(2,"0"));function Zt(n){if(!fe(n))throw new Error("Uint8Array expected");let t="";for(let e=0;er+s.length,0));let e=0;return n.forEach(r=>{if(!fe(r))throw new Error("Uint8Array expected");t.set(r,e),e+=r.length}),t}function $n(n,t){if(n.length!==t.length)return!1;for(let e=0;eun;n>>=le,t+=1);return t}function Kn(n,t){return n>>BigInt(t)&le}const Zn=(n,t,e)=>n|(e?le:un)<(_n<new Uint8Array(n),Ve=n=>Uint8Array.from(n);function dn(n,t,e){if(typeof n!="number"||n<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof e!="function")throw new Error("hmacFn must be a function");let r=ye(n),s=ye(n),i=0;const c=()=>{r.fill(1),s.fill(0),i=0},a=(...f)=>e(s,r,...f),o=(f=ye())=>{s=a(Ve([0]),f),r=a(),f.length!==0&&(s=a(Ve([1]),f),r=a())},l=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let f=0;const w=[];for(;f{c(),o(f);let P;for(;!(P=w(l()));)o();return c(),P}}const jn={bigint:n=>typeof n=="bigint",function:n=>typeof n=="function",boolean:n=>typeof n=="boolean",string:n=>typeof n=="string",stringOrUint8Array:n=>typeof n=="string"||n instanceof Uint8Array,isSafeInteger:n=>Number.isSafeInteger(n),array:n=>Array.isArray(n),field:(n,t)=>t.Fp.isValid(n),hash:n=>typeof n=="function"&&Number.isSafeInteger(n.outputLen)};function te(n,t,e={}){const r=(s,i,c)=>{const a=jn[i];if(typeof a!="function")throw new Error(`Invalid validator "${i}", expected function`);const o=n[s];if(!(c&&o===void 0)&&!a(o,n))throw new Error(`Invalid param ${String(s)}=${o} (${typeof o}), expected ${i}`)};for(const[s,i]of Object.entries(t))r(s,i,!1);for(const[s,i]of Object.entries(e))r(s,i,!0);return n}const Dn=Object.freeze(Object.defineProperty({__proto__:null,bitGet:Kn,bitLen:Vn,bitMask:Le,bitSet:Zn,bytesToHex:Zt,bytesToNumberBE:It,bytesToNumberLE:Ie,concatBytes:Jt,createHmacDrbg:dn,ensureBytes:Q,equalBytes:$n,hexToBytes:jt,hexToNumber:Pe,numberToBytesBE:Dt,numberToBytesLE:Se,numberToHexUnpadded:hn,numberToVarBytesBE:Rn,utf8ToBytes:zn,validateObject:te},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Z=BigInt(0),q=BigInt(1),Et=BigInt(2),Mn=BigInt(3),Be=BigInt(4),Ke=BigInt(5),Ze=BigInt(8);BigInt(9);BigInt(16);function D(n,t){const e=n%t;return e>=Z?e:t+e}function Yn(n,t,e){if(e<=Z||t 0");if(e===q)return Z;let r=q;for(;t>Z;)t&q&&(r=r*n%e),n=n*n%e,t>>=q;return r}function W(n,t,e){let r=n;for(;t-- >Z;)r*=r,r%=e;return r}function Ee(n,t){if(n===Z||t<=Z)throw new Error(`invert: expected positive integers, got n=${n} mod=${t}`);let e=D(n,t),r=t,s=Z,i=q;for(;e!==Z;){const a=r/e,o=r%e,l=s-i*a;r=e,e=o,s=i,i=l}if(r!==q)throw new Error("invert: does not exist");return D(s,t)}function Wn(n){const t=(n-q)/Et;let e,r,s;for(e=n-q,r=0;e%Et===Z;e/=Et,r++);for(s=Et;s(r[s]="function",r),t);return te(n,e)}function tr(n,t,e){if(e 0");if(e===Z)return n.ONE;if(e===q)return t;let r=n.ONE,s=t;for(;e>Z;)e&q&&(r=n.mul(r,s)),s=n.sqr(s),e>>=q;return r}function er(n,t){const e=new Array(t.length),r=t.reduce((i,c,a)=>n.is0(c)?i:(e[a]=i,n.mul(i,c)),n.ONE),s=n.inv(r);return t.reduceRight((i,c,a)=>n.is0(c)?i:(e[a]=n.mul(i,e[a]),n.mul(i,c)),s),e}function gn(n,t){const e=t!==void 0?t:n.toString(2).length,r=Math.ceil(e/8);return{nBitLength:e,nByteLength:r}}function nr(n,t,e=!1,r={}){if(n<=Z)throw new Error(`Expected Field ORDER > 0, got ${n}`);const{nBitLength:s,nByteLength:i}=gn(n,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const c=Xn(n),a=Object.freeze({ORDER:n,BITS:s,BYTES:i,MASK:Le(s),ZERO:Z,ONE:q,create:o=>D(o,n),isValid:o=>{if(typeof o!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof o}`);return Z<=o&&oo===Z,isOdd:o=>(o&q)===q,neg:o=>D(-o,n),eql:(o,l)=>o===l,sqr:o=>D(o*o,n),add:(o,l)=>D(o+l,n),sub:(o,l)=>D(o-l,n),mul:(o,l)=>D(o*l,n),pow:(o,l)=>tr(a,o,l),div:(o,l)=>D(o*Ee(l,n),n),sqrN:o=>o*o,addN:(o,l)=>o+l,subN:(o,l)=>o-l,mulN:(o,l)=>o*l,inv:o=>Ee(o,n),sqrt:r.sqrt||(o=>c(a,o)),invertBatch:o=>er(a,o),cmov:(o,l,y)=>y?l:o,toBytes:o=>e?Se(o,i):Dt(o,i),fromBytes:o=>{if(o.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${o.length}`);return e?Ie(o):It(o)}});return Object.freeze(a)}function bn(n){if(typeof n!="bigint")throw new Error("field order must be bigint");const t=n.toString(2).length;return Math.ceil(t/8)}function yn(n){const t=bn(n);return t+Math.ceil(t/2)}function rr(n,t,e=!1){const r=n.length,s=bn(t),i=yn(t);if(r<16||r1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);const c=e?It(n):Ie(n),a=D(c,t-q)+q;return e?Se(a,s):Dt(a,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const sr=BigInt(0),pe=BigInt(1);function ir(n,t){const e=(s,i)=>{const c=i.negate();return s?c:i},r=s=>{const i=Math.ceil(t/s)+1,c=2**(s-1);return{windows:i,windowSize:c}};return{constTimeNegate:e,unsafeLadder(s,i){let c=n.ZERO,a=s;for(;i>sr;)i&pe&&(c=c.add(a)),a=a.double(),i>>=pe;return c},precomputeWindow(s,i){const{windows:c,windowSize:a}=r(i),o=[];let l=s,y=l;for(let f=0;f>=P,d>o&&(d-=w,c+=pe);const g=u,B=u+Math.abs(d)-1,b=m%2!==0,H=d<0;d===0?y=y.add(e(b,i[g])):l=l.add(e(H,i[B]))}return{p:l,f:y}},wNAFCached(s,i,c,a){const o=s._WINDOW_SIZE||1;let l=i.get(s);return l||(l=this.precomputeWindow(s,o),o!==1&&i.set(s,a(l))),this.wNAF(o,l,c)}}}function pn(n){return Qn(n.Fp),te(n,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...gn(n.n,n.nBitLength),...n,p:n.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function or(n){const t=pn(n);te(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:e,Fp:r,a:s}=t;if(e){if(!r.eql(s,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:ar,hexToBytes:cr}=Dn,vt={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(n){const{Err:t}=vt;if(n.length<2||n[0]!==2)throw new t("Invalid signature integer tag");const e=n[1],r=n.subarray(2,e+2);if(!e||r.length!==e)throw new t("Invalid signature integer: wrong length");if(r[0]&128)throw new t("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:ar(r),l:n.subarray(e+2)}},toSig(n){const{Err:t}=vt,e=typeof n=="string"?cr(n):n;if(!(e instanceof Uint8Array))throw new Error("ui8a expected");let r=e.length;if(r<2||e[0]!=48)throw new t("Invalid signature tag");if(e[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:s,l:i}=vt._parseInt(e.subarray(2)),{d:c,l:a}=vt._parseInt(i);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:s,s:c}},hexFromSig(n){const t=l=>Number.parseInt(l[0],16)&8?"00"+l:l,e=l=>{const y=l.toString(16);return y.length&1?`0${y}`:y},r=t(e(n.s)),s=t(e(n.r)),i=r.length/2,c=s.length/2,a=e(i),o=e(c);return`30${e(c+i+4)}02${o}${s}02${a}${r}`}},ft=BigInt(0),X=BigInt(1);BigInt(2);const je=BigInt(3);BigInt(4);function lr(n){const t=or(n),{Fp:e}=t,r=t.toBytes||((m,u,d)=>{const g=u.toAffine();return Jt(Uint8Array.from([4]),e.toBytes(g.x),e.toBytes(g.y))}),s=t.fromBytes||(m=>{const u=m.subarray(1),d=e.fromBytes(u.subarray(0,e.BYTES)),g=e.fromBytes(u.subarray(e.BYTES,2*e.BYTES));return{x:d,y:g}});function i(m){const{a:u,b:d}=t,g=e.sqr(m),B=e.mul(g,m);return e.add(e.add(B,e.mul(m,u)),d)}if(!e.eql(e.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function c(m){return typeof m=="bigint"&&fte.eql(b,e.ZERO);return B(d)&&B(g)?f.ZERO:new f(d,g,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(u){const d=e.invertBatch(u.map(g=>g.pz));return u.map((g,B)=>g.toAffine(d[B])).map(f.fromAffine)}static fromHex(u){const d=f.fromAffine(s(Q("pointHex",u)));return d.assertValidity(),d}static fromPrivateKey(u){return f.BASE.multiply(o(u))}_setWindowSize(u){this._WINDOW_SIZE=u,l.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!e.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:u,y:d}=this.toAffine();if(!e.isValid(u)||!e.isValid(d))throw new Error("bad point: x or y not FE");const g=e.sqr(d),B=i(u);if(!e.eql(g,B))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:u}=this.toAffine();if(e.isOdd)return!e.isOdd(u);throw new Error("Field doesn't support isOdd")}equals(u){y(u);const{px:d,py:g,pz:B}=this,{px:b,py:H,pz:v}=u,x=e.eql(e.mul(d,v),e.mul(b,B)),A=e.eql(e.mul(g,v),e.mul(H,B));return x&&A}negate(){return new f(this.px,e.neg(this.py),this.pz)}double(){const{a:u,b:d}=t,g=e.mul(d,je),{px:B,py:b,pz:H}=this;let v=e.ZERO,x=e.ZERO,A=e.ZERO,E=e.mul(B,B),k=e.mul(b,b),G=e.mul(H,H),F=e.mul(B,b);return F=e.add(F,F),A=e.mul(B,H),A=e.add(A,A),v=e.mul(u,A),x=e.mul(g,G),x=e.add(v,x),v=e.sub(k,x),x=e.add(k,x),x=e.mul(v,x),v=e.mul(F,v),A=e.mul(g,A),G=e.mul(u,G),F=e.sub(E,G),F=e.mul(u,F),F=e.add(F,A),A=e.add(E,E),E=e.add(A,E),E=e.add(E,G),E=e.mul(E,F),x=e.add(x,E),G=e.mul(b,H),G=e.add(G,G),E=e.mul(G,F),v=e.sub(v,E),A=e.mul(G,k),A=e.add(A,A),A=e.add(A,A),new f(v,x,A)}add(u){y(u);const{px:d,py:g,pz:B}=this,{px:b,py:H,pz:v}=u;let x=e.ZERO,A=e.ZERO,E=e.ZERO;const k=t.a,G=e.mul(t.b,je);let F=e.mul(d,b),z=e.mul(g,H),j=e.mul(B,v),et=e.add(d,g),h=e.add(b,H);et=e.mul(et,h),h=e.add(F,z),et=e.sub(et,h),h=e.add(d,B);let p=e.add(b,v);return h=e.mul(h,p),p=e.add(F,j),h=e.sub(h,p),p=e.add(g,B),x=e.add(H,v),p=e.mul(p,x),x=e.add(z,j),p=e.sub(p,x),E=e.mul(k,h),x=e.mul(G,j),E=e.add(x,E),x=e.sub(z,E),E=e.add(z,E),A=e.mul(x,E),z=e.add(F,F),z=e.add(z,F),j=e.mul(k,j),h=e.mul(G,h),z=e.add(z,j),j=e.sub(F,j),j=e.mul(k,j),h=e.add(h,j),F=e.mul(z,h),A=e.add(A,F),F=e.mul(p,h),x=e.mul(et,x),x=e.sub(x,F),F=e.mul(et,z),E=e.mul(p,E),E=e.add(E,F),new f(x,A,E)}subtract(u){return this.add(u.negate())}is0(){return this.equals(f.ZERO)}wNAF(u){return P.wNAFCached(this,l,u,d=>{const g=e.invertBatch(d.map(B=>B.pz));return d.map((B,b)=>B.toAffine(g[b])).map(f.fromAffine)})}multiplyUnsafe(u){const d=f.ZERO;if(u===ft)return d;if(a(u),u===X)return this;const{endo:g}=t;if(!g)return P.unsafeLadder(this,u);let{k1neg:B,k1:b,k2neg:H,k2:v}=g.splitScalar(u),x=d,A=d,E=this;for(;b>ft||v>ft;)b&X&&(x=x.add(E)),v&X&&(A=A.add(E)),E=E.double(),b>>=X,v>>=X;return B&&(x=x.negate()),H&&(A=A.negate()),A=new f(e.mul(A.px,g.beta),A.py,A.pz),x.add(A)}multiply(u){a(u);let d=u,g,B;const{endo:b}=t;if(b){const{k1neg:H,k1:v,k2neg:x,k2:A}=b.splitScalar(d);let{p:E,f:k}=this.wNAF(v),{p:G,f:F}=this.wNAF(A);E=P.constTimeNegate(H,E),G=P.constTimeNegate(x,G),G=new f(e.mul(G.px,b.beta),G.py,G.pz),g=E.add(G),B=k.add(F)}else{const{p:H,f:v}=this.wNAF(d);g=H,B=v}return f.normalizeZ([g,B])[0]}multiplyAndAddUnsafe(u,d,g){const B=f.BASE,b=(v,x)=>x===ft||x===X||!v.equals(B)?v.multiplyUnsafe(x):v.multiply(x),H=b(this,d).add(b(u,g));return H.is0()?void 0:H}toAffine(u){const{px:d,py:g,pz:B}=this,b=this.is0();u==null&&(u=b?e.ONE:e.inv(B));const H=e.mul(d,u),v=e.mul(g,u),x=e.mul(B,u);if(b)return{x:e.ZERO,y:e.ZERO};if(!e.eql(x,e.ONE))throw new Error("invZ was invalid");return{x:H,y:v}}isTorsionFree(){const{h:u,isTorsionFree:d}=t;if(u===X)return!0;if(d)return d(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:u,clearCofactor:d}=t;return u===X?this:d?d(f,this):this.multiplyUnsafe(t.h)}toRawBytes(u=!0){return this.assertValidity(),r(f,this,u)}toHex(u=!0){return Zt(this.toRawBytes(u))}}f.BASE=new f(t.Gx,t.Gy,e.ONE),f.ZERO=new f(e.ZERO,e.ONE,e.ZERO);const w=t.nBitLength,P=ir(f,t.endo?Math.ceil(w/2):w);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:o,weierstrassEquation:i,isWithinCurveOrder:c}}function fr(n){const t=pn(n);return te(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function ur(n){const t=fr(n),{Fp:e,n:r}=t,s=e.BYTES+1,i=2*e.BYTES+1;function c(h){return ftZt(Dt(h,t.nByteLength));function m(h){const p=r>>X;return h>p}function u(h){return m(h)?a(-h):h}const d=(h,p,N)=>It(h.slice(p,N));class g{constructor(p,N,T){this.r=p,this.s=N,this.recovery=T,this.assertValidity()}static fromCompact(p){const N=t.nByteLength;return p=Q("compactSignature",p,N*2),new g(d(p,0,N),d(p,N,2*N))}static fromDER(p){const{r:N,s:T}=vt.toSig(Q("DER",p));return new g(N,T)}assertValidity(){if(!w(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!w(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(p){return new g(this.r,this.s,p)}recoverPublicKey(p){const{r:N,s:T,recovery:U}=this,V=A(Q("msgHash",p));if(U==null||![0,1,2,3].includes(U))throw new Error("recovery id invalid");const M=U===2||U===3?N+t.n:N;if(M>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");const Y=U&1?"03":"02",ut=l.fromHex(Y+P(M)),ht=o(M),Lt=a(-V*ht),Yt=a(T*ht),dt=l.BASE.multiplyAndAddUnsafe(ut,Lt,Yt);if(!dt)throw new Error("point at infinify");return dt.assertValidity(),dt}hasHighS(){return m(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return jt(this.toDERHex())}toDERHex(){return vt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return jt(this.toCompactHex())}toCompactHex(){return P(this.r)+P(this.s)}}const B={isValidPrivateKey(h){try{return y(h),!0}catch{return!1}},normPrivateKeyToScalar:y,randomPrivateKey:()=>{const h=yn(t.n);return rr(t.randomBytes(h),t.n)},precompute(h=8,p=l.BASE){return p._setWindowSize(h),p.multiply(BigInt(3)),p}};function b(h,p=!0){return l.fromPrivateKey(h).toRawBytes(p)}function H(h){const p=h instanceof Uint8Array,N=typeof h=="string",T=(p||N)&&h.length;return p?T===s||T===i:N?T===2*s||T===2*i:h instanceof l}function v(h,p,N=!0){if(H(h))throw new Error("first arg must be private key");if(!H(p))throw new Error("second arg must be public key");return l.fromHex(p).multiply(y(h)).toRawBytes(N)}const x=t.bits2int||function(h){const p=It(h),N=h.length*8-t.nBitLength;return N>0?p>>BigInt(N):p},A=t.bits2int_modN||function(h){return a(x(h))},E=Le(t.nBitLength);function k(h){if(typeof h!="bigint")throw new Error("bigint expected");if(!(ft<=h&&hBt in N))throw new Error("sign() legacy options not supported");const{hash:T,randomBytes:U}=t;let{lowS:V,prehash:M,extraEntropy:Y}=N;V==null&&(V=!0),h=Q("msgHash",h),M&&(h=Q("prehashed msgHash",T(h)));const ut=A(h),ht=y(p),Lt=[k(ht),k(ut)];if(Y!=null){const Bt=Y===!0?U(e.BYTES):Y;Lt.push(Q("extraEntropy",Bt))}const Yt=Jt(...Lt),dt=ut;function he(Bt){const Ht=x(Bt);if(!w(Ht))return;const Oe=o(Ht),Nt=l.BASE.multiply(Ht).toAffine(),J=a(Nt.x);if(J===ft)return;const Ft=a(Oe*a(dt+J*ht));if(Ft===ft)return;let Ue=(Nt.x===J?0:2)|Number(Nt.y&X),Te=Ft;return V&&m(Ft)&&(Te=u(Ft),Ue^=1),new g(J,Te,Ue)}return{seed:Yt,k2sig:he}}const F={lowS:t.lowS,prehash:!1},z={lowS:t.lowS,prehash:!1};function j(h,p,N=F){const{seed:T,k2sig:U}=G(h,p,N),V=t;return dn(V.hash.outputLen,V.nByteLength,V.hmac)(T,U)}l.BASE._setWindowSize(8);function et(h,p,N,T=z){var Nt;const U=h;if(p=Q("msgHash",p),N=Q("publicKey",N),"strict"in T)throw new Error("options.strict was renamed to lowS");const{lowS:V,prehash:M}=T;let Y,ut;try{if(typeof U=="string"||U instanceof Uint8Array)try{Y=g.fromDER(U)}catch(J){if(!(J instanceof vt.Err))throw J;Y=g.fromCompact(U)}else if(typeof U=="object"&&typeof U.r=="bigint"&&typeof U.s=="bigint"){const{r:J,s:Ft}=U;Y=new g(J,Ft)}else throw new Error("PARSE");ut=l.fromHex(N)}catch(J){if(J.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(V&&Y.hasHighS())return!1;M&&(p=t.hash(p));const{r:ht,s:Lt}=Y,Yt=A(p),dt=o(Lt),he=a(Yt*dt),Bt=a(ht*dt),Ht=(Nt=l.BASE.multiplyAndAddUnsafe(ut,he,Bt))==null?void 0:Nt.toAffine();return Ht?a(Ht.x)===ht:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:v,sign:j,verify:et,ProjectivePoint:l,Signature:g,utils:B}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function hr(n){return{hash:n,hmac:(t,...e)=>sn(n,t,An(...e)),randomBytes:vn}}function dr(n,t){const e=r=>ur({...n,...hr(r)});return Object.freeze({...e(t),create:e})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const mn=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),De=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),gr=BigInt(1),Ae=BigInt(2),Me=(n,t)=>(n+t/Ae)/t;function br(n){const t=mn,e=BigInt(3),r=BigInt(6),s=BigInt(11),i=BigInt(22),c=BigInt(23),a=BigInt(44),o=BigInt(88),l=n*n*n%t,y=l*l*n%t,f=W(y,e,t)*y%t,w=W(f,e,t)*y%t,P=W(w,Ae,t)*l%t,m=W(P,s,t)*P%t,u=W(m,i,t)*m%t,d=W(u,a,t)*u%t,g=W(d,o,t)*d%t,B=W(g,a,t)*u%t,b=W(B,e,t)*y%t,H=W(b,c,t)*m%t,v=W(H,r,t)*l%t,x=W(v,Ae,t);if(!ve.eql(ve.sqr(x),n))throw new Error("Cannot find square root");return x}const ve=nr(mn,void 0,void 0,{sqrt:br}),mt=dr({a:BigInt(0),b:BigInt(7),Fp:ve,n:De,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:n=>{const t=De,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-gr*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,c=BigInt("0x100000000000000000000000000000000"),a=Me(i*n,t),o=Me(-r*n,t);let l=D(n-a*e-o*s,t),y=D(-a*r-o*i,t);const f=l>c,w=y>c;if(f&&(l=t-l),w&&(y=t-y),l>c||y>c)throw new Error("splitScalar: Endomorphism failed, k="+n);return{k1neg:f,k1:l,k2neg:w,k2:y}}}},an);BigInt(0);mt.ProjectivePoint;const xn="0x0000000000000000000000000000000000000000";var ct;const At=class At{constructor(t){$(this,ct);L(be(t)===32,"invalid private key","privateKey","[REDACTED]"),I(this,ct,_(t))}get privateKey(){return O(this,ct)}get publicKey(){return At.computePublicKey(O(this,ct))}get compressedPublicKey(){return At.computePublicKey(O(this,ct),!0)}sign(t){L(be(t)===32,"invalid digest length","digest",t);const e=mt.sign(Wt(t),Wt(O(this,ct)),{lowS:!0});return St.from({r:ke(e.r,32),s:ke(e.s,32),v:e.recovery?28:27})}computeSharedSecret(t){const e=At.computePublicKey(t);return _(mt.getSharedSecret(Wt(O(this,ct)),ot(e),!1))}static computePublicKey(t,e){let r=ot(t,"key");if(r.length===32){const i=mt.getPublicKey(r,!!e);return _(i)}if(r.length===64){const i=new Uint8Array(65);i[0]=4,i.set(r,1),r=i}const s=mt.ProjectivePoint.fromHex(r);return _(s.toRawBytes(e))}static recoverPublicKey(t,e){L(be(t)===32,"invalid digest length","digest",t);const r=St.from(e);let s=mt.Signature.fromCompact(Wt(Xt([r.r,r.s])));s=s.addRecoveryBit(r.yParity);const i=s.recoverPublicKey(Wt(t));return L(i!=null,"invalid signautre for digest","signature",e),"0x"+i.toHex(!1)}static addPoints(t,e,r){const s=mt.ProjectivePoint.fromHex(At.computePublicKey(t).substring(2)),i=mt.ProjectivePoint.fromHex(At.computePublicKey(e).substring(2));return"0x"+s.add(i).toHex(!!r)}};ct=new WeakMap;let Qt=At;function me(n,t){return{address:oe(n),storageKeys:t.map((e,r)=>(L(ae(e,32),"invalid slot",`storageKeys[${r}]`,e),e.toLowerCase()))}}function He(n){if(Array.isArray(n))return n.map((e,r)=>Array.isArray(e)?(L(e.length===2,"invalid slot set",`value[${r}]`,e),me(e[0],e[1])):(L(e!=null&&typeof e=="object","invalid address-slot set","value",n),me(e.address,e.storageKeys)));L(n!=null&&typeof n=="object","invalid access list","value",n);const t=Object.keys(n).map(e=>{const r=n[e].reduce((s,i)=>(s[i]=!0,s),{});return me(e,Object.keys(r).sort())});return t.sort((e,r)=>e.address.localeCompare(r.address)),t}function yr(n){let t;return typeof n=="string"?t=Qt.computePublicKey(n,!1):t=n.publicKey,oe(we("0x"+t.substring(4)).substring(26))}function pr(n,t){return yr(Qt.recoverPublicKey(n,t))}const K=BigInt(0),mr=BigInt(2),xr=BigInt(27),wr=BigInt(28),Br=BigInt(35),Er=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),xe=4096*32;function Ye(n,t){let e=n.toString(16);for(;e.length<2;)e="0"+e;return e+=Mt(t).substring(4),"0x"+e}function ue(n){return n==="0x"?null:oe(n)}function Ne(n,t){try{return He(n)}catch(e){L(!1,e.message,t,n)}}function ee(n,t){return n==="0x"?0:tn(n,t)}function R(n,t){if(n==="0x")return K;const e=st(n,t);return L(e<=Er,"value exceeds uint size",t,e),e}function C(n,t){const e=st(n,"value"),r=tt(e);return L(r.length<=32,"value too large",`tx.${t}`,e),r}function Fe(n){return He(n).map(t=>[t.address,t.storageKeys])}function Ar(n,t){L(Array.isArray(n),`invalid ${t}`,"value",n);for(let e=0;es.data),e.map(s=>s.commitment),e.map(s=>s.proof)])]):Xt(["0x03",Kt(r)])}var it,Gt,Ot,Ut,Tt,Ct,kt,_t,qt,Rt,$t,zt,Pt,xt,lt,wt,Vt,re;const at=class at{constructor(){$(this,Vt);$(this,it);$(this,Gt);$(this,Ot);$(this,Ut);$(this,Tt);$(this,Ct);$(this,kt);$(this,_t);$(this,qt);$(this,Rt);$(this,$t);$(this,zt);$(this,Pt);$(this,xt);$(this,lt);$(this,wt);I(this,it,null),I(this,Gt,null),I(this,Ut,0),I(this,Tt,K),I(this,Ct,null),I(this,kt,null),I(this,_t,null),I(this,Ot,"0x"),I(this,qt,K),I(this,Rt,K),I(this,$t,null),I(this,zt,null),I(this,Pt,null),I(this,xt,null),I(this,wt,null),I(this,lt,null)}get type(){return O(this,it)}set type(t){switch(t){case null:I(this,it,null);break;case 0:case"legacy":I(this,it,0);break;case 1:case"berlin":case"eip-2930":I(this,it,1);break;case 2:case"london":case"eip-1559":I(this,it,2);break;case 3:case"cancun":case"eip-4844":I(this,it,3);break;default:L(!1,"unsupported transaction type","type",t)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844"}return null}get to(){const t=O(this,Gt);return t==null&&this.type===3?xn:t}set to(t){I(this,Gt,t==null?null:oe(t))}get nonce(){return O(this,Ut)}set nonce(t){I(this,Ut,tn(t,"value"))}get gasLimit(){return O(this,Tt)}set gasLimit(t){I(this,Tt,st(t))}get gasPrice(){const t=O(this,Ct);return t==null&&(this.type===0||this.type===1)?K:t}set gasPrice(t){I(this,Ct,t==null?null:st(t,"gasPrice"))}get maxPriorityFeePerGas(){const t=O(this,kt);return t??(this.type===2||this.type===3?K:null)}set maxPriorityFeePerGas(t){I(this,kt,t==null?null:st(t,"maxPriorityFeePerGas"))}get maxFeePerGas(){const t=O(this,_t);return t??(this.type===2||this.type===3?K:null)}set maxFeePerGas(t){I(this,_t,t==null?null:st(t,"maxFeePerGas"))}get data(){return O(this,Ot)}set data(t){I(this,Ot,_(t))}get value(){return O(this,qt)}set value(t){I(this,qt,st(t,"value"))}get chainId(){return O(this,Rt)}set chainId(t){I(this,Rt,st(t))}get signature(){return O(this,$t)||null}set signature(t){I(this,$t,t==null?null:St.from(t))}get accessList(){const t=O(this,zt)||null;return t??(this.type===1||this.type===2||this.type===3?[]:null)}set accessList(t){I(this,zt,t==null?null:He(t))}get maxFeePerBlobGas(){const t=O(this,Pt);return t==null&&this.type===3?K:t}set maxFeePerBlobGas(t){I(this,Pt,t==null?null:st(t,"maxFeePerBlobGas"))}get blobVersionedHashes(){let t=O(this,xt);return t==null&&this.type===3?[]:t}set blobVersionedHashes(t){if(t!=null){L(Array.isArray(t),"blobVersionedHashes must be an Array","value",t),t=t.slice();for(let e=0;eObject.assign({},t))}set blobs(t){if(t==null){I(this,wt,null);return}const e=[],r=[];for(let s=0;s=0?2:t.pop()}inferTypes(){const t=this.gasPrice!=null,e=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,r=this.accessList!=null,s=O(this,Pt)!=null||O(this,xt);this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null&&rt(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),rt(!e||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),rt(this.type!==0||!r,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const i=[];return this.type!=null?i.push(this.type):e?i.push(2):t?(i.push(1),r||i.push(0)):r?(i.push(1),i.push(2)):(s&&this.to||(i.push(0),i.push(1),i.push(2)),i.push(3)),i.sort(),i}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return at.from(this)}toJSON(){const t=e=>e==null?null:e.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:t(this.gasLimit),gasPrice:t(this.gasPrice),maxPriorityFeePerGas:t(this.maxPriorityFeePerGas),maxFeePerGas:t(this.maxFeePerGas),value:t(this.value),chainId:t(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(t){if(t==null)return new at;if(typeof t=="string"){const r=ot(t);if(r[0]>=127)return at.from(vr(r));switch(r[0]){case 1:return at.from(Lr(r));case 2:return at.from(Ir(r));case 3:return at.from(Nr(r))}rt(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const e=new at;return t.type!=null&&(e.type=t.type),t.to!=null&&(e.to=t.to),t.nonce!=null&&(e.nonce=t.nonce),t.gasLimit!=null&&(e.gasLimit=t.gasLimit),t.gasPrice!=null&&(e.gasPrice=t.gasPrice),t.maxPriorityFeePerGas!=null&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas),t.maxFeePerGas!=null&&(e.maxFeePerGas=t.maxFeePerGas),t.maxFeePerBlobGas!=null&&(e.maxFeePerBlobGas=t.maxFeePerBlobGas),t.data!=null&&(e.data=t.data),t.value!=null&&(e.value=t.value),t.chainId!=null&&(e.chainId=t.chainId),t.signature!=null&&(e.signature=St.from(t.signature)),t.accessList!=null&&(e.accessList=t.accessList),t.blobVersionedHashes!=null&&(e.blobVersionedHashes=t.blobVersionedHashes),t.kzg!=null&&(e.kzg=t.kzg),t.blobs!=null&&(e.blobs=t.blobs),t.hash!=null&&(L(e.isSigned(),"unsigned transaction cannot define '.hash'","tx",t),L(e.hash===t.hash,"hash mismatch","tx",t)),t.from!=null&&(L(e.isSigned(),"unsigned transaction cannot define '.from'","tx",t),L(e.from.toLowerCase()===(t.from||"").toLowerCase(),"from mismatch","tx",t)),e}};it=new WeakMap,Gt=new WeakMap,Ot=new WeakMap,Ut=new WeakMap,Tt=new WeakMap,Ct=new WeakMap,kt=new WeakMap,_t=new WeakMap,qt=new WeakMap,Rt=new WeakMap,$t=new WeakMap,zt=new WeakMap,Pt=new WeakMap,xt=new WeakMap,lt=new WeakMap,wt=new WeakMap,Vt=new WeakSet,re=function(t,e){rt(!t||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});const r=t?this.signature:null;switch(this.inferType()){case 0:return Pr(this,r);case 1:return Hr(this,r);case 2:return Sr(this,r);case 3:return Fr(this,r,e?this.blobs:null)}rt(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})};let We=at;export{kr as MessagePrefix,St as Signature,Qt as SigningKey,We as Transaction,_r as TypedDataEncoder,xn as ZeroAddress,qr as ZeroHash,He as accessListify,rt as assert,L as assertArgument,Rr as assertPrivate,yr as computeAddress,Xt as concat,be as dataLength,ce as decodeRlp,$r as defineProperties,Kt as encodeRlp,oe as getAddress,st as getBigInt,ot as getBytes,Wt as getBytesCopy,tn as getNumber,zr as getUint,Vr as hashMessage,_ as hexlify,Kr as id,Pn as isBytesLike,ae as isHexString,we as keccak256,Zr as makeError,jr as mask,pr as recoverAddress,Mt as sha256,tt as toBeArray,ke as toBeHex,Dr as toQuantity,Mr as toTwos,Yr as toUtf8Bytes,Wr as version,ie as zeroPadValue}; diff --git a/demo/redirect-flow-example/dist/favicon.ico b/demo/redirect-flow-example/dist/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/demo/redirect-flow-example/dist/index.html b/demo/redirect-flow-example/dist/index.html deleted file mode 100644 index 71559e89..00000000 --- a/demo/redirect-flow-example/dist/index.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - React App - - - - - -
- - - - \ No newline at end of file diff --git a/demo/redirect-flow-example/dist/logo192.png b/demo/redirect-flow-example/dist/logo192.png deleted file mode 100644 index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/demo/redirect-flow-example/dist/manifest.json b/demo/redirect-flow-example/dist/manifest.json deleted file mode 100644 index 080d6c77..00000000 --- a/demo/redirect-flow-example/dist/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/demo/redirect-flow-example/dist/robots.txt b/demo/redirect-flow-example/dist/robots.txt deleted file mode 100644 index e9e57dc4..00000000 --- a/demo/redirect-flow-example/dist/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: From 016d6f2d8c1bc8a4ba24525e223096e9c10898df Mon Sep 17 00:00:00 2001 From: Matthias Geihs Date: Wed, 11 Dec 2024 15:38:43 +0100 Subject: [PATCH 32/37] bip340 key tweaking --- demo/redirect-flow-example/package-lock.json | 3507 +------------- demo/redirect-flow-example/package.json | 4 +- demo/redirect-flow-example/src/App.tsx | 40 +- package-lock.json | 4303 ++++++++++++------ package.json | 4 +- src/interfaces.ts | 2 +- src/mpcCoreKit.ts | 33 +- src/utils.ts | 2 +- tests/backwardCompatible.spec.ts | 2 +- tests/login.spec.ts | 8 +- 10 files changed, 3062 insertions(+), 4843 deletions(-) diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index 235004d8..ed42060a 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -20,7 +20,7 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.6-alpha.0", + "@web3auth/mpc-core-kit": "file:../..", "@web3auth/mpc-passkey-plugin": "0.1.15-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", @@ -55,6 +55,86 @@ "url": "^0.11.4" } }, + "../..": { + "name": "@web3auth/mpc-core-kit", + "version": "4.1.6-alpha.0", + "license": "ISC", + "dependencies": { + "@tkey/common-types": "^15.1.0", + "@tkey/core": "^15.1.0", + "@tkey/share-serialization": "^15.1.0", + "@tkey/storage-layer-torus": "^15.1.0", + "@tkey/tss": "^15.1.0", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/customauth": "^20.3.0", + "@toruslabs/elliptic-wrapper": "^0.1.1", + "@toruslabs/fetch-node-details": "^14.2.0", + "@toruslabs/fnd-base": "^14.2.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "@toruslabs/openlogin-utils": "^8.2.1", + "@toruslabs/session-manager": "^3.1.0", + "@toruslabs/torus.js": "15.2.0-alpha.0", + "@toruslabs/tss-client": "^3.3.0-alpha.0", + "@toruslabs/tss-frost-client": "^1.0.1-alpha.0", + "@toruslabs/tss-frost-common": "^1.0.2-alpha.0", + "@web3auth/auth": "^9.6.1", + "bn.js": "^5.2.1", + "bowser": "^2.11.0", + "elliptic": "^6.5.7", + "loglevel": "^1.9.2" + }, + "devDependencies": { + "@babel/register": "^7.25.7", + "@noble/curves": "^1.6.0", + "@toruslabs/config": "^2.2.0", + "@toruslabs/eslint-config-typescript": "^3.3.3", + "@toruslabs/torus-scripts": "^6.1.2", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@types/chai": "^4.3.16", + "@types/elliptic": "^6.4.18", + "@types/jsonwebtoken": "^9.0.7", + "@types/node": "^20.14.0", + "@typescript-eslint/eslint-plugin": "^6.7.0", + "chai": "^5.1.1", + "cross-env": "^7.0.3", + "dotenv": "^16.4.5", + "esbuild-register": "^3.6.0", + "eslint": "^8.56.0", + "husky": "^9.1.6", + "jsonwebtoken": "^9.0.2", + "lint-staged": "^15.2.10", + "mocha": "^10.7.3", + "node-fetch": "^3.3.2", + "prettier": "^3.3.3", + "rimraf": "^6.0.1", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "tsconfig-paths-webpack-plugin": "^4.1.0", + "tslib": "^2.7.0", + "typescript": "^5.6.3" + }, + "engines": { + "node": ">=20.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0" + }, + "peerDependenciesMeta": { + "@toruslabs/tss-dkls-lib": { + "optional": true + }, + "@toruslabs/tss-frost-lib": { + "optional": true + }, + "@toruslabs/tss-frost-lib-bip340": { + "optional": true + } + } + }, "node_modules/@adraffy/ens-normalize": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", @@ -376,107 +456,6 @@ "node": ">=18" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/@ethereumjs/rlp": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", @@ -502,68 +481,6 @@ "node": ">=18" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "license": "BSD-3-Clause", - "peer": true - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -623,58 +540,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@microsoft/tsdoc": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", - "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", - "license": "MIT" - }, - "node_modules/@microsoft/tsdoc-config": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", - "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", - "license": "MIT", - "dependencies": { - "@microsoft/tsdoc": "0.15.0", - "ajv": "~8.12.0", - "jju": "~1.4.0", - "resolve": "~1.22.2" - } - }, - "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/@noble/ciphers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.0.0.tgz", - "integrity": "sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@noble/curves": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", @@ -715,6 +580,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -728,6 +594,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -737,6 +604,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -762,18 +630,6 @@ "node": ">= 10" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.28.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", @@ -1025,18 +881,6 @@ ], "peer": true }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "license": "MIT" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", - "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", - "license": "MIT" - }, "node_modules/@scure/base": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", @@ -1152,20 +996,21 @@ "@babel/runtime": "7.x" } }, - "node_modules/@tkey/core": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/core/-/core-15.1.0.tgz", - "integrity": "sha512-JaFprczHR8fBEw1LrwKs87ASgpZagxQ9VZ6lAfAAI8jEh1yhz8djh9l2wzJbaFuLEOQskh7GoxpKfgB+YtBSmw==", - "license": "MIT", + "node_modules/@toruslabs/base-controllers": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-6.3.2.tgz", + "integrity": "sha512-YnRAtEM9jVR71ZDPSJtb1P1biAz322hv9R3jKh7SttfI//JPvtw8UdSCCQjSF5cAWLqgOupqq15p+p9Ka0bSPA==", + "license": "ISC", "dependencies": { - "@tkey/common-types": "^15.1.0", - "@toruslabs/eccrypto": "^5.0.4", + "@ethereumjs/util": "^9.1.0", + "@toruslabs/broadcast-channel": "^11.0.0", "@toruslabs/http-helpers": "^7.0.0", - "@toruslabs/torus.js": "^15.1.0", - "bn.js": "^5.2.1", - "elliptic": "^6.5.5", - "ethereum-cryptography": "^2.1.3", - "json-stable-stringify": "^1.1.1" + "@web3auth/auth": "^9.5.2", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", @@ -1175,37 +1020,30 @@ "@babel/runtime": "7.x" } }, - "node_modules/@tkey/service-provider-base": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/service-provider-base/-/service-provider-base-15.1.0.tgz", - "integrity": "sha512-MruUxiWwyRczZ8KlhhGJ2TQ/p+VFPMOQZ089B5SIi7UsTOBMlzRqJWP3lM2fBSyQsfJCzpzXkj9a29ecpRZe0g==", + "node_modules/@toruslabs/broadcast-channel": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@toruslabs/broadcast-channel/-/broadcast-channel-11.0.0.tgz", + "integrity": "sha512-nnM5yjQGzmCiie37G4Ks+5VsPjMrcY/81tga5ASb/u5TbZhSPQUw0CSW42Q9uBtR8sZbsHU06cPZ8j0z6LeAUg==", "license": "MIT", "dependencies": { - "@tkey/common-types": "^15.1.0", - "bn.js": "^5.2.1", - "elliptic": "^6.5.5" + "@babel/runtime": "^7.24.7", + "@toruslabs/eccrypto": "^5.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "loglevel": "^1.9.1", + "oblivious-set": "1.4.0", + "socket.io-client": "^4.7.5", + "unload": "^2.4.1" }, "engines": { "node": ">=18.x", "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" } }, - "node_modules/@tkey/service-provider-torus": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/service-provider-torus/-/service-provider-torus-15.1.0.tgz", - "integrity": "sha512-7tA/1ALPo4ToXvwTwMj9OF0wh97S3p1sCeilwRcfyxBMJGpaDW8MSbiAbPqaSkK/DT3AFxlkHwAXWYYZ4+ZueQ==", + "node_modules/@toruslabs/bs58": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@toruslabs/bs58/-/bs58-1.0.0.tgz", + "integrity": "sha512-osqIgm1MzEB6+fkaQeEUg4tuZXmhhXTn+K7+nZU7xDBcy+8Yr3eGNqJcQ4jds82g+dhkk2cBkge9sffv38iDQQ==", "license": "MIT", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "@tkey/service-provider-base": "^15.1.0", - "@toruslabs/customauth": "^20.3.0", - "@toruslabs/torus.js": "^15.1.0", - "bn.js": "^5.2.1", - "elliptic": "^6.5.5" - }, "engines": { "node": ">=18.x", "npm": ">=9.x" @@ -1214,16 +1052,11 @@ "@babel/runtime": "7.x" } }, - "node_modules/@tkey/share-serialization": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/share-serialization/-/share-serialization-15.1.0.tgz", - "integrity": "sha512-n8jf6WDAWcWKFUr/nSnBURxX8vlXCQjJOfQUchiqvvUFlExeDqXqJq8I5icn2hjxKqANNcXVf1vKSvOCxPCAng==", + "node_modules/@toruslabs/constants": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.2.0.tgz", + "integrity": "sha512-Mb5EfYNSPyvvw5s1JXnpZwritCgp4NmLni1imTqrSKGV3yikYhUn1ufyLMAHGnBBgv4AuMIXBIe3EpJJ+SpA0g==", "license": "MIT", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "bn.js": "^5.2.1", - "ethereum-cryptography": "^2.2.1" - }, "engines": { "node": ">=18.x", "npm": ">=9.x" @@ -1232,131 +1065,10 @@ "@babel/runtime": "7.x" } }, - "node_modules/@tkey/storage-layer-torus": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/storage-layer-torus/-/storage-layer-torus-15.1.0.tgz", - "integrity": "sha512-ZRk1FclOEomd7KAE3evKc/4Nk9I//RW20Bq2UrSPyKGf5YeTbDTaglAK0GrcG5CPtCpVLqh348Bw6hvGzjArag==", - "license": "MIT", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "@toruslabs/http-helpers": "^7.0.0", - "base64url": "3.0.1", - "bn.js": "^5.2.1", - "ethereum-cryptography": "^2.2.1", - "json-stable-stringify": "^1.1.1" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@tkey/tss": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@tkey/tss/-/tss-15.1.0.tgz", - "integrity": "sha512-UcbJbWscIL83Zh1/i6M+X/xhN4EOimGV8JoWZ3D23Ji2pHPo8BgveUZA9i1DK4Y3YqqZ9aS8PvhSHt+KVnNluw==", - "license": "ISC", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "@tkey/core": "^15.1.0", - "@tkey/service-provider-torus": "^15.1.0", - "@toruslabs/customauth": "^20.3.0", - "@toruslabs/rss-client": "^2.0.1", - "@toruslabs/torus.js": "^15.1.0", - "@types/bn.js": "^5.1.5", - "bn.js": "^5.2.1", - "elliptic": "^6.5.5", - "ethereum-cryptography": "^2.1.3" - } - }, - "node_modules/@toruslabs/base-controllers": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-6.3.2.tgz", - "integrity": "sha512-YnRAtEM9jVR71ZDPSJtb1P1biAz322hv9R3jKh7SttfI//JPvtw8UdSCCQjSF5cAWLqgOupqq15p+p9Ka0bSPA==", - "license": "ISC", - "dependencies": { - "@ethereumjs/util": "^9.1.0", - "@toruslabs/broadcast-channel": "^11.0.0", - "@toruslabs/http-helpers": "^7.0.0", - "@web3auth/auth": "^9.5.2", - "async-mutex": "^0.5.0", - "bignumber.js": "^9.1.2", - "bowser": "^2.11.0", - "jwt-decode": "^4.0.0", - "loglevel": "^1.9.2" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@toruslabs/broadcast-channel": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/broadcast-channel/-/broadcast-channel-11.0.0.tgz", - "integrity": "sha512-nnM5yjQGzmCiie37G4Ks+5VsPjMrcY/81tga5ASb/u5TbZhSPQUw0CSW42Q9uBtR8sZbsHU06cPZ8j0z6LeAUg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.24.7", - "@toruslabs/eccrypto": "^5.0.0", - "@toruslabs/metadata-helpers": "^6.0.0", - "loglevel": "^1.9.1", - "oblivious-set": "1.4.0", - "socket.io-client": "^4.7.5", - "unload": "^2.4.1" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - } - }, - "node_modules/@toruslabs/bs58": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/bs58/-/bs58-1.0.0.tgz", - "integrity": "sha512-osqIgm1MzEB6+fkaQeEUg4tuZXmhhXTn+K7+nZU7xDBcy+8Yr3eGNqJcQ4jds82g+dhkk2cBkge9sffv38iDQQ==", - "license": "MIT", - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@toruslabs/config": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@toruslabs/config/-/config-2.2.0.tgz", - "integrity": "sha512-gH69an6qIVEP9W/YkPmroBrqoPfIf8aoBSGC6ZAcc4ihXDeyByXtdpThZ+wm9TSWMYsjewhZVstRAZeaE3zp9w==", - "license": "MIT", - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "^7.16" - } - }, - "node_modules/@toruslabs/constants": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.2.0.tgz", - "integrity": "sha512-Mb5EfYNSPyvvw5s1JXnpZwritCgp4NmLni1imTqrSKGV3yikYhUn1ufyLMAHGnBBgv4AuMIXBIe3EpJJ+SpA0g==", - "license": "MIT", - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@toruslabs/customauth": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-20.3.1.tgz", - "integrity": "sha512-oqzJh0WFf4rSwnXshEfh8c1ZqPhVjEvGuzI6LIUlot1OSrNituPLHWhzNW3OYw29+69jgolDBcOuSCN/Tq//Sw==", + "node_modules/@toruslabs/customauth": { + "version": "20.3.1", + "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-20.3.1.tgz", + "integrity": "sha512-oqzJh0WFf4rSwnXshEfh8c1ZqPhVjEvGuzI6LIUlot1OSrNituPLHWhzNW3OYw29+69jgolDBcOuSCN/Tq//Sw==", "license": "MIT", "dependencies": { "@chaitanyapotti/register-service-worker": "^1.7.4", @@ -1401,49 +1113,6 @@ "npm": ">=9.x" } }, - "node_modules/@toruslabs/elliptic-wrapper": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.1.tgz", - "integrity": "sha512-2IehQMK+OfRnJPcwNuM5b+je3+8XlPqjbQVPm85vjsSoliWO23G/2OK1635melTZYcjbxa+88l2m0wWuK/YTSg==", - "license": "ISC", - "dependencies": { - "@toruslabs/config": "^2.0.2", - "@toruslabs/eslint-config-typescript": "^3.0.3", - "bn.js": "^5.2.1", - "elliptic": "^6.5.4" - } - }, - "node_modules/@toruslabs/eslint-config-typescript": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@toruslabs/eslint-config-typescript/-/eslint-config-typescript-3.3.4.tgz", - "integrity": "sha512-i1nowtYX9Yq+mCYrPj3vY/yoIKouJT7j+wqhrFoBF6el/3rDYQgz09cwdWlh7B+BGYeuJ+Nf9RSuC1bPc0egvg==", - "license": "MIT", - "dependencies": { - "@rushstack/eslint-patch": "^1.10.4", - "@typescript-eslint/eslint-plugin": "^7.18.0", - "@typescript-eslint/parser": "^7.18.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-airbnb-typescript": "^18.0.0", - "eslint-config-prettier": "^9.1.0", - "eslint-config-problems": "^8.0.0", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-mocha": "^10.5.0", - "eslint-plugin-n": "^17.11.1", - "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-promise": "^7.1.0", - "eslint-plugin-simple-import-sort": "^12.1.1", - "eslint-plugin-tsdoc": "^0.3.0" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "eslint": "^8.x", - "prettier": "^3.x", - "typescript": "^5.x" - } - }, "node_modules/@toruslabs/fetch-node-details": { "version": "14.2.0", "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.2.0.tgz", @@ -1532,57 +1201,6 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/openlogin-utils": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@toruslabs/openlogin-utils/-/openlogin-utils-8.2.1.tgz", - "integrity": "sha512-NSOtj61NZe7w9qbd92cYwMlE/1UwPGtDH02NfUjoEEc3p1yD5U2cLZjdSwsnAgjGNgRqVomXpND4hii12lI/ew==", - "license": "ISC", - "dependencies": { - "@toruslabs/constants": "^13.2.0", - "base64url": "^3.0.1", - "color": "^4.2.3" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@toruslabs/openlogin-utils/node_modules/@toruslabs/constants": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-13.4.0.tgz", - "integrity": "sha512-CjmnMQ5Oj0bqSBGkhv7Xm3LciGJDHwe4AJ1LF6mijlP+QcCnUM5I6kVp60j7zZ/r0DT7nIEiuHHHczGpCZor0A==", - "license": "MIT", - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@toruslabs/rss-client": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@toruslabs/rss-client/-/rss-client-2.0.2.tgz", - "integrity": "sha512-kmtl7KaxTOdrftxtv/hTzz6k2RJbVFq6oPs5Vg4u4iybdQYdRzyP1HqQ3wMu9ADhiItbZAg80VP4gOCCmjao4w==", - "license": "MIT", - "dependencies": { - "@toruslabs/eccrypto": "^5.0.4", - "@toruslabs/http-helpers": "^7.0.0", - "bn.js": "^5.2.1", - "elliptic": "^6.5.7", - "loglevel": "^1.9.2" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, "node_modules/@toruslabs/secure-pub-sub": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@toruslabs/secure-pub-sub/-/secure-pub-sub-1.1.0.tgz", @@ -1669,122 +1287,11 @@ "@babel/runtime": "7.x" } }, - "node_modules/@toruslabs/tss-client": { - "version": "3.3.0-alpha.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-client/-/tss-client-3.3.0-alpha.0.tgz", - "integrity": "sha512-osExXxucMAlQQnyYS9el870xeILPj1Cv7QFCy2Nk+NsJQ9DW9uK9F3/n9Do8mn5C8POOEyXSwrobxGdypN1MxQ==", - "license": "ISC", - "dependencies": { - "@toruslabs/eccrypto": "^5.0.4", - "@toruslabs/tss-client-util": "^0.1.1", - "bn.js": "^5.2.1", - "elliptic": "^6.5.7", - "ethereum-cryptography": "^3.0.0", - "socket.io-client": "^4.8.0" - } - }, - "node_modules/@toruslabs/tss-client-util": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-client-util/-/tss-client-util-0.1.1.tgz", - "integrity": "sha512-ePhhn8DuYI0E07Aec7tGc6XbdbizytJBhU2NFwzQ70DsyHLy0UK1Q2EdtVqp2fm8Y+8ArScVq6HqRxPE2fd0CQ==", - "license": "ISC", - "dependencies": { - "bn.js": "^5.2.1" - } - }, - "node_modules/@toruslabs/tss-client/node_modules/@noble/curves": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", - "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.5.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@toruslabs/tss-client/node_modules/@noble/hashes": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", - "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@toruslabs/tss-client/node_modules/@scure/bip32": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz", - "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.6.0", - "@noble/hashes": "~1.5.0", - "@scure/base": "~1.1.7" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@toruslabs/tss-client/node_modules/@scure/bip39": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz", - "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.5.0", - "@scure/base": "~1.1.8" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@toruslabs/tss-client/node_modules/ethereum-cryptography": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.0.0.tgz", - "integrity": "sha512-Ij7U9OgVZc4MAui8BttPCEaWUrAXy+eo2IbVfIxZyfzfFxMQrbIWXRUbrsRBqRrIhJ75T8P+KQRKpKTaG0Du8Q==", - "license": "MIT", - "dependencies": { - "@noble/ciphers": "1.0.0", - "@noble/curves": "1.6.0", - "@noble/hashes": "1.5.0", - "@scure/bip32": "1.5.0", - "@scure/bip39": "1.4.0" - }, - "engines": { - "node": "^14.21.3 || >=16", - "npm": ">=9" - } - }, "node_modules/@toruslabs/tss-dkls-lib": { "version": "5.0.0-alpha.0", "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-5.0.0-alpha.0.tgz", "integrity": "sha512-htUWzL2JZoKTtw++WLdQ1AK3wPTe0yezv/twWjpQIzLFkkfoO9Urnl5n9S6jFx98Z1dDRJRBWSED9PSuqY/x7w==" }, - "node_modules/@toruslabs/tss-frost-client": { - "version": "1.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-client/-/tss-frost-client-1.0.0-alpha.0.tgz", - "integrity": "sha512-MvWl8Qt+/DIrNP+vqozYssXlWD1Ofo8jgRmUkiODuOew/wpePhIQv41XTcir7vdv2UU2SsG8N4L0FLU9O69Guw==", - "license": "ISC", - "dependencies": { - "@toruslabs/tss-client-util": "^0.1.1", - "@toruslabs/tss-frost-common": "^1.0.1", - "socket.io-client": "^4.7.2" - } - }, - "node_modules/@toruslabs/tss-frost-common": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-common/-/tss-frost-common-1.0.1.tgz", - "integrity": "sha512-WmunNSH9XOM/oHQ/CjsTCn4KN9eqxo4keTRV6Yf6roq/S5hzKjOoowWM86vpwPJ6mfa2Qho9bndE2CCS11nKwg==", - "license": "ISC" - }, "node_modules/@toruslabs/tss-frost-lib": { "version": "2.0.0-alpha.0", "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-2.0.0-alpha.0.tgz", @@ -1846,6 +1353,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -1876,7 +1384,7 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "devOptional": true, + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -1931,13 +1439,7 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, "license": "MIT" }, "node_modules/@types/jsrsasign": { @@ -1993,234 +1495,30 @@ "@types/node": "*" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "license": "ISC", - "peer": true - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", - "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.26.0", - "@babel/plugin-transform-react-jsx-self": "^7.25.9", - "@babel/plugin-transform-react-jsx-source": "^7.25.9", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/@web3auth/auth": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.6.1.tgz", - "integrity": "sha512-6iYmjhDtZcXGph3pPTVLShMv/xN+eLnc/+g04rqM34pfb85CK2OsvnufCxWcNpEuS/n5yo5voALPE4s/s2BXWw==", - "license": "MIT", + "node_modules/@web3auth/auth": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.6.1.tgz", + "integrity": "sha512-6iYmjhDtZcXGph3pPTVLShMv/xN+eLnc/+g04rqM34pfb85CK2OsvnufCxWcNpEuS/n5yo5voALPE4s/s2BXWw==", + "license": "MIT", "dependencies": { "@ethereumjs/util": "^9.1.0", "@toruslabs/constants": "^14.2.0", @@ -2350,54 +1648,8 @@ } }, "node_modules/@web3auth/mpc-core-kit": { - "version": "4.1.6-alpha.0", - "resolved": "https://registry.npmjs.org/@web3auth/mpc-core-kit/-/mpc-core-kit-4.1.6-alpha.0.tgz", - "integrity": "sha512-/OAF/xxlisEcsYuHheyuxZkParq7OVY+LUVGr7hvRU+bKIuMS1KrVc0RZFoQKfR2Q0CfZbgFO+jKJWa0meBuAg==", - "license": "ISC", - "dependencies": { - "@tkey/common-types": "^15.1.0", - "@tkey/core": "^15.1.0", - "@tkey/share-serialization": "^15.1.0", - "@tkey/storage-layer-torus": "^15.1.0", - "@tkey/tss": "^15.1.0", - "@toruslabs/constants": "^14.2.0", - "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.1", - "@toruslabs/fetch-node-details": "^14.2.0", - "@toruslabs/fnd-base": "^14.2.0", - "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/openlogin-utils": "^8.2.1", - "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "15.2.0-alpha.0", - "@toruslabs/tss-client": "^3.3.0-alpha.0", - "@toruslabs/tss-frost-client": "^1.0.0-alpha.0", - "@toruslabs/tss-frost-common": "^1.0.1", - "@web3auth/auth": "^9.6.1", - "bn.js": "^5.2.1", - "bowser": "^2.11.0", - "elliptic": "^6.5.7", - "loglevel": "^1.9.2" - }, - "engines": { - "node": ">=20.x" - }, - "peerDependencies": { - "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", - "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", - "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0" - }, - "peerDependenciesMeta": { - "@toruslabs/tss-dkls-lib": { - "optional": true - }, - "@toruslabs/tss-frost-lib": { - "optional": true - }, - "@toruslabs/tss-frost-lib-bip340": { - "optional": true - } - } + "resolved": "../..", + "link": true }, "node_modules/@web3auth/mpc-passkey-plugin": { "version": "0.1.15-alpha.0", @@ -2649,6 +1901,7 @@ "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "devOptional": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -2657,16 +1910,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peer": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, "node_modules/aes-js": { "version": "4.0.0-beta.5", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", @@ -2677,6 +1920,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -2767,136 +2011,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0", - "peer": true - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/asn1.js": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", @@ -2953,12 +2067,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -3025,19 +2133,11 @@ "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", "license": "MIT" }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -3288,16 +2388,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/camel-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", @@ -3465,18 +2555,6 @@ "node": ">= 12" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "license": "MIT" - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -3630,21 +2708,6 @@ "node-fetch": "^2.6.12" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/crypto-browserify": { "version": "3.12.1", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", @@ -3709,57 +2772,6 @@ "dev": true, "license": "MIT" }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -3777,13 +2789,6 @@ } } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "license": "MIT", - "peer": true - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -3876,31 +2881,6 @@ "dev": true, "license": "MIT" }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -4062,7 +3042,9 @@ "version": "5.17.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -4081,66 +3063,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/es-abstract": { - "version": "1.23.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", - "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -4170,58 +3092,6 @@ "license": "MIT", "peer": true }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/esbuild": { "version": "0.24.0", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", @@ -4258,592 +3128,24 @@ "@esbuild/openbsd-x64": "0.24.0", "@esbuild/sunos-x64": "0.24.0", "@esbuild/win32-arm64": "0.24.0", - "@esbuild/win32-ia32": "0.24.0", - "@esbuild/win32-x64": "0.24.0" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-compat-utils": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", - "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", - "license": "MIT", - "dependencies": { - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/eslint-compat-utils/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "license": "MIT", - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, - "node_modules/eslint-config-airbnb-typescript": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz", - "integrity": "sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==", - "license": "MIT", - "dependencies": { - "eslint-config-airbnb-base": "^15.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^7.0.0", - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-config-problems": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-problems/-/eslint-config-problems-8.0.0.tgz", - "integrity": "sha512-bvZKVXwFe1pPmFNPc0KTr14K89GHo3H/EytD7Ig/MEmlyNEdqC8QlBguPcS/QWvOWDgVqkJiGwmmTljkAV/qpg==", - "license": "ISC", - "peerDependencies": { - "eslint": "^8.27.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-es-x": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", - "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", - "funding": [ - "https://github.com/sponsors/ota-meshi", - "https://opencollective.com/eslint" - ], - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.11.0", - "eslint-compat-utils": "^0.5.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": ">=8" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-mocha": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz", - "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==", - "license": "MIT", - "dependencies": { - "eslint-utils": "^3.0.0", - "globals": "^13.24.0", - "rambda": "^7.4.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-mocha/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-n": { - "version": "17.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.14.0.tgz", - "integrity": "sha512-maxPLMEA0rPmRpoOlxEclKng4UpDe+N5BJS4t24I3UKnN109Qcivnfs37KMy84G0af3bxjog5lKctP5ObsvcTA==", - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.1", - "enhanced-resolve": "^5.17.1", - "eslint-plugin-es-x": "^7.8.0", - "get-tsconfig": "^4.8.1", - "globals": "^15.11.0", - "ignore": "^5.3.2", - "minimatch": "^9.0.5", - "semver": "^7.6.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": ">=8.23.0" - } - }, - "node_modules/eslint-plugin-n/node_modules/globals": { - "version": "15.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", - "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-promise": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.2.1.tgz", - "integrity": "sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==", - "license": "ISC", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-simple-import-sort": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz", - "integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==", - "license": "MIT", - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, - "node_modules/eslint-plugin-tsdoc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.3.0.tgz", - "integrity": "sha512-0MuFdBrrJVBjT/gyhkP2BqpD0np1NxNLfQ38xXDlSs/KVVpKI2A6vN7jx2Rve/CyUsvOsMGwp9KKrinv7q9g3A==", - "license": "MIT", - "dependencies": { - "@microsoft/tsdoc": "0.15.0", - "@microsoft/tsdoc-config": "0.17.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" } }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "estraverse": "^5.1.0" - }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=6" } }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { @@ -4857,21 +3159,13 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=4.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ethereum-cryptography": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", @@ -5008,18 +3302,14 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "license": "Apache-2.0" - }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -5036,6 +3326,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -5048,13 +3339,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT", - "peer": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, "license": "MIT", "peer": true }, @@ -5075,28 +3360,17 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "license": "MIT", - "peer": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -5105,45 +3379,6 @@ "node": ">=8" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "peer": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "license": "MIT", - "peer": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "license": "ISC", - "peer": true - }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -5153,13 +3388,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC", - "peer": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -5184,33 +3412,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -5239,61 +3440,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", - "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -5310,30 +3461,6 @@ "license": "BSD-2-Clause", "peer": true }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -5343,42 +3470,6 @@ "node": ">=4" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz", @@ -5398,22 +3489,9 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true, + "license": "ISC", + "peer": true }, "node_modules/has-flag": { "version": "4.0.0", @@ -5641,139 +3719,22 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "license": "MIT", - "peer": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "peer": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/is-arguments": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT" - }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -5786,6 +3747,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -5798,75 +3765,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "license": "MIT", - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", - "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -5886,6 +3794,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -5894,18 +3803,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -5922,129 +3819,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.0.tgz", - "integrity": "sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.0.tgz", - "integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "gopd": "^1.1.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.0.tgz", - "integrity": "sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", @@ -6066,59 +3850,12 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "license": "MIT" }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT" }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC", - "peer": true - }, "node_modules/isomorphic-ws": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", @@ -6200,31 +3937,12 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "license": "MIT" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -6237,13 +3955,6 @@ "node": ">=6" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT", - "peer": true - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -6262,6 +3973,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, "license": "MIT", "peer": true }, @@ -6283,13 +3995,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "license": "MIT", - "peer": true - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -6390,30 +4095,6 @@ "node": ">=18" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "license": "MIT", - "peer": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -6425,22 +4106,6 @@ "node": ">=6.11.5" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "peer": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -6484,13 +4149,6 @@ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "license": "MIT" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT", - "peer": true - }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", @@ -6565,6 +4223,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -6574,6 +4233,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -6633,37 +4293,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "license": "MIT" - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" }, "node_modules/ms": { "version": "2.1.3", @@ -6690,12 +4326,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "license": "MIT" - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -6783,6 +4413,7 @@ "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -6834,69 +4465,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/oblivious-set": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.4.0.tgz", @@ -6915,24 +4483,6 @@ "wrappy": "1" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "license": "MIT", - "peer": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -6940,38 +4490,6 @@ "dev": true, "license": "MIT" }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -6990,19 +4508,6 @@ "tslib": "^2.0.3" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "peer": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/parse-asn1": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", @@ -7039,51 +4544,6 @@ "dev": true, "license": "MIT" }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -7111,6 +4571,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -7157,44 +4618,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", - "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", - "license": "MIT", - "peer": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", @@ -7284,7 +4707,9 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -7309,6 +4734,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -7325,12 +4751,6 @@ ], "license": "MIT" }, - "node_modules/rambda": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", - "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", - "license": "MIT" - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -7408,51 +4828,12 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", - "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "which-builtin-type": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "license": "MIT" }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -7481,74 +4862,23 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -7616,6 +4946,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -7645,24 +4976,6 @@ "tslib": "^2.1.0" } }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -7683,23 +4996,6 @@ ], "license": "MIT" }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -7795,22 +5091,7 @@ "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", + "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" }, "engines": { @@ -7837,33 +5118,11 @@ "sha.js": "bin.js" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "peer": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -7887,15 +5146,6 @@ "is-arrayish": "^0.3.1" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/socket.io-client": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", @@ -8018,59 +5268,11 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -8079,28 +5281,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -8113,38 +5293,11 @@ "node": ">=8" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/synckit": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", - "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", - "license": "MIT", - "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -8232,17 +5385,11 @@ "devOptional": true, "license": "MIT" }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "license": "MIT", - "peer": true - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -8257,18 +5404,6 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT" }, - "node_modules/ts-api-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, "node_modules/ts-custom-error": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz", @@ -8278,135 +5413,12 @@ "node": ">=14.0.0" } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "license": "MIT", - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", - "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typed-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", @@ -8438,21 +5450,6 @@ "node": ">=14.17" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -8515,7 +5512,9 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -9130,83 +6129,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", - "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-typed-array": { "version": "1.1.16", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", @@ -9226,16 +6148,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -9287,19 +6199,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "license": "ISC" }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/zod": { "version": "3.23.8", "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index 912aae8a..098bf77b 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -4,6 +4,7 @@ "private": true, "dependencies": { "@tkey/common-types": "^15.1.0", + "@toruslabs/torus.js": "15.2.0-alpha.0", "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0", @@ -14,9 +15,8 @@ "@vitejs/plugin-react": "^4.3.2", "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", - "@web3auth/mpc-core-kit": "4.1.6-alpha.0", + "@web3auth/mpc-core-kit": "file:../..", "@web3auth/mpc-passkey-plugin": "0.1.15-alpha.0", - "@toruslabs/torus.js": "15.2.0-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index 13deb977..e6a6fb11 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -30,6 +30,7 @@ import{ tssLib as tssLibFrostBip340 } from "@toruslabs/tss-frost-lib-bip340"; import "./App.css"; import jwt, { Algorithm } from "jsonwebtoken"; import { flow } from "./flow"; +import { ec as EC } from "elliptic"; type TssLib = typeof tssLibDkls | typeof tssLibFrost | typeof tssLibFrostBip340; @@ -423,16 +424,29 @@ function App() { uiConsole(sig.toString("hex")); } }; + + const signWithKeyTweak = async (): Promise => { + if (coreKitInstance.current.sigType === SIG_TYPE.ECDSA_SECP256K1) { + throw new Error("Not supported for this signature type"); + } else if (coreKitInstance.current.sigType === SIG_TYPE.ED25519 || coreKitInstance.current.sigType === SIG_TYPE.BIP340) { + const msg = Buffer.from("hello signer!"); + const keyTweak = (() => { + const ec = new EC(coreKitInstance.current.keyType); + return ec.genKeyPair().getPrivate(); + })(); + const sig = await coreKitInstance.current.sign(msg, { keyTweak }); + uiConsole(sig.toString("hex")); + } + }; + const signMessageWithPrecomputedTss = async (): Promise => { if (coreKitInstance.current.keyType === "secp256k1") { const precomputedTssClient = await coreKitInstance.current.precompute_secp256k1(); const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.current.sign(msg, false, precomputedTssClient); - uiConsole(sig.toString("hex")); - } else if (coreKitInstance.current.keyType === "ed25519") { - const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.current.sign(msg); + const sig = await coreKitInstance.current.sign(msg, { secp256k1Precompute: precomputedTssClient }); uiConsole(sig.toString("hex")); + } else { + throw new Error("Not supported for this key type"); } }; @@ -441,15 +455,13 @@ function App() { const [precomputedTssClient, precomputedTssClient2] = await Promise.all([coreKitInstance.current.precompute_secp256k1(), coreKitInstance.current.precompute_secp256k1()]); const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.current.sign(msg, false, precomputedTssClient); + const sig = await coreKitInstance.current.sign(msg, { secp256k1Precompute: precomputedTssClient }); const msg2 = Buffer.from("hello signer2!"); - const sig2 = await coreKitInstance.current.sign(msg2, false, precomputedTssClient2); + const sig2 = await coreKitInstance.current.sign(msg2, { secp256k1Precompute: precomputedTssClient2 }); uiConsole("Sig1: ", sig.toString("hex"), "Sig2: ", sig2.toString("hex")); - } else if (coreKitInstance.current.keyType === "ed25519") { - const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.current.sign(msg); - uiConsole(sig.toString("hex")); + } else { + throw new Error("Not supported for this key type"); } }; const switchChainSepolia = async () => { @@ -864,8 +876,12 @@ function App() { Sign Message + +